/* =========================================================
   Sbalott Home — Estilo Sbalott (inspirado en la experiencia de
   Alibaba.com: cabecera clara, buscador prominente con borde e
   ícono degradado en naranja, barra de categorías compacta).
   Paleta: fondo blanco + naranja de marca Sbalott.
   CSS puro, sin frameworks, para mantener el sitio liviano.
   ========================================================= */

:root{
	--sah-dark: #232F3E;
	--sah-dark-2: #37475A;
	--sah-orange: #FF6A00;
	--sah-orange-2: #FF3D00;
	--sah-orange-hover: #ff8c1a;
	--sah-bg: #f4f4f4;
	--sah-card-bg: #ffffff;
	--sah-text: #0f1111;
	--sah-text-light: #6b7280;
	--sah-border: #e3e6e9;
	--sah-radius: 10px;
	--sah-shadow: 0 2px 6px rgba(0,0,0,.08);
	--sah-shadow-hover: 0 6px 16px rgba(0,0,0,.15);
	--sah-gutter: clamp(16px, 2.2vw, 40px);
	/* Cabecera estilo Alibaba: clara, no el navy oscuro estilo Amazon */
	--sah-header-bg: #f3f4f6;
	--sah-header-bg-2: #f3f4f6;
	--sah-header-text: #1a1a1a;
}

/* Oculta la cabecera propia del tema en TODO el sitio: la cabecera de
   Sbalott (ver sah_render_global_header, enganchada a wp_body_open)
   ya se muestra en cualquier página, así que si el tema además pinta
   la suya se ve duplicada. Cubre los contenedores de cabecera más
   comunes en temas de WordPress/WooCommerce; si tu tema no coincide
   con ninguno, dime su nombre para añadir el selector exacto. */
body > header:not(.sah-header),
#page > header:not(.sah-header),
.site > header:not(.sah-header),
#masthead:not(.sah-header),
.site-header:not(.sah-header),
.storefront-header,
.ast-header-wrap,
#main-header:not(.sah-header),
.main-header:not(.sah-header),
.header-main:not(.sah-header),
.woocommerce-header:not(.sah-header){
	display:none !important;
}

.sah-wrapper *{ box-sizing:border-box; }
.sah-wrapper{ background:var(--sah-bg); font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color:var(--sah-text); }
.sah-wrapper a{ text-decoration:none; color:inherit; }
.sah-wrapper ul{ list-style:none; margin:0; padding:0; }

/* ---------- Cabecera (estilo Alibaba: clara, buscador protagonista) ---------- */
.sah-header{ position:sticky; top:0; z-index:40; }
.sah-header-top{ background:var(--sah-header-bg); color:var(--sah-header-text); padding:14px 0; border-bottom:1px solid var(--sah-border); }
.sah-header-inner{ width:100%; display:flex; align-items:center; gap:18px; padding:0 var(--sah-gutter); margin-top:-10px; }

.sah-logo{ flex-shrink:0; display:flex; align-items:center; }
.sah-logo-img{ width:165px; height:auto; display:block; }
.sah-logo-text{ font-size:22px; font-weight:800; color:var(--sah-header-text); letter-spacing:.3px; }
.sah-logo-dot{ color:var(--sah-orange); }

.sah-deliver-to{ display:flex; flex-direction:column; font-size:12px; line-height:1.3; white-space:nowrap; }
.sah-small-label{ color:var(--sah-text-light); font-size:11px; }
.sah-deliver-to strong{ color:var(--sah-header-text); }

/* Buscador — estilo Alibaba: pill con borde naranja, sin fondo oscuro detrás.
   Ahora también aloja "Categorías" y "Entregar en" como secciones propias
   dentro de la misma barra (como en los grandes marketplaces), separadas
   por un divisor vertical sutil. */
