/**
 * Home page composition only.
 * Layout, spacing, and cards still come from Bootstrap 5.
 */

.home-banner,
.page-banner {
  position: relative;
  background: none;
  padding: 0;
  margin: 0;
}

/* Native editable homepage hero. The source artwork is cropped to its medical
   imagery so headings and buttons remain real, editable HTML. */
.ens-native-home-hero {
  position: relative;
  display: flex;
  min-height: clamp(34rem, 33.4vw, 45rem);
  overflow: hidden;
  background: #fffaf4;
  border-bottom: 1px solid rgba(101, 0, 35, .08);
}

.ens-native-home-hero__content {
  position: relative;
  z-index: 2;
  width: 45%;
  padding: clamp(4rem, 4.75vw, 6.25rem) 1rem clamp(2.5rem, 4vw, 4.5rem) clamp(2.5rem, 5.35vw, 6.5rem);
  background: linear-gradient(90deg, #fffaf4 0%, #fffaf4 80%, rgba(255,250,244,0) 100%);
}

.ens-native-home-hero__eyebrow {
  margin: 0 0 1.25rem;
  color: #7b253d;
  font-size: clamp(.72rem, .78vw, .92rem);
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
}

.ens-native-home-hero__title {
  max-width: 33.5rem;
  margin: 0 0 1rem;
  color: #720026;
  font-size: clamp(2.65rem, 3.5vw, 4.45rem);
  font-weight: 750;
  line-height: 1.02;
  letter-spacing: -.035em;
}

.ens-native-home-hero__title span { color: #e5a52d; }

.ens-native-home-hero__text {
  max-width: 35rem;
  margin: 0 0 1.5rem;
  color: #62434d;
  font-size: clamp(1rem, 1.16vw, 1.38rem);
  line-height: 1.4;
}

.ens-native-home-hero__text p { font-size: inherit; line-height: inherit; }
.ens-native-home-hero__text p,
.ens-lede > p { margin-bottom: 0; }
.ens-footer-description p { margin-bottom: 0; }

.ens-uploaded-icon { display: inline-block; object-fit: contain; }
.ens-contact-rich p { margin: 0; }

.ens-native-home-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }

.ens-native-home-hero__button {
  display: inline-flex;
  min-height: 3.15rem;
  align-items: center;
  justify-content: center;
  gap: 1.75rem;
  padding: .75rem 1.8rem;
  border: 2px solid #790027;
  border-radius: .85rem;
  font-weight: 650;
  line-height: 1.1;
  text-decoration: none;
  transition: transform .2s ease, background-color .2s ease;
}

.ens-native-home-hero__button:hover { transform: translateY(-2px); }
.ens-native-home-hero__button--primary { background: #790027; color: #fff; }
.ens-native-home-hero__button--secondary { background: rgba(255,255,255,.75); color: #790027; border-color: #e2a72d; }
.ens-native-home-hero__button span { color: #e2a72d; font-size: 1.3em; }
.ens-native-home-hero__button:focus-visible { outline: 3px solid #e5a52d; outline-offset: 3px; }

.ens-native-home-hero__features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 40rem;
  margin-top: 1.7rem;
}

.ens-native-home-hero__feature {
  display: flex;
  flex-direction: column;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .5rem .8rem;
  color: #532633;
  font-size: .92rem;
  font-weight: 650;
  text-align: center;
  border-right: 1px solid #decfbe;
}

.ens-native-home-hero__feature:last-child { border-right: 0; }
.ens-native-home-hero__feature .ens-icon { display: inline-flex; flex: 0 0 auto; width: 4.25rem; height: 4.25rem; align-items: center; justify-content: center; padding: 1rem; border-radius: 50%; background: #f8f0e5; color: #790027; }

.ens-native-home-hero__media {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 1;
  width: 66%;
  overflow: hidden;
}

.ens-native-home-hero__media img {
  position: absolute;
  top: 0;
  right: 0;
  width: auto;
  max-width: none;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 992px) and (max-width: 1399.98px) {
  .ens-native-home-hero__actions { gap: .6rem; }
  .ens-native-home-hero__button { gap: .8rem; padding-inline: 1rem; font-size: .9rem; }
}

@media (max-width: 991.98px) {
  .ens-native-home-hero { display: block; }
  .ens-native-home-hero__content { width: 100%; padding: 3.5rem 1.5rem 2.25rem; background: #fffaf4; }
  .ens-native-home-hero__media { position: relative; width: 100%; height: 22rem; }
  .ens-native-home-hero__media img { right: 0; }
}

@media (max-width: 575.98px) {
  .ens-native-home-hero__title { font-size: 2.5rem; }
  .ens-native-home-hero__actions { display: grid; }
  .ens-native-home-hero__button { width: 100%; }
  .ens-native-home-hero__features { gap: .5rem; }
  .ens-native-home-hero__feature { flex-direction: column; padding-inline: .35rem; font-size: .78rem; }
  .ens-native-home-hero__media { height: 16rem; }
}

.ens-native-image-content {
  padding-block: var(--ens-space-section, 5rem);
  background: var(--ens-surface, #fff);
}

.ens-native-image-content__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}

.ens-native-image-content__copy { min-width: 0; }
.ens-native-image-content__copy h2 { color: var(--ens-secondary); margin-bottom: 1.25rem; }
.ens-native-image-content__body { color: var(--ens-body-muted, #705962); }
.ens-native-image-content__bullets { margin: 1.25rem 0 1.5rem; padding: 0; list-style: none; }
.ens-native-image-content__bullets li { display: flex; align-items: flex-start; gap: .65rem; }
.ens-native-image-content__bullets li + li { margin-top: .55rem; }
.ens-native-image-content__bullets .ens-native-image-content__bullet-icon { flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin-top: .2rem; color: var(--ens-primary); }
.ens-native-image-content__media { margin: 0; }
.ens-native-image-content__media img { aspect-ratio: 1 / 1; object-fit: cover; }
.ens-native-image-content--image-left .ens-native-image-content__media { grid-column: 1; grid-row: 1; }
.ens-native-image-content--image-left .ens-native-image-content__copy { grid-column: 2; grid-row: 1; }

@media (max-width: 767.98px) {
  .ens-native-image-content__grid { grid-template-columns: 1fr; }
  .ens-native-image-content--image-left .ens-native-image-content__media,
  .ens-native-image-content--image-left .ens-native-image-content__copy { grid-column: auto; grid-row: auto; }
  .ens-native-image-content__copy { order: 1; }
  .ens-native-image-content__media { order: 2; }
}

.home-banner img,
.page-banner img {
  display: block;
  width: 100%;
  height: auto;
}

.home-banner-link,
.page-banner-link {
  position: absolute;
  z-index: 1;
}

.home-banner-link--book {
  left: 5.5%;
  top: 46%;
  width: 16%;
  height: 11%;
}

.home-banner-link--explore {
  left: 22.5%;
  top: 46%;
  width: 14%;
  height: 11%;
}

.page-banner-link--explore {
  left: 4.2%;
  top: 72%;
  width: 17.5%;
  height: 12%;
}

.page-banner-link--book {
  left: 22.5%;
  top: 72%;
  width: 17.5%;
  height: 12%;
}

.home-banner-link:focus-visible,
.page-banner-link:focus-visible {
  outline: 0.15rem solid var(--ens-primary);
  outline-offset: 0.15rem;
}

.ens-icon-md {
  width: 2rem;
  height: 2rem;
}

.ens-icon-lg {
  width: 4rem;
  height: 4rem;
}

.ens-icon-flip {
  transform: scaleX(-1);
}

.home-condition-card .ens-icon {
  width: 4.5rem;
  height: 4.5rem;
}

.home-why-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--ens-space-block);
  row-gap: var(--ens-space-block);
}

@media (min-width: 768px) {
  .home-why-points {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 3rem;
    row-gap: 3.25rem;
  }
}

.home-why-point {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 0.85rem;
}

.home-why-point .ens-icon {
  width: 2.75rem;
  height: 2.75rem;
}

.home-why-point h3 {
  max-width: 10.5rem;
  font-weight: 600;
  line-height: 1.35;
}

.home-journey-card {
  overflow: hidden;
  background-color: var(--ens-surface);
  border-top: 0.22rem solid var(--ens-primary) !important;
}

.home-journey-index {
  color: var(--ens-primary);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
}

.home-journey-icon {
  width: 3.5rem;
  height: 3.5rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  box-shadow: 0 0 0 0.3rem rgba(250, 195, 75, 0.2);
}

.home-journey-icon .ens-icon {
  width: 1.75rem;
  height: 1.75rem;
}

#home-why .ens-lede {
  max-width: 40rem;
}

.home-vision-points {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: var(--ens-space-block);
  row-gap: 0.75rem;
  padding-left: 1.15rem;
}

.home-faq .accordion-button {
  font-weight: 500;
  color: var(--ens-heading);
  box-shadow: none;
}

.home-faq .accordion-item,
.home-faq .accordion-item:first-child,
.home-faq .accordion-button {
  border: 0;
}

.home-faq .accordion-item:not(:last-child) {
  border-bottom: var(--bs-border-width) solid var(--ens-border);
}

.home-faq .accordion-button:not(.collapsed) {
  background-color: transparent;
  color: var(--ens-heading);
}

.home-faq .accordion-button:focus {
  box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color);
}

.home-stories-pair > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.home-stories,
.home-faq {
  flex: 1 1 auto;
}

.home-stories {
  position: relative;
  min-height: 18rem;
}

.home-stories .carousel-inner,
.home-stories .carousel-item,
.home-stories .home-story-card {
  height: 100%;
}

.home-story-card {
  border-radius: var(--bs-border-radius-xl) !important;
}

.home-story-card .card-body {
  padding-bottom: 5rem;
}

.home-story-quote {
  font-size: 3.5rem;
  line-height: 0.7;
  color: var(--ens-primary);
  font-weight: 700;
}

.home-story-avatar {
  width: 2.75rem;
  height: 2.75rem;
  background-color: var(--ens-secondary);
  color: var(--ens-primary);
}

.home-story-nav {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 2;
}

.home-story-nav .btn {
  --bs-btn-padding-y: 0.55rem;
  --bs-btn-padding-x: 0.55rem;
  width: 2.75rem;
  height: 2.75rem;
}

.home-faq {
  border-radius: var(--bs-border-radius-xl) !important;
}

.home-faq .accordion-item:first-child,
.home-faq .accordion-item:first-child .accordion-button {
  border-top-left-radius: var(--bs-border-radius-xl);
  border-top-right-radius: var(--bs-border-radius-xl);
}

.home-faq .accordion-item:last-child,
.home-faq .accordion-item:last-child .accordion-button.collapsed {
  border-bottom-left-radius: var(--bs-border-radius-xl);
  border-bottom-right-radius: var(--bs-border-radius-xl);
}

@media (prefers-reduced-motion: reduce) {
  .home-scroll-track {
    scroll-behavior: auto;
  }
}

.contact-map {
  display: block;
  border: 0;
}

.contact-journey-icon {
  width: 5.25rem;
  height: 5.25rem;
}

.contact-journey-icon .ens-icon {
  width: 2.25rem;
  height: 2.25rem;
}

.contact-page #get-in-touch .ens-intro {
  text-align: center;
}

.contact-page #get-in-touch .ens-intro .ens-eyebrow::after {
  left: 50%;
  transform: translateX(-50%);
  transform-origin: center;
  animation-name: ens-eyebrow-mark-center;
}

.contact-page #find-us .ens-lede {
  max-width: 40rem;
}

.contact-page .card {
  min-width: 0;
}

.contact-page .form-control,
.contact-page .form-select {
  max-width: 100%;
}

.contact-page .wpcf7 { margin-top: 1.5rem; }
.contact-page .wpcf7 form { margin: 0; }
.contact-page .wpcf7 label { display: block; width: 100%; color: var(--ens-body, #38252c); font-weight: 500; }
.contact-page .wpcf7-form-control-wrap { display: block; margin-top: .45rem; }
.contact-page .wpcf7 .form-control,
.contact-page .wpcf7 .form-select {
  width: 100%;
  min-height: 3rem;
  padding: .7rem .85rem;
  color: var(--ens-body, #38252c);
  background: #fff;
  border: 1px solid #d9cabb;
  border-radius: .55rem;
  box-shadow: none;
}
.contact-page .wpcf7 textarea.form-control { min-height: 8rem; resize: vertical; }
.contact-page .wpcf7 .form-control:focus,
.contact-page .wpcf7 .form-select:focus { border-color: var(--ens-primary, #790027); box-shadow: 0 0 0 .2rem rgba(121,0,39,.1); }
.contact-page .wpcf7-not-valid-tip { margin-top: .3rem; font-size: .82rem; }
.contact-page .wpcf7-response-output { margin: 1rem 0 0 !important; padding: .8rem 1rem !important; border-radius: .5rem; }
.contact-page .wpcf7-spinner { vertical-align: middle; }

.contact-submit {
  width: 100%;
}

.contact-page #find-us {
  background-color: var(--ens-surface);
}

.contact-page .ens-section--cta {
  padding-top: var(--ens-space-section);
}

.contact-page .ens-final-cta__btn {
  white-space: normal;
  height: auto;
  min-height: 52px;
}

@media (min-width: 576px) {
  .contact-submit {
    width: auto;
  }
}

@media (max-width: 575.98px) {
  .contact-page .form-control,
  .contact-page .form-select {
    font-size: 1rem;
  }

  .contact-journey-icon {
    width: 4.25rem;
    height: 4.25rem;
  }

  .contact-journey-icon .ens-icon {
    width: 1.85rem;
    height: 1.85rem;
  }

  .contact-page #book-appointment .card-body {
    padding: 1.25rem;
  }

  .contact-page .ens-final-cta__action {
    width: 100%;
  }

  .contact-page .ens-final-cta__btn {
    width: 100%;
  }
}

@media (min-width: 992px) {
  .contact-page .page-banner-link--explore,
  .contact-page .page-banner-link--book {
    height: 14%;
  }

  .contact-page #get-in-touch .ens-intro {
    text-align: start;
  }

  .contact-page #get-in-touch .ens-intro .ens-eyebrow::after {
    left: 0;
    transform: none;
    transform-origin: left center;
    animation-name: ens-eyebrow-mark;
  }
}

@media (min-width: 1200px) {
  .contact-page .ens-final-cta__btn {
    white-space: nowrap;
  }
}

.procedures-degree {
  width: 4.5rem;
  height: 4.5rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
}

/**
 * Procedures list page layout only.
 */
@media (min-width: 1600px) {
  .procedures-page .container {
    max-width: 1540px;
  }
}

.procedures-page .container,
.procedures-page [class*="col-"],
.procedures-page .card,
.procedures-page .card-body {
  min-width: 0;
}

.procedures-page h2,
.procedures-page h3,
.procedures-page .h6 {
  overflow-wrap: break-word;
}

.procedures-page .btn {
  white-space: normal;
  height: auto;
}

.procedures-page .col-xl-6 > figure > img,
.procedures-page .col-lg-6 > figure > img {
  object-fit: contain;
  object-position: center;
}

.procedures-page .procedures-service-media {
  height: 10.5rem;
  object-fit: cover;
  object-position: center;
}

.procedures-page .procedures-service-icon-panel {
  min-height: 10.5rem;
  background-color: var(--ens-bg);
}

.procedures-page .procedures-service-icon-panel .ens-icon {
  width: 4.5rem;
  height: 4.5rem;
}

.procedures-advantage-stage {
  background-color: var(--ens-secondary);
  background-image: radial-gradient(ellipse at top center, rgba(250, 195, 75, 0.22), transparent 58%);
  border: 1px solid rgba(250, 195, 75, 0.4);
  box-shadow: 0 1.25rem 2.75rem rgba(79, 0, 27, 0.16);
}

.procedures-advantage-stage .ens-intro h2 {
  color: var(--ens-surface);
}

.procedures-advantage-stage .ens-lede {
  max-width: 40rem;
  color: rgba(251, 247, 239, 0.88);
}

.procedures-advantage-index {
  color: var(--ens-primary);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
}

.procedures-advantage-icon {
  width: 4.75rem;
  height: 4.75rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  box-shadow: 0 0 0 0.4rem rgba(250, 195, 75, 0.22);
}

.procedures-advantage-icon .ens-icon {
  width: 2.35rem;
  height: 2.35rem;
}

.procedures-advantage-card {
  overflow: hidden;
  background-color: var(--ens-surface);
  border-top: 0.28rem solid var(--ens-primary) !important;
}

:is(.procedures-page, .procedure-detail-page) .procedures-step-icon {
  width: 3.25rem;
  height: 3.25rem;
}

.procedures-page .procedures-step-arrow {
  width: 1.75rem;
  height: 1.75rem;
}

:is(.procedures-page, .procedure-detail-page) .procedures-approach-steps {
  padding-top: 0.75rem;
}

:is(.procedures-page, .procedure-detail-page) .procedures-step-card {
  position: relative;
  padding-top: 0.75rem;
}

:is(.procedures-page, .procedure-detail-page) .procedures-step-num {
  width: 2.25rem;
  height: 2.25rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  font-size: 0.95rem;
}

:is(.procedures-page, .procedure-detail-page) .procedures-step-card .procedures-step-num {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 0.15rem solid var(--ens-surface);
}

.procedures-page .procedures-degree,
.procedure-detail-page .procedures-degree {
  display: none;
  width: 5.25rem;
  height: 5.25rem;
  font-size: 1.25rem;
}

@media (min-width: 768px) {
  .procedures-page .procedures-service-media,
  .procedures-page .procedures-service-icon-panel {
    height: 12rem;
    min-height: 12rem;
  }
}

@media (min-width: 992px) {
  .procedures-page .procedures-service-media,
  .procedures-page .procedures-service-icon-panel {
    height: 16rem;
    min-height: 16rem;
  }

  :is(.procedures-page, .procedure-detail-page) .procedures-step-icon {
    width: 3.5rem;
    height: 3.5rem;
  }
}

@media (min-width: 1200px) {
  .procedures-page .procedures-service-media,
  .procedures-page .procedures-service-icon-panel {
    height: 13rem;
    min-height: 13rem;
  }

  .procedures-page .procedures-degree,
  .procedure-detail-page .procedures-degree {
    display: inline-flex;
  }
}

@media (min-width: 576px) and (max-width: 1199.98px) {
  :is(.procedures-page, .procedure-detail-page) .procedures-approach-steps > .col:last-child {
    margin-left: auto;
    margin-right: auto;
  }
}

/**
 * Blog list page only.
 * Layout stays Bootstrap; these rules cover media crop and chips.
 */
@media (min-width: 1600px) {
  .blog-page .container {
    max-width: 1540px;
  }
}

.blog-page .blog-article-media img {
  object-fit: cover;
  object-position: center;
}

.blog-page .blog-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.9rem;
  border-radius: 50rem;
  background-color: var(--ens-surface);
  color: var(--ens-secondary);
  border: 1px solid var(--ens-border);
  font-size: var(--ens-fs-eyebrow);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.blog-page .blog-article-media {
  overflow: hidden;
  border-top-left-radius: var(--bs-border-radius-xl);
  border-top-right-radius: var(--bs-border-radius-xl);
}

.blog-page #blog-grid > [class*="col"] {
  min-width: 0;
}

.blog-page .blog-article-card {
  min-width: 0;
}

.blog-page .blog-article-card h3 {
  overflow-wrap: anywhere;
}

.blog-page .blog-article-media img {
  height: 13.5rem;
}

.blog-page .blog-chip {
  max-width: calc(100% - 1.25rem);
  overflow: hidden;
  text-overflow: ellipsis;
}

.blog-page #blog-faq .home-faq .accordion-button {
  white-space: normal;
  padding-right: 2.25rem;
}

