/* ===================================================================
    00. VARIABLES Y RESET GLOBAL
=================================================================== */

:root {
  /* —————— Paleta primaria —————— */
  --color-primario-rosa: #D6006E;
  --color-primario-lima: #94D600;
  --color-primario-morado: #843E98;

  /* —————— Color de sombras (verde lima menos brillante) —————— */
  --color-sombra: #003300;

  /* —————— Colores semánticos —————— */
  --color-principal: var(--color-primario-rosa);
  --color-principal-oscuro: var(--color-primario-morado);
  --color-exito: var(--color-primario-lima);
  --color-texto: #333333;
  --color-fondo: #FFFFFF;
  --color-fondo-claro: #F8F8F8;
  --color-gris-claro: #E0E0E0;

  /* —————— Funcionales —————— */
  --color-hover: var(--color-principal-oscuro);
  --color-acento: var(--color-primario-morado);
}



/* ==== Reset universal de box-sizing ==== */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'Poppins', sans-serif;
  background: var(--color-fondo);
  color: var(--color-texto);
  line-height: 1.6;
  overflow-x: hidden;
}

body.no-scroll {
  overflow: hidden;
}

/* ==== Esconde navegación principal en móvil ==== */
@media (max-width: 768px) {
  nav:not(#sidebar) {
    display: none !important;
  }
}

/* ===================================================================
    01. HEADER Y NAVEGACIÓN PRINCIPAL
=================================================================== */

header {
  background: var(--color-principal);
  color: #fff;
  text-align: center;

  display: flex;
  justify-content: space-between;
  align-items: center;
}

header h1 {
  margin: 0;
  font-weight: 600;
  font-size: 2.8rem;
  flex: 1;
  text-align: left;
}

header p {
  margin: 8px 0 0;
  font-weight: 400;
  font-size: 1.2rem;
  flex: 30;
  text-align: center;
}

#Logo {
  display: none;
}

/* ==== Íconos del header (carrito, user, etc.) ==== */
.header-icons {
  display: flex;
  align-items: center;
  gap: 25px;
  flex: 1;
  justify-content: flex-end;
}

.header-icons a svg {
  fill: #fff;
  width: 28px;
  height: 28px;
  transition: opacity 0.2s;
}

@media (max-width: 768px) {
  #compact-header .compact-header-center a .header-logo {
    max-height: 40px;
    /* un poco más pequeño en pantallas pequeñas */
  }
}

.header-icons a:hover svg {
  opacity: 0.8;
}

/* ==== Menú principal ==== */
nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  background: var(--color-primario-lima);
  /* usas aquí el teal */
  gap: 20px;
  padding: 15px;
  font-weight: 600;
  box-shadow: 0 4px 6px var(--color-sombra);
}


nav a {
  color: var(--color-texto);
  text-decoration: none;
  position: relative;
  padding: 6px 8px;
  font-size: 1rem;
  transition: color 0.3s;
}

nav a::after {
  content: "";
  display: block;
  height: 2px;
  background: var(--color-terciario);
  width: 0;
  transition: width 0.3s;
  position: absolute;
  bottom: -4px;
  left: 0;
}

nav a:hover,
nav a:focus {
  color: var(--color-hover);
}

nav a:hover::after,
nav a:focus::after {
  width: 100%;
}

/* ==== Header compacto (móvil, flotante) ==== */
#compact-header {
  align-items: center;
  justify-content: space-between;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 55px;
  background: var(--color-principal);
  border-bottom: 2px solid var(--color-principal-oscuro);
  box-shadow: 0 2px 8px var(--color-sombra);

  color: #fff;
  padding: 0 15px;
  z-index: 1100;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transform: translateY(-100%);
  transition: transform 0.3s;
}

#compact-header .compact-header-center a .header-logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: 36px;
  object-fit: contain;
  margin: 8px auto;
  background-color: #fff;
  padding: 4px;
  border-radius: 4px;
}


#compact-header.visible {
  transform: translateY(0);
}

#compact-header .compact-header-center {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  position: relative;
}

/* ======================================================
   Reemplazar texto “Fiby Dog” por imagen en compact-header
   ====================================================== */
#compact-header .compact-header-center a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  /* elimina padding por defecto */
  height: 100%;
  /* ocupa toda la altura del header */
}

#compact-header .compact-header-right {
  display: flex;
  align-items: center;
}

/* Izquierda al inicio, centro expandido, derecha al final */
#compact-header .compact-header-left {
  justify-content: flex-start;
}

#compact-header .compact-header-center {
  flex: 1;
  justify-content: center;
}

#compact-header .compact-header-right {
  justify-content: flex-end;
  gap: 20px;
  /* espacio uniforme entre iconos */
}

/* Iconos y hamburguesa de tamaño uniforme */
#compact-header .compact-header-right a svg,
#compact-header .hamburger {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
}

#compact-header .compact-header-left,
#compact-header .compact-header-center,

#compact-header .compact-header-right {
  display: flex;
  align-items: center;
  gap: 15px;
  position: relative;
}

#compact-header svg {
  fill: #fff;
  width: 20px;
  height: 20px;
}

.hamburger-desktop {
  display: none;
  cursor: pointer;
  color: #fff;
  font-size: 1.6rem;
  padding-left: 15px;
  z-index: 2;
}

.desktop-menu-container {
  position: relative;
  display: none;
  align-items: center;
}

/* ==== Menú desplegable en desktop ==== */
.dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  background: var(--color-fondo);
  box-shadow: 0 4px 12px var(--color-sombra);

  border-radius: 8px;
  overflow: hidden;
  min-width: 180px;
  z-index: 1050;
  padding: 10px 0;
  border: 1px solid var(--color-gris-claro);
}

.dropdown-menu.show {
  display: block;
}

.dropdown-menu a {
  color: var(--color-texto);
  padding: 10px 20px;
  text-decoration: none;
  display: block;
  text-align: left;
  font-size: 0.95rem;
  transition: background 0.2s, color 0.2s;
}

.dropdown-menu a:hover,
.dropdown-menu a:focus {
  background: #e9ecef;
  color: var(--color-principal);
}

section h3 {
  font-size: 2rem;
  color: var(--color-principal);
  margin-bottom: 15px;
  font-weight: 600;
  text-align: center;
}

section p {
  max-width: 700px;
  margin: 0 auto 20px;
  font-size: 1.15rem;
  line-height: 1.5;
  color: #444;
  text-align: justify;
  padding: 0 15px;
}

section h2 {
  font-size: 1.8rem;
  color: var(--color-principal);
  font-weight: 700;
  margin: 30px 0 15px;
  text-align: center;
  letter-spacing: 1px;
  position: relative;
}

/* ===================================================================
    02. SLIDER PRINCIPAL (HERO)
=================================================================== */

/* ===================================================================
    03. PRODUCTOS DESTACADOS (GALERÍA)
=================================================================== */
.product-gallery {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 25px;
  margin-top: 30px;
  padding: 0 20px;
}

.product {
  width: 220px;
  background: var(--color-fondo-claro);
  border-radius: 12px;
  box-shadow: 0 2px 10px var(--color-sombra);

  padding: 18px 14px 18px 14px;
  /* FLEX para centrar vertical y horizontalmente todo */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  /* Espaciado entre imagen y contenido */
  transition: transform 0.2s;
  cursor: pointer;
  text-align: center;
  box-sizing: border-box;
  gap: 10px;
  min-height: 340px;
  /* Si quieres que todas las tarjetas tengan la misma altura */
}

.product:hover,
.product:focus-within {
  transform: translateY(-5px);
  box-shadow: 0 6px 20px var(--color-sombra);

  outline: none;
}

.product img {
  border-radius: 8px;
  max-width: 100%;
  height: 160px;
  object-fit: cover;
  margin-bottom: 10px;
}

.product p {
  margin: 0;
  font-weight: 600;
  color: var(--color-texto);
  font-size: 1.12rem;
  margin-bottom: 5px;
}

/* ===================================================================
    04. FORMULARIOS (CONTACTO, SUSCRIPCIÓN, ETC)
=================================================================== */

form {
  background: #f2f2f2;
  padding: 25px 20px;
  border-radius: 12px;
  box-shadow: 0 2px 10px var(--color-sombra);

  max-width: 600px;
  margin: 30px auto 20px;
}

form label {
  display: block;
  margin-bottom: 10px;
  font-weight: 600;
  color: var(--color-texto);
}

form input[type="text"],
form input[type="email"],
form input[type="tel"],
form textarea,
form input[type="file"] {
  width: 100%;
  padding: 12px 15px;
  margin-top: 5px;
  margin-bottom: 20px;
  border-radius: 8px;
  border: 1px solid #ddd;
  font-family: inherit;
  font-size: 1rem;
  resize: vertical;
}

form button {
  background: var(--color-principal);
  color: #fff;
  border: none;
  font-weight: 700;
  font-size: 1.1rem;
  padding: 14px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.3s;
  width: 100%;
}

form button:hover,
form button:focus {
  background: var(--color-principal-oscuro);
  outline: none;
}

/* ===================================================================
    05. TESTIMONIOS
=================================================================== */

/* ==== Contenedor general de testimonios ==== */
#contenedor-testimonios {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  padding-bottom: 20px;
  margin: 0 auto;
  max-width: 1200px;
}

.testimonio {
  width: 280px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 8px 20px var(--color-sombra);

  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.3s, box-shadow 0.3s;
  padding-bottom: 20px;
  position: relative;
}

.testimonio:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 30px var(--color-sombra);

}

.testimonio .image-container {
  width: 100%;
  background: #FDD7E4;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid #f2f2f2;
}

.testimonio img {
  width: 100%;
  max-height: 220px;
  object-fit: contain;
  border-radius: 16px;
}

.testimonio h3 {
  margin-top: 15px;
  margin-bottom: 6px;
  font-size: 1.3rem;
  color: var(--color-principal);
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: capitalize;
}

.testimonio p {
  font-size: 1rem;
  color: #666;
  margin: 0 20px;
  text-align: center;
  line-height: 1.4;
}

.testimonio .tag {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--color-acento);
  color: #fff;
  font-size: 0.8rem;
  padding: 4px 10px;
  border-radius: 20px;
  font-weight: 600;
}

/* ===================================================================
    06. BOTÓN WHATSAPP FLOTANTE Y OVERLAYS
=================================================================== */

/* ==== Botón flotante de WhatsApp ==== */
.whatsapp {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #25D366;
  /* Aquí el cambio */
  box-shadow: 0 3px 16px 0 var(--color-sombra);

  transition: box-shadow 0.2s, transform 0.2s;
  text-decoration: none;
  cursor: pointer;
}

.whatsapp svg {
  display: block;
}

.whatsapp:hover {
  box-shadow: 0 8px 24px 0 var(--color-sombra);

  transform: scale(1.06);
}

@media (max-width: 600px) {
  .whatsapp {
    right: 12px;
    bottom: 12px;
    width: 44px;
    height: 44px;
  }
}

/* ==== Overlay para sidebar o modales ==== */
body.sidebar-open::before,
.overlay {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1999;
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.3s;
}

.overlay {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s, visibility 0.3s;
}

.overlay.visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* ===================================================================
    07. SIDEBAR MENÚ LATERAL
=================================================================== */

/* ==== Sidebar lateral de navegación ==== */
#sidebar {
  position: fixed;
  top: 0;
  left: -100%;
  z-index: 2000;
  width: 80%;
  max-width: 320px;
  height: 100%;
  background: var(--color-principal);
  box-shadow: 4px 0 15px var(--color-sombra);

  display: flex;
  flex-direction: column;
  transition: left 0.35s;
}

#sidebar.open {
  left: 0;
}

.sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.sidebar-header h2 {
  margin: 0;
  font-size: 1.5rem;
  color: #fff;
  font-weight: 600;
}

.close-btn {
  padding: 5px;
  font-size: 2rem;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  opacity: 0.8;
  transition: opacity 0.2s, transform 0.2s;
}

.close-btn:hover {
  opacity: 1;
  transform: rotate(90deg);
}

.sidebar-links {
  padding: 15px 0;
  display: flex;
  flex-direction: column;
}

.sidebar-links a {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 15px 20px;
  font-size: 1.1rem;
  font-weight: 400;
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transition: background 0.2s;
}

.sidebar-links a:last-child {
  border-bottom: none;
}

.sidebar-links a:hover {
  background: var(--color-principal-oscuro);
}

.sidebar-links a svg {
  flex-shrink: 0;
  opacity: 0.9;
}

.sidebar-footer {
  margin-top: auto;
  padding: 20px;
  background: var(--color-principal-oscuro);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 25px;
}

.sidebar-footer a {
  color: #fff;
  opacity: 0.8;
  transition: opacity 0.2s, transform 0.2s;
}

.sidebar-footer a:hover {
  opacity: 1;
  transform: scale(1.1);
}

/* ================================================
   [08.1.x] Rediseño compacto del layout de ítems del carrito
   ================================================ */
#carrito-sidebar .carrito-body .carrito-item {
  display: flex !important;
  gap: 12px;
  padding: 8px 12px;
  align-items: center;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 10px var(--color-sombra);
  margin-bottom: 16px;
  /* ────────── AÑADE ESTA LÍNEA: ────────── */
  position: relative;
}

#carrito-sidebar .carrito-body .item-precio-eliminar {
  position: absolute;
  top: 9px;
  /* igual que el padding superior de .carrito-item */
  padding-left: 0;
  /* elimina espacio sobrante */
  text-align: right;
  /* opcional, para alinear bien el icono */
}

/* Contenedor de info: flex-wrap para que los controles fluyan */
/* Contenedor de info: envuelve TODO y permite salto de línea */
#carrito-sidebar .carrito-body .item-info {
  display: flex;
  flex-wrap: wrap;
  /* 🔑 evita que se salga */
  align-items: flex-start;
  gap: 10px 12px;
  /* fila/columna */
  flex: 1 1 auto;
  min-width: 0;
  /* permite que los hijos encojan */
}

/* Encabezado: siempre a lo ancho */
#carrito-sidebar .carrito-body .item-header {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-bottom: 4px;
}

/* Controles (cantidad + talla + modelo + color) ocupan 100% y pueden envolver */
#carrito-sidebar .carrito-body .item-controls.first-row,
#carrito-sidebar .carrito-body .item-controls.second-row {
  display: flex;
  flex-wrap: wrap;
  /* 🔑 permite que bajen a otra línea */
  gap: 8px 12px;
  width: 100%;
  align-items: center;
  margin: 0;
}

/* Cada opción se comporta como “bloque” flexible */
.item-opciones {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 150px;
  /* 🔑 ancho base; se ajusta y salta */
  min-width: 140px;
  /* evita romperse */
}

