
/* Encabezado */
header {
  background-color: rgba(0, 0, 0, 0.5);
  padding: 1rem 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Contenido del encabezado */
.header-content {
  text-align: center;
  margin-top: 0;
}

/* TÍTULO EN UNA SOLA LÍNEA con tamaño responsivo */
.header-content h1 {
    font-family: 'Cinzel Decorative', serif; /* Letra con aire de fantasía y nobleza */
    font-size: 3.5rem; /* Un poco más grande para destacar más */
    text-transform: uppercase;
    font-weight: 700; /* Ligero rebaje para hacerlo más elegante */
    color: #f5d442; /* Dorado mágico */
    text-shadow:
        0 0 8px rgba(245, 212, 66, 0.8),  /* Resplandor dorado */
        2px 2px 0 #3b2104,                 /* Sombra sólida tipo relieve antiguo */
        -2px -2px 0 #3b2104;
    letter-spacing: 3px; /* Un toque más de separación para dar aire de importancia */
    margin-top: -0.3rem;
    margin-bottom: 0.5rem;
}


.header-content p {
    font-size: 1.3rem;
    color: #fff;
    text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.8);
    margin-top: 0rem;
    margin-bottom: 20px;
    font-weight: 500;
}





/* Contenedor de productos */
.productos {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2rem;
}

.productos-container {
  width: 80%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

/* Pie de Página */
.footer {
  text-align: center;
  padding: 1rem 0;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
  margin-top: auto;
  transition: background-color 0.3s ease;
}

.footer:hover {
  background-color: rgba(0, 0, 0, 0.7);
}

.footer a {
  color: #fff;
  text-decoration: none;
  transition: color 0.3s;
  font-weight: bold;
}

.footer a:hover {
  color: #f39c12;
}







/*------------------------------------------------------------------------------------------------
ESTILOS PARA LOS BOTONES FLOTANTES (COPIAR ESTE FRAGMENTO EN LOS DEMÁS CSS)
------------------------------------------------------------------------------------------------*/

.brand-name {
  position: absolute !important;   /* lo saca del flujo visual */
  width: 1px !important;           /* tamaño mínimo */
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;         /* elimina márgenes */
  overflow: hidden !important;     /* oculta cualquier contenido sobrante */
  clip: rect(1px, 1px, 1px, 1px) !important; /* recorta todo el elemento */
  white-space: nowrap !important;  /* evita saltos de línea */
  border: 0 !important;
}

/* Estilo base para el logo en escritorio */
.brand-logo {
  width: 240px;      /* ajusta este valor al tamaño “ideal” en desktop */
  height: auto;      /* mantiene la proporción original */
}

/* Si quieres forzar un máximo de altura */
.brand-logo {
  max-height: 120px;  /* para que no sea excesivamente alto */
}






  .bienvenida-dracollectors {
    display: none;
    position: fixed;
    top: 80px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(90deg, #1a1a1a, #2c2c2c);
    color: #ffd700;
    padding: 1rem 2rem;
    border: 2px solid #d4af37;
    border-radius: 12px;
    box-shadow: 0 0 15px rgba(255, 215, 0, 0.7);
    font-size: 1.1rem;
    font-weight: bold;
    z-index: 9999;
    animation: bienvenidaFadeIn 0.6s ease-out;
  }
  
  @keyframes bienvenidaFadeIn {
    0% { opacity: 0; transform: translate(-50%, -20px); }
    100% { opacity: 1; transform: translate(-50%, 0); }
  }



/* ========================================
   Media Query para dispositivos móviles
   ======================================== */



    
  
  /* Responsive: reducimos el logo en móvil */
@media (max-width: 768px) {
  .brand-logo {
    width: 200px;     /* más pequeño en móviles */
    max-height: 100px;
    
    
  }
  .header-brand {
    margin-top: 40px;   /* baja todo el logo + texto 20px */
  }
}

/* Si el logo está demasiado pegado, añade un margen */
.header-brand .brand-logo {
  margin-right: 8px; /* separación entre logo y texto (aunque el texto esté oculto) */
}
  








/* ========================================
   Media Query para dispositivos móviles
   ======================================== */
/* General para móviles (max-width: 768px) */
@media (max-width: 768px) {

  header {
    width: 100%;
  }
  .header-content {
    width: 95%;
    margin: 0 auto;
  }
  /* Ajustamos la fórmula en pantallas medianas */
  .header-content h1 {
    /* Mínimo 1.8rem, óptimo calc(100vw / 9), máximo 4rem */
    font-size: clamp(1.8rem, calc(100vw / 9), 4rem);
  }
  .header-content p {
    font-size: 0.99rem;
  }


/* Media Query para pantallas muy pequeñas (hasta 350px) */
@media (max-width: 350px) {
  .header-content h1 {
    /* Mínimo 1.6rem, óptimo calc(100vw / 9), máximo 4rem */
    font-size: clamp(1.6rem, calc(100vw / 9), 4rem) !important;
    padding: 0 10px;
    text-align: center;
  }
  .header-content p {
    font-size: 0.9rem !important;
    text-align: center;
    margin: 0 10px;
  }
}


  /* Media query para pantallas pequeñas (tablets y móviles) */
  @media (max-width: 768px) {
    .account-sidebar {
      width: 90vw;
      max-width: 90vw;
      right: -90vw; /* fuera de pantalla inicialmente */
    }
  
    .account-sidebar.open {
      right: 0;
    }
  }
  
  /* Media query para pantallas muy pequeñas (ej. 300px) */
  @media (max-width: 300px) {
    .account-sidebar {
      width: 90vw;
      max-width: 90vw;
      right: -100vw;
    }
  
    .account-sidebar.open {
      right: 0;
    }

    

  }




}


/* Evitar overflow horizontal */
body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
/* -------------------------------------------------- */
/*  Ficha de producto: layout en dos columnas         */
/* -------------------------------------------------- */
#product-detail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;           /* centra verticalmente image + info */
  justify-content: center;       /* centra el conjunto horizontalmente */
  max-width: 1200px;
  margin: 2rem auto;
  background: rgba(0, 0, 0, 0.6);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  border-radius: 12px;
  color: #fff;
  overflow: hidden;
}

/* Breadcrumbs: ocupar toda la fila */
#product-detail .breadcrumbs {
  flex: 1 1 100%;
  margin: 1rem;
}
/* Labels en amarillo, valores en naranja */
#product-detail .product-meta p {
  color: orange; /* valor */
  margin: 0.5rem 0;
  font-size: 1.1rem;
  line-height: 1.4;
}

