/* ===== ESTILOS GLOBALES ===== */
:root {
  --dorado: #C8A462;
  --crema: #F4F3F1;
  --negro: #1F1E1C;
  --gris: #555555;
  --trans: all 0.3s ease;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  font-family: 'Montserrat', sans-serif;
  background: var(--crema);
  color: var(--negro);
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3 {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  color: var(--negro);
  letter-spacing: 0.02em;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--trans);
}

a:hover {
  color: var(--dorado);
}

img {
  max-width: 100%;
  display: block;
}

/* ===== NAVBAR ===== */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(6px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.nav-container {
  max-width: 1200px;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
}

.logo {
  font-family: 'Playfair Display', serif;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--negro);
}

nav ul {
  display: flex;
  gap: 1.8rem;
  list-style: none;
}

nav a {
  font-weight: 500;
  color: var(--negro);
  opacity: 0.85;
}

nav a:hover {
  color: var(--dorado);
  opacity: 1;
}

/* ===== BOTÓN HAMBURGUESA ===== */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  background: transparent;
  border: none;
}

.hamburger span {
  width: 25px;
  height: 2px;
  background: var(--negro);
  transition: var(--trans);
}

@media (max-width: 768px) {
  nav ul {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--crema);
    padding: 1.5rem 0;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    text-align: center;
  }

  nav ul.active {
    display: flex;
  }

  .hamburger {
    display: flex;
  }
}

/* ===== HERO BASE ===== */
.hero {
  margin-top: 5rem;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  max-width: 1200px;
  margin-inline: auto;
  padding: 4rem 2rem;
  gap: 2rem;
}

.hero-text h1 {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  background: linear-gradient(90deg, var(--negro), var(--dorado));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 1rem;
}
  /* ===== HERO IMAGE / MEDIA ===== */
.hero-media{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  background:#f6f3ee;
  box-shadow:0 14px 28px rgba(0,0,0,.08);
  isolation:isolate;
  min-height:420px;
}
.hero-media img{
  width:100%;height:100%;
  object-fit:cover;
  aspect-ratio:4/3;
  filter:contrast(102%) brightness(98%) saturate(105%);
  transition:transform 10s ease-out;
}
.hero-media:hover img{ transform:scale(1.04); }
.hero-overlay{
  position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,0) 45%),
    radial-gradient(140% 90% at 100% 100%,rgba(200,164,98,.18),transparent 55%);
}
.sparkle{
  position:absolute; right:18px; top:18px; width:26px; height:26px; opacity:.6;
  fill:var(--dorado);
  filter:drop-shadow(0 2px 6px rgba(200,164,98,.35));
  animation:sparkle-float 6s ease-in-out infinite;
}
@keyframes sparkle-float{
  0%,100%{transform:translateY(0) rotate(0deg);opacity:.65;}
  50%{transform:translateY(-6px) rotate(6deg);opacity:.9;}
}

.hero-text p {
  color: var(--gris);
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 2rem;
}

.btn-hero {
  display: inline-block;
  padding: 0.9rem 1.6rem;
  border-radius: 999px;
  background: var(--dorado);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 6px 20px rgba(200, 164, 98, 0.35);
  transition: var(--trans);
}

.btn-hero:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(200, 164, 98, 0.45);
}

/* ===== Media Query para Hero (responsive) ===== */
@media (max-width: 900px) {
  .hero {
    grid-template-columns: 1fr;
    padding: 2rem 1.5rem;
    margin-top: 4rem;
  }
  .hero-media {
    order: -1; /* Pone la imagen primero en móvil */
    min-height: 300px;
  }
  .hero-text h1 {
    font-size: clamp(2rem, 6vw, 2.5rem);
  }
}


