@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');

:root{
  --text-color: black;
  --text-color-sec: #333;
  --text-color-slide: white;
  --primario: #1170b7;
  --primario-oscuro: #1959a6;
  --primario-rgb: 17, 112, 183;
  --secundario: #c52064;
  --dark: #183864;
  --muted: #6c757d;
  --accent: #198754;
  --bg: #EDEDED;
  --bg-card: #FAFAFA;
  /* Escalas de encabezados en rem */
  --h1-size: 4.5rem;
  --h2-size: 4rem;
  --h3-size: 2.4rem;
  --h4-size: 2rem;
  --h5-size: 1.6rem;
  --h6-size: 1.4rem;
  --p-size: 1.8rem;
  --boton-size: 1.6rem;
  /* ####################### */
  --size-titulo-desktop: 4rem;
  --size-titulo-movil: 2.5rem;
  --size-texto-desktop: 2rem;
  --size-texto-movil: 1.6rem;
  --weight-titulo-desktop: 500;
  --weight-titulo-movil: 500;
  --weight-texto-desktop: 400;
  --weight-texto-movil: 100;
  --container-max: 1200px;
  --radius:12px;
  --vh: 1vh;              /* fallback, actualizado por JS */
  --header-height: 1.4rem;/* fallback visual razonable */
}

html {
  font-size: 62.5%;
  overflow-x: hidden;
}

* {
  box-sizing: border-box
}
body {
  background:var(--bg);
  color:#222;
  margin:0;
  font-size:16px;
  line-height:1.5
}

a {
  color:var(--primary);
  text-decoration:none
}

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

/* Header */
.site-header{
  background: white;
  border-bottom: 1px solid #e9ecef;
  position: sticky;
  top: 0;
  z-index: 999;
}
.header-inner {
  padding: 1.4rem 1.6rem;
  max-width:var(--container-max);
  margin:0 auto;
}

.brand {
  gap:10px;
  text-decoration:none;
  color:inherit
}

.logo-img {
  height:4rem;
  width:auto
}

.logo-img-sm {
  height:36px
}

.brand-text {
  margin-left:8px;
  font-weight:700;
  letter-spacing:0.3px
}

/* Desktop nav */
.main-nav .nav-list {
  list-style:none;
  margin:0;
  padding:0;
  gap:20px
}

.main-nav .nav-item {
  position:relative;
  margin-right:8px
}

.main-nav .nav-item a {
  padding:10px 14px;
  display:inline-block;
  color: var(--text-color);
  font-size: var(--p-size);
  border-radius:6px
}

/* .main-nav .nav-item:hover a,
.main-nav .nav-item.active > a {
  background:var(--primario);
  color: #fff;
} */

.main-nav .nav-item:hover > a,
.main-nav .nav-item.active > a {
  background: var(--primario);
  color: #fff;
}

/* dropdown */
.has-dropdown .dropdown{
  position:absolute;
  left:0;
  top:100%;
  background:white;
  border-radius:10px;
  box-shadow:0 8px 20px rgba(18,38,63,0.08);
  padding:12px;
  min-width:220px;
  display:none;
  list-style:none;
}
.has-dropdown:hover .dropdown {
  display:block
}

.dropdown li a {
  display:block;
  padding:8px 12px;
  color:#333;
  border-radius:6px
}

/* .dropdown li a:hover {
  background:#f1f5f9
} */

.dropdown li a:hover,
.dropdown li.active > a {
  background: var(--primario);
  color: #fff;
}

/* Mobile menu */
/* HAMBURGUESA */
.menu-toggle {
  border:0;
  color:var(--dark)
}

.mobile-menu {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.4);
  display:none;
  z-index:1000;
}
/* DESPLEGABLE */
.mobile-menu .mobile-menu-inner{
  width:32rem;
  max-width:92%;
  background:white;
  height:100%;
  padding:0.8rem 0;
  transform:translateX(-110%);
  transition:transform .28s ease;
}

.mobile-menu.open {
  display:block
}

.mobile-menu.open .mobile-menu-inner {
  transform:translateX(0)
}
/* DESPLEGABLE */
.mobile-header {
  padding:1.2rem 1.6rem;
  border-bottom:1px solid #eee;
}
/* DESPLEGABLE */
.mobile-nav-list {
  list-style:none;
  padding:1.2rem 1.6rem;
  margin:0
}
/* DESPLEGABLE */
.mobile-nav-list li {
  padding:0.6rem 0;
  border-bottom:1px solid #f3f3f3
}

