﻿/* =====================================================================
   QWOOD - Informative landings
   Canonical CSS for renovacion sin obras, laminas autoadhesivas
   and disenos unicos. Upload target suggested:
   /wp-content/uploads/qwood/qwood-informative-landings.css
   ===================================================================== */

/* Shared decorative watermark pattern */
.qw-rso .qw-rso__hero,
.qw-la .qw-la__hero,
.qw-du .qw-du__hero{
  position:relative;
  isolation:isolate;
}

.qw-rso .qw-rso__hero-inner,
.qw-la .qw-la__hero-inner,
.qw-du .qw-du__hero-inner{
  position:relative;
  z-index:1;
}

.qw-info-wm{
  position:absolute;
  z-index:0;
  pointer-events:none;
  user-select:none;
  width:clamp(128px, 18vw, 240px);
  color:rgba(27,207,23,.14);
  opacity:.35;
  transform-origin:center;
}

.qw-info-wm__svg{
  display:block;
  width:100%;
  height:auto;
}

.qw-info-wm--left{
  left:-36px;
  top:-26px;
  transform:rotate(-10deg);
}

.qw-info-wm--right{
  right:-42px;
  bottom:-34px;
  transform:rotate(10deg);
}

.qw-info-wm--branch{
  width:clamp(150px, 20vw, 268px);
  color:rgba(27,207,23,.05);
}

.qw-info-wm--pine{
  width:clamp(112px, 14vw, 180px);
  color:rgba(27,207,23,.08);
}

@media (max-width: 900px){
  .qw-info-wm{
    width:clamp(94px, 28vw, 156px);
    opacity:.25;
  }

  .qw-info-wm--left{
    left:-24px;
    top:-14px;
  }

  .qw-info-wm--right{
    right:-26px;
    bottom:8px; /* FIX 2026-05-31: era -18px → invadía el carrusel en móvil; anclada dentro del hero */
  }
}

@media (max-width: 520px){
  .qw-info-wm{
    width:92px;
    opacity:.2;
  }
}

/* ---------------------------------------------------------------------
   Shared shell and scoped Storefront guards
--------------------------------------------------------------------- */
.qw-rso,
.qw-la,
.qw-du{
  display:block;
  width:100%;
  position:relative;
  background:#ffffff;
}

/* Full-width: override Storefront .col-full container for info landings */
body:has(.qw-la) .col-full,
body:has(.qw-du) .col-full,
body:has(.qw-rso) .col-full {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
body.qw-info-landing .col-full {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Reduce gap between nav and content */
body:has(.qw-la) #content.site-content,
body:has(.qw-du) #content.site-content,
body:has(.qw-rso) #content.site-content {
  padding-top: 8px !important;
}
body.qw-info-landing #content.site-content {
  padding-top: 8px !important;
}

.qw-rso *,
.qw-rso *::before,
.qw-rso *::after,
.qw-la *,
.qw-la *::before,
.qw-la *::after,
.qw-du *,
.qw-du *::before,
.qw-du *::after{
  box-sizing:border-box;
}

.entry-content > .qw-rso,
.entry-content > .qw-la,
.entry-content > .qw-du{
  width:100%;
  margin:0 !important;
}

.entry-content > .qw-rso + p:empty,
.entry-content > .qw-la + p:empty,
.entry-content > .qw-du + p:empty{
  display:none;
}

.qw-rso img,
.qw-la img,
.qw-du img{
  max-width:100%;
  height:auto;
  margin:0;
  vertical-align:middle;
}

.qw-rso a.qw-rso__btn,
.qw-rso a.qw-rso__ghost,
.qw-la a.qw-la__btn,
.qw-la a.qw-la__ghost,
.qw-du a.qw-du__btn{
  text-decoration:none !important;
  border-bottom:0 !important;
}

.qw-rso a.qw-rso__btn:hover,
.qw-rso a.qw-rso__btn:focus,
.qw-rso a.qw-rso__ghost:hover,
.qw-rso a.qw-rso__ghost:focus,
.qw-la a.qw-la__btn:hover,
.qw-la a.qw-la__btn:focus,
.qw-la a.qw-la__ghost:hover,
.qw-la a.qw-la__ghost:focus,
.qw-du a.qw-du__btn:hover,
.qw-du a.qw-du__btn:focus{
  text-decoration:none !important;
  border-bottom:0 !important;
}

/* Remove underlines from all links in info landings */
.qw-la a, .qw-du a, .qw-rso a,
.qw-stepper a, .qw-prevnext a,
.qw-prevnext__fallback a {
  text-decoration: none !important;
  border-bottom: none !important;
}

/* Bold typography for info landings */
.qw-la__subtitle, .qw-du__subtitle, .qw-rso__subtitle {
  font-weight: 600 !important;
  color: #334155 !important;
}

.qw-la__lead, .qw-du__lead, .qw-rso__lead {
  font-weight: 600 !important;
}

.qw-la__p, .qw-du__p, .qw-rso__p {
  font-weight: 500 !important;
  color: #475569 !important;
}

.qw-la__h3, .qw-du__h3, .qw-rso__h3 {
  font-size: 18px !important;
  font-weight: 950 !important;
}

.qw-la__miniList li, .qw-du__list li, .qw-rso__list li {
  font-weight: 600 !important;
  color: #1e293b !important;
}

.qw-la__note, .qw-du__note {
  font-weight: 600 !important;
}

.qw-la__caption, .qw-du__caption {
  font-weight: 600 !important;
}

/* RenovaciÃ³n â€” extra bold styling */
.qw-rso__subtitle {
  font-weight: 700 !important;
  color: #1e293b !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}

.qw-rso__lead {
  font-weight: 700 !important;
  color: #334155 !important;
}

.qw-rso .qw-rso__pill {
  font-weight: 950 !important;
}

.qw-rso .qw-rso__card .qw-rso__h3 {
  font-size: 19px !important;
  font-weight: 950 !important;
}

.qw-rso .qw-rso__card .qw-rso__p {
  font-weight: 600 !important;
  color: #475569 !important;
}

.qw-rso .qw-rso__card .qw-rso__list li {
  font-weight: 700 !important;
  color: #1e293b !important;
}

/* ---------------------------------------------------------------------
   Renovacion rapida sin obras
--------------------------------------------------------------------- */
.qw-rso{
  --qw-green:#1bcf17;
  --qw-green-dark:#11900f;
  --qw-bg:#ffffff;
  --qw-card:#ffffff;
  --qw-text:#0f172a;
  --qw-muted:#64748b;
  --qw-line:transparent;
  --qw-shadow:0 10px 30px rgba(2,6,23,.08);
  --qw-radius:22px;
  --qw-max:1100px;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--qw-text);
}

.qw-rso .qw-rso__wrap{
  max-width:none;
  margin:0 auto;
  padding:clamp(18px, 3vw, 34px) 16px;
}

.qw-rso .qw-rso__hero{
  background:#ffffff;
  border:none;
  border-radius:calc(var(--qw-radius) + 6px);
  box-shadow:var(--qw-shadow);
  overflow:visible;
}

.qw-rso .qw-rso__hero-inner{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(16px, 2.6vw, 28px);
  padding:clamp(18px, 3vw, 30px);
  align-items:start;
}

.qw-rso .qw-rso__title{
  margin:12px 0 10px;
  font-size:clamp(26px, 3.2vw, 42px);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.02em;
}

.qw-rso .qw-rso__subtitle{
  margin:0 0 14px;
  color:var(--qw-muted);
  font-size:15px;
  line-height:1.75;
  max-width:72ch;
}

.qw-rso .qw-rso__lead{
  margin:0;
  font-size:14px;
  line-height:1.75;
  color:#334155;
  max-width:74ch;
}

.qw-rso .qw-rso__ctaRow{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:16px;
  align-items:center;
}

.qw-rso .qw-rso__btn,
.qw-rso .qw-rso__ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none !important;
}

.qw-rso .qw-rso__btn{
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(27,207,23,.35);
  background:var(--qw-green);
  color:#fff;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:12px;
  transition:transform .16s ease, filter .16s ease;
}

.qw-rso .qw-rso__btn:hover{
  transform:translateY(-1px);
  filter:brightness(1.02);
}

.qw-rso .qw-rso__btn:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(27,207,23,.25);
}

.qw-rso .qw-rso__ghost{
  padding:12px 16px;
  border-radius:999px;
  border:none;
  background:#ffffff;
  color:var(--qw-text);
  font-weight:900;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
}

.qw-rso .qw-rso__ghost:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(27,207,23,.18);
}

.qw-rso .qw-rso__pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  border:none;
  background:#ffffff;
  font-weight:950;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
}

.qw-rso .qw-rso__grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.qw-rso .qw-rso__card{
  background:#ffffff;
  border:none;
  border-radius:var(--qw-radius);
  box-shadow:0 12px 28px rgba(2,6,23,.06);
  overflow:visible;
}

.qw-rso .qw-rso__card-inner{
  padding:18px 18px 16px;
}

.qw-rso .qw-rso__h3{
  margin:0 0 8px;
  font-size:16px;
  font-weight:950;
}

.qw-rso .qw-rso__pill + .qw-rso__h3{
  margin-top:10px;
}

.qw-rso .qw-rso__p{
  margin:0;
  color:var(--qw-muted);
  font-size:13px;
  line-height:1.75;
}

.qw-rso .qw-rso__list{
  margin:12px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
}

.qw-rso .qw-rso__list li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:#334155;
  font-size:13px;
  line-height:1.6;
}

.qw-rso .qw-rso__tick,
.qw-la .qw-la__tick,
.qw-du .qw-du__tick{
  width:18px;
  height:18px;
  border-radius:6px;
  background:#ffffff;
  border:none;
  box-shadow:0 2px 8px rgba(15,23,42,.10);
  position:relative;
  flex:0 0 18px;
  margin-top:2px;
}

.qw-rso .qw-rso__tick::after,
.qw-la .qw-la__tick::after,
.qw-du .qw-du__tick::after{
  content:"";
  position:absolute;
  left:5px;
  top:3px;
  width:5px;
  height:9px;
  border-right:2px solid #1bcf17;
  border-bottom:2px solid #1bcf17;
  transform:rotate(40deg);
}

.qw-rso .qw-rso__viz{
  margin-top:24px;
}

.qw-rso .qw-rso__vizCard{
  background:#ffffff;
  border:none;
  border-radius:calc(var(--qw-radius) + 6px);
  box-shadow:0 6px 28px rgba(2,6,23,.06), 0 1px 3px rgba(2,6,23,.04);
  overflow:visible;
}

