/* =========================
   HEADER ONLY (SCOPED)
========================= */

/* Component-level reset (safe) */
.header,
.header * ,
.header *::before,
.header *::after {
  box-sizing: border-box;
}

.header a {
  text-decoration: none;
}

.header img,
.header svg {
  vertical-align: middle;
}

.header button {
  border-radius: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.header button:disabled {
  cursor: default;
}

/* =========================
   Buttons (scoped)
========================= */

.header .btn {
  align-items: center;
  appearance: none;
  block-size: 40px;
  border: 0;
  border-radius: 0.25rem;
  box-sizing: initial;
  color: #0074bc;
  cursor: pointer;
  display: inline-flex;
  font-family: "Inter", serif;
  font-size: 16px;
  font-weight: 700;
  justify-content: center;
  line-height: 1;
  min-inline-size: 230px;
  padding-block: 0.3em 0.25em;
  padding-inline: 1em;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.2s ease-in-out;
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  .header .btn {
    transition: none;
  }
}

.header .btn:hover,
.header .btn:focus-visible {
  text-decoration: none;
}

.header .btn.btn--primary {
  background: rgb(0, 116, 188);
  color: white;
  text-wrap: wrap;
  line-height: 22px;
}

.header .btn.btn--small {
  block-size: 35px;
  font-size: 0.875rem !important;
  min-inline-size: 100px;
  padding-block: 5px;
  padding-inline: 20px;
}

/* Header CTA button sizing override */
.header .btn {
  block-size: 34px;
  padding-block: 0 !important;
  padding-inline: 17px !important;
}

/* =========================
   Utility bar
========================= */

.header .header__utility {
  align-items: center;
  block-size: 30px;
  display: none;
  justify-content: flex-end;
  padding-inline: 20px;
  position: relative;
  z-index: 9999;
}

@media (min-width: 64em) {
  .header .header__utility {
    display: flex;
  }
}

.header .header__utility__container {
  align-items: center;
  display: flex;
  gap: 85px;
}

.header .header__utility__links {
  align-items: center;
  display: flex;
  gap: 8px;
}

.header .header__utility__link {
  color: #272725;
  font-size: 12.8px;
  line-height: 19.2px;
  text-decoration: none;
}

.header .header__utility__link:hover {
  color: #0074bc;
  text-decoration: underline;
}

.header .header__utility__separator {
  color: #272725;
  font-size: 12.8px;
  line-height: 19.2px;
}

.header .header__utility__separator:last-child {
  display: none;
}

.header .header__utility__sign-in {
  align-items: center;
  color: #272725;
  display: flex;
  font-size: 12.8px;
  gap: 9px;
  line-height: 19.2px;
  text-decoration: none;
}

.header .header__utility__sign-in:hover {
  color: #0074bc;
  text-decoration: underline;
}

.header .header__utility__sign-in svg {
  block-size: 16px;
  display: block;
  inline-size: 16px;
  transform: translateY(-1px);
}

/* =========================
   Navigation
========================= */

.header .header__navigation {
  align-items: center;
  block-size: 82px;
  border-block-start: 1px solid #ddddda;
  display: flex;
  justify-content: space-between;
  padding-inline: 12px;
  position: relative;
  z-index: 9999;
}

@media (min-width: 64em) {
  .header .header__navigation {
    block-size: 52.8px;
    box-shadow: 0 11px 11px #00000020;
    padding-inline: 12px 20px;
  }
}

.header .header__navigation__center {
  align-items: center;
  display: flex;
}

@media (min-width: 64em) {
  .header .header__navigation__center {
    display: block;
    inset-inline-start: 100px;
    position: absolute;
  }
}

@media (min-width: 100em) {
  .header .header__navigation__center {
    inset-inline-start: 50%;
    transform: translateX(-50%);
  }
}

.header .header__navigation__search-trigger {
  padding: 8px;
  display:none;
}

.header .header__navigation__search-trigger--hide {
  display: none;
}

@media (min-width: 64em) {
  .header .header__navigation__search-trigger {
    inset-block-start: 50%;
    inset-inline-end: -40px;
    position: absolute;
    transform: translateY(-50%);
  }
}

@media (min-width: 100em) {
  .header .header__navigation__search-trigger {
    inset-inline-end: -6vw;
  }
}

.header .header__navigation__search-trigger--hide {
  display: none;
}

.header .header__navigation__menu-trigger {
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  padding-block: 4px;
  padding-inline: 12px;
}

@media (min-width: 64em) {
  .header .header__navigation__menu-trigger {
    display: none;
  }
}

.header .header__navigation__menu-trigger svg {
  block-size: 30px;
  inline-size: 30px;
}

.header .header__navigation__right {
  align-items: center;
  display: none;
  gap: 15px;
}

@media (min-width: 64em) {
  .header .header__navigation__right {
    display: flex;
  }
}

.header .header__navigation__right.header__navigation__right--simple {
  display: flex;
}

.header .header__navigation__list {
  display: none;
}

@media (min-width: 64em) {
  .header .header__navigation__list {
    display: block;
  }
}

.header .header__navigation__link {
  color: #272725;
  line-height: 28.8px;
  padding-block: 15px;
  text-decoration: none;
}

.header .header__navigation__link:hover {
  border-block-end: 5px solid #0074bc;
}

@media (min-width: 64em) {
  .header .header__navigation__link {
    font-size: 12px;
    padding-inline: 11.5px;
  }
}

@media (min-width: 80em) {
  .header .header__navigation__link {
    font-size: 14.4px;
  }
}

@media (min-width: 100em) {
  .header .header__navigation__link {
    padding-inline: 18px;
  }
}

.header .header__navigation__phone {
  align-items: center;
  display: flex;
  gap: 6px;
}

.header .header__navigation__phone img {
  display: block;
}

.header .header__navigation__phone-text {
  color: #333;
  display: block;
  font-size: 14px;
}

/* =========================
   Panels
========================= */

.header .header__pannels {
  inset-inline: 0;
  position: relative;
}

.header .header__menu-pannel {
  block-size: 0;
  overflow: hidden;
  transition: 0.1s ease-out;
}

.header--menu-active .header__menu-pannel {
  margin-block-end: 16px;
}

.header .header__menu-pannel__list {
  background-color: #f9f9f9;
  padding-inline: 35px 12px;
}

.header .header__menu-pannel__link {
  border-block-start: 1px solid #eee;
  color: #272725;
  display: block;
  font-size: 16px;
  line-height: 28.8px;
  padding-block: 8px;
  text-decoration: none;
}

.header .header__search-pannel {
  background-color: #f9f9f9;
  block-size: 0;
  overflow: hidden;
  transition: 0.1s ease-out;
}

.header .header__search-pannel--expanded {
  block-size: auto;
}

@media (min-width: 64em) {
  .header--search-active-init .header__search-pannel {
    block-size: auto;
  }
}

.header .header__search-pannel__form {
  display: flex;
  inline-size: 300px;
  justify-content: center;
  margin-inline: auto;
  padding-block: 30px;
  position: relative;
}

@media (min-width: 48em) {
  .header .header__search-pannel__form {
    inline-size: 450px;
  }
}

.header .header__search-pannel__input {
  background-color: #fff;
  block-size: 36px;
  border: 1px solid #324153;
  color: #3b454f;
  display: inline-block;
  font-size: 14px;
  inline-size: 100%;
  line-height: 16px;
  padding: 2px 35px 2px 10px;
}

.header .header__search-pannel__input:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 3px;
}

