/*
 * Lucaffè Layout Guard 2.3.0
 * Lightweight, site-wide guard for product, archive, page, cart and mobile
 * templates. It does not redesign content; it only enforces safe boundaries.
 */

:root{
  --lspx-safe-inline:clamp(14px,2.2vw,34px);
  --lspx-sticky-top:112px;
}

html{
  max-width:100%;
  overflow-x:clip;
}

body.lspx-layout-guard-enabled{
  max-width:100%;
  overflow-x:clip!important;
}

body.lspx-layout-guard-enabled :where(
  main,
  #main,
  #content,
  #content-wrap,
  #primary,
  .site-main,
  .content-area,
  article,
  section,
  .container,
  .wpex-container,
  .woocommerce,
  .woocommerce-page,
  .wpb_wrapper,
  .vc_row,
  .vc_column_container,
  .vc_column-inner
){
  min-width:0;
}

body.lspx-layout-guard-enabled :where(
  img,
  video,
  iframe,
  embed,
  object,
  canvas,
  svg
){
  max-width:100%;
}

body.lspx-layout-guard-enabled :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  li,
  dt,
  dd,
  blockquote
){
  overflow-wrap:break-word;
  word-break:normal;
}

body.lspx-layout-guard-enabled :where(
  table,
  pre,
  .wp-block-table,
  .woocommerce table.shop_table
){
  max-width:100%;
}

body.lspx-layout-guard-enabled :where(
  .wp-block-table,
  pre,
  .woocommerce table.shop_table
){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

body.lspx-layout-guard-enabled .lspx-auto-constrain{
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

body.lspx-layout-guard-enabled .lspx-auto-constrain-media{
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
}

body.lspx-layout-guard-enabled [data-lspx-sticky-disabled="true"]{
  position:static!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
}

body.lspx-layout-guard-enabled .lspx-overlap-safe{
  position:relative!important;
  z-index:4!important;
  isolation:isolate!important;
  clear:both!important;
}

body.lspx-layout-guard-enabled :where(
  .lspx-mobile-buy,
  .woocommerce-store-notice,
  .cky-consent-container,
  .cmplz-cookiebanner,
  .cookie-notice-container
){
  max-width:calc(100vw - 24px)!important;
  max-width:calc(100dvw - 24px)!important;
  box-sizing:border-box!important;
}

body.lspx-layout-guard-enabled :where(
  .lgfh-safe-header,
  .lgfh-final-header
){
  max-width:100vw!important;
  max-width:100dvw!important;
}

body.lspx-layout-guard-enabled :where(
  [id],
  .woocommerce-tabs,
  .lspx-story,
  .lspx-reviews,
  .lspx-related,
  .lspx-faq
){
  scroll-margin-top:var(--lspx-sticky-top,112px);
}

@media(max-width:980px){
  body.lspx-layout-guard-enabled :where(
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last
  ){
    width:100%!important;
    float:none!important;
  }

  body.lspx-layout-guard-enabled :where(
    .woocommerce-cart-form,
    .cart-collaterals,
    .woocommerce-checkout,
    .woocommerce-account .woocommerce
  ){
    min-width:0!important;
    max-width:100%!important;
  }
}

@media(max-width:700px){
  body.lspx-layout-guard-enabled{
    padding-bottom:var(--lspx-mobile-safe-bottom,0px);
  }

  body.lspx-layout-guard-enabled :where(
    input,
    select,
    textarea,
    button
  ){
    max-width:100%;
  }

  body.lspx-layout-guard-enabled .lspx-mobile-buy{
    left:max(12px,env(safe-area-inset-left))!important;
    right:max(12px,env(safe-area-inset-right))!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.lspx-layout-guard-enabled *,
  body.lspx-layout-guard-enabled *::before,
  body.lspx-layout-guard-enabled *::after{
    scroll-behavior:auto!important;
  }
}
