/* ====================================================================
   iconfutbol · CARRITO v4 — limpio (Inter) · reorden móvil + reseñas slider
   ==================================================================== */

/* Inter fuera: el escaparate va en Bricolage Grotesque */

/* 1. ASTRA — ocultar título y alinear el carrito al ANCHO DEL CONTENIDO de la web
   (mismo ancho que cabecera y footer). No forzamos el ancho del contenedor: se hereda. */
.icf-cart-active .entry-title, .icf-cart-active .ast-archive-title,
body.woocommerce-cart .entry-title, body.woocommerce-cart .page-title,
body.woocommerce-cart .ast-archive-title, body.woocommerce-cart .entry-header{ display:none !important; }
body.woocommerce-cart .ast-article-single{ padding:0 !important; border:0 !important; }
body.woocommerce-cart .entry-content{ margin:0 !important; padding:0 !important; }
body.woocommerce-cart #main{ padding-top:0 !important; }

/* 2. TOKENS + CONTENEDOR */
.icf-cart{
	--ink:#16181d; --ink-soft:#3f4147; --mut:#7c818b; --hair:#e7e8eb; --soft:#f6f7f9; --white:#fff; --ok:#0f7a43; --star:#f5b301;
	--rad:16px; --ff:'Bricolage Grotesque',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
	font-family:var(--ff); color:var(--ink); background:var(--white); -webkit-font-smoothing:antialiased; padding:34px 0 90px;
}
.icf-cart *{ box-sizing:border-box; }
.icf-cart__wrap{ width:100%; max-width:100%; margin:0; padding:0; }
/* Inter en TODOS los títulos del carrito.
   El theme base pone Anton con `.icf-body h1,h2,h3` (especificidad 0,1,1 = igual que
   `.icf-cart h3`), así que el empate lo decidía el orden de carga (frágil con LiteSpeed).
   Con !important ganamos siempre, porque la regla base NO lleva !important. */
.icf-cart h1, .icf-cart h2, .icf-cart h3, .icf-cart h4,
.icf-cart .icf-cart__title, .icf-cart .icf-line__name,
.icf-cart .icf-line__name a, .icf-cart .icf-summary__title,
.icf-cart .icf-reviews__title, .icf-cart .icf-cross__title,
.icf-cart .icf-empty__title, .icf-cart .icf-cart-warning__title{ font-family:var(--ff) !important; }
.icf-cart__head{ display:flex; align-items:baseline; gap:12px; margin-bottom:24px; }
.icf-cart__title{ font-weight:600; font-size:30px; letter-spacing:-.02em; margin:0; line-height:1.1; }
.icf-cart__count{ font-size:14px; font-weight:500; color:var(--mut); }

/* Escritorio: 2 columnas, resumen sticky */
.icf-cart__grid{ display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:34px; align-items:start; }
.icf-cart__main{ display:flex; flex-direction:column; gap:18px; min-width:0; }
.icf-cart__aside{ position:sticky; top:24px; display:flex; flex-direction:column; gap:14px; }