@media (max-width: 767.98px) {
  .blog-page .blog-testimonial-slide .home-story-card .card-body,
  .conditions-page .blog-testimonial-slide .home-story-card .card-body,
  .doctor-page .blog-testimonial-slide .home-story-card .card-body {
    padding: 1.25rem;
  }

  .blog-page #blog-faq .card {
    overflow: hidden;
  }
}

@media (min-width: 768px) {
  .blog-page .blog-article-media img {
    height: 12rem;
  }
}

@media (min-width: 992px) {
  .blog-page .blog-article-media img {
    height: 11.5rem;
  }

  .blog-testimonial-slide {
    flex-basis: calc((100% - 3rem) / 3);
  }
}

@media (min-width: 1400px) {
  .blog-page .blog-article-media img {
    height: 10.75rem;
  }
}

.blog-page .blog-article-badge {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 50%);
  z-index: 1;
}

.blog-page .blog-article-card .card-body {
  padding-top: 1.85rem;
}

.blog-page .blog-filters .form-label {
  margin-bottom: 0.35rem;
}

.blog-page #latest-articles .ens-lede,
.blog-page #blog-testimonials .ens-lede,
.blog-page #blog-faq .ens-lede,
.conditions-page #conditions-testimonials .ens-lede,
.doctor-page #doctor-testimonials .ens-lede {
  max-width: 40rem;
}