/* Etiquetas cortas, sin romper el layout */
.item-opciones label {
  white-space: nowrap;
  font-size: 0.875rem;
  color: #555;
}

/* Los selects se adaptan al ancho disponible sin desbordar */
.item-opciones select {
  flex: 1 1 auto;
  min-width: 0;
  /* 🔑 permite encoger dentro del flex */
  width: 100%;
  padding: 6px 8px;
  border: 1px solid #ddd;
  border-radius: 6px;
  background: #fafafa;
  font-size: 0.9rem;
}

/* Cantidad compacta y alineada */
.item-cantidad-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  /* no crece ni se estira */
}

.item-cantidad-wrapper button {
  width: 28px;
  height: 28px;
}

.item-cantidad-wrapper span {
  min-width: 20px;
  text-align: center;
}


/* ==============================================================
   [Mobile] Anular posición absoluta del bote de basura en móvil
   ============================================================== */
@media (max-width: 600px) {
  .carrito-item {
    grid-template-columns: 48px 1fr;
    grid-template-rows: auto auto auto auto;
    grid-gap: 8px;
  }

  .carrito-item .item-header,
  .carrito-item .first-row,
  .carrito-item .second-row,
  .carrito-item .item-precio-eliminar {
    grid-column: 2;
  }

  /* Controles en columna para evitar desbordes */
  #carrito-sidebar .carrito-body .item-controls.first-row,
  #carrito-sidebar .carrito-body .item-controls.second-row {
    flex-direction: column;
    align-items: stretch;
  }

  .item-opciones {
    flex: 1 1 100%;
    min-width: 100%;
  }

  .item-opciones select {
    width: 100%;
  }

  .carrito-item .item-precio-eliminar {
    text-align: left;
    margin-top: 8px;
  }
}

/* ===================================================================
    08. CARRITO LATERAL (SIDEBAR DEL CARRITO)
=================================================================== */

/* Contenedor del sidebar */
.carrito-sidebar {
  position: fixed;
  top: 0;
  right: -100%;
  /* oculto por defecto */
  bottom: 0;
  /* ✅ asegura que cubra todo el alto visible */
  width: 90%;
  max-width: 420px;
  background: #fff;
  box-shadow: -4px 0 15px var(--color-sombra);

  z-index: 3000;
  display: flex;
  flex-direction: column;
  transition: right 0.35s ease;
}


.carrito-sidebar.open {
  right: 0;
}

/* Overlay visible */
.overlay.visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Header del carrito */
.carrito-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  border-bottom: 1px solid var(--color-gris-claro);
}

.carrito-header h3 {
  margin: 0;
  font-size: 1.3rem;
  color: var(--color-texto);
}

.cerrar-carrito {
  background: none;
  border: none;
  font-size: 2rem;
  color: #888;
  cursor: pointer;
  transition: color 0.2s, transform 0.2s;
}

.cerrar-carrito:hover {
  color: var(--color-texto);
  transform: rotate(90deg);
}

/* Cuerpo del carrito */
.carrito-body {
  flex-grow: 1;
  overflow-y: auto;
  padding: 20px;
}

/* Imagen clicable */
.carrito-item img {
  grid-row: 1 / span 2;
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
  cursor: pointer;
}

.item-nombre {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-texto);
}

.item-precio-inline {
  font-weight: 700;
  color: var(--color-principal);
  white-space: nowrap;
}

/* Primera fila: cantidad + talla */
.carrito-item .first-row {
  grid-column: 2;
  display: flex;
  gap: 20px;
  align-items: center;
}

/* Segunda fila: modelo + color (orden inverso) */
.carrito-item .second-row {
  grid-column: 2;
  display: flex;
  gap: 20px;
  align-items: center;
}

/* Modelo primero, luego Color */
.carrito-item .second-row .item-opciones:nth-child(1) {
  order: 2;
  /* Color */
}

.carrito-item .second-row .item-opciones:nth-child(2) {
  order: 1;
  /* Modelo */
}

/* Controles cantidad */
.item-cantidad-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.item-cantidad-wrapper button {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid #ccc;
  background: #f7f7f7;
  cursor: pointer;
  font-weight: bold;
  line-height: 1;
}

.item-cantidad-wrapper span {
  min-width: 20px;
  text-align: center;
  font-weight: 500;
}

/* Opciones selects */
.item-opciones {
  display: flex;
  align-items: center;
  gap: 12px;
}

.item-opciones label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.875rem;
  color: #555;
}

.item-opciones select {
  max-width: 80px;
  padding: 4px 6px;
  border: 1px solid #ddd;
  border-radius: 6px;
  background: #fafafa;
  font-size: 0.875rem;
}

.btn-eliminar {
  background: none;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s;
}

.btn-eliminar:hover {
  opacity: 1;
}

/* Footer del carrito */
.carrito-footer {
  position: sticky;
  bottom: 0;
  background: #f8f9fa;
  border-top: 1px solid var(--color-gris-claro);
  padding: 16px 20px;
  z-index: 3;
}


.subtotal {
  display: flex;
  justify-content: space-between;
  font-size: 1.1rem;
  font-weight: 600;
}

.subtotal-precio {
  margin: 0;
}

.btn-finalizar-compra,
.btn-seguir-comprando {
  width: 100%;
  padding: 14px;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: background 0.2s;
}

.btn-finalizar-compra {
  background: var(--color-principal);
  color: #fff;
  margin-bottom: 10px;
}

.btn-finalizar-compra:hover {
  background: var(--color-principal-oscuro);
}

.btn-seguir-comprando {
  background: transparent;
  color: var(--color-principal);
  border: 2px solid var(--color-principal);
}

.btn-seguir-comprando:hover {
  background: #e6f2ef;
}

/* Responsive móvil */
@media (max-width: 600px) {
  .carrito-item {
    grid-template-columns: 48px 1fr;
    grid-template-rows: auto auto auto auto;
    grid-gap: 8px;
  }

  .carrito-item .item-header,
  .carrito-item .first-row,
  .carrito-item .second-row,
  .carrito-item .item-precio-eliminar {
    grid-column: 2;
  }

  .carrito-item .item-precio-eliminar {
    text-align: left;
    margin-top: 8px;
  }
}

/* ===================================================================
    09. SECCIÓN TIENDA (LAYOUT, SIDEBAR Y PRODUCTOS)
=================================================================== */

/* ==== Espaciado general para la tienda ==== */
#tienda {
  background: var(--color-fondo);
}

/* ==== Layout de tienda con sidebar y productos ==== */
.tienda-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 40px;
  max-width: 1400px;
  margin: 0 auto;
}

/* ==== Sidebar de filtros ==== */
.tienda-sidebar {
  background: #fff;
  padding: 25px;
  border-radius: 15px;
  box-shadow: 0 5px 20px var(--color-sombra);
  height: fit-content;
  border-top: 4px solid var(--color-principal);
}

/* ==== Grupos de filtros en el sidebar ==== */
.filter-group {
  margin-bottom: 25px;
  border-bottom: 1px solid #eaeaea;
  padding-bottom: 25px;
}

.filter-group:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.filter-group label {
  font-weight: 600;
  color: var(--color-texto);
  margin-bottom: 15px;
  display: block;
  font-size: 1.1rem;
}

.filter-group summary {
  font-weight: 600;
  font-size: 1.2rem;
  color: var(--color-principal);
  cursor: pointer;
  list-style: none;
  position: relative;
  padding: 8px 10px;
  border-radius: 8px;
  transition: background 0.2s;
}

.filter-group summary:hover {
  background: #f4f4f4;
}

.filter-group summary::-webkit-details-marker {
  display: none;
}

.filter-group summary::after {
  content: '▼';
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8em;
  color: #555;
  transition: transform 0.2s;
}

details[open]>summary::after {
  transform: translateY(-50%) rotate(180deg);
}

.category-list {
  list-style: none;
  padding: 10px 0 0 0;
  margin: 0;
}

.category-list li a {
  text-decoration: none;
  color: var(--color-texto);
  padding: 10px 15px;
  margin-bottom: 5px;
  display: block;
  border-radius: 8px;
  font-weight: 500;
  transition: all 0.2s;
}

/* Estado activo: morado de fondo + texto blanco */
.category-list li a.active {
  background: var(--color-primario-morado);
  color: #fff;
  font-weight: 600;
  transform: translateX(5px);
}

/* Hover (no activo): morado de fondo + texto oscuro) */
.category-list li a:hover {
  background: var(--color-primario-morado);
  color: var(--color-texto);
  font-weight: 600;
  transform: translateX(5px);
}


/* ==== Buscador y precios en filtros ==== */
.search-container,
.price-inputs {
  display: flex;
  align-items: center;
  gap: 10px;
}

.search-container input,
.price-inputs input {
  width: 100%;
  padding: 10px 15px;
  border-radius: 8px;
  border: 1px solid #ddd;
  font-family: inherit;
}

.search-container input:focus,
.price-inputs input:focus {
  outline: none;
  border-color: var(--color-principal);
}

.search-container button {
  border: 1px solid #ddd;
  background: var(--color-fondo);
  padding: 0 12px;
  border-radius: 8px;
  cursor: pointer;
}

.search-container button svg {
  fill: var(--color-principal);
}

/* ==== Botón aplicar filtros ==== */
.cleaner-button {
  width: 100%;
  padding: 14px;
  background: var(--color-principal);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-weight: 700;
  font-size: 1.1rem;
  cursor: pointer;
  transition: all 0.2s;
}

.cleaner-button:hover {
  background: var(--color-principal-oscuro);
  transform: scale(1.02);
}

/* ==== Botones de abrir/cerrar filtros en móvil ==== */
.boton-filtros-movil,
.cerrar-filtros-movil {
  display: none;
}

/* ==== Contenido principal de la tienda (productos) ==== */
.tienda-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
  border-bottom: 2px solid #eee;
  padding-bottom: 15px;
}

.tienda-header h2 {
  margin: 0;
  font-size: 1.8rem;
  color: var(--color-texto);
}

/* ==== Botón de ver tallas ==== */
.tallas-button {
  background: var(--color-principal);
  color: #FFFFFF;
  padding: 8px 15px;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 600;
  transition: background 0.3s;
}

.tallas-button:hover {
  background: var(--color-principal-oscuro);
  /* antes: var(--color-terciario) */
  color: #fff;
}

/* ==== Galería de productos en la tienda ==== */
#tienda .product-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

#tienda .product {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px var(--color-sombra);

  text-align: left;
  transition: all 0.3s;
  overflow: hidden;
}

#tienda .product:hover {
  transform: translateY(-8px);
  box-shadow: 0 10px 25px var(--color-sombra);

}

#tienda .product img {
  width: 100%;
  max-width: 140px;
  /* Controla el tamaño máximo de tu logo */
  height: 140px;
  /* Igual que max-width para un círculo perfecto */
  object-fit: contain;
  object-position: center;
  margin-bottom: 12px;
  border-radius: 8px;
  background: #fff;
  padding: 0;
  display: block;
}

#tienda .product-info {
  padding: 12px;
}

#tienda .product-title {
  font-size: 1.2rem;
  color: var(--color-texto);
  margin: 0 0 5px;
}

#tienda .product-price {
  color: var(--color-principal);
  font-size: 1.13rem;
  font-weight: bold;
  margin-bottom: 12px;
  display: block;
}

#tienda .product .comprar {
  width: 100%;
  background: var(--color-principal);
  color: #fff;
  border: none;
  padding: 12px 0;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 700;
  font-size: 1.08rem;
  transition: background 0.3s;
}

#tienda .product .comprar:hover {
  background: var(--color-principal-oscuro);
}

/* ==== Paginación de productos ==== */
.pagination {
  margin-top: 50px;
  display: flex;
  justify-content: center;
}

.pagination ul {
  list-style: none;
  padding: 0;
  display: flex;
  gap: 10px;
}

.pagination a {
  text-decoration: none;
  color: #555;
  padding: 10px 15px;
  border: 1px solid #ddd;
  border-radius: 8px;
  transition: all 0.3s;
  font-weight: 600;
}

.pagination a:hover,
.pagination a.active {
  background: var(--color-principal);
  color: #fff;
  border-color: var(--color-principal);
}

/* ===================================================================
    10. SECCIÓN BLOG (GRID, TARJETAS, FILTROS)
=================================================================== */
/* ==== Filtros arriba del blog ==== */
.blog-filters {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 40px;
}

/* ==== Botón de filtro individual ==== */
.filter-btn {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 20px;
  padding: 8px 20px;
  font-family: inherit;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s;
}

.filter-btn:hover {
  background: #e6f2ef;
  border-color: var(--color-principal);
}

.filter-btn.active {
  background: var(--color-principal);
  color: #fff;
  border-color: var(--color-principal);
}

/* ==== Grid de tarjetas de blog ==== */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

/* ==== Tarjeta individual de blog ==== */
.blog-card {
  background: #fff;
  border-radius: 15px;
  box-shadow: 0 5px 15px var(--color-sombra);

  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s, box-shadow 0.2s;
}

.blog-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px var(--color-sombra);

}

/* ==== Imagen destacada de la tarjeta (puede ser video o imagen) ==== */
.card-media {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.card-media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ==== Icono de play sobre imagen de video ==== */
.play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

.play-icon svg {
  width: 30px;
  height: 30px;
  fill: #fff;
}

/* ==== Contenido textual de la tarjeta ==== */
.card-content {
  padding: 25px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

/* ==== Etiqueta/tag de la entrada ==== */
.card-tag {
  background: var(--color-primario-morado);
  color: var(--color-texto);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 12px;
  margin-bottom: 15px;
  align-self: flex-start;
}

.card-title {
  margin: 0 0 10px;
  font-size: 1.3rem;
  line-height: 1.3;
}

.card-title a {
  color: var(--color-texto);
  text-decoration: none;
}

.card-excerpt {
  margin: 0 0 20px;
  color: #555;
  flex-grow: 1;
}

/* ==== Botón de leer más ==== */
.card-read-more {
  color: var(--color-principal);
  text-decoration: none;
  font-weight: 700;
  align-self: flex-end;
}

/* ==== Tarjeta de tipo "tip" o consejo ==== */
.tip-card {
  background: #e6fff6;
}

/* ==== Blog en columna única en móvil ==== */
@media (max-width: 768px) {
  .blog-grid {
    grid-template-columns: 1fr;
  }
}

/* ===================================================================
    11. FOOTER
=================================================================== */

/* ==== Footer general ==== */
footer {
  background: #f8f9fa;
  color: #555;
  padding: 50px 20px 20px;
  border-top: 1px solid var(--color-gris-claro);
  font-size: 0.95rem;
}

/* ==== Contenedor principal del footer ==== */
.footer-container {
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  max-width: 1200px;
  margin: 0 auto 40px;
  gap: 20px;
}

/* ==== Columna individual del footer ==== */
.footer-column {
  flex: 1;
  min-width: 200px;
  text-align: left;
}

.footer-column h4 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-principal);
  margin: 0 0 20px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-column li {
  margin-bottom: 12px;
}

.footer-column a {
  color: #555;
  text-decoration: none;
  transition: color 0.2s;
}

.footer-column a:hover {
  color: var(--color-principal);
  text-decoration: underline;
}

/* ==== Footer inferior, derechos, etc ==== */
.footer-bottom {
  text-align: center;
  padding-top: 20px;
  border-top: 1px solid var(--color-gris-claro);
  font-size: 0.9rem;
  color: #888;
}

.footer-bottom p {
  margin: 0;
}

/* ===================================================================
    12. PREGUNTAS FRECUENTES (FAQ)
=================================================================== */

/* ==== Contenedor general del FAQ ==== */
#faq {
  background: #fff;
}

