/* =========================================================================
   Inlab Muebles — sistema de componentes
   Botones, campos, selectores, acordeones, tarjetas de resumen, avisos,
   encabezado, modales y mini carrito. Se carga después de inlab.css.
   ====================================================================== */
:root {
  --c-txt:        #1D1D1F;   /* texto principal y botón principal */
  --c-txt-2:      #6E6E73;   /* secundario */
  --c-txt-3:      #86868B;   /* marcador de posición y deshabilitado */
  --c-borde:      #D2D2D7;
  --c-control:    #F2F2F4;   /* fondo de controles */
  --c-control-h:  #E8E8ED;   /* control al pasar el mouse / deshabilitado */
  --c-tarjeta:    #F5F5F7;   /* tarjetas de resumen y avisos */
  --c-error:      #D70015;
  --c-marca:      #C60203;   /* acentos de marca: ver el bloque «Acentos de marca» al final */
  --c-marca-foto: #A30202;   /* solo donde #C60203 no llega a 4.5:1 (sobre foto) y hover del asistente */
  --c-oscuro-h:   #333336;
  --c-anillo:     0 0 0 4px rgba(29,29,31,.08);
  --c-anillo-foco:0 0 0 4px rgba(29,29,31,.14);
  --c-tiempo:     .25s cubic-bezier(.28,.11,.32,1);
  --c-r-campo:    12px;
  --c-r-tarjeta:  18px;
  --c-r-modal:    20px;
}

/* ---------------------------------------------------------------- foco */
body.inlab :focus-visible,
body.inlab .wc-block-components-button:focus-visible,
body.inlab input:focus-visible,
body.inlab select:focus-visible,
body.inlab textarea:focus-visible,
body.inlab button:focus-visible,
body.inlab a:focus-visible { outline: none; box-shadow: var(--c-anillo-foco); border-radius: 8px; }

/* =========================================================================
   BOTONES
   ====================================================================== */
body.inlab .inlab-btn {
  min-height: 50px; padding: 0 26px; border-radius: 999px; border: 1px solid transparent;
  font-family: var(--in-body); font-size: 16px; font-weight: 500; line-height: 1;
  transition: background-color var(--c-tiempo), color var(--c-tiempo),
              border-color var(--c-tiempo), transform var(--c-tiempo), box-shadow var(--c-tiempo);
}
body.inlab .inlab-btn:active { transform: scale(.98); }