@media (min-width: 992px) {
  .blog-page #latest-articles .ens-intro,
  .blog-page #blog-testimonials .ens-intro {
    min-height: 9.25rem;
  }
}

.blog-page #blog-faq .card {
  min-width: 0;
}

.blog-page #blog-faq .ens-intro {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

@media (min-width: 992px) {
  .blog-page #blog-faq .ens-intro {
    min-height: 3.5rem;
  }
}

.blog-testimonial-viewport {
  overflow: hidden;
}

.blog-testimonial-track {
  display: flex;
  gap: 1.5rem;
  transition: transform 0.4s ease;
}

.blog-testimonial-slide {
  flex: 0 0 100%;
  min-width: 0;
  display: flex;
}

.blog-testimonial-slide .home-story-card {
  width: 100%;
}

.blog-page .blog-testimonial-slide .home-story-card .card-body,
.conditions-page .blog-testimonial-slide .home-story-card .card-body,
.doctor-page .blog-testimonial-slide .home-story-card .card-body {
  padding-bottom: 1.5rem;
}

.blog-testimonial-nav {
  --bs-btn-padding-y: 0.55rem;
  --bs-btn-padding-x: 0.55rem;
  width: 2.75rem;
  height: 2.75rem;
}

.blog-page #blog-faq .home-faq .accordion-item,
.blog-page #blog-faq .home-faq .accordion-button {
  background-color: transparent;
}

