/*
Theme Name: Luxé Boutique
Theme URI: https://thegusseshop.com
Author: EficiencIA Global
Description: Tema a medida para Luxé Boutique. Moda femenina con pago contra entrega y envio el mismo dia en Medellin, Envigado e Itagui. Disenado movil primero para trafico de pauta.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luxe
*/

/* ==========================================================================
   1. Tipografia autoalojada
   Sin peticiones a Google: cumple el coste cero y no expone a las visitantes.
   ========================================================================== */

@font-face{font-family:Jost;font-style:normal;font-weight:300;font-display:swap;src:url(fonts/jost-300.woff2) format('woff2')}
@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-400.woff2) format('woff2')}
@font-face{font-family:Jost;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jost-500.woff2) format('woff2')}
@font-face{font-family:Jost;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/jost-600.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/playfair-400.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/playfair-400i.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/playfair-500i.woff2) format('woff2')}

/* ==========================================================================
   2. Tokens
   El rosa fuerte aparece solo en lo que se toca y en la palabra que acentua.
   Los rosas palidos son superficie, nunca accion.
   ========================================================================== */

:root{
  --rosa:#E0759A;
  --rosa-oscuro:#C4527B;
  --rosa-suave:#FCE9F0;
  --rosa-tenue:#FDF5F8;
  --crema:#F4EFE9;
  --papel:#FFFFFF;
  --tinta:#1C1A19;
  --suave:#6E6763;
  --linea:#EDE6E2;
  --exito:#3F8F63;

  --sans:Jost,'Century Gothic',system-ui,-apple-system,'Segoe UI',sans-serif;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;

  --ancho:1360px;
  --gutter:24px;
  --radio:10px;
  --sombra:0 1px 2px rgba(28,26,25,.04), 0 10px 34px rgba(196,82,123,.07);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--papel);
  color:var(--tinta);
  font-family:var(--sans);
  font-size:16px;
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
:focus-visible{outline:2px solid var(--rosa-oscuro);outline-offset:3px}

.luxe-ancho{max-width:var(--ancho);margin:0 auto;padding:0 var(--gutter)}

.luxe-salta{position:absolute;left:-9999px;background:var(--tinta);color:#fff;padding:12px 18px;z-index:999}
.luxe-salta:focus{left:8px;top:8px}

/* ==========================================================================
   3. Tipografia
   ========================================================================== */

h1,h2,h3,h4{font-family:var(--sans);font-weight:400;line-height:1.12;margin:0;text-wrap:balance;letter-spacing:-.015em}
h1{font-size:clamp(2.1rem,5vw,3.5rem)}
h2{font-size:clamp(1.5rem,3vw,2.1rem)}
h3{font-size:1.15rem}
h4{font-size:1rem}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}

/* La palabra acentuada en cursiva serif: el unico gesto decorativo del tema,
   y por eso no se repite en ningun otro sitio. */
.luxe-acento{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--rosa);letter-spacing:0}

.luxe-eyebrow{
  font-size:.78rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--rosa);margin:0 0 14px;display:block;
}
.luxe-eyebrow--tinta{color:var(--suave)}

.luxe-titulo-seccion{text-align:center;margin:0 0 32px;font-size:clamp(1.4rem,2.6vw,1.9rem)}

/* ==========================================================================
   4. Barra de avisos + cabecera
   ========================================================================== */

.luxe-avisos{background:var(--rosa-suave);font-size:.82rem;color:var(--tinta)}
.luxe-avisos .luxe-ancho{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:11px;padding-bottom:11px}
.luxe-aviso{display:flex;align-items:center;gap:9px}
.luxe-aviso svg{flex:0 0 auto;color:var(--rosa)}
.luxe-aviso--der{color:var(--rosa-oscuro)}
@media (max-width:900px){
  .luxe-avisos .luxe-ancho{justify-content:center}
  .luxe-aviso--der{display:none}
}

.luxe-cabecera{border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:60;background:var(--papel)}
.luxe-cabecera .luxe-ancho{display:flex;align-items:center;gap:28px;padding-top:16px;padding-bottom:16px}

.luxe-marca{display:block;line-height:1;text-align:center}
.luxe-marca b{
  display:block;font-family:var(--serif);font-weight:400;font-size:2rem;
  letter-spacing:.16em;color:var(--rosa);text-indent:.16em;
}
.luxe-marca span{
  display:block;margin-top:5px;font-size:.62rem;font-weight:400;
  letter-spacing:.34em;color:var(--suave);text-indent:.34em;
}

.luxe-nav{margin:0 auto}
.luxe-menu{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.luxe-menu a{font-size:.95rem;color:var(--tinta);padding:6px 0;display:block;position:relative}
.luxe-menu a:hover{color:var(--rosa)}
.luxe-menu .current-menu-item a,
.luxe-menu .current_page_item a{color:var(--rosa)}
.luxe-menu .current-menu-item a::after,
.luxe-menu .current_page_item a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rosa);
}