/* 3. AVISO (functions.php) */
.icf-cart-warning{ display:flex; align-items:flex-start; gap:13px; background:var(--soft); border:1px solid var(--hair); border-left:3px solid var(--ink); border-radius:14px; padding:15px 17px; margin:0 0 20px; font-family:var(--ff); }
.icf-cart-warning__icon{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; background:var(--ink); color:#fff; font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; margin-top:1px; }
.icf-cart-warning__title{ font-size:14px; font-weight:600; margin:0 0 3px; color:var(--ink); }
.icf-cart-warning__text{ font-size:13px; line-height:1.5; color:var(--ink-soft); margin:0; }
.icf-cart-warning__text strong{ font-weight:600; color:var(--ink); }

/* 4. PRODUCTOS */
.icf-items{ background:var(--white); border:1px solid var(--hair); border-radius:var(--rad); overflow:hidden; }
.icf-line{ display:grid; grid-template-columns:92px minmax(0,1fr); gap:16px; padding:18px; border-bottom:1px solid var(--hair); }
.icf-line:last-child{ border-bottom:0; }
.icf-line__thumb{ width:92px; height:104px; border-radius:11px; overflow:hidden; background:var(--soft); border:1px solid var(--hair); }
.icf-line__thumb img{ width:100%; height:100%; object-fit:contain; display:block; background:transparent; }
.icf-line__body{ display:flex; flex-direction:column; min-width:0; }
.icf-line__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.icf-line__name{ font-family:var(--ff); font-size:15px; font-weight:700; line-height:1.3; margin:0; }
.icf-line__name a{ color:var(--ink); text-decoration:none; font-family:inherit; }
.icf-line__name a:hover{ text-decoration:underline; }
.icf-line__remove{ flex:0 0 auto; width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--mut); transition:.15s; }
.icf-line__remove svg{ width:17px; height:17px; }
.icf-line__remove:hover{ background:var(--soft); color:var(--ink); }
.icf-line__variation{ font-size:12.5px; color:var(--mut); margin:4px 0 0; line-height:1.4; }
.icf-line__variation dl{ margin:0; display:flex; flex-wrap:wrap; gap:4px 10px; }
.icf-line__variation dt{ font-weight:600; margin:0; }
.icf-line__variation dd,.icf-line__variation p{ margin:0; }
.icf-line__stock{ font-size:12px; font-weight:600; color:#b4540a; margin-top:6px; }
.icf-line__foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:12px; }
.icf-qty{ display:inline-flex; align-items:center; border:1px solid var(--hair); border-radius:10px; overflow:hidden; background:var(--white); }
.icf-qty button{ width:34px; height:36px; border:0; background:var(--white); color:var(--ink); font-size:17px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.15s; }
.icf-qty button:hover:not([disabled]){ background:var(--soft); }
.icf-qty button[disabled]{ opacity:.3; cursor:default; }
.icf-qty [data-qty-display]{ min-width:30px; text-align:center; font-size:14px; font-weight:600; }
.icf-qty .quantity, .icf-qty input.qty, .icf-qty__input{ position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; opacity:0 !important; }
.icf-line__price{ text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:1px; }
.icf-line__price-now{ font-size:15px; font-weight:700; color:var(--ink); }
.icf-line__price-now bdi{ font-style:normal; }
.icf-line__price-old{ font-size:12.5px; color:var(--mut); text-decoration:line-through; }

/* 5. COUNTDOWN */
.icf-urgency{ display:flex; align-items:center; justify-content:center; gap:9px; padding:12px 14px; background:var(--white); border:1px dashed var(--hair); border-radius:11px; font-size:12.5px; font-weight:600; color:var(--ink-soft); }
.icf-urgency__dot{ width:8px; height:8px; border-radius:50%; background:#e23b3b; flex:0 0 auto; animation:icf-pulse 1.6s infinite; }
.icf-urgency__timer{ font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
@keyframes icf-pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }

/* 6. RECUADRO 2x2 */
.icf-trustband{ display:grid; grid-template-columns:repeat(4,1fr); background:var(--white); border:1px solid var(--hair); border-radius:14px; overflow:hidden; }
.icf-feat{ display:flex; align-items:center; gap:10px; padding:15px 16px; border-left:1px solid var(--hair); }
.icf-feat:first-child{ border-left:0; }
.icf-feat > svg{ width:21px; height:21px; color:var(--ink); flex:0 0 auto; }
.icf-feat div{ display:flex; flex-direction:column; min-width:0; }
.icf-feat__t{ font-size:12.5px; font-weight:600; color:var(--ink); line-height:1.25; }
.icf-feat__s{ font-size:11.5px; color:var(--mut); }
.icf-feat:last-child > svg{ color:var(--star); }

/* 7. RESEÑAS (carrusel deslizante, sin borde negro) */
.icf-reviews{ min-width:0; width:100%; }
.icf-reviews__head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.icf-reviews__title{ font-size:18px; font-weight:600; margin:0; letter-spacing:-.01em; }
.icf-reviews__badge{ display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:600; color:var(--ink); }
.icf-reviews__badge svg{ width:15px; height:15px; color:var(--star); }
.icf-reviews__track{ display:flex; gap:14px; overflow-x:auto; overflow-y:hidden; min-width:0; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:2px 0 12px; scrollbar-width:none; }
.icf-reviews__track::-webkit-scrollbar{ display:none; }
.icf-review{ scroll-snap-align:start; flex:0 0 auto; width:290px; margin:0; background:var(--soft); border:1px solid var(--hair); border-radius:14px; padding:18px; }
.icf-review__stars{ display:flex; gap:3px; margin-bottom:9px; }
.icf-review__stars svg{ width:16px; height:16px; color:var(--star); }
.icf-review__text{ margin:0; font-size:14px; line-height:1.55; color:var(--ink); font-weight:500; word-break:break-word; }
.icf-review__author{ margin-top:10px; font-size:12.5px; font-weight:600; color:var(--mut); }
.icf-review__author span{ font-weight:500; color:var(--ok); }

/* Seguir comprando */
.icf-cart__continue{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ink); text-decoration:none; align-self:flex-start; }
.icf-cart__continue svg{ width:17px; height:17px; transition:transform .2s; }
.icf-cart__continue:hover svg{ transform:translateX(-3px); }

