/* =========================
   HEADER TECHNOSENSE (estilo Samaria, colores TS)
   ========================= */

/* Reset ligero SOLO para el header */
header * { box-sizing: border-box; }

/* HEADER sticky + fade por scroll */
header{
  position: sticky;
  top: 0;
  z-index: 999;

  background: #fff;
  color: #0f172a;

  transition:
    opacity 0.25s ease-out,
    transform 0.25s ease-out,
    background-color 0.25s ease-out;
}

/* =========================
   TOP BAR
   ========================= */
.header-top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 5%;
  background: #fff;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  position: relative;
}

/* Logo: rectángulo horizontal + recorte (igual que ya usabas) */
.header-top .logo-link{
  display: block;
  width: clamp(140px, 16vw, 220px);
  height: clamp(40px, 6vw, 70px);
  overflow: hidden;
}
.header-top .logo-link img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease-out;
}
.header-top .logo-link:hover img{ transform: scale(1.06); }

/* =========================
   HAMBURGER (base + animación a "X")
   ========================= */

/* Hamburger (base: oculto en desktop) */
.hamburger{
  display: none;
  flex-direction: column;
  cursor: pointer;
  user-select: none;

  /* mejora visual / tacto */
  gap: 6px;
  padding: 6px;
  border-radius: 12px;

  transition: transform 0.2s ease, background 0.2s ease;
}

.hamburger:hover{
  background: rgba(0,0,0,0.04);
}

.hamburger span{
  width: 22px;
  height: 2px;
  background: #0f172a;     /* TS base */
  border-radius: 2px;

  transition:
    transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.25s ease,
    background 0.2s ease;
  transform-origin: center;
}

/* Cuando el NAV overlay está abierto (nav-open) -> convertir a X */
header.nav-open #hamburger span:nth-child(1){
  transform: translateY(8px) rotate(45deg);
}
header.nav-open #hamburger span:nth-child(2){
  opacity: 0;
  transform: scaleX(0.2);
}
header.nav-open #hamburger span:nth-child(3){
  transform: translateY(-8px) rotate(-45deg);
}

/* En nav-open, líneas blancas sobre fondo oscuro */
header.nav-open #hamburger span{
  background: #ffffff;
}

/* ============================================
   NAV REDES SOCIALES — ESTILO ACORDEÓN (DESKTOP)
   ============================================ */

.social-nav {
  display: flex;
  align-items: center;
  --social-active: 0; /* controla si se “abre” el texto de las redes */
}

.social-nav ul {
  padding: 0;
  margin: 0;
  display: inline-grid;
  grid-auto-flow: column;
  list-style: none;

  grid-template-columns:
    auto
    repeat(3, calc((var(--social-active, 0) * 110px) + 24px));

  column-gap: 0.15rem;

  transition: grid-template-columns 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.social-nav li {
  display: grid;
  justify-content: end;
  z-index: calc(var(--count) - var(--index));
}

.social-nav a {
  background: rgba(19, 198, 202, 0.12);
  border-radius: 999px;
  padding: 0.30rem 0.70rem;
  margin: 0;

  color: #222727;
  font-size: 0.8rem;
  font-weight: 500;
  text-decoration: none;

  backdrop-filter: blur(18px);
  border: 1px solid rgba(19, 198, 202, 0.38);

  display: inline-flex;
  align-items: center;

  transition:
    background 0.2s ease-out,
    color 0.2s ease-out,
    box-shadow 0.25s ease-out,
    transform 0.2s ease-out;
}

.social-inner {
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: 18px auto;
  align-items: center;
  column-gap: 0.35rem;
}

.social-inner i {
  font-size: 0.95rem;
}

.social-label {
  white-space: nowrap;
  font-size: 0.8rem;
}

.social-nav li:first-of-type .social-label {
  opacity: 1;
  transform: none;
}

.social-nav li:nth-of-type(n + 2) .social-label {
  opacity: var(--social-active, 0);
  transform: translateX(6px);
  transition:
    opacity 0.25s ease-out,
    transform 0.25s ease-out;
}

.social-nav a:hover,
.social-nav a:focus-visible {
  background: #13c6ca;
  color: #0b1121;
  box-shadow:
    0 0 0 1px #13c6ca,
    0 0 18px rgba(19, 198, 202, 0.8);
  transform: translateY(-1px);
}

.social-nav ul:hover,
.social-nav ul:focus-within {
  --social-active: 1;
}

/* =========================
   BANNER NAV (bottom bar)
   ========================= */
.banner-nav{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 5%;
  background: linear-gradient(to right, #266b58, #31cda8);
  position: relative;
}

.banner-nav nav{
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: 18px;
}

/* Botones del menú (estilo “pills” tipo Samaria, con colores TS) */
.banner-nav nav a{
  text-decoration: none;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  font-weight: 700;

  color: #fff;
  padding: 0.45rem 1.2rem;
  border-radius: 999px;

  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.22);
  backdrop-filter: blur(8px);

  transition:
    transform 0.15s ease-in-out,
    background-color 0.2s ease-in-out,
    box-shadow 0.2s ease-in-out,
    letter-spacing 0.15s ease-in-out;
}

.banner-nav nav a:hover{
  transform: translateY(-1px);
  letter-spacing: 0.08em;
  background: rgba(255,255,255,0.18);
  box-shadow: 0 10px 24px rgba(0,0,0,0.18);
}

.banner-nav nav a.active{
  background: rgba(0,0,0,0.18);
  border-color: rgba(255,255,255,0.28);
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.22);
}

