:root {
	--color-bg: #ffffff;
	--color-text-primary: #000000;
	--color-text-secondary: #6b7280;
	--color-accent: #d4af37;
	--color-accent-hover: #b8952a;
	--color-card-bg: #fefefe;
	--color-card-shadow: rgba(0, 0, 0, 0.05);
	--color-button-bg: #111827;
	--color-button-hover: #000000;
	--color-button-text: #ffffff;
	--radius: 0.75rem;
	--font-headline: 'Poppins', sans-serif;
	--font-body: 'Inter', sans-serif;
	--transition-speed: 0.3s;
	--max-width: 1200px;
	--spacing-section-vertical: 4rem;
	--carousel-indicator-size: 12px;
	--header-bg: #000000;
	--header-text: #ffffff;
	--header-link-hover: #d4af37;
	--carousel-aspect-ratio: 40.5%;
	--carousel-max-height: 486px;
}

*, *::before, *::after {
	box-sizing: border-box;
}
body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text-secondary);
	font-family: var(--font-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-size: 18px;
	scroll-padding-top: 4.5rem;
}
a {
	text-decoration: none;
	color: var(--color-accent);
	font-weight: 600;
	transition: color var(--transition-speed) ease;
}
a:hover, a:focus {
	color: var(--color-accent-hover);
	outline: none;
}
img {
	max-width: 100%;
	display: block;
	border-radius: var(--radius);
}
h1,h2,h3,h4,h5,h6 {
	color: var(--color-text-primary);
	font-family: var(--font-headline);
	margin-top: 0;
	margin-bottom: 1rem;
	font-weight: 700;
}
h1 {
	font-size: 2.5rem;
	line-height: 1.1;
}
h2 {
	font-size: 2.25rem;
}
p {
	margin-top: 0;
	margin-bottom: 1.25rem;
	color: var(--color-text-secondary);
}
button {
	font: inherit;
	cursor: pointer;
	border: none;
	border-radius: var(--radius);
	padding: 0.75rem 1.75rem;
	font-weight: 700;
	background-color: var(--color-button-bg);
	color: var(--color-button-text);
	transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease, transform var(--transition-speed) ease;
	user-select: none;
	box-shadow: 0 2px 6px rgba(17,24,39,0.4);
}
button:hover, button:focus {
	background-color: var(--color-button-hover);
	color: var(--color-button-text);
	transform: scale(1.05);
	outline: none;
	box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
button:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: 3px;
}
.container {
	width: 90%;
	max-width: var(--max-width);
	margin-left: auto;
	margin-right: auto;
}
header {
	position: sticky;
	top: 0;
	background: var(--header-bg);
	border-bottom: 1px solid #333;
	z-index: 1000;
}
.nav-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 4.5rem;
	gap: 1rem;
	color: var(--header-text);
}
.logo {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	user-select: none;
}
.logo img {
	height: 40px;
	width: auto;
	border-radius: 0.375rem;
	object-fit: contain;
}
nav ul {
	display: flex;
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
	color: var(--header-text);
}
nav li a {
	font-weight: 600;
	font-size: 1rem;
	color: var(--header-text);
	padding: 0.5rem 0;
	position: relative;
	transition: color var(--transition-speed) ease;
}
nav li a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -0.25rem;
	width: 0%;
	height: 2px;
	background-color: var(--color-accent);
	transition: width var(--transition-speed) ease;
}
nav li a:hover,
nav li a:focus {
	color: var(--header-link-hover);
	outline: none;
}
nav li a:hover::after,
nav li a:focus::after {
	width: 100%;
}

/* Carousel styles */
.carousel {
	position: relative;
	width: 100%;
	max-width: var(--max-width);
	margin-left: auto;
	margin-right: auto;
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: 0 6px 12px rgba(0,0,0,0.1);
	margin-bottom: var(--spacing-section-vertical);
	aspect-ratio: 1200 / 486;
	max-height: var(--carousel-max-height);
}
.carousel-track {
	display: flex;
	height: 100%;
	width: 100%;
	transition: transform var(--transition-duration, 0.5s) ease;
}
.carousel-slide {
	flex: 0 0 100%;
	height: 100%;
	user-select: none;
}
.carousel-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius);
	pointer-events: none;
	user-select: none;
	display: block;
}
.carousel-button {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background-color: rgba(17, 24, 39, 0.6);
	border: none;
	color: var(--color-accent);
	font-size: clamp(1.5rem, 4vw, 2.25rem);
	width: clamp(32px, 8vw, 44px);
	height: clamp(32px, 8vw, 44px);
	border-radius: 50%;
	cursor: pointer;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s ease, transform 0.3s ease;
	user-select: none;
	box-shadow: 0 2px 6px rgba(212,175,55,0.7);
}
.carousel-button:hover, .carousel-button:focus {
	background-color: rgba(17, 24, 39, 0.85);
	outline: none;
	color: #fff;
	box-shadow: 0 4px 14px rgba(212,175,55,0.9);
	transform: translateY(-50%) scale(1.1);
}
.carousel-button.prev {
	left: 1rem;
}
.carousel-button.next {
	right: 1rem;
}
.carousel-indicators {
	position: absolute;
	bottom: 0.75rem;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 0.75rem;
	z-index: 15;
	user-select: none;
}
.carousel-indicator {
	width: var(--carousel-indicator-size);
	height: var(--carousel-indicator-size);
	background-color: rgba(212, 175, 55, 0.7);
	border-radius: 50%;
	cursor: pointer;
	transition: background-color 0.3s ease;
	box-shadow: 0 0 6px rgba(212,175,55,0.8);
	border: none;
	padding: 0;
}
.carousel-indicator.active {
	background-color: var(--color-accent);
	box-shadow: 0 0 8px 2px var(--color-accent);
}
.carousel-indicator:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: 2px;
}