.luxe-iconos{display:flex;align-items:center;gap:20px;margin-left:auto}
.luxe-icono{position:relative;display:flex;color:var(--tinta)}
.luxe-icono:hover{color:var(--rosa)}
.luxe-contador{
  position:absolute;top:-7px;right:-9px;min-width:18px;height:18px;padding:0 5px;
  background:var(--rosa);color:#fff;border-radius:9px;
  font-size:.66rem;font-weight:500;line-height:18px;text-align:center;
}

.luxe-hamburguesa{display:none;background:none;border:0;padding:6px;color:var(--tinta);cursor:pointer}
@media (max-width:1080px){
  .luxe-hamburguesa{display:flex}
  .luxe-nav{position:fixed;inset:0 0 0 auto;width:min(320px,86vw);background:var(--papel);
    transform:translateX(100%);transition:transform .25s ease;z-index:80;padding:76px 26px;
    box-shadow:-8px 0 40px rgba(28,26,25,.12);overflow-y:auto;margin:0}
  .luxe-nav[data-abierto="true"]{transform:none}
  .luxe-menu{flex-direction:column;gap:4px}
  .luxe-menu a{padding:13px 0;border-bottom:1px solid var(--linea);font-size:1.05rem}
  .luxe-cabecera .luxe-ancho{gap:14px}
  .luxe-marca b{font-size:1.6rem}
}

/* ==========================================================================
   5. Botones
   ========================================================================== */

.luxe-btn,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce #place_order{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--rosa);color:#fff;border:1px solid var(--rosa);border-radius:4px;
  font-family:var(--sans);font-size:.86rem;font-weight:500;
  letter-spacing:.13em;text-transform:uppercase;
  padding:15px 30px;cursor:pointer;line-height:1.2;
  transition:background .18s ease,border-color .18s ease;
}
.luxe-btn:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce #place_order:hover{
  background:var(--rosa-oscuro);border-color:var(--rosa-oscuro);color:#fff;
}
.luxe-btn--linea{background:transparent;color:var(--tinta);border-color:var(--tinta)}
.luxe-btn--linea:hover{background:var(--tinta);border-color:var(--tinta);color:#fff}
.luxe-btn--bloque{width:100%}

/* Boton en espera: mientras falte elegir talla o color. Gris, no rosa palido,
   para que se lea "todavia no" y no "rosa apagado". */
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt:disabled{
  background:var(--linea);border-color:var(--linea);color:var(--suave);
  opacity:1;cursor:not-allowed;
}
.woocommerce button.button.disabled:hover,
.woocommerce button.button:disabled:hover,
.woocommerce button.button.alt.disabled:hover,
.woocommerce button.button.alt:disabled:hover{
  background:var(--linea);border-color:var(--linea);color:var(--suave);
}

/* ==========================================================================
   6. Portada — hero
   ========================================================================== */

.luxe-hero{background:var(--crema);position:relative;overflow:hidden}

/* La foto ocupa el hero entero y el texto va encima. */
.luxe-hero-fondo{position:absolute;inset:0;z-index:0}
.luxe-hero-fondo img,.luxe-hero-fondo .luxe-foto-vacia{
  width:100%;height:100%;object-fit:cover;object-position:72% 22%;
}
/* Velo hacia la izquierda: sin el, el titulo se pierde en cuanto la foto tiene
   una zona clara justo detras. Muere en crema, el mismo fondo del hero, para
   que no se vea el borde donde termina el degradado. */
.luxe-hero-fondo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,
    var(--crema) 0 24%,
    rgba(244,239,233,.94) 38%,
    rgba(244,239,233,.5) 55%,
    rgba(244,239,233,0) 72%);
}

.luxe-hero .luxe-ancho{position:relative;z-index:1}
.luxe-hero-rejilla{display:grid;grid-template-columns:minmax(0,560px) 1fr;align-items:center;gap:0;min-height:560px}
.luxe-hero-texto{padding:64px 0;grid-column:1}
.luxe-hero h1{margin:0 0 18px}
.luxe-hero-bajada{color:var(--suave);max-width:34ch;margin:0 0 30px;font-size:1.02rem}
.luxe-hero-acciones{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 42px}

/* Las tres ventajas caben en una sola fila dentro de la media pantalla del
   hero. Con mas holgura la tercera se cae abajo y rompe la lectura. */
.luxe-ventajas{display:flex;gap:22px;flex-wrap:wrap}
.luxe-ventaja{display:flex;gap:10px;flex:1 1 0;min-width:158px;max-width:196px}
.luxe-ventaja svg{flex:0 0 auto;color:var(--rosa);margin-top:2px}
.luxe-ventaja b{display:block;font-weight:500;font-size:.94rem;margin-bottom:2px}
.luxe-ventaja span{font-size:.79rem;color:var(--suave);line-height:1.45;display:block}