/* =========================
   ICONS (search/cart/login)
   ========================= */
.banner-nav .icons{
  display: flex;
  align-items: center;
  gap: 14px;
  margin-left: auto;
}

.banner-nav .icons a,
.banner-nav .icons i{
  color: #fff;
  font-size: 1.1rem;
  cursor: pointer;
  transition: transform 0.3s ease, color 0.3s ease;
}

.banner-nav .icons a:hover,
.banner-nav .icons i:hover{
  transform: scale(1.08);
  color: #0b1b16;
}

/* Search */
.search-container{ position: relative; display: flex; align-items: center; }
.search-container input{
  width: 0;
  opacity: 0;
  padding: 6px 10px;
  border: none;
  border-radius: 999px;
  outline: none;
  font-size: 0.9rem;
  transition: all 0.3s ease;
}
.search-container.active input{
  width: 180px;
  opacity: 1;
  margin-right: 8px;
}

/* Login dropdown */
.login-dropdown{ position: relative; display: inline-flex; align-items: center; }
.login-menu{
  display: none;
  position: absolute;
  top: 40px;
  right: 0;
  background: #fff;
  color: #111;
  border-radius: 12px;
  padding: 12px 18px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.18);
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-10px);
  transition: all 0.28s ease;
  z-index: 1000;
}
.login-dropdown.active .login-menu{
  display: block;
  opacity: 1;
  transform: translateY(0);
}
.login-menu a{
  display: block;
  text-decoration: none;
  color: #0f172a;
  font-weight: 600;
  padding: 6px 0;
  transition: color 0.18s ease, transform 0.12s ease;
}
.login-menu a:hover{
  color: #266b58;
  transform: scale(1.02);
}