.qw-rso .qw-rso__vizInner{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(16px, 2.6vw, 28px);
  padding:clamp(18px, 3vw, 30px);
  align-items:start;
}

.qw-rso .qw-rso__vizTitle{
  margin:0 0 10px;
  font-size:16px;
  font-weight:950;
}

.qw-rso .qw-rso__vizBlock{
  margin-top:12px;
  padding-top:12px;
  border-top:none;
}

.qw-rso .qw-rso__vizKicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:7px 10px;
  border-radius:999px;
  border:none;
  background:rgba(27,207,23,.08);
  color:#1bcf17;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:11px;
}

.qw-rso .qw-rso__vizH{
  margin:10px 0 6px;
  font-size:14px;
  font-weight:950;
}

.qw-rso .qw-rso__vizTxt,
.qw-la .qw-la__p,
.qw-du .qw-du__p{
  margin:0;
  color:var(--qw-muted);
  font-size:13px;
  line-height:1.75;
}

.qw-rso .qw-rso__vizMedia{
  display:grid;
  gap:12px;
}

.qw-rso .qw-rso__vizStep{
  position:relative;
}

.qw-rso__media{
  border-radius:var(--qw-radius);
  border:none;
  background:#ffffff;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
  overflow:hidden;
}

.qw-rso .qw-rso__media img{
  display:block;
  width:100%;
  height:auto;
}

.qw-rso .qw-rso__stepCap{
  position:absolute;
  left:12px;
  bottom:12px;
  padding:6px 10px;
  border-radius:999px;
  background:#ffffff;
  border:none;
  box-shadow:0 6px 20px rgba(15,23,42,.08);
  color:var(--qw-text);
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:11px;
}

.qw-rso .qw-rso__viz img{
  cursor:zoom-in;
}

/* =====================================================================
   Carousel (RenovaciÃ³n â€” 3 secciones)
   ===================================================================== */
.qw-rso__carousel{
  margin-top:16px;
}

.qw-rso__carousel-stage{
  position:relative;
  width:100%;
  aspect-ratio:4/3;
  max-width:600px;
  margin:0 auto;
  border-radius:20px;
  overflow:hidden;
  background:#ffffff;
  cursor:pointer;
}

.qw-rso__carousel-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .5s ease;
}

.qw-rso__carousel-slide.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.qw-rso__carousel-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center bottom;
}

.qw-rso__carousel-caption{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:16px 20px;
  background:rgba(0,0,0,.40);
  display:flex;
  flex-direction:column;
  gap:2px;
}

.qw-rso__carousel-caption strong{
  font-size:1rem;
  font-weight:800;
  color:#fff;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}

.qw-rso__carousel-caption span{
  font-size:.85rem;
  color:rgba(255,255,255,.8);
}

.qw-rso__carousel-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  border-radius:50%;
  border:none;
  background:rgba(0,0,0,.35);
  backdrop-filter:blur(6px);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease;
  z-index:2;
}

.qw-rso__carousel-arrow:hover{
  background:rgba(0,0,0,.55);
}

.qw-rso__carousel-arrow--prev{ left:12px; }
.qw-rso__carousel-arrow--next{ right:12px; }

.qw-rso__carousel-dots{
  display:flex;
  justify-content:center;
  gap:8px;
  padding:12px 0;
}

.qw-rso__carousel-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  border:none;
  background:rgba(15,23,42,.20);
  cursor:pointer;
  transition:background .2s ease,transform .2s ease;
  padding:0;
}

.qw-rso__carousel-dot.is-active{
  background:#1bcf17;
  transform:scale(1.2);
}

/* Guide banner (Guia_paso_a_paso.jpg) */
.qw-rso__guide-banner{
  position:relative;
  margin-bottom:16px;
  border-radius:16px;
  overflow:hidden;
  cursor:pointer;
}

.qw-rso__guide-banner-img{
  display:block;
  width:100%;
  height:auto;
  border-radius:16px;
  transition:transform .3s ease;
}

.qw-rso__guide-banner:hover .qw-rso__guide-banner-img{
  transform:scale(1.01);
}

.qw-rso__guide-banner-hint{
  position:absolute;
  bottom:12px;
  right:16px;
  padding:4px 12px;
  border-radius:8px;
  background:rgba(0,0,0,.6);
  color:#fff;
  font-size:11px;
  font-weight:600;
  backdrop-filter:blur(4px);
  pointer-events:none;
}

/* =====================================================================
   Gallery Lightbox (patrÃ³n Nuestros Trabajos â€” unificado)
   ===================================================================== */
.qw-rso__lb{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:clamp(14px,3vw,30px);
  background:rgba(2,6,23,.78);
  backdrop-filter:blur(24px);
}

.qw-rso__lb.is-open{
  display:flex;
}

body.qw-rso--noscroll{
  overflow:hidden !important;
}

.qw-rso__lb-img{
  display:block;
  max-width:90vw;
  max-height:82vh;
  object-fit:contain;
  border-radius:14px;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
  transform:scale(.92);
  opacity:0;
  transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .4s ease;
}

.qw-rso__lb.is-open .qw-rso__lb-img{
  transform:scale(1);
  opacity:1;
}

.qw-rso__lb-close{
  position:fixed;
  top:max(16px,env(safe-area-inset-top));
  right:max(16px,env(safe-area-inset-right));
  z-index:3;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(15,23,42,.6);
  backdrop-filter:blur(6px);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .2s ease, transform .16s ease;
}

.qw-rso .qw-rso__lb-close svg{
  width:18px;
  height:18px;
  min-width:18px;
  max-width:none;
  flex-shrink:0;
  display:block;
}

.qw-rso__lb-close:hover{
  background:rgba(220,38,38,.7);
  transform:scale(1.06);
}

.qw-rso__lb-nav{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(6px);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, transform .16s ease;
  z-index:3;
}

.qw-rso .qw-rso__lb-nav svg{
  width:18px;
  height:18px;
  min-width:18px;
  max-width:none;
  flex-shrink:0;
  display:block;
}

.qw-rso__lb-nav:hover{
  background:rgba(15,23,42,.75);
  border-color:rgba(255,255,255,.35);
  transform:translateY(-50%) scale(1.05);
}

.qw-rso__lb-nav--prev{ left:2.5%; }
.qw-rso__lb-nav--next{ right:2.5%; }

.qw-rso__lb-counter{
  position:fixed;
  top:max(20px,env(safe-area-inset-top));
  left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,.5);
  font-size:12px;
  font-weight:600;
  z-index:3;
}

.qw-rso__lb-caption{
  position:fixed;
  bottom:max(24px,env(safe-area-inset-bottom));
  left:50%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  padding:8px 20px;
  border-radius:999px;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(6px);
  z-index:3;
}

.qw-rso__lb-caption strong{
  color:#fff;
  font-size:13px;
  font-weight:700;
}

.qw-rso__lb-caption span{
  color:rgba(255,255,255,.7);
  font-size:11px;
}

@media(prefers-reduced-motion:reduce){
  .qw-rso__lb-img{transition:none}
  .qw-rso__carousel-slide{transition:none}
}

@media(max-width:640px){
  .qw-rso__carousel-stage{max-width:100%;border-radius:14px}
  .qw-rso__carousel-arrow{width:34px;height:34px}
  .qw-rso__carousel-arrow svg{width:15px;height:15px}
  .qw-rso__lb-close{width:34px;height:34px}
  .qw-rso__lb-nav{width:34px;height:34px}
  .qw-rso__lb-caption{max-width:90%;padding:6px 14px}
}

/* ---------------------------------------------------------------------
   Laminas autoadhesivas
--------------------------------------------------------------------- */
.qw-la{
  --qw-green:#1bcf17;
  --qw-green-dark:#11900f;
  --qw-bg:#ffffff;
  --qw-card:#ffffff;
  --qw-text:#0f172a;
  --qw-muted:#64748b;
  --qw-line:transparent;
  --qw-shadow:0 10px 30px rgba(2,6,23,.08);
  --qw-radius:22px;
  --qw-radius-sm:16px;
  --qw-max:1100px;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--qw-text);
}

.qw-la .qw-la__wrap{
  max-width:none;
  margin:0 auto;
  padding:clamp(18px, 3vw, 34px) 16px;
}

.qw-la .qw-la__hero{
  background:#ffffff;
  border:none;
  border-radius:calc(var(--qw-radius) + 6px);
  box-shadow:var(--qw-shadow);
  overflow:visible;
}

.qw-la .qw-la__hero-inner{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(16px, 2.6vw, 28px);
  padding:clamp(18px, 3vw, 30px);
  align-items:center;
}

.qw-la .qw-la__title{
  margin:12px 0 10px;
  font-size:clamp(26px, 3.2vw, 42px);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.02em;
}

.qw-la .qw-la__subtitle{
  margin:0 0 14px;
  color:var(--qw-muted);
  font-size:15px;
  line-height:1.75;
  max-width:72ch;
}

.qw-la .qw-la__lead{
  margin:0;
  font-size:14px;
  line-height:1.75;
  color:#334155;
  max-width:74ch;
}

.qw-la .qw-la__ctaRow,
.qw-du .qw-du__ctaRow{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:16px;
  align-items:center;
}

.qw-la .qw-la__btn,
.qw-du .qw-du__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(27,207,23,.35);
  background:#1bcf17;
  color:#fff;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:12px;
  text-decoration:none !important;
  border-bottom:0 !important;
}

.qw-la .qw-la__btn{
  transition:transform .16s ease, filter .16s ease;
}

.qw-du .qw-du__btn{
  transition:transform .16s ease, filter .16s ease, box-shadow .16s ease;
}

.qw-la .qw-la__btn:hover,
.qw-du .qw-du__btn:hover{
  transform:translateY(-1px);
  filter:brightness(1.02);
}

.qw-la .qw-la__btn:focus,
.qw-du .qw-du__btn:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(27,207,23,.25);
}

.qw-la .qw-la__ghost{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  border:none;
  background:#ffffff;
  color:var(--qw-text);
  font-weight:900;
  text-decoration:none;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
}

.qw-la .qw-la__ghost:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(27,207,23,.18);
}

.qw-la .qw-la__media,
.qw-du .qw-du__media{
  border-radius:var(--qw-radius);
  border:none;
  background:#fff;
  overflow:hidden;
}

.qw-la .qw-la__media img,
.qw-du .qw-du__media img{
  display:block;
  width:100%;
  height:auto;
}

.qw-la .qw-la__media{
  position:relative;
}

