/* =====================================================================
   QWOOD - Responsive surfaces stabilization
   Canonical cross-module final layer for mobile and tablet compatibility.
   ===================================================================== */

.qw-home-landing,
body.qwood-catalog-parquets-page .qwood-wrapper,
.qw-single-locked,
.qw-cart-shell,
.qwood-checkout,
.qwood-helper-wizard,
.qwood-sample-open-wrap,
#qw-modal,
#qwood-sample-modal,
.qw-about,
.qw-tn,
.qw-rso,
.qw-la,
.qw-du,
.qwci-wrap,
.qw-ip,
.qwiw-shell,
.qwood-legal-wrap,
.qwood-cookies-policy,
body.qw-auth-custom .qw-auth-wrapper,
body.woocommerce-account.qw-myaccount .woocommerce,
body.woocommerce-account.qw-installer .woocommerce,
body.woocommerce-account.qw-installer-panel .woocommerce,
body.woocommerce-account.qw-installer-work-area .woocommerce{
  min-width: 0;
}

.qw-home-landing :is(img, svg, video, canvas, iframe),
body.qwood-catalog-parquets-page .qwood-wrapper :is(img, svg, video, canvas, iframe),
.qw-single-locked :is(img, svg, video, canvas, iframe),
.qw-cart-shell :is(img, svg, video, canvas, iframe),
.qwood-checkout :is(img, svg, video, canvas, iframe),
.qwood-helper-wizard :is(img, svg, video, canvas, iframe),
#qw-modal :is(img, svg, video, canvas, iframe),
#qwood-sample-modal :is(img, svg, video, canvas, iframe),
.qw-about :is(img, svg, video, canvas, iframe),
.qw-tn :is(img, svg, video, canvas, iframe),
.qw-rso :is(img, svg, video, canvas, iframe),
.qw-la :is(img, svg, video, canvas, iframe),
.qw-du :is(img, svg, video, canvas, iframe),
.qwci-wrap :is(img, svg, video, canvas, iframe),
.qw-ip :is(img, svg, video, canvas, iframe),
.qwiw-shell :is(img, svg, video, canvas, iframe),
.qwood-legal-wrap :is(img, svg, video, canvas, iframe),
.qwood-cookies-policy :is(img, svg, video, canvas, iframe),
body.qw-auth-custom .qw-auth-wrapper :is(img, svg, video, canvas, iframe){
  max-width: 100%;
  height: auto;
}

.qwci-debug,
.qw-ip pre,
.qwiw-shell pre,
.qwood-legal-wrap pre,
.qwood-cookies-policy pre{
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 1180px){
  body.woocommerce-account.qw-myaccount .site-content .col-full,
  body.woocommerce-account.qw-installer .site-content .col-full,
  body.woocommerce-account.qw-installer-panel .site-content .col-full,
  body.woocommerce-account.qw-installer-work-area .site-content .col-full,
  .qwiw-frame,
  .qw-ip-wrap--wide{
    max-width: min(100%, calc(100vw - 28px));
  }
}