/* principal */
body.inlab .inlab-btn-dark, body.inlab a.inlab-btn-dark,
body.inlab .inlab-btn-red, body.inlab a.inlab-btn-red { background: var(--c-txt); color: #fff; border-color: transparent; }
body.inlab .inlab-btn-dark:hover, body.inlab a.inlab-btn-dark:hover,
body.inlab .inlab-btn-red:hover, body.inlab a.inlab-btn-red:hover { background: var(--c-oscuro-h); color: #fff; }

/* secundario */
body.inlab .inlab-btn-suave, body.inlab a.inlab-btn-suave { background: var(--c-control); color: var(--c-txt); }
body.inlab .inlab-btn-suave:hover, body.inlab a.inlab-btn-suave:hover { background: var(--c-control-h); color: var(--c-txt); }

/* contorno */
body.inlab .inlab-btn-ghost, body.inlab a.inlab-btn-ghost { background: #fff; color: var(--c-txt); border-color: var(--c-borde); }
body.inlab .inlab-btn-ghost:hover, body.inlab a.inlab-btn-ghost:hover { border-color: var(--c-txt); color: var(--c-txt); background: #fff; }

/* tamaños */
body.inlab .inlab-btn-lg { min-height: 54px; font-size: 17px; padding: 0 30px; }
body.inlab .inlab-btn-sm, body.inlab .inlab-hcard-add { min-height: 36px; font-size: 14px; padding: 0 18px; }
body.inlab .inlab-btn-pill { min-height: 50px; font-size: 16px; }

/* deshabilitado y agotado */
body.inlab .inlab-btn[disabled], body.inlab .inlab-btn[aria-disabled="true"],
body.inlab .inlab-btn.is-agotado {
  background: var(--c-control-h) !important; color: var(--c-txt-3) !important;
  border-color: transparent !important; opacity: 1; transform: none; cursor: not-allowed;
}

/* enlaces de texto con chevron */
body.inlab .inlab-enlace, body.inlab .inlab-sec-link, body.inlab .inlab-hero-link {
  display: inline-flex; align-items: center; gap: 4px; text-decoration: none;
  color: var(--c-txt-2); font-size: 14px; font-weight: 500;
  transition: color var(--c-tiempo);
}
body.inlab .inlab-enlace::after, body.inlab .inlab-sec-link::after, body.inlab .inlab-hero-link::after {
  content: "\203A"; font-size: 1.35em; line-height: 0; position: relative; top: -.04em;
  transition: transform var(--c-tiempo);
}
body.inlab .inlab-enlace:hover, body.inlab .inlab-sec-link:hover, body.inlab .inlab-hero-link:hover {
  color: var(--c-txt); text-decoration: underline; text-underline-offset: 4px;
}
body.inlab .inlab-enlace:hover::after, body.inlab .inlab-sec-link:hover::after,
body.inlab .inlab-hero-link:hover::after { transform: translateX(2px); }

/* =========================================================================
   CAMPOS con etiqueta flotante
   ====================================================================== */
body.inlab .inlab-field { position: relative; margin: 0 0 14px; }
body.inlab .inlab-field > input,
body.inlab .inlab-field > select,
body.inlab .inlab-field > textarea {
  width: 100%; min-height: 56px; box-sizing: border-box;
  padding: 22px 16px 7px; border: 1px solid var(--c-borde); border-radius: var(--c-r-campo);
  background: #fff; font-family: var(--in-body); font-size: 17px; color: var(--c-txt);
  transition: border-color var(--c-tiempo), box-shadow var(--c-tiempo);
  appearance: none; -webkit-appearance: none;
}
body.inlab .inlab-field > textarea { min-height: 104px; padding-top: 26px; line-height: 1.45; resize: vertical; }
body.inlab .inlab-field > label {
  position: absolute; left: 17px; top: 50%; transform: translateY(-50%);
  font-size: 17px; color: var(--c-txt-3); pointer-events: none;
  transition: top var(--c-tiempo), font-size var(--c-tiempo), color var(--c-tiempo), transform var(--c-tiempo);
}
body.inlab .inlab-field > textarea ~ label { top: 26px; transform: none; }
body.inlab .inlab-field > input:focus ~ label,
body.inlab .inlab-field > input:not(:placeholder-shown) ~ label,
body.inlab .inlab-field > textarea:focus ~ label,
body.inlab .inlab-field > textarea:not(:placeholder-shown) ~ label,
body.inlab .inlab-field > select ~ label {
  top: 10px; transform: none; font-size: 12px; color: var(--c-txt-2);
}
body.inlab .inlab-field > input:focus,
body.inlab .inlab-field > select:focus,
body.inlab .inlab-field > textarea:focus {
  outline: none; border-color: var(--c-txt); box-shadow: var(--c-anillo);
}
body.inlab .inlab-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* error */
body.inlab .inlab-field.tiene-error > input,
body.inlab .inlab-field.tiene-error > select,
body.inlab .inlab-field.tiene-error > textarea { border-color: var(--c-error); }
body.inlab .inlab-field.tiene-error > input:focus { box-shadow: 0 0 0 4px rgba(215,0,21,.10); }
body.inlab .inlab-error[hidden] { display: none; }
body.inlab .inlab-error {
  display: flex; align-items: flex-start; gap: 6px; margin: 6px 2px 0;
  font-size: 12px; line-height: 1.35; color: var(--c-error);
}
body.inlab .inlab-error::before {
  content: ""; flex: none; width: 14px; height: 14px; margin-top: 1px;
  background: var(--c-error);
  -webkit-mask: center/14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 5a1 1 0 011 1v5a1 1 0 01-2 0V8a1 1 0 011-1zm0 9.25a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5z'/%3E%3C/svg%3E");
  mask: center/14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 5a1 1 0 011 1v5a1 1 0 01-2 0V8a1 1 0 011-1zm0 9.25a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5z'/%3E%3C/svg%3E");
}

/* select con chevron propio */
body.inlab .inlab-field > select,
body.inlab .inlab-select, body.inlab .inlab-ordering select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236E6E73' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; padding-right: 44px;
}
body.inlab .inlab-ordering select, body.inlab .inlab-select {
  min-height: 44px; border-radius: 999px; border: 1px solid var(--c-borde);
  background-color: #fff; font-size: 14px; font-weight: 500; color: var(--c-txt);
  padding: 0 44px 0 18px;
}

/* casillas */
body.inlab .inlab-check { display: inline-flex; align-items: flex-start; gap: 10px; min-height: 44px; cursor: pointer; }
body.inlab .inlab-check input[type="checkbox"] {
  flex: none; width: 22px; height: 22px; margin: 11px 0 0; border-radius: 7px;
  border: 1px solid var(--c-borde); background: #fff; appearance: none; -webkit-appearance: none;
  transition: background-color var(--c-tiempo), border-color var(--c-tiempo);
}
body.inlab .inlab-check input[type="checkbox"]:checked {
  background: var(--c-txt) center/14px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  border-color: var(--c-txt);
}
body.inlab .inlab-check span { padding: 11px 0; font-size: 15px; color: var(--c-txt); }

/* interruptor tipo iOS */
body.inlab .inlab-switch { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; }
body.inlab .inlab-switch input { position: absolute; opacity: 0; width: 46px; height: 28px; margin: 0; cursor: pointer; }
body.inlab .inlab-switch i {
  flex: none; width: 46px; height: 28px; border-radius: 999px; background: var(--c-control-h);
  position: relative; transition: background-color var(--c-tiempo);
}
body.inlab .inlab-switch i::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: 24px; height: 24px;
  border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2);
  transition: transform var(--c-tiempo);
}
body.inlab .inlab-switch input:checked + i { background: var(--c-txt); }
body.inlab .inlab-switch input:checked + i::after { transform: translateX(18px); }
body.inlab .inlab-switch input:focus-visible + i { box-shadow: var(--c-anillo-foco); }

/* =========================================================================
   SELECTORES DE PRODUCTO
   ====================================================================== */
/* color: círculo de 30 px con área táctil de 44 px */
body.inlab .inlab-swatches-lg .inlab-swatch,
body.inlab .inlab-swatch {
  width: 44px; height: 44px; border: 0; border-radius: 50%; padding: 0; background: none !important;
  position: relative; box-shadow: none; display: inline-flex; align-items: center; justify-content: center;
}
body.inlab .inlab-swatch::before {
  content: ""; width: 30px; height: 30px; border-radius: 50%;
  background: var(--sw, #ccc); border: 1px solid rgba(0,0,0,.10);
  transition: box-shadow var(--c-tiempo);
}
body.inlab .inlab-swatch.is-active::before { box-shadow: 0 0 0 2px #FFF, 0 0 0 3.5px var(--c-txt); }
body.inlab .inlab-swatch.is-out::after {
  content: ""; position: absolute; left: 50%; top: 7px; bottom: 7px; width: 1.5px;
  background: var(--c-error); transform: rotate(45deg);
}
body.inlab .inlab-swatches-card .inlab-swatch { width: 34px; height: 34px; }
body.inlab .inlab-swatches-card .inlab-swatch::before { width: 22px; height: 22px; }

/* control segmentado */
body.inlab .inlab-seg {
  display: inline-flex; gap: 2px; padding: 2px; border-radius: 999px;
  background: var(--c-control); margin: 0 0 22px;
}
body.inlab .inlab-seg .inlab-pill, body.inlab .inlab-seg-op {
  min-height: 40px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent;
  font-family: var(--in-body); font-size: 14px; font-weight: 500; color: var(--c-txt-2);
  box-shadow: none; transition: background-color var(--c-tiempo), color var(--c-tiempo), box-shadow var(--c-tiempo);
}
body.inlab .inlab-seg .inlab-pill.is-active, body.inlab .inlab-seg-op.is-active {
  background: #fff; color: var(--c-txt); box-shadow: 0 1px 4px rgba(0,0,0,.12);
}

/* cantidad */
body.inlab .inlab-qty {
  border: 0; background: var(--c-control); border-radius: 999px; height: 50px; padding: 0 3px;
}
body.inlab .inlab-qty .inlab-qty-btn {
  width: 44px; height: 44px; border-radius: 50%; color: var(--c-txt);
  transition: background-color var(--c-tiempo);
}
body.inlab .inlab-qty .inlab-qty-btn:hover { background: rgba(0,0,0,.05); }
body.inlab .inlab-qty input.qty { font-size: 16px; font-weight: 500; color: var(--c-txt); }
body.inlab .inlab-qty-sm { height: 44px; }
body.inlab .inlab-qty-sm .inlab-qty-btn { width: 40px; height: 40px; }

/* =========================================================================
   ACORDEONES
   ====================================================================== */
body.inlab .inlab-accordion { border-top: 1px solid var(--c-borde); }
body.inlab .inlab-acc { border-bottom: 1px solid var(--c-borde); }
body.inlab .inlab-acc summary { font-size: 15px; font-weight: 500; color: var(--c-txt); min-height: 56px; }
body.inlab .inlab-acc summary .inlab-icon { display: none; }
body.inlab .inlab-acc summary::after {
  content: ""; flex: none; width: 16px; height: 16px; margin-left: 12px;
  background: var(--c-txt-2);
  -webkit-mask: center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  mask: center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  transition: transform var(--c-tiempo);
}
body.inlab .inlab-acc[open] summary::after { transform: rotate(45deg); }
body.inlab .inlab-acc-body { font-size: 15px; color: var(--c-txt-2); }
body.inlab .inlab-acc[open] .inlab-acc-body { animation: inlab-abrir .25s cubic-bezier(.28,.11,.32,1); }
@keyframes inlab-abrir { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  body.inlab .inlab-acc[open] .inlab-acc-body { animation: none; }
  body.inlab * { transition-duration: .01ms !important; }
}

/* =========================================================================
   TARJETAS DE RESUMEN Y AVISOS
   ====================================================================== */
body.inlab .inlab-resumen,
body.inlab .wc-block-cart .wc-block-components-sidebar,
body.inlab .wc-block-checkout .wc-block-components-sidebar,
body.inlab .wc-block-components-sidebar,
body.inlab .inlab-entrega,
body.inlab .inlab-pack-aviso {
  background: var(--c-tarjeta); border: 0; border-radius: var(--c-r-tarjeta); padding: 22px;
}
body.inlab .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.inlab .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.inlab .inlab-resumen-total { font-size: 17px; font-weight: 500; color: var(--c-txt); }

/* aviso "Agregado" */
body.inlab .inlab-toast {
  position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 12px);
  z-index: 260; display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px; border-radius: 999px; background: rgba(29,29,31,.92);
  color: #fff; font-size: 14px; font-weight: 500; backdrop-filter: blur(12px);
  opacity: 0; pointer-events: none; transition: opacity var(--c-tiempo), transform var(--c-tiempo);
}
body.inlab .inlab-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
body.inlab .inlab-mc-added {
  background: rgba(29,29,31,.92); color: #fff; border-radius: 999px;
  font-size: 14px; font-weight: 500; padding: 11px 18px;
}

/* =========================================================================
   ENCABEZADO fijo y translúcido al bajar
   ====================================================================== */
body.inlab .inlab-header {
  transition: background-color var(--c-tiempo), box-shadow var(--c-tiempo), border-color var(--c-tiempo);
}
body.inlab .inlab-header.esta-fijo {
  background: rgba(255,255,255,.8);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom-color: rgba(0,0,0,.08);
}
@supports not (backdrop-filter: blur(1px)) {
  body.inlab .inlab-header.esta-fijo { background: rgba(255,255,255,.97); }
}
body.inlab .inlab-cart-count { background: var(--c-marca); }

/* =========================================================================
   MODALES Y MINI CARRITO
   ====================================================================== */
body.inlab .inlab-mc-overlay, body.inlab .inlab-cotiza-overlay { background: rgba(0,0,0,.32); }
body.inlab .inlab-mc { border-radius: var(--c-r-modal) 0 0 var(--c-r-modal); }
body.inlab .inlab-cotiza { border-radius: var(--c-r-modal); }
body.inlab .inlab-mc-head, body.inlab .inlab-cotiza-head { border-bottom-color: var(--c-borde); }
body.inlab .inlab-mc-foot { border-top-color: var(--c-borde); background: var(--c-tarjeta); }
body.inlab .inlab-mc-item { border-bottom-color: var(--c-borde); }
@media (max-width: 640px) {
  body.inlab .inlab-mc { border-radius: 0; }
  body.inlab .inlab-cotiza { border-radius: var(--c-r-modal) var(--c-r-modal) 0 0; }
}

/* =========================================================================
   CHECKOUT Y CARRITO (bloques de WooCommerce)
   ====================================================================== */
body.inlab .wc-block-components-text-input,
body.inlab .wc-block-components-combobox,
body.inlab .wc-block-components-select { margin-bottom: 14px; }

body.inlab .wc-block-components-text-input input.components-text-control__input,
body.inlab .wc-block-components-combobox .components-form-token-field__input,
body.inlab .wc-block-components-combobox input,
body.inlab .wc-block-components-select .wc-block-components-select__container,
body.inlab .wc-block-components-address-form input[type="text"],
body.inlab .wc-block-components-address-form input[type="tel"],
body.inlab .wc-block-components-address-form input[type="email"],
body.inlab .wc-block-components-textarea {
  min-height: 56px !important; height: auto; border: 1px solid var(--c-borde) !important;
  border-radius: var(--c-r-campo) !important; background: #fff !important;
  font-family: var(--in-body) !important; font-size: 17px !important; color: var(--c-txt) !important;
  padding: 22px 16px 7px !important; box-shadow: none !important;
  transition: border-color var(--c-tiempo), box-shadow var(--c-tiempo);
}
body.inlab .wc-block-components-text-input input:focus,
body.inlab .wc-block-components-combobox input:focus,
body.inlab .wc-block-components-textarea:focus {
  border-color: var(--c-txt) !important; box-shadow: var(--c-anillo) !important; outline: none;
}
body.inlab .wc-block-components-text-input label,
body.inlab .wc-block-components-combobox label {
  left: 17px !important; font-size: 17px !important; color: var(--c-txt-3) !important;
  transition: top var(--c-tiempo), font-size var(--c-tiempo), color var(--c-tiempo);
}
body.inlab .wc-block-components-text-input.is-active label,
body.inlab .wc-block-components-combobox.is-active label {
  font-size: 12px !important; color: var(--c-txt-2) !important; top: 10px !important; transform: none !important;
}
body.inlab .wc-block-components-select .wc-block-components-select__container { padding: 0 !important; }
body.inlab .wc-block-components-select select.wc-block-components-select__select {
  min-height: 54px; border: 0; background: transparent; font-size: 17px; color: var(--c-txt);
  padding: 22px 44px 7px 16px; appearance: none; -webkit-appearance: none;
}
body.inlab .wc-block-components-select__label { left: 17px; font-size: 12px; color: var(--c-txt-2); }
body.inlab .wc-block-components-select .wc-block-components-select__container::after {
  content: ""; position: absolute; right: 16px; top: 50%; width: 14px; height: 14px;
  transform: translateY(-50%); pointer-events: none;
  background: center/14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236E6E73' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
body.inlab .wc-block-components-select .wc-block-components-select__container { position: relative; }

/* validación */
body.inlab .wc-block-components-text-input.has-error input,
body.inlab .wc-block-components-combobox.has-error input { border-color: var(--c-error) !important; }
body.inlab .wc-block-components-validation-error, body.inlab .wc-block-components-validation-error p {
  font-size: 12px; color: var(--c-error); margin-top: 6px;
}

/* casillas y radios de los bloques */
body.inlab .wc-block-components-checkbox__input[type="checkbox"] {
  width: 22px; height: 22px; border-radius: 7px; border: 1px solid var(--c-borde);
  background: #fff; appearance: none; -webkit-appearance: none; transition: background-color var(--c-tiempo);
}
body.inlab .wc-block-components-checkbox__input[type="checkbox"]:checked {
  background: var(--c-txt) center/14px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  border-color: var(--c-txt);
}
body.inlab .wc-block-components-checkbox__mark { display: none; }
body.inlab .wc-block-components-radio-control__option { border-radius: var(--c-r-campo); }
body.inlab .wc-block-components-radio-control-accordion-option,
body.inlab .wc-block-components-radio-control__option { border-color: var(--c-borde); }

/* botones del carrito y del pago */
body.inlab .wc-block-cart__submit-button,
body.inlab .wc-block-components-checkout-place-order-button,
body.inlab .wc-block-components-button.wc-block-cart__submit-button {
  background: var(--c-txt) !important; color: #fff !important; border-radius: 999px !important;
  min-height: 54px !important; font-size: 17px !important; font-weight: 500 !important; border: 0;
  transition: background-color var(--c-tiempo), transform var(--c-tiempo);
}
body.inlab .wc-block-cart__submit-button:hover,
body.inlab .wc-block-components-checkout-place-order-button:hover { background: var(--c-oscuro-h) !important; }
body.inlab .wc-block-cart__submit-button:active,
body.inlab .wc-block-components-checkout-place-order-button:active { transform: scale(.98); }
body.inlab .wc-block-components-checkout-return-to-cart-button { color: var(--c-txt-2); }
body.inlab .wc-block-components-quantity-selector {
  border: 0; background: var(--c-control); border-radius: 999px; height: 44px;
}
body.inlab .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { color: var(--c-txt); }
body.inlab .wc-block-components-notice-banner { border-radius: var(--c-r-campo); }
body.inlab .wc-block-components-sidebar-layout .wc-block-components-main { padding-right: 40px; }

/* Campos de tarjeta de Mercado Pago.
   Los tres campos sensibles viven en iframes del propio Mercado Pago: aquí solo
   se ajusta la caja que los contiene (alto, radio, borde y foco), nunca lo que
   va dentro, para no romper el plugin. */
#mp-checkout-custom-root #mp-custom-checkout-form-container #form-checkout__cardNumber-container,
#mp-checkout-custom-root #mp-custom-checkout-form-container #form-checkout__expirationDate-container,
#mp-checkout-custom-root #mp-custom-checkout-form-container #form-checkout__securityCode-container,
#mp-checkout-custom-root #mp-custom-checkout-form-container #form-checkout__cardholderName,
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-checkout-custom-card-input,
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-checkout-custom-security-code-input,
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-input {
  min-height: 56px !important; height: 56px !important; box-sizing: border-box !important;
  border: 1px solid var(--c-borde) !important; border-radius: 12px !important;
  background: #fff !important; padding: 0 14px !important;
  font-family: var(--in-body) !important; font-size: 17px !important; color: #1D1D1F !important;
  transition: border-color .25s cubic-bezier(.28,.11,.32,1), box-shadow .25s cubic-bezier(.28,.11,.32,1);
}
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-checkout-custom-card-input iframe,
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-checkout-custom-security-code-input iframe {
  height: 54px !important; width: 100% !important; border: 0 !important;
}
#mp-checkout-custom-root #mp-custom-checkout-form-container #form-checkout__cardholderName:focus,
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-checkout-custom-card-input:focus-within,
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-checkout-custom-security-code-input:focus-within,
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-input:focus-within {
  outline: none; border-color: #1D1D1F !important; box-shadow: 0 0 0 4px rgba(29,29,31,.08) !important;
}
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-input-label,
#mp-checkout-custom-root #mp-custom-checkout-form-container label {
  font-family: var(--in-body) !important; font-size: 12px !important;
  color: #6E6E73 !important; font-weight: 500 !important;
}
#mp-checkout-custom-root #mp-custom-checkout-form-container .mp-custom-checkout-select-input,
#mp-checkout-custom-root #mp-custom-checkout-form-container select {
  min-height: 56px !important; height: 56px !important;
  border: 1px solid var(--c-borde) !important; border-radius: 12px !important;
  background-color: #fff !important; font-family: var(--in-body) !important;
  font-size: 17px !important; color: #1D1D1F !important; padding: 0 44px 0 14px !important;
}
body.inlab .mp-checkout-custom-container .mp-error-message,
body.inlab .mp-checkout-container .mp-input-error { color: var(--c-error) !important; font-size: 12px !important; }

/* =========================================================================
   MI CUENTA Y ACCESO (formularios clásicos de WooCommerce)
   ====================================================================== */
body.inlab .woocommerce form .form-row { padding: 0; margin: 0 0 14px; }
body.inlab .woocommerce form .form-row label:not(.inlab-check):not(.woocommerce-form__label-for-checkbox) {
  display: block; font-size: 12px; color: var(--c-txt-2); margin: 0 0 6px;
}
body.inlab .woocommerce form .form-row input.input-text,
body.inlab .woocommerce form .form-row input[type="password"],
body.inlab .woocommerce form .form-row input[type="email"],
body.inlab .woocommerce form .form-row input[type="text"] {
  width: 100%; min-height: 56px; box-sizing: border-box; padding: 0 16px;
  border: 1px solid var(--c-borde); border-radius: var(--c-r-campo); background: #fff;
  font-family: var(--in-body); font-size: 17px; color: var(--c-txt);
  transition: border-color var(--c-tiempo), box-shadow var(--c-tiempo);
}
body.inlab .woocommerce form .form-row input:focus {
  outline: none; border-color: var(--c-txt); box-shadow: var(--c-anillo);
}
body.inlab .woocommerce form .woocommerce-form-login__submit,
body.inlab .woocommerce button.button, body.inlab .woocommerce a.button {
  background: var(--c-txt); color: #fff; border-radius: 999px; min-height: 50px;
  padding: 0 26px; font-family: var(--in-body); font-size: 16px; font-weight: 500; border: 0;
  transition: background-color var(--c-tiempo), transform var(--c-tiempo);
}
body.inlab .woocommerce button.button:hover, body.inlab .woocommerce a.button:hover { background: var(--c-oscuro-h); color: #fff; }
body.inlab .woocommerce button.button:active { transform: scale(.98); }
body.inlab .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 10px; }
body.inlab .woocommerce .woocommerce-LostPassword a { color: var(--c-txt-2); }

/* =========================================================================
   Detalles varios
   ====================================================================== */
body.inlab .inlab-entrega-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: start; }
body.inlab .inlab-entrega-form .inlab-field { margin: 0; }
body.inlab .inlab-entrega-form .inlab-btn { min-height: 56px; }
body.inlab .inlab-search-form input[type="search"] { min-height: 56px; border-radius: var(--c-r-campo); font-size: 17px; }
body.inlab .inlab-baja { color: var(--c-txt-2); }
body.inlab .inlab-card-cat, body.inlab .inlab-hcard-cat { color: var(--c-txt-2); }