.qw-la .qw-la__media img{
  cursor:zoom-in;
}

.qw-la__lightbox{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:clamp(14px, 3vw, 28px);
  background:rgba(2,6,23,.72);
  backdrop-filter:blur(6px);
}

.qw-la__lightbox.is-open{
  display:flex;
}

html.qw-la--lb-open,
body.qw-la--lb-open{
  overflow:hidden !important;
}

.qw-la__lightbox-panel{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  max-width:min(1100px, 96vw);
  max-height:92vh;
  background:#0b1220;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  box-shadow:0 26px 90px rgba(0,0,0,.35);
  overflow:hidden;
}

.qw-la__lightbox-img{
  display:block;
  width:auto;
  height:auto;
  max-width:96vw;
  max-height:92vh;
  object-fit:contain;
  background:#0b1220;
}

.qw-la__lightbox-close{
  position:absolute;
  top:max(10px, env(safe-area-inset-top));
  right:max(10px, env(safe-area-inset-right));
  z-index:2;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(17,24,39,.55);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:transform .12s ease, background .12s ease, border-color .12s ease;
}

.qw-la__lightbox-close:hover{
  transform:scale(1.03);
  background:rgba(17,24,39,.72);
  border-color:rgba(255,255,255,.3);
}

.qw-la .qw-la__lightbox-close svg{
  width:18px;
  height:18px;
  min-width:18px;
  max-width:none;
  flex-shrink:0;
  display:block;
}

.qw-la .qw-la__caption,
.qw-du .qw-du__caption{
  margin-top:10px;
  color:var(--qw-muted);
  font-size:12px;
  line-height:1.5;
  text-align:center;
}

.qw-la .qw-la__grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.qw-la .qw-la__card,
.qw-du .qw-du__card,
.qw-du .qw-du__section{
  background:#ffffff;
  border:none;
  border-radius:var(--qw-radius);
  box-shadow:0 12px 28px rgba(2,6,23,.06);
  overflow:visible;
}

.qw-la .qw-la__card-inner,
.qw-du .qw-du__card-inner,
.qw-du .qw-du__section-inner{
  padding:18px 18px 16px;
}

.qw-la .qw-la__h3,
.qw-du .qw-du__h3,
.qw-du .qw-du__sectionTitle{
  margin:0 0 8px;
  font-size:16px;
  font-weight:950;
}

.qw-la .qw-la__miniList,
.qw-du .qw-du__list{
  margin:12px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
}

.qw-la .qw-la__miniList li,
.qw-du .qw-du__list li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:#334155;
  font-size:13px;
  line-height:1.6;
}

.qw-la .qw-la__note,
.qw-du .qw-du__note{
  margin-top:14px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(27,207,23,.22);
  background:rgba(27,207,23,.08);
  color:#1bcf17;
  font-size:13px;
  line-height:1.6;
}

/* ---------------------------------------------------------------------
   Disenos unicos
--------------------------------------------------------------------- */
.qw-du{
  --qw-green:#1bcf17;
  --qw-green-d:#11900f;
  --qw-bg:#ffffff;
  --qw-card:#ffffff;
  --qw-text:#0f172a;
  --qw-muted:#64748b;
  --qw-line:transparent;
  --qw-shadow:0 10px 30px rgba(2,6,23,.08);
  --qw-radius:22px;
  --qw-max:1120px;
  --qw-du-img-filter:brightness(1.08) saturate(1.18) contrast(1.06);
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--qw-text);
}

.qw-du *{
  box-sizing:border-box;
}

.qw-du .qw-du__wrap{
  max-width:none;
  margin:0 auto;
  padding:clamp(18px, 3vw, 36px) 16px;
}

.qw-du .qw-du__hero{
  background:#ffffff;
  border:none;
  border-radius:calc(var(--qw-radius) + 8px);
  box-shadow:var(--qw-shadow);
  overflow:visible;
}

.qw-du .qw-du__hero::before{
  display:none;
}

.qw-du .qw-du__hero-inner{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(16px, 2.8vw, 30px);
  padding:clamp(18px, 3vw, 32px);
  align-items:center;
}

.qw-du .qw-du__title{
  margin:12px 0 10px;
  font-size:clamp(28px, 3.3vw, 44px);
  line-height:1.06;
  font-weight:950;
  letter-spacing:-.02em;
}

.qw-du .qw-du__subtitle{
  margin:0 0 14px;
  color:var(--qw-muted);
  font-size:15px;
  line-height:1.75;
  max-width:72ch;
}

.qw-du .qw-du__lead{
  margin:0;
  font-size:14px;
  line-height:1.75;
  color:#334155;
  max-width:74ch;
}

.qw-du .qw-du__btn:hover{
  box-shadow:0 14px 26px rgba(27,207,23,.18);
  background:var(--qw-green-d);
}

.qw-du .qw-du__media{
  box-shadow:none;
}

.qw-du .qw-du__media,
.qw-du .qw-du__thumb{
  transition:none;
}

.qw-du .qw-du__media:hover{
  transform:none;
  box-shadow:none;
}

.qw-du .qw-du__divider{
  height:1px;
  background:rgba(27,207,23,.12);
  margin:18px 0 0;
}

.qw-du .qw-du__grid{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.qw-du .qw-du__sectionSub{
  margin:0 0 12px;
  font-size:13px;
  line-height:1.7;
  color:var(--qw-muted);
}

.qw-du .qw-du__miniGrid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}

.qw-du .qw-du__mini{
  border:none;
  border-radius:16px;
  padding:12px;
  background:#ffffff;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
}

.qw-du .qw-du__mini strong{
  display:block;
  font-weight:950;
  margin-bottom:4px;
}

.qw-du .qw-du__mini span{
  display:block;
  color:#334155;
  font-size:12px;
  line-height:1.65;
}

.qw-du .qw-du__gallery{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}

.qw-du .qw-du__thumb{
  border-radius:16px;
  border:none;
  background:#ffffff;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
  overflow:hidden;
}

.qw-du .qw-du__thumb img{
  display:block;
  width:100%;
  height:auto;
}

.qw-du img[data-qw-zoom]{
  cursor:zoom-in;
}

.qw-du .qw-du__media img,
.qw-du .qw-du__thumb img{
  box-shadow:none !important;
  filter:var(--qw-du-img-filter) !important;
  transition:filter .18s ease;
}

.qw-du .qw-du__zoom{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:clamp(14px, 2.5vw, 28px);
  background:rgba(2,6,23,.78);
  backdrop-filter:blur(6px);
}

.qw-du .qw-du__zoom.is-open{
  display:flex;
}

html.qw-du-zoom-lock,
html.qw-du-zoom-lock body{
  overflow:hidden !important;
}

.qw-du .qw-du__zoomInner{
  position:relative;
  padding:10px;
  width:fit-content;
  max-width:min(980px, 100%);
  max-height:calc(100vh - 120px);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 30px 90px rgba(0,0,0,.45);
}

.qw-du .qw-du__zoomImg{
  width:auto;
  height:auto;
  max-width:min(980px, calc(100vw - 56px));
  max-height:calc(100vh - 140px);
  object-fit:contain;
  cursor:zoom-out;
  user-select:none;
  -webkit-user-drag:none;
  filter:var(--qw-du-img-filter) !important;
}

.qw-du .qw-du__zoomClose{
  position:fixed;
  top:18px;
  right:18px;
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(15,23,42,.55);
  color:#fff;
  font-size:28px;
  line-height:1;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .14s ease, filter .14s ease, background .14s ease;
}

.qw-du .qw-du__zoomClose:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
  background:rgba(15,23,42,.72);
}

.qw-du .qw-du__zoomClose:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(27,207,23,.28);
}

