/* ==============================
   SUM Ultimate Medicare — site-wide responsive
   ============================== */

/* --- Global base --- */
img,
svg,
video,
iframe {
  max-width: 100%;
  height: auto;
}

.sum-site-responsive table {
  width: 100%;
}

.sum-site-responsive .table-responsive,
.sum-site-responsive .footer-table,
.sum-site-responsive .sum-pkg-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body.sum-site-responsive {
  padding-bottom: 0;
  margin-bottom: 0;
  margin-top: 0;
  padding-top: 0;
  overflow-x: clip !important;
  max-width: 100%;
  width: 100%;
}

html:has(body.sum-site-responsive) {
  overflow-x: clip;
  max-width: 100%;
}

/* --- Home: lock horizontal pan; sections scroll vertically only --- */
body.sum-home-mobile-match {
  overflow-x: clip !important;
  touch-action: pan-y pinch-zoom;
}

body.sum-home-mobile-match .sum-header-v8,
body.sum-home-mobile-match .header-layout8,
body.sum-home-mobile-match .vs-hero-wrapper-eight,
body.sum-home-mobile-match .sum-hero-v8.sum-hero-clean,
body.sum-home-mobile-match .banner-slide-eight,
body.sum-home-mobile-match .banner-slide,
body.sum-home-mobile-match .banner-content,
body.sum-home-mobile-match .sum-facilities-tabs-section,
body.sum-home-mobile-match .sum-home-partners__panel,
body.sum-home-mobile-match .sum-dept-browse__panel {
  overflow-x: clip;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}

/* Slick hero: do not clip the track (breaks fade slides) */
body.sum-home-mobile-match .banner-slide-eight .slick-list,
body.sum-home-mobile-match .banner-slide-eight .slick-track,
body.sum-home-mobile-match .banner-slide-eight .slick-slide,
body.sum-home-mobile-match .banner-slide-eight .slick-slide > div {
  overflow: visible;
  max-width: none;
}