#product-detail .product-meta p strong {
  color: yellow; /* etiqueta (SKU:, Precio:, Disponibilidad:) */
}

/* -------------------------------------------------- */
/*  Columna izquierda: imagen alineada a la izquierda */
/* -------------------------------------------------- */
.product-image {
  flex: 0 0 50%;                 /* ocupa el 45% del ancho */
  display: flex;
  justify-content: flex-start;   /* alinea la imagen al inicio de la columna */
  padding: 1rem 0;               /* elimina el padding horizontal */
  margin-left: 30px;                /* cero margen izquierdo */
}

.product-image img {
  width: 100%;
  max-width: 400px;              /* o el tamaño que prefieras */
  height: auto;
  border-radius: 8px;
  margin: 0;                     /* elimina cualquier margen */
}

/* -------------------------------------------------- */
/*  Columna derecha: información                      */
/* -------------------------------------------------- */
.product-info {
  flex: 0 0 40%;                 /* ocupa el 45% del ancho */
  display: flex;
  flex-direction: column;
  justify-content: center;       /* centra verticalmente dentro de la columna */
  padding: 1.5rem;
  max-width: 500px;
}
/* Título sin borde, con sombra blanca o amarilla */
.product-info .product-title {
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
  color: #FFD700; /* dorado vivo */

  /* Sombra blanca suave */
  text-shadow: 2px 2px 4px rgba(255, 255, 0, 0.6);

  /* Si prefieres sombra amarilla, reemplaza la línea anterior por:
  text-shadow: 2px 2px 4px rgba(255, 255, 0, 0.7);
  */
}


/* Descripción justo debajo del título */
.product-info .product-description {
  margin-bottom: 1.5rem;
  line-height: 1.6;
  color: #fcb635;
  font-weight: 600;
}

/* Meta datos */
.product-info .product-meta p {
  margin: 0.5rem 0;
  font-size: 1.1rem;
  line-height: 1.4;
}

/* Selector de cantidad */
.quantity-selector {
  display: inline-flex;
  align-items: center;
  margin: 1rem 0;
}
.quantity-selector button {
  background: #ffeb3b;
  border: none;
  font-size: 1.2rem;
  padding: 0.4rem 0.8rem;
  cursor: pointer;
  border-radius: 4px;
  margin: 0 0.25rem;
}
.quantity-selector input {
  width: 3rem;
  text-align: center;
  font-size: 1rem;
  border: none;
  border-radius: 4px;
  padding: 0.3rem;
}

