/* VUT Product Layout - v1.1.0 (light, modern, border-radius 5px) */
.vutpl-wrap, .vutpl-shell { font-family: var(--vutpl-font, 'Montserrat'), system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:#111827; }
.vutpl-shell{ --vutpl-radius:5px; --vutpl-border: rgba(15,23,42,.12); --vutpl-soft: rgba(15,23,42,.04); --vutpl-accent: #0ea5e9; --vutpl-text:#111827; --vutpl-muted: rgba(17,24,39,.72); }

.vutpl-hero{ position:relative; border-radius:var(--vutpl-radius); overflow:hidden; margin:18px 0 22px; min-height:56vh; background:#eaf2f7; }
.vutpl-hero__media{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.02); filter:saturate(1.05) contrast(1.05); }
.vutpl-hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vutpl-hero__yt{ position:absolute; inset:0; overflow:hidden; }
.vutpl-hero__yt iframe{ position:absolute; inset:-10%; width:120%; height:120%; pointer-events:none; }
.vutpl-hero__overlay{ position:absolute; inset:0; background: radial-gradient(1000px 520px at 18% 18%, rgba(255,255,255,.45), transparent 60%), linear-gradient(to top, rgba(255,255,255,.92), rgba(255,255,255,.42) 58%, rgba(255,255,255,.18)); }
.vutpl-hero__inner{ position:relative; min-height:56vh; padding:28px 22px; display:flex; align-items:flex-end; }

/* Hero content layout */
.vutpl-hero__content{ display:flex; flex-direction:column; align-items:flex-start; }

/* Inline background for hero texts (fit to content width) */
.vutpl-breadcrumbs,
.vutpl-title,
.vutpl-tagline{
  width:fit-content;
  max-width:100%;
  display:inline-block;
  border-radius:var(--vutpl-radius);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(15,23,42,.14);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.vutpl-breadcrumbs{ margin-bottom:10px; font-size:12px; color:var(--vutpl-muted); padding:6px 10px; }
.vutpl-breadcrumbs .woocommerce-breadcrumb{ margin:0; }
.vutpl-breadcrumbs a{ color:inherit; text-decoration:none; }
.vutpl-breadcrumbs a:hover{ text-decoration:underline; }

.vutpl-title{ margin:0 0 10px; font-size:clamp(28px,3.2vw,46px); line-height:1.05; letter-spacing:-.02em; color:var(--vutpl-text); padding:10px 14px; }

.vutpl-tagline{ margin:0 0 14px; font-size:15px; color:var(--vutpl-muted); max-width:70ch; padding:8px 12px; }
.vutpl-tagline p{ margin:0; }
.vutpl-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.vutpl-chip{ display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border:1px solid var(--vutpl-border); border-radius:var(--vutpl-radius); background:rgba(255,255,255,.6); color:var(--vutpl-text); font-size:12px; line-height:1; }
.vutpl-cta{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:12px 14px; border-radius:var(--vutpl-radius); border:1px solid rgba(14,165,233,.35); background:rgba(14,165,233,.12); color:var(--vutpl-text); text-decoration:none; font-weight:700; }
.vutpl-cta:hover{ background:rgba(14,165,233,.18); }

.vutpl-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:18px; }
@media (max-width:980px){ .vutpl-grid{ grid-template-columns:1fr; } .vutpl-hero, .vutpl-hero__inner{ min-height:52vh; } }

.vutpl-card{ border:1px solid var(--vutpl-border); border-radius:var(--vutpl-radius); background:#fff; padding:16px; box-shadow:0 10px 30px rgba(15,23,42,.05); }
.vutpl-card--soft{ background: rgba(255,255,255,.82); }
.vutpl-buycard{ position:sticky; top:18px; }
.vutpl-buyhead{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:8px; }
.vutpl-buycard__title{ margin:0; font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:rgba(17,24,39,.78); }
.vutpl-section-title{ margin:0 0 10px; font-size:16px; color:var(--vutpl-text); }
.vutpl-body{ font-size:14px; line-height:1.65; color:var(--vutpl-muted); }
.vutpl-body ul{ margin:8px 0 0 18px; }
.vutpl-divider{ height:1px; background:var(--vutpl-border); margin:14px 0; }
.vutpl-kv{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:680px){ .vutpl-kv{ grid-template-columns:1fr; } }

.vutpl-cupos-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:800;
  font-size:13px;
  color:rgba(17,24,39,.88);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(15,23,42,.03));
  border:1px solid var(--vutpl-border);
  border-radius:999px;
  padding:7px 10px;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.vutpl-cupos-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:rgba(34,197,94,.9);
  box-shadow:0 0 0 3px rgba(34,197,94,.16);
}
.vutpl-cupos-text{ display:inline-block; }
.vutpl-cupos-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:rgba(34,197,94,.85);
  box-shadow:0 0 0 3px rgba(34,197,94,.14);
}
.vutpl-cupos-text{ display:inline-block; }

.vutpl-tip{ margin:12px 0 0; font-size:13px; color:rgba(17,24,39,.7); }

.vutpl-faq{ border:1px solid var(--vutpl-border); border-radius:var(--vutpl-radius); background:rgba(15,23,42,.02); padding:12px; }
.vutpl-faq summary{ cursor:pointer; font-weight:700; color:rgba(17,24,39,.9); }
.vutpl-faq .vutpl-body{ margin-top:10px; }