/* ---------------------------------------------------------------------
   SSOT polish aligned with Directivas CSS.md
--------------------------------------------------------------------- */
.qw-rso,
.qw-la,
.qw-du{
  --qw-green:#1bcf17;
  --qw-green-dark:#11900f;
  --qw-bg:#ffffff;
  --qw-bg-alt:#ffffff;
  --qw-card:#ffffff;
  --qw-ink:#0f172a;
  --qw-text:rgba(15,23,42,.90);
  --qw-muted:rgba(15,23,42,.70);
  --qw-line:transparent;
  --qw-shadow:0 10px 30px rgba(15,23,42,.06);
  --qw-shadow-md:0 18px 55px rgba(15,23,42,.10);
  --qw-shadow-strong:0 26px 70px rgba(15,23,42,.14);
  --qw-radius-sm:12px;
  --qw-radius-md:16px;
  --qw-radius:22px;
  --qw-radius-xl:28px;
  color:var(--qw-ink);
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

.qw-du{
  --qw-du-img-filter:brightness(1.02) saturate(1.05) contrast(1.02);
}

.qw-info-wm{
  color:rgba(27,207,23,.14);
  opacity:.72;
}

.qw-info-wm--branch{
  color:rgba(27,207,23,.12);
}

.qw-rso .qw-rso__wrap,
.qw-la .qw-la__wrap,
.qw-du .qw-du__wrap{
  padding:clamp(22px, 3vw, 40px) 16px;
}

.qw-rso .qw-rso__hero,
.qw-rso .qw-rso__vizCard,
.qw-la .qw-la__hero,
.qw-du .qw-du__hero{
  background:#ffffff;
  border:none;
  border-radius:var(--qw-radius-xl);
  overflow:visible;
  box-shadow:var(--qw-shadow);
}

.qw-du .qw-du__hero::before{
  inset:-88px -104px auto auto;
  width:280px;
  height:280px;
  background:rgba(27,207,23,.06);
  border-radius:50%;
}

.qw-rso .qw-rso__hero-inner,
.qw-rso .qw-rso__vizInner,
.qw-la .qw-la__hero-inner,
.qw-du .qw-du__hero-inner{
  gap:clamp(20px, 3vw, 34px);
  padding:clamp(22px, 3vw, 36px);
}

.qw-rso .qw-rso__hero-inner > div,
.qw-rso .qw-rso__vizInner > div,
.qw-la .qw-la__hero-inner > div,
.qw-du .qw-du__hero-inner > div{
  min-width:0;
}

.qw-rso .qw-rso__title,
.qw-la .qw-la__title,
.qw-du .qw-du__title{
  margin:0 0 12px;
  font-size:clamp(28px, 3.2vw, 44px);
  line-height:1.08;
}

.qw-rso .qw-rso__subtitle,
.qw-la .qw-la__subtitle,
.qw-du .qw-du__subtitle{
  margin:0 0 12px;
  color:var(--qw-muted);
  font-size:16px;
  line-height:1.72;
  max-width:64ch;
}

.qw-rso .qw-rso__lead,
.qw-la .qw-la__lead,
.qw-du .qw-du__lead{
  color:var(--qw-text);
  font-size:14px;
  line-height:1.78;
  max-width:68ch;
}

.qw-rso .qw-rso__ctaRow,
.qw-la .qw-la__ctaRow,
.qw-du .qw-du__ctaRow{
  gap:12px;
  margin-top:18px;
}

.qw-rso .qw-rso__btn,
.qw-la .qw-la__btn,
.qw-du .qw-du__btn,
.qw-rso .qw-rso__ghost,
.qw-la .qw-la__ghost{
  min-height:48px;
  border-radius:999px;
  font-size:12px;
  letter-spacing:.08em;
  box-shadow:none;
  transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease;
}

.qw-rso .qw-rso__btn,
.qw-la .qw-la__btn,
.qw-du .qw-du__btn{
  background:var(--qw-green);
  border-color:rgba(27,207,23,.24);
}

.qw-rso .qw-rso__btn:hover,
.qw-la .qw-la__btn:hover,
.qw-du .qw-du__btn:hover{
  transform:translateY(-1px);
  background:var(--qw-green-dark);
  filter:none;
  box-shadow:0 12px 24px rgba(27,207,23,.12);
}

.qw-rso .qw-rso__ghost:hover,
.qw-la .qw-la__ghost:hover{
  transform:translateY(-1px);
  background:rgba(27,207,23,.06);
  border-color:rgba(27,207,23,.20);
  color:var(--qw-ink);
}

.qw-rso .qw-rso__grid,
.qw-la .qw-la__grid,
.qw-du .qw-du__grid,
.qw-du .qw-du__gallery,
.qw-du .qw-du__miniGrid{
  gap:18px;
}

.qw-rso .qw-rso__card,
.qw-rso .qw-rso__vizCard,
.qw-la .qw-la__card,
.qw-du .qw-du__card,
.qw-du .qw-du__section{
  border-color:var(--qw-line);
  border-radius:var(--qw-radius);
  box-shadow:var(--qw-shadow);
}

.qw-rso .qw-rso__card,
.qw-la .qw-la__card,
.qw-du .qw-du__card,
.qw-du .qw-du__section{
  height:100%;
}

.qw-rso .qw-rso__card-inner,
.qw-la .qw-la__card-inner,
.qw-du .qw-du__card-inner,
.qw-du .qw-du__section-inner{
  padding:clamp(20px, 2.4vw, 24px);
}

.qw-rso .qw-rso__h3,
.qw-rso .qw-rso__vizTitle,
.qw-la .qw-la__h3,
.qw-du .qw-du__h3,
.qw-du .qw-du__sectionTitle{
  margin:0 0 10px;
  font-size:18px;
  line-height:1.3;
  font-weight:900;
}

.qw-rso .qw-rso__p,
.qw-rso .qw-rso__vizTxt,
.qw-la .qw-la__p,
.qw-du .qw-du__p,
.qw-du .qw-du__sectionSub{
  color:var(--qw-muted);
  font-size:14px;
  line-height:1.78;
}

.qw-rso .qw-rso__list,
.qw-la .qw-la__miniList,
.qw-du .qw-du__list{
  gap:10px;
}

.qw-rso .qw-rso__list li,
.qw-la .qw-la__miniList li,
.qw-du .qw-du__list li{
  color:var(--qw-text);
  font-size:14px;
  line-height:1.72;
}

.qw-rso .qw-rso__pill,
.qw-rso .qw-rso__vizKicker,
.qw-la .qw-la__kicker,
.qw-du .qw-du__kicker{
  border-color:rgba(27,207,23,.20);
  background:rgba(27,207,23,.08);
  color:#1bcf17;
}

.qw-rso .qw-rso__note,
.qw-la .qw-la__note,
.qw-du .qw-du__note{
  margin-top:16px;
  border-radius:var(--qw-radius-md);
  border-color:rgba(27,207,23,.20);
  background:rgba(27,207,23,.07);
}

.qw-rso .qw-rso__media,
.qw-la .qw-la__media,
.qw-du .qw-du__media,
.qw-du .qw-du__thumb{
  border-radius:var(--qw-radius);
  border:none;
  background:#ffffff;
  box-shadow:0 8px 24px rgba(15,23,42,.04);
}

.qw-rso .qw-rso__vizMedia{
  gap:16px;
}

.qw-rso .qw-rso__vizBlock{
  margin-top:16px;
  padding-top:16px;
  border-top:none;
}

.qw-rso .qw-rso__stepCap{
  background:#ffffff;
  border-color:transparent;
  box-shadow:0 8px 20px rgba(15,23,42,.08);
}

.qw-du .qw-du__divider{
  background:rgba(27,207,23,.12);
  margin:24px 0 0;
}

.qw-du .qw-du__mini{
  background:#ffffff;
  border:none;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
}

.qw-la .qw-la__caption,
.qw-du .qw-du__caption{
  margin-top:12px;
}

.qw-la__lightbox,
.qw-du .qw-du__zoom{
  background:rgba(15,23,42,.78);
}

@media (max-width: 780px){
  .qw-rso .qw-rso__hero-inner,
  .qw-rso .qw-rso__vizInner,
  .qw-la .qw-la__hero-inner,
  .qw-du .qw-du__hero-inner{
    padding:20px;
  }
}

@media (max-width: 640px){
  .qw-rso .qw-rso__wrap,
  .qw-la .qw-la__wrap,
  .qw-du .qw-du__wrap{
    padding-inline:14px;
  }

  .qw-rso .qw-rso__title,
  .qw-la .qw-la__title,
  .qw-du .qw-du__title{
    font-size:clamp(26px, 9vw, 34px);
  }

  .qw-rso .qw-rso__ctaRow,
  .qw-la .qw-la__ctaRow,
  .qw-du .qw-du__ctaRow{
    align-items:stretch;
  }

  .qw-rso .qw-rso__btn,
  .qw-la .qw-la__btn,
  .qw-du .qw-du__btn,
  .qw-rso .qw-rso__ghost,
  .qw-la .qw-la__ghost{
    width:100%;
  }

  .qw-rso .qw-rso__stepCap{
    left:10px;
    bottom:10px;
  }

  .qw-la__lightbox-close,
  .qw-du .qw-du__zoomClose{
    width:42px;
    height:42px;
  }
}

@media (max-width: 980px){
  .qw-du .qw-du__hero-inner,
  .qw-du .qw-du__grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 900px){
  .qw-rso .qw-rso__hero-inner,
  .qw-rso .qw-rso__grid,
  .qw-rso .qw-rso__vizInner,
  .qw-la .qw-la__hero-inner,
  .qw-la .qw-la__grid,
  .qw-du .qw-du__miniGrid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 700px){
  .qw-du .qw-du__gallery{
    grid-template-columns:1fr;
  }
}

@media (prefers-reduced-motion: reduce){
  .qw-la .qw-la__btn,
  .qw-la .qw-la__ghost,
  .qw-la__lightbox-close,
  .qw-du .qw-du__btn,
  .qw-du .qw-du__zoomClose,
  .qw-rso .qw-rso__btn,
  .qw-rso .qw-rso__ghost{
    transition:none;
  }
}

/* ---------------------------------------------------------------------
   QWOOD - Informative landings visual polish 2026-03-13
--------------------------------------------------------------------- */
.qw-rso .qw-rso__title,
.qw-la .qw-la__title,
.qw-du .qw-du__title{
  text-wrap: pretty;
}

.qw-rso .qw-rso__subtitle,
.qw-rso .qw-rso__lead,
.qw-la .qw-la__subtitle,
.qw-la .qw-la__lead,
.qw-du .qw-du__subtitle,
.qw-du .qw-du__lead{
  max-width: 68ch;
}

.qw-rso .qw-rso__hero,
.qw-rso .qw-rso__vizCard,
.qw-la .qw-la__hero,
.qw-la .qw-la__card,
.qw-du .qw-du__hero,
.qw-du .qw-du__card{
  background: #ffffff;
  box-shadow: 0 16px 38px rgba(15,23,42,.08);
}

.qw-rso .qw-rso__btn,
.qw-la .qw-la__btn,
.qw-du .qw-du__btn{
  box-shadow: 0 12px 26px rgba(27,207,23,.16);
  transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.qw-rso .qw-rso__btn:hover,
.qw-la .qw-la__btn:hover,
.qw-du .qw-du__btn:hover{
  background: var(--qw-green-dark);
  box-shadow: 0 16px 32px rgba(27,207,23,.20);
}

/* ---------------------------------------------------------------------
   QWOOD - Informative landings editorial alignment 2026-03-13
--------------------------------------------------------------------- */
.qw-rso,
.qw-la,
.qw-du{
  --qw-max: 1180px;
}

.qw-rso .qw-rso__hero-inner,
.qw-la .qw-la__hero-inner,
.qw-du .qw-du__hero-inner{
  align-items:center;
}

.qw-rso .qw-rso__vizInner{
  grid-template-columns:minmax(0, 1fr) minmax(340px, .95fr);
  align-items:start;
}

.qw-rso .qw-rso__vizMedia{
  align-content:start;
  gap:18px;
  padding-top:4px;
}

.qw-rso .qw-rso__media img{
  width:100%;
  height:100%;
  min-height:210px;
  object-fit:cover;
  object-position:center;
}

.qw-la .qw-la__media img,
.qw-du .qw-du__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

@media (max-width: 900px){
  .qw-rso .qw-rso__vizMedia{
    padding-top:0;
  }

  .qw-rso .qw-rso__media img{
    min-height:0;
    aspect-ratio:16 / 9;
  }
}

/* ---------------------------------------------------------------------
   QWOOD - Informative/editorial alignment 2026-03-14
--------------------------------------------------------------------- */
.qw-rso,
.qw-la,
.qw-du{
  --qw-max: 1220px;
}

.qw-rso .qw-rso__vizInner,
.qw-la .qw-la__grid,
.qw-du .qw-du__grid{
  gap:clamp(20px, 3vw, 36px);
}

.qw-rso .qw-rso__vizInner > :first-child{
  display:grid;
  align-content:start;
  gap:14px;
}

.qw-rso .qw-rso__vizMedia{
  gap:16px;
  align-content:stretch;
}

.qw-rso .qw-rso__media,
.qw-la .qw-la__media,
.qw-du .qw-du__media{
  height:100%;
}

.qw-rso .qw-rso__media img,
.qw-la .qw-la__media img,
.qw-du .qw-du__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}


/* =====================================================================
   QWOOD - Informative landings
   Premium refinement for destination pages only:
   - Laminas autoadhesivas
   - Disenos unicos
   - Renovacion rapida sin obras
   ===================================================================== */

.qw-la,
.qw-du,
.qw-rso{
  --qw-hero-radius:30px;
  --qw-card-radius:24px;
  --qw-card-radius-sm:18px;
  --qw-premium-line:transparent;
  --qw-premium-line-strong:rgba(27,207,23,.18);
  --qw-premium-shadow:0 20px 54px rgba(15,23,42,.08);
  --qw-premium-shadow-soft:0 14px 34px rgba(15,23,42,.06);
  --qw-premium-shadow-hover:0 26px 60px rgba(15,23,42,.10);
  --qw-premium-hero:#ffffff;
}

.qw-la .qw-la__wrap,
.qw-du .qw-du__wrap,
.qw-rso .qw-rso__wrap{
  padding:clamp(22px, 3vw, 38px) 16px;
}

.qw-la .qw-la__hero,
.qw-du .qw-du__hero,
.qw-rso .qw-rso__hero{
  position:relative;
  background:#ffffff;
  border:none;
  border-radius:var(--qw-hero-radius);
  box-shadow:var(--qw-premium-shadow);
  overflow:visible;
}

.qw-la .qw-la__hero::before,
.qw-du .qw-du__hero::before,
.qw-rso .qw-rso__hero::before{
  content:"";
  position:absolute;
  inset:auto auto 0 0;
  width:240px;
  height:240px;
  border-radius:50%;
  background:rgba(27,207,23,.05);
  transform:translate(-28%, 28%);
  pointer-events:none;
}

/* Hero bottom accent line removed â€” owner directive 2026-05-27 */
.qw-la .qw-la__hero::after,
.qw-du .qw-du__hero::after,
.qw-rso .qw-rso__hero::after{
  display:none;
}

.qw-la .qw-la__hero-inner,
.qw-du .qw-du__hero-inner,
.qw-rso .qw-rso__hero-inner{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:clamp(20px, 3vw, 34px);
  padding:clamp(24px, 3vw, 36px);
  align-items:center;
  position:relative;
  z-index:1;
}

.qw-la .qw-la__title,
.qw-du .qw-du__title,
.qw-rso .qw-rso__title{
  margin:10px 0 12px;
  font-size:clamp(2.2rem, 4vw, 3.6rem);
  line-height:1.02;
  letter-spacing:-.05em;
  font-weight:900;
  color:#1e293b;
  text-wrap:balance;
  max-width:11ch;
}

/* Accent bar under titles removed â€” owner directive 2026-05-27 */
.qw-la .qw-la__title::after,
.qw-du .qw-du__title::after,
.qw-rso .qw-rso__title::after{
  display:none;
}

.qw-la .qw-la__subtitle,
.qw-du .qw-du__subtitle,
.qw-rso .qw-rso__subtitle{
  margin:0 0 16px;
  color:#475569;
  font-size:1.08rem;
  line-height:1.76;
  max-width:66ch;
}

.qw-la .qw-la__lead,
.qw-du .qw-du__lead,
.qw-rso .qw-rso__lead{
  margin:0;
  color:#334155;
  font-size:1rem;
  line-height:1.82;
  max-width:70ch;
}

.qw-la .qw-la__ctaRow,
.qw-du .qw-du__ctaRow,
.qw-rso .qw-rso__ctaRow{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:22px;
}

.qw-la .qw-la__btn,
.qw-du .qw-du__btn,
.qw-rso .qw-rso__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 22px;
  border-radius:999px;
  border:1px solid #1bcf17;
  background:#1bcf17;
  color:#fff;
  font-size:.92rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(27,207,23,.20), 0 0 14px rgba(27,207,23,.12);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background-color .22s ease,
    border-color .22s ease;
}