@media (max-width: 980px){
  body.woocommerce-account.qw-myaccount .woocommerce table.shop_table,
  body.woocommerce-account.qw-installer .woocommerce table.shop_table,
  body.woocommerce-account.qw-installer-panel .woocommerce table.shop_table,
  body.woocommerce-account.qw-installer-work-area .woocommerce table.shop_table,
  .qwood-checkout #qwood-order-review-wrap .woocommerce-checkout-review-order-table,
  .qwood-checkout #qwood-order-review-wrap table.shop_table,
  .qw-ip table,
  .qwiw-shell table,
  .qwood-legal-wrap table,
  .qwood-cookies-policy table{
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.woocommerce-account.qw-myaccount .woocommerce table.shop_table th,
  body.woocommerce-account.qw-myaccount .woocommerce table.shop_table td,
  body.woocommerce-account.qw-installer .woocommerce table.shop_table th,
  body.woocommerce-account.qw-installer .woocommerce table.shop_table td,
  body.woocommerce-account.qw-installer-panel .woocommerce table.shop_table th,
  body.woocommerce-account.qw-installer-panel .woocommerce table.shop_table td,
  body.woocommerce-account.qw-installer-work-area .woocommerce table.shop_table th,
  body.woocommerce-account.qw-installer-work-area .woocommerce table.shop_table td,
  .qwood-checkout #qwood-order-review-wrap table.shop_table th,
  .qwood-checkout #qwood-order-review-wrap table.shop_table td,
  .qw-ip table th,
  .qw-ip table td,
  .qwiw-shell table th,
  .qwiw-shell table td,
  .qwood-legal-wrap table th,
  .qwood-legal-wrap table td,
  .qwood-cookies-policy table th,
  .qwood-cookies-policy table td{
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .qw-home-landing .qw-hero-ctas,
  .qw-ip-row,
  .qw-ip-ops__toolbar,
  .qwiw-actions-row,
  .qw-adminHero__actions,
  .qw-adminPanel__actions,
  .qwci-actions,
  .qw-rso .qw-rso__ctaRow,
  .qw-la .qw-la__ctaRow,
  .qw-du .qw-du__ctaRow{
    align-items: stretch;
  }
}

@media (max-width: 760px){
  .qwood-checkout .woocommerce form .form-row-first,
  .qwood-checkout .woocommerce form .form-row-last,
  body.woocommerce-account.qw-myaccount .woocommerce form .form-row-first,
  body.woocommerce-account.qw-myaccount .woocommerce form .form-row-last,
  body.woocommerce-account.qw-installer .woocommerce form .form-row-first,
  body.woocommerce-account.qw-installer .woocommerce form .form-row-last,
  body.woocommerce-account.qw-installer-panel .woocommerce form .form-row-first,
  body.woocommerce-account.qw-installer-panel .woocommerce form .form-row-last,
  body.woocommerce-account.qw-installer-work-area .woocommerce form .form-row-first,
  body.woocommerce-account.qw-installer-work-area .woocommerce form .form-row-last{
    float: none !important;
    width: 100% !important;
    margin-right: 0 !important;
  }

  .qw-home-landing .qw-hero-ctas{
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .qw-home-landing .qw-hero-ctas > *,
  .qwood-sample-open-wrap .qwood-sample-open-btn,
  .qwood-helper-wizard .qw-mini-btn,
  .qwood-helper-wizard .qw-open-wizard-btn,
  #qwood-sample-modal .qwood-sw-footerbar .qwood-sw-btn,
  #qw-modal .qw-footer .qw-btn,
  .qwood-checkout .qwood-order-review-toggle,
  .qwood-checkout #qwood-order-review-wrap #place_order,
  .qw-ip-row .qw-ip-btn,
  .qw-ip-ops__toolbar .qw-ip-btn,
  .qwiw-actions-row > *,
  .qw-adminHero__actions .qw-btn,
  .qw-adminPanel__actions .qw-btn,
  .qw-adminEmergency .qw-btn,
  .qwci-actions > *,
  .qw-rso .qw-rso__btn,
  .qw-rso .qw-rso__ghost,
  .qw-la .qw-la__btn,
  .qw-la .qw-la__ghost,
  .qw-du .qw-du__btn,
  .qw-tn-btn,
  body.qw-auth-custom .qw-auth-tabs > *{
    width: 100%;
    justify-content: center;
  }

  #qw-modal,
  #qwood-sample-modal{
    width: min(calc(100vw - 18px), 100%);
    max-width: min(calc(100vw - 18px), 960px);
    max-height: min(88vh, 960px);
  }

  #qw-modal .qw-scroll,
  #qwood-sample-modal .qwood-sw-content{
    overscroll-behavior: contain;
  }

  #qw-modal .qw-footer,
  #qwood-sample-modal .qwood-sw-footerbar{
    flex-direction: column;
    align-items: stretch;
  }

  #qw-modal .qw-footer-left,
  #qw-modal .qw-footer-right{
    width: 100%;
    justify-content: stretch;
  }
}