/* Woo form polish */
.vutpl-buycard .price{ margin:8px 0 12px !important; font-size:20px !important; color:var(--vutpl-text) !important; }
.vutpl-buycard .quantity{ display:none !important; }
.vutpl-buycard .single_add_to_cart_button{ width:100% !important; border-radius:var(--vutpl-radius) !important; border:1px solid rgba(14,165,233,.35) !important; background:rgba(14,165,233,.12) !important; color:var(--vutpl-text) !important; font-weight:800 !important; }
.vutpl-buycard .single_add_to_cart_button:hover{ background:rgba(14,165,233,.18) !important; }

/* Remove box around variations table + remove "Limpiar" */
.vutpl-buycard table.variations, .vutpl-buycard table.variations th, .vutpl-buycard table.variations td, .vutpl-buycard table.variations tr{ border:0 !important; background:transparent !important; box-shadow:none !important; }
.vutpl-buycard table.variations{ width:100% !important; border-collapse:collapse !important; }
.vutpl-buycard table.variations th label:after{ content:" *"; color:#d63638; font-weight:800; }
.vutpl-buycard .reset_variations{ display:none !important; }

/* Hide default availability (avoid "Disponibilidad") */
.vutpl-buycard .woocommerce-variation-availability,
.vutpl-buycard .woocommerce-variation-availability *,
.vutpl-buycard .woocommerce-variation .stock{ display:none !important; }

/* Swatches */
.mm-swatches{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
.mm-swatch{ min-width:46px; height:46px; padding:0 12px; border-radius:var(--vutpl-radius); border:1px solid var(--vutpl-border); background:#fff; color:rgba(17,24,39,.92); cursor:pointer; user-select:none; font-weight:700; }
.mm-swatch.is-selected{ border-color: rgba(14,165,233,.75); background: rgba(14,165,233,.12); box-shadow:0 0 0 2px rgba(14,165,233,.18); }
.mm-swatch.is-disabled{ opacity:.35; cursor:not-allowed; text-decoration: line-through; }
.mm-swatches__select{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

/* Size field */
.vutpl-size-wrap{ margin-top:10px; padding-top:10px; border-top:1px solid var(--vutpl-border); }
.vutpl-field-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.vutpl-field-head label{ font-weight:800; color:rgba(17,24,39,.9); }
.vutpl-size-link{ font-size:13px; text-decoration:underline; color:rgba(17,24,39,.72); }
.vutpl-req{ color:#d63638; }
#vutpl_talle{ width:100%; max-width:320px; border-radius:var(--vutpl-radius); }

/* Lightbox */
.vutpl-lightbox{ position:fixed; inset:0; display:none; z-index:99999; }
.vutpl-lightbox.is-open{ display:block; }
.vutpl-lightbox__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.vutpl-lightbox__dialog{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:18px; }
.vutpl-lightbox__content{ background:#fff; border-radius:var(--vutpl-radius); max-width:min(980px, 96vw); max-height: 90vh; overflow:auto; box-shadow:0 20px 60px rgba(0,0,0,.35); }
.vutpl-lightbox__content img{ display:block; width:100%; height:auto; }
.vutpl-lightbox__close{ position:absolute; top:18px; right:18px; width:44px; height:44px; border-radius:var(--vutpl-radius); border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.15); color:#fff; font-size:26px; cursor:pointer; 
  padding-top:0;
  padding-right:0;
  padding-bottom:0;
  padding-left:0;
}
.vutpl-lightbox__close:hover{ background:rgba(255,255,255,.22); }

/* Focus/pulse on buycard */
.vutpl-buycard.is-focus{ box-shadow: 0 0 0 3px rgba(14,165,233,.2), 0 10px 30px rgba(15,23,42,.10); animation: vutplPulse 1.25s ease-out 1; }
@keyframes vutplPulse { 0%{ transform:translateY(0); } 35%{ transform:translateY(-2px); } 100%{ transform:translateY(0); } }

/* Tooltip */
.vutpl-tooltip{
  position:absolute;
  z-index:9999;
  background:#111827;
  color:#fff;
  padding:8px 10px;
  border-radius:5px;
  font-size:12px;
  line-height:1.2;
  box-shadow:0 10px 25px rgba(0,0,0,.18);
  max-width:260px;
}
.vutpl-tooltip:after{
  content:'';
  position:absolute;
  width:0;height:0;
  border-left:6px solid transparent;
  border-right:6px solid transparent;
  border-top:6px solid #111827;
  left:14px;
  bottom:-6px;
}


/* Variations: label on top, options below (2 lines) */
.vutpl-buycard table.variations tr{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:8px !important;
  padding:0 0 12px !important;
}
.vutpl-buycard table.variations th,
.vutpl-buycard table.variations td{
  display:block !important;
  width:100% !important;
  padding:0 !important;
}
.vutpl-buycard table.variations th label{
  display:block !important;
  font-weight:800 !important;
}
.vutpl-buycard table.variations th label:after{
  content:" *";
  color:#d63638;
  font-weight:800;
}
.vutpl-buycard .mm-swatches{ margin-top:0 !important; }

.vutpl-lightbox__close{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;}