/* Botón Añadir al carrito */
.btn-comprar {
  display: inline-block;
  background: #ffeb3b;
  color: #000;
  text-transform: uppercase;
  font-weight: bold;
  padding: 0.8rem 1.5rem;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  margin-top: 1rem;
}


/* Botón “Añadir al carrito” con fondo oscuro */
.product-info .btn-comprar {
  background: rgba(0, 0, 0, 0.7);  /* fondo más oscuro */
  border: 4px solid #FF6600;       /* naranja Dracollectors */
  color: #FFFF00;                  /* amarillo vivo */
  transition: 
    background 0.2s ease, 
    color 0.2s ease, 
    border-color 0.2s ease;
}

/* Hover: invertir colores de texto y borde */
.product-info .btn-comprar:hover {
  color: #FF6600;                  /* texto naranja */
  border-color: #FFFF00;           /* borde amarillo */
  /* opcional: aclarar un poco el fondo al pasar el ratón */
  background: rgba(0, 0, 0, 0.5);
}

/* Transición suave para todos los cambios */
.product-info .btn-comprar {
  transition: 
    background 0.15s ease, 
    color 0.15s ease, 
    border-color 0.15s ease,
    transform 0.1s ease,
    box-shadow 0.1s ease;
}

/* Al clic (active): efecto “hundido” */
.product-info .btn-comprar:active {
  transform: scale(0.95);                              /* reduce el tamaño un 5% */
  background: rgba(0, 0, 0, 0.8);                      /* un pelín más oscuro */
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6);       /* sombra interior */
}


/* Controles “+” y “–” estilo invertido */
.quantity-selector button {
  background: rgba(0, 0, 0, 0.7); /* mismo fondo oscuro */
  border: 4px solid #FFFF00;     /* borde amarillo */
  color: #FF6600;                 /* signo en naranja */
  font-size: 1.2rem;
  padding: 0.4rem 0.8rem;
  border-radius: 4px;
  cursor: pointer;
  transition: 
    background 0.15s ease, 
    color 0.15s ease, 
    border-color 0.15s ease,
    transform 0.1s ease,
    box-shadow 0.1s ease;
}

/* Hover: invertimos colores de borde y signo */
.quantity-selector button:hover {
  background: rgba(0, 0, 0, 0.5);
  border-color: #FF6600; /* borde naranja */
  color: #FFFF00;        /* signo amarillo */
}

/* Active: efecto “hundido” */
.quantity-selector button:active {
  transform: scale(0.95);
  background: rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6);
}
/* Input de cantidad con fondo oscuro transparente y texto amarillo en negrita */
.quantity-selector .qty-input {
  background: rgba(0, 0, 0, 0.7);  /* fondo oscuro semitransparente */
  color: #FFFF00;                 /* número amarillo */
  font-weight: bold;              /* texto en negrita */
  border: 1.5px solid #FF6600;    /* borde amarillo para visibilidad */
  border-radius: 4px;
  padding: 0.3rem;                /* un poco de espacio interior */
  width: 2.5rem;                  /* ancho fijo para mantener diseño */
  text-align: center;
}

/* Opcional: placeholder también amarillo tenue */
.quantity-selector .qty-input::placeholder {
  color: rgba(255, 255, 0, 0.7);
}

/* -------------------------------------------------- */
/*  Responsive: apilar en móvil                       */
/* -------------------------------------------------- */
@media (max-width: 600px) {
  #product-detail {
    flex-direction: column;
    align-items: center;
  }
  .product-image,
  .product-info {
    flex: 1 1 90%;
    max-width: 90%;
    margin: 1rem 0;
  }
  .quantity-selector button {
      font-size: 0.9rem;
      border: 3px solid #FFFF00;
  }
    .product-info .btn-comprar {
    border: 3px solid #FF6600;
    font-size: 0.8rem;      /* texto más pequeño */
    
  }
}
/* Reducir tamaño de la imagen en pantallas móviles */
@media (max-width: 600px) {
  .product-image img {
    
    max-width: 300px; /* o un valor fijo que prefieras */
    max-height: 300px;
  }
}
/* -------------------------------------------------- */
/*  Ajuste de espaciado título–imagen en móvil        */
/* -------------------------------------------------- */
@media (max-width: 600px) {
  /* Reduce el espacio superior e inferior en la imagen */
  .product-image {
    margin: 0.5rem auto;       /* menos separación vertical */
    padding: 0.5rem 0;         /* menos padding vertical */
  }

  /* Alinea la info justo debajo de la imagen */
  .product-info {
    margin: 0rem auto;       /* menos separación vertical */
    padding: 0.5rem 1rem;      /* un poco de padding lateral para respirar */
  }

  /* Si quieres concretar aún más sólo el gap entre título e imagen: */
  .product-info .product-title {
    margin-top: 0;             /* cero margen superior */
  }
}