/* =========================
   RESPONSIVE (móvil) — overlays tipo Samaria
   ========================= */
   @media (max-width: 768px){

    /* TOP: logo centrado, hamburger izquierda, redes derecha */
    .header-top{
      justify-content: center;
      gap: 0.5rem;
      overflow: hidden;
      padding: 10px 5%;
    }
  
    .hamburger{
      display: flex;
      position: absolute;
      left: 5%;
    }
  
    .social-nav{
      position: absolute;
      right: 5%;
      z-index: 1;
  
      transform: translateX(0) scale(1);
      opacity: 1;
      transition:
        transform 2s cubic-bezier(0.16, 1, 0.3, 1),
        opacity 2s cubic-bezier(0.16, 1, 0.3, 1),
        background-color 2s cubic-bezier(0.16, 1, 0.3, 1);
    }
  
    /* Estado base en móvil: solo botón “Redes” */
    .social-nav ul{
      padding: 0;
      margin: 0;
      list-style: none;
      display: flex;
      transition:
        grid-template-columns 2s cubic-bezier(0.16, 1, 0.3, 1),
        column-gap 2s cubic-bezier(0.16, 1, 0.3, 1);
    }
  
    .social-nav li{
      display: none;
      opacity: 0;
      pointer-events: none;
      transform: translateY(-10px) scale(0.95);
      transition:
        opacity 2s cubic-bezier(0.16, 1, 0.3, 1),
        transform 2s cubic-bezier(0.16, 1, 0.3, 1);
    }
  
    .social-nav li:first-child{
      display: block;
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0) scale(1);
    }
  
    .social-label{ display: none !important; }
  
    .social-nav a{
      padding: 0.45rem;
      min-width: auto;
      border-radius: 999px;
      justify-content: center;
    }
    .social-inner{
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .social-inner i{ font-size: 1.25rem; }
  
    /* Overlay redes (social-open) */
    .header-top.social-open{
      justify-content: center;
      transition: all 2s cubic-bezier(0.16, 1, 0.3, 1);
    }
  
    .header-top.social-open .logo-link,
    .header-top.social-open .hamburger{
      opacity: 0;
      pointer-events: none;
      transform: scale(0.9);
      transition:
        opacity 2s cubic-bezier(0.16, 1, 0.3, 1),
        transform 2s cubic-bezier(0.16, 1, 0.3, 1);
    }
  
    .header-top.social-open .social-nav{
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
  
      background-color: rgba(255, 255, 255, 0.98);
      z-index: 3;
      transform: translateX(0) scale(1.02);
      opacity: 1;
    }
  
    .header-top.social-open .social-nav ul{
      display: grid;
      grid-template-columns: repeat(4, 58px);
      gap: 0.7rem;
      justify-content: center;
    }
  
    .header-top.social-open .social-nav li{
      display: block;
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0) scale(1);
    }
  
    .header-top.social-open .social-nav li:nth-child(1){ transition-delay: 0.2s; }
    .header-top.social-open .social-nav li:nth-child(2){ transition-delay: 0.5s; }
    .header-top.social-open .social-nav li:nth-child(3){ transition-delay: 0.8s; }
    .header-top.social-open .social-nav li:nth-child(4){ transition-delay: 1.1s; }
  
    /* Bottom bar */
    .banner-nav{
      justify-content: center;
      padding: 0;
      border-top: none;
      overflow: hidden;
    }
  
    .banner-nav nav{
      flex-direction: column;
      align-items: center;
      gap: 1.2rem;
  
      opacity: 0;
      transform: translateY(10px);
      pointer-events: none;
      max-height: 0;
  
      transition:
        opacity 2s cubic-bezier(0.16, 1, 0.3, 1),
        transform 2s cubic-bezier(0.16, 1, 0.3, 1),
        max-height 2s cubic-bezier(0.16, 1, 0.3, 1);
    }
  
    .banner-nav nav a{
      width: 100%;
      max-width: 280px;
      text-align: center;
      padding: 0.75rem 1.8rem;
  
      opacity: 0;
      transform: translateY(8px) scale(0.98);
  
      transition:
        opacity 2s cubic-bezier(0.16, 1, 0.3, 1),
        transform 2s cubic-bezier(0.16, 1, 0.3, 1);
  
      /* ====== TECHNOSENSE: efecto botón levantado en overlay ====== */
      background: rgba(255,255,255,0.14);
      border: 1px solid rgba(255,255,255,0.28);
      backdrop-filter: blur(10px);
      box-shadow:
        0 14px 30px rgba(0,0,0,0.28),
        0 2px 0 rgba(255,255,255,0.22) inset,
        0 -10px 18px rgba(0,0,0,0.18) inset;
      color: #fff;
      text-shadow: 0 1px 10px rgba(0,0,0,0.25);
      letter-spacing: 0.08em;
    }
  
    /* Hover (si aplica en móvil/tablet) */
    .banner-nav nav a:hover{
      transform: translateY(-2px) scale(1);
      background: rgba(255,255,255,0.20);
      box-shadow:
        0 18px 36px rgba(0,0,0,0.33),
        0 2px 0 rgba(255,255,255,0.26) inset,
        0 -12px 20px rgba(0,0,0,0.20) inset;
    }
  
    /* Active (presionado) */
    .banner-nav nav a.active{
      background: rgba(0,0,0,0.16);
      border-color: rgba(255,255,255,0.34);
      box-shadow:
        0 8px 18px rgba(0,0,0,0.22),
        0 8px 18px rgba(0,0,0,0.22) inset;
      transform: translateY(0) scale(1);
    }
  
    /* Ocultar iconos al abrir overlay (para que sea limpio) */
    .banner-nav .icons{ display: none; }
  
    /* Overlay NAV (nav-open) */
    header.nav-open{
      position: fixed;
      inset: 0;
      height: 100vh;
      z-index: 1000;
  
      /* ====== TECHNOSENSE: fondo overlay (igual vibe que banner-nav) ====== */
      background: linear-gradient(135deg, #1f5b4a 0%, #31cda8 55%, #13c6ca 100%);
  
      display: flex;
      flex-direction: column;
  
      /* feel tipo Samaria */
      backdrop-filter: blur(10px);
    }
  
    header.nav-open .header-top{
      opacity: 0;
      pointer-events: none;
      transform: scale(0.9);
      transition:
        opacity 2s cubic-bezier(0.16, 1, 0.3, 1),
        transform 2s cubic-bezier(0.16, 1, 0.3, 1);
    }
  
    header.nav-open .banner-nav{
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: visible;
      background: transparent;
    }
  
    header.nav-open .banner-nav nav{
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
      max-height: 700px;
    }
  
    header.nav-open .banner-nav nav a:nth-child(1){ transition-delay: 0.3s; opacity: 1; transform: translateY(0) scale(1); }
    header.nav-open .banner-nav nav a:nth-child(2){ transition-delay: 0.7s; opacity: 1; transform: translateY(0) scale(1); }
    header.nav-open .banner-nav nav a:nth-child(3){ transition-delay: 1.1s; opacity: 1; transform: translateY(0) scale(1); }
    header.nav-open .banner-nav nav a:nth-child(4){ transition-delay: 1.5s; opacity: 1; transform: translateY(0) scale(1); }
}