/* Tarjeta flotante de envio: la promesa que decide la compra, siempre visible */
.luxe-tarjeta-envio{
  position:absolute;right:var(--gutter);top:50%;transform:translateY(-50%);
  width:236px;background:rgba(255,255,255,.94);border-radius:var(--radio);
  padding:28px 24px;text-align:center;box-shadow:var(--sombra);z-index:2;
}
.luxe-tarjeta-envio-icono{
  width:56px;height:56px;margin:0 auto 16px;border-radius:50%;
  background:var(--rosa-suave);display:grid;place-items:center;color:var(--rosa);
}
.luxe-tarjeta-envio h3{font-size:1.32rem;margin:0 0 6px;line-height:1.2}
.luxe-tarjeta-envio p{font-size:.9rem;color:var(--tinta);margin:0 0 4px}
.luxe-tarjeta-envio small{display:block;font-size:.76rem;color:var(--suave);margin-bottom:18px}
.luxe-tarjeta-envio .luxe-btn{padding:12px 20px;font-size:.74rem;width:100%}

@media (max-width:1180px){.luxe-tarjeta-envio{display:none}}
@media (max-width:860px){
  .luxe-hero-rejilla{grid-template-columns:1fr;min-height:0}
  /* En vertical la foto se ve arriba y el texto empieza donde el velo ya la
     ha apagado; por eso el hueco de arriba es padding y no un margen. */
  .luxe-hero-texto{padding:300px 0 34px}
  .luxe-hero-fondo img,.luxe-hero-fondo .luxe-foto-vacia{object-position:center 18%}
  .luxe-hero-fondo::after{
    background:linear-gradient(180deg,
      rgba(244,239,233,.1) 0 26%,
      rgba(244,239,233,.88) 44%,
      var(--crema) 58%);
  }
  .luxe-ventajas{gap:20px}
  .luxe-ventaja{max-width:none;flex:1 1 46%}
}
@media (max-width:520px){
  .luxe-hero-texto{padding:230px 0 30px}
}

/* ==========================================================================
   7. Portada — categorias y confianza
   ========================================================================== */

.luxe-seccion{padding:56px 0}

.luxe-categorias{
  display:flex;gap:26px;justify-content:center;flex-wrap:wrap;
}
.luxe-categoria{width:118px;text-align:center}
.luxe-categoria-foto{
  width:118px;height:118px;border-radius:50%;overflow:hidden;margin:0 0 12px;
  background:var(--rosa-tenue);display:grid;place-items:center;color:var(--rosa);
}
.luxe-categoria-foto img{width:100%;height:100%;object-fit:cover}
.luxe-categoria span{font-size:.92rem}
.luxe-categoria:hover span{color:var(--rosa)}
.luxe-categoria--oferta .luxe-categoria-foto{background:var(--rosa-suave)}
.luxe-categoria--oferta span{color:var(--rosa)}
@media (max-width:720px){
  .luxe-categorias{gap:16px}
  .luxe-categoria,.luxe-categoria-foto{width:88px}
  .luxe-categoria-foto{height:88px}
  .luxe-categoria span{font-size:.82rem}
}

.luxe-garantias{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  border:1px solid var(--linea);border-radius:var(--radio);padding:26px 30px;
}
.luxe-garantia{display:flex;gap:13px;align-items:flex-start}
.luxe-garantia svg{flex:0 0 auto;color:var(--rosa);margin-top:2px}
.luxe-garantia b{display:block;font-weight:500;font-size:.93rem}
.luxe-garantia span{font-size:.79rem;color:var(--suave)}
@media (max-width:900px){.luxe-garantias{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.luxe-garantias{grid-template-columns:1fr;padding:20px}}

.luxe-tira{background:var(--rosa-suave)}
.luxe-tira .luxe-ancho{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:17px;padding-bottom:17px}
.luxe-tira-item{display:flex;align-items:center;gap:10px;font-size:.9rem}
.luxe-tira-item svg{color:var(--rosa)}
@media (max-width:760px){
  .luxe-tira .luxe-ancho{justify-content:flex-start}
  .luxe-tira-item{flex:1 1 44%;font-size:.82rem}
}

/* ==========================================================================
   8. Marcador de posicion de foto
   Mientras no haya catalogo real, un hueco honesto en vez de una imagen falsa.
   ========================================================================== */

.luxe-foto-vacia{
  background:var(--rosa-tenue);
  background-image:repeating-linear-gradient(135deg,transparent 0 11px,rgba(224,117,154,.13) 11px 12px);
  display:grid;place-items:center;color:var(--rosa);
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
}

/* ==========================================================================
   9. Rejilla de producto
   ========================================================================== */

.woocommerce ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;list-style:none;margin:0;padding:0}
/* El clearfix de WooCommerce es un ::before con display:table. En una rejilla
   eso no limpia nada: ocupa la primera celda y empuja el catalogo un hueco. */
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
@media (max-width:900px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:18px}}