.mobile-nav-list li a {
  display:block;
  padding:1rem 0.6rem;
  color:#222
}

.mobile-has-sub .mobile-sub {
  display:none;
  padding-left:3.2rem
}

.mobile-has-sub.open .mobile-sub {
  display:block
}

.sub-toggle {
  display:flex;
  justify-content:space-between;
  align-items:center
}

/* CTAs */
.btn-whatsapp-mobile i {
  font-size:20px
}

.whatsapp-float {
  position:fixed;
  right:18px;
  bottom:18px;
  background:#25D366;
  color:white;
  border-radius:50%;
  width:56px;
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 22px rgba(0,0,0,0.2);
  z-index:999;
}

/*############################################
############/* SLIDER PRINCIPAL /*############
############################################*/
.slider-container {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.slider-wrapper .slider-item {
  position: relative;
  width: 100%;
  height: calc(var(--vh, 1vh) * 100 - var(--header-height));
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  z-index: 1;
}

.slider-wrapper .slider-item::after {
  position: absolute;
  content: "";
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 2;
}

.slider-wrapper .slider-item .slide-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--text-color);
  width: 80%;
  z-index: 3;
  /* background: yellowgreen; */
  text-align: center; /* opcional: centra texto dentro */
}

/* .slider-wrapper .slider-item .slide-content > * {
  max-width: 50%;
} */

.slider-item .slide-content .slide-title {
  /* margin-top: 5px; */
  font-size: 5.6rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 1px;
  margin: 2rem 0 4rem;
  color: var(--text-color-slide);
}

.slider-item .slide-content .slide-title span {
  /* color: #aaa; */
  background: linear-gradient(30deg, var(--primario), white);
  /* display: inline-block;
  background-image: url('images/hero_gradient__cmkhbivlbcmu_large.jpg');
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: 100% 90%; */
  background-clip: text;
  -webkit-text-fill-color: transparent;
  box-decoration-break: clone;
}

.slider-item .slide-content .slide-button {
  background: var(--primario);
  color: var(--text-color-slide);
  width: 300px;
  padding: 13px 0;
  display: block;
  margin: 45px auto 0;
  font-size: 1.8rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--primario);
  transition: 0.5s ease;
  border-radius: 5rem;
}

.slider-item .slide-content .slide-button:hover {
  background: var(--secundario);
  border-color: var(--secundario);
}

.swiper-pagination {
  --swiper-pagination-color: var(--text-color-slide);
  --swiper-pagination-bullet-inactive-color: rgba(255,255,255,0.1);
  --swiper-pagination-bullet-inactive-opacity: 7;
}

.swiper-button-prev,
.swiper-button-next {
  --swiper-navigation-color: var(--text-color-slide);
  --swiper-navigation-size: 30px;
}

.slider-item .slide-content .slide-subtitle {
  font-size: 3.5rem;
  color: var(--text-color-slide);
  /* font-size: calc(2.5rem + 0.3vw); */
}



/*############################################
#################/* SECCIÓN /*################
############################################*/
.section {
  width: 80%;
  margin: 0 auto;
  padding-top: 8rem;
}

.section .section-title {
  font-size:var(--h2-size);
  font-weight:var(--weight-titulo-desktop);
  margin-bottom:18px;
  text-align: center;
  color: var(--primario-oscuro);
}

.section-description {
  text-align: center;
  font-size: var(--p-size);
  color: var(--text-color);
}

.card-feature {
  border-radius:12px;
  padding:18px;
  background:white;
  box-shadow: 0 6px 18px rgba(18,38,63,0.06);
}



.contenedor-botones {
  display: flex;
  justify-content: center;
}

.botones {
  display: inline-block;
  background: var(--primario);
  font-size: var(--boton-size);
  color: #fff;
  padding: 1rem 2rem;
  border-radius: 0.6rem;
  text-decoration: none;
  transition: background 0.3s ease;
}

.botones:hover {
  background: var(--secundario);
}

.boton-servicios {
  display: inline-block;
  background: #13653f;
  font-size: var(--boton-size);
  color: #fff;
  padding: 1rem 2rem;
  border-radius: 0.6rem;
  text-decoration: none;
  transition: background 0.3s ease;
}

.boton-servicios:hover {
  background: #146c43;
}