/* ==== Acordeón de preguntas ==== */
.faq-accordion {
  max-width: 800px;
  margin: 0 auto;
}

/* ==== Pregunta individual (item) ==== */
.faq-item {
  background: #fff;
  border: 1px solid var(--color-gris-claro);
  border-radius: 10px;
  margin-bottom: 15px;
  transition: margin 0.2s;
}

.faq-item[open] {
  box-shadow: 0 5px 15px var(--color-sombra);

}

/* ==== Título de pregunta ==== */
.faq-question {
  display: block;
  width: 100%;
  padding: 20px;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-principal);
  cursor: pointer;
  position: relative;
  list-style: none;
}

/* ==== Flechita de despliegue ==== */
.faq-question::after {
  content: '▼';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1rem;
  color: var(--color-principal);
  transition: transform 0.3s;
}

.faq-item[open] .faq-question::after {
  transform: translateY(-50%) rotate(180deg);
}

/* ==== Respuesta expandida ==== */
.faq-answer {
  padding: 0 20px 20px;
  color: #555;
  line-height: 1.7;
  border-top: 1px solid var(--color-gris-claro);
}

.faq-answer p:first-child {
  margin-top: 20px;
}

.faq-answer ul {
  padding-left: 20px;
}

/* ===================================================================
    13. DETALLE DE PRODUCTO
=================================================================== */

/* ==== Contenedor general de detalle de producto ==== */
#producto-detalle {
  background: #fff;
}

/* ==== Layout principal (imágenes y descripción) ==== */
.producto-detalle-container {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: 50px;
  max-width: 1100px;
  margin: 0 auto;
}

/* ==== Galería de imágenes del producto ==== */
.producto-imagenes {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.imagen-principal img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 15px;
  border: 1px solid #eee;
}

/* ==== Miniaturas debajo de la imagen principal ==== */
.galeria-thumbnails {
  display: grid;
  gap: 10px;
  /* se autoacomoda sin dejar huecos visibles */
  grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
}

.thumbnail {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid #eee;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.thumbnail:hover,
.thumbnail.active {
  border-color: var(--color-principal);
  box-shadow: 0 0 5px var(--color-sombra);

}

/* ==== Botón para volver a la tienda ==== */
.btn-volver-tienda {
  background: none;
  border: none;
  color: #555;
  font-weight: 600;
  cursor: pointer;
  margin-bottom: 15px;
  padding: 0;
  font-size: 0.9rem;
}

/* ==== Información y acciones del producto ==== */
.producto-info-detalle h2 {
  margin: 0 0 10px;
  font-size: 1.8rem;
  font-weight: 700;
  color: #333;
  line-height: 1.2;
}

.producto-precio-detalle {
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--color-principal);
  margin-bottom: 15px;
}

.producto-descripcion {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #555;
  margin-bottom: 25px;
}

/* ==== Opciones de talla/color, etc ==== */
.producto-opciones {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 25px;
  background: #f8f9fa;
  padding: 20px;
  border-radius: 10px;
}

.opcion-grupo {
  display: flex;
  align-items: center;
  gap: 15px;
}

.opcion-grupo label {
  font-weight: 600;
  font-size: 0.9rem;
}

.opcion-grupo select {
  padding: 8px;
  border-radius: 8px;
  border: 1px solid #ddd;
  flex-grow: 1;
}

/* ==== Botón agregar al carrito ==== */
.btn-agregar-carrito {
  width: 100%;
  padding: 14px;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  background-color: var(--color-primario-rosa);
  color: #FFFFFF;
  /* texto oscuro */
  border: none;
  /* elimina border previo si existe */
  transition: background 0.3s, color 0.3s;
}

.btn-agregar-carrito:hover {
  background-color: var(--color-primario-morado);
}

/* ==== Botón para abrir tabla de tallas ==== */
.btn-tabla-tallas {
  width: 100%;
  margin-top: 10px;
  background: none;
  border: none;
  color: var(--color-principal);
  text-decoration: underline;
  font-weight: 600;
  cursor: pointer;
}

/* ==== Productos relacionados al final del detalle ==== */
.productos-relacionados {
  background: var(--color-principal);
  padding: 50px 20px;
  margin-top: 50px;
  border-radius: 15px;
}

.productos-relacionados .section-title h2::after {
  background: var(--color-primario-morado);
}

.productos-relacionados .product {
  background: #fff;
}

/* ===================================================================
    14. MEDIA QUERIES RESPONSIVE
=================================================================== */

/* ============================
   Tablet hasta 992px
============================ */
@media (max-width: 992px) {
  .tienda-layout {
    grid-template-columns: 240px 1fr;
    gap: 30px;
  }

  #tienda .product-gallery {
    grid-template-columns: repeat(2, 1fr);
  }

  .producto-detalle-container {
    gap: 25px;
  }
}

/* ============================
   Móvil hasta 768px
============================ */
@media (max-width: 768px) {

  /* ==== Header compacto para móvil ==== */
  header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 65px;
    padding: 0 15px;
  }

  header h1 {
    font-size: 1.8rem;
  }

  header p,
  header #Logo,
  .header-icons {
    display: none;
  }

  .header-mobile-right {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .header-mobile-right a svg {
    fill: #fff;
    width: 22px;
    height: 22px;
  }

  header .hamburger {
    display: block !important;
    cursor: pointer;
    color: #fff;
    background: none;
    border: none;
    padding: 0;
    z-index: 2001;
    font-size: 1.8rem;
    opacity: 1;
    transition: opacity 0.3s;
  }

  #compact-header .compact-header-left {
    display: block;
  }

  #compact-header .compact-header-left .hamburger {
    display: block !important;
    font-size: 1.6rem;
  }

  .desktop-menu-container,
  .dropdown-menu {
    display: none !important;
  }

  .hamburger.hidden {
    opacity: 0;
    pointer-events: none;
  }

  .testimonio {
    flex: 1 1 100%;
    max-width: 100%;
  }

  .tienda-layout {
    grid-template-columns: 1fr;
  }

  .tienda-header {
    flex-direction: column;
    gap: 15px;
    text-align: center;
  }

  /* ==== Botón filtros en móvil ==== */
  .boton-filtros-movil {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 12px;
    margin-bottom: 25px;
    font-size: 1.1rem;
    font-weight: 600;
    background: #f8f9fa;
    border: 2px solid var(--color-principal);
    color: var(--color-principal);
    border-radius: 8px;
    cursor: pointer;
  }

  /* ==== Sidebar de filtros modal en móvil ==== */
  .tienda-sidebar {
    display: none;
  }

  .tienda-sidebar.filtros-activos {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 3000;
    padding: 20px;
    animation: fadeIn 0.3s;
  }

  .tienda-sidebar.filtros-activos .filtros-content-wrapper {
    background: #fff;
    border-radius: 15px;
    padding: 25px;
    width: 100%;
    max-width: 500px;
    max-height: 85vh;
    overflow-y: auto;
    animation: slideUp 0.4s;
  }

  .tienda-sidebar.filtros-activos .cerrar-filtros-movil {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 20px;
    right: 20px;
    background: rgba(255, 255, 255, 0.8);
    border: none;
    border-radius: 50%;
    width: 35px;
    height: 35px;
    font-size: 1.5rem;
    color: #333;
    z-index: 3001;
    cursor: pointer;
    backdrop-filter: blur(2px);
  }

  @keyframes slideUp {
    from {
      transform: translateY(30px);
      opacity: 0;
    }

    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  /* ==== Galería de productos en móvil ==== */
  #tienda .product-gallery {
    grid-template-columns: 1fr;
    gap: 20px;
    justify-items: center;
  }

  #tienda .product {
    display: flex;
    align-items: center;
    text-align: left;
    gap: 15px;
  }

  #tienda .product img {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    border-radius: 8px;
  }

  #tienda .product-info {
    padding: 0;
    display: flex;
    flex-direction: column;
  }

  #tienda .product-title {
    font-size: 1.1rem;
  }

  #tienda .product-price {
    font-size: 1rem;
  }

  #tienda .product .comprar {
    font-size: 0.9rem;
    padding: 10px;
  }

  /* ==== Detalle de producto en móvil ==== */
  .producto-detalle-container {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  /* Pila las columnas */
  .footer-container {
    flex-direction: column;
    align-items: center;
    padding: 0;
    gap: 20px;
  }

  /* Expande cada columna al 100% y centra su contenido */
  .footer-column {
    width: 100%;
    max-width: 400px;
    padding: 0 15px;
    text-align: center;
  }

  /* Título */
  .footer-column h4 {
    margin-bottom: 12px;
    font-size: 1.1rem;
  }

  /* Lista: elimina restricciones de altura y añade algo de espacio */
  .footer-column ul {
    max-height: none !important;
    overflow: visible !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0;
    margin: 0;
    list-style: none;
  }

  .footer-column ul li {
    margin: 0;
  }

  .footer-column ul li a {
    display: block;
    padding: 6px 0;
    font-size: 0.95rem;
    color: #555;
    transition: color 0.2s;
  }

  .footer-column ul li a:hover {
    color: var(--color-principal);
  }

  /* ==== Blog en columna única ==== */
  .blog-grid {
    grid-template-columns: 1fr;
  }

  /* ==== Tarjetas de contenido con margen ==== */
  .content-card {
    margin: 20px 15px;
    padding: 20px;
  }
}

/* ============================
   Desktop (desde 769px)
============================ */
@media (min-width: 769px) {

  header .hamburger,
  #sidebar,
  .header-mobile-right,
  #compact-header .compact-header-left {
    display: none !important;
  }

  .desktop-menu-container {
    display: flex !important;
    align-items: center;
  }

  .hamburger-desktop {
    display: block !important;
  }

  header {
    padding: 20px 40px;
    text-align: left;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }

  header h1 {
    font-size: 2.2rem;
    margin: 0;
    flex: 1;
    text-align: left;
  }

  .header-icons {
    display: flex;
  }

  nav:not(#sidebar) {
    display: flex;
  }

  #compact-header .compact-header-center {
    justify-content: flex-start;
    flex-grow: 1;
  }

  #compact-header .compact-header-right {
    display: flex;
    align-items: center;
    gap: 15px;
  }

  #compact-header .compact-header-center a {
    color: #fff;
  }
}

/* ===================================================================
    15. UTILIDADES Y AJUSTES VARIOS
=================================================================== */
/* ==== Esconde elementos de huellas (decorativo, no usado) ==== */


/* ==== Animaciones personalizadas ==== */
@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* ===================================================================
    DISEÑO DE LA SECCIÓN INICIO / HOME (HERO, GALERÍA, VALORES, CATEGORÍAS)
=================================================================== */

/* ===================================================================
   SECCIÓN INICIO / HOME – HERO (TEXTO + IMAGEN IGUAL ALTURA, FONDO BLANCO, SOMBRA)
=================================================================== */
.hero-banner {
  display: flex;
  gap: 30px;
  /* separación entre paneles */
  align-items: stretch;
  /* igual altura */
  max-width: 1400px;
  margin: 20px auto;
}

.hero-content,
.hero-image {
  flex: 1;
  /* ocupan 50% cada uno */
  background: var(--color-fondo);
  /* blanco */
  border-radius: 12px;
  box-shadow: 0 8px 20px var(--color-sombra);

  overflow: hidden;
  /* recorta bordes redondeados */
}

/* ==== Contenido textual ==== */
.hero-content {
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}

.hero-content h2,
.hero-content p {
  margin-bottom: 20px;
  color: var(--color-texto);
  text-shadow: none;
}

/* ==== Botón principal ==== */
.hero-button {
  display: inline-block;
  padding: 15px 30px;
  background: var(--color-principal);
  color: #FFFFFF;
  border-radius: 50px;
  box-shadow: 0 4px 8px var(--color-sombra);

  text-decoration: none;
  font-weight: 700;
  transition: background 0.3s, transform 0.2s;
  margin-top: 20px;
  text-align: center;
}

.hero-button:hover {
  background: var(--color-principal-oscuro);
  color: #fff;
  transform: translateY(-2px);
}

/* ==== Panel de imagen ==== */
.hero-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* ocupa todo sin deformar */
  object-position: center;
  display: block;
}

/* Responsivo: ajusta altura en móvil */
@media (max-width: 768px) {
  .hero-banner {
    flex-direction: column;
  }

  .hero-image {
    height: 250px;
  }
}

/* ------------------ SEPARADORES DE SECCIÓN (Títulos) --------------------- */
.section-title {
  text-align: center;
  margin: 38px 0 0px;
}

.section-title h2 {
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 1px;
  position: relative;
  margin: 0;
  display: inline-block;
  line-height: 1.2;
}

.section-title h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  margin: 8px auto 0;
  border-radius: 2px;
}

/* --------------- GALERÍA DE NUEVOS PRODUCTOS ----------------------------- */
.new-products-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 25px;
  padding: 20px;
  max-width: 1200px;
  margin: 0 auto;
  justify-items: center;
}

.product-circle {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;

  border-radius: 12px;
  background-color: #F8F8F8;
  box-shadow: 0 4px 8px var(--color-sombra);

  overflow: hidden;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  padding-bottom: 25px;
  box-sizing: border-box;
  position: relative;
}

.product-circle:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 16px var(--color-sombra);

}

.product-circle img {
  width: 100%;
  object-fit: cover;
  border-radius: 12px 12px 0 0;
}

.product-circle p {
  position: absolute;
  bottom: 0;
  width: 100%;
  background: #F8F8F8;
  color: #333;
  font-size: 0.95rem;
  padding: 10px 0;
  margin: 0;
  font-weight: 600;
  border-top: 1px solid #eee;
  text-align: center;
  opacity: 1;
}