.woocommerce ul.products li.product{margin:0;padding:0;width:auto;float:none;position:relative}
.woocommerce ul.products li.product a img{margin:0 0 14px;border-radius:var(--radio);width:100%}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:.98rem;font-weight:400;padding:0;margin:0 0 5px;color:var(--tinta);line-height:1.3;
}
.woocommerce ul.products li.product .price{
  font-size:1rem;font-weight:500;color:var(--tinta);display:block;margin:0;
  font-variant-numeric:tabular-nums;
}
.woocommerce ul.products li.product .price del{color:var(--suave);font-weight:400;font-size:.86rem;opacity:1;margin-right:7px}
.woocommerce ul.products li.product .price ins{text-decoration:none;color:var(--rosa)}
.woocommerce ul.products li.product .button{display:none}
.woocommerce ul.products li.product .star-rating{display:none}

.woocommerce span.onsale,
.luxe-etiqueta{
  position:absolute;top:12px;left:12px;z-index:2;margin:0;min-height:0;min-width:0;
  background:var(--rosa);color:#fff;border-radius:3px;
  font-size:.63rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  padding:5px 10px;line-height:1.3;
}
.luxe-etiqueta--nuevo{background:var(--tinta)}

/* Muestras de color bajo cada producto */
.luxe-colores{display:flex;gap:6px;margin-top:9px}
.luxe-color{width:13px;height:13px;border-radius:50%;border:1px solid var(--linea)}

/* ==========================================================================
   10. Tienda: barra de filtros y columna lateral
   ========================================================================== */

.luxe-migas{font-size:.82rem;color:var(--suave);padding:20px 0}
.luxe-migas a:hover{color:var(--rosa)}
.luxe-migas .sep{margin:0 8px;color:var(--linea)}

.luxe-tienda{display:grid;grid-template-columns:216px 1fr;gap:44px;padding-bottom:60px}
@media (max-width:940px){.luxe-tienda{grid-template-columns:1fr;gap:26px}}

.luxe-lateral h3{font-size:.98rem;font-weight:500;margin:0 0 14px}
.luxe-lateral ul{list-style:none;margin:0 0 34px;padding:0}
.luxe-lateral li a{display:block;padding:6px 0;font-size:.92rem;color:var(--suave)}
.luxe-lateral li a:hover,.luxe-lateral li.current-cat a{color:var(--rosa)}
.luxe-cat-oferta a{color:var(--rosa)}

.luxe-lateral-garantias{display:flex;flex-direction:column;gap:22px}
.luxe-lateral-garantias .luxe-garantia b{font-size:.88rem}
.luxe-lateral-garantias .luxe-garantia span{font-size:.75rem}

.luxe-filtros{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:0 0 26px;
}
.luxe-filtros-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}
.luxe-filtros .luxe-etiq{font-size:.88rem;color:var(--suave);margin-right:2px}
.luxe-btn--mini{padding:9px 18px;font-size:.74rem}
.luxe-filtros select,
.woocommerce .woocommerce-ordering select{
  font-family:var(--sans);font-size:.86rem;color:var(--tinta);
  border:1px solid var(--linea);border-radius:4px;padding:9px 14px;background:var(--papel);
}
.luxe-etiq--orden{margin-left:auto}
.woocommerce .woocommerce-ordering{margin:0}
.woocommerce .woocommerce-result-count{display:none}

.woocommerce nav.woocommerce-pagination ul{border:0;display:flex;gap:8px;justify-content:center;margin:44px 0 0}
.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  width:34px;height:34px;display:grid;place-items:center;border-radius:50%;
  font-size:.88rem;color:var(--tinta);padding:0;
}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--rosa);color:#fff}

/* ==========================================================================
   11. Ficha de producto
   ========================================================================== */

.luxe-producto{
  display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,1fr);
  gap:28px;padding:8px 0 60px;align-items:start;
}
/* WooCommerce le pone float y width:48% al resumen. Dentro de la rejilla el
   float no hace nada pero el 48% si: sin esto la columna de datos sale a la
   mitad de ancho y los tres avisos de confianza se parten en palabras sueltas. */
.woocommerce div.product .summary{grid-column:3;width:auto;float:none;margin:0}

@media (max-width:940px){
  .luxe-producto{grid-template-columns:1fr;gap:22px}
  /* El orden manda sobre el del marcado: la foto va primero. */
  .woocommerce div.product .summary{grid-column:1;order:3}
}

/* Galeria propia: miniaturas en la columna 1, foto grande en la 2. */
.luxe-miniaturas{grid-column:1;display:flex;flex-direction:column;gap:10px}
.luxe-miniatura{
  padding:0;border:0;background:none;cursor:pointer;border-radius:6px;
  overflow:hidden;opacity:.6;transition:opacity .15s ease;
}
.luxe-miniatura:hover{opacity:.85}
.luxe-miniatura[aria-pressed="true"]{opacity:1;outline:1px solid var(--rosa);outline-offset:1px}
.luxe-miniatura img{width:100%;border-radius:6px}