.header .header__search-pannel__submit {
  inset-block-start: 50%;
  inset-inline-end: 12px;
  position: absolute;
  transform: translateY(-50%);
}

/* =========================
   Fixed CTA strip (mobile)
========================= */

.header .header__fixed {
  block-size: 60px;
  display: flex;
  inset-block-end: 0;
  inset-inline: 0;
  position: fixed;
  z-index: 9999;
  display: none;
}

@media (min-width: 48em) {
  .header .header__fixed {
    display: none;
  }
}

/* keeping your typo'd class names as-is so it matches your markup */
.header .hedear__fixed__phone {
  align-items: center;
  background-color: #33bdeb;
  color: #000;
  display: flex;
  font-size: 14.4px;
  font-weight: 700;
  inline-size: 43%;
  justify-content: center;
  line-height: 28.8px;
  text-decoration: none;
}

.header .hedear__fixed__cta {
  align-items: center;
  background-color: #0074bc;
  color: #fff;
  display: flex;
  font-size: 14.4px;
  font-weight: 700;
  inline-size: 57%;
  justify-content: center;
  line-height: 28.8px;
  text-decoration: none;
}

/* =========================
   Header simple variant
========================= */

.header--simple {
  block-size: auto;
  margin: 20px auto;
  padding-inline: 20px;
}