/* Section heading margin-top for anchor offset */
section {
	margin-top: 2rem;
	scroll-margin-top: 3rem;
}
section h2 {
	text-align: center;
	margin-bottom: 2rem;
	color: var(--color-text-primary);
	font-weight: 800;
}

/* Categories Section */
.categories {
	padding-top: var(--spacing-section-vertical);
	padding-bottom: var(--spacing-section-vertical);
}

.category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2.5rem;
	max-width: var(--max-width);
	margin-left: auto;
	margin-right: auto;
}
.category-card-link {
	display: flex;
}
.category-card-link:hover,
.category-card-link:focus {
	text-decoration: none;
	outline: none;
}
.category-card {
	background: var(--color-card-bg);
	border-radius: var(--radius);
	box-shadow: 0 4px 14px rgba(0,0,0,0.07);
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	transition: box-shadow var(--transition-speed) ease, transform var(--transition-speed) ease;
	cursor: pointer;
	user-select: none;
	border: 1px solid transparent;
}
.category-card:hover, .category-card:focus-within {
	box-shadow: 0 10px 28px rgba(0,0,0,0.15);
	transform: translateY(-6px);
	outline: none;
	border-color: var(--color-accent);
}
.category-card img {
	margin-bottom: 1.25rem;
	border-radius: var(--radius);
	object-fit: cover;
	aspect-ratio: 4 / 3;
	width: 100%;
	box-shadow: 0 3px 8px rgba(0,0,0,0.07);
}
.category-title {
	font-weight: 800;
	font-size: 1.3rem;
	margin-bottom: 0.5rem;
	color: var(--color-text-primary);
}
.category-desc {
	flex-grow: 1;
	color: var(--color-text-secondary);
	margin-bottom: 1.2rem;
	font-size: 1rem;
	line-height: 1.4;
}
.category-card button {
	align-self: flex-start;
	background-color: var(--color-button-bg);
	color: var(--color-button-text);
	box-shadow: 0 2px 6px rgba(17,24,39,0.4);
	border: none;
	transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease, transform var(--transition-speed) ease;
}
.category-card button:hover, .category-card button:focus {
	background-color: var(--color-button-hover);
	color: var(--color-button-text);
	transform: scale(1.05);
	box-shadow: 0 4px 12px rgba(0,0,0,0.6);
	outline: none;
}

/* Dónde Comprar Section */
#donde-comprar {
	padding-top: var(--spacing-section-vertical);
	padding-bottom: var(--spacing-section-vertical);
	max-width: var(--max-width);
	margin-left: auto;
	margin-right: auto;
}
.stores-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(220px,1fr));
	gap: 2rem;
	list-style: none;
	padding: 0;
	margin: 0;
	justify-items: center;
}
.store-item {
	background: var(--color-card-bg);
	border-radius: var(--radius);
	box-shadow: 0 4px 14px rgba(0,0,0,0.07);
	width: 220px;
	padding: 1rem;
	text-align: center;
	transition: box-shadow var(--transition-speed) ease, transform var(--transition-speed) ease;
	user-select: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	border: 1px solid transparent;
}
.store-item:hover,
.store-item:focus-within {
	box-shadow: 0 10px 28px rgba(0,0,0,0.15);
	transform: translateY(-6px);
	outline: none;
	border-color: var(--color-accent);
}
.store-item a {
	color: var(--color-text-primary);
	font-weight: 700;
	font-size: 1rem;
	user-select: text;
	transition: color var(--transition-speed) ease;
}
.store-item a:hover,
.store-item a:focus {
	color: var(--color-accent);
	outline: none;
}
.store-logo {
	width: 150px;
	height: 150px;
	object-fit: contain;
	border-radius: 0.5rem;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 3px 8px rgba(0,0,0,0.07);
	margin-bottom: 1rem;
}

