/* Responsive repairs for the existing theme components. Content and native
   Elementor widgets remain editable in their original documents. */
@media (max-width: 1024px) {
  .smile-catalog .sl-catalog-columns > .e-con-inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .smile-catalog .elementor .sl-catalog-detail-rail { position: static; }
  :is(.elementor-91000, .smile-catalog) .elementor-button,
  [data-elementor-id='991140'] .elementor-button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: normal;
  }
  :is(.elementor-91000, .smile-catalog) .e-n-accordion-item-title {
    min-height: 52px;
  }
  :is(.elementor-91000, .smile-catalog) .elementor-widget-n-carousel {
    padding-bottom: 56px;
  }
  :is(.elementor-91000, .smile-catalog) .elementor-widget-n-carousel.elementor-element .elementor-swiper-button {
    top: auto;
    bottom: 0;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    transform: none;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5e9d8;
    border: 1px solid #d8cbbe;
    border-radius: 50%;
  }
  :is(.elementor-91000, .smile-catalog) .elementor-widget-n-carousel.elementor-element .elementor-swiper-button-prev { left: 0; }
  :is(.elementor-91000, .smile-catalog) .elementor-widget-n-carousel.elementor-element .elementor-swiper-button-next { right: 0; }
  :is(.elementor-91000, .smile-catalog) .elementor-widget-n-carousel .elementor-swiper-button svg { width: 18px; height: 18px; }
  :is(.elementor-91000, .smile-catalog) .elementor-widget-n-carousel .swiper-pagination {
    position: absolute;
    bottom: 0;
    left: 48px;
    right: 48px;
    width: auto;
    min-height: 44px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
  }
  :is(.elementor-91000, .smile-catalog) .elementor-widget-n-carousel .swiper-pagination-bullet {
    width: 24px;
    height: 44px;
    margin: 0 1px;
    background: transparent;
    opacity: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
  }
  :is(.elementor-91000, .smile-catalog) .swiper-pagination-bullet::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #713d56;
    opacity: .25;
  }
  :is(.elementor-91000, .smile-catalog) .swiper-pagination-bullet-active::before { opacity: 1; }
}

@media (max-width: 767px) {
  .smile-catalog { --sl-edge: 12px; --sl-gutter: 20px; --sl-section: 38px; }
  .smile-catalog .elementor .elementor-widget-heading:not(.sl-treatment-heading) h2.elementor-heading-title {
    font-size: clamp(28px, 8vw, 34px);
    line-height: 1.12;
  }
  .smile-catalog #booking h2.elementor-heading-title { font-size: 32px; line-height: 1.12; }
  .smile-catalog .elementor .sl-catalog-hero-copy h1.elementor-heading-title {
    font-size: clamp(32px, 9.5vw, 44px);
    line-height: 1.08;
    overflow-wrap: anywhere;
  }
  .smile-catalog .elementor .sl-catalog-hero-copy { padding: 28px 20px 22px; }
  .smile-catalog .sl-catalog-hero-copy .elementor-widget-text-editor { font-size: 16px; line-height: 1.65; }
  .smile-catalog .elementor .sl-catalog-row { padding-right: 52px; gap: 12px; }
  .smile-catalog .elementor .sl-catalog-row-copy .elementor-widget-text-editor,
  .smile-catalog .elementor .sl-catalog-card-copy .elementor-widget-text-editor { font-size: 16px; line-height: 1.6; }
  .smile-catalog .elementor .sl-catalog-row-copy .elementor-button,
  .smile-catalog .elementor .sl-catalog-card-copy .elementor-button { width: 44px; height: 44px; min-width: 44px; }
  .smile-catalog-category .elementor .sl-catalog-row:has(.sl-catalog-row-photo img[src*='/smileline-treatment-']) {
    grid-template-columns: minmax(0, 1fr) 40px;
    padding-right: 52px;
    gap: 12px;
  }
  .smile-catalog-category .elementor #treatment-options:has(> .sl-catalog-section-portrait) { grid-template-columns: minmax(0, 1fr); }
  .smile-catalog-category #treatment-options > .elementor-widget-heading:nth-child(-n + 2),
  .smile-catalog-category #treatment-options > .sl-catalog-section-portrait { grid-column: 1; grid-row: auto; }
  .smile-catalog-category #treatment-options > .sl-catalog-section-portrait { max-width: 180px; }
  .smile-catalog-category #treatment-options .sl-catalog-row h3.elementor-heading-title { font-size: 22px; line-height: 1.2; }
  .smile-catalog .sl-catalog-frame .elementor-icon-list-text { font-size: 13px; line-height: 1.5; }
  .smile-catalog #treatment-navigation .elementor-icon-list-items {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    gap: 8px;
    margin: 0;
    padding: 2px 0 6px;
  }
  .smile-catalog #treatment-navigation .elementor-icon-list-item { flex: 0 0 auto; margin: 0; }
  .smile-catalog #treatment-navigation .elementor-icon-list-item a {
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid #d8cbbe;
    border-radius: 99px;
    background: #fff;
    white-space: nowrap;
  }
  .smile-catalog .sl-catalog-rail .elementor-icon-list-item a,
  .smile-catalog #booking .elementor-icon-list-item a,
  .smile-catalog #common-treatments .elementor-icon-list-item a { min-height: 44px; padding-block: 10px; }
  :is(.elementor-91000, .smile-catalog) .e-n-accordion-item-title-text { font-size: 16px; line-height: 1.4; }
  :is(.elementor-91000, .smile-catalog) :is(a,button,[role='button']):focus-visible { outline: 2px solid #713d56; outline-offset: 3px; }
}