@media (max-width: 800px) {
  .product-info .btn-comprar {
    margin-bottom: 1.5rem; /* aumenta el espacio inferior del botón */
  }
}


/* Breadcrumbs opcion B con borde de 2px */
.breadcrumbs {
  display: inline-block;
  margin: 1rem 0 0 1rem;
  padding: 0;
  font-weight: bold;
}

/* Cada “crumb” con su fondo, padding y borde */
.breadcrumbs a,
.breadcrumbs span {
  background: rgba(0, 0, 0, 0.4);
  border: 2px solid orange;    /* podrás cambiar “orange” por un rojo pálido, p.ej. #ff7043 */
  border-radius: 4px;
  padding: 0.2rem 0.5rem;
  margin-right: 0.25rem;
  text-decoration: none;
}

/* Colores específicos */
.breadcrumbs a:nth-of-type(1) { color: orange; }
.breadcrumbs a:nth-of-type(2) { color: yellow; }
.breadcrumbs span            { color: #fff; }

/* Responsive: apila en móvil */
@media (max-width: 768px) {
.breadcrumbs a,
.breadcrumbs span {
  background: rgba(0, 0, 0, 0.4);
  border: 1.5px solid orange;    /* podrás cambiar “orange” por un rojo pálido, p.ej. #ff7043 */
  border-radius: 4px;
  padding: 0.2rem 0.5rem;
  margin-right: 0.25rem;
  text-decoration: none;
  font-size: 9px;
}
}

@media (max-width: 600px) {
  /* Forzar el ancho del contenedor al 90% de la pantalla en móvil */
  #product-detail {
    width: 95% !important;
    max-width: none !important;
    margin: 1rem auto;
  }
}


/* Contenedor de paginación */
.paginacion {
  text-align: center;
  margin: 2rem 0;
  font-size: 1.1rem;
}

/* Texto “Página X de Y” */
.paginacion .pagina-actual {
  display: inline-block;
  border: 3px solid #fd6500;           /* borde naranja */
  background: rgba(0, 0, 0, 0.9);       /* fondo oscuro semitransparente */
  color: #FFFF00;                       /* letras amarillas */
  padding: 0.3rem 0.8rem;               /* espacio interior */
  border-radius: 6px;                   /* esquinas redondeadas */
  margin: 0 1rem;
  font-weight: bold;
}

/* Botones “Anterior” / “Siguiente” */
.paginacion .btn-pagina {
  display: inline-block;
  border: 4px solid #FFFF00;            /* borde amarillo grueso */
  background: rgba(0, 0, 0, 0.8);       /* fondo oscuro transparente */
  color: #fd6500;                       /* letras naranjas */
    font-size: 1.3rem;                    /* ➡️ más grande */
  padding: 0.8rem 1.4rem;               /* ➡️ más alto y ancho */
  margin: 0 0.5rem;
  border-radius: 6px;
  cursor: pointer;
  text-decoration: none;
  font-weight: bold;
  transition: 
    transform 0.1s ease, 
    background-color 0.3s ease, 
    color 0.3s ease, 
    border-color 0.3s ease;
    
}

/* Hover: invertimos colores */
.paginacion .btn-pagina:hover {
  background-color: #FFD700;            /* fondo amarillo */
  color: rgba(0, 0, 0, 0.8);            /* letras oscuras */
  border-color: #fd6500;                /* borde naranja */
}

/* “Sensación de clicaje” */
.paginacion .btn-pagina:active {
  transform: scale(0.95);
  box-shadow: 0 0 8px rgba(255, 215, 0, 0.7);
}
@media (max-width: 768px) {
  .paginacion .btn-pagina {
    font-size: 1.2rem;              /* tamaño de texto reducido */
    padding: 0.4rem 0.8rem;       /* menos espacio interno */
    border-width: 3px;            /* borde más fino */
    margin: 0 0.3rem;             /* menos separación entre botones */
  }

  .paginacion .pagina-actual {
    font-size: 0.9rem;            /* texto más pequeño */
    padding: 0.2rem 0.6rem;       /* menos espacio interno */
    border-width: 2px;            /* borde más fino */
    margin: 0 0.5rem;             /* ajusta separación horizontal */
  }
}




.fly-to-cart {
  position: absolute;
  z-index: 9999;
  transition: transform 1.2s ease-in-out, opacity 1.2s ease-in-out; /* ✅ crucial */
  pointer-events: none;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(255, 215, 0, 0.7);
}