.botonesSec {
  display: inline-block;
  background: #ddd;
  color: var(--text-color);
  text-decoration: none;
  padding: 1rem 2rem;
  border-radius: 16px;
  font-size: 1.7rem;
  transition: background 0.3s;
  margin: 3rem 2rem 0;
}

.botonesSec:hover {
  /* background: var(--secundario); */
  background: #aaa;
}

/*##############################################
#########/* CARD PRINCIPAL EN INICIO /*#########
##############################################*/
.card-contenedor-main {
  overflow: hidden;
  max-width: 1200px;
  margin: 0 3rem 4rem;
  /* background: yellowgreen; */
}

.card-list-categoria .card-item-categoria {
  color: black;
  width: 250px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: white;
  border: 1px solid rgba(0, 0, 0, 0.175);
  padding-bottom: 20px;
}

.card-image {
  /* aspect-ratio: 1 / 1.2; */
  aspect-ratio: 1 / 1;
  width: 100%;
  overflow: hidden;
  position: relative;
}

.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.4s ease;
  display: block;
}

.card-item-categoria:hover .card-image img {
  transform: scale(1.08);
}

.card-titulo-main {
  font-size: var(--h3-size);
  font-weight: 500;
  color: var(--text-color);
  margin: 16px 0 8px;
  text-align: center;
}

.card-descripcion-main {
  font-size: var(--p-size);
  color: var(--text-color-sec);
  margin: 0 16px 16px;
  text-align: center;
}

.card-boton-main {
  display: inline-block;
  background: var(--primario);
  color: white;
  text-decoration: none;
  padding: 10px 18px;
  border-radius: 6px;
  font-size: var(--boton-size);
  transition: background 0.3s;
  margin: 0 70px;

  white-space: normal;
  text-align: center;
  display: inline-block;
  /* width: 100%; */
  line-height: 1.3;
  word-wrap: break-word;
}

.card-boton-main:hover {
  background: var(--secundario);
}

/*##############################################
##################/* FOOTER /*##################
##############################################*/
.footer {
  background-color: #222529;
  color: #fff;
  padding: 2rem 0;
  font-size: var(--p-size);
}

.footer-content {
  width: 80%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

.footer-left {
  white-space: nowrap;
}

.footer-right a {
  color: #fff;
  text-decoration: none;
  margin-left: 2rem;
  font-size: var(--p-size);
  transition: color 0.3s ease;
}

.footer-right a:hover {
  color: var(--primario);
}





/*##############################################
##############/* CARD PRODUCTOS /*##############
##############################################*/
.card-contenedor-productos,
.card-contenedor-ferreteria {
  overflow: hidden;
  max-width: 1200px;
  margin: 0 5rem 5.5rem;
  /* background: yellowgreen; */
}

.card-list .card-item {
  color: black;
  width: 100%;
  padding: 25px 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: white;
  border: 1px solid rgba(0, 0, 0, 0.175);
  box-sizing: border-box;
}

.card-list .card-item .card-imagen {
  max-width: 200px;
  height: 200px;
  margin-bottom: 20px;
  object-fit: contain;
  /* border: 1px solid black; */
}

.card-list .card-item .card-titulo {
  font-size: var(--h4-size);
  color: var(--text-color);
  font-weight: 600;
  text-align: center;
  /* margin: 10px 0 20px; */
}

.card-list .card-item .card-descripcion {
  font-size: var(--p-size);
  color: var(--text-color-sec);
  /* font-weight: 500; */
  text-align: center;
  margin: 10px 0 20px;
}

.card-list .card-item .card-boton {
  font-size: 1.3rem;
  padding: 10px 20px;
  color: white;
  border-radius: 6px;
  cursor: pointer;
  background-color: #13653f;
  border: 1px solid transparent;
  transition: 0.2s ease;



  white-space: normal;       /* permite salto de línea */
  text-align: center;
  display: inline-block;
  width: 100%;               /* el botón se adapta al ancho */
  line-height: 1.3;
  word-wrap: break-word;
}

.card-list .card-item .card-boton:hover{
  background-color: #146c43;
}

.swiper-pagination-productos,
.swiper-pagination-ferreteria,
.swiper-pagination-main {
  --swiper-pagination-color: var(--primario);
  --swiper-pagination-bullet-inactive-color: rgba(var(--primario-rgb), 0.15);
  --swiper-pagination-bullet-inactive-opacity: 7;
  /* width: 52px;
  height: 52px; */
}

.swiper-button-prev-productos,
.swiper-button-next-productos,
.swiper-button-prev-ferreteria,
.swiper-button-next-ferreteria,
.swiper-button-prev-main,
.swiper-button-next-main {
  --swiper-navigation-color: var(--primario);
  --swiper-navigation-size: 30px;
}

.swiper-contenedor {
  position: relative;
  margin-top: 3rem;
}

.swiper-controles {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  margin-top: 10px;
}

/*##############################################
#################/* PORTADA /*##################
##############################################*/
.portada {
  position: relative;
  width: 100%;
  height: calc((var(--vh, 1vh) * 100) - var(--header-height));
  background-size: cover;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  overflow: hidden;
  z-index: 0;
}

.portada::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.3);
  z-index: 1;
}