/* =========================================================================
   Nuestra selección de sillas: tarjetas iguales en altura
   ====================================================================== */
body.inlab .inlab-sel-grid > li { display: flex; }
body.inlab .inlab-hcard { display: flex; flex-direction: column; width: 100%; }
body.inlab .inlab-hcard-line { align-items: baseline; gap: 10px; }
body.inlab .inlab-hcard-name,
body.inlab .inlab-hcard-cat {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
body.inlab .inlab-hcard-name { flex: 1 1 auto; }
body.inlab .inlab-hcard-name a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.inlab .inlab-hcard-price { flex: none; }
body.inlab .inlab-hcard-cat { margin: 5px 0 0; min-height: 18px; }
@media (max-width: 860px) {
  /* En móvil se muestran seis sillas, no ocho. */
  body.inlab .inlab-sel-grid > li:nth-child(n+7) { display: none; }
}

/* =========================================================================
   Banner de terraza: mismo panel que el hero
   ====================================================================== */
body.inlab .inlab-terraza { margin-top: 104px; }
body.inlab .inlab-terraza-panel {
  position: relative; border-radius: 20px; overflow: hidden; min-height: 560px;
  background: var(--c-tarjeta); display: flex; align-items: center;
}
body.inlab .inlab-terraza-img { position: absolute; inset: 0; }
body.inlab .inlab-terraza-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.inlab .inlab-terraza-copy {
  position: relative; z-index: 2; max-width: 460px;
  padding: 56px clamp(32px, 5vw, 72px);
}
body.inlab .inlab-terraza-eyebrow {
  margin: 0 0 14px; font-size: 12px; font-weight: 500; letter-spacing: .1em;
  text-transform: uppercase; color: var(--c-txt-2);
}
body.inlab .inlab-terraza-title {
  font-family: var(--in-head); font-size: 32px; font-weight: 500;
  letter-spacing: -0.025em; line-height: 1.15; margin: 0; color: var(--c-txt);
}
body.inlab .inlab-terraza-text {
  margin: 16px 0 28px; font-size: 15px; line-height: 1.6; color: var(--c-txt-2); max-width: 34ch;
}
@media (max-width: 900px) {
  body.inlab .inlab-terraza { margin-top: 64px; }
  body.inlab .inlab-terraza-panel { display: block; min-height: 0; }
  body.inlab .inlab-terraza-img { position: relative; inset: auto; aspect-ratio: 16 / 9; }
  body.inlab .inlab-terraza-copy { max-width: none; padding: 26px 24px 32px; background: var(--c-tarjeta); }
  body.inlab .inlab-terraza-title { font-size: 24px; }
}

/* =========================================================================
   El rojo de marca se queda solo en el contador del carrito.
   Todo lo que era rojo pasa al gris oscuro del sistema.
   ====================================================================== */
body.inlab .inlab-buy form.cart .single_add_to_cart_button {
  background: var(--c-txt); min-height: 54px; font-size: 17px;
  transition: background-color var(--c-tiempo), transform var(--c-tiempo);
}
body.inlab .inlab-buy form.cart .single_add_to_cart_button:hover { background: var(--c-oscuro-h); }
body.inlab .inlab-buy form.cart .single_add_to_cart_button:active { transform: scale(.98); }
body.inlab a:hover,
body.inlab .inlab-card-name a:hover,
body.inlab .inlab-breadcrumb a:hover,
body.inlab .inlab-iconbtn:hover,
body.inlab .inlab-mc-remove:hover,
body.inlab .wc-block-cart-item__remove-link:hover { color: var(--c-txt); }
body.inlab .inlab-cart-link:hover { color: var(--c-txt); }
body.inlab .inlab-eyebrow { color: var(--c-txt-2); }
body.inlab .inlab-hero-scene.tiene-ambiente .inlab-eyebrow { color: #6E6E73; }
body.inlab .inlab-card-pack { color: var(--c-txt-2); }
body.inlab .inlab-pack-plus { background: var(--c-txt); }
/* Puntos "+" del hero: blancos con el signo oscuro (diseño final aprobado). Esta
   regla antes los pintaba de #1D1D1F y, como carga después y es más específica,
   ganaba a la de inlab.css: salían negros sobre negro. */
body.inlab .inlab-hotspot-btn { background: #FFFFFF; color: #1D1D1F; animation: none; }
body.inlab .inlab-hotspot-link { color: var(--c-txt); }
body.inlab .inlab-swatch.is-out::after { background: var(--c-error); }
body.inlab .woocommerce-notices-wrapper a.button { color: #fff; }
body.inlab .inlab-cart-count { background: var(--c-marca); }

/* =========================================================================
   Mi cuenta y acceso: caja angosta y filas ordenadas
   ====================================================================== */
body.inlab .woocommerce-account .inlab-page,
body.inlab .woocommerce-account .woocommerce { max-width: 460px; margin: 0 auto; }
body.inlab .woocommerce-account .woocommerce-MyAccount-navigation ~ .woocommerce-MyAccount-content,
body.inlab .woocommerce-account.logged-in .woocommerce { max-width: none; }
body.inlab .woocommerce-account h2 { font-size: 22px; font-weight: 500; margin: 0 0 20px; }
body.inlab .woocommerce-account .u-columns > .col-1,
body.inlab .woocommerce-account .u-columns > .col-2 { width: 100%; float: none; margin: 0 0 48px; }
body.inlab .woocommerce form.woocommerce-form-login,
body.inlab .woocommerce form.woocommerce-form-register { border: 0; padding: 0; margin: 0; }
body.inlab .woocommerce form .form-row { display: block; }
body.inlab .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; }
body.inlab .woocommerce-form-login__rememberme input[type="checkbox"] {
  width: 22px; height: 22px; border-radius: 7px; border: 1px solid var(--c-borde);
  background: #fff; appearance: none; -webkit-appearance: none; margin: 0; flex: none;
}
body.inlab .woocommerce-form-login__rememberme input[type="checkbox"]:checked {
  background: var(--c-txt) center/14px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  border-color: var(--c-txt);
}
body.inlab .woocommerce form.woocommerce-form-login button[type="submit"],
body.inlab .woocommerce form.woocommerce-form-register button[type="submit"] { display: block; width: 100%; float: none; margin: 0 0 16px; }
body.inlab .woocommerce .woocommerce-LostPassword { margin: 0; }
body.inlab .woocommerce .woocommerce-LostPassword a { font-size: 14px; }
body.inlab .woocommerce .woocommerce-privacy-policy-text p { font-size: 13px; color: var(--c-txt-2); line-height: 1.5; }
body.inlab .woocommerce .show-password-input { position: absolute; right: 16px; top: 18px; }
body.inlab .woocommerce .password-input { position: relative; display: block; }

/* =========================================================================
   UNA SOLA RETÍCULA PARA TODO EL SITIO
   Contenedor centrado de 1440 px como máximo, con 64 px de margen lateral en
   escritorio y 18 px en móvil. Todo lo que toca los bordes —encabezado, hero,
   tarjetas de categorías, banner de terraza, paquetes, beneficios, encabezado
   de las páginas de categoría y pie— empieza y termina en esas dos líneas.
   ====================================================================== */
:root { --in-container: 1440px; --in-lado: 64px; }

body.inlab .inlab-container,
body.inlab .inlab-header-inner,
body.inlab .inlab-search-form,
body.inlab .inlab-footer-inner,
body.inlab .inlab-footer-bottom,
body.inlab .inlab-hero,
body.inlab .inlab-terraza,
body.inlab .inlab-armador,
body.inlab .woocommerce-account .woocommerce {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--in-container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--in-lado);
  padding-right: var(--in-lado);
}

/* El hero y el banner de terraza solo llevan separación vertical propia. */
body.inlab .inlab-hero { padding-top: 24px; padding-bottom: 0; }
body.inlab .inlab-terraza { padding-top: 0; padding-bottom: 0; }
body.inlab .inlab-footer-inner { padding-top: 56px; padding-bottom: 32px; }
body.inlab .inlab-footer-bottom { padding-top: 18px; padding-bottom: 18px; }
body.inlab .inlab-header-inner { max-width: var(--in-container); }
body.inlab .inlab-search-form { max-width: var(--in-container); padding-top: 16px; padding-bottom: 16px; }

/* Los beneficios llevan su línea superior dentro de la retícula, no de borde a borde. */
body.inlab .inlab-beneficios { border-top: 0; }
body.inlab .inlab-beneficios-row { border-top: 0; position: relative; }
body.inlab .inlab-beneficios-row::before {
  content: ""; position: absolute; top: 0; left: var(--in-lado); right: var(--in-lado);
  border-top: 1px solid var(--c-borde);
}
body.inlab .inlab-beneficios-row li { padding-left: 0; }

/* Dentro de los paneles, el texto arranca a 56 px del borde del panel. */
body.inlab .inlab-hero-scene { padding-left: 56px; }
body.inlab .inlab-terraza-copy { padding-left: 56px; padding-right: 40px; }
body.inlab .inlab-cat-panel-txt { padding-left: 56px; padding-right: 40px; }
body.inlab .inlab-paq-copy { padding-left: 0; }

/* El aviso de la vista de paquetes y el listado comparten la misma caja. */
body.inlab .inlab-cat-panel { margin-left: 0; margin-right: 0; }

@media (max-width: 860px) {
  :root { --in-lado: 18px; }
  body.inlab .inlab-hero { padding-top: 16px; }
  body.inlab .inlab-header-inner { padding-left: var(--in-lado); padding-right: var(--in-lado); }
  body.inlab .inlab-footer-inner { padding-top: 40px; padding-bottom: 24px; }
  body.inlab .inlab-hero-scene { padding-left: 24px; padding-right: 24px; }
  body.inlab .inlab-terraza-copy { padding-left: 24px; padding-right: 24px; }
  body.inlab .inlab-cat-panel-txt { padding-left: 24px; padding-right: 24px; }
  /* El carrusel de espacios se sale de la retícula a propósito, pero
     arranca y termina en la misma línea que el resto. */
  body.inlab .inlab-espacios-row {
    margin-left: calc(var(--in-lado) * -1); margin-right: calc(var(--in-lado) * -1);
    padding-left: var(--in-lado); padding-right: var(--in-lado);
    /* Sin esto el ajuste magnético se come el margen y la primera tarjeta
       arranca pegada al borde en vez de en la línea de la retícula. */
    scroll-padding-left: var(--in-lado);
  }
}

/* Entre 860 y 1180 px la retícula se estrecha en vez de romperse. */
@media (min-width: 861px) and (max-width: 1180px) {
  :root { --in-lado: 32px; }
}

/* =========================================================================
   Hero: balance de las tres escenas con la retícula nueva
   Con el panel a 1312 px la imagen entra completa y el punto focal no hacía
   nada en escritorio. Se activa en todos los tamaños y el panel crece un poco
   para que haya margen de recorte y los muebles no queden pegados al borde.
   ====================================================================== */
/* El punto focal solo estaba activo en móvil. Ahora vale en todos los tamaños:
   por debajo de 1440 px el panel se estrecha, la foto sí se recorta y conviene
   que el recorte respete el centro de interés de cada escena. */
body.inlab .inlab-hero-scene.tiene-ambiente .inlab-hero-ambiente img {
  object-position: var(--foco-x, 70%) var(--foco-y, 58%);
}

/* =========================================================================
   Páginas legales y de ayuda
   Columna de lectura de 720 px centrada dentro de la retícula del sitio.
   ====================================================================== */
body.inlab .inlab-page { max-width: var(--in-container); padding-top: 56px; }
body.inlab .inlab-page-title {
  max-width: 720px; margin: 0 auto 8px; font-size: 36px; text-align: center;
}
body.inlab .inlab-page-content {
  max-width: 720px; margin: 0 auto; font-size: 15px; line-height: 1.7; color: var(--c-txt-2);
}
/* De 768 px en adelante el texto va justificado, con separación silábica en
   español para que no queden huecos grandes entre palabras. Los títulos no. */
@media (min-width: 768px) {
  body.inlab .inlab-page-content p,
  body.inlab .inlab-page-content li,
  body.inlab .inlab-page-content dd {
    text-align: justify;
    text-justify: inter-word;
    -webkit-hyphens: auto; hyphens: auto;
    -webkit-hyphenate-limit-before: 3; -webkit-hyphenate-limit-after: 3;
    hyphenate-limit-chars: 7 3 3;
  }
  /* Ni los encabezados, ni la fecha, ni el bloque de datos del vendedor. */
  body.inlab .inlab-page-content h2,
  body.inlab .inlab-page-content h3,
  body.inlab .inlab-page-content summary,
  body.inlab .inlab-page-content .inlab-dato p,
  body.inlab .inlab-page-fecha {
    text-align: left; -webkit-hyphens: manual; hyphens: manual;
  }
  body.inlab .inlab-page-content p.inlab-page-fecha { text-align: center; }
}
body.inlab .inlab-page-content h2 {
  font-family: var(--in-head); font-size: 26px; font-weight: 500; letter-spacing: -0.02em;
  line-height: 1.2; color: var(--c-txt); margin: 44px 0 12px;
}
body.inlab .inlab-page-content h3 {
  font-family: var(--in-head); font-size: 17px; font-weight: 500; color: var(--c-txt); margin: 28px 0 8px;
}
body.inlab .inlab-page-content p { margin: 0 0 14px; }
body.inlab .inlab-page-content ul, body.inlab .inlab-page-content ol { margin: 0 0 16px; padding-left: 20px; }
body.inlab .inlab-page-content li { margin: 0 0 8px; }
body.inlab .inlab-page-content a { color: var(--c-txt); text-decoration: underline; text-underline-offset: 3px; }
body.inlab .inlab-page-content a:hover { color: var(--c-txt-2); }
body.inlab .inlab-page-content strong { color: var(--c-txt); font-weight: 500; }
body.inlab .inlab-page-content .inlab-dato {
  background: var(--c-tarjeta); border-radius: var(--c-r-tarjeta); padding: 20px 24px; margin: 0 0 24px;
}
body.inlab .inlab-page-content .inlab-dato p { margin: 0 0 6px; }
body.inlab .inlab-page-content .inlab-dato p:last-child { margin: 0; }
body.inlab .inlab-page-fecha { font-size: 13px; color: var(--c-txt-3); margin-top: 40px; text-align: center; }

/* Preguntas frecuentes */
body.inlab .inlab-page-content details {
  border-bottom: 1px solid var(--c-borde); padding: 0;
}
body.inlab .inlab-page-content details summary {
  list-style: none; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; min-height: 56px; padding: 14px 0; cursor: pointer;
  font-size: 15px; font-weight: 500; color: var(--c-txt);
}
body.inlab .inlab-page-content details summary::-webkit-details-marker { display: none; }
body.inlab .inlab-page-content details summary::after {
  content: ""; flex: none; width: 16px; height: 16px; background: var(--c-txt-2);
  -webkit-mask: center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  mask: center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  transition: transform var(--c-tiempo);
}
body.inlab .inlab-page-content details[open] summary::after { transform: rotate(45deg); }
body.inlab .inlab-page-content details > *:not(summary) { padding-bottom: 18px; }

/* Formulario de contacto */
body.inlab .inlab-contacto { max-width: 560px; margin: 8px 0 0; }
body.inlab .inlab-contacto .inlab-btn { width: 100%; }
body.inlab .inlab-contacto-msg { margin: 4px 0 12px; font-size: 14px; min-height: 1.4em; }
body.inlab .inlab-contacto-msg.es-error { color: var(--c-error); }
body.inlab .inlab-contacto-msg.es-ok { color: var(--c-txt); }
body.inlab .inlab-contacto-legal { margin: 14px 0 0; font-size: 12px; color: var(--c-txt-3); }
body.inlab .inlab-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* =========================================================================
   Aviso de cookies
   ====================================================================== */
body.inlab .inlab-cookies {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 240;
  display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;
  padding: 12px var(--in-lado); background: rgba(255,255,255,.92);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  border-top: 1px solid var(--c-borde);
}
body.inlab .inlab-cookies[hidden] { display: none; }
body.inlab .inlab-cookies p { margin: 0; font-size: 13px; color: var(--c-txt-2); }
body.inlab .inlab-cookies a { color: var(--c-txt); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
  body.inlab .inlab-cookies { justify-content: flex-start; gap: 10px; padding: 12px 18px 16px; }
  body.inlab .inlab-cookies p { font-size: 12px; }
}

/* Casilla de aceptación en el pago */
body.inlab .inlab-acepto-enlaces { display: block; margin: 6px 0 0 32px; font-size: 13px; color: var(--c-txt-2); }
body.inlab .inlab-acepto-enlaces a { color: var(--c-txt); text-decoration: underline; text-underline-offset: 3px; }

/* La línea de paquete: una sola frase bajo el precio, sin panel ni icono. */
body.inlab .inlab-pack-linea {
  margin: 6px 0 0; font-size: 13px; line-height: 1.5; color: var(--c-txt-2);
  background: none; padding: 0; border-radius: 0;
}
body.inlab .inlab-pack-linea.is-ok { color: var(--c-txt); }
body.inlab .inlab-pack-notice, body.inlab .inlab-pack-plus { display: none; }
body.inlab .inlab-pack-aviso { background: none; padding: 0; margin: 6px 0 0; font-size: 13px; color: var(--c-txt-2); }

/* =========================================================================
   Carrito vacío y página 404 (23/09/2026)
   Va en este archivo, que carga después de inlab.css, porque las reglas de
   .inlab-page-content (párrafos justificados, enlaces subrayados) ganaban
   por especificidad. Por eso los selectores llevan .inlab-vacio delante.
   ====================================================================== */
body.inlab .inlab-vacio { text-align: center; padding: 8px 0; }
body.inlab .inlab-vacio h1.inlab-vacio-titulo,
body.inlab .inlab-vacio h2.inlab-vacio-titulo {
  font-family: var(--in-head, inherit); font-size: 26px; font-weight: 500;
  letter-spacing: -0.02em; line-height: 1.25; color: var(--c-txt);
  margin: 0 0 10px; text-align: center;
}
body.inlab .inlab-vacio p.inlab-vacio-texto {
  font-size: 15px; line-height: 1.6; color: var(--c-txt-2);
  margin: 0 auto 24px; max-width: 460px; text-align: center;
  hyphens: none;
}
body.inlab .inlab-vacio p.inlab-vacio-accion { margin: 0 0 56px; text-align: center; }
/* El botón es un botón, no un enlace de texto: ni subrayado ni color de enlace. */
body.inlab .inlab-vacio p.inlab-vacio-accion a.inlab-btn-dark,
body.inlab .inlab-vacio p.inlab-vacio-accion a.inlab-btn-dark:hover,
body.inlab .inlab-vacio p.inlab-vacio-accion a.inlab-btn-dark:focus,
body.inlab .inlab-vacio p.inlab-vacio-accion a.inlab-btn-dark:visited {
  color: #fff; text-decoration: none;
}
body.inlab .inlab-vacio ul.inlab-vacio-espacios { margin: 0; padding: 0; }

/* Extras de la página 404. */
body.inlab .inlab-404 { padding: 40px 0 8px; }
body.inlab .inlab-404 p.inlab-404-codigo {
  font-size: 13px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--c-txt-2); margin: 0 0 10px; text-align: center;
}
body.inlab .inlab-404 h1.inlab-vacio-titulo { font-size: 30px; }
body.inlab .inlab-404 .inlab-404-buscador {
  display: flex; gap: 10px; align-items: stretch;
  max-width: 460px; margin: 0 auto 24px;
}
body.inlab .inlab-404 .inlab-404-buscador .inlab-field { flex: 1 1 auto; margin: 0; }
body.inlab .inlab-404 p.inlab-vacio-accion a.inlab-404-inicio {
  display: inline-block; margin-left: 18px; font-size: 15px;
  color: var(--c-txt-2); text-decoration: underline; text-underline-offset: 3px;
}
@media (max-width: 767px) {
  body.inlab .inlab-vacio h1.inlab-vacio-titulo,
  body.inlab .inlab-vacio h2.inlab-vacio-titulo { font-size: 22px; }
  body.inlab .inlab-vacio p.inlab-vacio-accion { margin-bottom: 40px; }
  body.inlab .inlab-404 h1.inlab-vacio-titulo { font-size: 24px; }
  body.inlab .inlab-404 .inlab-404-buscador { flex-direction: column; }
  body.inlab .inlab-404 p.inlab-vacio-accion a.inlab-404-inicio { display: block; margin: 16px 0 0; }
}

/* Dentro de .inlab-page-content (el carrito lo es) las reglas de página
   ganaban por especificidad y dejaban el párrafo a la izquierda. */
body.inlab .inlab-page-content .inlab-vacio,
body.inlab .inlab-page-content .inlab-vacio p,
body.inlab .inlab-page-content .inlab-vacio h1,
body.inlab .inlab-page-content .inlab-vacio h2 { text-align: center; hyphens: none; }
body.inlab .inlab-page-content .inlab-vacio p.inlab-vacio-texto {
  margin: 0 auto 24px; max-width: 460px;
}
body.inlab .inlab-page-content .inlab-vacio p.inlab-vacio-accion { margin: 0 0 56px; }
body.inlab .inlab-page-content .inlab-vacio a.inlab-btn-dark { color: #fff; text-decoration: none; }
body.inlab .inlab-page-content .inlab-vacio ul.inlab-vacio-espacios { margin: 0; padding: 0; }

/* =========================================================================
   Acentos de marca (23/09/2026, decisión de Humberto)
   Rojo #C60203 con moderación y contraste mínimo 4.5:1. SOLO en:
     1. botón del asistente (asistente.css)
     2. etiquetas pequeñas en mayúsculas de hero, Terraza y Paquetes
     3. punto final del título del hero
     4. ahorro por paquete: línea bajo el precio en la ficha, filas de descuento
        del mini carrito, carrito y pago (compra.css) y aviso del mini carrito
     5. etiqueta «Últimas piezas» en tarjetas y ficha
   Además del logo y el contador del carrito. --in-red sigue neutro a propósito:
   lo usan hovers, botones de compra y bordes, que NO van en rojo.
   ====================================================================== */
body.inlab .inlab-hero-scene .inlab-eyebrow,
body.inlab .inlab-hero-scene.tiene-ambiente .inlab-eyebrow, /* gana a la regla gris anterior en móvil */
body.inlab .inlab-terraza-eyebrow,
body.inlab .inlab-paq-eyebrow { color: var(--c-marca); }
body.inlab .inlab-hero-title .inlab-dot { color: var(--c-marca); }
/* Contraste medido en vivo el 23/09/2026 (peor píxel detrás del texto):
   - Móvil (texto en panel liso): #C60203 pasa en todo (4.85:1 hero, 5.65:1 Terraza).
   - Escritorio, texto sobre la foto: escenas Salas y Home office no llegan con #C60203
     (3.6–4.4:1) y sí con #A30202 (4.8–6.2:1).
   - Escritorio, escena Recámara y banner Terraza: la pared es más oscura y NI #A30202
     llega (3.2–3.8:1). Ahí va el negro del título hasta que Humberto decida otra cosa. */
@media (min-width: 861px) {
  body.inlab .inlab-hero-scene.tiene-ambiente .inlab-eyebrow,
  body.inlab .inlab-hero-scene.tiene-ambiente .inlab-hero-title .inlab-dot { color: var(--c-marca-foto); }
  body.inlab .inlab-hero-scene.tiene-ambiente.escena-recamara .inlab-eyebrow,
  body.inlab .inlab-hero-scene.tiene-ambiente.escena-recamara .inlab-hero-title .inlab-dot { color: var(--c-txt); }
}
@media (min-width: 901px) {
  body.inlab .inlab-terraza-eyebrow { color: var(--c-txt); }
}

body.inlab .inlab-pack-linea,
body.inlab .inlab-pack-linea.is-ok,
body.inlab .inlab-pack-aviso { color: var(--c-marca); }

/* El contenedor traía un panel rosado (#FDF1F1): cada línea ya tiene su panel gris. */
body.inlab .inlab-mc-pack { background: none; padding: 0; }
body.inlab .inlab-mc-pack-linea.is-ok,
body.inlab .inlab-mc-pack-linea.is-falta { background: var(--c-tarjeta); color: var(--c-marca); }
body.inlab .inlab-mc-totals .inlab-mc-desc dt,
body.inlab .inlab-mc-totals .inlab-mc-desc dd { color: var(--c-marca); font-size: 14px; }
body.inlab .inlab-mc-totals.tiene-desc div:first-child dt,
body.inlab .inlab-mc-totals.tiene-desc div:first-child dd { font-family: inherit; font-size: 15px; }
body.inlab .inlab-mc-totals .inlab-mc-total { border-top: 1px solid var(--c-borde); margin-top: 6px; padding-top: 10px; }
body.inlab .inlab-mc-totals .inlab-mc-total dt,
body.inlab .inlab-mc-totals .inlab-mc-total dd { font-family: var(--in-head); font-weight: 500; font-size: 20px; }

body.inlab .inlab-baja { color: var(--c-marca); }

/* Asteriscos de campo obligatorio de Mercado Pago: venían en #FF0000 (4.0:1) y no
   están en la lista de acentos. */
body.inlab .mp-input-label b { color: var(--c-txt-2) !important; } /* Mercado Pago lo pone en línea: style="color: red" */

/* Anillo de foco del asistente: la regla general de foco tiene más especificidad. */
body.inlab .inlab-asis-burbuja:focus-visible { outline: 0; background: var(--c-marca-foto); box-shadow: 0 0 0 3px #FFFFFF, 0 0 0 6px #1D1D1F, 0 6px 20px rgba(0,0,0,.18); }

/* Tope de inventario en la ficha */
body.inlab .inlab-tope { margin: 10px 0 0; font-size: 14px; color: var(--c-txt); }
body.inlab .inlab-tope[hidden] { display: none; }

/* Fábrica de salas, texto final de categorías y párrafo de marca (24/09/2026) */
body.inlab .inlab-fabrica-form { max-width: 640px; }
body.inlab .inlab-fabrica-galeria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0 40px; }
body.inlab .inlab-fabrica-galeria figure { margin: 0; }
body.inlab .inlab-fabrica-galeria img { width: 100%; height: auto; border-radius: 14px; display: block; }
body.inlab .inlab-fabrica-galeria figcaption { margin-top: 6px; font-size: 13px; color: var(--c-txt-2); }
@media (max-width: 860px) { body.inlab .inlab-fabrica-galeria { grid-template-columns: 1fr 1fr; } }
body.inlab .inlab-cat-texto, body.inlab .inlab-marca-inicio { max-width: 760px; margin: 56px auto 24px; font-size: 15px; line-height: 1.65; color: var(--c-txt-2); }
body.inlab .inlab-cat-texto h2, body.inlab .inlab-marca-inicio h2 { font-size: 20px; line-height: 1.3; color: var(--c-txt); margin: 28px 0 10px; font-weight: 500; }
body.inlab .inlab-cat-texto a, body.inlab .inlab-marca-inicio a { color: var(--c-txt); text-decoration: underline; text-underline-offset: 3px; }
body.inlab .inlab-marca-inicio { margin: 72px auto 32px; }
body.inlab .inlab-cat-texto ul { margin: 0 0 14px; padding-left: 20px; }
body.inlab .inlab-cat-texto li { margin: 4px 0; }
body.inlab .inlab-cat-faq { border-top: 1px solid var(--c-borde, #e5e5e5); }
body.inlab .inlab-cat-faq details { border-bottom: 1px solid var(--c-borde, #e5e5e5); }
body.inlab .inlab-cat-faq summary { cursor: pointer; list-style: none; padding: 14px 28px 14px 0; position: relative; color: var(--c-txt); font-weight: 500; }
body.inlab .inlab-cat-faq summary::-webkit-details-marker { display: none; }
body.inlab .inlab-cat-faq summary::after { content: "+"; position: absolute; right: 4px; top: 12px; font-size: 18px; line-height: 1; }
body.inlab .inlab-cat-faq details[open] summary::after { content: "–"; }
body.inlab .inlab-cat-faq details > div { padding: 0 0 14px; }
body.inlab .inlab-cat-faq details > div p { margin: 0 0 8px; }
@media (max-width: 860px) { body.inlab .inlab-cat-texto { padding: 0 16px; margin-top: 40px; } }