.blog-page #blog-faq .home-faq .accordion-button {
  border: 0;
  padding-left: 0;
  padding-right: 2.25rem;
}

.blog-page #blog-faq .home-faq .accordion-body {
  padding-left: 0;
  padding-right: 0;
}

@media (min-width: 768px) {
  .blog-page .blog-article-media img {
    height: 12rem;
  }

  .blog-testimonial-slide {
    flex-basis: calc((100% - 1.5rem) / 2);
  }
}

@media (min-width: 992px) {
  .blog-testimonial-slide {
    flex-basis: calc((100% - 3rem) / 3);
  }
}

@media (prefers-reduced-motion: reduce) {
  .blog-testimonial-track {
    transition: none;
  }
}

/**
 * Blog article template only. Reuse this file's HTML structure for future posts.
 */
@media (min-width: 1600px) {
  .blog-detail-page .container {
    max-width: 1540px;
  }
}

.blog-detail-page .blog-detail-feature-caption {
  position: absolute;
  left: 1.25rem;
  bottom: 1.25rem;
  color: #fff;
  font-size: 1.15rem;
  line-height: 1.25;
  text-shadow: 0 1px 8px rgba(79, 0, 27, 0.45);
}

.blog-detail-page .blog-detail-icon {
  width: 2.5rem;
  height: 2.5rem;
}