.luxe-galeria{grid-column:2;margin:0}
.luxe-galeria img,.luxe-galeria .luxe-foto-vacia{border-radius:var(--radio);width:100%}
/* 4:5 es el encuadre de catalogo de moda; el hueco tiene la forma que va a
   tener la foto, no una que descoloque el diseno al llegar el catalogo. */
.luxe-galeria .luxe-foto-vacia{aspect-ratio:4/5}

@media (max-width:940px){
  .luxe-galeria{grid-column:1;order:1}
  .luxe-miniaturas{grid-column:1;order:2;flex-direction:row;overflow-x:auto}
  .luxe-miniatura{flex:0 0 68px}
}

.woocommerce div.product .product_title{font-size:1.85rem;margin:0 0 10px;letter-spacing:-.02em}

.woocommerce div.product p.price,.woocommerce div.product span.price{
  font-size:1.42rem;font-weight:500;color:var(--tinta);margin:0 0 10px;
  font-variant-numeric:tabular-nums;
}
.woocommerce div.product p.price del{font-size:.9rem;font-weight:400;color:var(--suave);opacity:1;margin-right:8px}
.woocommerce div.product p.price ins{text-decoration:none;color:var(--rosa)}

.woocommerce div.product .woocommerce-product-rating{margin:0 0 16px;display:flex;align-items:center;gap:10px}
.woocommerce .star-rating span::before{color:var(--rosa)}
.woocommerce div.product .woocommerce-review-link{font-size:.84rem;color:var(--suave)}

.woocommerce div.product .woocommerce-product-details__short-description{
  color:var(--suave);font-size:.94rem;margin:0 0 24px;
}

.luxe-opcion{margin:0 0 20px}
.luxe-opcion-titulo{font-size:.88rem;margin:0 0 10px;display:flex;align-items:baseline;gap:8px}
.luxe-opcion-titulo b{font-weight:500}
.luxe-opcion-titulo em{font-style:normal;color:var(--suave)}
.luxe-guia-tallas{margin-left:auto;font-size:.82rem;color:var(--suave);text-decoration:underline}
.luxe-guia-tallas:hover{color:var(--rosa)}

.woocommerce div.product form.cart{margin:0}
/* Sin selector de cantidad ni "limpiar": en la ficha se elige talla y color y
   se compra. Quien quiera dos unidades las suma en el carrito. */
.woocommerce div.product form.cart .quantity{display:none}
.woocommerce div.product .reset_variations{display:none}
.woocommerce div.product form.cart button.single_add_to_cart_button{width:100%;margin:0 0 11px}
.woocommerce div.product .woocommerce-variation-add-to-cart{display:block}
.woocommerce div.product table.variations{margin:0;border:0;width:100%}
.woocommerce div.product table.variations tr,
.woocommerce div.product table.variations td,
.woocommerce div.product table.variations th{display:block;border:0;padding:0}
.woocommerce div.product table.variations th.label,
.woocommerce div.product table.variations th.luxe-opcion-titulo{
  display:flex;align-items:baseline;gap:7px;
  font-size:.88rem;font-weight:500;margin:0 0 10px;text-align:left;
}
/* El valor elegido, en gris, junto al nombre del atributo: "Color  Rosa". */
.woocommerce div.product table.variations th.label em{font-style:normal;font-weight:400;color:var(--suave)}
.woocommerce div.product table.variations td.value{margin:0 0 20px}
.woocommerce div.product .woocommerce-variation-price{display:none}
.woocommerce div.product .reset_variations{font-size:.8rem;color:var(--suave)}

/* Los select nativos siguen ahi, ocultos: son los que WooCommerce lee para
   resolver la variacion; las pastillas y las muestras solo los accionan. Se
   ocultan unicamente si el JS corrio, para que sin el se pueda comprar igual. */
.luxe-js .woocommerce div.product table.variations td.value select{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;
}

.luxe-tallas{display:flex;gap:8px;flex-wrap:wrap}
.luxe-talla{
  min-width:46px;padding:11px 0;text-align:center;cursor:pointer;
  border:1px solid var(--linea);border-radius:4px;background:var(--papel);
  color:var(--tinta);font-size:.88rem;
}
.luxe-talla[aria-pressed="true"]{border-color:var(--tinta);box-shadow:inset 0 0 0 1px var(--tinta)}
.luxe-talla:disabled{color:var(--linea);cursor:not-allowed;text-decoration:line-through}

.luxe-swatches{display:flex;gap:10px}
.luxe-swatch{width:28px;height:28px;border-radius:50%;border:1px solid var(--linea);cursor:pointer;padding:0}
.luxe-swatch[aria-pressed="true"]{outline:1px solid var(--tinta);outline-offset:2px}