@media (min-width: 769px) {
  .new-products-gallery {
    height: 250px;

  }

  .new-products-gallery {

    grid-template-columns: repeat(6, 1fr);


  }

}

@media (max-width: 768px) {
  .new-products-gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .product-circle {
    width: 100%;
    height: auto;
    border-radius: 15px;
  }

  .product-circle img {
    height: 180px;
    border-radius: 15px 15px 0 0;
  }

  .product-circle p {
    font-size: 1rem;
  }
}

/* ----------------- ¿CÓMO LO HACEMOS EN FIBY DOG? ------------------------- */
.how-we-do-container {
  display: flex;
  flex-direction: column;
  max-width: 1200px;
  margin: 50px auto;
  padding: 20px;
  gap: 30px;
  background: var(--cool-3);
  border-radius: 15px;
  box-shadow: 0 4px 15px var(--color-sombra);

}

.how-we-do-content {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 2;
}

.how-we-do-item {
  background: #fff;
  padding: 25px;
  border-radius: 10px;
  box-shadow: 0 2px 10px var(--color-sombra);

  text-align: center;
}

.how-we-do-item h3 {
  font-size: 1.4rem;
  margin-bottom: 10px;
  font-weight: 700;
}

.how-we-do-item p {
  font-size: 1rem;
  color: #555;
  margin: 0;
  text-align: center;
  padding: 0;
}

.how-we-do-image-wrapper {
  width: 100%;
  height: 300px;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 4px 10px var(--color-sombra);

}

.how-we-do-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 10px;
}

@media (min-width: 769px) {
  .how-we-do-container {
    flex-direction: row;
    padding: 40px;
  }

  .how-we-do-content {
    flex-direction: row;
  }

  .how-we-do-item {
    flex: 1;
  }

  .how-we-do-image-wrapper {
    flex: 1;
    height: 350px;
  }
}

@media (max-width: 768px) {
  .how-we-do-item h3 {
    font-size: 1.2rem;
  }

  .how-we-do-item p {
    font-size: 0.9rem;
  }

  .how-we-do-image-wrapper {
    height: 200px;
  }
}

/* ----------------- POR QUÉ FIBY DOG (Valores) ---------------------------- */
.why-fiby-dog-grid {
  display: flex;
  flex-direction: column;
  gap: 25px;
  padding: 20px;
  max-width: 1200px;
  margin: 50px auto;
}

.why-fiby-dog-item {
  background: #fff;
  border-radius: 15px;
  box-shadow: 0 4px 15px var(--color-sombra);

  overflow: hidden;
  text-align: center;
  padding-bottom: 20px;
}

.why-fiby-dog-image-wrapper {
  width: 100%;
  height: 200px;
  overflow: hidden;
  border-radius: 15px 15px 0 0;
  margin-bottom: 15px;
}

.why-fiby-dog-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.why-fiby-dog-item h3 {
  font-size: 1.5rem;
  margin: 0 0 10px;
}

.why-fiby-dog-item p {
  font-size: 1rem;
  color: #555;
  margin: 0 20px;
  text-align: center;
  padding: 0;
}

@media (min-width: 769px) {
  .why-fiby-dog-grid {
    flex-direction: row;
    justify-content: space-around;
    align-items: flex-start;
    padding: 30px;
  }

  .why-fiby-dog-item {
    flex: 1;
    max-width: 30%;
  }

  .why-fiby-dog-image-wrapper {
    height: 200px;
  }
}

@media (max-width: 768px) {
  .why-fiby-dog-image-wrapper {
    height: 150px;
  }

  .why-fiby-dog-item h3 {
    font-size: 1.3rem;
  }
}

/* ------------------- CATEGORÍAS DE LA TIENDA ----------------------------- */
.shop-categories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 25px;
  padding: 20px;
  max-width: 1200px;
  margin: 50px auto;
  justify-items: center;
}

.category-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #F8F8F8;
  border-radius: 12px;
  box-shadow: 0 4px 8px var(--color-sombra);

  overflow: hidden;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
}

.category-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 16px var(--color-sombra);

}

.category-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  object-position: center;
  border-radius: 12px 12px 0 0;
}

.category-card p {
  font-size: 1.1rem;
  font-weight: 600;
  color: #333;
  padding: 15px 10px;
  margin: 0;
  width: 100%;
  background: #fff;
}

@media (min-width: 769px) {
  .shop-categories-grid {
    grid-template-columns: repeat(4, 1fr);
    padding: 30px;
  }

  .category-card img {
    height: 200px;
  }
}

@media (max-width: 768px) {
  .shop-categories-grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 15px;
  }

  .category-card img {
    height: 150px;
  }

  .category-card p {
    font-size: 1rem;
  }
}

/* =========================================================
    SECCIÓN NOSOTROS / QUIÉNES SOMOS
========================================================= */
#nosotros {
  text-align: center;
}

#nosotros h2 {
  font-size: 1.8rem;
  font-weight: 700;
  margin: 30px 0 15px;
  text-align: center;
  position: relative;
  letter-spacing: 1px;
}

#nosotros h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  margin: 8px auto 0;
  border-radius: 2px;
}

#nosotros .nosotros-intro {
  background: #FFFFFF;
  border-radius: 15px;
  box-shadow: 0 5px 15px var(--color-sombra);

  overflow: hidden;
  margin: 30px auto;
  padding: 40px 25px;
  max-width: 1000px;
}

#nosotros .nosotros-intro p {
  max-width: 800px;
  margin: 0 auto 20px;
  font-size: 1.15rem;
  line-height: 1.5;
  color: #444;
  text-align: justify;
  padding: 0 15px;
}

.nosotros-feature-highlight {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1000px;
  margin: 50px auto;
  background-color: #FFFFFF;
  border-radius: 15px;
  box-shadow: 0 8px 25px var(--color-sombra);

  overflow: hidden;
}

.nosotros-feature-card .feature-image-wrapper {
  width: 100%;
  height: 250px;
  overflow: hidden;
}

.nosotros-feature-card .feature-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.nosotros-feature-card .feature-text-content {
  padding: 30px 25px;
  text-align: center;
}

.nosotros-feature-card .feature-text-content h3 {
  font-size: 1.6rem;
  margin-bottom: 15px;
  font-weight: 700;
}

.nosotros-feature-card .feature-text-content p {
  font-size: 1.05rem;
  color: #555;
  line-height: 1.6;
  margin: 0;
  text-align: center;
  padding: 0;
}

.nosotros-feature-highlight.reverse-layout {
  flex-direction: column;
}

/* ================================
    GALERÍA Y CARRUSEL DEL EQUIPO
================================= */
.team-member {
  background-color: #F8F8F8;
  border-radius: 12px;
  box-shadow: 0 4px 15px var(--color-sombra);

  overflow: hidden;
  text-align: center;
  padding-bottom: 20px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.team-member:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px var(--color-sombra);

}

.team-member .member-image-wrapper {
  width: 100%;
  height: 180px;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
}

.team-member .member-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.team-member h4 {
  font-size: 1.2rem;
  margin-top: 15px;
  margin-bottom: 5px;
  font-weight: 700;
}

.team-member p {
  font-size: 0.9rem;
  color: #666;
  margin: 0 10px;
  padding: 0;
}

/* ---- Carrusel horizontal del equipo (para mostrar muchos miembros) ---- */
.team-carousel-container {
  position: relative;
  max-width: 1200px;
  margin: 50px auto;
  overflow: hidden;
  padding: 0 60px;
}

.team-gallery {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: hidden;
  scroll-behavior: smooth;
  gap: 25px;
  padding-bottom: 20px;
  transition: transform 0.5s ease-in-out;
}

.team-member {
  flex: 0 0 auto;
  width: 250px;
  padding: 0;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.team-member:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 30px var(--color-sombra);

}

.team-member .member-image-wrapper {
  width: 100%;
  height: 200px;
  overflow: hidden;
  border-radius: 15px 15px 0 0;
}

.team-member .member-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.team-member h4 {
  font-size: 1.3rem;
  margin-top: 15px;
  margin-bottom: 5px;
  font-weight: 700;
  padding: 0 10px;
}

.team-member p {
  font-size: 0.95rem;
  color: #666;
  margin: 0;
  padding: 0 10px 15px;
}

/* ---- Botones de navegación del carrusel ---- */
.carousel-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 122, 94, 0.7);
  color: white;
  border: none;
  border-radius: 50%;
  width: 45px;
  height: 45px;
  font-size: 1.8rem;
  font-weight: bold;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color 0.3s ease, transform 0.2s ease;
  z-index: 20;
}

.carousel-nav-btn:hover {
  transform: translateY(-50%) scale(1.1);
}

.prev-team-btn {
  left: 10px;
}

.next-team-btn {
  right: 10px;
}

/* =========================
    VALORES DE LA MARCA
========================= */
.values-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 25px;
  padding: 20px;
  max-width: 1200px;
  margin: 50px auto;
  justify-items: center;
}

.value-item {
  box-shadow: 0 8px 25px var(--color-sombra);
  border-radius: 20px;
  padding: 30px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.value-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px var(--color-sombra);

}

.value-item img {
  width: 100% !important;
  height: 200px !important;
  border-radius: 20px;
  object-fit: cover !important;
  display: block !important;
}

.value-item h3 {
  font-size: 1.4rem;
  margin-bottom: 10px;
  font-weight: 700;
}

.value-item p {
  font-size: 0.95rem;
  color: #666;
  margin: 0;
  line-height: 1.5;
  text-align: center;
}

/* ---- MEDIA QUERIES específicas de estas secciones ---- */
@media (min-width: 769px) {
  #nosotros {
    padding: 40px 0;
  }

  .nosotros-feature-highlight {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
    width: 100%;
    max-width: 1000px;
    margin: 30px auto;
    background: #FFFFFF;
    border-radius: 15px;
    box-shadow: 0 5px 15px var(--color-sombra);

    overflow: hidden;
  }

  .nosotros-feature-highlight .feature-image-col {
    width: 100%;
    height: 300px;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .nosotros-feature-highlight .feature-image-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 15px 15px 0 0;
  }

  .nosotros-feature-highlight .feature-text-col p {
    text-align: left;
    margin: 0;
  }

  .nosotros-feature-highlight.reverse-layout {
    flex-direction: row-reverse;
  }

  .nosotros-feature-highlight.reverse-layout .feature-image-col {
    border-radius: 15px 15px 15px 15px;
  }

  .team-carousel-container {
    padding: 0 60px;
  }

  .team-member {
    width: 220px;
  }

  .team-member .member-image-wrapper {
    height: 250px;
  }

  .values-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
  }

  .value-item img {
    width: 70px;
    height: 70px;
  }
}

/* —————— Ajustes sección “Nosotros” en móvil —————— */
@media (max-width: 768px) {

  /* Contenedor padre: quita alturas fijas y apila bloques */
  .nosotros-feature-card,
  .nosotros-feature-highlight {
    display: block !important;
    height: auto !important;
    padding: 20px 15px !important;
    margin: 20px 0 !important;
  }

  /* Wrapper de imagen: ancho completo, altura automática */
  .nosotros-feature-card .feature-image-wrapper,
  .nosotros-feature-highlight .feature-image-col {
    width: 100% !important;
    height: auto !important;
    overflow: hidden !important;
    margin-bottom: 15px !important;
  }

  /* La imagen: ancho 100%, altura proporcional */
  .nosotros-feature-card .feature-image-wrapper img,
  .nosotros-feature-highlight .feature-image-col img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    display: block !important;
  }

  .nosotros-feature-card .feature-text-content,
  .nosotros-feature-highlight .feature-text-col {
    width: 100% !important;
    padding: 0 !important;
    text-align: left !important;
  }
}

/* ===================================================================
   ESPACIADO UNIFORME PARA TODAS LAS SECCIONES
=================================================================== */
section {
  display: none;
  /* ya tenías esto */
  padding: 40px 15px;
  /* 40px arriba/abajo, 15px izquierda/derecha */
  background: var(--color-fondo);
}

section.active {
  display: block;
}

/* =================================================
   Button-secondary con mismo diseño que .hero-button
   ================================================= */
.button-secondary {
  display: inline-block;
  padding: 15px 30px;
  /* mismo acolchado */
  margin: 20px 0;
  /* mismo espacio vertical */
  background: var(--color-principal);
  /* igual fondo rosa */
  color: #FFFFFF;
  /* texto blanco */
  border-radius: 50px;
  /* esquinas redondeadas iguales */
  box-shadow: 0 4px 8px var(--color-sombra);
  /* misma sombra */
  text-decoration: none;
  /* quita subrayado */
  font-weight: 700;
  /* mismo grosor */
  text-align: center;
  /* centra el texto */
  transition: background 0.3s, transform 0.2s;
}

.button-secondary:hover {
  background: var(--color-principal-oscuro);
  /* igual tono al pasar el cursor */
  transform: translateY(-2px);
  /* mismo “elevado” al hover */
}

/* — Contenedor del logo en desktop/mobile — */
.header-logo-desktop-link {
  display: inline-flex;
  /* no ocupa todo el ancho, solo el logo */
  width: auto;
  /* ajustar al ancho del contenido */

  align-items: center;
  justify-content: flex-start;
  background-color: #fff;
  padding: 4px 8px;
  border-radius: 6px;
}


/* — Imagen del logo que reemplaza al texto — */
.header-logo-desktop {
  display: block;
  width: auto;
  margin: 0;
  /* Alturas que igualan los font‐sizes de tu h1 en cada breakpoint */
  height: 2.8rem;
  /* valor por defecto (antes h1 era 2.8rem) */
  object-fit: contain;
}

/* ==== Desktop (>=769px): el h1 pasaba a 2.2rem ==== */
@media (min-width: 769px) {
  .header-logo-desktop {
    height: 2.2rem;
  }
}

/* ==== Móvil (<=768px): el h1 bajaba a 1.8rem ==== */
@media (max-width: 768px) {
  .header-logo-desktop {
    height: 1.8rem;
  }
}

/* ========== OCULTAR MÉTODOS DE PAGO HASTA CLIC EN “Finalizar Compra” ========== */
.metodo-pago-selector {
  display: none;
}

/* ————————————————————————————————
   [fix] Sidebar del carrito: header/floor fijos, body scrollable
   ———————————————————————————————— */
.carrito-sidebar {
  display: flex;
  flex-direction: column;
  height: 100vh;
  /* ocupa toda la altura de la ventana */
}

.carrito-header,
.carrito-footer {
  flex: 0 0 auto;
  /* no crecen ni encogen */
}

.carrito-body {
  flex: 1 1 auto;
  /* ocupa el espacio restante */
  overflow-y: auto;
  /* aquí va el scroll interno */
}

/* --- Pie de carrito como flex columna --- */
.carrito-footer {
  display: flex;
  flex-direction: column;
}