.qw-la .qw-la__btn:hover,
.qw-du .qw-du__btn:hover,
.qw-rso .qw-rso__btn:hover,
.qw-la .qw-la__btn:focus-visible,
.qw-du .qw-du__btn:focus-visible,
.qw-rso .qw-rso__btn:focus-visible{
  transform:translateY(-2px);
  background:#11900f;
  border-color:#11900f;
  box-shadow:0 12px 28px rgba(27,207,23,.28), 0 0 20px rgba(27,207,23,.18);
  outline:none;
}

.qw-la .qw-la__media,
.qw-du .qw-du__media,
.qw-rso .qw-rso__media,
.qw-rso .qw-rso__vizCard{
  border:none;
  border-radius:26px;
  background:#ffffff;
  box-shadow:var(--qw-premium-shadow-soft);
  overflow:hidden;
}

.qw-rso .qw-rso__vizCard{
  overflow:visible;
}

.qw-la .qw-la__media,
.qw-du .qw-du__media{
  padding:0;
}

.qw-la .qw-la__media img,
.qw-du .qw-du__media img,
.qw-rso .qw-rso__media img,
.qw-rso .qw-rso__vizMedia img{
  display:block;
  width:100%;
  height:auto;
}

.qw-la .qw-la__caption,
.qw-du .qw-du__caption{
  margin-top:12px;
  font-size:.94rem;
  line-height:1.6;
  color:#64748b;
  text-align:center;
}

.qw-la .qw-la__note,
.qw-du .qw-du__note,
.qw-rso .qw-rso__note{
  margin-top:18px;
  padding:15px 16px;
  border-radius:18px;
  border:1px solid rgba(27,207,23,.22);
  background:rgba(27,207,23,.08);
  color:#1bcf17;
  font-size:.96rem;
  line-height:1.72;

}

.qw-la .qw-la__card,
.qw-du .qw-du__card,
.qw-du .qw-du__section,
.qw-rso .qw-rso__card{
  background:#ffffff;
  border:none;
  border-radius:var(--qw-card-radius);
  box-shadow:var(--qw-premium-shadow-soft);
  overflow:visible;
  transition:transform .22s ease, box-shadow .22s ease;
}

.qw-la .qw-la__card:hover,
.qw-du .qw-du__card:hover,
.qw-du .qw-du__section:hover,
.qw-rso .qw-rso__card:hover{
  transform:translateY(-2px);
  border-color:var(--qw-premium-line-strong);
  box-shadow:0 14px 36px rgba(27,207,23,.10), 0 0 16px rgba(27,207,23,.08);
}

.qw-la .qw-la__card-inner,
.qw-du .qw-du__card-inner,
.qw-du .qw-du__section-inner,
.qw-rso .qw-rso__card-inner{
  padding:20px 20px 18px;
}

.qw-la .qw-la__h3,
.qw-du .qw-du__h3,
.qw-du .qw-du__sectionTitle,
.qw-rso .qw-rso__h3,
.qw-rso .qw-rso__vizTitle{
  margin:0 0 10px;
  font-size:1.08rem;
  line-height:1.35;
  letter-spacing:-.02em;
  font-weight:800;
  color:#1e293b;
}

.qw-la .qw-la__p,
.qw-du .qw-du__p,
.qw-du .qw-du__sectionSub,
.qw-rso .qw-rso__p,
.qw-rso .qw-rso__vizTxt{
  color:#475569;
  font-size:.97rem;
  line-height:1.78;
}

.qw-la .qw-la__miniList,
.qw-du .qw-du__list,
.qw-rso .qw-rso__list{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.qw-la .qw-la__miniList li,
.qw-du .qw-du__list li,
.qw-rso .qw-rso__list li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  color:#334155;
  font-size:.98rem;
  line-height:1.72;
}

.qw-rso .qw-rso__tick,
.qw-la .qw-la__tick,
.qw-du .qw-du__tick{
  width:20px;
  height:20px;
  border-radius:7px;
  background:#ffffff;
  border:none;
  box-shadow:0 2px 8px rgba(15,23,42,.10);
  flex:0 0 20px;
  margin-top:2px;
}

.qw-rso .qw-rso__tick::after,
.qw-la .qw-la__tick::after,
.qw-du .qw-du__tick::after{
  left:6px;
  top:3px;
  width:5px;
  height:10px;
}

.qw-du .qw-du__miniGrid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
}

.qw-du .qw-du__mini{
  border:none;
  border-radius:18px;
  padding:14px 13px;
  background:#ffffff;
  box-shadow:0 8px 20px rgba(15,23,42,.04);
}

.qw-du .qw-du__mini strong{
  display:block;
  margin-bottom:5px;
  color:#1e293b;
  font-weight:800;
}

.qw-du .qw-du__mini span{
  display:block;
  color:#475569;
  font-size:.9rem;
  line-height:1.62;
}

.qw-du .qw-du__gallery{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
}

.qw-du .qw-du__thumb{
  border-radius:18px;
  border:none;
  background:#ffffff;
  overflow:hidden;
  box-shadow:0 8px 18px rgba(15,23,42,.04);
}

.qw-rso .qw-rso__vizInner{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:clamp(18px, 2.6vw, 30px);
  padding:clamp(22px, 3vw, 32px);
  align-items:start;
}

.qw-rso .qw-rso__vizKicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  border:none;
  background:rgba(27,207,23,.08);
  color:#11900f;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.82rem;
  box-shadow:0 8px 18px rgba(27,207,23,.08);
}

.qw-rso .qw-rso__vizBlock{
  margin-top:14px;
  padding-top:14px;
  border-top:none;
}

.qw-rso .qw-rso__vizH{
  margin:9px 0 6px;
  font-size:1rem;
  font-weight:800;
  color:#1e293b;
}

.qw-la .qw-la__grid,
.qw-du .qw-du__grid{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}