/* ===== NOSOTROS ===== */
.nosotros {
padding: 5rem 2rem;
background: #fff;
border-top: 1px solid rgba(0,0,0,.05);
text-align: center;
}
.nosotros-contenido {
max-width: 900px;
margin: auto;
}
.nosotros h2 {
font-size: 2.4rem;
margin-bottom: 1rem;
}
.nosotros p {
color: #555;
line-height: 1.7;
margin-bottom: 1.2rem;
font-size: 1.05rem;
}
.btn-visit {
display: inline-block;
margin-top: 1rem;
background: #1f1e1c;
color: #fff;
padding: .9rem 1.6rem;
border-radius: 999px;
font-weight: 600;
transition: all .25s ease;
}
.btn-visit:hover {
background: var(--dorado);
color: #fff;
transform: translateY(-2px);
}

/* ===== OPINIONES (marquee infinito) ===== */
.opiniones {
padding: 3rem 0 4rem; /* Permitimos que el marquee ocupe todo el ancho */
background: #F4F3F1;
box-shadow: inset 0 6px 12px rgba(0,0,0,.05);
border-radius: 20px 20px 0 0;
overflow: hidden;
position: relative;
}
.opiniones h2 {
text-align: center;
margin-bottom: .5rem;
}
.opiniones .sub {
text-align: center;
opacity: .85;
margin-bottom: 2rem;
padding: 0 1rem;
}
.opiniones-marquee {
overflow: hidden;
position: relative;
/* Degradados en los bordes para un efecto 'fade' */
-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.opiniones-track {
display: flex;
gap: 1.5rem;
width: max-content;
animation: scroll-left 45s linear infinite;
}
@keyframes scroll-left {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.opiniones-track:hover {
animation-play-state: paused;
}
.opinion {
flex: 0 0 300px;
background: #fff;
border-radius: 14px;
padding: 1.2rem;
box-shadow: 0 10px 22px rgba(0,0,0,.08);
transition: transform .3s ease, box-shadow .4s ease;
}
.opinion:hover {
transform: translateY(-6px);
box-shadow: 0 14px 26px rgba(200,164,98,.25);
}
.opinion .stars {
background: linear-gradient(90deg,#C8A462,#E7CA8E,#C8A462);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
font-size: 1.2rem;
letter-spacing: .05em;
}
.opinion p {
margin: .25rem 0 .75rem;
color: #333;
}
.opinion .autor {
font-weight: 600;
opacity: .9;
}
@media (max-width:600px){
.opinion {
  flex: 0 0 260px;
  padding: 1rem;
}
}
.opiniones-cta {
text-align: center;
margin-top: 2rem;
padding: 0 1rem;
}
.btn-review {
display: inline-block;
padding: .9rem 1.4rem;
border-radius: 999px;
background: var(--dorado);
color: #fff;
font-weight: 700;
text-decoration: none;
box-shadow: 0 10px 22px rgba(200,164,98,.35);
transition: transform .15s ease, box-shadow .2s ease;
}
.btn-review:hover {
transform: translateY(-2px);
box-shadow: 0 14px 26px rgba(200,164,98,.45);
}
/* ===== CONTACTO + MAPA ===== */
.contacto {
padding: 4rem 1.5rem; /* Añadimos padding lateral para móvil */
}
.contacto .contacto-wrap {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
background: #fff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 10px 22px rgba(0, 0, 0, 0.06);
}
.contacto .contacto-texto {
padding: 2.5rem;
}
.contacto h2 {
margin-bottom: 0.75rem;
}
.contacto .lead {
color: #555;
margin-bottom: 1rem;
}
.contacto-datos {
list-style: none;
color: #333;
margin: 1rem 0 1.25rem;
}
.contacto-datos li {
margin: 0.25rem 0;
line-height: 1.5;
}
.contacto .horario h3 {
font-size: 1.1rem;
margin: 0.5rem 0 0.25rem;
}
.contacto .horario p {
margin-bottom: 0.6rem;
opacity: 0.9;
}
.contacto .cta-maps {
margin-top: 1rem;
}
.contacto-mapa iframe {
width: 100%;
height: 100%;
min-height: 360px;
border: 0;
display: block;
filter: grayscale(10%) contrast(105%) brightness(100%);
transition: transform 0.4s ease;
}
.contacto-mapa iframe:hover {
transform: scale(1.02);
}
@media (max-width: 900px) {
.contacto .contacto-wrap {
  grid-template-columns: 1fr;
}
.contacto .contacto-texto {
  padding: 2rem 1.5rem;
}
.contacto-mapa iframe {
  min-height: 300px;
}
}

/* ===== FOOTER ===== */
footer {
background: #1f1e1c;
color: #f4f3f1;
padding: 1.5rem 1rem;
text-align: center;
margin-top: 2rem;
border-top: 1px solid rgba(255, 255, 255, 0.08);
font-size: 0.9rem;
}
footer a {
color: var(--dorado);
text-decoration: none;
transition: color 0.3s ease;
}
footer a:hover {
color: #fff;
}
footer .sep {
opacity: 0.5;
padding: 0 0.5rem;
}
/* ===== WHATSAPP FLOTANTE ===== */
.whatsapp-float{
position: fixed; right: 18px; bottom: 18px; z-index: 9999;
width: 56px; height: 56px; border-radius: 50%;
background: #25D366;
display: flex; align-items: center; justify-content: center;
box-shadow: 0 10px 22px rgba(0,0,0,.20);
transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.whatsapp-float:hover{
transform: translateY(-2px);
box-shadow: 0 14px 26px rgba(0,0,0,.25);
filter: saturate(115%);
}
.whatsapp-float svg{ width: 28px; height: 28px; fill: #fff; display: block; }

/* ===== REVEAL (aparición suave al hacer scroll) ===== */
.reveal{
opacity: 0;
transform: translateY(14px);
transition: opacity .6s ease, transform .6s ease;
}
.reveal.show{
opacity: 1;
transform: none;
}

/* ===== ESTADOS DE FOCO (accesibilidad) ===== */
a:focus-visible, button:focus-visible, .btn-hero:focus-visible, .btn-visit:focus-visible, .btn-review:focus-visible{
outline: 2px solid var(--dorado);
outline-offset: 2px;
border-radius: 8px;
}

/* ===== REDUCE MOTION ===== */
@media (prefers-reduced-motion: reduce){
*{ scroll-behavior: auto; }
.hero-media img, .btn-hero, .opinion, .whatsapp-float, .opiniones-track { 
  transition: none; 
  animation: none;
}
}
/* Paleta base (ajustable a tu tema) */
:root{
  --crema: #F6F0E7;
  --dorado: #C8A462;
  --negro: #1F1E1C;
  --blanco: #FFFFFF;
  --borde: rgba(0,0,0,.08);
  --sombra: 0 8px 24px rgba(0,0,0,.08);
  --sombra-hover: 0 12px 32px rgba(0,0,0,.14);
}

/* Sección */
#categorias.section { padding: 64px 20px; background: var(--blanco); }
#categorias .categorias-header { text-align:center; margin-bottom: 22px; }
#categorias .categorias-header h2 {
  font-family: "Playfair Display", serif;
  font-weight: 600; letter-spacing: .2px; color: var(--negro);
  font-size: clamp(24px, 2.6vw, 34px); margin: 0 0 6px;
}
#categorias .categorias-header .sub {
  font-family: "Montserrat", system-ui, -apple-system, sans-serif;
  color: #6b6b6b; font-size: 0.98rem; margin: 0;
}

/* Grid de tarjetas */
.categorias-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 14px; align-items: stretch; justify-items: stretch;
  max-width: 1100px; margin: 0 auto;
}
@media (max-width: 1100px){ .categorias-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 720px){ .categorias-grid { grid-template-columns: repeat(2, 1fr); } }

/* Tarjeta */
.cat-card {
  position: relative;
  border: 1px solid var(--borde);
  border-radius: 16px;
  background: radial-gradient(120% 100% at 100% 0%, rgba(200,164,98,0.10) 0%, rgba(200,164,98,0.04) 50%, rgba(255,255,255,0.8) 100%), var(--blanco);
  box-shadow: var(--sombra);
  padding: 18px 16px;
  min-height: 120px;
  display: grid; place-content: center; place-items: center; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  outline: none;
  overflow: hidden;
}
.cat-card::after{ /* borde dorado suave al hover/focus */
  content:""; position:absolute; inset:0; border-radius:16px; pointer-events:none;
  border: 2px solid transparent;
}
.cat-card:hover, .cat-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: var(--sombra-hover);
  border-color: rgba(200,164,98,0.35);
}
.cat-card:hover::after, .cat-card:focus-visible::after{
  border-color: rgba(200,164,98,0.65);
}

/* Contenido de tarjeta */
.cat-label{
  font-family: "Montserrat", system-ui, -apple-system, sans-serif;
  font-weight: 600; letter-spacing: .3px; color: var(--negro);
  font-size: 1rem; margin-top: 8px;
}
.cat-icon{
  width: 30px; height: 30px; opacity: .9; margin-bottom: 6px;
  fill: var(--dorado);
}

/* Animación de “flotar” muy sutil y respetuosa */
@media (prefers-reduced-motion: no-preference){
  .cat-card{ animation: floaty 6s ease-in-out infinite; }
  .cat-card:nth-child(odd){ animation-delay: .2s; }
  .cat-card:nth-child(3n){ animation-delay: .4s; }
}
@keyframes floaty{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-2px); }
}