/* Contact Section */
.contact {
	padding-top: var(--spacing-section-vertical);
	padding-bottom: var(--spacing-section-vertical);
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	background: var(--color-card-bg);
	border-radius: var(--radius);
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
	box-shadow: 0 4px 14px rgba(0,0,0,0.07);
	color: var(--color-text-primary);
	border: 1px solid transparent;
	transition: border-color var(--transition-speed) ease;
}
.contact:hover, .contact:focus-within {
	border-color: var(--color-accent);
	outline: none;
	box-shadow: 0 10px 28px rgba(212,175,55,0.25);
}
form {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
label {
	font-weight: 700;
	color: var(--color-text-primary);
	margin-bottom: 0.3rem;
	display: block;
}
input, textarea {
	font-family: var(--font-body);
	font-size: 1rem;
	padding: 0.75rem 1rem;
	border: 1px solid #bfbfbf;
	border-radius: var(--radius);
	background: #fff;
	color: var(--color-text-primary);
	resize: vertical;
	transition: border-color var(--transition-speed) ease;
}
input:focus, textarea:focus {
	border-color: var(--color-accent);
	outline: none;
	box-shadow: 0 0 0 3px rgba(212,175,55,0.2);
}
textarea {
	min-height: 100px;
}
form button {
	width: fit-content;
	margin-left: auto;
	background-color: var(--color-button-bg);
	color: var(--color-button-text);
	box-shadow: 0 2px 6px rgba(17,24,39,0.4);
}
form button:hover, form button:focus {
	background-color: var(--color-button-hover);
	box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}

/* Footer */
footer {
	margin-top: 4rem;
	padding: 2rem 0;
	text-align: center;
	font-size: 0.9rem;
	color: var(--color-text-secondary);
	border-top: 1px solid #e5e7eb;
	font-weight: 600;
}

/* Category main info */
.category-header {
	text-align: center;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}
.category-description {
	font-size: 1.15rem;
	margin-top: 1rem;
	color: var(--color-text-secondary);
}

/* Products section - ajustes */
.product-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.5rem;
}
/* Producto como link envolvente */
.product-link {
	display: flex;
	flex-direction: column;
	background: var(--color-card-bg);
	border-radius: var(--radius);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
	padding: 1.5rem;
	cursor: pointer;
	user-select: none;
	border: 1px solid transparent;
	text-decoration: none;
	color: var(--color-text-primary);
	height: 100%;
	transition: box-shadow var(--transition-speed) ease,
	transform var(--transition-speed) ease, border-color var(--transition-speed) ease;
}
.product-link:hover,
    .product-link:focus-visible {
      box-shadow: 0 10px 28px rgba(0, 0, 0, 0.15);
      transform: translateY(-6px);
      outline: none;
      border-color: var(--color-accent);
      color: var(--color-text-primary);
    }
    .product-link img {
      border-radius: var(--radius);
      object-fit: cover;
      width: 100%;
      aspect-ratio: 1 / 1;
      margin-bottom: 1rem;
      box-shadow: 0 3px 8px rgba(0, 0, 0, 0.07);
    }
    .product-title {
      font-weight: 800;
      font-size: 1rem;
      margin-bottom: 0.75rem;
    }
    .product-price {
      font-weight: 700;
      font-size: 1.1rem;
      color: var(--color-accent);
      margin-top: auto;
      /* Empuja el botón para abajo si hay espacio */
    }
  /* Botón con color de fondo por defecto */
  .product-link button {
	margin-top: 1rem;
	font-weight: 700;
	background-color: var(--color-button-bg);
	border: none;
	color: #fff;
	cursor: pointer;
	padding: 0.5rem 1rem;
	border-radius: calc(var(--radius) / 2);
	transition: background-color var(--transition-speed) ease;
  }
  .product-link button:hover,
  .product-link button:focus {
	background-color: var(--color-accent-hover);
	outline: none;
  }


  
  .product-detail h1 {
	font-weight: 700;
	font-size: 2.5rem;
	margin-top: 2rem;
	margin-bottom: 2rem;
	text-align: center;
}

  .product-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	align-items: start;
  }
/* Responsive: stacked on smaller screens */
@media (max-width: 768px) {
	.product-columns {
	  grid-template-columns: 1fr;
	}
  }