.qw-rso .qw-rso__grid{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.qw-la .qw-info-wm,
.qw-du .qw-info-wm,
.qw-rso .qw-info-wm{
  opacity:.78;
}

.qw-la .qw-info-wm--left,
.qw-du .qw-info-wm--left,
.qw-rso .qw-info-wm--left{
  left:-20px;
  top:-10px;
}

.qw-la .qw-info-wm--right,
.qw-du .qw-info-wm--right,
.qw-rso .qw-info-wm--right{
  right:-18px;
  bottom:-16px;
}
/* FIX 2026-05-31: en móvil la marca de agua de árbol (hero con overflow:visible) sobresalía
   con bottom negativo e invadía la 1ª tarjeta del carrusel (solape hero↔carrusel, visible solo
   en móvil real). Se ancla DENTRO del hero. */
@media (max-width: 600px){
  .qw-la .qw-info-wm--right,
  .qw-du .qw-info-wm--right,
  .qw-rso .qw-info-wm--right{
    right:-6px;
    bottom:10px;
  }
}

@media (max-width: 980px){
  .qw-la .qw-la__hero-inner,
  .qw-du .qw-du__hero-inner,
  .qw-rso .qw-rso__hero-inner,
  .qw-rso .qw-rso__vizInner{
    grid-template-columns:1fr;
  }

  .qw-la .qw-la__title,
  .qw-du .qw-du__title,
  .qw-rso .qw-rso__title{
    max-width:none;
  }
}

@media (max-width: 767px){
  .qw-la .qw-la__wrap,
  .qw-du .qw-du__wrap,
  .qw-rso .qw-rso__wrap{
    padding:20px 14px 28px;
  }

  .qw-la .qw-la__hero,
  .qw-du .qw-du__hero,
  .qw-rso .qw-rso__hero{
    border-radius:24px;
  }

  .qw-la .qw-la__hero-inner,
  .qw-du .qw-du__hero-inner,
  .qw-rso .qw-rso__hero-inner,
  .qw-rso .qw-rso__vizInner{
    padding:20px 18px 22px;
    gap:18px;
  }

  .qw-la .qw-la__title,
  .qw-du .qw-du__title,
  .qw-rso .qw-rso__title{
    font-size:clamp(2rem, 10vw, 2.85rem);
  }

  .qw-la .qw-la__subtitle,
  .qw-du .qw-du__subtitle,
  .qw-rso .qw-rso__subtitle{
    font-size:1rem;
    line-height:1.72;
  }

  .qw-la .qw-la__lead,
  .qw-du .qw-du__lead,
  .qw-rso .qw-rso__lead{
    font-size:.98rem;
    line-height:1.76;
  }

  .qw-la .qw-la__btn,
  .qw-du .qw-du__btn,
  .qw-rso .qw-rso__btn{
    min-height:46px;
    padding:0 18px;
    font-size:.88rem;
  }

  .qw-la .qw-la__card-inner,
  .qw-du .qw-du__card-inner,
  .qw-du .qw-du__section-inner,
  .qw-rso .qw-rso__card-inner{
    padding:17px 15px 16px;
  }

  .qw-du .qw-du__miniGrid,
  .qw-du .qw-du__gallery,
  .qw-rso .qw-rso__grid{
    grid-template-columns:1fr;
  }

  .qw-la .qw-la__note,
  .qw-du .qw-du__note,
  .qw-rso .qw-rso__note{
    font-size:.92rem;
  }
}


/* =====================================================================
   QWOOD - RSO alignment fix
   Las imÃ¡genes quedan al mismo nivel que su bloque de texto correspondiente
   ===================================================================== */

.qw-rso .qw-rso__vizInner{
  align-items:start;
}

.qw-rso .qw-rso__vizSteps{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(420px,.98fr);
  gap:20px 26px;
  align-items:start;
}

.qw-rso .qw-rso__vizStep{
  display:contents;
}

.qw-rso .qw-rso__vizStepText,
.qw-rso .qw-rso__vizStepMedia{
  align-self:start;
}

.qw-rso .qw-rso__vizStepText{
  min-width:0;
}

.qw-rso .qw-rso__vizStepMedia{
  position:relative;
  top:0;
}

.qw-rso .qw-rso__vizStepMedia img,
.qw-rso .qw-rso__vizStepMedia picture,
.qw-rso .qw-rso__vizStepMedia figure{
  display:block;
  width:100%;
  height:auto;
  margin:0;
}

.qw-rso .qw-rso__vizStep + .qw-rso__vizStep .qw-rso__vizStepText,
.qw-rso .qw-rso__vizStep + .qw-rso__vizStep .qw-rso__vizStepMedia{
  padding-top:4px;
  border-top:none;
}

.qw-rso .qw-rso__vizStepMedia .qw-rso__vizCard,
.qw-rso .qw-rso__vizStepMedia .qw-rso__media,
.qw-rso .qw-rso__vizStepMedia .qw-rso__imgCard{
  margin:0;
}

@media (max-width: 1080px){
  .qw-rso .qw-rso__vizSteps{
    grid-template-columns:minmax(0,1fr) minmax(340px,.94fr);
    gap:18px 22px;
  }
}

@media (max-width: 900px){
  .qw-rso .qw-rso__vizSteps{
    grid-template-columns:1fr;
    gap:14px;
  }

  .qw-rso .qw-rso__vizStep{
    display:block;
  }

  .qw-rso .qw-rso__vizStep + .qw-rso__vizStep{
    margin-top:4px;
    padding-top:14px;
    border-top:none;
  }

  .qw-rso .qw-rso__vizStep + .qw-rso__vizStep .qw-rso__vizStepText,
  .qw-rso .qw-rso__vizStep + .qw-rso__vizStep .qw-rso__vizStepMedia{
    padding-top:0;
    border-top:0;
  }
}

/* =====================================================================
   RenovaciÃ³n â€” Section rows (text + image side by side)
   ===================================================================== */
.qw-rso__vizInner-v2{
  padding:clamp(24px, 4vw, 40px);
}

.qw-rso__vizInner-v2 .qw-rso__vizTitle{
  margin:0 0 6px;
  font-size:clamp(20px, 2.4vw, 24px);
  font-weight:950;
  color:#0f172a;
  letter-spacing:-.02em;
}

.qw-rso__vizInner-v2 > .qw-rso__vizTxt{
  font-weight:500;
  color:#64748b;
  margin-bottom:28px;
  font-size:14px;
  line-height:1.7;
}

.qw-rso__vizRow{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(20px, 3vw, 36px);
  align-items:center;
  padding:clamp(20px, 3vw, 32px) 0;
  position:relative;
}

.qw-rso__vizRow:first-of-type{
  padding-top:0;
}

.qw-rso__vizRow + .qw-rso__vizRow::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:min(80%, 500px);
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(27,207,23,.2) 20%, rgba(27,207,23,.35) 50%, rgba(27,207,23,.2) 80%, transparent);
}

.qw-rso__vizRow + .qw-rso__vizRow::after{
  content:"";
  position:absolute;
  top:-4px;
  left:50%;
  transform:translateX(-50%);
  width:8px;
  height:8px;
  border-radius:50%;
  background:#1bcf17;
  box-shadow:0 0 0 3px rgba(27,207,23,.12);
}

/* Alternate: even rows flip image to left */
.qw-rso__vizRow:nth-of-type(even){
  direction:rtl;
}
.qw-rso__vizRow:nth-of-type(even) > *{
  direction:ltr;
}

.qw-rso__vizRow .qw-rso__vizKicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.qw-rso__vizKicker-num{
  width:32px;
  height:32px;
  border-radius:50%;
  background:#1bcf17;
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:14px;
  box-shadow:0 2px 8px rgba(27,207,23,.25);
  flex-shrink:0;
}

.qw-rso__vizKicker-label{
  font-weight:800;
  font-size:13px;
  color:#0f172a;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.qw-rso__vizRow .qw-rso__vizH{
  margin:14px 0 10px;
  font-size:clamp(17px, 1.8vw, 20px);
  font-weight:900;
  color:#0f172a;
  letter-spacing:-.01em;
}

.qw-rso__vizRow .qw-rso__vizTxt{
  margin:0;
  color:#64748b;
  font-size:13px;
  line-height:1.85;
  font-weight:400;
  max-width:56ch;
}

.qw-rso__vizRow-img{
  position:relative;
}

.qw-rso__vizRow-img img{
  display:block;
  width:100%;
  height:auto;
  border-radius:20px;
  border:none;
  box-shadow:0 6px 20px rgba(15,23,42,.08);
  cursor:zoom-in;
  transition:box-shadow .3s ease;
}

.qw-rso__vizRow-img img:hover{
  box-shadow:0 8px 30px rgba(27,207,23,.1), 0 0 0 1px rgba(27,207,23,.08);
}

@media(max-width:900px){
  .qw-rso__vizRow{
    grid-template-columns:1fr;
  }
  .qw-rso__vizRow:nth-of-type(even){
    direction:ltr;
  }
  .qw-rso__vizRow + .qw-rso__vizRow::before,
  .qw-rso__vizRow + .qw-rso__vizRow::after{
    display:none;
  }
  .qw-rso__vizRow + .qw-rso__vizRow{
    border-top:1px dashed rgba(27,207,23,.18);
  }
  .qw-rso__vizRow-img{
    order:-1;
  }
}

@media(max-width:520px){
  .qw-rso__vizInner-v2{
    padding:18px 16px;
  }
  .qw-rso__vizRow{
    gap:14px;
    padding:18px 0;
  }
  .qw-rso__vizRow-img img{
    border-radius:14px;
  }
}

/* =====================================================================
   SHARED â€” Breadcrumbs + Cross-links
   (These styles were previously inline fallback in PHP; moved here
    because the external CSS file exists and the fallback never runs)
   ===================================================================== */