.blog-detail-page .blog-detail-icon .ens-icon {
  width: 1.25rem;
  height: 1.25rem;
}

.blog-detail-page .blog-detail-icon--lg {
  width: 3.5rem;
  height: 3.5rem;
}

.blog-detail-page .blog-detail-icon--lg .ens-icon {
  width: 1.75rem;
  height: 1.75rem;
}

.blog-detail-page .blog-detail-commitment {
  background-color: var(--ens-surface);
  border: 1px solid var(--ens-border);
}

.blog-detail-page .blog-detail-thumb {
  width: 4.5rem;
  height: 4.5rem;
  object-fit: cover;
}

.blog-detail-page .blog-detail-sidebar-cta {
  background-color: var(--ens-secondary);
}

.blog-detail-page .blog-detail-sidebar-cta h2,
.blog-detail-page .blog-detail-sidebar-cta p {
  color: var(--ens-surface);
}

.blog-detail-page .blog-detail-share {
  --bs-btn-color: var(--ens-secondary);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--ens-secondary);
  --bs-btn-hover-color: var(--ens-on-secondary);
  --bs-btn-hover-bg: var(--ens-secondary);
  --bs-btn-hover-border-color: var(--ens-secondary);
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.blog-detail-page .blog-detail-tag {
  background-color: var(--ens-surface);
  color: var(--ens-secondary);
  border: 1px solid var(--ens-border);
  font-weight: 500;
  padding: 0.5rem 0.9rem;
}