/* Aparición al entrar en viewport */
.cat-card.is-hidden{ opacity: 0; transform: translateY(8px); }
.cat-card.is-visible{ opacity: 1; transform: translateY(0); transition: opacity .5s ease, transform .5s ease; }
/* Resalte breve al llegar por ancla */
.highlight { box-shadow: 0 0 0 4px rgba(200,164,98,.25) inset; transition: box-shadow .6s ease; }
#cat-anillos, #cat-pendientes, #cat-collares,
#cat-pulseras, #cat-alianzas, #cat-relojes {
  padding: 80px 20px;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

#cat-anillos h3, #cat-pendientes h3, #cat-collares h3,
#cat-pulseras h3, #cat-alianzas h3, #cat-relojes h3 {
  font-family: "Playfair Display", serif;
  font-weight: 600;
  color: var(--negro);
  margin-bottom: 12px;
}

#cat-anillos p, #cat-pendientes p, #cat-collares p,
#cat-pulseras p, #cat-alianzas p, #cat-relojes p {
  font-family: "Montserrat", sans-serif;
  color: #444;
  max-width: 680px;
  margin: 0 auto;
  font-size: 1rem;
}
/* que nada bloquee los clics en categorías */
.hero-overlay { pointer-events: none; }
.categorias-grid, .cat-card { position: relative; z-index: 2; }
/* === ANILLOS · UI V2 (minimalista + interactiva) ======================= */
/* Usa tu paleta global ya definida en :root (crema/dorado/negro/blanco)  */

