
/* Lucaffè Master Recovery 3.0.0 — final scoped integration layer */
:root{--lcmrc-gutter:clamp(14px,3vw,42px)}
html,body{max-width:100%;overflow-x:hidden}
@supports(overflow:clip){html,body{overflow-x:clip}}
body.lcmrc-active *,body.lcmrc-active *::before,body.lcmrc-active *::after{box-sizing:border-box}

/* Exactly one visible official header. */
body.lcmrc-active :is(#site-header,#site-header-wrap,.wpex-site-header,.theme-header):not(.lgfh-safe-header){
  display:none!important
}
body.lcmrc-active .lmhh-header:not(.lgfh-safe-header):not(.lgfh-final-header):not([data-lgfh-safe-header]){
  display:none!important
}
body.lcmrc-active :is(.lgfh-safe-header,.lgfh-final-header,[data-lgfh-safe-header]){
  width:100%!important;max-width:none!important;visibility:visible!important;opacity:1!important;
  z-index:100000!important
}
@media(min-width:941px){
  body.lcmrc-active .lgfh-safe-language{display:block!important;visibility:visible!important}
  body.lcmrc-active .lgfh-safe-cart{display:flex!important;visibility:visible!important}
}

/* Exactly one visible premium footer. */
body.lcmrc-active :is(#footer,#footer-bottom,#footer-callout-wrap,.site-footer):not(.lpf-footer){
  display:none!important
}
body.lcmrc-active .lpf-shell{
  width:100%!important;max-width:none!important;min-width:0!important;display:block!important;
  visibility:visible!important;opacity:1!important;margin-left:0!important;margin-right:0!important
}
body.lcmrc-active .lpf-shell *{min-width:0}
.lcmrc-footer-inner{width:min(1220px,calc(100% - 36px));margin:auto;padding:44px 0;display:grid;grid-template-columns:2fr 1fr 1fr;gap:28px}

/* Total/WPBakery: release only ancestors marked by JS around known Lucaffè roots. */
body.lcmrc-active .lcmrc-release{
  width:100%!important;min-width:0!important;max-width:none!important;
  margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;
  float:none!important
}
body.lcmrc-active :is(.lmhh-home-launch,.lhx-page,.lce-fullbleed,.lca-fullbleed,.lcm-page,.lbps-root,.lpf-shell){
  min-width:0!important;max-width:100%!important
}
body.lcmrc-active :is(img,video,canvas,svg,iframe){max-width:100%}