.sah-search{ flex:1; display:flex; align-items:center; height:46px; border-radius:999px; overflow:visible; background:#fff; border:1.5px solid var(--sah-orange); box-shadow:0 1px 3px rgba(0,0,0,.06); transition:box-shadow .15s; position:relative; }
.sah-search:focus-within{ box-shadow:0 0 0 3px rgba(255,106,0,.25); }
.sah-search-divider{ width:1px; height:24px; background:var(--sah-border); flex-shrink:0; }
.sah-search .sah-cat-all{ flex-shrink:0; padding:0 14px 0 18px; }
.sah-search .sah-deliver-to{ flex-shrink:0; padding:0 14px; }
.sah-search-input{ flex:1; border:none; outline:none; padding:0 6px 0 16px; font-size:14px; min-width:0; height:100%; }
/* Botones de voz / imagen: círculo visible con buen contraste, para
   que se vean claramente dentro del buscador (antes eran solo un
   ícono gris casi imperceptible). */
.sah-search-icon-btn{ background:#f2f3f5; border:none; width:32px; height:32px; margin:0 3px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#4b5563; cursor:pointer; flex-shrink:0; transition:background .15s, color .15s; }
.sah-search-icon-btn:hover{ background:#ffe4cc; color:var(--sah-orange); }
.sah-search-icon-btn.is-listening{ background:#fde2e2; color:#e02424; animation:sah-pulse 1s infinite; }
@keyframes sah-pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.4; } }
.sah-search-btn{ background:linear-gradient(135deg, var(--sah-orange), var(--sah-orange-2)); border:none; width:54px; height:100%; color:#fff; cursor:pointer; transition:opacity .15s; display:flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:0 999px 999px 0; }
.sah-search-btn:hover{ opacity:.92; }

/* Sugerencias de búsqueda en vivo (autocompletado con productos reales) */
.sah-live-search-results{ display:none; position:absolute; top:calc(100% + 8px); left:0; right:0; background:#fff; border:1px solid var(--sah-border); border-radius:12px; box-shadow:var(--sah-shadow-hover); z-index:70; max-height:420px; overflow-y:auto; }
.sah-live-search-results.is-open{ display:block; }
.sah-live-item{ display:flex; align-items:center; gap:10px; padding:8px 14px; }
.sah-live-item:hover{ background:#fafafa; }
.sah-live-item img{ width:40px; height:40px; object-fit:contain; flex-shrink:0; border-radius:6px; border:1px solid var(--sah-border); background:#fff; }
.sah-live-item-info{ min-width:0; display:flex; flex-direction:column; }
.sah-live-item-title{ font-size:13px; color:var(--sah-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sah-live-item-price{ font-size:12.5px; color:var(--sah-orange); font-weight:700; }
/* Estado de stock en la lista del buscador */
.sah-live-item-meta{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sah-live-item.is-out img{ opacity:.55; filter:grayscale(.6); }
.sah-live-item.is-out .sah-live-item-title{ color:var(--sah-text-light); }
.sah-live-stock{ display:inline-block; font-size:10.5px; font-weight:700; line-height:1; padding:3px 7px; border-radius:20px; white-space:nowrap; }
.sah-live-stock.is-in{ background:#e8f6ee; color:#0b7a3b; border:1px solid #bfe5cf; }
.sah-live-stock.is-back{ background:#fff4e5; color:#b45309; border:1px solid #fcd9a8; }
.sah-live-stock.is-out{ background:#f3f4f6; color:#6b7280; border:1px solid #d9dce1; }
.sah-live-summary{ display:flex; gap:6px; padding:8px 14px 2px; }
/* Subcategorías en el desplegable "Categorías" del buscador */
.sah-cat-all-list li.is-sub a{ padding-left:26px; font-size:12.5px; color:var(--sah-text-light); }
.sah-cat-all-preview-out{ background:#6b7280; color:#fff; }
/* Estado de stock en las tarjetas de resultados */
.sah-grid-card-stock{ display:inline-block; margin-top:4px; font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px; }
.sah-grid-card-stock.is-in{ background:#e8f6ee; color:#0b7a3b; }
.sah-grid-card-stock.is-back{ background:#fff4e5; color:#b45309; }
.sah-grid-card-stock.is-out{ background:#f3f4f6; color:#6b7280; }
.sah-live-empty, .sah-live-loading{ padding:14px; font-size:13px; color:var(--sah-text-light); text-align:center; }
.sah-live-viewall{ display:block; text-align:center; padding:10px; font-size:13px; font-weight:700; color:var(--sah-orange); border-top:1px solid var(--sah-border); }
.sah-live-quicklinks{ display:flex; flex-direction:column; border-bottom:1px solid var(--sah-border); padding:6px 0; }
.sah-live-quicklink{ padding:7px 14px; font-size:13px; color:var(--sah-text); }
.sah-live-quicklink:hover{ background:#fafafa; color:var(--sah-orange); }
.sah-live-quicklink strong{ color:var(--sah-orange); font-weight:700; }
.sah-live-recognized{ padding:8px 14px; font-size:12.5px; color:var(--sah-text-light); border-bottom:1px solid var(--sah-border); }
.sah-live-recognized strong{ color:var(--sah-text); }

/* Desplegable "Categorías" (todas, sin límite) */
.sah-cat-all-trigger{ display:flex; align-items:center; gap:5px; background:none; border:none; font-size:13px; font-weight:700; color:var(--sah-header-text); cursor:pointer; flex-shrink:0; white-space:nowrap; padding:2px 0; }
.sah-cat-all-trigger:hover{ color:var(--sah-orange); }
.sah-cat-all-trigger svg{ transition:transform .15s; }
.sah-cat-all.is-open .sah-cat-all-trigger svg{ transform:rotate(180deg); }
.sah-cat-all-panel{ left:0; right:auto; min-width:560px; width:max-content; max-width:min(700px, calc(100vw - 40px)); max-height:70vh; padding:10px 0; display:flex; align-items:stretch; overflow:hidden; }
.sah-cat-all-panel::before{ left:22px; right:auto; }
.sah-cat-all-list{ flex:0 0 210px; overflow-y:auto; max-height:calc(70vh - 20px); padding:0 10px 0 16px; border-right:1px solid var(--sah-border); }
.sah-cat-all-list li{ border-radius:6px; }
.sah-cat-all-list li.is-hovered{ background:#fff6ee; }
.sah-cat-all-list li.is-selected{ background:#fff1e2; }
.sah-cat-all-list li.is-selected a{ color:var(--sah-orange); font-weight:700; }
.sah-cat-all-list li.is-selected::after{ content:"✓"; float:right; color:var(--sah-orange); font-weight:700; margin-right:10px; }
.sah-cat-all-reset{ border-bottom:1px solid var(--sah-border); margin-bottom:4px; padding-bottom:4px; }
.sah-cat-all-reset a{ color:var(--sah-text-light) !important; font-style:italic; }
.sah-cat-all-list a{ display:block; padding:8px 10px; font-size:13.5px; }
.sah-cat-all-list li.is-hovered a{ color:var(--sah-orange); font-weight:600; }
.sah-cat-all-preview{ flex:1 1 340px; min-width:300px; padding:6px 18px; overflow-y:auto; max-height:calc(70vh - 20px); }
.sah-cat-all-preview-hint{ font-size:12.5px; color:var(--sah-text-light); margin:20px 6px; line-height:1.5; }
.sah-cat-all-preview-viewall{
	display:block; font-size:12.5px; font-weight:700; color:var(--sah-orange);
	padding:6px 6px 12px; margin-bottom:8px; border-bottom:1px solid var(--sah-border);
}
.sah-cat-all-preview-viewall:hover{ text-decoration:underline; }
.sah-cat-all-preview-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
/* Tarjeta: foto arriba, nombre (máx. 2 líneas), precio y precio en SBLTT.
   Todo con ancho fijo y salto de palabra, para que ningún texto se salga
   de la tarjeta ni se amontone. El texto se puede seleccionar con el mouse. */
.sah-cat-all-preview-item{
	position:relative; display:flex; flex-direction:column; gap:3px; min-width:0;
	border-radius:10px; overflow:hidden; border:1px solid var(--sah-border);
	background:#fff; padding-bottom:8px; text-align:left;
}
.sah-cat-all-preview-item:hover{ border-color:var(--sah-orange); box-shadow:0 2px 8px rgba(0,0,0,.08); }
.sah-cat-all-preview-img{ display:block; background:#f7f7f8; }
.sah-cat-all-preview-item img{ display:block; width:100%; height:92px; object-fit:contain; background:#f7f7f8; }
.sah-cat-all-preview-name{
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
	padding:4px 8px 0; font-size:12px; line-height:1.3; font-weight:600; color:var(--sah-text);
	overflow-wrap:anywhere; word-break:normal; min-height:2.6em;
}
.sah-cat-all-preview-name:hover{ color:var(--sah-orange); }
.sah-cat-all-preview-price{
	display:block; padding:0 8px; font-size:13px; line-height:1.3; font-weight:800; color:var(--sah-dark);
	overflow-wrap:anywhere; user-select:text; -webkit-user-select:text; cursor:text;
}
.sah-cat-all-preview-sbltt{
	display:block; padding:0 8px; font-size:11px; line-height:1.3; font-weight:600; color:var(--sah-text-light);
	overflow-wrap:anywhere; user-select:text; -webkit-user-select:text; cursor:text;
}
.sah-cat-all-preview-tag{
	position:absolute; top:4px; left:4px; z-index:1; background:#fff4e5; color:#b45309;
	font-size:8.5px; font-weight:700; padding:1px 5px; border-radius:20px; line-height:1.4;
}

@media (max-width:780px){
	/* En móvil no existe "pasar el mouse", así que la vista previa de
	   productos no tiene forma natural de activarse — antes se quedaba
	   ahí ocupando espacio (con el texto de ayuda asomando) y encima
	   producía scroll doble (de la lista y de todo el panel). Ahora en
	   móvil el desplegable "Categorías" muestra SOLO la lista de
	   categorías, nada más. */
	.sah-cat-all-panel{
		flex-direction:column; width:calc(100vw - 24px); min-width:0;
		max-width:calc(100vw - 24px); overflow-x:hidden;
	}
	.sah-cat-all-list{
		flex:1 1 auto; width:100%; border-right:none; max-height:min(60vh, 420px);
		padding:0 16px; box-sizing:border-box;
	}
	.sah-cat-all-preview{ display:none; }
}

.sah-header-links{ display:flex; align-items:center; gap:16px; flex-shrink:0; }
.sah-header-links a{ display:flex; flex-direction:column; font-size:13px; line-height:1.3; white-space:nowrap; color:var(--sah-header-text); }
.sah-header-links strong{ font-size:13px; }

/* Menús desplegables (cuenta y carrito) — se abren al pasar el mouse */
.sah-dropdown-wrap{ position:relative; }
.sah-dropdown-wrap.sah-cart .sah-dropdown-trigger{ flex-direction:row !important; align-items:center; gap:6px; position:relative; }
.sah-cart-count{ position:absolute; top:-8px; left:14px; background:var(--sah-orange); color:#111; font-size:11px; font-weight:700; border-radius:50%; padding:1px 5px; }

.sah-dropdown-panel{ display:none; position:absolute; top:100%; right:0; margin-top:10px; background:#fff; color:var(--sah-text); border-radius:var(--sah-radius); box-shadow:var(--sah-shadow-hover); min-width:240px; padding:14px 16px; z-index:60; max-height:80vh; overflow-y:auto; }
.sah-dropdown-panel::before{ content:""; position:absolute; top:-6px; right:22px; width:12px; height:12px; background:#fff; transform:rotate(45deg); box-shadow:-2px -2px 4px rgba(0,0,0,.03); }
.sah-dropdown-wrap:hover .sah-dropdown-panel,
.sah-dropdown-wrap:focus-within .sah-dropdown-panel,
.sah-dropdown-wrap.is-open .sah-dropdown-panel{ display:block; }
/* El panel de "Categorías" es un caso especial: cuando está abierto debe
   quedar en dos columnas (lista + vista previa), no en bloque como el
   resto de los desplegables — si no, esta regla más específica de arriba
   le gana a ".sah-cat-all-panel{ display:flex }" y todo se apila en una
   sola columna.
   OJO: esto tiene que cubrir los 3 disparadores del panel (pasar el
   mouse, foco por teclado y clic) — antes solo se corregía para
   ".is-open" (clic), así que al pasar el mouse (el caso más común en
   escritorio) seguía apilándose y la vista previa de productos aparecía
   debajo de la lista en vez de a la derecha. */
.sah-dropdown-wrap:hover .sah-cat-all-panel,
.sah-dropdown-wrap:focus-within .sah-cat-all-panel,
.sah-dropdown-wrap.is-open .sah-cat-all-panel{ display:flex; }
/* Puente invisible para que el panel no se cierre al mover el mouse hacia él */
.sah-dropdown-wrap::after{ content:""; position:absolute; top:100%; left:0; right:0; height:12px; }

.sah-dropdown-title{ font-weight:700; font-size:14px; margin-bottom:6px; }
.sah-dropdown-balance{ display:block; font-size:12.5px; color:var(--sah-text-light); margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid var(--sah-border); }
.sah-dropdown-balance-link{ color:var(--sah-orange); font-weight:600; }
.sah-dropdown-panel ul{ display:flex; flex-direction:column; gap:8px; }
/* La lista de "Categorías" (.sah-cat-all-list) queda afuera de este
   "gap:8px" genérico: sus propios <a> ya tienen padding:8px 10px, así que
   sumarle el gap de arriba duplicaba el espacio entre categorías y se
   veían muy separadas unas de otras. */
.sah-dropdown-panel ul.sah-cat-all-list{ gap:0; }
.sah-dropdown-panel ul a{ color:var(--sah-text); font-size:13.5px; display:block; }
.sah-dropdown-panel ul a:hover{ color:var(--sah-orange); }
.sah-dropdown-panel ul li.sah-dropdown-divider{ margin-top:4px; padding-top:10px; border-top:1px solid var(--sah-border); }
.sah-orders-panel{ min-width:260px; }
.sah-orders-panel-title{ margin:0 0 10px; font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--sah-orange); }
.sah-orders-panel-body{ font-size:13.5px; }
.sah-orders-panel-body img{ max-width:100%; height:auto; border-radius:8px; }
.sah-dropdown-mired-link{ margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid var(--sah-border); }
.sah-dropdown-cta{ display:block; text-align:center; background:var(--sah-orange); color:#111 !important; font-weight:700; padding:9px; border-radius:6px; margin-bottom:8px; }
.sah-dropdown-note{ font-size:12.5px; color:var(--sah-text-light); }
.sah-dropdown-note a{ color:var(--sah-orange); font-weight:600; }

.sah-cart-panel{ min-width:290px; }
.sah-cart-list{ display:flex; flex-direction:column; gap:10px; max-height:280px; overflow-y:auto; margin-bottom:10px; }
.sah-cart-list-item{ display:flex; gap:10px; align-items:center; }
.sah-cart-thumb img{ width:44px; height:44px; object-fit:cover; border-radius:6px; border:1px solid var(--sah-border); }
.sah-cart-info{ display:flex; flex-direction:column; font-size:12.5px; gap:2px; min-width:0; }
.sah-cart-name{ font-weight:600; color:var(--sah-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:180px; }
.sah-cart-qty{ color:var(--sah-text-light); }
.sah-cart-subtotal{ font-weight:700; font-size:13.5px; padding-top:8px; border-top:1px solid var(--sah-border); margin-bottom:10px; }
.sah-cart-actions{ display:flex; gap:8px; }
.sah-cart-btn-outline, .sah-cart-btn-solid{ flex:1; text-align:center; font-size:12.5px; font-weight:700; padding:9px 6px; border-radius:6px; }
.sah-cart-btn-outline{ border:1px solid var(--sah-dark); color:var(--sah-dark) !important; }
.sah-cart-btn-solid{ background:var(--sah-orange); color:#111 !important; }
.sah-cart-empty{ font-size:13px; color:var(--sah-text-light); }

/* Barra de categorías: clara y compacta. Ahora es su propia franja fija
   (sticky) para que, al bajar a ver productos, la cabecera completa
   (logo + buscador) se desplace hacia arriba pero esta barra de
   categorías permanezca siempre visible — igual que en los grandes
   marketplaces. */
.sah-header-bottom{ background:var(--sah-header-bg-2); color:var(--sah-header-text); border-bottom:1px solid var(--sah-border); position:sticky; top:0; z-index:45; transition:box-shadow .15s; }
.sah-header-bottom.is-stuck{ box-shadow:0 3px 10px rgba(0,0,0,.08); }
.sah-header-bottom .sah-header-inner{ padding-top:-10px; padding-bottom:9px; gap:20px; overflow-x:auto; }
.sah-cat-menu{ display:flex; gap:20px; overflow-x:auto; }
.sah-cat-menu li a{ font-size:13px; white-space:nowrap; color:var(--sah-text); font-weight:500; }
.sah-cat-menu li a:hover{ color:var(--sah-orange); }
.sah-cat-highlight a{ color:var(--sah-orange) !important; font-weight:700; }
.sah-cat-active a{ color:var(--sah-orange) !important; font-weight:700; }

/* Botón hamburguesa de categorías — solo se usa en móvil (ver media query) */
.sah-cat-hamburger{
	display:none; align-items:center; gap:8px; background:none; border:none;
	padding:9px 2px; font-size:13.5px; font-weight:700; color:var(--sah-text); cursor:pointer;
}
.sah-cat-hamburger-icon{ display:flex; flex-direction:column; gap:3px; width:18px; }
.sah-cat-hamburger-icon span{ display:block; height:2px; background:var(--sah-text); border-radius:2px; }
.sah-cat-menu-backdrop{ position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:205; }
.sah-cat-menu-backdrop[hidden]{ display:none; }

/* Menú lateral simple en móvil */
@media (max-width: 780px){
	.sah-header-inner{ flex-wrap:wrap; }
	.sah-search{ order:3; width:100%; }
	.sah-header-links{ order:2; margin-left:auto; gap:10px; }
	.sah-header-links .sah-orders{ display:none; }
	.sah-dropdown-panel{ right:-10px; left:auto; min-width:260px; max-width:calc(100vw - 20px); }
	/* "Categorías" y "Entregar en" ocupaban tanto espacio dentro del
	   buscador que el campo de texto quedaba minúsculo (apenas se leía
	   el placeholder). En móvil ya existe el botón de categorías propio
	   más abajo (el menú hamburguesa), así que aquí se quitan del todo
	   y el buscador les da ese espacio al campo de texto y los íconos. */
	.sah-search .sah-cat-all,
	.sah-search .sah-deliver-to,
	.sah-search > .sah-search-divider{ display:none; }
	.sah-search-input{ padding-left:18px; }

	/* Categorías en menú hamburguesa: en vez de la barra horizontal que
	   ocupaba todo el ancho y le quitaba espacio al resto de la cabecera,
	   se muestra un botón compacto que abre un cajón lateral con la
	   misma lista de categorías. */
	.sah-header-bottom .sah-header-inner{ overflow-x:visible; padding-top:0; padding-bottom:0; }
	.sah-cat-hamburger{ display:flex; }
	.sah-cat-menu{
		position:fixed; top:0; left:-280px; width:78vw; max-width:280px; height:100vh;
		background:#fff; flex-direction:column; gap:0; overflow-x:visible; overflow-y:auto;
		padding:64px 20px 24px; transition:left .25s ease; z-index:210; box-shadow:2px 0 20px rgba(0,0,0,.15);
	}
	.sah-cat-menu.is-open{ left:0; }
	.sah-cat-menu li{ border-bottom:1px solid var(--sah-border); }
	.sah-cat-menu li a{ display:block; padding:13px 0; font-size:14.5px; white-space:normal; }
	.sah-cat-menu-head{
		display:flex; align-items:center; justify-content:space-between;
		position:absolute; top:0; left:0; right:0; padding:16px 20px;
		border-bottom:1px solid var(--sah-border); background:#fff;
	}
	.sah-cat-menu-head span{ font-weight:700; font-size:15px; color:var(--sah-dark); }
	.sah-cat-menu-close{
		background:#f2f3f5; border:none; border-radius:50%; width:30px; height:30px;
		font-size:18px; line-height:1; cursor:pointer; color:var(--sah-text-light);
	}
}

@media (max-width: 420px){
	.sah-dropdown-panel{ right:-60px; min-width:250px; padding:12px 14px; }
	.sah-account .sah-small-label{ display:none; }
	.sah-account strong{ font-size:12.5px; }
}

/* ---------- Banner / Hero ---------- */
.sah-hero{ position:relative; width:100%; margin:14px 0 0; padding:0 var(--sah-gutter); }
.sah-hero-slides{ position:relative; height:280px; border-radius:var(--sah-radius); overflow:hidden; }
.sah-hero-slide{ position:absolute; inset:0; background-size:cover; background-position:center; display:flex; align-items:flex-end; opacity:0; transition:opacity .6s ease; }
.sah-hero-slide.is-active{ opacity:1; }
.sah-hero-caption{ background:linear-gradient(0deg, rgba(35,47,62,.85), transparent); color:#fff; width:100%; padding:24px 20px 16px; font-size:20px; font-weight:700; }
.sah-hero-prev, .sah-hero-next{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.85); border:none; width:36px; height:36px; border-radius:50%; cursor:pointer; font-size:14px; }
.sah-hero-prev{ left:26px; } .sah-hero-next{ right:26px; }
@media (max-width:600px){ .sah-hero-slides{ height:160px; } .sah-hero-caption{ font-size:15px; padding:14px; } }

/* ---------- Filas de productos ---------- */
.sah-sections{ width:100%; padding:20px var(--sah-gutter) 40px; }
.sah-row{ background:var(--sah-card-bg); border-radius:var(--sah-radius); box-shadow:var(--sah-shadow); padding:18px 16px 20px; margin-bottom:18px; }
.sah-row-title{ font-size:19px; font-weight:700; margin:0 0 12px; color:var(--sah-dark); }

/* Páginas institucionales (Conócenos, Ayuda, legales...): mismo marco
   que las filas de productos (.sah-row), con tipografía de lectura. */
.sah-page-content{ max-width:880px; margin:0 auto; line-height:1.65; }
.sah-page-title{ font-size:28px; font-weight:800; margin:0 0 20px; color:var(--sah-dark); }
.sah-page-content h2{ font-size:21px; font-weight:700; margin:28px 0 10px; color:var(--sah-dark); }
.sah-page-content h3{ font-size:17px; font-weight:700; margin:20px 0 8px; color:var(--sah-dark); }
.sah-page-content p{ margin:0 0 14px; color:var(--sah-text); }
.sah-page-content ul,
.sah-page-content ol{ margin:0 0 16px; padding-left:22px; }
.sah-page-content li{ margin:0 0 8px; }
.sah-page-content a{ color:var(--sah-orange); text-decoration:underline; }
.sah-page-content strong{ color:var(--sah-dark); }

.sah-row-scroll{ position:relative; }
.sah-row-track{ display:flex; gap:14px; overflow-x:auto; scroll-behavior:smooth; padding-bottom:6px; }
.sah-row-track::-webkit-scrollbar{ height:6px; }
.sah-row-track::-webkit-scrollbar-thumb{ background:#d8dde3; border-radius:6px; }

.sah-row-arrow{ position:absolute; top:40%; transform:translateY(-50%); background:#fff; border:1px solid #e3e6e9; width:34px; height:34px; border-radius:50%; cursor:pointer; box-shadow:var(--sah-shadow); z-index:2; }
.sah-row-arrow-left{ left:-6px; } .sah-row-arrow-right{ right:-6px; }

.sah-card{ flex:0 0 190px; border:1px solid #eee; border-radius:8px; padding:10px; position:relative; transition:box-shadow .15s, transform .15s; background:#fff; }
.sah-card:hover{ box-shadow:var(--sah-shadow-hover); transform:translateY(-2px); }
.sah-card-image{ height:150px; display:flex; align-items:center; justify-content:center; margin-bottom:8px; }
.sah-card-image img{ max-height:100%; max-width:100%; object-fit:contain; }
.sah-card-title{ font-size:13.5px; line-height:1.35; height:55px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; margin-bottom:6px; color:var(--sah-text); }
.sah-card-rating .star-rating{ font-size:13px; margin-bottom:4px; }
.sah-card-price{ font-weight:700; color:var(--sah-dark); font-size:15px; }
.sah-card-price ins{ text-decoration:none; color:var(--sah-orange); }
.sah-card-price del{ color:var(--sah-text-light); font-size:12px; margin-right:4px; }

/* Grilla de categorías (imagen + nombre) para categorías con poco
   catálogo — evita mostrarlas como carrusel casi vacío. */
.sah-cat-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(90px, 1fr)); gap:12px; }
.sah-cat-tile{ display:block; text-decoration:none; color:inherit; text-align:center; }
.sah-cat-tile-image{ width:90px; aspect-ratio:1/1; overflow:hidden; background:#f5f5f4; display:flex; align-items:center; justify-content:center; margin:0 auto 8px; }
.sah-cat-tile-image img{ border-radius:50%; width:90px; height:90px; object-fit:cover; transition:transform .15s; }
.sah-cat-tile:hover .sah-cat-tile-image img{ transform:scale(1.08); }
.sah-cat-tile-name{ font-size:12.5px; font-weight:600; color:var(--sah-dark); line-height:1.3; }

.sah-badge{ position:absolute; top:8px; left:8px; font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:4px; color:#fff; z-index:1; }
.sah-badge-oferta{ background:var(--sah-orange); }
.sah-badge-tendencia{ background:var(--sah-dark); }
.sah-badge-nuevo{ background:#0f9d58; }
.sah-badge-agotado{ background:#6b7280; }
/* El sello de patrocinado va aparte, a la derecha, para no chocar con
   "Oferta"/"Agotado" cuando un producto patrocinado además está en
   oferta o sin stock. */
.sah-badge-sponsored{ left:auto; right:8px; background:#fff4e5; color:#b45309; border:1px solid #fcd9a8; }
.sah-badge-puntos-inline{ display:inline-block; margin-top:4px; font-size:10.5px; font-weight:700; color:#6c3fc5; background:#f4f0ff; border:1px solid #e3d9fb; padding:2px 7px; border-radius:20px; }

/* ---------- Estrellas de calificación (compartidas: filas y grilla) ---------- */
.sah-stars{ display:inline-flex; gap:1px; font-size:13px; line-height:1; letter-spacing:0; }
.sah-star{ color:#d5dbe2; }
.sah-star-full, .sah-star-half{ color:var(--sah-orange); }
.sah-rating-count{ font-size:11.5px; color:var(--sah-text-light); margin-left:4px; }

/* ---------- Botón volver arriba ---------- */
.sah-back-top{ display:block; width:100%; background:var(--sah-dark-2); color:#fff; border:none; padding:14px; font-size:13px; cursor:pointer; }
.sah-back-top:hover{ background:var(--sah-dark); }

/* ---------- Pie de página ---------- */
.sah-footer{ background:var(--sah-dark); color:#d5dbe2; width:100%; max-width:100vw; overflow-x:hidden; }
.sah-footer-columns{ box-sizing:border-box; width:100%; max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 32px; padding:40px var(--sah-gutter); }
.sah-footer-col h4{ color:#fff; font-size:15px; font-weight:700; line-height:1.3; margin:0 0 12px; }
.sah-footer-col ul li{ margin:0 0 9px; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.sah-footer-col ul li a{ display:inline-block; padding:2px 0; }
.sah-footer-col ul li a:hover{ text-decoration:underline; }
.sah-footer-brand{ text-align:center; padding:18px 16px; border-top:1px solid #3a4655; }
.sah-footer-brand .sah-logo-text{ font-size:20px; font-weight:800; }
.sah-footer-bottom{ background:#1a232f; text-align:center; font-size:12.5px; line-height:1.5; padding:14px 16px; color:#9aa5b1; overflow-wrap:anywhere; }

@media (max-width:780px){
	.sah-footer-columns{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 20px; padding:30px var(--sah-gutter); }
}
@media (max-width:480px){
	/* Móvil: columnas en 2 (ancho completo, texto a la izquierda y legible) en vez de una sola columna angosta y centrada. */
	.sah-footer-columns{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; padding:26px 18px; text-align:left; }
	.sah-footer-col h4{ font-size:14.5px; margin-bottom:10px; }
	.sah-footer-col ul li{ font-size:14px; margin-bottom:10px; }
	.sah-footer-col ul li a{ padding:3px 0; }
	.sah-card{ flex-basis:150px; }
	.sah-card-image{ height:120px; }

	.sah-cat-grid{ grid-template-columns:repeat(auto-fill, minmax(72px, 1fr)); gap:8px; }
	.sah-cat-tile-image, .sah-cat-tile-image img{ width:72px; height:72px; }
	.sah-cat-tile-name{ font-size:11.5px; }

	/* Antes .sah-sections (16px) + .sah-row (16px) sumaban 32px de margen
	   a cada lado antes de llegar a las tarjetas — en un celular angosto
	   eso dejaba muy poco ancho real para los productos y se veía
	   descuadrado (una tarjeta entera + un pedacito chico de la
	   siguiente). Se reduce a 10px cada uno para darles más aire. */
	.sah-sections{ padding-left:10px; padding-right:10px; }
	.sah-row{ padding-left:10px; padding-right:10px; }
}

/* =========================================================
   Tienda / Categoría / Búsqueda — grilla con filtros laterales
   ========================================================= */

.sah-shop-page{ width:100%; padding:18px var(--sah-gutter) 40px; }

/* ---------- Barra superior: título, contador, orden ---------- */
.sah-shop-toolbar{ display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--sah-border); }
.sah-shop-heading{ flex:1; min-width:220px; }
.sah-shop-heading h1{ font-size:21px; font-weight:700; color:var(--sah-dark); margin:0 0 4px; }
.sah-shop-count{ font-size:13px; color:var(--sah-text-light); }
.sah-shop-count p{ margin:0; }
.sah-shop-sort select{ height:38px; border:1px solid var(--sah-border); border-radius:6px; padding:0 10px; font-size:13.5px; background:#fff; color:var(--sah-text); }
.sah-filter-toggle{ display:none; background:var(--sah-dark); color:#fff; border:none; border-radius:6px; padding:9px 16px; font-size:13.5px; font-weight:600; cursor:pointer; }

/* ---------- Layout: barra lateral + grilla ---------- */
.sah-shop-layout{ display:flex; align-items:flex-start; gap:26px; width:100%; }

.sah-shop-sidebar{ flex:0 0 250px; background:var(--sah-card-bg); border-radius:var(--sah-radius); box-shadow:var(--sah-shadow); padding:18px 18px 22px; position:sticky; top:14px; max-height:calc(100vh - 28px); overflow-y:auto; }
.sah-shop-main{ flex:1; min-width:0; }

/* ---------- Formulario de filtros ---------- */
.sah-filter-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.sah-filter-head h3{ font-size:16px; font-weight:700; color:var(--sah-dark); margin:0; }
.sah-filter-clear{ font-size:12.5px; color:var(--sah-orange); }
.sah-filter-clear:hover{ text-decoration:underline; }

/* ================= Árbol de categorías (barra lateral) ================= */
.sah-catnav{ margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid #eee; }
.sah-catnav-title{ font-size:16px; font-weight:700; color:var(--sah-dark); margin:0 0 8px; }
.sah-catnav-list{ list-style:none; margin:0; padding:0; }
.sah-catnav-item{ border-left:3px solid transparent; }
.sah-catnav-item.is-active{ border-left-color:var(--sah-orange); background:#fff6ee; }
.sah-catnav-row{ display:flex; align-items:center; gap:8px; padding:8px 8px 8px 9px; }
.sah-catnav-link{ flex:1 1 auto; display:flex; align-items:center; gap:9px; min-width:0; color:var(--sah-text); font-size:13.5px; font-weight:500; }
.sah-catnav-item.is-active > .sah-catnav-row .sah-catnav-link{ color:var(--sah-orange); font-weight:700; }
.sah-catnav-icon{ flex-shrink:0; width:22px; height:22px; object-fit:contain; border-radius:4px; }
.sah-catnav-icon-default{ display:flex; align-items:center; justify-content:center; font-size:14px; }
.sah-catnav-name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sah-catnav-count{ flex-shrink:0; font-size:11.5px; color:var(--sah-text-light); font-weight:400; }
.sah-catnav-toggle{
	flex-shrink:0; width:26px; height:26px; border:none; background:none; cursor:pointer;
	color:var(--sah-text-light); font-size:13px; border-radius:50%; transition:transform .18s ease;
}
.sah-catnav-toggle:hover{ background:#f2f3f5; }
.sah-catnav-item.is-open > .sah-catnav-row .sah-catnav-toggle{ transform:rotate(180deg); }
.sah-catnav-sub{ list-style:none; margin:0 0 4px; padding:0 0 0 39px; }
.sah-catnav-sub li{ padding:0; }
.sah-catnav-sub li a{ display:flex; align-items:center; gap:6px; padding:6px 4px; font-size:12.5px; color:var(--sah-text-light); }
.sah-catnav-sub li a:hover{ color:var(--sah-orange); }
.sah-catnav-sub li.is-active a{ color:var(--sah-orange); font-weight:700; }

.sah-filter-group{ padding:14px 0; border-bottom:1px solid #eee; }
.sah-filter-group:last-of-type{ border-bottom:none; }
.sah-filter-title{ font-size:13.5px; font-weight:700; color:var(--sah-dark); margin:0 0 10px; text-transform:uppercase; letter-spacing:.3px; }

.sah-filter-check{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--sah-text); margin-bottom:9px; cursor:pointer; }
.sah-filter-check input{ accent-color:var(--sah-orange); width:15px; height:15px; flex-shrink:0; }
.sah-filter-rating .sah-stars{ font-size:13px; }
.sah-filter-count{ color:var(--sah-text-light); font-size:12px; }

.sah-filter-links{ margin:0; padding:0; list-style:none; }
.sah-filter-links li{ margin-bottom:9px; }
.sah-filter-links a{ font-size:13.5px; color:var(--sah-text); }
.sah-filter-links a:hover{ color:var(--sah-orange); }

.sah-price-range{ display:flex; align-items:center; gap:8px; }
.sah-price-range input{ width:100%; height:36px; border:1px solid var(--sah-border); border-radius:6px; padding:0 8px; font-size:13px; }
.sah-price-range span{ color:var(--sah-text-light); }

.sah-filter-apply{ width:100%; margin-top:6px; background:var(--sah-orange); color:#1a1a1a; border:none; border-radius:6px; padding:11px; font-size:13.5px; font-weight:700; cursor:pointer; transition:background .15s; }
.sah-filter-apply:hover{ background:var(--sah-orange-hover); }

/* ---------- Grilla de productos ---------- */
.sah-shop-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:16px; }

.sah-grid-card{ background:#fff; border:1px solid #eee; border-radius:8px; padding:12px 12px 14px; position:relative; display:flex; flex-direction:column; transition:box-shadow .15s, transform .15s; }
.sah-grid-card:hover{ box-shadow:var(--sah-shadow-hover); transform:translateY(-2px); }
.sah-grid-card-link{ display:flex; flex-direction:column; flex:1; }
.sah-grid-card-image{ height:170px; display:flex; align-items:center; justify-content:center; margin-bottom:10px; }
.sah-grid-card-image img{ max-height:100%; max-width:100%; object-fit:contain; }
.sah-grid-card-title{ font-size:13.5px; line-height:1.4; height:57px; margin-bottom:6px; color:var(--sah-text); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.sah-grid-card-rating{ min-height:18px; margin-bottom:6px; display:flex; align-items:center; }
.sah-grid-card-price{ font-weight:700; color:var(--sah-dark); font-size:16px; margin-top:auto; }
.sah-grid-card-price ins{ text-decoration:none; color:var(--sah-orange); }
.sah-grid-card-price del{ color:var(--sah-text-light); font-size:12px; margin-right:4px; }
.sah-grid-card-action{ margin-top:10px; }
.sah-add-to-cart{ display:block; text-align:center; background:#fff; border:1px solid var(--sah-orange); color:var(--sah-orange) !important; border-radius:20px; padding:8px 10px; font-size:12.5px; font-weight:700; transition:background .15s, color .15s; }
.sah-add-to-cart:hover{ background:var(--sah-orange); color:#1a1a1a !important; }

/* ---------- Sin resultados / paginación ---------- */
.sah-shop-empty{ background:#fff; border-radius:var(--sah-radius); box-shadow:var(--sah-shadow); padding:40px 20px; text-align:center; color:var(--sah-text-light); }
.sah-shop-reset{ display:inline-block; margin-top:10px; background:var(--sah-orange); color:#1a1a1a; border-radius:20px; padding:9px 20px; font-size:13.5px; font-weight:700; }
.sah-shop-pagination{ margin-top:26px; text-align:center; }
.sah-shop-pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; margin:0 3px; border-radius:6px; border:1px solid var(--sah-border); font-size:13px; color:var(--sah-text); }
.sah-shop-pagination .page-numbers.current{ background:var(--sah-dark); border-color:var(--sah-dark); color:#fff; }
.sah-shop-pagination .page-numbers:hover{ border-color:var(--sah-orange); color:var(--sah-orange); }

/* ---------- Responsive: tienda ---------- */
@media (max-width:960px){
	.sah-shop-layout{ gap:0; }
	.sah-filter-toggle{ display:inline-block; }
	.sah-shop-sidebar{ position:fixed; top:0; left:0; height:100vh; max-height:none; width:82vw; max-width:320px; z-index:50; border-radius:0; box-shadow:0 0 24px rgba(0,0,0,.25); transform:translateX(-100%); transition:transform .2s ease; }
	.sah-shop-sidebar.is-open{ transform:translateX(0); }
	.sah-shop-grid{ grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:12px; }
	.sah-grid-card-image{ height:130px; }
}
@media (max-width:480px){
	.sah-shop-grid{ grid-template-columns:repeat(2, 1fr); }
}

/* ================= Ventana emergente de login / registro ================= */
.sah-auth-modal{ position:fixed; inset:0; z-index:200; display:none; }
.sah-auth-modal.is-open{ display:block; }
.sah-auth-modal-backdrop{ position:absolute; inset:0; background:rgba(20,22,28,.55); }
.sah-auth-modal-card{
	position:relative; z-index:1; background:#fff; border-radius:14px;
	max-width:800px; width:calc(100% - 32px); margin:6vh auto 0;
	max-height:88vh; overflow-y:auto; padding:32px 34px 34px;
	box-shadow:0 20px 60px rgba(0,0,0,.25);
}
body.sah-modal-open{ overflow:hidden; }
.sah-auth-modal-close{
	position:absolute; top:12px; right:14px; width:32px; height:32px; border:none;
	background:#f2f3f5; border-radius:50%; font-size:20px; line-height:1; cursor:pointer;
	color:var(--sah-text-light); display:flex; align-items:center; justify-content:center;
}
.sah-auth-modal-close:hover{ background:#e7e9ec; color:var(--sah-text); }
.sah-auth-modal-brand{ text-align:center; margin-bottom:14px; }
.sah-auth-modal-brand img{ width:130px; height:auto; }

/* Reseteo del formulario nativo de WooCommerce dentro del modal: sin
   distracciones — solo login + registro, sin heredar estilos del tema. */
.sah-auth-modal-body .woocommerce-notices-wrapper{ margin-bottom:12px; }
.sah-auth-modal-body .woocommerce-MyAccount-content > p:first-child{ display:none; } /* oculta el mensaje genérico de WC */
.sah-auth-modal-body .u-columns.col2-set{
	display:flex !important; flex-wrap:wrap; gap:28px; list-style:none; margin:0; padding:0;
}
.sah-auth-modal-body .u-columns.col2-set .col-1,
.sah-auth-modal-body .u-columns.col2-set .col-2{
	flex:1 1 240px; min-width:220px;
}
.sah-auth-modal-body .u-columns.col2-set .col-1{ border-right:1px solid var(--sah-border); padding-right:28px; }
.sah-auth-modal-body h2{ font-size:16px; font-weight:700; margin:0 0 14px; color:var(--sah-dark); text-transform:none; }
.sah-auth-modal-body form.woocommerce-form{ display:flex; flex-direction:column; gap:12px; }
.sah-auth-modal-body .form-row{ margin:0; }
.sah-auth-modal-body label{ display:block; font-size:12.5px; font-weight:600; color:var(--sah-text); margin-bottom:4px; }
.sah-auth-modal-body input.input-text,
.sah-auth-modal-body input[type="text"],
.sah-auth-modal-body input[type="email"],
.sah-auth-modal-body input[type="password"]{
	width:100%; padding:10px 12px; border:1px solid var(--sah-border); border-radius:7px;
	font-size:14px; box-sizing:border-box;
}
.sah-auth-modal-body input.input-text:focus{ outline:none; border-color:var(--sah-orange); }
.sah-auth-modal-body .woocommerce-form-login__rememberme{ display:flex; align-items:center; gap:6px; font-size:12.5px; margin:0; }
.sah-auth-modal-body .woocommerce-form-login__rememberme input{ width:auto; }
.sah-auth-modal-body button[type="submit"],
.sah-auth-modal-body input[type="submit"]{
	background:var(--sah-orange); color:#fff; border:none; border-radius:7px;
	padding:11px 18px; font-weight:700; font-size:16px; cursor:pointer; width:100%; margin-top:4px;
}
.sah-auth-modal-body button[type="submit"]:hover,
.sah-auth-modal-body input[type="submit"]:hover{ filter:brightness(0.95); }
.sah-auth-modal-body .woocommerce-LostPassword{ font-size:12.5px; margin:6px 0 0; }
.sah-auth-modal-body .woocommerce-LostPassword a{ color:var(--sah-text-light); }
.sah-auth-modal-body .woocommerce-form-register p:last-child{ font-size:11.5px; color:var(--sah-text-light); margin-top:2px; }
/* Al abrir en modo "registrarse" desde "Crea tu cuenta", resalta esa columna en móvil poniéndola primero. */
.sah-auth-focus-register .u-columns.col2-set{ flex-direction:row-reverse; }

@media (max-width:560px){
	.sah-auth-modal-card{ padding:26px 20px 26px; margin-top:4vh; max-height:92vh; }
	.sah-auth-modal-body .u-columns.col2-set{ flex-direction:column !important; gap:22px; }
	.sah-auth-modal-body .u-columns.col2-set .col-1{ border-right:none; padding-right:0; border-bottom:1px solid var(--sah-border); padding-bottom:22px; }
	.sah-auth-focus-register .u-columns.col2-set{ flex-direction:column-reverse !important; }
}

/* ---- Vista "Recuperar contraseña" dentro del modal (sin salir de él) ---- */
.sah-auth-lost{ max-width:360px; margin:0 auto; }
.sah-auth-lost-back{
	background:none; border:none; padding:0; margin:0 0 18px; cursor:pointer;
	color:var(--sah-text-light); font-size:13px; font-weight:600;
}
.sah-auth-lost-back:hover{ color:var(--sah-orange); }
.sah-auth-lost h2{ font-size:17px; font-weight:700; margin:0 0 8px; color:var(--sah-dark); }
.sah-auth-lost-help{ font-size:13.5px; color:var(--sah-text-light); margin:0 0 18px; line-height:1.5; }
.sah-auth-lost label{ display:block; font-size:12.5px; font-weight:600; color:var(--sah-text); margin-bottom:4px; }
.sah-auth-lost input[type="text"]{
	width:100%; padding:10px 12px; border:1px solid var(--sah-border); border-radius:7px;
	font-size:14px; box-sizing:border-box; margin-bottom:14px;
}
.sah-auth-lost input[type="text"]:focus{ outline:none; border-color:var(--sah-orange); }
.sah-auth-lost-submit{
	background:var(--sah-orange); color:#fff; border:none; border-radius:7px;
	padding:11px 18px; font-weight:700; font-size:16px; cursor:pointer; width:100%;
}
.sah-auth-lost-submit:hover{ filter:brightness(0.95); }
.sah-auth-lost-submit:disabled{ opacity:.6; cursor:default; }
.sah-auth-lost-feedback{ font-size:13px; margin:12px 0 0; line-height:1.5; }
.sah-auth-lost-feedback.is-success{ color:#1a7f37; font-weight:600; }
.sah-auth-lost-feedback.is-error{ color:#c0392b; font-weight:600; }

/* =========================================================
   Banners promocionales de portada (entre hero y filas de
   productos). Añadido no destructivo — no toca reglas previas.
   ========================================================= */
.sah-promo-banners{
	display:flex;
	flex-direction:column;
	gap:18px;
	width:100%;
	padding:16px var(--sah-gutter) 0;
	box-sizing:border-box;
}

/* ================= Buscador por medida y marca (barra lateral) ================= */
.sah-finder{ margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid #eee; }
.sah-finder-title{ font-size:16px; font-weight:700; color:var(--sah-dark); margin:0 0 10px; }
.sah-finder-form{ display:flex; flex-direction:column; gap:6px; }
.sah-finder-label{ font-size:12.5px; font-weight:600; color:var(--sah-text); margin-top:4px; }
.sah-finder-input,
.sah-finder-select{ width:100%; height:40px; box-sizing:border-box; border:1px solid var(--sah-border); border-radius:6px; padding:0 11px; font-size:14px; background:#fff; color:var(--sah-text); }
.sah-finder-input::placeholder{ color:#9aa1ab; }
.sah-finder-input:focus,
.sah-finder-select:focus{ outline:2px solid var(--sah-orange); outline-offset:1px; border-color:var(--sah-orange); }
.sah-finder-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 4px; }
.sah-finder-chip{ display:inline-block; padding:5px 11px; border:1px solid var(--sah-border); border-radius:999px; font-size:12.5px; color:var(--sah-text); background:#fff; text-decoration:none; line-height:1.3; }
.sah-finder-chip:hover{ border-color:var(--sah-orange); color:var(--sah-orange); }
.sah-finder-chip.is-active{ background:var(--sah-orange); border-color:var(--sah-orange); color:#1a1a1a; font-weight:700; }
.sah-finder-chip:focus-visible,
.sah-finder-submit:focus-visible,
.sah-finder-clear:focus-visible{ outline:2px solid var(--sah-dark); outline-offset:2px; }
.sah-finder-actions{ display:flex; align-items:center; gap:12px; margin-top:6px; }
.sah-finder-submit{ flex:1; background:var(--sah-orange); color:#1a1a1a; border:none; border-radius:6px; padding:11px; font-size:13.5px; font-weight:700; cursor:pointer; transition:background .15s; }
.sah-finder-submit:hover{ background:var(--sah-orange-hover); }
.sah-finder-clear{ font-size:12.5px; color:var(--sah-orange); }
.sah-finder-clear:hover{ text-decoration:underline; }
.sah-finder-widget .sah-finder{ border-bottom:none; margin-bottom:0; }

/* ================= Combo de llantas (ficha de producto) ================= */
.sah-combo{ margin:18px 0; padding:14px 16px; border:1px solid var(--sah-border); border-left:4px solid var(--sah-orange); border-radius:8px; background:#fff; }
.sah-combo-title{ font-size:15px; font-weight:700; color:var(--sah-dark); margin:0 0 8px; }
.sah-combo-items{ list-style:none; margin:0 0 8px; padding:0; font-size:13.5px; }
.sah-combo-items li{ padding:3px 0; }
.sah-combo-items a{ color:var(--sah-text); }
.sah-combo-items a:hover{ color:var(--sah-orange); }
.sah-combo-prices{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; margin:0 0 10px; }
.sah-combo-prices del{ color:var(--sah-text-light); font-size:13px; }
.sah-combo-prices strong{ font-size:20px; color:var(--sah-dark); }
.sah-combo-save{ font-size:12.5px; font-weight:600; color:#0a7a3d; }
.sah-combo-btn{ display:inline-block; background:var(--sah-orange); color:#1a1a1a; border-radius:6px; padding:10px 18px; font-size:13.5px; font-weight:700; text-decoration:none; }
.sah-combo-btn:hover{ background:var(--sah-orange-hover); }
.sah-combo-btn:focus-visible{ outline:2px solid var(--sah-dark); outline-offset:2px; }

/* ================= Tallas / medidas: cuadrícula pareja (reemplaza los botones sueltos) ================= */
.sah-sg-wrap{ margin:0 0 16px; }
.sah-sg-title{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--sah-dark); margin:0 0 8px; text-transform:uppercase; letter-spacing:.4px; }
.sah-sg-total{ font-size:11px; font-weight:600; color:var(--sah-text-light); background:#f1f2f4; border-radius:999px; padding:1px 7px; letter-spacing:0; }
.sah-sg{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.sah-sg-cell{ display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:42px; padding:4px 3px; border:1px solid var(--sah-border); border-radius:8px; background:#fff; color:var(--sah-text); text-align:center; text-decoration:none; line-height:1.15; transition:border-color .15s, box-shadow .15s, background .15s; }
.sah-sg-main{ font-size:13px; font-weight:700; }
.sah-sg-sub{ font-size:10.5px; font-weight:500; color:var(--sah-text-light); margin-top:2px; }
.sah-sg-cell:hover{ border-color:var(--sah-orange); box-shadow:0 0 0 1px var(--sah-orange) inset; }
.sah-sg-cell.is-active{ background:var(--sah-dark); border-color:var(--sah-dark); color:#fff; }
.sah-sg-cell.is-active .sah-sg-sub{ color:#cfd6df; }
.sah-sg-cell:focus-visible{ outline:2px solid var(--sah-orange); outline-offset:2px; }
.sah-sg-toggle{ position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; }
.sah-sg-toggle ~ .sah-sg .is-extra{ display:none; }
.sah-sg-toggle:checked ~ .sah-sg .is-extra{ display:flex; }
.sah-sg-more{ display:inline-block; margin-top:8px; font-size:12.5px; font-weight:600; color:var(--sah-orange); cursor:pointer; }
.sah-sg-more:hover{ text-decoration:underline; }
.sah-sg-more-close{ display:none; }
.sah-sg-toggle:checked ~ .sah-sg-more .sah-sg-more-open{ display:none; }
.sah-sg-toggle:checked ~ .sah-sg-more .sah-sg-more-close{ display:inline; }
.sah-sg-toggle:focus-visible ~ .sah-sg-more{ outline:2px solid var(--sah-orange); outline-offset:2px; }

/* Lista de "Categorías": filas más juntas (el tema sumaba margen/alto de línea a cada texto). */
.sah-dropdown-panel ul.sah-cat-all-list li{ margin:0!important; padding:0!important; line-height:1.25!important; }
.sah-dropdown-panel ul.sah-cat-all-list li a{ padding:5px 10px!important; line-height:1.25!important; font-size:13px; }
.sah-dropdown-panel ul.sah-cat-all-list li.is-sub a{ padding:4px 10px 4px 26px!important; }
