/* Site-wide mobile polish */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
video,
iframe {
  max-width: 100%;
}

@media (max-width: 760px) {
  body {
    min-width: 0 !important;
  }

  .section > .container,
  .section-clear > .container,
  .node.section > .container,
  .node.section-clear > .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }

  .gridwrap,
  .grid,
  .cont {
    max-width: 100% !important;
  }

  .gridwrap > .col,
  .grid > .gridwrap > .col {
    max-width: 100% !important;
  }

  .textable {
    overflow-wrap: anywhere !important;
  }

  /* Exported site header */
  .node.css1 {
    min-height: 76px !important;
    overflow: visible !important;
    z-index: 50 !important;
  }

  .node.css1 > .container,
  .node.css1 > .container > .cont {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .node.css1 .hamburger1-header {
    min-height: 68px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
  }

  .node.css1 .hamburger1-altmenu {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .node.css1 .hamburger1-altmenu .gridwrap {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
  }

  .node.css1 .hamburger1-altmenu .col {
    width: auto !important;
    flex: 0 0 auto !important;
  }

  .node.css1 .hamburger1-altmenu .col:nth-child(2) {
    flex: 1 1 auto !important;
    min-width: 118px !important;
    text-align: center !important;
  }

  .node.css1 img[data-lazy-image*="lespromhoz-logo"] {
    width: 48px !important;
    max-width: 48px !important;
    height: auto !important;
  }

  .node.css1 .textable.css8,
  .node.css1 [class*="textable"] strong {
    font-size: 13px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  .node.css1 .soc-icon .link {
    width: 34px !important;
    height: 34px !important;
    margin: 0 2px !important;
  }

  .node.css1 .soc-icon .link.wa {
    display: none !important;
  }

  .node.css1 .hamburger1-toggle {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
  }

  /* Generated project/review detail pages */
  .product-header {
    position: relative !important;
  }

  .product-nav {
    width: 100% !important;
    padding: 10px 12px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 9px 12px !important;
    overflow: visible !important;
  }

  .product-nav img {
    width: 68px !important;
  }

  .product-nav a {
    font-size: 13px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  .product-nav a:first-child {
    flex: 0 0 100% !important;
    text-align: center !important;
  }

  .product-nav .phone,
  .product-nav .cta {
    margin-left: 0 !important;
    flex: 0 1 auto !important;
  }

  .product-nav .phone {
    font-size: 15px !important;
  }

  .product-nav .cta {
    padding: 10px 13px !important;
    border-radius: 8px !important;
  }

  .product-hero,
  .product-section {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .product-hero {
    margin-top: 16px !important;
    gap: 12px !important;
  }

  .product-hero__media {
    height: 240px !important;
    min-height: 0 !important;
  }

  .product-hero__text {
    padding: 18px !important;
  }

  .product-hero h1 {
    font-size: clamp(30px, 9vw, 38px) !important;
    line-height: 1.02 !important;
  }

  .product-subtitle {
    font-size: 16px !important;
    line-height: 1.35 !important;
  }

  .product-section h2 {
    font-size: 25px !important;
  }

  .product-description__content {
    padding: 18px !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .product-slider {
    padding: 8px !important;
    border-radius: 10px !important;
  }

  .product-slider__stage {
    height: 260px !important;
    min-height: 260px !important;
    border-radius: 8px !important;
  }

  .product-slider__arrow {
    top: 138px !important;
    width: 38px !important;
    height: 38px !important;
    font-size: 28px !important;
  }

  .product-slider__arrow--prev {
    left: 12px !important;
  }

  .product-slider__arrow--next {
    right: 12px !important;
  }

  .product-slider__thumbs {
    gap: 7px !important;
    margin-top: 9px !important;
  }

  .product-slider__thumb {
    flex-basis: 70px !important;
    height: 52px !important;
  }

  /* Product/review cards */
  .lp-products,
  .lp-reviews {
    width: min(100% - 24px, 520px) !important;
    margin-top: 34px !important;
    margin-bottom: 44px !important;
  }

  .lp-products__head,
  .lp-reviews__head {
    display: block !important;
    margin-bottom: 20px !important;
  }

  .lp-products__head h2,
  .lp-reviews__head h1,
  .lp-reviews__group-title {
    font-size: clamp(30px, 10vw, 40px) !important;
    line-height: 1.02 !important;
  }

  .lp-products__head p,
  .lp-reviews__head p {
    width: auto !important;
    margin-top: 10px !important;
    font-size: 16px !important;
  }

  .lp-products__grid,
  .lp-reviews__grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .lp-product-card__caption,
  .lp-product-card__body,
  .lp-review-card__caption {
    padding: 18px !important;
  }

  .lp-product-card__caption h3,
  .lp-product-card__body h3,
  .lp-review-card__caption h3 {
    font-size: 24px !important;
    line-height: 1.12 !important;
  }

  .lp-product-card__media,
  .lp-review-card__media {
    aspect-ratio: 4 / 3 !important;
  }

  /* Home catalogue hero cards */
  #catalog .node.widget-element.widget.css46,
  #catalog .node.widget-element.widget.css63 {
    min-height: 440px !important;
    border-radius: 8px !important;
  }

  #catalog .node.widget-element.widget.css46 > .cont > .node.widget-text.css38,
  #catalog .node.widget-element.widget.css63 > .cont > .node.widget-text.css38 {
    left: 18px !important;
    right: 18px !important;
    bottom: 86px !important;
  }

  #catalog .node.widget-element.widget.css46 > .cont > .node.widget-grid.css38,
  #catalog .node.widget-element.widget.css63 > .cont > .node.widget-grid.css38 {
    left: 18px !important;
    right: 18px !important;
    bottom: 22px !important;
    width: auto !important;
  }

  #catalog .node.widget-element.widget.css46 .btn.css61,
  #catalog .node.widget-element.widget.css63 .btn.css61 {
    min-height: 48px !important;
    font-size: 15px !important;
  }

  .home-contact-locations {
    grid-template-columns: 1fr !important;
  }

  .macros-map,
  .macros-map iframe {
    max-width: 100% !important;
    min-height: 280px !important;
  }
}

@media (max-width: 380px) {
  .node.css1 .textable.css8,
  .node.css1 [class*="textable"] strong {
    font-size: 12px !important;
  }

  .node.css1 .soc-icon .link {
    width: 31px !important;
    height: 31px !important;
  }

  .product-nav a {
    font-size: 12px !important;
  }

  .product-hero__media,
  .product-slider__stage {
    height: 230px !important;
    min-height: 230px !important;
  }

  .product-slider__arrow {
    top: 123px !important;
  }
}