/* 8. CUPÓN (bloque propio) */
.icf-cart-promo{ display:flex; border:1px solid var(--hair); border-radius:11px; overflow:hidden; background:var(--white); }
.icf-cart-promo input[type="text"], .icf-cart-promo .input-text{ flex:1; min-width:0; border:0 !important; outline:0 !important; background:transparent !important; padding:13px 14px !important; font-family:var(--ff) !important; font-size:13.5px !important; color:var(--ink) !important; box-shadow:none !important; border-radius:0 !important; }
.icf-cart-promo input::placeholder{ color:#a9adb5 !important; }
.icf-cart-promo button{ flex:0 0 auto; border:0 !important; background:var(--ink) !important; color:#fff !important; padding:0 18px !important; font-family:var(--ff) !important; font-weight:600 !important; font-size:13px !important; cursor:pointer; border-radius:0 !important; min-height:0 !important; box-shadow:none !important; transition:background .15s; }
.icf-cart-promo button:hover{ background:#000 !important; }

/* 9. RESUMEN */
.icf-summary{ background:var(--white); border:1px solid var(--hair); border-radius:var(--rad); padding:22px; display:flex; flex-direction:column; gap:16px; }
.icf-summary__title{ font-size:17px; font-weight:600; margin:0; letter-spacing:-.01em; }
.icf-cart-summary__lines{ display:flex; flex-direction:column; gap:11px; border-top:1px solid var(--hair); padding-top:16px; }
.icf-cart-summary__line{ display:flex; align-items:center; justify-content:space-between; gap:14px; font-size:14px; color:var(--mut); font-family:var(--ff); }
.icf-cart-summary__line b{ font-weight:600; color:var(--ink); }
.icf-cart-summary__line bdi{ font-style:normal; }
.icf-cart-summary__line--success b, .icf-cart-summary__line--free b{ color:var(--ok); font-weight:600; }
.icf-cart-summary__total{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding-top:16px; border-top:1px solid var(--hair); }
.icf-cart-summary__total > span:first-child{ font-size:15px; font-weight:600; }
.icf-cart-summary__total-value{ font-size:26px; font-weight:700; color:var(--ink); line-height:1; letter-spacing:-.02em; }
.icf-cart-summary__total-value bdi{ font-style:normal; }
.icf-cart-summary__total-value small{ font-size:12px; font-weight:500; color:var(--mut); }
.icf-checkout{ display:flex; align-items:center; justify-content:center; gap:9px; width:100%; min-height:54px; background:var(--ink); color:#fff; border-radius:12px; font-family:var(--ff); font-weight:600; font-size:15.5px; text-decoration:none; transition:background .15s; }
.icf-checkout svg{ width:19px; height:19px; transition:transform .2s; }
.icf-checkout:hover{ background:#000; color:#fff; }
.icf-checkout:hover svg{ transform:translateX(3px); }
.icf-pay{ text-align:center; margin-top:-2px; }
.icf-pay img{ max-width:260px; width:100%; height:auto; opacity:.92; margin:0 auto; }

/* 10. CROSS-SELL */
.icf-cross{ margin-top:48px; }
.icf-cross__title{ font-weight:600; font-size:20px; margin:0 0 18px; letter-spacing:-.01em; }
.icf-cross__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.icf-cross__card{ border:1px solid var(--hair); border-radius:14px; overflow:hidden; text-decoration:none; color:var(--ink); transition:border-color .15s, transform .15s; display:block; }
.icf-cross__card:hover{ border-color:var(--ink); transform:translateY(-3px); }
.icf-cross__media{ aspect-ratio:1/1; background:var(--soft); }
.icf-cross__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.icf-cross__info{ padding:12px; display:flex; flex-direction:column; gap:5px; }
.icf-cross__name{ font-size:13px; font-weight:600; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.icf-cross__price{ font-size:13.5px; font-weight:700; }
.icf-cross__price del{ color:var(--mut); font-weight:500; margin-right:5px; }
.icf-cross__price ins{ text-decoration:none; }

/* 11. VACÍO */
.icf-empty{ text-align:center; max-width:420px; margin:40px auto 60px; display:flex; flex-direction:column; align-items:center; gap:8px; }
.icf-empty svg{ width:54px; height:54px; color:var(--hair); }
.icf-empty__title{ font-weight:600; font-size:26px; margin:8px 0 0; letter-spacing:-.01em; }
.icf-empty__sub{ font-size:14px; color:var(--mut); margin:0 0 8px; }
.icf-empty__cta{ max-width:280px; }

/* ====================================================================
   12. MÓVIL — orden exacto pedido
   aviso · productos · countdown · cupón · resumen(+pago) · 2x2 · reseñas
   Técnica: los wrappers desaparecen (display:contents) y se reordena todo.
   ==================================================================== */
@media(max-width:920px){
	.icf-cart__grid{ display:flex; flex-direction:column; gap:16px; align-items:stretch; }
	.icf-cart__continue{ align-self:flex-start; }
	.icf-cart__main, .icf-cart__aside{ display:contents; }   /* sus hijos pasan a ser hermanos */

	/* Un hijo de un flex no baja de su ancho de contenido si no se le dice.
	   Sin esto, una fila con desplazamiento horizontal estiraba la pagina
	   entera en vez de desplazarse por dentro. */
	.icf-cart__main > *, .icf-cart__aside > *{ min-width:0; }

	/* Primero lo que lleva y enseguida lo que paga: el resumen no queda por
	   debajo de nada. */
	.icf-items{ order:1; }
	.icf-summary{ order:2; }
	.icf-trustband{ order:3; }
	.icf-urgency{ order:4; }
	.icf-cart__continue{ order:5; }
	.icf-reviews{ order:6; }

	.icf-cross__grid{ grid-template-columns:repeat(2,1fr); }

	/* Hueco para que la barra fija no tape el final de la pagina. */
	.icf-cart{ padding-bottom:104px; }
}

/* Recuadro 2x2 real en móvil */
@media(max-width:680px){
	.icf-trustband{ grid-template-columns:repeat(2,1fr); }
	.icf-feat:nth-child(odd){ border-left:0; }
	.icf-feat:nth-child(n+3){ border-top:1px solid var(--hair); }
}

@media(max-width:560px){
	.icf-cart__title{ font-size:26px; }
	.icf-line{ grid-template-columns:74px minmax(0,1fr); gap:13px; padding:15px; }
	.icf-line__thumb{ width:74px; height:84px; }
	.icf-summary{ padding:18px; }
	.icf-cart-summary__total-value{ font-size:23px; }
	/* reseñas: una tarjeta visible con peek de la siguiente, sin borde negro */
	.icf-review{ width:82%; }
	.icf-reviews__title{ font-size:17px; }
}