/* 1) Subtotal (ya está primero por defecto, no hace falta dar order) */

/* 2) Selector de método de pago */
.carrito-footer #metodo-pago-selector {
  order: 2;
  margin: 15px 0;
  /* un poco de separación */
}

/* 3) Contenedores de SDK (PayPal, MercadoPago, OXXO...) */
.carrito-footer #paypal-button-container,
.carrito-footer #checkout-api-form-container,
.carrito-footer #formulario-pago,
.carrito-footer #info-oxxo {
  order: 3;
  margin-bottom: 15px;
}

/* 4) Botones: mantenerlos juntos y abajo */
.carrito-footer .btn-finalizar-compra,
.carrito-footer .btn-seguir-comprando {
  order: 4;
}

/* Un poco de espacio entre los dos botones */
.carrito-footer .btn-finalizar-compra {
  margin-bottom: 8px;
}

/* ==== Ajuste de altura y estilo de los MP‐fields ==== */
#checkout-api-form-container .container {
  background: #fff !important;
  /* mismo fondo blanco */
  border: 1px solid #ddd !important;
  /* mismo borde gris */
  border-radius: 8px !important;
  /* mismo radio de esquina */
  box-sizing: border-box;
  display: flex !important;
  /* para centrar el iframe */
  align-items: center !important;
  padding: 0 15px !important;
  /* igual padding horizontal */
  height: 44px !important;
  /* fuerza la misma altura que tus inputs */
  min-height: 44px !important;
  margin-bottom: 20px
}

/* El iframe que monta Mercado Pago ocupará todo el contenedor */
#checkout-api-form-container .container iframe {
  width: 100% !important;
  height: 100% !important;
  background: transparent !important;
}

/* Opcional: si no quieres espacio tras el último campo, resetea su margin */
#checkout-api-form-container .container:last-child {
  margin-bottom: 0 !important;
}

/* 1) contenedor de los dos botones siempre abajo */
.carrito-footer {
  display: flex;
  flex-direction: column;
}

/* 2) este wrapper se empuja hacia abajo */
.carrito-footer .action-buttons {
  margin-top: auto;
  order: 4;
  /* asegúrate de que sea el último */
  display: flex;
  flex-direction: column;
  gap: 8px;
  /* espacio entre botones */
}

/* 3) botones toman todo el ancho y mantienen tu estilo */
.carrito-footer .action-buttons .btn-finalizar-compra,
.carrito-footer .action-buttons .btn-seguir-comprando {
  width: 100%;
  /* si quieres puedes ajustar aquí padding/márgenes */
}

/* 4) Opcional: elimina cualquier order que tuvieran antes */
.carrito-footer .btn-finalizar-compra,
.carrito-footer .btn-seguir-comprando {
  order: 0;
}

.carrito-footer {
  /* añadimos un padding-bottom extra para que siempre haya espacio bajo los botones */
  padding-bottom: 20px;
}

.botones-footer {
  /* mantenemos el mismo gap/espaciado que tenías arriba del botón */
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  /* ajusta si quieres más o menos separación entre los dos botones */
}

/* ===========================
   MODAL DE ENVÍO (OVERLAY)
   =========================== */

/* Evita scroll del body cuando esté activo */
body.no-scroll {
  overflow: hidden;
}

/* Fondo oscuro traslúcido que cubre toda la pantalla */
#envio-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  /* encima de sidebar/carrito */
  display: none;
  /* se muestra con .active */
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 24px;
}

/* Mostrar cuando está activo */
#envio-overlay.active {
  display: flex;
}

/* Caja del modal */
.envio-modal {
  width: min(680px, 94vw);
  max-height: 90vh;
  /* límite de altura */
  background: #fff;
  /* fondo claro */
  color: #333;
  /* texto oscuro */
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Header del modal */
.envio-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1px 18px;
  border-bottom: 1px solid #ddd;
  background: #f8f9fa;
}

.envio-title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
}

/* Botón de cierre (X) */
.envio-close {
  appearance: none;
  border: none;
  background: transparent;
  font-size: 1.5rem;
  cursor: pointer;
  line-height: 1;
  color: #666;
  transition: color .15s, transform .15s;
}

.envio-close:hover {
  color: var(--color-primario-rosa);
  transform: scale(1.1);
}

/* Cuerpo con scroll si es necesario */
.envio-body {
  flex: 1;
  min-height: 0;
  /* 👈 evita que se expanda infinito */
  overflow-y: auto;
  /* scroll interno */
  padding: 18px;
}

/* Formulario */
#form-envio {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 16px;
}

#form-envio label {
  font-size: .9rem;
  color: #333;
  font-weight: 600;
}

#form-envio input[type="text"],
#form-envio input[type="email"],
#form-envio input[type="tel"] {
  width: 100%;
  height: 44px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #ccc;
  background: #f9f9f9;
  color: #333;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}

#form-envio input:focus {
  border-color: var(--color-primario-rosa);
  box-shadow: 0 0 0 3px rgba(214, 0, 110, .2);
}

/* Botón Continuar */
#form-envio button[type="submit"] {
  grid-column: 1 / -1;
  height: 46px;
  border-radius: 8px;
  border: 0;
  cursor: pointer;
  background: var(--color-primario-rosa);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  transition: background .2s, transform .15s;
}

#form-envio button[type="submit"]:hover {
  background: var(--color-primario-morado);
  transform: translateY(-2px);
}

/* Campos que ocupan toda la fila */
#nombre,
#email,
#telefono,
#calle,
#colonia,
#referencia {
  grid-column: 1 / -1;
}

/* Scrollbar más discreto */
.envio-body::-webkit-scrollbar {
  width: 10px;
}

.envio-body::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, .25);
  border-radius: 8px;
}

/* Responsive */
@media (max-width: 640px) {
  #form-envio {
    grid-template-columns: 1fr;
    /* una sola columna en móvil */
  }
}

/*
================
REVISAR ESTILOS
================
*/
/* ===========================
   [13] TARIFAS DE ENVÍO
   =========================== */
/* ====== Tarjetas individuales de tarifas ====== */
#ratesContainer {
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
}

/* Cada tarifa como tarjeta separada */
#ratesContainer .rate-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  /* separación entre tarjetas */
  padding: 14px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fafafa;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  transition: transform .2s ease, box-shadow .2s ease;
}

/* Efecto hover sutil */
#ratesContainer .rate-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Título arriba */
#ratesContainer .rate-title {
  font-weight: 600;
  font-size: 16px;
  margin: 12px 0 8px;
  color: #0f172a;
}


/* ====== Botones uniformes dentro de las tarjetas de tarifas ====== */
#ratesContainer .btn-elegir-rate {
  width: 110px;
  /* ancho fijo uniforme */
  height: 38px;
  /* alto fijo uniforme */
  min-width: 110px;
  border: none;
  border-radius: 10px;
  background: #D6006E;
  /* color original */
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  transition: background .2s ease, transform .15s ease;
}

#ratesContainer .btn-elegir-rate:hover {
  background: #843E98;
  /* tono al pasar */
  transform: translateY(-1px);
}

/* En pantallas pequeñas, ajusta ligeramente el tamaño */
@media (max-width: 480px) {
  #ratesContainer .btn-elegir-rate {
    width: 100px;
    height: 36px;
    font-size: 13.5px;
  }
}

/* ==== [13.1] RECOMENDADOS (debajo del detalle) ==== */
.recomendados-section {
  margin: 30px auto 0;
  max-width: 1100px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 15px var(--color-sombra);
  padding: 18px 14px;
}

.recomendados-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 6px 8px;
  border-bottom: 2px solid #eee;
}

.recomendados-header h3 {
  margin: 0;
  font-size: 1.3rem;
  color: var(--color-principal);
  font-weight: 700;
}

.reco-nav {
  display: flex;
  gap: 8px;
}

.reco-btn {
  border: 1px solid var(--color-gris-claro);
  background: #fff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.2rem;
  line-height: 1;
  transition: background .2s, transform .2s;
}

.reco-btn:hover {
  background: #f8f9fa;
  transform: translateY(-1px);
}

/* Pista horizontal con scroll suave */
.recomendados-carousel {
  overflow: hidden;
  padding: 12px 4px 4px;
}

.recomendados-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(180px, 1fr);
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: 8px;
}

.recomendados-track::-webkit-scrollbar {
  height: 8px;
}

.recomendados-track::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, .25);
  border-radius: 8px;
}

/* Tarjeta de recomendado (mismo look que .product) */
.reco-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px var(--color-sombra);
  padding: 12px;
  text-align: center;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s;
  scroll-snap-align: start;
}

.reco-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 25px var(--color-sombra);
}

.reco-card img {
  width: 100%;
  height: 140px;
  object-fit: contain;
  border-radius: 8px;
  background: #fff;
  margin-bottom: 10px;
}

.reco-title {
  font-size: 1rem;
  color: var(--color-texto);
  margin: 0 0 6px;
  font-weight: 600;
}

.reco-price {
  color: var(--color-principal);
  font-weight: 700;
  margin: 0 0 8px;
}

.reco-add {
  display: inline-block;
  padding: 8px 12px;
  background: var(--color-principal);
  color: #fff;
  border-radius: 8px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s;
}

.reco-add:hover {
  background: var(--color-principal-oscuro);
}

/* Responsive */
@media (max-width: 768px) {
  .recomendados-track {
    grid-auto-columns: 70%;
  }

  /* tarjetas más grandes en móvil */
  .reco-card img {
    height: 120px;
  }
}

/* =========================== */
/* MODAL - TABLA DE TALLAS     */
/* =========================== */

.tallas-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  /* se muestra con .active */
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 16px;
}

.tallas-overlay.active {
  display: flex;
}

.tallas-modal {
  width: min(780px, 96vw);
  max-height: 92vh;
  background: #fff;
  color: #333;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* header fijo + body con scroll */
}

.tallas-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #eee;
  background: #f8f9fa;
}

.tallas-header h2 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: #333;
}

.tallas-close {
  appearance: none;
  border: 0;
  background: transparent;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  color: #666;
  transition: color .15s, transform .15s;
}

.tallas-close:hover {
  color: var(--color-primario-rosa);
  transform: scale(1.06);
}

.tallas-body {
  flex: 1 1 auto;
  min-height: 0;
  /* evita expansión infinita */
  overflow-y: auto;
  padding: 12px 16px 16px;
}

.tallas-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  border: 1px solid #eee;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}

.tallas-note {
  margin: 10px 2px 0;
  font-size: .9rem;
  color: #666;
}

/* — Móvil: modal más “lleno de pantalla” para lectura cómoda — */
@media (max-width: 640px) {
  .tallas-modal {
    width: 100%;
    max-height: 96vh;
    border-radius: 14px;
  }

  .tallas-header {
    padding: 10px 14px;
  }

  .tallas-header h2 {
    font-size: 1rem;
  }

  .tallas-close {
    font-size: 1.5rem;
  }

  .tallas-body {
    padding: 10px 14px 14px;
  }
}

/* ESTILOS PARA EL LETRERO DE HALLOWEEN */

.halloween-sign {
  background: linear-gradient(135deg, #2d1810 0%, #4a2a1a 50%, #2d1810 100%);
  border: 6px solid #8b4513;
  border-radius: 15px;
  padding: 40px 60px;
  box-shadow:
    0 0 30px rgba(255, 102, 0, 0.4),
    0 0 60px rgba(138, 43, 226, 0.2),
    inset 0 0 20px rgba(0, 0, 0, 0.5),
    0 15px 40px rgba(0, 0, 0, 0.4);
  position: relative;
  display: block;
  animation: signFloat 3s ease-in-out infinite;
  cursor: pointer;
  transition: transform 0.1s;
  margin: 40px auto;
  width: auto;
  min-width: 500px;
}

/* Efecto de cuerda/cadena en la parte superior */
.halloween-sign::before {
  content: '';
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 20px;
  background: linear-gradient(to bottom, #666 0%, #333 100%);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

@keyframes signFloat {

  0%,
  100% {
    transform: translateY(0px) rotate(0deg);
  }

  25% {
    transform: translateY(-8px) rotate(1deg);
  }

  50% {
    transform: translateY(-12px) rotate(0deg);
  }

  75% {
    transform: translateY(-8px) rotate(-1deg);
  }
}

.pumpkin-left,
.pumpkin-right {
  position: absolute;
  font-size: 45px;
  top: -22px;
  animation: pumpkinGlow 2s ease-in-out infinite;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.3));
  z-index: 10;
}

.pumpkin-left {
  left: -22px;
}

.pumpkin-right {
  right: -22px;
}

@keyframes pumpkinGlow {

  0%,
  100% {
    filter: brightness(1) drop-shadow(0 3px 6px rgba(0, 0, 0, 0.3));
  }

  50% {
    filter: brightness(1.5) drop-shadow(0 0 15px orange) drop-shadow(0 3px 6px rgba(0, 0, 0, 0.3));
  }
}

.halloween-sign .title {
  font-size: 68px;
  color: #ff6600;
  text-shadow:
    0 0 10px #ff6600,
    0 0 20px #ff6600,
    0 0 30px #ff3300,
    3px 3px 0 #000,
    -1px -1px 0 #000;
  margin-bottom: 10px;
  animation: flicker 3s infinite;
  letter-spacing: 4px;
  text-align: center;
  font-family: 'Arial Black', sans-serif;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

@keyframes flicker {

  0%,
  18%,
  22%,
  25%,
  53%,
  57%,
  100% {
    text-shadow:
      0 0 10px #ff6600,
      0 0 20px #ff6600,
      0 0 30px #ff3300,
      3px 3px 0 #000,
      -1px -1px 0 #000;
  }

  20%,
  24%,
  55% {
    text-shadow:
      0 0 5px #ff6600,
      3px 3px 0 #000,
      -1px -1px 0 #000;
  }
}

.halloween-sign .subtitle {
  font-size: 22px;
  color: #9d4edd;
  text-shadow:
    0 0 10px #9d4edd,
    0 0 20px #9d4edd,
    2px 2px 0 #000,
    -1px -1px 0 #000;
  text-align: center;
  margin-bottom: 20px;
  animation: pulse 2s ease-in-out infinite;
  font-family: 'Arial Black', sans-serif;
  font-weight: 700;
  white-space: nowrap;
}

@keyframes pulse {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }
}

.halloween-sign .icons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  font-size: 40px;
}

.halloween-sign .icon {
  animation: bounce 2s ease-in-out infinite;
  cursor: pointer;
  transition: transform 0.3s;
  filter: drop-shadow(3px 3px 4px rgba(0, 0, 0, 0.5));
}

.halloween-sign .icon:nth-child(1) {
  animation-delay: 0s;
}

