/* =========================
   RESET Y BASE
========================= */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html, body{
  width:100%;
  height:100%;
  overflow:hidden;
}

:root{
  --accent:#ff4d1c;
  --ink:#0a0a08;
  --panel:#131210;
  --panel-2:#1c1a16;
  --panel-line:rgba(244,242,234,0.09);
  --text:#f4f2ea;
  --text-dim:rgba(244,242,234,0.62);
}

body{
  background:
    radial-gradient(ellipse 900px 600px at 50% 0%, rgba(255,77,28,0.10), transparent 60%),
    radial-gradient(circle at 50% 100%, #141414, #000 70%);
  font-family:'Inter', system-ui, sans-serif;
  color:#f4f2ea;
  -webkit-font-smoothing: antialiased;
}

/* =========================
   NAV PROFESIONAL FINAL
========================= */

.nav{
  position:fixed;
  top:50px;
  left:50%;
  transform:translateX(-50%);
  z-index:20;
  display:flex;
  flex-direction:column;
  align-items:center;
}

/* LOGO */
.nav-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  cursor:pointer;
  transition:0.3s;
  margin-bottom:10px;
}

.nav-inner:hover{
  transform:scale(1.05);
}

.nav-logo{
  width:60px;
  height:60px;
}

.logo-canvas{
  width:100%;
  height:100%;
}

.nav-brand{
  margin-top:6px;
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:11px;
  letter-spacing:0.18em;
  color:rgba(244,242,234,0.85);
}

/* =========================
   MENU CONTENEDOR (CLAVE)
========================= */

.nav-menu{
  margin-top:12px;

  /* 🔥 MISMO ANCHO QUE CARD */
  width:90vw;
  max-width:820px;

  /* 🔥 ALTURA CONTROLADA */
  max-height:70vh;
  overflow-y:auto;

  /* GRID PRO */
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:16px;

  padding:18px;

  background:rgba(19,18,16,0.92);
  backdrop-filter:blur(14px);
  border:1px solid var(--panel-line);

  border-radius:18px;
  box-shadow:0 20px 60px rgba(0,0,0,0.45);

  opacity:0;
  pointer-events:none;
  transform:translateY(-10px) scale(0.98);

  transition:all 0.35s cubic-bezier(.25,.8,.25,1);
}

.nav.open .nav-menu{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}

/* SCROLL PRO */
.nav-menu::-webkit-scrollbar{
  width:6px;
}

.nav-menu::-webkit-scrollbar-thumb{
  background:rgba(244,242,234,0.25);
  border-radius:10px;
}

/* =========================
   ITEMS
========================= */
.nav-item{
  width:100%;
}

/* =========================
   CARD GALERIA PRO
========================= */
.nav-card{
  position:relative;
  width:100%;
  aspect-ratio:1 / 1; /* 🔥 cuadradas automáticas */

  border-radius:16px;
  overflow:hidden;
  cursor:pointer;

  background:#000;

  transition:all 0.35s ease;
}

/* IMG */
.nav-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 0.6s ease;
}

/* OVERLAY */
.nav-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to top,
    rgba(0,0,0,0.65),
    rgba(0,0,0,0.1)
  );
  z-index:1;
}

/* TEXTO */
.nav-card span{
  position:absolute;
  bottom:12px;
  left:14px;

  color:#fff;
  font-family:'Space Grotesk', sans-serif;
  font-size:14px;
  font-weight:700;
  letter-spacing:0.02em;

  z-index:2;
  transition:0.3s;
}

/* HOVER */
.nav-card:hover{
  transform:scale(1.05);
  box-shadow:0 20px 50px rgba(0,0,0,0.35);
}

.nav-card:hover span{
  color:var(--accent);
}

.nav-card:hover img{
  transform:scale(1.12);
}

/* =========================
   MOBILE
========================= */
@media(max-width:600px){

  .nav-menu{
    grid-template-columns:repeat(2, 1fr);
    gap:12px;
  }

}
/* =========================
   CAROUSEL
========================= */
.carousel{
  width:100vw;
  height:100dvh;
  overflow:visible;
  perspective:1400px;
  position:relative;
  z-index:0;
}


.product-section{
  position:absolute;
  top:50%;
  left:50%;
  width:100%;
  height:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  transform-style:preserve-3d;
  transition:transform 0.8s cubic-bezier(0.25,0.8,0.25,1), opacity 0.5s ease;
  opacity:0;
  pointer-events:none;
  padding-top:120px; /* separa del menú */
  padding-bottom:40px; /* separa del borde inferior */
  z-index:1;
}

.product-section.active{
  position:fixed; /* 👈 CLAVE */
  top:50%;
  left:50%;
  transform:translate(-50%, -50%) scale(1) rotateY(0deg);
  z-index:5;
  opacity:1;
  pointer-events:auto;
}

.product-section.prev{
  transform:translate(-90%, -50%) scale(0.78) rotateY(35deg);
  opacity:1;
  pointer-events:auto;
  z-index:2;
}

.product-section.next{
  transform:translate(-10%, -50%) scale(0.78) rotateY(-35deg);
  opacity:1;
  pointer-events:auto;
  z-index:2;
}