.luxe-acciones-producto{display:flex;flex-direction:column;gap:11px;margin:24px 0 0}

.luxe-confianza-producto{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
  margin:30px 0 0;padding:24px 0 0;border-top:1px solid var(--linea);
}
.luxe-confianza-producto .luxe-garantia{gap:9px}
.luxe-confianza-producto .luxe-garantia svg{margin-top:1px}
.luxe-confianza-producto .luxe-garantia b{font-size:.85rem;line-height:1.25}
.luxe-confianza-producto .luxe-garantia span{font-size:.74rem;line-height:1.4}
@media (max-width:620px){.luxe-confianza-producto{grid-template-columns:1fr}}

/* Acordeones */
.luxe-acordeones{margin:30px 0 0}
.luxe-acordeon{border-top:1px solid var(--linea)}
.luxe-acordeon:last-child{border-bottom:1px solid var(--linea)}
.luxe-acordeon summary{
  cursor:pointer;list-style:none;padding:17px 0;font-size:.95rem;
  display:flex;align-items:center;justify-content:space-between;
}
.luxe-acordeon summary::-webkit-details-marker{display:none}
.luxe-acordeon summary::after{content:"+";color:var(--suave);font-size:1.2rem;line-height:1}
.luxe-acordeon[open] summary::after{content:"\2212"}
.luxe-acordeon-cuerpo{padding:0 0 18px;color:var(--suave);font-size:.9rem}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.woocommerce div.product .product_meta{display:none}

/* ==========================================================================
   12. Carrito
   ========================================================================== */

.luxe-carrito{display:grid;grid-template-columns:1fr 340px;gap:44px;padding:8px 0 60px;align-items:start}
@media (max-width:940px){.luxe-carrito{grid-template-columns:1fr;gap:26px}}

.woocommerce table.shop_table{border:0;border-radius:0;width:100%;margin:0}
.woocommerce table.shop_table th{
  font-size:.78rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;
  color:var(--suave);border:0;border-bottom:1px solid var(--linea);padding:0 10px 13px;text-align:left;
}
.woocommerce table.shop_table td{border:0;border-bottom:1px solid var(--linea);padding:18px 10px;vertical-align:middle}
.woocommerce table.shop_table td.product-thumbnail img{width:64px;border-radius:6px}
.woocommerce table.shop_table td.product-name a{font-size:.95rem}
.woocommerce a.remove{color:var(--suave);font-size:1.3rem;line-height:1}
.woocommerce a.remove:hover{color:var(--rosa);background:transparent}

.woocommerce .quantity{display:inline-flex;align-items:center;border:1px solid var(--linea);border-radius:4px}
.woocommerce .quantity input.qty{
  width:46px;border:0;text-align:center;font-family:var(--sans);font-size:.92rem;
  padding:9px 0;-moz-appearance:textfield;background:transparent;
}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.luxe-qty-btn{width:34px;padding:9px 0;background:transparent;border:0;color:var(--suave);cursor:pointer;font-size:1rem}
.luxe-qty-btn:hover{color:var(--rosa)}

.luxe-resumen{background:var(--rosa-tenue);border-radius:var(--radio);padding:26px}
.luxe-resumen h3{font-size:1.05rem;margin:0 0 18px}
.luxe-resumen-fila{display:flex;justify-content:space-between;gap:14px;padding:8px 0;font-size:.92rem;font-variant-numeric:tabular-nums}
.luxe-resumen-fila--total{
  border-top:1px solid var(--linea);margin-top:10px;padding-top:15px;
  font-size:1.08rem;font-weight:500;
}
.luxe-gratis{color:var(--exito);font-weight:500}
.luxe-resumen .luxe-btn{margin-top:18px}

.luxe-nota-cod{
  display:flex;gap:11px;align-items:flex-start;margin-top:18px;
  font-size:.82rem;color:var(--suave);
}
.luxe-nota-cod svg{flex:0 0 auto;color:var(--rosa);margin-top:1px}
.luxe-nota-cod b{display:block;color:var(--tinta);font-weight:500;font-size:.86rem}

/* Cupon debajo de la tabla, no dentro de ella: en el diseno es una pregunta
   ("¿tienes un codigo?"), no una columna mas del pedido. */
.woocommerce .cart td.actions{border-bottom:0;padding:26px 0 0}
.luxe-cupon-titulo{display:block;font-size:.88rem;color:var(--suave);margin:0 0 10px}
.luxe-cupon-fila{display:flex;gap:10px;max-width:420px}
.luxe-cupon-fila input{
  flex:1;min-width:0;border:1px solid var(--linea);border-radius:4px;padding:12px 14px;
  font-family:var(--sans);font-size:.9rem;background:var(--papel);color:var(--tinta);
}
.luxe-cupon-fila .button{padding:12px 24px;font-size:.78rem}