.halloween-sign .icon:nth-child(2) {
  animation-delay: 0.2s;
}

.halloween-sign .icon:nth-child(3) {
  animation-delay: 0.4s;
}

.halloween-sign .icon:nth-child(4) {
  animation-delay: 0.6s;
}

.halloween-sign .icon:hover {
  transform: scale(1.4) rotate(360deg);
}

@keyframes bounce {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-12px);
  }
}

.bat {
  position: absolute;
  font-size: 28px;
  animation: flyAround 8s linear infinite;
  pointer-events: none;
  filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, 0.3));
  z-index: 5;
}

@keyframes flyAround {
  0% {
    left: 0%;
    top: 10%;
  }

  50% {
    left: 98%;
    top: 70%;
  }

  100% {
    left: 5%;
    top: 10%;
  }
}

@keyframes shake {

  0%,
  100% {
    transform: translateX(0) translateY(0) rotate(0deg);
  }

  10% {
    transform: translateX(-12px) translateY(-6px) rotate(-3deg);
  }

  20% {
    transform: translateX(12px) translateY(6px) rotate(3deg);
  }

  30% {
    transform: translateX(-12px) translateY(-6px) rotate(-3deg);
  }

  40% {
    transform: translateX(12px) translateY(6px) rotate(3deg);
  }

  50% {
    transform: translateX(-12px) translateY(-6px) rotate(-3deg);
  }

  60% {
    transform: translateX(12px) translateY(6px) rotate(3deg);
  }

  70% {
    transform: translateX(-10px) translateY(-5px) rotate(-2deg);
  }

  80% {
    transform: translateX(6px) translateY(4px) rotate(2deg);
  }

  90% {
    transform: translateX(-6px) translateY(-4px) rotate(-1deg);
  }
}

@keyframes explode {
  0% {
    opacity: 1;
    transform: translate(0, 0) scale(1) rotate(0deg);
  }

  100% {
    opacity: 0;
    transform: translate(var(--tx), var(--ty)) scale(0.5) rotate(360deg);
  }
}

@keyframes flashBorder {

  0%,
  100% {
    border-color: #8b4513;
    box-shadow:
      0 0 30px rgba(255, 102, 0, 0.4),
      0 0 60px rgba(138, 43, 226, 0.2),
      inset 0 0 20px rgba(0, 0, 0, 0.5),
      0 15px 40px rgba(0, 0, 0, 0.4);
  }

  25% {
    border-color: #ff6600;
    box-shadow:
      0 0 60px rgba(255, 102, 0, 0.9),
      0 0 90px rgba(255, 102, 0, 0.6),
      inset 0 0 30px rgba(255, 102, 0, 0.3),
      0 15px 40px rgba(0, 0, 0, 0.4);
  }

  50% {
    border-color: #9d4edd;
    box-shadow:
      0 0 60px rgba(157, 78, 221, 0.9),
      0 0 90px rgba(157, 78, 221, 0.6),
      inset 0 0 30px rgba(157, 78, 221, 0.3),
      0 15px 40px rgba(0, 0, 0, 0.4);
  }

  75% {
    border-color: #ff6600;
    box-shadow:
      0 0 60px rgba(255, 102, 0, 0.9),
      0 0 90px rgba(255, 102, 0, 0.6),
      inset 0 0 30px rgba(255, 102, 0, 0.3),
      0 15px 40px rgba(0, 0, 0, 0.4);
  }
}

.particle {
  position: absolute;
  pointer-events: none;
  z-index: 100;
  animation: explode 1s ease-out forwards;
}

/* ============================================
   RESPONSIVE PARA DIFERENTES RESOLUCIONES
   ============================================ */

/* Pantallas extra grandes (1920px+) */
@media (min-width: 1920px) {
  .halloween-sign {
    min-width: 650px;
    padding: 50px 70px;
  }

  .halloween-sign .title {
    font-size: 80px;
    letter-spacing: 6px;
  }

  .halloween-sign .subtitle {
    font-size: 26px;
  }

  .halloween-sign .icons {
    font-size: 45px;
    gap: 25px;
  }
}

/* Pantallas grandes (1200px - 1919px) */
@media (min-width: 1200px) and (max-width: 1919px) {
  .halloween-sign {
    min-width: 550px;
    padding: 40px 60px;
  }

  .halloween-sign .title {
    font-size: 68px;
    letter-spacing: 4px;
  }

  .halloween-sign .subtitle {
    font-size: 22px;
  }

  .halloween-sign .icons {
    font-size: 40px;
  }
}

/* Tablets landscape y pantallas medianas (992px - 1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
  .halloween-sign {
    min-width: 480px;
    padding: 35px 50px;
  }

  .halloween-sign .title {
    font-size: 56px;
    letter-spacing: 3px;
  }

  .halloween-sign .subtitle {
    font-size: 19px;
  }

  .halloween-sign .icons {
    font-size: 35px;
    gap: 18px;
  }

  .pumpkin-left,
  .pumpkin-right {
    font-size: 38px;
    top: -19px;
  }

  .pumpkin-left {
    left: -19px;
  }

  .pumpkin-right {
    right: -19px;
  }
}

/* Tablets portrait (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
  .halloween-sign {
    min-width: 420px;
    padding: 30px 45px;
    margin: 30px auto;
  }

  .halloween-sign .title {
    font-size: 48px;
    letter-spacing: 2px;
  }

  .halloween-sign .subtitle {
    font-size: 17px;
    margin-bottom: 18px;
  }

  .halloween-sign .icons {
    font-size: 32px;
    gap: 15px;
  }

  .pumpkin-left,
  .pumpkin-right {
    font-size: 35px;
    top: -17px;
  }

  .pumpkin-left {
    left: -17px;
  }

  .pumpkin-right {
    right: -17px;
  }
}

/* Móviles grandes (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
  .halloween-sign {
    min-width: auto;
    width: 90%;
    max-width: 380px;
    padding: 25px 35px;
    margin: 25px auto;
    border: 5px solid #8b4513;
  }

  .halloween-sign::before {
    top: -18px;
    height: 18px;
  }

  .halloween-sign .title {
    font-size: 40px;
    letter-spacing: 2px;
  }

  .halloween-sign .subtitle {
    font-size: 15px;
    margin-bottom: 15px;
  }

  .halloween-sign .icons {
    font-size: 28px;
    gap: 12px;
  }

  .pumpkin-left,
  .pumpkin-right {
    font-size: 30px;
    top: -15px;
  }

  .pumpkin-left {
    left: -15px;
  }

  .pumpkin-right {
    right: -15px;
  }

  .bat {
    font-size: 22px;
  }
}

/* Móviles pequeños (menos de 576px) */
@media (max-width: 575px) {
  .halloween-sign {
    min-width: auto;
    width: 85%;
    max-width: 340px;
    padding: 20px 30px;
    margin: 20px auto;
    border: 4px solid #8b4513;
  }

  .halloween-sign::before {
    top: -15px;
    height: 15px;
    width: 2px;
  }

  .halloween-sign .title {
    font-size: 34px;
    letter-spacing: 1px;
  }

  .halloween-sign .subtitle {
    font-size: 13px;
    margin-bottom: 12px;
  }

  .halloween-sign .icons {
    font-size: 24px;
    gap: 10px;
  }

  .pumpkin-left,
  .pumpkin-right {
    font-size: 26px;
    top: -13px;
  }

  .pumpkin-left {
    left: -13px;
  }

  .pumpkin-right {
    right: -13px;
  }

  .bat {
    font-size: 18px;
  }
}

/* Móviles muy pequeños (menos de 400px) */
@media (max-width: 399px) {
  .halloween-sign {
    min-width: auto;
    width: 90%;
    max-width: 300px;
    padding: 18px 25px;
    margin: 15px auto;
  }

  .halloween-sign .title {
    font-size: 28px;
    letter-spacing: 0.5px;
  }

  .halloween-sign .subtitle {
    font-size: 11px;
    margin-bottom: 10px;
  }

  .halloween-sign .icons {
    font-size: 20px;
    gap: 8px;
  }

  .pumpkin-left,
  .pumpkin-right {
    font-size: 22px;
    top: -11px;
  }

  .pumpkin-left {
    left: -11px;
  }

  .pumpkin-right {
    right: -11px;
  }
}

/* ====== Layout 2 columnas para el hero ====== */
#halloween-hero .halloween-hero-grid {
  max-width: 1400px;
  margin: 10px auto 30px;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  /* letrero más estrecho */
  gap: 24px;
  align-items: center;
  padding: 0 12px;
}

/* compactar letrero dentro del grid (manteniendo su estilo) */
#halloween-hero .halloween-sign {
  width: 100%;
  min-width: 0;
  /* anula el min-width grande */
  padding: 28px 40px;
  /* más compacto */
  margin: 0;
  /* quita márgenes externos */
}

/* ====== Marco de la foto con el mismo look del banner ====== */
#halloween-hero .hero-photo {
  position: relative;
  margin: 0;
  border: 6px solid #8b4513;
  /* mismo marco */
  border-radius: 15px;
  overflow: hidden;
  background: linear-gradient(135deg, #2d1810 0%, #4a2a1a 50%, #2d1810 100%);
  box-shadow:
    0 0 30px rgba(255, 102, 0, .40),
    0 0 60px rgba(138, 43, 226, .20),
    inset 0 0 20px rgba(0, 0, 0, .50),
    0 15px 40px rgba(0, 0, 0, .40);
  /* igual que el letrero */
  aspect-ratio: 4 / 3;
  /* proporción agradable; se adapta */
  display: flex;
}

/* imagen dentro del marco */
#halloween-hero .hero-photo>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* llena el marco sin deformarse */
  object-position: center;
  filter: saturate(1.02) contrast(1.02);
}

/* brillo suave en bordes internos para unir estilos */
#halloween-hero .hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 60px rgba(255, 102, 0, .20),
    inset 0 0 90px rgba(157, 78, 221, .12);
  border-radius: inherit;
}

/* ===========================================================
   BANNER HALLOWEEN FINAL 🎃 (imagen al borde y sin bandas)
=========================================================== */

#halloween-hero {
  display: flex;
  justify-content: center;
  padding: 40px 0;
  background: transparent;
}

.halloween-banner {
  display: grid;
  grid-template-columns: 1.2fr 1.8fr;
  /* más horizontal */
  align-items: stretch;
  /* 🔧 estira ambas columnas a la misma altura */
  gap: 28px;

  width: min(1400px, 98vw);
  padding: 24px 30px;
  border-radius: 22px;

  background: linear-gradient(180deg, #2c160f, #3a2117 60%, #2c160f);
  border: 6px solid #8b4513;
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.45),
    inset 0 0 30px rgba(0, 0, 0, 0.35),
    0 0 60px rgba(255, 102, 0, 0.18);

  overflow: hidden;
}

/* ==================== IMAGEN ==================== */
.halloween-img-box {
  position: relative;
  border: 5px solid #8b4513;
  border-radius: 16px;
  overflow: hidden;

  background: transparent;
  /* 🔧 sin fondo para que no se vea detrás de la foto */
  box-shadow:
    inset 0 0 18px rgba(0, 0, 0, 0.35),
    0 0 35px rgba(255, 102, 0, 0.22);

  width: 100%;
  height: 100%;
  /* 🔧 ocupa toda la altura del grid */
}

.halloween-img-box img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  /* 🔧 llena sin bandas laterales/verticales */
  object-position: center;
  /* centra el recorte */
  transition: transform 0.4s ease;
}

.halloween-img-box:hover img {
  transform: scale(1.05);
}

/* ==================== LETRERO ==================== */
.halloween-sign {
  position: relative;
  border: 5px solid #8b4513;
  border-radius: 16px;
  background: radial-gradient(120% 100% at 50% 45%, #3b261c 0%, #2c160f 70%);
  box-shadow:
    inset 0 0 18px rgba(0, 0, 0, 0.35),
    0 0 35px rgba(255, 102, 0, 0.22);
  padding: 32px 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  text-align: center;
}

.sign-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 45%, rgba(255, 106, 0, 0.18), transparent 70%);
  animation: glowPulse 4s ease-in-out infinite;
}

.sign-content {
  position: relative;
  z-index: 2;
}

.sign-title {
  font-size: clamp(2rem, 3.5vw, 3.4rem);
  line-height: 1.1;
  margin: 0 0 10px;
  color: #ff6a00;
  font-weight: 800;
  text-shadow:
    0 0 10px #ff6a00,
    0 0 26px #ffae00,
    0 0 30px #ff00ff;
  animation: flicker 2.6s infinite alternate ease-in-out;
}

.sign-subtitle {
  margin: 0 0 12px;
  font-size: clamp(1.1rem, 1.6vw, 1.3rem);
  color: #fff;
  text-shadow: 0 0 10px rgba(255, 0, 255, 0.6), 0 0 18px rgba(255, 174, 0, 0.6);
}

.sign-icons {
  display: flex;
  justify-content: center;
  /* 🔧 centra horizontalmente */
  align-items: center;
  gap: 10px;
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  margin-bottom: 14px;
  width: 100%;
  /* 🔧 asegura que ocupe todo el ancho del contenedor */
  text-align: center;
}


.sign-button {
  display: inline-block;
  padding: 12px 26px;
  border-radius: 999px;
  background: #ff6a00;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  letter-spacing: 0.5px;
  box-shadow: 0 6px 18px rgba(255, 102, 0, 0.45);
  transition: transform 0.25s ease, background 0.25s ease;
}

.sign-button:hover {
  transform: translateY(-2px) scale(1.05);
  background: #ff00ff;
}

/* ==================== Animaciones ==================== */
@keyframes glowPulse {

  0%,
  100% {
    opacity: 0.7;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.04);
  }
}

@keyframes flicker {

  0%,
  18%,
  22%,
  25%,
  53%,
  57%,
  100% {
    text-shadow: 0 0 18px #ff6a00, 0 0 34px #ffae00;
  }

  20%,
  24%,
  55% {
    text-shadow: 0 0 10px #ffae00, 0 0 24px #ff00ff;
  }
}

/* ==================== Responsive ==================== */
@media (max-width: 992px) {
  .halloween-banner {
    grid-template-columns: 1fr;
    width: min(780px, 95vw);
    padding: 16px;
  }

  .halloween-img-box {
    width: 100%;
    height: auto;
    /* 🔧 deja a la imagen decidir su alto en móvil */
  }

  .halloween-img-box img {
    height: auto;
    /* 🔧 evita recortes raros al apilar */
  }

  .halloween-sign {
    min-height: auto;
    padding: 28px 30px;
  }
}

/* ============================
   HALLOWEEN EMOJI DECORATIONS
============================ */

.hx-layer {
  position: relative;
}