/* ---- Breadcrumbs: sr-only (hidden visually, kept for SEO) ---- */
.qw-breadcrumb{
  position:absolute !important;
  width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* ============================================================
   QWOOD â€” STEPPER (shared navigation)
   ============================================================ */

/* Stepper â€” Bold redesign */
.qw-stepper{display:flex;align-items:center;justify-content:center;max-width:620px;margin:0 auto;padding:20px 0;font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.qw-stepper__step{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:110px;text-decoration:none}
.qw-stepper__dot{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;background:#ffffff;border:0;color:#94a3b8;box-shadow:0 4px 12px rgba(0,0,0,.18),0 1px 3px rgba(0,0,0,.10);transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}
.qw-stepper__label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;transition:color .2s ease}
.qw-stepper__step.is-active .qw-stepper__dot{background:#1bcf17;border-color:rgba(27,207,23,.35);color:#fff;box-shadow:0 4px 14px rgba(27,207,23,.25)}
.qw-stepper__step.is-active .qw-stepper__label{color:#1bcf17}
.qw-stepper__step.is-done .qw-stepper__dot{background:#ffffff;border:0;color:#94a3b8;box-shadow:0 4px 12px rgba(0,0,0,.18),0 1px 3px rgba(0,0,0,.10)}
.qw-stepper__step.is-done .qw-stepper__label{color:#64748b}
.qw-stepper__line{flex:1;height:3px;background:#ffffff;margin:0 -6px;margin-bottom:26px;border-radius:2px}
.qw-stepper__line.is-done{background:#1bcf17}
@media(max-width:640px){.qw-stepper__label{font-size:10px}.qw-stepper__dot{width:30px;height:30px;font-size:13px}.qw-stepper__step{min-width:70px}.qw-stepper__line{margin-bottom:0}}

/* ============================================================
   QWOOD â€” PREV / NEXT NAVIGATION (shared)
   ============================================================ */

/* Prev/Next â€” Green solid redesign */
.qw-prevnext{display:flex;justify-content:space-between;gap:16px;max-width:none;margin:40px 0 0;padding:0;font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.qw-prevnext__link{flex:1;display:flex;align-items:center;gap:14px;padding:18px 22px;border-radius:16px;border:none;background:#ffffff;box-shadow:0 6px 20px rgba(15,23,42,.08);text-decoration:none !important;transition:transform .2s ease,box-shadow .2s ease}
.qw-prevnext__link:hover{text-decoration:none !important;transform:translateY(-2px)}
.qw-prevnext__link--next{justify-content:flex-end;text-align:right;border:none;background:#1bcf17;box-shadow:0 6px 20px rgba(27,207,23,.2)}
.qw-prevnext__link--next:hover{background:#11900f;box-shadow:0 8px 28px rgba(27,207,23,.3);transform:translateY(-3px)}
.qw-prevnext__link.is-disabled{border:none;background:#ffffff;opacity:.4;pointer-events:none;box-shadow:0 6px 20px rgba(15,23,42,.08)}
.qw-prevnext__meta{display:flex;flex-direction:column;gap:2px}
/* FIX 2026-05-31: #999/#555 no pertenecen a la escala de grises SSOT (slate). Migrados a
   tokens slate canónicos (design-system.css): dir/desc/arrow → slate-500 #64748b,
   title → slate-700 #334155 (más contraste por ser el dato principal). */
.qw-prevnext__dir{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#64748b}
.qw-prevnext__link--next .qw-prevnext__dir{color:rgba(255,255,255,.8)}
.qw-prevnext__title{font-size:15px;font-weight:800;color:#334155}
.qw-prevnext__link--next .qw-prevnext__title{color:#fff}
.qw-prevnext__desc{font-size:12px;color:#64748b}
.qw-prevnext__link--next .qw-prevnext__desc{color:rgba(255,255,255,.7)}
.qw-prevnext__arrow{font-size:22px;font-weight:900;color:#64748b;flex-shrink:0}
.qw-prevnext__link--next .qw-prevnext__arrow{color:#fff}
.qw-prevnext__fallback{text-align:center;margin-top:16px;padding:0;font-size:12px;color:#64748b;font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.qw-prevnext__fallback a{color:#1bcf17;font-weight:700;text-decoration:none}
@media(max-width:640px){.qw-prevnext{flex-direction:column;gap:12px}}

/* ============================================================
   QWOOD â€” PER-PAGE ACCENT VARIABLES
   ============================================================ */

.qw-la{
  --qw-accent:#c8956c;
  --qw-accent-bg:rgba(200,149,108,.08);
  --qw-accent-border:rgba(200,149,108,.25);
  --qw-accent-text:#8b6914;
}
.qw-du{
  --qw-accent:#5b8a72;
  --qw-accent-bg:rgba(91,138,114,.08);
  --qw-accent-border:rgba(91,138,114,.25);
  --qw-accent-text:#3d6b52;
}
.qw-rso{
  --qw-accent:#8b7355;
  --qw-accent-bg:rgba(139,115,85,.08);
  --qw-accent-border:rgba(139,115,85,.25);
  --qw-accent-text:#6b5a42;
}

/* Watermark accent colors */
.qw-la .qw-info-wm{ color:rgba(200,149,108,.08); }
.qw-du .qw-info-wm{ color:rgba(91,138,114,.08); }
.qw-du .qw-info-wm--branch{ color:rgba(91,138,114,.06); }
.qw-rso .qw-info-wm{ color:rgba(139,115,85,.08); }
.qw-rso .qw-info-wm--branch{ color:rgba(139,115,85,.06); }

/* Kicker accents */
.qw-la .qw-la__kicker{
  border-color:var(--qw-accent-border);
  background:var(--qw-accent-bg);
  color:var(--qw-accent);
}
.qw-du .qw-du__kicker{
  border-color:var(--qw-accent-border);
  background:var(--qw-accent-bg);
  color:var(--qw-accent);
}

/* Note/callout accents */
.qw-la .qw-la__note{
  border-color:var(--qw-accent-border);
  background:var(--qw-accent-bg);
  color:var(--qw-accent-text);
}
.qw-du .qw-du__note{
  border-color:var(--qw-accent-border);
  background:var(--qw-accent-bg);
  color:var(--qw-accent-text);
}

/* Renovacion pill accent */
.qw-rso .qw-rso__pill{
  border-color:var(--qw-accent-border);
  background:var(--qw-accent-bg);
  color:var(--qw-accent);
}

/* Mosaic 2x2 (Disenos hero) */
.qw-du .qw-du__mosaic{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.qw-du .qw-du__mosaic-item{
  border-radius:14px;
  border:none;
  background:#ffffff;
  box-shadow:0 12px 28px rgba(16,32,51,.05);
  overflow:hidden;
  aspect-ratio:1;
}
.qw-du .qw-du__mosaic-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  cursor:zoom-in;
  filter: var(--qw-du-img-filter) !important;
  transition: filter .18s ease;
}

/* Border-top accent (Renovacion hero card) */
.qw-rso .qw-rso__hero .qw-rso__card{
  position:relative;
  overflow:visible;
}
.qw-rso .qw-rso__hero .qw-rso__card::before{
  display:none;
}

/* ==========================================================
   FAQ SECTION para landings informativas (audit 2026-04-06)
   EstÃ©tica bold QWOOD: pill verde, accordion details/summary
   ========================================================== */
.qw-la__faq,
.qw-du__faq,
.qw-rso__faq{
  margin: 32px 0 28px;
  padding: 28px 24px;
  background: #ffffff;
  border: none;
  border-radius: 22px;
  box-shadow: 0 8px 24px rgba(15,23,42,.05);
}
.qw-la__faq-title,
.qw-du__faq-title,
.qw-rso__faq-title{
  margin: 0 0 18px;
  font-size: 1.65rem;
  font-weight: 900;
  color: #0f172a;
  letter-spacing: -.015em;
  text-align: center;
}
.qw-la__faq-item,
.qw-du__faq-item,
.qw-rso__faq-item{
  border: none;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(16,32,51,.05);
  /* FIX 2026-07-15 (owner): más aire entre las cards de FAQ (antes 12px, se veían pegadas). */
  margin-bottom: 18px;
  overflow: visible;
  transition: box-shadow .2s ease;
}
.qw-la__faq-item:last-child,
.qw-du__faq-item:last-child,
.qw-rso__faq-item:last-child{ margin-bottom: 0; }
.qw-la__faq-item:hover,
.qw-du__faq-item:hover,
.qw-rso__faq-item:hover{
  border-color: rgba(27,207,23,.32);
  box-shadow: 0 4px 14px rgba(27,207,23,.08);
}
.qw-la__faq-item[open],
.qw-du__faq-item[open],
.qw-rso__faq-item[open]{
  background: #ffffff;
  border-color: rgba(27,207,23,.40);
  box-shadow: 0 6px 18px rgba(27,207,23,.10);
}
.qw-la__faq-q,
.qw-du__faq-q,
.qw-rso__faq-q{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  font-size: 1rem;
  font-weight: 900;
  color: #0f172a;
  cursor: pointer;
  list-style: none;
}
.qw-la__faq-q::-webkit-details-marker,
.qw-du__faq-q::-webkit-details-marker,
.qw-rso__faq-q::-webkit-details-marker{ display:none; }
.qw-la__faq-q:focus-visible,
.qw-du__faq-q:focus-visible,
.qw-rso__faq-q:focus-visible{
  outline: 2px solid rgba(27,207,23,.75);
  outline-offset: -2px;
  box-shadow: none;
}
.qw-la__faq-q::before,
.qw-du__faq-q::before,
.qw-rso__faq-q::before{
  content: "+";
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #1bcf17;
  color: #fff;
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
  transition: transform .25s ease, background .2s ease;
}
.qw-la__faq-item[open] .qw-la__faq-q::before,
.qw-du__faq-item[open] .qw-du__faq-q::before,
.qw-rso__faq-item[open] .qw-rso__faq-q::before{
  content: "\2212";
  background: #11900f;
  transform: rotate(180deg);
}
.qw-la__faq-a,
.qw-du__faq-a,
.qw-rso__faq-a{
  padding: 0 18px 16px 56px;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.65;
  color: #475569;
}

/* CTA Row centered modifier para landings */
.qw-la .qw-la__ctaRow--center,
.qw-du .qw-du__ctaRow--center{
  justify-content: center;
}

@media (max-width: 640px){
  .qw-la__faq,
  .qw-du__faq,
  .qw-rso__faq{
    padding: 22px 16px;
    margin: 24px 0 22px;
  }
  .qw-la__faq-title,
  .qw-du__faq-title,
  .qw-rso__faq-title{ font-size: 1.35rem; }
  .qw-la__faq-q,
  .qw-du__faq-q,
  .qw-rso__faq-q{
    font-size: .94rem;
    padding: 14px 16px;
  }
  .qw-la__faq-a,
  .qw-du__faq-a,
  .qw-rso__faq-a{
    padding: 0 16px 14px 50px;
    font-size: .9rem;
  }
}

/* ============================================================
   LIGHTBOX UNIFICADO â€” self-adhesive / designs / quick-renov
   Los 3 landings usan selectores distintos heredados
   (.qw-la__lightbox-close, .qw-du__zoomClose, .qw-rso__lb-close).
   Esta capa override unifica el botÃ³n de cierre: fondo oscuro
   opaco para garantizar visibilidad sobre cualquier imagen,
   tamaÃ±o y posiciÃ³n consistentes. Audit 2026-04-20: self-adhesive
   usaba fondo semitransparente blanco (.12 alpha) que hacÃ­a la X
   invisible sobre imÃ¡genes claras.
   ============================================================ */
.qw-la .qw-la__lightbox-close,
.qw-du .qw-du__zoomClose,
.qw-rso .qw-rso__lb-close {
  position: fixed;
  top: max(18px, env(safe-area-inset-top));
  right: max(18px, env(safe-area-inset-right));
  z-index: 3;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(15, 23, 42, 0.62);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #ffffff;
  cursor: pointer;
  padding: 0;
  transition: background 0.18s ease, transform 0.18s ease;
}
.qw-la .qw-la__lightbox-close:hover,
.qw-du .qw-du__zoomClose:hover,
.qw-rso .qw-rso__lb-close:hover {
  background: rgba(15, 23, 42, 0.82);
}
.qw-la .qw-la__lightbox-close:focus-visible,
.qw-du .qw-du__zoomClose:focus-visible,
.qw-rso .qw-rso__lb-close:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}
.qw-la .qw-la__lightbox-close svg,
.qw-du .qw-du__zoomClose svg,
.qw-rso .qw-rso__lb-close svg {
  width: 20px;
  height: 20px;
  display: block;
}

/* =====================================================================
   2026-05-08 â€” Fondo de pÃ¡gina blanco + sombras negras en cards
   Las 3 sub-pÃ¡ginas (laminas / disenos-unicos / renovacion-sin-obras)
   pasan de fondo gris-tinte (body #f7faf8 + gradient verde) a blanco
   limpio con sombras negras pronunciadas para destacar las tarjetas.
   ===================================================================== */
body:has(.qw-la),
body:has(.qw-du),
body:has(.qw-rso),
body.qw-info-landing {
  background: #ffffff !important;
}

.qw-la,
.qw-du,
.qw-rso {
  background: #ffffff !important;
}

.qw-la .qw-la__hero,
.qw-la .qw-la__card,
.qw-la .qw-la__faq,
.qw-la .qw-la__faq-item,
.qw-du .qw-du__hero,
.qw-du .qw-du__card,
.qw-du .qw-du__section,
.qw-du .qw-du__mini,
.qw-rso .qw-rso__hero,
.qw-rso .qw-rso__card,
.qw-rso .qw-rso__vizCard,
.qw-rso .qw-rso__faq-item {
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14), 0 4px 10px rgba(0, 0, 0, 0.08) !important;
}

/* =====================================================================
   2026-05-08 â€” Carrusel manual con flechas de cards de secciÃ³n
   Reemplaza .qw-la__grid / .qw-du__grid / .qw-rso__grid (cards apiladas
   verticalmente) por un carrusel horizontal scroll-snap navegable con
   botones â€¹ â€º. Loop al borde (next desde Ãºltimo â†’ primero).
   ===================================================================== */
.qw-info-carousel {
  position: relative;
  width: 100%;
  margin: 24px 0;
  padding: 12px 0;
  /* Anula el `display:grid + grid-template-columns:1fr 1fr` legacy de
     .qw-la__grid / .qw-du__grid / .qw-rso__grid que constreÃ±Ã­a el track
     a 50% del wrapper. */
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
}
.qw-info-carousel__track {
  display: flex;
  /* FIX 2026-07-15 (owner): gap entre slides para que las sombras de cada card NO se
     solapen con la vecina al desplazar. */
  gap: clamp(16px, 4vw, 28px);
  /* FIX 2026-07-15 (owner): todas las slides a la MISMA altura (stretch) y su contenido
     centrado verticalmente (justify-content en .qw-info-slide) → las cortas no dejan
     espacio en blanco debajo (queda padding equilibrado), sin recortar contenido. */
  align-items: stretch;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 10px 0 40px;
}
.qw-info-carousel__track::-webkit-scrollbar { display: none; }

.qw-info-slide {
  flex: 0 0 100%;
  width: 100%;
  border-radius: 16px;
  padding: 36px clamp(48px, 8vw, 80px); /* hueco lateral para no chocar con flechas */
  margin: 0 !important;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center; /* FIX 2026-07-15 (owner): contenido centrado en cards de igual altura */
  scroll-snap-align: start;
  min-height: 320px;
}

/* FIX 2026-07-15 (owner): imagen que "nutre" cada slide del carrusel (láminas/diseños). */
.qw-info-media {
  margin: 0 0 20px;
  border-radius: 14px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .14);
}
/* FIX 2026-08-16: responsive-surfaces.css aplica `.qw-du :is(img,...){height:auto}`
   (y .qw-la/.qw-rso) con la MISMA especificidad y cargándose después → anulaba este
   clamp y la imagen crecía a su alto natural (1540px) desbordando el slide. Los
   selectores con ámbito (0,2,1) ganan a la manta (0,1,1) sin !important. */
.qw-rso .qw-info-media img,
.qw-la .qw-info-media img,
.qw-du .qw-info-media img,
.qw-info-media img {
  display: block;
  width: 100%;
  height: clamp(160px, 26vw, 220px);
  object-fit: cover;
}

/* FIX 2026-08-16 (owner): en escritorio la imagen del slide va ENCOGIDA al lateral
   derecho y el texto a la izquierda, ambos centrados en vertical (antes: banner a
   toda anchura encima del texto). El texto de cada slide vive en .qw-info-body
   (wrapper añadido en designs.php y self-adhesive.php — mantener los DOS gemelos).
   En móvil (≤820px) se mantiene el banner compacto de arriba. */
@media (min-width: 821px) {
  /* El guard :has evita convertir en fila los slides SIN imagen (renovación),
     cuyo texto no lleva wrapper. Sin :has el layout queda apilado (aceptable). */
  .qw-du .qw-info-slide > .qw-du__card-inner:has(> .qw-info-body),
  .qw-la .qw-info-slide > .qw-la__card-inner:has(> .qw-info-body),
  .qw-rso .qw-info-slide > .qw-rso__card-inner:has(> .qw-info-body) {
    display: flex;
    align-items: center;
    gap: clamp(24px, 4vw, 44px);
  }
  .qw-info-slide .qw-info-body {
    flex: 1 1 auto;
    min-width: 0;
    order: 1;
  }
  .qw-du .qw-info-slide .qw-info-media,
  .qw-la .qw-info-slide .qw-info-media,
  .qw-rso .qw-info-slide .qw-info-media {
    flex: 0 0 clamp(220px, 30%, 340px);
    order: 2;
    margin: 0;
    align-self: center;
  }
  .qw-du .qw-info-slide .qw-info-media img,
  .qw-la .qw-info-slide .qw-info-media img,
  .qw-rso .qw-info-slide .qw-info-media img {
    height: clamp(260px, 30vw, 420px);
  }
}

/* ----- Flechas (inyectadas via JS) --------------------------------- */
.qw-info-carousel__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 0;
  background: #ffffff;
  color: #0f172a;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .18), 0 2px 6px rgba(0, 0, 0, .10);
  transition: transform .15s ease, box-shadow .15s ease;
}
.qw-info-carousel__btn:hover {
  transform: translateY(-50%) scale(1.06);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .22), 0 3px 8px rgba(0, 0, 0, .12);
}
.qw-info-carousel__btn:focus-visible {
  outline: 3px solid rgba(27,207,23, .55);
  outline-offset: 2px;
}
.qw-info-carousel__btn--prev { left: 16px; }
.qw-info-carousel__btn--next { right: 16px; }
.qw-info-carousel__btn {
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  font-family: -apple-system, "Segoe UI", system-ui, sans-serif;
  padding: 0 0 4px;
}
/* ----- Variantes de color (specificity 020 para ganar a `.qw-la .qw-la__card`) -- */
/* FIX 2026-07-15 (owner): sombras más suaves (menos saturadas) — antes quedaban "duras". */
.qw-info-carousel .qw-info-slide--white {
  background: #ffffff !important;
  color: #0f172a;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.10), 0 3px 8px rgba(15, 23, 42, 0.06) !important;
  border: 0 !important;
}
.qw-info-carousel .qw-info-slide--celeste {
  background: #0ea5e9 !important;
  color: #ffffff;
  box-shadow: 0 8px 22px rgba(14, 165, 233, 0.20), 0 3px 8px rgba(15, 23, 42, 0.08) !important;
  border: 0 !important;
}
.qw-info-carousel .qw-info-slide--naranja {
  background: #f97316 !important;
  color: #ffffff;
  box-shadow: 0 8px 22px rgba(249, 115, 22, 0.20), 0 3px 8px rgba(15, 23, 42, 0.08) !important;
  border: 0 !important;
}
/* Texto interno hereda color en celeste/naranja */
.qw-info-slide--celeste .qw-la__h3,
.qw-info-slide--celeste .qw-du__h3,
.qw-info-slide--celeste .qw-rso__h3,
.qw-info-slide--celeste .qw-la__p,
.qw-info-slide--celeste .qw-du__p,
.qw-info-slide--celeste .qw-rso__p,
.qw-info-slide--celeste .qw-la__miniList li,
.qw-info-slide--celeste .qw-du__miniList li,
.qw-info-slide--celeste .qw-rso__miniList li,
.qw-info-slide--naranja .qw-la__h3,
.qw-info-slide--naranja .qw-du__h3,
.qw-info-slide--naranja .qw-rso__h3,
.qw-info-slide--naranja .qw-la__p,
.qw-info-slide--naranja .qw-du__p,
.qw-info-slide--naranja .qw-rso__p,
.qw-info-slide--naranja .qw-la__miniList li,
.qw-info-slide--naranja .qw-du__miniList li,
.qw-info-slide--naranja .qw-rso__miniList li {
  color: #ffffff !important;
}
/* Tick verde sigue verde, pero con halo blanco para destacar sobre celeste/naranja */
.qw-info-slide--celeste .qw-la__tick,
.qw-info-slide--celeste .qw-du__tick,
.qw-info-slide--celeste .qw-rso__tick,
.qw-info-slide--naranja .qw-la__tick,
.qw-info-slide--naranja .qw-du__tick,
.qw-info-slide--naranja .qw-rso__tick {
  background: #ffffff !important;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .3);
}


/* Shadow breathing room for grid/carousel containers */
.qw-rso .qw-rso__grid,
.qw-la .qw-la__grid,
.qw-du .qw-du__grid,
.qw-du .qw-du__gallery,
.qw-du .qw-du__miniGrid{
  padding:4px;
  margin-left:-4px;
  margin-right:-4px;
}
/* Fallback: si JS no inyecta botones, ocultarlos no aplica (no existen).
   El track sigue siendo scrollable manualmente (touch/scroll horizontal). */

@media (max-width: 640px) {
  .qw-info-carousel { padding: 12px 0; }
  .qw-info-slide { padding: 26px clamp(56px, 12vw, 72px); min-height: 260px; }
  .qw-info-carousel__btn {
    width: 38px;
    height: 38px;
    font-size: 24px;
  }
  .qw-info-carousel__btn--prev { left: 8px; }
  .qw-info-carousel__btn--next { right: 8px; }
}