/**
 * Conditions list page only.
 */
@media (min-width: 1600px) {
  .conditions-page .container {
    max-width: 1540px;
  }
}

.conditions-page .ens-section--cta {
  padding-top: var(--ens-space-section);
}

.conditions-page .conditions-help-media {
  object-fit: contain;
  object-position: center;
}

.conditions-page .conditions-card-media {
  height: 10.5rem;
  overflow: hidden;
  background-color: var(--ens-bg);
}

.conditions-page .conditions-card-media img {
  object-fit: cover;
  object-position: center;
}

.conditions-page .conditions-card-icon {
  width: 4.5rem;
  height: 4.5rem;
}

@media (min-width: 768px) {

  .conditions-page .conditions-card-media {
    height: 12rem;
  }
}

@media (min-width: 992px) {

  .conditions-page .conditions-card-media {
    height: 13rem;
  }
}

/**
 * Procedure detail master template.
 * Reuse these classes on every future procedure page.
 */
@media (min-width: 1600px) {
  .procedure-detail-page .container {
    max-width: 1540px;
  }
}

.procedure-detail-page .container,
.procedure-detail-page [class*="col-"],
.procedure-detail-page .card,
.procedure-detail-page .card-body {
  min-width: 0;
}

.procedure-detail-page h2,
.procedure-detail-page h3,
.procedure-detail-page .h6,
.procedure-detail-page .accordion-button {
  overflow-wrap: break-word;
}

.procedure-detail-page .btn {
  white-space: normal;
  height: auto;
}

.procedure-detail-page .procedure-about img,
.procedure-detail-page .procedure-benefits img,
.procedure-detail-page .procedure-technology img {
  object-fit: contain;
  object-position: center;
}

.procedure-detail-page .procedure-icon {
  width: 3.25rem;
  height: 3.25rem;
}

.procedure-detail-page .procedure-icon .ens-icon {
  width: 1.6rem;
  height: 1.6rem;
}

.procedure-detail-page .procedure-step-num {
  width: 2.25rem;
  height: 2.25rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  font-size: 0.95rem;
}

.procedure-detail-page .procedure-step-icon {
  width: 3.25rem;
  height: 3.25rem;
}

.procedure-detail-page .procedure-step-arrow {
  width: 1.75rem;
  height: 1.75rem;
}

/**
 * Reusable single-condition detail template.
 * Swap content per condition; keep these layout rules.
 */
@media (min-width: 1600px) {
  .condition-detail-page .container {
    max-width: 1540px;
  }
}

