:root {
   /* PALETA PERSONALIZADA */
   --color1: #0EFBD8;
   --color2: #0FC0AF;
   --color3: #12BCAD;

   /* equivalencias del diseño original */
   --rich-black-fogra-29: #ffffff;
   /* títulos */
   --silver-chalice: #9ca3af;
   --floral-white: #0b0b0b;
   --raisin-black: #0f0f0f;
   --sonic-silver: #cbd5e1;
   --mango-tango: var(--color1);
   --orange-web: var(--color2);
   --cultured: #111111;
   --mantis: var(--color1);
   --gambog: var(--color3);
   --black: #000000;
   --white: #ffffff;
   --onyx: #e5e7eb;

   --gradient: linear-gradient(90deg,
         #0b0b0b 20%,
         #111111 100%);

   /* fuentes */
   --ff-poppins: "Poppins", sans-serif;
   --ff-rubik: "Rubik", sans-serif;
   --dm-sans: "DM Sans", sans-serif;

   /* tamaños */
   --fs-1: 1.875rem;
   --fs-2: 1.75rem;
   --fs-3: 1.5rem;
   --fs-4: 1.25rem;
   --fs-5: 1.125rem;

   --fw-500: 500;
   --fw-700: 700;
   --transition: 0.2s ease-in-out;
   --section-padding: 80px;

   /* NUEVA PALETA UI */
   --primary: #0EFBD8;
   --primary-foreground: #000000;

   --secondary: #0FC0AF;
   --accent: #12BCAD;

   --card: #111111;
   --card-foreground: #ffffff;

   --muted: #1f2937;
   --muted-foreground: #9ca3af;

   --border: #1a1a1a;

   /* EXTRA PRO (contraste visual 🔥) */
   --success: #22c55e;
   --warning: #f59e0b;
   --danger: #ef4444;

   /* GRADIENTES BONITOS */
   --gradient-primary: linear-gradient(135deg, #0EFBD8, #12BCAD);
   --gradient-card: linear-gradient(145deg, #111111, #0f0f0f);
}

/* reset */

*,
*::before,
*::after {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

li {
   list-style: none;
}

a {
   text-decoration: none;
}

a,
img,
span,
button,
ion-icon {
   display: block;
}

button {
   background: none;
   border: none;
   font: inherit;
   cursor: pointer;
}

.buttons {
   display: flex;
   gap: 15px;
   align-items: center;
   flex-wrap: wrap;
}

html {
   font-size: clamp(14px, 1vw, 18px);
   scroll-behavior: smooth;
}

body {
   background: #090909;
   color: var(--white);
   font-family: var(--ff-poppins);
}

/* ESTILOS GENERALES */

.container {
   width: min(90%, 1400px);
   margin-inline: auto;
   padding-inline: 15px;
}

.btn {
   color: var(--white);
   font-family: var(--ff-poppins);
   padding: clamp(12px, 1.2vw, 20px) clamp(20px, 2vw, 30px);
   border-radius: 1rem;
   transition: var(--transition);
}

.carrito-btn {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
}

.btn-secondary {
   background: #000;
   box-shadow: inset 0 -10px 20px rgba(14, 251, 216, 0.2);
}

.btn-secondary:is(:hover, :focus) {
   background: var(--color3);
   box-shadow: 0px 8px 25px rgba(14, 251, 216, 0.35);
}

.btn-primary {
   background: var(--color1);
   color: #000;
   box-shadow: 0px 8px 25px rgba(15, 192, 175, 0.4);
}

.btn-primary:is(:hover, :focus) {
   background: var(--color3);
   color: #fff;
   transform: translateY(-3px);
   box-shadow: 0px 0px 20px rgba(14, 251, 216, 0.4);
}

.h1,
.h2,
.h3 {
   color: var(--white);
}

.h1 {
   font-size: clamp(2rem, 4vw, 4rem);
   line-height: 1.4;
   font-weight: var(--fw-700);
}

.title {
   color: var(--color1) !important;
}

.h2 {
   font-size: clamp(1.5rem, 3vw, 2.5rem);
   line-height: 1.6;
}

.h3 {
   color: var(--onyx);
   font-size: clamp(1.2rem, 2vw, 1.6rem);
   line-height: 1.3;
}

.section-text,
.card-text,
.card-subtitle {
   font-family: var(--ff-rubik);
   color: var(--sonic-silver);
   font-size: var(--fs-5);
   line-height: 1.5;
}

.vector-line {
   display: none;
}

/*  HEADER */

.header {
   padding-block: 25px;
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   z-index: 4;
   transition: padding var(--transition);
}

.header.active {
   background: var(--cultured);
   box-shadow: 0 1px 3px hsla(0, 0%, 0%, 0.1);
   padding-block: 20px;
}

.header .container {
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.header .logo {
   width: 130px;
}

.logo img {
   width: 100%;
}

.menu-open-btn {
   font-size: 36px;
   color: var(--mango-tango);
}

.navbar {
   position: fixed;
   top: 0;
   left: -250px;
   width: 100%;
   max-width: 250px;
   height: 100%;
   padding: 80px 20px;
   transition: 0.15s ease-in;
   background: var(--cultured);
   z-index: 3;
   
}

.navbar.active {
   left: 0;
   transition: 0.25s ease-out;
}

.menu-close-btn {
   position: absolute;
   top: 0;
   right: 0;
   font-size: 30px;
   padding: 5px;
   background: var(--cultured);
   color: var(--white);
}

.navbar .logo {
   width: 160px;
   margin-bottom: 30px;
   margin-inline: auto;
}

.navbarlist {
   margin-bottom: 15px;
}

.navbar-link {
   color: var(--rich-black-fogra-29);
   font-weight: var(--fw-500);
   padding-block: 15px;
   font-family: var(--dm-sans);
}

.overlay {
   position: fixed;
   inset: 0;
   background: hsla(0, 0%, 0%, 0.7);
   pointer-events: none;
   opacity: 0;
   transition: 0.15s ease-out;
   z-index: 3;
}

.overlay.active {
   pointer-events: all;
   opacity: 1;
}

/* Estilos para las páginas de información */

h1.h1,
h2.h2,
h2.h3,
h3.h3 {
   font-family: var(--ff-poppins) !important;
   font-weight: var(--fw-700) !important;
   color: var(--color1) !important;
}

h4.h3,
p.h4,
li.h4,
div.h4 {
   font-family: var(--ff-poppins) !important;
   font-size: var(--fs-4) !important;
   font-weight: var(--fw-500);
   line-height: 1.3 !important;
   color: var(--white) !important;
   text-align: justify;
}

p.h4 {
   line-height: 1.5 !important;
}

.bg-primary {
   background-color: var(--color3) !important;
}

/* FOOTER */
.footer {
   background: var(--floral-white);
}

.footer-top {
   padding-block: var(--section-padding);
}

.footer-brand {
   margin-bottom: 50px;
}

.footer-brand .logo {
   width: 160px;
   margin-bottom: 20px;
}

.footer-text {
   color: var(--color1);
   font-weight: bold;
   font-family: var(--ff-rubik);
   line-height: 1.8;
   margin-bottom: 30px;
}

.footer .social-list {
   display: flex;
   justify-content: flex-start;
   align-items: center;
   gap: 15px;
}

.footer .social-link {
   background: var(--raisin-black);
   color: var(--silver-chalice);
   width: 45px;
   height: 45px;
   display: grid;
   place-items: center;
   font-size: 20px;
   border-radius: 50%;
   border: 1px solid var(--raisin-black);
   transition: var(--transition);
}

.footer .social-link:is(:hover, :focus) {
   background: var(--rich-black-fogra-29);
   color: var(--cultured);
}

.footer-link-box {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
   gap: 30px;
}

.footer-list {
   max-width: 100%;
}

.footer-list li:first-child {
   margin-block: 10px;
}

.footer-link-title {
   color: var(--color1);
   font-family: var(--ff-poppins);
   font-size: var(--fs-4);
}

.footer-link {
   color: var(--silver-chalice);
   font-family: var(--ff-rubik);
   padding-block: 10px;
   transition: var(--transition);
}

.footer-link:is(:hover, :focus) {
   color: var(----sonic-silver);
   transform: translateX(3px);
}

.footer .contact-item {
   padding-block: 10px;
}


.footer .contact-item span {
   display: inline-block;
   color: var(--silver-chalice);
   font-family: var(--ff-rubik);
   font-weight: var(--fw-500);
}

.footer .contact-link {
   display: inline-block;
   color: var(--silver-chalice);
   font-family: var(--ff-rubik);
   font-weight: var(--fw-500);
}

.footer .contact-link address {
   font-style: normal;
}

/* copyrigtht */
.footer-botton {
   padding-block: 20px;
   border-top: 1px solid var(--onyx);
   background: var(--black);
}

.copyright {
   color: var(--silver-chalice);

   font-family: var(--ff-rubik);
   line-height: 1.7;
   text-align: center;
}

.copyright a {
   display: inline-block;
   color: inherit;
   transition: var(--transition);
}

.copyright a:is(:hover, :focus) {
   color: var(--sonic-silver);
}


/* GO TO TOP */

.go-top {
   position: fixed;
   bottom: 20px;
   right: 20px;
   background-color: var(--mango-tango);
   width: 30px;
   height: 30px;
   display: grid;
   place-items: center;
   color: var(--white);
   font-size: 25px;
   box-shadow: 0 1px 2px hsla(0, 0%, 0%, 0.3);
   opacity: 0;
   visibility: hidden;
   transition: var(--transition);
   z-index: 2;
}

.go-top.active {
   opacity: 1;
   visibility: visible;
}

.go-top:is(:hover, :focus) {
   color: var(--black);
}

/* MEDIA QUERIES */

/* resposive 550px */
@media(min-width: 400px) {

   /* HEADER */
   .header .logo {
      max-width: 170px;
   }

}

/* resposive 550px */
@media(min-width: 550px) {

   .container {
      max-width: 400px;
      margin-inline: auto;
   }

   /* HEADER */
   .header .logo {
      max-width: 170px;
   }

}

/* resposive 768px */
@media(min-width: 768px) {

   .container {
      max-width: 750px;
   }

   .footer-text {
      max-width: 400px;
   }

}

/* resposive 1024px */
@media(min-width: 1024px) {

   .container {
      max-width: 950px;
   }

   .vector-line {
      display: block;
      position: absolute;
   }

   /* HEADER */

   .header .logo {
      margin-right: 25px;
   }

   .menu-open-btn,
   .menu-close-btn,
   .navbar .logo {
      display: none;
   }

   .navbar {
      position: static;
      max-width: unset;
      height: unset;
      background: none;
      padding: 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
   }

   .navbar-list {
      margin-bottom: 0;
      display: flex;
      justify-content: baseline;
      align-items: center;
   }

   .navbar-link {
      position: relative;
      font-size: var(--fs-5);
      padding: 20px 25px;
   }

   .navbar-link::after {
      --scale: 0;
      content: "";
      position: absolute;
      bottom: 15px;
      left: 50%;
      transform: translateX(-50%) scale(var(--scale));
      background: var(--mango-tango);
      width: 40px;
      height: 2px;
      border-radius: 2px;
      opacity: 0.5;
      transition: var(--transition);
   }

   .navbar-link:is(:hover, :focus)::after {
      --scale: 1;
   }

   .overlay {
      display: none;
   }

}

/* resposive 1200 */
@media(min-width: 1200px) {

   .container {
      max-width: 1150px;
   }
}

@media (min-width: 1600px) {
   .container {
      width: min(85%, 1600px);
   }

   .hero {
      padding: 200px 0;
   }

}