/* HERO de categoría con tipografía y layout fluidos */
.hero-categoria{
  --overlay: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.45) 60%, rgba(0,0,0,.10) 100%);
  background: var(--overlay), url('imagenes/hero-joya.jpg') center/cover no-repeat;
  color:#fff; text-align:center;
  padding: clamp(3.5rem, 6vw, 7rem) 1.25rem clamp(2rem, 4vw, 3rem);
  position: relative; overflow: hidden;
}
.hero-categoria::after{ /* grano dorado muy sutil */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(60% 40% at 80% 10%, rgba(200,164,98,.12) 0%, transparent 60%),
    radial-gradient(50% 35% at 10% 30%, rgba(200,164,98,.10) 0%, transparent 70%);
  mix-blend-mode: screen;
}
.hero-categoria h1{
  font-family:"Playfair Display", serif;
  font-weight:600; letter-spacing:.2px;
  font-size: clamp(2rem, 4.2vw, 3rem);
  color: var(--crema);
  margin: 0 0 .4rem;
}
.hero-categoria p{
  font-family:"Montserrat", system-ui, -apple-system, sans-serif;
  color: #F0ECE3; opacity:.95;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  margin: 0;
}

/* GRID de productos con más “aire” y ritmo visual */
.productos-grid{
  --gap: clamp(1rem, 2.5vw, 2rem);
  display:grid; gap: var(--gap);
  grid-template-columns: repeat(auto-fit, minmax(min(270px, 46%), 1fr));
  padding: clamp(2rem, 4.5vw, 4rem) clamp(1rem, 3vw, 2rem);
  background: linear-gradient(180deg, #F6F0E7 0%, #FFFFFF 100%);
}

/* Tarjeta “elevada” con detalle dorado y micro-interacciones */
.producto{
  position: relative; overflow:hidden;
  border-radius: 14px; background:#fff;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  will-change: transform, box-shadow;
  isolation: isolate; /* para pseudo-elementos */
}
.producto::before{ /* halo dorado sutil en los bordes */
  content:""; position:absolute; inset:0; border-radius: inherit; pointer-events:none;
  background: radial-gradient(80% 60% at 50% -10%, rgba(200,164,98,.18) 0%, transparent 60%);
  opacity:.0; transition: opacity .28s ease;
}
.producto:hover,
.producto:focus-within{
  transform: translateY(-6px);
  box-shadow: 0 14px 36px rgba(0,0,0,.12);
  border-color: rgba(200,164,98,.35);
}
.producto:hover::before,
.producto:focus-within::before{ opacity:.75; }

/* Imagen con zoom suave y borde inferior dorado */
.producto img{
  width:100%; aspect-ratio: 4/3; object-fit: cover; display:block;
  border-bottom: 2px solid var(--dorado);
  transform: scale(1);
  transition: transform .5s ease;
}
.producto:hover img{ transform: scale(1.03); }

/* Contenido */
.producto h3{
  font-family:"Montserrat", sans-serif; font-weight:600;
  color: var(--negro);
  font-size: clamp(1rem, 1.4vw, 1.08rem);
  letter-spacing:.2px;
  margin: .95rem 1rem .25rem;
}
.precio{
  color: var(--dorado);
  font-weight: 700; letter-spacing:.2px;
  margin: 0 1rem 1.15rem;
  font-size: .98rem;
}

/* Badges (si decides añadir <span class="badge">Oro</span>) */
.badge{
  display:inline-block; margin: .25rem 1rem 0;
  padding: .18rem .55rem; border-radius: 999px;
  background: rgba(200,164,98,.12);
  border: 1px solid rgba(200,164,98,.45);
  color: #6a5527; font-size: .78rem; font-weight:600;
}

/* CTA final refinado */
.cta-final{
  text-align:center; color:#F6F0E7;
  background: radial-gradient(70% 60% at 50% 0%, rgba(200,164,98,.16) 0%, rgba(200,164,98,.05) 30%, transparent 70%), #1F1E1C;
  padding: clamp(2.2rem, 4.5vw, 4rem) clamp(1rem, 3vw, 2rem);
}
.cta-final h2{
  font-family:"Playfair Display", serif;
  color: var(--dorado);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  margin: 0 0 .4rem;
}
.cta-final p{
  margin: .5rem auto 1.4rem; max-width: 640px;
  color:#EAE6DD; font-size: clamp(1rem, 1.5vw, 1.1rem);
}
.btn-visit{
  display:inline-block; text-decoration:none;
  background: var(--dorado); color:#fff;
  padding: .85rem 1.45rem; border-radius: 10px;
  border: 1px solid rgba(0,0,0,.1);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  box-shadow: 0 6px 18px rgba(200,164,98,.28);
}
.btn-visit:hover{ transform: translateY(-2px); box-shadow: 0 10px 26px rgba(200,164,98,.4); }
.btn-visit:active{ transform: translateY(0); }

/* Accesibilidad: respeta usuarios con reducción de movimiento */
@media (prefers-reduced-motion: reduce){
  .producto, .producto img, .btn-visit{ transition: none !important; }
  .producto:hover{ transform:none; }
}