/* Actualizar carrito sobra: los botones +/- ya disparan el cambio. Se queda en
   el HTML para quien navegue sin JavaScript. */
.luxe-js .woocommerce .cart .actions .button[name="update_cart"]{display:none}

.luxe-carrito-principal{min-width:0}
.luxe-carrito-lado{min-width:0}

.luxe-resumen-fila--cupon span:last-child{color:var(--exito)}

.luxe-garantias--tres{grid-template-columns:repeat(3,1fr);margin:34px 0 0}
@media (max-width:760px){.luxe-garantias--tres{grid-template-columns:1fr}}

/* ==========================================================================
   13. Finalizar compra
   ========================================================================== */

/* Cabecera del carrito y del pago: titulo a la izquierda y pasos centrados,
   como en el diseno. */
.luxe-tienda-cabecera{padding:34px 0 6px}
.luxe-tienda-cabecera h1{font-size:clamp(1.7rem,3.2vw,2.3rem)}
.luxe-titulo-tienda{padding:0 0 8px}

.luxe-pasos{display:flex;align-items:center;justify-content:center;gap:0;margin:26px 0 40px}
.luxe-paso{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--suave)}
.luxe-paso i{
  width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:var(--linea);color:var(--papel);font-style:normal;font-size:.76rem;
}
.luxe-paso--hecho i{background:var(--exito)}
.luxe-paso--activo i{background:var(--rosa)}
.luxe-paso--activo{color:var(--tinta)}
.luxe-paso-linea{width:52px;height:1px;background:var(--linea);margin:0 12px}
@media (max-width:680px){
  .luxe-paso span{display:none}
  .luxe-paso-linea{width:26px;margin:0 7px}
}

.luxe-checkout{display:grid;grid-template-columns:1fr 380px;gap:44px;padding-bottom:60px;align-items:start}
.luxe-checkout-campos{min-width:0}
/* El resumen acompana al formulario mientras se rellena: quien pierde de vista
   lo que va a pagar es quien abandona. */
.luxe-checkout-lado{min-width:0;position:sticky;top:96px}
.luxe-checkout-lado > h3{margin:0 0 16px}
@media (max-width:940px){
  .luxe-checkout{grid-template-columns:1fr;gap:26px}
  .luxe-checkout-lado{position:static}
}

/* Repaso del pedido con foto */
.luxe-repaso{list-style:none;margin:0 0 18px;padding:0 0 16px;border-bottom:1px solid var(--linea)}
.luxe-repaso-item{display:flex;align-items:center;gap:13px;padding:9px 0}
.luxe-repaso-foto{position:relative;flex:0 0 52px}
.luxe-repaso-foto img{width:52px;height:66px;object-fit:cover;border-radius:6px}
.luxe-repaso-cantidad{
  position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;
  background:var(--rosa);color:#fff;border-radius:10px;font-style:normal;
  font-size:.68rem;line-height:20px;text-align:center;
}
.luxe-repaso-texto{flex:1;min-width:0;font-size:.88rem;line-height:1.4}
.luxe-repaso-texto b{display:block;font-weight:400}
.luxe-repaso-texto dl,.luxe-repaso-texto p{margin:2px 0 0;font-size:.78rem;color:var(--suave)}
.luxe-repaso-texto dt,.luxe-repaso-texto dd{display:inline;margin:0}
.luxe-repaso-texto dd::after{content:" · "}
.luxe-repaso-texto dd:last-child::after{content:""}
.luxe-repaso-precio{font-size:.9rem;font-variant-numeric:tabular-nums;white-space:nowrap}

.luxe-nota-cod--destacada{
  background:var(--rosa-suave);border-radius:6px;padding:14px 15px;margin-top:16px;
}

.woocommerce form .form-row{display:flex;flex-direction:column;gap:6px;margin:0 0 15px;padding:0}
.woocommerce form .form-row label{font-size:.8rem;color:var(--suave)}
.woocommerce form .form-row .required{color:var(--rosa);text-decoration:none}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  font-family:var(--sans);font-size:.95rem;padding:13px 15px;height:auto;width:100%;
  border:1px solid var(--linea);border-radius:4px;background:var(--papel);color:var(--tinta);
}
.woocommerce form .form-row input.input-text::placeholder{color:#B4ADA9}
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{border-color:var(--rosa)}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;float:none}
.woocommerce-checkout h3{font-size:1.05rem;margin:26px 0 16px}
.woocommerce-checkout h3:first-child{margin-top:0}

.woocommerce-checkout-review-order{background:var(--rosa-tenue);border-radius:var(--radio);padding:26px}
.woocommerce-checkout-review-order table.shop_table th,
.woocommerce-checkout-review-order table.shop_table td{padding:11px 0;font-size:.9rem}
.woocommerce-checkout-review-order table.shop_table tfoot .order-total th,
.woocommerce-checkout-review-order table.shop_table tfoot .order-total td{
  font-size:1.08rem;font-weight:500;border-bottom:0;padding-top:15px;
}
.luxe-fila-envio td{text-align:right}
.luxe-fila-envio strong{color:var(--exito);font-weight:500}