/* Posición base */
.hx-abs {
  position: absolute;
  pointer-events: none;
  user-select: none;
  z-index: 1000;
}

/* Tamaños */
.hx-xs {
  font-size: 20px;
}

.hx-sm {
  font-size: 32px;
}

.hx-md {
  font-size: 48px;
}

.hx-lg {
  font-size: 72px;
}

.hx-xl {
  font-size: 96px;
}

/* Posiciones rápidas */
.hx-tl {
  top: 0;
  left: 0;
}

.hx-tr {
  top: 0;
  right: 0;
}

.hx-bl {
  bottom: 0;
  left: 0;
}

.hx-br {
  bottom: 0;
  right: 0;
}

.hx-center {
  left: 50%;
  transform: translateX(-50%);
}

/* Animaciones suaves */
@keyframes flotar {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-10px);
  }
}

@keyframes colgar {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(15px);
  }
}

@keyframes aleteo {

  0%,
  100% {
    transform: rotate(0deg) translateX(0);
  }

  50% {
    transform: rotate(8deg) translateX(10px);
  }
}

/* Efectos opcionales */
.hx-glow {
  filter: drop-shadow(0 0 6px rgba(255, 140, 0, 0.6));
}

/* Decoraciones específicas */
.hx-web::before {
  content: "🕸️";
}

.hx-spider::before {
  content: "🕷️";
  animation: colgar 4s ease-in-out infinite;
}

.hx-pumpkin::before {
  content: "🎃";
}

.hx-bat::before {
  content: "🦇";
  animation: aleteo 5s ease-in-out infinite;
}

.hx-ghost::before {
  content: "👻";
  animation: flotar 4s ease-in-out infinite;
}

.hx-skull::before {
  content: "💀";
}

.hx-witch::before {
  content: "🧙‍♀️";
}

.hx-candy::before {
  content: "🍬";
}

/* Cards o secciones con borde temático */
.hx-card-halloween {
  position: relative;
  border-radius: 12px;
  box-shadow: 0 0 0 2px rgba(255, 140, 0, 0.2) inset,
    0 0 25px rgba(255, 140, 0, 0.3) inset;
}

/* Subrayado tipo "slime" para títulos */
.hx-title-slime {
  position: relative;
  display: inline-block;
}

.hx-title-slime::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 5px;
  border-radius: 2px;
  background: linear-gradient(to right, rgba(255, 140, 0, 0.6), rgba(255, 140, 0, 0.1));
  box-shadow: 0 2px 10px rgba(255, 140, 0, 0.4);
}

/* ===========================================================
   📐 RESPONSIVE – HALLOWEEN BANNER
   (añadir al final de tu CSS actual)
=========================================================== */

/* ——— 4K / Ultra-Wide ——— */
@media (min-width: 1600px) {
  .halloween-banner {
    width: min(1600px, 95vw);
    gap: 32px;
    padding: 28px 36px;
    border-width: 8px;
  }

  .halloween-img-box,
  .halloween-sign {
    border-width: 6px;
  }

  .sign-title {
    font-size: clamp(2.2rem, 3vw, 3.8rem);
  }

  .sign-subtitle {
    font-size: clamp(1.15rem, 1.4vw, 1.4rem);
  }
}

/* ——— Desktop estándar (≤1440) ——— */
@media (max-width: 1440px) {
  .halloween-banner {
    width: min(1280px, 96vw);
    gap: 26px;
    padding: 22px 28px;
  }
}

/* ——— Laptop (≤1280) ——— */
@media (max-width: 1280px) {
  .halloween-banner {
    grid-template-columns: 1.1fr 1.6fr;
    width: min(1100px, 96vw);
    gap: 24px;
    padding: 20px 24px;
  }

  .sign-title {
    font-size: clamp(1.9rem, 3.1vw, 3rem);
  }

  .sign-subtitle {
    font-size: clamp(1rem, 1.4vw, 1.2rem);
  }
}

/* ——— Laptop chica / Tablet horizontal (≤1024) ——— */
@media (max-width: 1024px) {
  .halloween-banner {
    grid-template-columns: 1fr 1.3fr;
    width: min(920px, 96vw);
    gap: 20px;
    padding: 18px 22px;
    border-radius: 18px;
  }

  .halloween-img-box,
  .halloween-sign {
    border-radius: 14px;
  }

  .halloween-sign {
    padding: 28px 36px;
  }
}

/* ——— Tablet (≤992) ——— */
@media (max-width: 992px) {
  #halloween-hero {
    padding: 28px 0;
  }

  .halloween-banner {
    grid-template-columns: 1fr;
    width: min(780px, 95vw);
    gap: 18px;
    padding: 16px;
  }

  /* imagen con proporción agradable al apilar */
  .halloween-img-box {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .halloween-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .halloween-sign {
    min-height: auto;
    padding: 24px 28px;
  }

  .sign-title {
    font-size: clamp(1.8rem, 4.4vw, 2.6rem);
  }

  .sign-subtitle {
    font-size: clamp(1rem, 2vw, 1.15rem);
  }

  .sign-icons {
    font-size: clamp(1.2rem, 2.2vw, 1.5rem);
  }
}

/* ——— Tablet chica / Móvil grande (≤768) ——— */
@media (max-width: 768px) {
  .halloween-banner {
    width: min(640px, 95vw);
    gap: 16px;
    padding: 14px;
    border-width: 5px;
  }

  .halloween-img-box,
  .halloween-sign {
    border-width: 4px;
  }

  .halloween-sign {
    padding: 22px 22px;
  }

  .sign-title {
    font-size: clamp(1.7rem, 5vw, 2.3rem);
  }

  .sign-subtitle {
    font-size: clamp(0.95rem, 2.4vw, 1.05rem);
  }
}

/* ——— Móvil mediano (≤560) ——— */
@media (max-width: 560px) {
  #halloween-hero {
    padding: 22px 0;
  }

  .halloween-banner {
    width: 94vw;
    gap: 14px;
    padding: 12px;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.38),
      inset 0 0 20px rgba(0, 0, 0, 0.28),
      0 0 34px rgba(255, 102, 0, 0.14);
  }

  .halloween-img-box,
  .halloween-sign {
    border-radius: 12px;
  }

  .halloween-img-box {
    aspect-ratio: 16/10;
  }

  .halloween-sign {
    padding: 18px;
  }

  .sign-icons {
    margin-bottom: 10px;
  }

  .sign-button {
    padding: 10px 20px;
    font-weight: 800;
  }

  /* decoraciones más pequeñas y discretas */
  .hx-xl {
    font-size: 72px;
  }

  .hx-lg {
    font-size: 56px;
  }

  .hx-md {
    font-size: 40px;
  }

  .hx-sm {
    font-size: 28px;
  }

  .hx-xs {
    font-size: 18px;
  }
}

/* ——— Móvil pequeño (≤420) ——— */
@media (max-width: 420px) {
  .halloween-banner {
    gap: 12px;
    padding: 10px;
    border-width: 4px;
  }

  .halloween-img-box,
  .halloween-sign {
    border-width: 3px;
  }

  .halloween-img-box {
    aspect-ratio: 4/3;
  }

  .halloween-sign {
    padding: 16px;
  }

  .sign-title {
    font-size: clamp(1.5rem, 6.4vw, 2rem);
  }

  .sign-subtitle {
    font-size: clamp(0.9rem, 3.4vw, 1rem);
  }

  .sign-button {
    padding: 9px 18px;
  }
}

/* ——— Muy pequeño (≤360) ——— */
@media (max-width: 360px) {
  .halloween-banner {
    padding: 8px;
    gap: 10px;
  }

  .halloween-sign {
    padding: 14px;
  }

  .sign-title {
    font-size: clamp(1.35rem, 6.6vw, 1.85rem);
  }

  .sign-subtitle {
    font-size: 0.9rem;
  }

  .sign-icons {
    font-size: 1.1rem;
  }

  .sign-button {
    padding: 8px 16px;
  }
}

/* ——— Accesibilidad / Rendimiento ——— */
@media (prefers-reduced-motion: reduce) {

  .sign-glow,
  .hx-spider::before,
  .hx-bat::before,
  .hx-ghost::before {
    animation: none !important;
  }

  .halloween-img-box img {
    transition: none !important;
  }
}

/* === Tablet y móvil: que el cartel tenga el mismo ANCHO que la foto === */
@media (max-width: 992px) {

  /* el contenedor del hero */
  #halloween-hero .halloween-banner {
    grid-template-columns: 1fr;
    /* apilar */
    justify-items: stretch;
    /* 🔑 estira los hijos al ancho del grid */
    width: min(780px, 95vw);
    margin: 0 auto;
    gap: 20px;
  }

  /* ambos bloques deben ESTIRARSE */
  #halloween-hero .halloween-img-box,
  #halloween-hero .halloween-sign {
    justify-self: stretch;
    /* 🔑 por si algún padre mantiene centrado */
    width: 100%;
    max-width: none;
    min-width: 0 !important;
    /* anula min-width grande del cartel */
    margin: 0;
    box-sizing: border-box;
    /* padding incluido en el 100% */
  }

  /* imagen fluida */
  #halloween-hero .halloween-img-box img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
}

@media (max-width: 768px) {
  #halloween-hero .halloween-banner {
    width: 92%;
    gap: 16px;
  }

  #halloween-hero .halloween-sign {
    padding: 24px 28px;
  }
}


/* =============================
   Estilos para selector de método de pago
   ============================= */
.metodo-pago-selector label.payment-method-lablel {
  position: relative;
  display: flex;
  align-items: center;
  padding: 16px;
  border: 2px solid #dee2e6;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  background: #fff;
  margin-bottom: 12px;
}

/* Hover visual */
.metodo-pago-selector label.payment-method-lablel:hover {
  border-color: #adb5bd;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transform: translateY(-1px);
}

/* Oculta el radio nativo, va dentro del label */
.metodo-pago-selector label.payment-method-lablel input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Estilo cuando el radio está checked (usa :has porque el input está dentro del label) */
.metodo-pago-selector label.payment-method-lablel:has(input[type="radio"]:checked) {
  border-color: #0066cc;
  background: #f0f7ff;
  box-shadow: 0 2px 12px rgba(0, 102, 204, 0.15);
}

/* Icono a la izquierda */
.payment-icon {
  width: 50px;
  height: 50px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 15px;
  flex-shrink: 0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  background: #fff;
  overflow: hidden;
}

.payment-icon svg {
  width: 28px;
  height: 28px;
}

/* Por si algún método usa <img> (OXXO) */
.payment-icon img {
  width: 36px;
  height: auto;
  display: block;
}

/* Info a la derecha del icono */
.payment-info {
  flex: 1;
}

.payment-title {
  font-weight: 600;
  color: #212529;
  margin-bottom: 4px;
  font-size: 15px;
}

.payment-subtitle {
  font-size: 13px;
  color: #6c757d;
}

/* Radio visual a la derecha */
.payment-radio {
  width: 22px;
  height: 22px;
  border: 2px solid #ced4da;
  border-radius: 50%;
  margin-left: auto;
  flex-shrink: 0;
  position: relative;
  transition: all 0.2s ease;
  background: #fff;
}

/* Cambios cuando está seleccionado (input precede a .payment-radio en tu HTML) */
.metodo-pago-selector label.payment-method-lablel input[type="radio"]:checked~.payment-radio {
  border-color: #0066cc;
  background: #0066cc;
}