/* Cinematic YouTube compatibility for Modern Home 1.0.5 as well as newer builds. */
body.home .lmhh-home-hero{position:relative;isolation:isolate;overflow:hidden}
.lcmrc-cinematic{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#111}
.lcmrc-cinematic-poster,.lcmrc-cinematic-player,.lcmrc-cinematic-shade{position:absolute;inset:0}
.lcmrc-cinematic-poster{
  background-position:center;background-size:cover;background-repeat:no-repeat;
  filter:saturate(.8) contrast(1.05);transform:scale(1.03)
}
.lcmrc-cinematic-player iframe{
  position:absolute;left:50%;top:50%;width:177.78vh;min-width:100%;height:56.25vw;min-height:100%;
  transform:translate(-50%,-50%) scale(1.02);border:0;pointer-events:none
}
.lcmrc-cinematic-shade{
  background:linear-gradient(90deg,rgba(9,9,10,.88) 0%,rgba(9,9,10,.66) 38%,rgba(9,9,10,.28) 68%,rgba(9,9,10,.48) 100%)
}
body.home .lmhh-home-hero>:not(.lcmrc-cinematic){position:relative;z-index:1}
@media(max-width:940px),(prefers-reduced-motion:reduce){
  .lcmrc-cinematic-player{display:none!important}
  .lcmrc-cinematic-poster{opacity:.42}
}

/* Single-product geometry and image safety. */
body.single-product.lcmrc-active:not(.lspx-enabled) div.product{
  width:min(1380px,calc(100% - 28px))!important;max-width:100%!important;margin-inline:auto!important
}
body.single-product.lcmrc-active:not(.lspx-enabled) :is(.woocommerce-product-gallery,.summary,.product-images,.lspx-purchase-card){
  min-width:0!important;max-width:100%!important
}
body.single-product.lcmrc-active:not(.lspx-enabled) .woocommerce-product-gallery img{
  width:100%!important;max-width:100%!important;height:auto!important;object-fit:contain!important
}
body.single-product.lcmrc-active:not(.lspx-enabled) .lspx-purchase-card{
  padding:12px!important;border-radius:20px!important
}

/* Quantity and buy button always share the row. */
body.single-product.lcmrc-active:not(.lspx-enabled) div.product form.cart:not(.variations_form),
body.single-product.lcmrc-active:not(.lspx-enabled) div.product .woocommerce-variation-add-to-cart{
  display:grid!important;grid-template-columns:88px minmax(0,1fr)!important;
  align-items:stretch!important;gap:10px!important;width:100%!important;max-width:100%!important
}
body.single-product.lcmrc-active:not(.lspx-enabled) div.product form.cart:not(.variations_form)>.quantity,
body.single-product.lcmrc-active:not(.lspx-enabled) div.product .woocommerce-variation-add-to-cart>.quantity{
  width:88px!important;min-width:88px!important;max-width:88px!important;margin:0!important
}
body.single-product.lcmrc-active:not(.lspx-enabled) div.product :is(form.cart:not(.variations_form),.woocommerce-variation-add-to-cart) .single_add_to_cart_button{
  width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;
  min-height:55px!important;white-space:normal!important
}
body.single-product.lcmrc-active:not(.lspx-enabled) div.product form.variations_form{display:block!important}
body.single-product.lcmrc-active:not(.lspx-enabled) div.product form.variations_form :is(table.variations,.single_variation_wrap){width:100%!important;max-width:100%!important}
@media(max-width:480px){
  body.single-product.lcmrc-active:not(.lspx-enabled) div.product form.cart:not(.variations_form),
  body.single-product.lcmrc-active:not(.lspx-enabled) div.product .woocommerce-variation-add-to-cart{
    grid-template-columns:76px minmax(0,1fr)!important;gap:8px!important
  }
  body.single-product.lcmrc-active:not(.lspx-enabled) div.product form.cart:not(.variations_form)>.quantity,
  body.single-product.lcmrc-active:not(.lspx-enabled) div.product .woocommerce-variation-add-to-cart>.quantity{
    width:76px!important;min-width:76px!important;max-width:76px!important
  }
  body.single-product.lcmrc-active:not(.lspx-enabled) .lspx-mobile-buy{
    left:8px!important;right:8px!important;width:auto!important;max-width:calc(100vw - 16px)!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important
  }
}

/* Language DOM must stay structurally identical. */
body.lcmrc-active.lblc-render-lock :is(.product_title,h1,h2,h3,.button,.lgfh-safe-nav-list a,.lpf-shell a){
  word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important
}

.lcmrc-prive{width:min(1100px,calc(100% - 32px));margin:52px auto;padding:42px;border-radius:24px;background:#111;color:#fff}
.lcmrc-prive a{display:inline-block;margin-top:10px;color:#111;background:#e5c36d;padding:12px 18px;border-radius:999px;text-decoration:none}

@media(max-width:760px){
  .lcmrc-footer-inner{grid-template-columns:1fr}
}


/* 3.1.0 language hard recovery */
body.lcmrc-active .lgfh-safe-language{
  position:relative!important;
  pointer-events:auto!important;
}
body.lcmrc-active :is(
  .lgfh-safe-language-popover,
  .lblc-native-language-popover
){
  z-index:100100!important;
  pointer-events:auto!important;
}
body.lcmrc-active :is(
  .lgfh-safe-language-popover,
  .lblc-native-language-popover
):not([hidden]){
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
body.lcmrc-active .lgfh-safe-language-list a{
  pointer-events:auto!important;
}


/* ============================================================
   3.1.1 — PRODUCT PURCHASE ROW HARD FIX
   DOM wrapper is created by master.js, so LSPX/Total/Woo styles
   can no longer split quantity and CTA into separate rows.
   ============================================================ */

body.single-product.lcmrc-active:not(.lspx-enabled) .lspx-purchase-card{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}

body.single-product.lcmrc-active:not(.lspx-enabled) form.cart.lcmrc-cart-normalized{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
}

body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row{
  display:grid!important;
  grid-template-columns:96px minmax(180px,1fr)!important;
  align-items:stretch!important;
  gap:10px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
}

body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row > .quantity{
  grid-column:1!important;
  width:96px!important;
  min-width:96px!important;
  max-width:96px!important;
  height:55px!important;
  margin:0!important;
  float:none!important;
  flex:none!important;
}

body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row > :is(
  button.single_add_to_cart_button,
  .single_add_to_cart_button,
  a.single_add_to_cart_button
){
  grid-column:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:55px!important;
  margin:0!important;
  padding:0 20px!important;
  float:none!important;
  flex:none!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  text-wrap:nowrap!important;
  line-height:1.1!important;
  font-size:11px!important;
  letter-spacing:.08em!important;
}

body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row > .quantity input.qty{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

/* Variation form stays semantic; only its final add-to-cart row is normalized. */
body.single-product.lcmrc-active:not(.lspx-enabled) form.variations_form{
  display:block!important;
}
body.single-product.lcmrc-active:not(.lspx-enabled) form.variations_form .woocommerce-variation-add-to-cart.lcmrc-cart-normalized{
  display:block!important;
  width:100%!important;
}

/* Keep long product names below the real fixed header, never under it. */
body.single-product.lcmrc-active:not(.lspx-enabled) div.product :is(.summary,.summary.entry-summary){
  top:calc(var(--lcmrc-header-offset, 108px) + 12px)!important;
  min-width:0!important;
  max-width:100%!important;
}
body.single-product.lcmrc-active:not(.lspx-enabled) div.product .product_title{
  max-width:100%!important;
  font-size:clamp(40px,4.3vw,66px)!important;
  line-height:.96!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  text-wrap:balance;
}

/* Prevent the main product media canvas from physically exceeding its column. */
body.single-product.lcmrc-active:not(.lspx-enabled) .lspx-primary-stage :is(
  .woocommerce-product-gallery,
  .product-images,
  .woocommerce-product-gallery__wrapper,
  .woocommerce-product-gallery__image,
  .woocommerce-product-gallery__image a
){
  min-width:0!important;
  max-width:100%!important;
}
body.single-product.lcmrc-active:not(.lspx-enabled) .lspx-primary-stage .woocommerce-product-gallery__image img{
  object-fit:contain!important;
  object-position:center!important;
  margin-inline:auto!important;
}

@media(max-width:700px){
  body.single-product.lcmrc-active:not(.lspx-enabled) div.product :is(.summary,.summary.entry-summary){
    position:static!important;
    top:auto!important;
  }

  body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row{
    grid-template-columns:78px minmax(0,1fr)!important;
    gap:8px!important;
  }

  body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row > .quantity{
    width:78px!important;
    min-width:78px!important;
    max-width:78px!important;
  }

  body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row > :is(
    button.single_add_to_cart_button,
    .single_add_to_cart_button,
    a.single_add_to_cart_button
  ){
    padding:0 12px!important;
    font-size:10px!important;
    letter-spacing:.06em!important;
  }

  body.single-product.lcmrc-active:not(.lspx-enabled) div.product .product_title{
    font-size:clamp(34px,10vw,52px)!important;
  }
}

@media(max-width:340px){
  body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row{
    grid-template-columns:70px minmax(0,1fr)!important;
    gap:7px!important;
  }
  body.single-product.lcmrc-active:not(.lspx-enabled) .lcmrc-buy-row > .quantity{
    width:70px!important;
    min-width:70px!important;
    max-width:70px!important;
  }
}


/* =====================================================================
   3.2.0 — GLOBAL FULL-WIDTH PAGE CANVAS
   The entire public site uses the same edge-to-edge outer canvas as HOME.
   Individual design plugins still own their INTERNAL max-width and spacing.
   ===================================================================== */

body.lcmrc-active{
  --lcmrc-content-max:1380px;
  --lcmrc-safe-gutter:clamp(14px,2.6vw,42px);
}

/* Total / Woo / WPBakery outer shell: never create white side gutters. */
body.lcmrc-active :is(
  #wrap,
  #outer-wrap,
  #main,
  #content-wrap,
  #content,
  #primary,
  .content-area,
  .site-main,
  .site-content,
  .main-content
){
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  float:none!important;
}

/* Only OUTER Total containers are released. Header/footer inner containers
   are not targeted here, so navigation remains professionally centered. */
body.lcmrc-active :is(
  #main > .container,
  #content-wrap > .container,
  #content-wrap.container,
  #primary > .container,
  .site-main > .container,
  .content-area > .container,
  .lcmrc-page-canvas
){
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* WPBakery's outer page host is a canvas, not another boxed page. */
body.lcmrc-active :is(
  #content > .wpb-content-wrapper,
  #primary > .wpb-content-wrapper,
  .entry-content > .wpb-content-wrapper
){
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Known Lucaffè EXPERIENCE roots are allowed to reach viewport edges.
   Their own .inner / cards / grids retain the widths defined by their plugin. */
body.lcmrc-active :is(
  .lmhh-home-launch,
  .lhx-page,
  .lhps-shell,
  .lcm-page,
  .lce-fullbleed,
  .lca-fullbleed,
  .lbps-root,
  .premium-promo-page,
  .official-lucaffe-section,
  .lucaffe-separate-premium,
  .lucaffe-testimonials,
  .lucaffe-about-seo,
  .lp-brand-section
){
  position:relative!important;
  left:auto!important;
  right:auto!important;
  width:100vw!important;
  max-width:100vw!important;
  min-width:0!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  transform:none!important;
}

/* Once a root is edge-to-edge, all WPBakery/Total ancestors marked by JS
   must stop clipping or recentering it. */
body.lcmrc-active .lcmrc-release,
body.lcmrc-active .lcmrc-page-canvas{
  overflow:visible!important;
}

/* Category and archive headers should start directly under Lucaffè header. */
body.lcmrc-active :is(
  .woocommerce-products-header,
  .woocommerce.archive #content-wrap,
  .tax-product_cat #content-wrap
){
  margin-top:0!important;
}

/* Standard WooCommerce utility pages keep readable INTERNAL width while
   their surrounding page/background remains edge-to-edge. */
body.lcmrc-active :is(
  .woocommerce-cart-form,
  .cart-collaterals,
  form.woocommerce-checkout,
  .woocommerce-order,
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content,
  .woocommerce-form-login,
  .woocommerce-form-register
){
  max-width:var(--lcmrc-content-max);
}

/* Notifications should align with the same premium content rhythm. */
body.lcmrc-active .woocommerce-notices-wrapper{
  width:min(var(--lcmrc-content-max),calc(100% - 2 * var(--lcmrc-safe-gutter)))!important;
  max-width:var(--lcmrc-content-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Footer itself is edge-to-edge; its internal columns remain centered. */
body.lcmrc-active .lpf-shell{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
}

/* Never let a theme/container scrollbar appear because of subpixel 100vw. */
@supports(width:100dvw){
  body.lcmrc-active :is(
    .lmhh-home-launch,
    .lhx-page,
    .lhps-shell,
    .lcm-page,
    .lce-fullbleed,
    .lca-fullbleed,
    .lbps-root,
    .premium-promo-page,
    .official-lucaffe-section,
    .lucaffe-separate-premium,
    .lucaffe-testimonials,
    .lucaffe-about-seo,
    .lp-brand-section,
    .lpf-shell
  ){
    width:100dvw!important;
    max-width:100dvw!important;
    margin-left:calc(50% - 50dvw)!important;
    margin-right:calc(50% - 50dvw)!important;
  }
}

@media(max-width:782px){
  body.lcmrc-active :is(
    #main,#content-wrap,#content,#primary,.content-area,.site-main,.site-content
  ){
    min-width:0!important;
  }
}


/* 3.2.1 — About page: genuine Lucaffè product photo replaces CSS tin */
body.lcmrc-active #lam-apie-mus .lam-art-stage{
  position:relative;
}
body.lcmrc-active #lam-apie-mus .lcmrc-about-real-product{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(76%,520px);
  max-width:100%;
  margin:auto;
  text-decoration:none!important;
  transform:translateY(2%);
  filter:drop-shadow(0 34px 44px rgba(0,0,0,.28));
}
body.lcmrc-active #lam-apie-mus .lcmrc-about-real-product img{
  display:block!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  max-height:min(68vh,660px)!important;
  object-fit:contain!important;
  object-position:center!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.lcmrc-active #lam-apie-mus .lcmrc-about-real-product:hover img{
  transform:translateY(-4px) scale(1.012);
  transition:transform .28s ease;
}
@media(max-width:900px){
  body.lcmrc-active #lam-apie-mus .lcmrc-about-real-product{
    width:min(70%,420px);
    transform:none;
  }
  body.lcmrc-active #lam-apie-mus .lcmrc-about-real-product img{
    max-height:480px!important;
  }
}