#payment{background:transparent;border-radius:0}
#payment ul.payment_methods{border:0;padding:0;margin:0 0 16px}
#payment ul.payment_methods li{
  list-style:none;padding:15px;border:1px solid var(--linea);border-radius:4px;font-size:.92rem;
}
#payment div.form-row{padding:0;margin:0}
#payment #place_order{width:100%;float:none;margin:4px 0 0}
#payment div.payment_box{
  background:var(--rosa-tenue);color:var(--tinta);font-size:.86rem;
  border-radius:4px;margin:12px 0 0;padding:14px;
}
#payment div.payment_box::before{display:none}

.luxe-seguro{
  display:flex;align-items:center;justify-content:center;gap:9px;
  margin:20px 0 0;font-size:.8rem;color:var(--suave);
}
.luxe-seguro svg{color:var(--rosa)}

.woocommerce-privacy-policy-text,.woocommerce-terms-and-conditions-wrapper{font-size:.78rem;color:var(--suave)}
.woocommerce-form-login-toggle{display:none}

.woocommerce-message,.woocommerce-info,.woocommerce-error{
  border-top:0;border-left:3px solid var(--rosa);border-radius:4px;
  background:var(--rosa-tenue);color:var(--tinta);font-size:.92rem;padding:15px 18px;margin:0 0 24px;
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{display:none}
.woocommerce-message{border-left-color:var(--exito)}

/* ==========================================================================
   14. Paginas editoriales
   ========================================================================== */

.luxe-editorial{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:56px 0}
.luxe-editorial h1{
  font-family:var(--serif);font-weight:400;letter-spacing:0;
  font-size:clamp(1.7rem,3.4vw,2.5rem);margin:0 0 18px;
}
.luxe-editorial-texto{color:var(--suave);max-width:46ch;margin:0 0 34px}
.luxe-editorial-media img,.luxe-editorial-media .luxe-foto-vacia{
  border-radius:var(--radio);width:100%;aspect-ratio:4/3;object-fit:cover;
}
@media (max-width:860px){.luxe-editorial{grid-template-columns:1fr;gap:28px;padding:34px 0}}

/* Los tres pilares: mismo patron en "Sobre nosotras" y en la franja de
   confianza local, para que la promesa se lea igual en los dos sitios. */
.luxe-pilares{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.luxe-pilar{display:flex;flex-direction:column;gap:7px}
.luxe-pilar svg{color:var(--rosa)}
.luxe-pilar b{font-weight:500;font-size:.92rem;line-height:1.3}
.luxe-pilar span{font-size:.8rem;color:var(--suave);line-height:1.5}
@media (max-width:620px){.luxe-pilares{grid-template-columns:1fr;gap:18px}}

.luxe-confianza-local{border-top:1px solid var(--linea)}
.luxe-confianza-local h2{
  font-family:var(--serif);font-weight:400;letter-spacing:0;max-width:22ch;margin:0 0 32px;
}

.luxe-entrada{max-width:70ch;margin:0 auto;padding:44px 0}
.luxe-entrada h1{margin-bottom:24px}
.luxe-entrada h2{margin:36px 0 12px;font-size:1.4rem}
.luxe-entrada ul,.luxe-entrada ol{padding-left:22px}
.luxe-entrada li{margin-bottom:.4em}

.luxe-cierre{background:var(--rosa-suave);text-align:center;padding:36px var(--gutter)}
.luxe-cierre p{font-size:1.15rem;margin:0 0 4px}
.luxe-cierre small{font-size:.86rem;color:var(--suave)}

/* ==========================================================================
   15. Pie
   ========================================================================== */

.luxe-pie{border-top:1px solid var(--linea);padding:52px 0 40px;margin-top:56px}
.luxe-pie-rejilla{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
@media (max-width:860px){.luxe-pie-rejilla{grid-template-columns:1fr 1fr;gap:26px}}
.luxe-pie h4{font-size:.82rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--suave);margin:0 0 15px}
.luxe-pie ul{list-style:none;margin:0;padding:0}
.luxe-pie li a{display:block;padding:5px 0;font-size:.9rem;color:var(--suave)}
.luxe-pie li a:hover{color:var(--rosa)}
.luxe-pie-marca{margin-bottom:16px}
.luxe-pie-marca .luxe-marca{text-align:left}
.luxe-pie-nota{font-size:.88rem;color:var(--suave);max-width:34ch}
.luxe-legal{
  margin-top:34px;padding-top:22px;border-top:1px solid var(--linea);
  font-size:.78rem;color:var(--suave);line-height:1.8;
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}