@media (max-width: 560px){
  .qwood-legal-wrap,
  .qwood-cookies-policy .qw-wrap,
  .qw-about .qw-wrap,
  .qw-tn-wrap,
  .qw-rso .qw-rso__wrap,
  .qw-la .qw-la__wrap,
  .qw-du .qw-du__wrap,
  .qwiw-frame,
  .qw-ip-wrap,
  .qw-ip-wrap--wide,
  .qwci-wrap{
    padding-left: 14px;
    padding-right: 14px;
  }

  .qw-home-landing :is(.qw-btn--primary, .qw-btn--ghost),
  body.qwood-catalog-parquets-page :is(.qw-btn-sample, .qw-details-link, .qw-var-pill, .qw-measure-pill),
  .qw-single-locked :is(.qw-tab, .qw-var-pill, .qw-measure-pill, .qw-details-link),
  #qw-modal :is(.qw-slot, .qw-btn, .qw-step-indicator),
  #qwood-sample-modal :is(.qwood-sw-btn, .qwood-sw-var, .qwood-sw-btn-summary),
  .qwood-helper-wizard :is(.qw-pill, .qw-mini-btn, .qw-open-wizard-btn),
  .qwood-checkout :is(.qwood-checkout__chip, .qwood-order-review-toggle),
  .qw-ip :is(.qw-ip-btn, .qw-ip-badge, .qw-ip-zone__badge),
  .qwiw-shell :is(.qwiw-step-dot, .qwiw-btn, .qwiw-zone-btn),
  .qwci-wrap :is(.button, .qwci-mini-pill),
  body.qw-auth-custom :is(.qw-auth-tab, .qw-btn),
  .qw-tn :is(.qw-tn-bullet, .qw-tn-check, .qw-tn-btn),
  .qw-rso :is(.qw-rso__pill, .qw-rso__stepCap, .qw-rso__btn, .qw-rso__ghost),
  .qw-la :is(.qw-la__kicker, .qw-la__btn, .qw-la__ghost),
  .qw-du :is(.qw-du__kicker, .qw-du__btn){
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.woocommerce-account.qw-myaccount .woocommerce table.shop_table,
  body.woocommerce-account.qw-installer .woocommerce table.shop_table,
  body.woocommerce-account.qw-installer-panel .woocommerce table.shop_table,
  body.woocommerce-account.qw-installer-work-area .woocommerce table.shop_table,
  .qwood-checkout #qwood-order-review-wrap table.shop_table{
    min-width: 560px;
  }

  .qw-ip table,
  .qwiw-shell table,
  .qwood-legal-wrap table,
  .qwood-cookies-policy table{
    min-width: 520px;
  }

  .qwood-sample-open-wrap,
  .qwood-helper-wizard.qw-mini-box,
  .qwci-wrap,
  .qwood-checkout .woocommerce-billing-fields,
  .qwood-checkout .woocommerce-additional-fields{
    border-radius: 20px;
  }
}

@media (max-width: 420px){
  #qw-modal,
  #qwood-sample-modal{
    max-height: 84vh;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  #qw-modal .qw-scroll,
  #qwood-sample-modal .qwood-sw-content{
    max-height: calc(84vh - 120px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  /* Consent modal — scroll interno en xs */
  .qw-consent-card{
    max-height: 82vh;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.qwood-catalog-parquets-page .qw-parquet-actions,
  .qw-single-locked .qw-parquet-actions{
    grid-template-columns: 1fr;
  }
}

/* 380px: fullscreen modals — wizard + muestras */
@media (max-width: 380px){
  #qw-modal,
  #qwood-sample-modal{
    width: 100%;
    max-width: 100%;
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
  }

  #qw-modal .qw-scroll,
  #qwood-sample-modal .qwood-sw-content{
    max-height: unset;
    flex: 1 1 0;
    min-height: 0;
  }
}