.portada-contenido {
  position: relative;
  max-width: 900px;
  padding: 0 20px;
  z-index: 2;
  /* background: yellowgreen; */
}

.portada-contenido h2 {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.1;
  /* letter-spacing: 1px; */
  margin-bottom: 2rem;
}

.portada-contenido p {
  font-size: 2.5rem;
}



/*############################################
########### MARCAS COMERCIALIZADAS ###########
############################################*/
.grid-clientes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 25px;
  align-items: center;
  justify-items: center;
  margin-top: 4rem;
}

.grid-clientes img {
  width: 120px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  /* transition: transform 0.3s ease, opacity 0.3s ease;
  filter: grayscale(100%);
  opacity: 0.8; */
}

/* .grid-clientes img:hover {
  transform: scale(1.05);
  filter: grayscale(0%);
  opacity: 1;
} */

/*############################################
################## NOSOTROS ##################
############################################*/
/* ===== MISIÓN / VISIÓN / VALORES ===== */
.mvv-section {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  padding: 4rem 0;
}

.mvv-card {
  background: var(--bg-card);
  padding: 2rem;
  border-radius: 1rem;
  text-align: center;
  border: 1px solid rgba(0, 0, 0, 0.175);
}

.mvv-card i {
  font-size: 2.5rem;
  color: var(--secundario);
  margin-bottom: 1rem;
}

.mvv-card h3 {
  margin-bottom: 1rem;
  color: var(--primario-oscuro);
  font-size: var(--h3-size);
}

.mvv-card p {
  color: var(--text-color);
}

/* ===== LISTA DE VALORES EN 2 COLUMNAS ===== */
.valores-lista {
  list-style: none;
  padding: 0;
  margin: 1rem auto 0;
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 1rem 3rem;
  justify-content: center;
  justify-items: start;
  align-items: center;
  padding: 1rem 2rem;
  max-width: 350px;
}

.valores-lista li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--text-color);
}

.valores-lista i {
  color: var(--primario-oscuro);
  font-size: 2.1rem;
}

/* ===== CERTIFICACIONES ===== */
.certificaciones {
  text-align: center;
  box-sizing: border-box;
  margin-bottom: 4rem;
}

.grid-certificaciones {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  gap: 2rem;
  justify-items: center;
  margin-top: 2rem;
  width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}

/* Tarjeta */
.card-certificacion {
  background: var(--bg-card);
  border-radius: 1rem;
  overflow: hidden;
  max-width: 450px;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid rgba(0, 0, 0, 0.175);
  box-sizing: border-box;
}

/* Contenedor centrado de imagen */
.card-img {
  width: 100%;
  height: 40rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--bg-card);
  overflow: hidden;
}

.card-img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* Contenido */
.card-content {
  padding: 20px;
  text-align: center;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
}

.card-content h3 {
  font-size: var(--h4-size);
  color: var(--primario-oscuro);
  margin-bottom: 1rem;
}

.card-content p {
  color: var(--text-color);
  line-height: 1.5;
}

@media (max-width: 768px) {
  .grid-certificaciones {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .card-certificacion {
    max-width: 100%;
    width: 100%;
  }

  .card-img {
    height: 35rem;
  }

  .card-content {
    padding: 1.5rem;
  }

  .card-content p {
    font-size: var(--size-texto-movil);
  }
}







/*##############################################
#################/* PRODUCTOS /*################
##############################################*/
/* ==== Grid de productos ==== */
.products-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
  margin: 5rem 0;
}

/* ==== Card individual ==== */
.card {
  background: #fff;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.175);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* ==== Imagen con aspect-ratio ==== */
.card-img-container {
  aspect-ratio: 4 / 1;
  overflow: hidden;
}

.card-img-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ==== Contenido ==== */
.card-body {
  padding: 1.5rem;
}