/* Asegura que .productos no use flex ni grid para sus hijos directos */
.productos {
  display: block;       /* respeta el flujo normal */
  text-align: center;   /* centra inline-blocks hijos */
}

/* Contenedor de controles: solo tan ancho como label+select, y centrado */
.productos-controls {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 2rem auto;         /* separa del header y de la grilla */
  padding: 0.5rem 1rem;
  background: rgba(0, 0, 0, 0.7);
  border: 4px solid #FFFF00;
  border-radius: 8px;
}

/* Label y select dentro del control */
.productos-controls label {
  margin-right: .75rem;
  color: #f39c12;
  font-weight: bold;
}
/* Letras y fondo del <select>, con esquinas redondeadas */
.productos-controls select {
  color: #FFFF00;                 /* texto amarillo puro */
  background: #000000;            /* fondo negro */
  border: 3px solid #f39c12;      /* borde naranja */
  border-radius: 8px;             /* esquinas redondeadas */
  padding: .4rem .6rem;
  cursor: pointer;
  transition: background .3s, color .3s;
  font-weight: bold;
  
}

/* También aplica al desplegable de opciones */
.productos-controls select option {
  background: #000000;
  color: #FFFF00;
  font-weight: bold;
}

/* Hover y focus mantienen contraste */
.productos-controls select:hover,
.productos-controls select:focus {
  background: #FFD700;            /* invertido dorado */
  color: #000000;                 /* texto negro */
}

/* Ajuste extra para navegadores WebKit (Safari/Chrome) */
.productos-controls select::-webkit-inner-spin-button,
.productos-controls select::-webkit-calendar-picker-indicator {
  border-radius: 8px;
}

/* Ajuste para el botón de flecha en IE/Edge */
.productos-controls select::-ms-expand {
  border-radius: 80px !important;
}


/* Mantén la grilla por separado */
.productos-container {
  display: grid;             /* o tu flex/grid actual */
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.2rem;
  padding: 0 2rem;
  justify-content: center;
}

/* Aplica esquinas redondeadas al propio <select> */
.productos-controls select {
  border-radius: 8px;
}

/* Intenta redondear también la “ventana” de opciones */
.productos-controls select option {
  border-radius: 8px;
}

/* Cuando el usuario pasa el cursor o está seleccionado: fondo naranja y texto negro */
.productos-controls select option:hover,
.productos-controls select option:checked {
  background-color: #f39c12 !important;
  color: #000000 !important;
}

@media (max-width: 768px) {
  .productos-controls {
    margin: 1rem auto;
    padding: 0.3rem 0.6rem;
    border: 3px solid #FFFF00;
    
  }
  .productos-container {
  margin-top: 0.5rem !important;   /* acerca la grilla al selector */
}
  .productos-controls label {
    display: inline-block;   /* mostramos de nuevo el texto */
    margin-right: 0.5rem;
    font-size: 0.9rem;
    color: #f39c12;
  }
  .productos-controls select {
    padding: 0.3rem 0.5rem;
    font-size: 0.9rem;
    border-width: 2px;
  }
}






  /* ============================
   Fondo “fijo” + footer pegado
   ============================ */

/* 1) html/body llenan la ventana, permiten pull-to-refresh */
html,
body {
  min-height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;            /* deja que la página siga scrollando */
  overscroll-behavior-y: auto !important; /* permite pull-to-refresh en iOS/Android */
}

/* 2) Fondo fijo en su propio elemento */
.fixed-bg {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background-image: url('assets/images/fondo_seccion_ofertas_especiales.webp') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  pointer-events: none !important; /* no interfiere con el scroll */
  z-index: -1 !important;
}

/* 2b) En móvil cambia la imagen */
@media (max-width: 768px) {
  .fixed-bg {
    background-image: url('assets/images/fondo_seccion_ofertas_especiales_movil.webp') !important;
  }
}

/* 3) Empuja el footer al fondo */
.page-content {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100vh !important;
}

/* 4) Mantén el footer siempre abajo */
.footer {
  margin-top: auto !important;
}

/* ─────────────────────────────────────────────
   Desactivar auto-enlaces telefónicos en iOS
   ───────────────────────────────────────────── */
a[x-apple-data-detectors],
a[href^="tel:"] {
  color: inherit !important;         /* mantiene el color original */
  text-decoration: none !important;  /* quita cualquier subrayado */
  pointer-events: none !important;   /* desactiva el clic */
  cursor: default !important;        /* cursor normal */
}