.condition-detail-page .condition-media {
  object-fit: contain;
  object-position: center;
}

.condition-detail-page .condition-compare-icon {
  width: 4.5rem;
  height: 4.5rem;
}

.condition-detail-page .accordion-button {
  font-weight: 500;
  color: var(--ens-heading);
  box-shadow: none;
}

.condition-detail-page .accordion-button:not(.collapsed) {
  background-color: transparent;
  color: var(--ens-heading);
}

.condition-detail-page .accordion-button:focus {
  box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color);
}

/**
 * Terms & Conditions page only. Single centered column, no sidebar.
 */
.privacy-policy-page .policy-panel,
.terms-page .policy-panel {
  background-color: rgb(var(--bs-tertiary-bg-rgb));
  border: 1px solid var(--ens-border);
  border-radius: 1.5rem;
  margin-bottom: 0;
}

.terms-page .terms-block:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.terms-page .terms-document {
  max-width: 75rem;
}

.terms-page .terms-num {
  width: 2.75rem;
  height: 2.75rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  font-size: 0.85rem;
}

@media (min-width: 768px) {

  .terms-page .terms-document {
    max-width: 75rem;
  }
}

/**
 * Privacy Policy page only. Single-column document, no sidebar.
 */
.privacy-policy-page .privacy-doc {
  max-width: 75rem;
  margin-inline: auto;
}

.privacy-policy-page .privacy-block {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--ens-border);
}

.privacy-policy-page .privacy-block:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.privacy-policy-page .privacy-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  font-size: 0.8rem;
  font-weight: 700;
  flex-shrink: 0;
}

.privacy-policy-page .privacy-list {
  padding-left: 1.2rem;
}

.privacy-policy-page .privacy-list li::marker {
  color: var(--ens-secondary);
}

/**
 * About Us page only.
 */
.about-page .ens-section--cta {
  padding-top: var(--ens-space-section);
}

.about-page .container,
.about-page [class*="col-"],
.about-page .card,
.about-page figure {
  min-width: 0;
}

.about-page .about-media {
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}

.about-page #about-who-heading,
.about-page #about-commitment-heading,
.about-page #about-tech-heading,
.about-page #about-difference-heading {
  overflow-wrap: anywhere;
}

.about-page .btn {
  white-space: normal;
  height: auto;
}

.about-page .about-badge {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  width: 6.5rem;
  height: 6.5rem;
  background-color: var(--ens-secondary);
  color: var(--ens-primary);
  font-size: 0.62rem;
  line-height: 1.25;
  letter-spacing: 0.04em;
  padding: 0.6rem;
}

.about-page .about-badge > span {
  display: block;
  line-height: 1.3;
}

.about-page .about-icon {
  width: 3.5rem;
  height: 3.5rem;
}

.about-page .about-icon .ens-icon {
  width: 1.75rem;
  height: 1.75rem;
}

.about-page .about-step-num {
  width: 2.25rem;
  height: 2.25rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  font-size: 0.95rem;
}

.about-page .about-step-card {
  position: relative;
  padding-top: 0.75rem;
}

.about-page .about-step-card .about-step-num {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 0.15rem solid var(--ens-surface);
}

.about-page .about-step-icon {
  width: 3.25rem;
  height: 3.25rem;
}

.about-page .about-approach-steps {
  padding-top: 0.75rem;
}

.about-page .about-doctor-placeholder {
  min-height: 12rem;
  background-color: var(--ens-surface);
  border: 1px solid var(--ens-border);
}

.about-page .about-quote {
  background-color: var(--ens-secondary);
  color: var(--ens-surface);
}

.about-page .about-commitment-caption {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  color: var(--ens-primary);
  font-size: 0.9rem;
  line-height: 1.25;
  text-align: right;
  max-width: 45%;
}