/* =========================
   CARD
========================= */
.product-container{
  width:100%;
  height:100%; /* antes 100% */
  max-width:820px; /* más chica */
  max-height:75vh; /* límite vertical */
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  background:
    radial-gradient(ellipse 500px 320px at 78% 30%, rgba(255,77,28,0.10), transparent 65%),
    linear-gradient(155deg, var(--panel-2), var(--panel));
  border-radius:20px;
  padding:clamp(20px,2.5vw,45px);
  box-shadow:0 12px 35px rgba(0,0,0,0.35),0 45px 130px rgba(0,0,0,0.5);
  border:1px solid var(--panel-line);
  transition:transform 0.3s ease, box-shadow 0.3s ease;
  opacity: 1;

}

.product-info .eyebrow{
  display:inline-block;
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--accent);
  margin-bottom:10px;
}

.evo-badge{
  display:inline-block;
  margin-left:10px;
  padding:4px 11px;
  border-radius:999px;
  background:rgba(255,77,28,.14);
  border:1px solid rgba(255,77,28,.35);
  color:var(--accent);
  font-family:'Space Grotesk', sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  vertical-align:middle;
}

.product-info h1{
  font-family:'Space Grotesk', sans-serif;
  font-size:clamp(36px,5vw,68px);
  font-weight:700;
  margin-bottom:12px;
  letter-spacing:-0.01em;
  color:var(--text);
}

.product-info p{
  font-family:'Inter', sans-serif;
  font-size:clamp(15px,1.5vw,18px);
  color:var(--text-dim);
  line-height:1.5;
  margin-bottom:22px;
}

.product-info .buy-button{
  display:inline-block;
  background:linear-gradient(135deg, var(--accent), #c93a13);
  color:#fff;
  font-family:'Space Grotesk', sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:14px 30px;
  border-radius:999px;
  box-shadow:0 14px 30px -10px rgba(255,77,28,0.55);
}

.product-info .buy-button:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px -10px rgba(255,77,28,0.7);
}

/* VIEWER */
.product-viewer{
  width:100%;
  height:100%;
  min-height:300px;
  position:relative;
  border-radius:16px;
  overflow:hidden;
  display:flex;
  justify-content:center;
  align-items:center;
}

.webgl-canvas{
  width:100%;
  height:100%;
  display:block;
  border-radius:16px;
}

/* GLOW */
.product-viewer::after{
  content:"";
  position:absolute;
  width:clamp(200px,40vw,500px);
  height:clamp(200px,40vw,500px);
  background:radial-gradient(circle, rgba(255,77,28,0.16) 0%, rgba(255,77,28,0.05) 45%, transparent 80%);
  filter:blur(90px);
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  z-index:-1;
}

/* DRAG HINT */
.product-viewer::before{
  content:"Drag to rotate";
  position:absolute;
  bottom:14px;
  left:50%;
  transform:translateX(-50%);
  font-family:'Inter', sans-serif;
  font-size:11px;
  font-weight:500;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--text-dim);
  padding:5px 12px;
  border:1px solid var(--panel-line);
  border-radius:999px;
  z-index:2;
  pointer-events:none;
}

/* LOADER */
.loader{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--accent);
}

/* =========================
   FLECHAS
========================= */
.arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  height:70vh; /* igual que la card aprox */
  width:calc((100vw - 820px) / 2); /* espacio lateral dinámico */
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:6;
}

.arrow span{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  border-radius:50%;
  border:1px solid rgba(244,242,234,0.2);
  font-size:20px;
  color:rgba(244,242,234,0.65);
  transition:all 0.25s ease;
}

.arrow:hover span{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--ink);
  transform:scale(1.08);
}

.arrow.prev{
  left:0;
  justify-content:flex-start;
  padding-left:120px;
}

.arrow.next{
  right:0;
  justify-content:flex-end;
  padding-right:120px;
}

@media(max-width:900px){
  .product-container{
    grid-template-columns:1fr;
    text-align:center;
    transform:scale(0.9);
    max-height:70vh;
  }

  .product-viewer{
    height:40%;
  }

  .product-section.prev{
    transform:translate(-85%,-50%) scale(0.7) rotateY(15deg);
  }

  .product-section.next{
    transform:translate(-15%,-50%) scale(0.7) rotateY(-15deg);
  }

  .arrow{
    width:60px;
    height:60px;
    font-size:32px;
  }

  .arrow.prev{
    left:10px;
  }

  .arrow.next{
    right:10px;
  }
}

body::-webkit-scrollbar{
  width:0px;
  background:transparent;
}

/* =========================
   FOOTER
========================= */
.site-footer{
  position:fixed;
  bottom:16px;
  left:50%;
  transform:translateX(-50%);
  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(244,242,234,0.4);
  z-index:4;
  pointer-events:none;
}

@media(max-width:600px){
  .site-footer{ display:none; }
}

a{
  text-decoration:none;
  color:inherit;
  transition:color 0.25s ease;
}

*{
  transition:all 0.3s ease;
}