/* =====================================================================
   QWOOD — Single-page overrides (audit 2026-04-10)
   Quienes somos (.qw-about) + Trabaja con nosotros (.qw-tn)

   1) Full-bleed: neutraliza max-width:66.5rem de Storefront .col-full
      para que los wrappers internos (.qw-wrap / .qw-tn-*) puedan
      controlar su propio max-width canonico (1240px, mismo SSOT que
      .qw-inner de la home).

   2) Anti-underline: Storefront aplica .hentry .entry-content a
      (0,0,2,1) text-decoration:underline, ganando por 1 punto de
      especificidad sobre las reglas de modulo .qw-about/.qw-tn a
      (0,0,2,0). Usamos #content a (0,1,1,2) para ganar limpio y
      cubrir cualquier enlace del area principal, incluido breadcrumb.
   ===================================================================== */

body:has(.qw-about) #content > .col-full,
body:has(.qw-tn)    #content > .col-full,
body.qw-about-page  #content > .col-full{
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

body:has(.qw-about) #content a,
body:has(.qw-tn)    #content a,
body.qw-about-page  #content a,
body:has(.qw-about) .storefront-breadcrumb a,
body:has(.qw-tn)    .storefront-breadcrumb a,
body.qw-about-page  .storefront-breadcrumb a{
  text-decoration: none;
}

/* =====================================================================
   FIX audit 2026-04-10 (BUG-PROD-UND batch):
   Single-product pages heredan Storefront `.hentry .entry-content a`
   (underline + color visited morado) en:
     - breadcrumb (woocommerce-breadcrumb + QWOOD/...Tienda/...)
     - "Categoría: Adhesivo" (.posted_in a)
     - SKU / tags links
   Scope específico a body.single-product #content para no afectar otras surfaces.
   Specificity (0,1,1,2) gana a Storefront (0,0,2,1).
   Mantiene el color QWOOD verde y subrayado dashed-green-hover coherente
   con el resto del brand.
   ===================================================================== */
body.single-product #content a{
  color: var(--qwood-color-ink, #0f172a);
  text-decoration: none;
}
body.single-product #content .woocommerce-breadcrumb,
body.single-product #content .woocommerce-breadcrumb a,
body.single-product #content .product_meta .posted_in a,
body.single-product #content .product_meta a{
  color: var(--qwood-color-primary-dark, #1bcf17);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px dashed rgba(27,207,23,.0);
  transition: border-color .15s ease;
}
body.single-product #content .woocommerce-breadcrumb a:hover,
body.single-product #content .product_meta .posted_in a:hover,
body.single-product #content .product_meta a:hover{
  border-bottom-color: rgba(27,207,23,.45);
}
/* Breadcrumb separator sin color */
body.single-product #content .woocommerce-breadcrumb{
  color: var(--qwood-color-muted, #64748b);
  font-weight: 600;
}

/* BUG-PROD-ATC-BLACK: botón "Añadir al carrito" WC default es #272727 (tema).
   Repintar a verde QWOOD en single-product + loop. */
body.single-product #content .single_add_to_cart_button,
body.woocommerce #content .product .button.add_to_cart_button,
body.woocommerce-page #content .product .button.add_to_cart_button{
  background: var(--qwood-color-primary, #1bcf17) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 12px 24px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  transition: background .18s ease, transform .18s ease;
}
body.single-product #content .single_add_to_cart_button:hover,
body.woocommerce #content .product .button.add_to_cart_button:hover,
body.woocommerce-page #content .product .button.add_to_cart_button:hover{
  background: var(--qwood-color-primary-dark, #1bcf17) !important;
  transform: translateY(-1px);
}