.about-page #about-difference .h6 {
  overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
  .about-page .about-split-copy,
  .about-page .ens-intro,
  .about-page .ens-intro.text-center,
  .about-page .card-body,
  .about-page .card.text-center {
    text-align: start;
  }

  .about-page .ens-lede,
  .about-page .ens-lede.mx-auto {
    margin-left: 0;
    margin-right: 0;
  }

  .about-page .ens-eyebrow::after,
  .about-page .text-center .ens-eyebrow::after {
    left: 0;
    transform: none;
    transform-origin: left;
    animation-name: ens-eyebrow-mark;
  }

  .about-page #about-why .ens-intro,
  .about-page #about-why .ens-intro.text-center,
  .about-page #about-why .card-body,
  .about-page #about-why .card.text-center,
  .about-page #about-approach .ens-intro,
  .about-page #about-approach .ens-intro.text-center,
  .about-page #about-approach .card-body,
  .about-page #about-approach .card.text-center,
  .about-page #about-difference,
  .about-page #about-difference .about-split-copy,
  .about-page #about-difference .card-body,
  .about-page #about-difference .card.text-center,
  .about-page #about-mission .ens-intro,
  .about-page #about-mission .ens-intro.text-center,
  .about-page #about-mission .card-body {
    text-align: center;
  }

  .about-page #about-mission .about-icon {
    margin-left: auto;
    margin-right: auto;
  }

  .about-page #about-why .ens-lede,
  .about-page #about-approach .ens-lede,
  .about-page #about-difference .ens-lede,
  .about-page #about-mission .ens-lede {
    margin-left: auto;
    margin-right: auto;
  }

  .about-page #about-why .ens-eyebrow::after,
  .about-page #about-why .text-center .ens-eyebrow::after,
  .about-page #about-approach .ens-eyebrow::after,
  .about-page #about-approach .text-center .ens-eyebrow::after,
  .about-page #about-difference .ens-eyebrow::after,
  .about-page #about-difference .text-center .ens-eyebrow::after,
  .about-page #about-mission .ens-eyebrow::after,
  .about-page #about-mission .text-center .ens-eyebrow::after {
    left: 50%;
    transform: translateX(-50%);
    transform-origin: center;
    animation-name: ens-eyebrow-mark-center;
  }
}

@media (max-width: 575.98px) {
  .about-page #about-who-heading {
    font-size: 1.5rem;
  }

  .about-page .card-body {
    padding: 1.15rem;
  }

  .about-page .about-step-card .card-body {
    padding-top: 2.25rem;
  }
}

@media (min-width: 576px) and (max-width: 991.98px) {
  .about-page .about-approach-steps > .col:last-child {
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .about-page .about-mission-row > [class*="col-"]:last-child {
    margin-left: auto;
    margin-right: auto;
  }

  .about-page .about-badge {
    width: 8rem;
    height: 8rem;
    font-size: 0.68rem;
  }

  .about-page .about-commitment-caption {
    font-size: 1.05rem;
    right: 1rem;
    bottom: 1rem;
  }

  .about-page .about-doctor-placeholder {
    min-height: 14rem;
  }
}

@media (min-width: 992px) {
  .about-page .about-badge {
    width: 8.75rem;
    height: 8.75rem;
    font-size: 0.7rem;
    left: 0.5rem;
    bottom: 1rem;
  }

  .about-page .about-commitment-caption {
    font-size: 1.15rem;
    right: 1.25rem;
    bottom: 1.25rem;
  }

  .about-page .about-doctor-placeholder {
    min-height: 16rem;
  }
}

@media (min-width: 1200px) {
  .about-page .about-badge {
    left: -1.25rem;
    width: 9.5rem;
    height: 9.5rem;
    font-size: 0.85rem;
  }
}

/**
 * Technology page only.
 */
.technology-page .tech-media {
  object-fit: contain;
  object-position: center;
}

.technology-page .tech-compare-deg {
  font-size: 2rem;
  color: var(--ens-heading);
}

.technology-page .tech-compare-active {
  border-color: var(--ens-primary);
}

.technology-page .tech-tool-media {
  min-height: 8.5rem;
  background-color: var(--ens-bg);
}

.technology-page .tech-step-num {
  width: 2.5rem;
  height: 2.5rem;
  background-color: var(--ens-primary);
  color: var(--ens-secondary);
  font-size: 0.85rem;
}

.technology-page .tech-expertise-kicker {
  color: var(--ens-primary);
  font-size: 1.15rem;
  line-height: 1.35;
  font-style: italic;
}

/**
 * Doctor profile page only.
 */
.doctor-page .ens-section--cta {
  padding-top: var(--ens-space-section);
}

.doctor-page .container,
.doctor-page [class*="col-"],
.doctor-page .card {
  min-width: 0;
}

.doctor-page #doctor-heading,
.doctor-page .h6 {
  overflow-wrap: break-word;
}

.doctor-page .btn {
  white-space: normal;
  height: auto;
}

.doctor-page .doctor-portrait {
  min-height: 16rem;
  background-color: var(--ens-surface);
  border: 1px solid var(--ens-border);
}

.doctor-page .doctor-icon {
  width: 3.5rem;
  height: 3.5rem;
}

.doctor-page .doctor-icon .ens-icon {
  width: 1.75rem;
  height: 1.75rem;
}

.doctor-page .doctor-quote {
  background-color: var(--ens-secondary);
  color: var(--ens-surface);
}

.doctor-page .ens-lede.mx-auto {
  max-width: 40rem;
}

@media (max-width: 991.98px) {
  .doctor-page .doctor-portrait {
    min-height: 12rem;
  }
}