.metodo-pago-selector label.payment-method-lablel input[type="radio"]:checked~.payment-radio::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* (Opcional) variantes si quieres fondos de color para el cuadrito del icono */
.payment-icon.mp {
  background: linear-gradient(135deg, #009ee3 0%, #0084c7 100%);
}

.payment-icon.paypal {
  background: linear-gradient(135deg, #0070ba 0%, #005a94 100%);
}

.payment-icon.wallet {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
}

.payment-icon.oxxo {
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}


/* =============================
   💻 Laptop (pantallas medianas)
   ============================= */
@media (max-width: 1280px) {
  .metodo-pago-selector label.payment-method-lablel {
    padding: 16px;
    border-radius: 10px;
  }

  .payment-icon {
    width: 48px;
    height: 48px;
    margin-right: 14px;
  }

  .payment-title {
    font-size: 15px;
  }

  .payment-subtitle {
    font-size: 13px;
  }

  .payment-radio {
    width: 22px;
    height: 22px;
  }
}

/* =============================
   📱 Tablet
   ============================= */
@media (max-width: 768px) {
  .metodo-pago-selector label.payment-method-lablel {
    padding: 14px;
  }

  .payment-icon {
    width: 44px;
    height: 44px;
    margin-right: 12px;
  }

  .payment-title {
    font-size: 14px;
  }

  .payment-subtitle {
    font-size: 12px;
  }

  .payment-radio {
    width: 20px;
    height: 20px;
  }
}

/* =============================
   📲 Móvil mediano
   ============================= */
@media (max-width: 560px) {
  .metodo-pago-selector label.payment-method-lablel {
    padding: 12px;
    gap: 10px;
  }

  .payment-icon {
    width: 40px;
    height: 40px;
    box-shadow: none;
  }

  .payment-title {
    font-size: 13.5px;
  }

  .payment-subtitle {
    font-size: 12px;
    color: #7a8793;
  }

  .payment-info {
    min-width: 0;
  }

  .payment-title,
  .payment-subtitle {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* =============================
   📱 Móvil pequeño
   ============================= */
@media (max-width: 420px) {
  .metodo-pago-selector label.payment-method-lablel {
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    padding: 12px 44px 12px 12px;
  }

  .payment-icon {
    margin-right: 0;
    margin-bottom: 10px;
  }

  .payment-info {
    width: 100%;
  }

  .payment-radio {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 20px;
    height: 20px;
  }
}

/* =============================
   📱 Muy pequeño (360px o menos)
   ============================= */
@media (max-width: 360px) {
  .metodo-pago-selector label.payment-method-lablel {
    padding: 10px;
  }

  .payment-icon {
    width: 36px;
    height: 36px;
  }

  .payment-title {
    font-size: 13px;
  }

  .payment-subtitle {
    font-size: 11.5px;
  }
}

/* ==========================================================
   BANNER ENVÍO GRATIS — Versión centrada y elegante Fiby Dog
========================================================== */
.envio-gratis-banner {
  --fiby-rosa: #D6006E;
  --fiby-lima: #94D600;

  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;

  background: linear-gradient(135deg, #ffffff 0%, #fffbfd 100%);
  border: 4px solid var(--fiby-lima);
  border-radius: 20px;

  padding: 25px 30px;
  max-width: 400px;
  /* CAMBIADO: Tamaño máximo para PC */
  width: 100%;
  margin: 0 auto;
  /* AGREGADO: Centrado */

  box-shadow:
    0 15px 40px rgba(214, 0, 110, 0.2),
    0 0 0 8px rgba(148, 214, 0, 0.08);
}

.banner-icon-section {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  /* REDUCIDO: de 100px a 90px */
  height: 90px;
  background: linear-gradient(135deg, var(--fiby-lima) 0%, #7ab300 100%);
  border-radius: 50%;
  box-shadow:
    0 12px 30px rgba(148, 214, 0, 0.4),
    inset 0 -5px 15px rgba(0, 0, 0, 0.15);
}

.banner-icon {
  font-size: 3rem;
  /* REDUCIDO: de 3.5rem a 3rem */
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
  animation: truck-bounce 2s ease-in-out infinite;
}

.banner-title {
  color: #333;
  font-size: 1rem;
  /* REDUCIDO: de 1.1rem a 1rem */
  font-weight: 600;
  margin: 0 0 8px 0;
  line-height: 1.3;
}

.banner-amount {
  display: inline-block;
  background: linear-gradient(135deg, var(--fiby-rosa) 0%, #ff1493 100%);
  color: white;
  padding: 10px 22px;
  border-radius: 14px;
  font-size: 2rem;
  /* REDUCIDO: de 2.2rem a 2rem */
  font-weight: 900;
  margin: 0 0 12px 0;
  box-shadow: 0 8px 20px rgba(214, 0, 110, 0.35);
  letter-spacing: 1px;
  animation: price-pulse 2.5s ease-in-out infinite;
}

.banner-benefit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--fiby-lima) 0%, #7ab300 100%);
  color: white;
  padding: 12px 26px;
  /* REDUCIDO: de 14px 28px */
  border-radius: 50px;
  font-size: 1.4rem;
  /* REDUCIDO: de 1.6rem a 1.4rem */
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  box-shadow: 0 10px 25px rgba(148, 214, 0, 0.45);
  width: 100%;
  max-width: 280px;
  /* REDUCIDO: de 300px a 280px */
}

.benefit-icon {
  font-size: 1.6rem;
  /* REDUCIDO: de 1.8rem a 1.6rem */
}

/* ANIMACIONES - Deben estar al principio */
@keyframes truck-bounce {

  0%,
  100% {
    transform: translateY(0) translateX(0);
  }

  50% {
    transform: translateY(-6px) translateX(4px);
  }
}

@keyframes price-pulse {

  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 8px 20px rgba(214, 0, 110, 0.35);
  }

  50% {
    transform: scale(1.05);
    box-shadow: 0 12px 30px rgba(214, 0, 110, 0.5);
  }
}

@keyframes tag-wiggle {

  0%,
  100% {
    transform: rotate(-5deg);
  }

  25% {
    transform: rotate(-8deg);
  }

  75% {
    transform: rotate(-2deg);
  }
}

.envio-gratis-banner {
  --fiby-rosa: #D6006E;
  --fiby-lima: #94D600;

  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;

  background: linear-gradient(135deg, #ffffff 0%, #fffbfd 100%);
  border: 4px solid var(--fiby-lima);
  border-radius: 20px;

  padding: 25px 30px;
  max-width: 400px;
  width: 100%;
  margin: 0 auto;

  box-shadow:
    0 15px 40px rgba(214, 0, 110, 0.2),
    0 0 0 8px rgba(148, 214, 0, 0.08);
}

.envio-gratis-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(148, 214, 0, 0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(214, 0, 110, 0.08) 0%, transparent 50%);
  border-radius: 20px;
  pointer-events: none;
}

.banner-icon-section {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  background: linear-gradient(135deg, var(--fiby-lima) 0%, #7ab300 100%);
  border-radius: 50%;
  box-shadow:
    0 12px 30px rgba(148, 214, 0, 0.4),
    inset 0 -5px 15px rgba(0, 0, 0, 0.15);
}

.banner-icon {
  font-size: 3rem;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
  animation: truck-bounce 2s ease-in-out infinite;
}

.banner-text-section {
  position: relative;
  z-index: 1;
  text-align: center;
  width: 100%;
}

.banner-title {
  color: #333;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 8px 0;
  line-height: 1.3;
}

.banner-amount {
  display: inline-block;
  background: linear-gradient(135deg, var(--fiby-rosa) 0%, #ff1493 100%);
  color: white;
  padding: 10px 22px;
  border-radius: 14px;
  font-size: 2rem;
  font-weight: 900;
  margin: 0 0 12px 0;
  box-shadow: 0 8px 20px rgba(214, 0, 110, 0.35);
  letter-spacing: 1px;
  animation: price-pulse 2.5s ease-in-out infinite;
}

.banner-benefit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--fiby-lima) 0%, #7ab300 100%);
  color: white;
  padding: 12px 26px;
  border-radius: 50px;
  font-size: 1.4rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  box-shadow: 0 10px 25px rgba(148, 214, 0, 0.45);
  width: 100%;
  max-width: 280px;
}

.benefit-icon {
  font-size: 1.6rem;
}

.discount-tag {
  position: absolute;
  top: -12px;
  right: -12px;
  background: var(--fiby-rosa);
  color: white;
  padding: 8px 18px;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 900;
  text-transform: uppercase;
  box-shadow: 0 6px 20px rgba(214, 0, 110, 0.5);
  z-index: 10;
  border: 3px solid white;
  animation: tag-wiggle 3s ease-in-out infinite;
}

@media (max-width: 480px) {
  .envio-gratis-banner {
    padding: 20px 20px;
    border-width: 3px;
  }

  .banner-icon-section {
    width: 85px;
    height: 85px;
  }

  .banner-icon {
    font-size: 3rem;
  }

  .banner-title {
    font-size: 1rem;
  }

  .banner-amount {
    font-size: 1.8rem;
    padding: 8px 20px;
  }

  .banner-benefit {
    font-size: 1.3rem;
    padding: 12px 24px;
    letter-spacing: 1px;
  }

  .benefit-icon {
    font-size: 1.5rem;
  }

  .discount-tag {
    font-size: 0.7rem;
    padding: 6px 14px;
    top: -10px;
    right: -10px;
  }
}

#producto-detalle .imagen-principal {
  position: relative;
  display: inline-block;
}

#zoom-window {
  position: fixed;
  top: 120px;
  left: 55%;
  width: 650px;
  height: 650px;
  border: 2px solid #ddd;
  background-repeat: no-repeat;
  /* background-size: 200%;  <-- QUITAR ESTA LÍNEA */
  background-position: center;
  display: none;
  z-index: 10;
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  background-color: #fff;
}

/* Cuadro translúcido del zoom */
#producto-detalle .zoom-lens {
  position: absolute;
  border: 2px solid rgba(180, 180, 255, 0.6);
  background-color: rgba(180, 180, 255, 0.2);
  cursor: crosshair;
  display: none;
  border-radius: 6px;
}

/* Ocultar en móviles */
@media (max-width: 768px) {

  #zoom-window,
  #producto-detalle .zoom-lens {
    display: none !important;
  }
}

/* ===========================================================
   BOTÓN DE CONTROL DE MÚSICA AMBIENTAL
   (añadir al final de tu CSS actual)
=========================================================== */

.music-control {
  position: fixed;
  right: 24px;
  bottom: 88px;
  /* 24px (bottom de whatsapp) + 52px (altura) + 12px (separación) */
  z-index: 100;
}

.music-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff6b00 0%, #ff4500 100%);
  border: none;
  box-shadow: 0 3px 16px 0 rgba(255, 107, 0, 0.4);
  transition: box-shadow 0.2s, transform 0.2s;
  cursor: pointer;
  outline: none;
  position: relative;
}

.music-btn:hover {
  box-shadow: 0 8px 24px 0 rgba(255, 107, 0, 0.6);
  transform: scale(1.06);
}

.music-btn:active {
  transform: scale(0.98);
}

.music-btn::before {
  content: '';
  position: absolute;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  border: 2px solid rgba(255, 107, 0, 0.3);
  animation: pulse 2s infinite;
}

@keyframes pulse {

  0%,
  100% {
    transform: scale(1);
    opacity: 0.8;
  }

  50% {
    transform: scale(1.2);
    opacity: 0;
  }
}

.music-icon {
  width: 28px;
  height: 28px;
  position: relative;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.music-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: #fff;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}

.music-btn.muted .music-icon {
  opacity: 1;
}

.music-btn.muted .music-icon svg {
  opacity: 1;
}

.music-btn.muted .music-icon svg path,
.music-btn.muted .music-icon svg circle,
.music-btn.muted .music-icon svg rect {
  fill: #fff;
}

/* Animación de ondas sonoras */
.sound-waves {
  position: absolute;
  display: flex;
  gap: 3px;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 0.3s ease;
}

.wave {
  width: 3px;
  background: #fff;
  border-radius: 2px;
  animation: wave 0.8s ease-in-out infinite;
}

.wave:nth-child(1) {
  height: 8px;
  animation-delay: 0s;
}

.wave:nth-child(2) {
  height: 14px;
  animation-delay: 0.2s;
}

.wave:nth-child(3) {
  height: 10px;
  animation-delay: 0.4s;
}

@keyframes wave {

  0%,
  100% {
    transform: scaleY(1);
  }

  50% {
    transform: scaleY(1.5);
  }
}

.muted .sound-waves {
  opacity: 0;
  pointer-events: none;
}

/* Tooltip */
.music-btn::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 62px;
  right: 0;
  background: rgba(74, 47, 26, 0.95);
  color: #ff6b00;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  border: 1px solid #ff6b00;
}

.music-btn:hover::after {
  opacity: 1;
}

/* Responsive */
@media (max-width: 600px) {
  .music-control {
    right: 12px;
    bottom: 68px;
    /* 12px (bottom de whatsapp) + 44px (altura) + 12px (separación) */
  }

  .music-btn {
    width: 44px;
    height: 44px;
  }

  .music-btn::before {
    width: 54px;
    height: 54px;
  }

  .music-icon {
    width: 24px;
    height: 24px;
  }

  .music-btn::after {
    bottom: 54px;
  }
}

/* ===========================================================
   SECCIÓN ENCUÉNTRANOS 🗺️ (versión final — altura reducida + imagen completa)
=========================================================== */

/* ===========================================================
   SECCIÓN ENCUÉNTRANOS 🗺️ — ANCHA Y MÁS BAJA (FORMATO BANNER)
=========================================================== */

/* Sección principal */
.encuentranos-seccion {
  padding: 70px 0 90px 0;
  background: #f8f8f8;
}

.encuentranos-seccion .container {
  max-width: 1550px;   /* 🔸 ancho grande */
  margin: 0 auto;
  padding: 0 25px;     /* 🔸 menor margen lateral */
}

/* Encabezado */
.encuentranos-seccion .header {
  text-align: center;
  margin-bottom: 45px;
  animation: fadeInDown 0.8s ease;
}

.encuentranos-seccion .header h2 {
  color: #2d2d2d;
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.encuentranos-seccion .header p {
  color: #666;
  font-size: 1.1rem;
  font-weight: 300;
  max-width: 600px;
  margin: 0 auto;
}

/* ===========================================================
   TARJETA PRINCIPAL — MÁS ANCHA Y MÁS BAJA
=========================================================== */
.ubicacion-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  transition: transform 0.4s ease, box-shadow 0.4s ease;

  display: grid;
  grid-template-columns: 68% 32%; /* 🔸 imagen grande */
  min-height: 280px;              /* 🔸 más baja */
  width: 100%;
  margin: 0 auto 80px auto;       /* 🔸 separación inferior */
}

.ubicacion-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
}

/* ===========================================================
   IMAGEN PRINCIPAL
=========================================================== */
.ubicacion-card .card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-right: 1px solid #eee;
}

/* ===========================================================
   CONTENIDO — LADO DERECHO
=========================================================== */
.ubicacion-card .card-content {
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Badge */
.ubicacion-card .badge {
  display: inline-block;
  background: #4CAF50;
  color: #fff;
  padding: 5px 13px;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 10px;
}

/* Títulos */
.ubicacion-card .card-title {
  font-size: 1.6rem;
  font-weight: 800;
  color: #2d2d2d;
  margin-bottom: 6px;
}

.ubicacion-card .card-subtitle {
  color: #ff6b35;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 15px;
}

/* Información */
.ubicacion-card .info-section {
  margin-bottom: 6px;
  flex: 1;
}

.ubicacion-card .info-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 6px;
  transition: transform 0.3s ease;
}

.ubicacion-card .info-item:hover {
  transform: translateX(4px);
}

.ubicacion-card .icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
}

.ubicacion-card .info-content h3 {
  color: #ff6b35;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.ubicacion-card .info-content p {
  color: #555;
  font-size: 0.88rem;
  line-height: 1.3;
}

/* ===========================================================
   MAPA — compacto
=========================================================== */
.ubicacion-card .map-container {
  width: 100%;
  height: 110px;
  border-radius: 10px;
  overflow: hidden;
  margin-top: 8px;
  border: 2px solid #f0f0f0;
}

.ubicacion-card .map-container iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* ===========================================================
   BOTONES
=========================================================== */
.ubicacion-card .btn-container {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.ubicacion-card .btn {
  flex: 1;
  padding: 9px 12px;
  border: none;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.ubicacion-card .btn-primary {
  background: #ff6b35;
  color: #fff;
}

.ubicacion-card .btn-primary:hover {
  background: #ff5722;
  transform: scale(1.02);
  box-shadow: 0 3px 8px rgba(255, 107, 53, 0.3);
}

.ubicacion-card .btn-secondary {
  background: #fff;
  color: #ff6b35;
  border: 2px solid #ff6b35;
}

.ubicacion-card .btn-secondary:hover {
  background: #ff6b35;
  color: #fff;
}

/* ===========================================================
   RESPONSIVE
=========================================================== */

/* Tablets */
@media (max-width: 900px) {
  .encuentranos-seccion { padding: 50px 15px 80px; }

  .ubicacion-card {
    grid-template-columns: 1fr;
    grid-template-rows: 240px 1fr; /* 🔸 imagen más baja */
    max-width: 740px;
    margin-bottom: 60px;
  }

  .ubicacion-card .card-content {
    padding: 20px 18px;
  }

  .ubicacion-card .map-container {
    height: 100px;
  }

  .ubicacion-card .btn-container {
    flex-direction: column;
  }
}

/* Móviles */
@media (max-width: 480px) {
  .ubicacion-card {
    grid-template-rows: 200px 1fr;
    margin-bottom: 50px;
  }

  .ubicacion-card .card-title {
    font-size: 1.4rem;
  }

  .ubicacion-card .map-container {
    height: 90px;
  }
}

/* ===========================================================
   ANIMACIONES
=========================================================== */
@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