@media (max-width: 991.98px) {
  body.sum-home-mobile-match .vs-hero-wrapper-eight,
  body.sum-home-mobile-match .banner-slide-eight,
  body.sum-home-mobile-match .banner-slide-eight .slick-list {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

body.sum-home-mobile-match .sum-hero-media--kenburns .sum-hero-banner-img--campus {
  max-width: none;
  width: 100%;
}

body.sum-home-mobile-match .banner-text,
body.sum-home-mobile-match .banner-text .container-style8,
body.sum-home-mobile-match .sum-hero-copy,
body.sum-home-mobile-match .sum-hero-copy--lead,
body.sum-home-mobile-match .sum-hero-lead-panel,
body.sum-home-mobile-match .banner-sec-info {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

body.sum-home-mobile-match .sum-hero-slide--lead::after {
  display: none;
}

body.sum-home-mobile-match .sum-hero-lead-panel__shine {
  left: -30%;
  width: 55%;
}

body.sum-home-mobile-match .sum-facilities-layout {
  max-width: 100%;
  overflow-x: clip;
}

body.sum-home-mobile-match .sum-facilities-hub {
  max-width: calc(100% - 24px);
  right: 12px;
  left: auto;
  font-size: 0.8rem;
  padding: 8px 14px;
}

@media (max-width: 767.98px) {
  body.sum-home-mobile-match .sum-hero-cta-primary {
    box-shadow: 0 10px 28px rgba(48, 156, 90, 0.4) !important;
  }

  body.sum-home-mobile-match .sum-hero-trust-row li {
    width: 100%;
    max-width: 100%;
    justify-content: flex-start;
  }
}

/* --- Containers & section spacing (wider content, minimal side gap) --- */
body.sum-site-responsive .container-style8,
body.sum-site-responsive .container {
  width: 100%;
  max-width: min(1360px, 100%);
  padding-left: 10px;
  padding-right: 10px;
}

@media (max-width: 991.98px) {
  body.sum-site-responsive .container-style8,
  body.sum-site-responsive .container {
    padding-left: 8px;
    padding-right: 8px;
  }

  body.sum-site-responsive .space,
  body.sum-site-responsive .space-top,
  body.sum-site-responsive .space-bottom {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  body.sum-site-responsive .sum-department-listing {
    padding-bottom: 48px;
  }
}

@media (max-width: 575.98px) {
  body.sum-site-responsive .container-style8,
  body.sum-site-responsive .container {
    padding-left: 6px;
    padding-right: 6px;
  }

  body.sum-site-responsive .space,
  body.sum-site-responsive .space-top,
  body.sum-site-responsive .space-bottom {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
}

/* --- Department detail CTAs --- */
.sum-dept-cta-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}

@media (max-width: 767.98px) {
  .sum-dept-cta-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .sum-dept-cta-actions .btn-style8 {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 52px;
    line-height: 1.35;
    padding: 14px 22px !important;
    margin: 0 !important;
    text-align: center;
    white-space: normal;
    box-sizing: border-box;
  }
}

/* --- Inner page heroes --- */
@media (max-width: 991.98px) {
  .sum-page-hero,
  .sum-department-hero {
    padding: 44px 0 30px;
  }

  .sum-page-hero--banner {
    padding: 52px 0 36px;
  }

  .sum-pkg-hero {
    padding: 48px 0 52px;
  }

  .sum-doctors-banner {
    padding: 48px 0 36px;
  }
}

@media (max-width: 575.98px) {
  .sum-page-hero,
  .sum-department-hero {
    padding: 28px 0 22px;
  }

  .sum-page-hero h1,
  .sum-department-hero h1,
  .sum-doctors-banner h1 {
    font-size: clamp(1.45rem, 6.5vw, 1.85rem);
    line-height: 1.2;
  }

  .sum-department-intro,
  .sum-doctors-banner__intro {
    font-size: 0.95rem;
    line-height: 1.55;
  }

  .sum-department-eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.16em;
  }
}

/* --- Appointment page --- */
@media (max-width: 991.98px) {
  .sum-appointment-page__info,
  .sum-appointment-page__form-card .form-wrap4 {
    padding: 22px 18px;
  }
}

@media (max-width: 575.98px) {
  .sum-appointment-page__info,
  .sum-appointment-page__form-card .form-wrap4 {
    padding: 18px 14px;
    border-radius: 12px;
  }

  .sum-appointment-page__info h2 {
    font-size: 1.15rem;
  }

  .sum-appointment-page__steps li {
    font-size: 0.92rem;
  }

  .sum-appointment-form .btn-style8.v10 {
    width: 100%;
  }
}

/* --- Forms (touch-friendly) --- */
@media (max-width: 767.98px) {
  .sum-site-responsive .form-control,
  .sum-site-responsive .form-select,
  .sum-site-responsive input[type="text"],
  .sum-site-responsive input[type="email"],
  .sum-site-responsive input[type="tel"],
  .sum-site-responsive input[type="search"],
  .sum-site-responsive textarea,
  .sum-site-responsive select {
    font-size: 16px;
    min-height: 48px;
    padding-left: 16px;
    padding-right: 16px;
  }

  .sum-doctor-search__wrap {
    flex-direction: column;
    border-radius: 14px;
  }

  .sum-doctor-search__wrap .form-control {
    width: 100%;
    border-radius: 0;
  }

  .sum-doctor-search__wrap button {
    width: 100%;
    padding: 12px 16px;
    border-radius: 0 0 14px 14px;
  }
}

/* --- Department & content cards --- */
@media (max-width: 767.98px) {
  .sum-content-card,
  .sum-dept-list-card {
    padding: 18px 16px;
  }

  .sum-dept-photo img {
    min-height: 220px;
  }
}

@media (max-width: 575.98px) {
  .sum-department-listing .col-sm-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* --- Doctors listing page --- */
@media (max-width: 991.98px) {
  body.sum-doctors-page .sum-doctors-banner .row > [class*="col-"] {
    min-width: 0;
  }

  body.sum-doctors-page .sum-doctor-search {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 767.98px) {
  body.sum-doctors-page {
    overflow-x: clip;
  }

  body.sum-doctors-page .sum-department-listing .container-style8 {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }

  body.sum-doctors-page .sum-dept-slider-wrap {
    position: sticky;
    top: var(--sum-doctors-sticky-top, 118px);
  }

  body.sum-doctors-page .sum-dept-slider {
    flex-wrap: wrap;
    row-gap: 10px;
  }

  body.sum-doctors-page .sum-dept-slider__viewport {
    flex: 1 1 100%;
    order: 1;
    min-width: 0;
  }

  body.sum-doctors-page .sum-dept-slider__nav--prev,
  body.sum-doctors-page .sum-dept-slider__nav--next {
    flex: 1 1 calc(50% - 4px);
    order: 2;
    width: auto;
    height: 40px;
  }

  body.sum-doctors-page .sum-doctor-modal .sum-doctor-profile__actions {
    flex-direction: column;
    align-items: stretch;
  }

  body.sum-doctors-page .sum-doctor-modal .sum-doctor-profile__btn {
    width: 100%;
    justify-content: center;
  }

  body.sum-doctors-page .sum-doctor-modal__close {
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .sum-doctor-search__wrap .form-control {
    padding-left: 16px;
    padding-right: 12px;
    font-size: 0.95rem;
  }

  .sum-doctor-search__wrap button {
    padding: 0 16px;
  }
}

/* --- Doctor cards & dept sections --- */
@media (max-width: 575.98px) {
  .sum-doctor-dept-section__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .sum-doctor-dept-section__title {
    flex: 1 1 auto;
    width: 100%;
  }

  .sum-doctor-dept-section__count {
    align-self: flex-start;
  }

  .sum-doctor-card__img {
    aspect-ratio: 1 / 1;
  }

  .sum-doctor-card__body {
    padding: 12px 14px 14px;
  }

  .sum-doctor-card__view {
    opacity: 1;
    transform: none;
    top: 10px;
    right: 10px;
    max-width: calc(100% - 20px);
    white-space: normal;
    text-align: center;
    line-height: 1.25;
  }
}

/* --- Title blocks --- */
@media (max-width: 575.98px) {
  .title-area-four h2,
  .title-area-four .sec-title-eight {
    font-size: clamp(1.25rem, 5.5vw, 1.65rem) !important;
    line-height: 1.25;
  }

  .title-area-four {
    margin-bottom: 20px !important;
  }
}

/* --- Contact, career, blog placeholders --- */
@media (max-width: 575.98px) {
  .sum-site-responsive .sum-department-listing .p-4,
  .sum-site-responsive .space .p-4 {
    padding: 18px !important;
  }

  .sum-site-responsive .sum-department-listing .btn,
  .sum-site-responsive .space .btn {
    width: 100%;
    justify-content: center;
  }
}

/* --- Healthcare partners --- */
@media (max-width: 575.98px) {
  .sum-hp-partner-card--classic {
    min-height: 148px;
    padding: 16px 12px 14px;
  }

  .sum-hp-partner-card--classic .sum-hp-partner-card__logo {
    min-height: 64px;
  }

  .sum-hp-partner-card--classic .sum-hp-partner-card__logo img {
    max-height: 52px;
  }

  .sum-hp-partner-card--classic h4 {
    font-size: 0.84rem;
    min-height: calc(0.84rem * 1.4 * 3);
  }

  .sum-hp-partner-card {
    padding: 16px 12px;
  }

  .sum-hp-partner-card h4 {
    font-size: 0.84rem;
  }

  .sum-hp-segment__head {
    padding: 16px;
  }

  .sum-hp-segment__head h3 {
    font-size: 1.05rem;
  }

  .sum-hp-cta__box,
  .sum-pkg-cta__box {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: 18px;
  }

  .sum-hp-cta__actions,
  .sum-pkg-cta__actions {
    flex-direction: column;
    width: 100%;
  }

  .sum-hp-cta__btn,
  .sum-pkg-cta__btn,
  .sum-pkg-cta__phone {
    width: 100%;
    justify-content: center;
    white-space: normal;
    text-align: center;
  }
}

/* --- Packages --- */
@media (max-width: 767.98px) {
  .sum-package-card {
    padding: 18px 16px;
  }

  .sum-pkg-listing .sum-pkg-card {
    height: 360px;
    max-height: 360px;
    padding: 0;
  }

  .sum-pkg-listing .sum-pkg-card--has-image {
    padding-top: 0;
  }

  .sum-package-profile__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .sum-package-profile__actions .sum-pkg-profile-btn {
    width: 100%;
    justify-content: center;
  }
}

/* --- Gallery --- */
@media (max-width: 575.98px) {
  .sum-gallery-tabs {
    flex-direction: column;
    gap: 8px;
    padding: 8px;
  }

  .sum-gallery-tab {
    flex: 1 1 auto;
    width: 100%;
  }

  .sum-gallery-panel__head {
    padding: 16px;
  }

  .sum-gallery-album-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .sum-gallery-event-modal__dialog {
    margin: 10px;
    max-height: calc(100vh - 20px);
  }
}

/* --- Awards --- */
@media (max-width: 575.98px) {
  .sum-awards-highlights .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* --- About leadership --- */
@media (max-width: 767.98px) {
  .sum-about-leadership .team-block-ten,
  .sum-about-leadership .col-lg-3 {
    margin-bottom: 8px;
  }
}

/* --- Header mobile topbar --- */
@media (max-width: 400px) {
  .sum-emergency-topbar--mobile .sum-emergency-topbar__number {
    font-size: 0.82rem;
  }

  .sum-header-topbar-mobile .container-style8 {
    padding-left: 10px;
    padding-right: 10px;
  }
}

/* --- Sticky emergency FAB --- */
@media (max-width: 575.98px) {
  .sum-sticky-actions {
    right: 10px;
    bottom: 10px;
  }

  .sum-sticky-actions__btn {
    padding: 10px 12px;
    font-size: 0.85rem;
    gap: 8px;
  }

  .sum-sticky-actions__icon {
    width: 30px;
    height: 30px;
  }
}

/* --- Emergency dialog --- */
@media (max-width: 575.98px) {
  .sum-emergency-dialog {
    padding: 12px;
    align-items: flex-end;
  }

  .sum-emergency-dialog__panel {
    width: 100%;
    max-width: none;
    border-radius: 16px 16px 0 0;
  }
}

/* --- Modals & popups --- */
@media (max-width: 767.98px) {
  .sum-doctor-modal__dialog {
    margin: 8px;
    max-height: calc(100vh - 16px);
    overflow-y: auto;
  }

  .mfp-container {
    padding-left: 10px;
    padding-right: 10px;
  }
}

/* --- Prevent horizontal overflow from long text --- */
@media (max-width: 767.98px) {
  .sum-site-responsive h1,
  .sum-site-responsive h2,
  .sum-site-responsive h3,
  .sum-site-responsive h4,
  .sum-site-responsive h5,
  .sum-site-responsive h6,
  .sum-site-responsive p,
  .sum-site-responsive li,
  .sum-site-responsive a,
  .sum-site-responsive .sum-gallery-album-card__title,
  .sum-site-responsive .sum-hp-corp-row__name h4 {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* --- Blog page --- */
@media (max-width: 991.98px) {
  .sum-site-responsive .sum-blog-sidebar {
    margin-top: 8px;
  }
}

@media (max-width: 575.98px) {
  .sum-site-responsive .sum-blog-hero h1 {
    font-size: clamp(1.5rem, 6vw, 2rem);
  }

  .sum-site-responsive .sum-blog-article__meta {
    flex-direction: column;
    gap: 8px;
  }
}

/* Gallery album thumbnails — keep cover crop inside cards */
body.sum-site-responsive .sum-gallery-album-card__media img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

body.sum-site-responsive .sum-gallery-event-photo img {
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: cover;
}

/* Career page */
.sum-career-jobs-accordion {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 20px;
}

.sum-career-job-accordion {
  margin-bottom: 0;
  padding: 0;
  overflow: hidden;
}

.sum-career-job-accordion__summary {
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 22px 22px 20px;
  cursor: pointer;
  user-select: none;
}

.sum-career-job-accordion__summary::-webkit-details-marker {
  display: none;
}

.sum-career-job-accordion__summary-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  flex: 1;
}

.sum-career-job-accordion__summary .sum-career-job-card__title {
  display: block;
  font-size: 1.25rem;
  line-height: 1.25;
  margin-bottom: 6px;
}

.sum-career-job-accordion__summary .sum-career-job-card__meta {
  margin-bottom: 0;
  font-size: 0.92rem;
}

.sum-career-job-accordion__toggle {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(30, 58, 109, 0.08);
  color: #1e3a6d;
  transition: transform 0.25s ease, background 0.2s ease;
}

.sum-career-job-accordion[open] .sum-career-job-accordion__toggle {
  transform: rotate(180deg);
  background: rgba(48, 156, 90, 0.15);
  color: #1a6b3c;
}

.sum-career-job-accordion__panel {
  padding: 0 22px 22px;
  border-top: 1px solid rgba(39, 71, 125, 0.1);
}

.sum-career-job-accordion__lead {
  margin: 18px 0 0;
  color: #4a5f7a;
  line-height: 1.65;
}

.sum-career-job-accordion__panel .sum-career-job-card__sub:first-of-type {
  margin-top: 16px;
}

.sum-career-job-accordion__apply {
  margin-top: 20px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.sum-career-job-card {
  background: #fff;
  border-radius: 18px;
  padding: 28px 26px;
  border: 1px solid rgba(39, 71, 125, 0.1);
  box-shadow: 0 12px 36px rgba(21, 39, 78, 0.06);
  margin-bottom: 20px;
}

.sum-career-job-card__badge {
  display: inline-block;
  margin-bottom: 12px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(62, 201, 228, 0.15);
  color: #1e3a6d;
}

.sum-career-job-card__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #15274e;
  margin-bottom: 8px;
}

.sum-career-job-card__meta {
  color: #5a6f88;
  margin-bottom: 16px;
}

.sum-career-job-card__sub {
  font-size: 1rem;
  font-weight: 800;
  margin: 20px 0 10px;
  color: #27477d;
}

.sum-career-job-card__list {
  margin: 0;
  padding-left: 1.2rem;
  color: #4a5f7a;
  line-height: 1.65;
}

.sum-career-form-panel {
  background: #fff;
  border-radius: 18px;
  padding: 28px 26px;
  border: 1px solid rgba(39, 71, 125, 0.1);
  box-shadow: 0 12px 36px rgba(21, 39, 78, 0.06);
}

.sum-career-form-panel__title {
  font-size: 1.45rem;
  font-weight: 800;
  color: #15274e;
  margin-bottom: 8px;
}

.sum-career-form-panel__lead {
  color: #5a6f88;
  margin-bottom: 22px;
}

@media (max-width: 575.98px) {
  .sum-career-form-panel,
  .sum-career-job-card {
    padding: 22px 18px;
  }

  .sum-career-job-accordion__summary {
    padding: 18px 16px 16px;
  }

  .sum-career-job-accordion__panel {
    padding: 0 16px 18px;
  }
}