/* Estilos para la galería de imágenes del producto */
.image-carousel {
	position: relative;
	overflow: visible; /* Permite que las sombras no se corten */
	padding-bottom: 1rem; /* Espacio para sombreados */
  }

  .carousel-main-image {
	width: 100%;
	aspect-ratio: 1 / 1; /* Mantiene la imagen cuadrada */
	border-radius: var(--radius);
	object-fit: cover;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	user-select: none;
  }
  
  /* Contenedor de miniaturas */
  .carousel-thumbnails {
	margin-top: 1rem;
	display: flex;
	gap: 1rem; /* Más espacio entre miniaturas */
	overflow-x: auto; /* Permite desplazamiento horizontal */
	padding-bottom: 0.8rem; /* Evita que se corten las sombras */
	padding-left: 0.5rem;
	padding-right: 0.5rem;
	scrollbar-height: auto;
  }
  
  .carousel-thumbnails::-webkit-scrollbar {
	height: 6px;
  }
  
  .carousel-thumbnails::-webkit-scrollbar-thumb {
	background: var(--color-accent);
	border-radius: 3px;
  }
  
  /* Estilos para las miniaturas */
  .thumbnail {
	border-radius: var(--radius);
	overflow: hidden;
	flex: 0 0 60px; /* Ancho fijo para miniaturas */
	height: 60px; /* Altura fija para miniaturas */
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	border: 2px solid transparent; /* Borde transparente por defecto */
	transition: border-color var(--transition-speed) ease;
  }
  /* Estilos específicos para los botones miniatura para neutralizar estilos globales de button */
  .thumbnail {
	border-radius: var(--radius);
	overflow: hidden;
	flex: 0 0 80px; /* Ancho aumentado a 80px */
	height: 80px;    /* Altura aumentada a 80px */
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	border: 2px solid transparent; /* Borde transparente por defecto */
	transition: border-color var(--transition-speed) ease;
	object-fit: cover;
	background-color: transparent !important; /* Fondo transparente */
	padding: 0; /* Eliminar padding extra */
	margin: 0; /* Eliminar margen extra */
	outline: none;
	transform: none !important; /* Evitar escalado en hover/focus */
  }
  .thumbnail:hover,
  .thumbnail:focus {
	background-color: transparent !important; /* No cambiar fondo */
	box-shadow: 0 6px 8px rgba(212, 175, 55, 0.5); /* Sombra más amplia */
	transform: none !important; /* Sin escalamiento */
	border-color: var(--color-accent);
  }
  .thumbnail.selected {
	border-color: var(--color-accent);
	box-shadow: 0 4px 8px rgba(212, 175, 55, 0.5);
  }
  
  .thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover; /* Asegura que la imagen cubra el área */
	display: block;
	user-select: none;
  }
  
  .thumbnail.selected {
	border-color: var(--color-accent); /* Cambia el color del borde al seleccionar */
	box-shadow: 0 4px 8px rgba(212, 175, 55, 0.5); /* Sombra al seleccionar */
  }
  
  /* Estilos para la información del producto */
  .product-info {
	display: flex;
	flex-direction: column;
	margin-top: 0;
  }

  .product-detail .product-price {
	font-weight: 700;
	font-size: 1.8rem;
	color: var(--color-accent);
	margin: 1rem 0 2rem 0;
  }
  
  .product-description {
	font-size: 1rem;
	color: var(--color-text-secondary);
	line-height: 1.6;
	margin-bottom: 1.5rem;
  }

  /* Accessibility focus */
  .thumbnail:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: 2px;
  }

/* Responsive menor pantalla (menos de 1024px) */
@media (max-width: 1024px) {
	.product-grid {
	  grid-template-columns: repeat(2, 1fr);
	}
  }
  /* Responsive móvil */
  @media (max-width: 480px) {
	.product-grid {
	  grid-template-columns: 1fr;
	}
  }

@media (max-width: 1024px) {
	.stores-list {
	grid-template-columns: repeat(3, minmax(160px,1fr));
	}
}

@media (max-width: 784px) {
	.stores-list {
	grid-template-columns: repeat(2, minmax(160px,1fr));
	}
}

@media (max-width: 480px) {
	h1 {
	font-size: 2.5rem;
	}
	h2 {
	font-size: 1.75rem;
	}
	.nav-container {
	height: 3.75rem;
	}
	nav ul {
	gap: 1rem;
	}
	.carousel {
	max-height: none;
	height: auto;
	}
	.store-item {
	width: 100%;
	max-width: 220px;
	}
	.store-logo {
	width: 100px;
	height: 100px;
	margin: auto;
	}
	.stores-list {
	grid-template-columns: repeat(2, minmax(160px,1fr));
	}
}

/* Estilos responsive para el header */
.menu-toggle {
	display: none;
	background: none;
	border: none;
	color: var(--header-text);
	font-size: 1.75rem;
	cursor: pointer;
	padding: 0;
}

@media (max-width: 768px) {
	.nav-container {
		flex-wrap: wrap;
		height: auto;
		padding: 1rem 0 0;
	}

	.menu-toggle {
		display: block;
	}

	nav {
		width: 100%;
	}

	nav ul {
		display: none;
		flex-direction: column;
		width: 100%;
		padding-top: 1rem;
		padding-bottom: 1rem;
		gap: 1rem;
	}

	nav ul.show {
		display: flex;
	}
}