.header--simple .header__navigation {
  block-size: auto;
  border-block-start: 0;
  box-shadow: none;
  padding: 0;
}

.header--simple.header--simple-centered {
  max-inline-size: var(--container-max-width);
}

/* =========================
   Scoped Algolia overrides
========================= */

.header .st-default-search-input {
  background: none !important;
}

.header .st-ui-type-heading,
.header .st-ui-type-detail {
  font-size: 0.875rem !important;
}




/* =========================
   FOOTER ONLY (SCOPED)
========================= */

/* Footer-local reset */
.footer,
.footer *,
.footer *::before,
.footer *::after {
  box-sizing: border-box;
}


/* =========================
   Bootstrap grid (footer-only)
========================= */

.footer .container {
  --bs-gutter-x: 1.5rem;
  width: 100%;
  padding-inline: calc(1.5rem * 0.5);
  margin-inline: auto;
}

@media (min-width: 576px) {
  .footer .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .footer .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .footer .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .footer .container {
    max-width: 1140px;
  }
}

@media (min-width: 1400px) {
  .footer .container {
    max-width: 1320px;
  }
}

.footer .row {
  display: flex;
  flex-wrap: wrap;
  margin-inline: calc(-0.5 * 1.5rem);
}

.footer .row > * {
  width: 100%;
  padding-inline: calc(1.5rem * 0.5);
}

@media (min-width: 768px) {
  .footer .col-md-4 {
    width: 33.3333%;
  }

  .footer .col-md-8 {
    width: 66.6667%;
  }
}

/* =========================
   Footer component styles
========================= */

.footer {
  background-color: #30333f;
}

.footer * {
  color: white;
}

.footer__wrapper {
  padding-block: 48px;
}

@media (max-width: 47.99em) {
  .footer__appointment {
    display: none;
  }
}

.footer__appointment-link {
  background-color: #0081c8;
  font-family: "Inter", serif;
  font-size: 1.6875rem;
  line-height: 1.4;
  padding: 18px 16px;
  text-align: center;
  display: block;
}

.footer__logo-link,
.footer__logo {
  width: 65px;
  height: 65px;
  display: block;
}

.footer__subheading {
  font: 500 1rem / 1.2 Inter, sans-serif;
  color: #bbb;
  margin-bottom: 8px;
  padding-top: 20px;
}

.footer__social-links {
  display: flex;
  gap: 12px;
  padding-bottom: 20px;
}

.footer__social-link {
  width: 21px;
  height: 21px;
  display: block;
}

.footer__links-item {
  margin-block: 5px;
  display:flex;
}

.footer__link {
  font: 400 0.75rem / 1.6 "Benton Sans Medium", sans-serif;
}

@media (min-width: 48em) {
  .footer__navigation-columns {
    display: flex;
    gap: 20px;
  }
}

.footer__navigation-col {
  flex: 1;
}

.footer__copyright {
  font-size: 0.72rem;
  line-height: 2;
  margin-bottom: 30px;
  padding-top: 38px;
}

/* =========================
   Back to top (scoped)
========================= */

.footer #backToTopBtn {
  display: none;
  position: fixed;
  bottom: 60px;
  right: 20px;
  z-index: 100;
  background-color: rgba(0, 116, 188, 0.55);
  color: #fff;
  padding: 12px 14px;
  border-radius: 4px;
  cursor: pointer;
}

.footer .rtf>*+*, .footer .mce-content-body>*+* {
    margin-block-start: 10px;
}