/*
 * Theme Name: Caviesa_theme powered by Codevrd
 * Theme URI: https://www.caviesa.com
 * Description: Tema personalizado para Caviesa SRL, optimizado por Codevrd.
 * Version: 1.0.0
 * Author: Ing. Wilmin José Sánchez
 * Author URI: https://wa.me/18295020900
 * Tags: HTML5, CSS3, Starter, Framework, Codevrd
 *
 * License: MIT
 * License URI: http://opensource.org/licenses/mit-license.php
 *
 * Text Domain: caviesa_theme
 * Domain Path: /languages
 */


@font-face {
   font-family: 'Manrope';
   src: url(./fonts/Manrope-VariableFont_wght.ttf);
}

@font-face {
   font-family: 'Poppins-bold';
   src: url(./fonts/Poppins-Bold.ttf);
}

@font-face {
   font-family: 'Poppins-light';
   src: url(./fonts/Poppins-Light.ttf);
}

@font-face {
   font-family: 'Poppins';
   src: url(./fonts/Poppins-Regular.ttf);
}

:root {
   --color-primary: #004aa7;
   --color-secondary: #00a78e;

   --font-primary: "Manrope", sans-serif;
   --font-secondary: "Poppins", sans-serif;

   --background-section: #f9f9f9;
}

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

a {
   text-decoration: none !important;
   font-family: var(--font-primary);
}

ul {
   list-style: none;
   font-family: var(--font-primary);
}

p {
   font-family: var(--font-primary);
   color: #666666;
}

body {
   font-family: var(--font-primary);
   background-color: var(--background-section) !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
   font-family: var(--font-primary);
}

/* Móviles grandes */
@media (min-width: 576px) {
   .container {
      width: 540px !important;
      max-width: 100% !important;
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: 15px !important;
      padding-right: 15px !important;
   }
}

/* Tablets */
@media (min-width: 768px) {
   .container {
      width: 720px !important;
      max-width: 100% !important;
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: 15px !important;
      padding-right: 15px !important;
   }
}

/* Laptops */
@media (min-width: 992px) {
   .container {
      width: 960px !important;
      max-width: 100% !important;
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: 15px !important;
      padding-right: 15px !important;
   }
}

/* Desktop */
@media (min-width: 1200px) {
   .container {
      width: 1140px !important;
      max-width: 100% !important;
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: 15px !important;
      padding-right: 15px !important;
   }
}

/* Desktop grande */
@media (min-width: 1400px) {
   .container {
      width: 1320px !important;
      max-width: 100% !important;
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: 15px !important;
      padding-right: 15px !important;
   }
}


.img-fluid {
   max-width: 100%;
   height: auto;
}


/* GSAP CSS */

.letter {
   display: inline-block;
   white-space: pre;
   /* Mantiene espacios entre palabras */
}

.line {
   display: inline-block;
   opacity: 0;
   transform: translateY(20px);
}

.contact-info p,
.contact-info h3 {
   opacity: 0;
   transform: translateY(20px);
}

.page-title {
   opacity: 0;
   color: #333;
   transform: translateY(20px);
}

.animate-paraph {
   text-align: justify;
}

/* BOTON GENERAR */

.btn-custom {
   font-size: 9pt;
   background-color: var(--color-secondary);
   text-transform: uppercase;
   padding: 10px 110px;
   border-radius: 4px;
   font-weight: 800;
   color: white;
   font-family: var(--font-primary);
   transition: 0.5s all ease;
}

/* Laptops */
@media (min-width: 992px) {

   .btn-custom {
      padding: 8px 17px;
      font-weight: 600;
   }

}

.btn-custom:hover {
   background-color: var(--color-primary);
   transform: scale(1.08);
}

.container-header {
   width: 100%;
   max-width: 1110px;
   margin: 0 auto;
}


/* Laptops */
@media (min-width: 992px) {
   .container-header {
      padding: 0 20px;
   }
}

/* Botón flotante WhatsApp */
.whatsapp-float {
   position: fixed;
   width: 60px;
   height: 60px;
   bottom: 20px;
   right: 20px;
   background-color: #25D366;
   border-radius: 50%;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
   display: flex;
   justify-content: center;
   align-items: center;
   z-index: 999;
   transition: transform 0.3s ease, background-color 0.3s ease;
}

.whatsapp-float img {
   width: 35px;
   height: 35px;
   filter: invert(1);
}

.whatsapp-float:hover {
   background-color: #1ebe5d;
   transform: scale(1.1);
}

/* ======================================
   FORMINATOR CUSTOM
 ========================================*/

.forminator-ui.forminator-custom-form[data-design=material] .forminator-button {
   background: var(--color-secondary);
   color: white;
}

/* Efecto hover del botón */
.forminator-button:hover {
   background-color: var(--color-primary);
   /* Color más oscuro al hacer hover */
   transform: translateY(-3px);
   /* Efecto de levantamiento */
}


/* Estilo de los campos de texto cuando están enfocados */
.forminator-input:focus,
.forminator-select:focus,
.forminator-textarea:focus {
   border-color: var(--color-secondary);
   /* Borde azul al enfocar */
   background-color: #fff;
   /* Fondo blanco */
   box-shadow: 0 0 5px rgba(0, 74, 167, 0.3);
   /* Sombra suave */
   outline: none;
   /* Eliminar contorno */
}

/* ======================================
   HEADER 
 ========================================*/

.custom-logo svg {
   width: 130px;
   height: auto;
   transition: fill 0.6s ease;
}


.logo:hover .custom-logo svg {
   fill: var(--color-secondary);
   /* Cambia el color del logo cuando se hace hover */
}


.site-header {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 75px;
   padding: 20px 20px;
   display: flex;
   justify-content: space-between;
   align-items: center;
   z-index: 1000;
   transition: background 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
   background: #00000042;
   color: #fff;
}

.site-header.scrolled {
   background: white;
   padding: 10px 20px;
   box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

/* Laptops */
@media (min-width: 992px) {
   .site-header {
      height: 80;
      padding: 20px 40px;

   }

   .site-header.scrolled {
      background: white;
      padding: 10px 40px;
   }
}

.site-header .logo {
   font-size: 1.5rem;
   font-weight: bold;
   letter-spacing: 1px;
}

.header-content {
   display: flex;
   align-items: center;
   justify-content: space-between;
}

/* NAVBAR */

nav.navbar {
   display: none;
}

/* Laptops */
@media (min-width: 992px) {
   nav.navbar {
      display: inline-block;
   }
}


.nav-menu {
   font-size: 10pt;
   list-style: none;
   display: flex;
   align-items: center;
   margin: 0;
   padding: 0;
   height: 75px;
}

.nav-menu>li {
   position: relative;
   margin-left: 25px;
   line-height: 75px;
   height: inherit;
}

.nav-menu a {
   color: #fff;
   text-decoration: none;
   display: block;
   font-family: "Poppins-light";
}

.nav-menu a:hover {
   color: var(--color-secondary);
   transition: all 0.3s ease;
}

.nav-menu>li:hover {
   border-bottom: 2px solid var(--color-secondary);
   transition: all 0.3s ease;
}

.current_page_item a {
   color: var(--color-secondary);
}

li.current_page_item {
   border-bottom: 2px solid var(--color-secondary);
}

/* SUBMENÚ */

.nav-menu .sub-menu {
   min-width: 220px;
   position: absolute;
   flex-direction: column;
   opacity: 0;
   visibility: hidden;
   list-style: none;
   background: #1d1d1da1;
   left: 0;
   padding: 0 10px;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
   transition: opacity 0.8s ease, visibility 0.8s ease;
   z-index: 1000;
}

.nav-menu .sub-menu li {
   margin: 0;
   height: auto;
   line-height: normal;
   border-top: 0.5px solid #555555;
}

.nav-menu .sub-menu li:first-child {
   border: none;
}

.nav-menu .sub-menu a {
   padding: 10px 20px;
   font-family: "Poppins-light";
   color: #fff;
}

.nav-menu .sub-menu a:hover {
   color: var(--color-secondary);
   transition: all 0.3s ease;
}

/* Mostrar submenú al pasar el mouse */
.nav-menu li:hover>.sub-menu {
   opacity: 1;
   visibility: visible;
}

/* Estilo cuando el header tiene la clase scrolled */
.scrolled .nav-menu>li>a {
   color: black;
   font-family: "Poppins-light";
   transition: all 0.3s ease;
}

.scrolled .nav-menu .sub-menu {
   background: white;
}

.scrolled .nav-menu .sub-menu a {
   color: black;
}

.scrolled .nav-menu .sub-menu a:hover {
   color: var(--color-secondary);
   transition: all 0.3s ease;
}


/* Menu movil */

/* Estilos para el botón de hamburguesa */
.mobile-toggle {
   display: flex;
   flex-direction: column;
   gap: 5px;
   background: none;
   border: none;
   cursor: pointer;
}

.mobile-toggle span {
   width: 28px;
   height: 3px;
   background: white;
   border-radius: 4px;
   transition: .3s ease;
}

.site-header.scrolled .mobile-toggle span {
   background: #242424;
}

/* Hamburguesa animada */
.mobile-toggle.active span:nth-child(1) {
   transform: translateY(8px) rotate(45deg);
}

.mobile-toggle.active span:nth-child(2) {
   opacity: 0;
}

.mobile-toggle.active span:nth-child(3) {
   transform: translateY(-8px) rotate(-45deg);
}

/* Ocultar menú desktop en móvil */
.desktop-menu {
   display: none;
}

/* Sidebar móvil */
.mobile-menu {
   position: fixed;
   top: 0;
   right: -100%;
   width: 80%;
   max-width: 350px;
   height: 100vh;
   background: #004aa7;
   /* Fondo azul */
   color: white;
   /* Color de texto blanco */
   box-shadow: -4px 0 18px rgba(0, 0, 0, 0.1);
   padding: 40px 25px;
   /* Espaciado interno */
   transition: right .4s cubic-bezier(.25, .8, .25, 1);
   z-index: 9999;
}

.mobile-menu.active {
   right: 0;
}

/* Overlay */
.mobile-overlay {
   position: fixed;
   inset: 0;
   background: rgba(0, 0, 0, .45);
   opacity: 0;
   pointer-events: none;
   transition: .3s ease;
}

.mobile-overlay.active {
   opacity: 1;
   pointer-events: all;
}

/* Lista menú */
.mobile-nav-list {
   list-style: none;
   padding: 0;
}

.mobile-nav-list li {
   margin: 16px 0;
   border-bottom: 1px solid rgba(255, 255, 255, 0.2);
   /* Divider line */
}

.mobile-nav-list li:last-child {
   border-bottom: none;
   /* Eliminar borde en el último elemento */
}

.mobile-nav-list a {
   font-size: 18px;
   color: white;
   text-decoration: none;
   display: block;
   padding: 8px 0;
   transition: background 0.3s ease;
}

/* Hover en los elementos del menú */
.mobile-nav-list a:hover {
   background-color: rgba(255, 255, 255, 0.2);
   /* Efecto hover */
   border-radius: 4px;
   /* Bordes redondeados en hover */
}

/* Estilo para los encabezados de cada sección dentro del menú */
.mobile-nav-list h4 {
   font-size: 20px;
   font-weight: bold;
   margin-bottom: 10px;
   color: white;
}

/* TABLET */
@media (min-width: 768px) {
   .mobile-toggle {
      display: none;
   }

   .mobile-menu,
   .mobile-overlay {
      display: none;
   }

   .desktop-menu {
      display: block;
   }
}


/* ====================================
  HERO HEADER SECCION
=======================================*/

.hero-carousel .hero-slide .hero-content .line {
   opacity: 1;
   transform: translateY(20px);
}

.hero {
   height: 50vh;
   position: relative;
   color: #fff;
   overflow: hidden;
}

.hero::before {
   content: "";
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.45);
   z-index: 1;
}

.hero-slide {
   height: 50vh;
   display: flex;
   align-items: center;
   justify-content: center;
   position: relative;
}

.hero-bg {
   position: absolute;
   inset: 0;
   background-size: cover;
   background-position: center;
   z-index: 0;
}

.hero-content {
   display: grid;
   grid-template-columns: 1fr;
   gap: 20px;
   align-items: center;
   max-width: 1100px;
   padding: 20px;
   z-index: 2;
}

.hero-content .btn-custom {
   margin-top: 20px;
}

/* Laptops */
@media (min-width: 992px) {
   .hero-content {
      grid-template-columns: 1fr 1fr;
      margin-top: 50px;
   }
}

.content-left {
   display: flex;
   flex-direction: column;
   justify-content: center;
}

.content-left p {
   opacity: 1;
}

.content-left .btn-custom {
   align-self: flex-start;
}

.hero-content p,
.content-left p {
   font-family: "Manrope";
   font-size: 1.3rem;
   font-weight: 800;
   text-transform: uppercase;
   text-align: left;
   line-height: 25px;
   background: white;
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
}

.content-right {
   display: none;
   padding: 0px 65px;
   margin-top: 70px;
   margin-bottom: 50px;
}

.content-right img {
   max-width: 100%;
   max-height: 90vh;
   height: auto;
   width: auto;
   border-radius: 8px;
}

/* Laptops */
@media (min-width: 992px) {
   .content-right {
      display: block;
   }
}


/* Tablets */
@media (min-width: 768px) {
   .hero {
      height: 80vh;
   }

   .content-left p {
      font-size: 2.0rem;
      line-height: 32px;
   }

   .hero-slide {
      height: 80vh;
   }
}

/* Laptops */
@media (min-width: 992px) {
   .hero {
      height: 90vh;
   }

   .content-left p {
      font-size: 2.0rem;
   }

   .hero-slide {
      height: 90vh;
   }
}

/* Hero vega */

.hero-vega {
   position: relative;
   color: #fff;
   overflow: hidden;
   height: 50vh;
   display: flex;
   justify-content: center;
   align-items: center;
   z-index: 1;
}

/* Laptops */
@media (min-width: 992px) {
   .hero-vega {
      height: 100vh;
   }
}

.hero-bg-container {
   position: absolute;
   inset: 0;
   z-index: 0;
}

.hero-bg {
   position: absolute;
   inset: 0;
   background-size: cover;
   background-position: center;
   opacity: 0;
   transition: opacity 1s ease-in-out;
}

.hero-bg.active {
   opacity: 1;
}

/*=================================
  NUESTROS SERVICIOS
================================= */

.page-description {
   padding: 60px 10px 0px 10px;
   max-width: 100%;
   margin: 0 auto;
   text-align: justify;
   font-family: var(--font-primary);
}

/* Laptops */
@media (min-width: 992px) {
   .page-description {
      padding-top: 60px;
      max-width: 70%;
      text-align: center;
   }
}

.services {
   padding-top: 40px;
}

.services-title,
.plans-title {
   font-family: "Poppins", sans-serif;
   font-weight: 600;
   letter-spacing: -0.5px;
   text-transform: uppercase;
   text-align: center;
   font-size: 25pt;
   color: #404040;
}

.services-content {
   display: grid;
   grid-template-columns: repeat(1, 390px);
   justify-content: center;
   padding-top: 30px;
   grid-gap: 20px;
}

/* Laptops */
@media (min-width: 992px) {
   .services-content {
      grid-template-columns: repeat(3, 330px);
      padding-top: 50px;
      grid-gap: 30px;
   }
}


.service-column span {
   color: var(--color-primary);
   font-size: 15pt;
   font-weight: 600;
   font-family: "Manrope", sans-serif;
}

.service-column p {
   padding: 0px 20px;
   text-align: justify;
   font-size: 11pt;
}

.service-column {
   display: flex;
   flex-direction: column;
   align-items: center;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
   padding: 15px;
   border-radius: 11px;
   color: white;
   background: white;
}

img.service-icon-sm {
   padding-top: 21px;
   width: 55px;
}

.services {
   padding-top: 60px;
}

.services-title,
.plans-title {
   font-size: 35pt;
}

.service-column span {
   font-size: 13pt;
}

img.service-icon-sm {
   padding-top: 21px;
   width: 55px;
}

.service-icon {
   width: 70px;
   transition: transform 0.6s ease-in-out;
}

.service-icon:hover {
   transform: scale(1.05);
}


/* SOBRE NOSOTROS */
.about-us {
   position: relative;
   background-color: #272727;
   margin-top: 10px;
}

.about-us-title {
   font-family: "Poppins", sans-serif;
   font-weight: 600;
   letter-spacing: -0.5px;
   text-transform: uppercase;
   text-align: center;
   font-size: 25pt;
   color: white;
}

.about-description p {
   margin-bottom: 25px;
   padding: 0px 16px 0px 16px;
   color: #ddd;
   text-align: justify;
}

.about-img {
   position: absolute;
   bottom: 118px;
   opacity: 0.1;
}

/* En pantallas pequeñas (móviles) */
@media (max-width: 991px) {
   .about-img {
      display: none;
   }

   .about-content {
      grid-template-columns: 1fr;
      gap: 20px;
   }
}

.about-content {
   position: relative;
   display: grid;
   grid-template-columns: repeat(1, 1fr);
   gap: unset;
   padding-top: 30px;
   text-align: center;
}

/* En pantallas grandes (laptops y más) */
@media (min-width: 992px) {
   .about-content {
      grid-template-columns: 1fr 250px;
      gap: 20px;
      padding-top: 50px;
      text-align: left;
   }

   .about-img {
      display: block;
      width: 100%;
      max-width: 800px;
      height: auto;
      border-radius: 2%;
      object-fit: cover;
   }
}


@media (min-width: 1350px) { 
 .about-img {
      bottom: 200px;
   }
}


.about-info {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   text-align: center;
   font-family: var(--text-primary);
   font-weight: 900;
}

/* Laptops */
@media (min-width: 992px) {
   .about-info {
      grid-template-columns: repeat(4, 1fr);
   }
}

.grid-about-info {
   height: 200px;
   display: flex;
   flex-direction: column;
   justify-content: center;
   cursor: pointer;
}

.grid-about-info:hover {
   background: var(--color-secondary);
}

.grid-about-info:hover div {
   color: white;
}

.grid-about-info div {
   font-size: 16pt;
   color: var(--color-secondary);
}

.grid-about-info p {
   font-size: 10pt;
   margin: 0px;
   color: #ddd;
}

.about-hero {
   position: relative;
   background: #0e1a2b;
   background-size: cover;
   background-position: center;
   color: #fff;
   padding: 120px 0;
   text-align: center;
   overflow: hidden;
}

.about-overlay {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.45);
}

.about-hero-content {
   position: relative;
   z-index: 1;
   max-width: 800px;
   margin: 0 auto;
}

.about-hero h1 {
   font-size: 2.8rem;
   font-weight: 700;
   margin-bottom: 20px;
}

.about-hero p {
   font-size: 1.2rem;
   line-height: 1.6;
   opacity: 0.9;
}

.aboutus-stats-wrapper {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   padding: 30px 16px 0px 16px;
   font-family: "Manrope", sans-serif;
   font-weight: 900;
   text-align: left;
   gap: 10px;
}

/* Laptops */
@media (min-width: 992px) {
   .aboutus-stats-wrapper {
      grid-template-columns: repeat(4, 1fr);
      padding-top: 25px;
   }
}

.aboutus-stat-item div {
   font-size: 16pt;
   color: var(--color-secondary);
}

.aboutus-stat-item p {
   padding: 0;
   font-size: 14pt;
   color: #ddd;
   text-align: left;
}

/* Laptops */
@media (min-width: 992px) {
   .aboutus-stat-item div {
      font-size: 13pt;
   }

   .aboutus-stat-item p {
      font-size: 13pt;
   }
}

.featured-image-container {
   display: none;
   width: 100%;
   height: 100%;
   overflow: hidden;
   position: relative;
}

/* Laptops */
@media (min-width: 992px) {
   .featured-image-container {
      display: block;
   }
}

.featured-image {
   width: 100%;
   height: 430px;
   object-fit: cover;
   display: block;
}


/* Laptops */
@media (min-width: 992px) {
   .about-us-title {
      font-size: 35pt;
   }

   .about-img {
      display: block;
   }
}


/* ==================================
 HEADER 2
===================================== */
.page-header {
   position: relative;
   background: #0e1a2b;
   background-size: cover;
   background-position: center;
   color: #fff;
   text-align: center;
   padding: 120px 20px 80px;
}

.page-header .overlay {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.45);
}

.page-header .container {
   position: relative;
   z-index: 2;
}

.page-title {
   font-size: 2rem;
   font-weight: 600;
   margin-bottom: 15px;
}

/* Desktop */
@media (min-width: 1200px) {
   .page-title {
      font-size: 3rem;
   }
}

.breadcrumb {
   font-size: 1.1rem;
   color: #ddd;
}

nav.breadcrumb {
   display: flex;
   justify-content: center;
}

.breadcrumb a {
   color: #fff;
   text-decoration: none;
   transition: color 0.3s ease;
}

.breadcrumb a:hover {
   color: var(--color-secondary);
}

.breadcrumb span {
   margin: 0 6px;
   color: #ccc;
}

.about-company {
   display: grid;
   grid-template-columns: 1fr 1fr;
   align-items: center;
   gap: 50px;
   padding-top: 40px;
}

/* Laptops */
@media (min-width: 992px) {
   .about-company {
      padding: 80px 0;
   }
}


.about-text p {
   margin-bottom: 20px;
   padding: 0 10px;
   color: #555;
   line-height: 1.7;
   text-align: justify;
}

/* Laptops */
@media (min-width: 992px) {
   .about-text p {
      padding: 0 10px;
   }
}

.about-image img {
   width: 100%;
   border-radius: 15px;
   box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
   transition: transform 0.3s ease;
}

.about-count {
   padding: 60px;
}

/* ====================================
   MISIÓN, VISIÓN Y VALORES 
======================================= */

.mission-vision-values {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
   margin: 0;
   padding: 0;
   text-align: left;
}

.mv-item {
   padding: 40px 25px;
   text-align: center;
   color: #fff;
   display: flex;
   flex-direction: column;
   justify-content: center;
   transition: all 0.3s ease;
   cursor: pointer;
}

/* Laptops */
@media (min-width: 992px) {
   .mv-item {
      padding: 30px 40px;
   }
}

.mission {
   background: #3a3a3a;
}

.vision {
   background: #242424;
}

.values {
   background: #3a3a3a;
}

.mv-icon {
   font-size: 2.5rem;
   margin: 0 auto 15px;
}

/* Laptops */
@media (min-width: 992px) {
   .mv-icon {
      margin-bottom: 20px;
   }
}

.mv-item h3 {
   font-size: 1.8rem;
   margin-bottom: 15px;
   font-weight: 600;
}

.mv-item p {
   line-height: 1.6;
   font-size: 1rem;
   color: #ddd;
}

.mv-item:hover {
   background: var(--color-secondary);
   transition: all 0.3s ease-in;
}

/* ====== Llamado a la acción final ====== */
.about-cta {
   background: var(--color-secondary);
   color: #fff;
   text-align: center;
   padding: 40px 20px;
}

/* Laptops */
@media (min-width: 992px) {
   .about-cta {
      padding: 100px 20px;
   }
}

.about-cta h2 {
   font-size: 2.2rem;
   margin-bottom: 15px;
}

.about-cta p {
   font-size: 1.1rem;
   margin-bottom: 30px;
   color: #ddd;
}

.btn-cta {
   background: #fff;
   color: #333333;
   padding: 12px 30px;
   border-radius: 30px;
   font-weight: bold;
   transition: 0.3s ease;
   text-decoration: none;
}

.btn-cta:hover {
   background: var(--color-primary);
   color: #fff;
}

@media (max-width: 992px) {
   .about-company {
      grid-template-columns: 1fr;
      text-align: center;
   }
}

/* ===================================
 PLANES SECCION 
=====================================*/

.plans-section {
   background: var(--background-section);
   padding-bottom: 10px;
}

.plans-title {
   text-align: center;
   font-size: 25pt;
   margin-bottom: 30px;
}

/* Laptops */
@media (min-width: 992px) {
   .plans-title {
      font-size: 35pt;
   }
}

.plans-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
   gap: 25px;
}

.normal-plan-card {
   background: var(--color-primary);
   padding: 20px;
   border-radius: 10px;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
   text-align: center;
}

.normal-plan-card .medidor {
   color: white;
}

.normal-plan-card .plan-title {
   color: white;
}

.normal-plan-card .fondo {
   stroke: #e0e0e0;
}

.normal-plan-card .relleno {
   stroke: var(--color-secondary);
}

.normal-plan-card p.plan-speed {
   color: white;
}

.normal-plan-card .plan-description p {
   color: white;
}

.normal-plan-card h3.plan-category {
   color: white;
}

.normal-plan-card .plan-price {
   color: var(--color-secondary)
}


.plan-card {
   background: #fff;
   padding: 20px;
   border-radius: 10px;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
   text-align: center;
}

.plans-container {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
   gap: 2rem;
   padding: 16px;
}

/* Laptops */
@media (min-width: 992px) {
   .plans-container {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 2rem;
      padding: 2rem;
   }
}

.plans-content {
   display: none;
}

.plans-content.active {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
   gap: 20px;
   justify-content: center;
}

.medidor {
   margin-bottom: 15px;
   color: var(--color-primary);
}

.medidor svg {
   width: 285px;
   height: auto;
}

/* Laptops */
@media (min-width: 992px) {
   .plans-grid.active {
      grid-template-columns: repeat(auto-fit, minmax(280px, 325px));
   }

   .medidor {
      margin-bottom: 35px;
   }
}


.fondo {
   fill: none;
   stroke: #e0e0e0;
   stroke-width: 15;
}

.relleno {
   fill: none;
   stroke: var(--color-primary);
   stroke-width: 15;
   /* stroke-linecap: round; */
   stroke-dasharray: 314;
   stroke-dashoffset: 314;
   transition: stroke-dashoffset 1s ease;
}

.velocidad {
   margin-top: -30px;
   font-size: 18px;
   font-weight: bold;
}

h3.plan-category {
   font-weight: 600;
   color: var(--color-primary);
}

.plan-title {
   font-size: 20px;
   margin: 10px 0;
   color: var(--color-primary);
}

.plan-price {
   font-size: 18px;
   color: var(--color-secondary);
   margin: 5px 0;
}

.plan-speed {
   font-size: 14px;
   color: #555;
}

.plan-description {
   font-size: 14px !important;
   margin-top: 10px;
   color: #666;
}

.plan-card:nth-child(2) {
   background: var(--color-primary);
   padding: 20px;
   border-radius: 10px;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
   text-align: center;
}

.plan-card:nth-child(2) h3.plan-category {
   color: white;
}

.plan-card:nth-child(2) .velocidad {
   color: white;
}

.plan-card:nth-child(2) h3.plan-title {
   color: white;
}

.plan-card:nth-child(2) p.plan-speed {
   color: white;
}

.plan-card:nth-child(2) .plan-description p {
   color: white;
}

.plan-card:nth-child(2) .relleno {
   stroke: var(--color-secondary);
}

.single-plan-page {
   font-family: var(--font-primary);
   color: #666;
}

.plan-hero {
   position: relative;
   text-align: center;
   padding: 80px 20px;
   background: white;
   overflow: hidden;
}

.plan-hero-content {
   position: relative;
   z-index: 2;
}

.single-plan-title {
   font-size: 36pt;
   font-weight: 700;
   margin-bottom: 10px;
   color: var(--color-primary);
}

.single-plan-price {
   font-size: 20pt;
   color: var(--color-secondary);
   margin: 10px 0;
}

.single-plan-speeds {
   font-size: 12pt;
   margin-top: 10px;
   color: var(--color-primary);
}

.plan-details {
   padding: 60px 20px;
   max-width: 900px;
   margin: 0 auto;
}

.plan-meta {
   margin-top: 40px;
   font-size: 11pt;
}

.plan-back {
   text-align: center;
   margin-top: 50px;
}

/* ORDENAR POR */

.orden-container {
   padding: 1rem 2rem;
   text-align: right;
   margin-bottom: 1rem;
}

#ordenar-planes select {
   padding: 0.5rem 1rem;
   font-size: 0.95rem;
   border-radius: 6px;
   border: 1px solid #ccc;
   background: #fff;
   transition: all 0.3s;
}

#ordenar-planes select:hover {
   border-color: #0073aa;
}

/* ===============================
    TABS 
==================================*/

.tabs {
   display: flex;
   justify-content: center;
   gap: 5px;
   margin-bottom: 70px;
}

.tab {
   padding: 10px;
   border-radius: 5px;
   cursor: pointer;
   background: #e0e0e0;
   transition: 0.3s;
   font-weight: bold;
}

/* Laptops */
@media (min-width: 992px) {
   .tab {
      padding: 7px 13px;
   }
}


.tab.active {
   background: var(--color-secondary);
   color: #fff;
}

/* =================
 SUCURSALES
=================== */

.parallax {
   position: relative;
   overflow: hidden;
   width: 100%;
   height: 170vh;
   background-position: center center;
   background-size: cover;
   background-attachment: fixed;
   margin-top: 6em;
}

@media (min-width: 420px) {
   .parallax {
      height: 160vh;
   }
}

/* Laptops */
@media (min-width: 992px) {
   .parallax {
      height: 135vh;
   }
}


.parallax::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgb(7 23 53 / 89%);
   z-index: 0;
}

.container-parallax {
   position: relative;
   z-index: 1;
   padding: 50px 20px;
   text-align: center;
}

.branch-icon svg {
   font-size: 45pt;
   color: #3aa8cb;
}

.branches-title {
   font-family: var(--color-secondary);
   font-weight: 600;
   letter-spacing: -0.5px;
   padding-bottom: 30px;
   text-transform: uppercase;
   text-align: center;
   font-size: 25pt;
   color: white;
}

/* Laptops */
@media (min-width: 992px) {
   .branches-title {
      font-size: 35pt;
   }
}

.branches-grid {
   display: grid;
   grid-template-columns: repeat(1, 1fr);
   gap: 10px;
}


/* Laptops */
@media (min-width: 992px) {
   .branches-grid {
      grid-template-columns: repeat(4, 1fr);
      justify-content: center;
      gap: 20px;
   }
}

.branch-card {
   display: flex;
   flex-direction: column;
   background: white;
   border-radius: 12px;
   padding: 19px 20px 0px 20px;
   text-align: center;
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Laptops */
@media (min-width: 992px) {
   .branch-card {
      padding: 30px 20px 30px 20px;
   }
}

.branch-card:hover {
   transform: translateY(-6px);
   box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}

.branch-card .icon {
   margin-bottom: 15px;
}

.branch-name {
   font-size: 20px;
   margin-bottom: 10px;
   color: var(--color-secondary);
}

a.branch-email {
   color: #3aa8cb;
   margin-bottom: 10px;
   transition: all 0.6s ease;
}

a.branch-email:hover {
   text-decoration: underline;
}

p.branch-phone {
   display: flex;
   flex-direction: column;
   font-weight: 500;
   color: #111111;
   font-size: 11pt;
}

p.branch-description {
   color: white;
   margin-bottom: 3em;
}

/* CONTACTOS */

.contact-section {
   background: var(--background-section);
   margin-top: 5em;
}

.contact-title {
   font-family: "Poppins", sans-serif;
   font-weight: 600;
   letter-spacing: -0.5px;
   text-transform: uppercase;
   text-align: center;
   font-size: 25pt;
   color: #404040;
}

/* Laptops */
@media (min-width: 992px) {
   .contact-title {
      font-size: 35pt;
   }
}


.contact-subtitle {
   text-align: center;
   margin-bottom: 40px;
   color: #555;
}

.contact-grid {
   display: grid;
   grid-template-columns: repeat(1, 1fr);
   gap: 17px;
   margin: 0 auto;
}

/* Laptops */
@media (min-width: 992px) {
   .contact-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 40px;
      max-width: 1200px;
   }
}

.contact-info {
   background: white;
   padding: 30px;
   border-radius: 10px;
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.contact-info p {
   font-size: 11pt;
}

.contact-info h3 {
   margin-bottom: 15px;
   color: var(--color-secondary);
}

.contact-form {
   background: white;
   padding: 30px;
   border-radius: 10px;
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

/* =================================================
    FOOTER
 =================================================== */

.site-footer {
   background: #111;
   color: #bbb;
   font-family: var(--font-primary);
   font-size: 14px;
   line-height: 1.6;
   padding: 60px 20px 20px;
}

.site-footer a {
   color: #bbb;
   text-decoration: none;
   transition: color 0.3s ease;
}

.site-footer a:hover {
   color: #fff;
}

.footer-container {
   max-width: 1200px;
   margin: 0 auto;
   display: grid;
   grid-template-columns: repeat(1, 1fr);
   gap: 30px;
}

/* Laptops */
@media (min-width: 992px) {
   .footer-container {
      grid-template-columns: repeat(4, 1fr);
      gap: 40px;
   }
}


.footer-brand .footer-logo img {
   max-height: 80px;
   margin-bottom: 15px;
}

.footer-brand .footer-desc {
   color: #888;
   margin-bottom: 20px;
}

.footer-contact {
   display: flex;
   flex-direction: column;
   gap: 12px;
}

.contact-box {
   display: flex;
   align-items: center;
   background: #1c1c1c;
   padding: 12px 15px;
   border-radius: 6px;
   color: #fff;
   font-weight: 500;
}

.contact-box:hover {
   background: var(--color-secondary);
   color: #fff;
}

.contact-icon {
   font-size: 18px;
   margin-right: 10px;
}

.footer-title {
   font-size: 16px;
   color: #fff;
   margin-bottom: 20px;
   font-weight: 600;
}

.footer-menu {
   list-style: none;
   padding: 0;
   margin: 0;
}

.footer-menu li {
   margin-bottom: 12px;
}

.footer-menu a {
   color: #bbb;
   font-weight: 400;
}

.footer-menu a:hover {
   color: var(--color-secondary);
}

.footer-menu li.current_page_item a {
   color: var(--color-secondary);
   padding-bottom: 7px;
}

.footer-map img {
   max-width: 100%;
   opacity: 0.9;
   margin-bottom: 20px;
}

.footer-social {
   display: flex;
   gap: 15px;
}

.footer-social a {
   font-size: 18px;
   color: #bbb;
   transition: color 0.3s ease;
}

.footer-social a:hover {
   color: var(--color-primary);
}

.footer-bottom {
   border-top: 1px solid #222;
   margin-top: 40px;
   padding-top: 20px;
   text-align: center;
   font-size: 14px;
   color: #666;
}

.footer-bottom p {
   margin-bottom: 0px;
}

.creator a:hover {
   color: var(--color-secondary);
}

/* ======================================
  PAGE CONTACT
======================================= */

.hero-map-container {
   position: relative;
   width: 100%;
   height: 50vh;
   overflow: hidden;
}

/* Laptops */
@media (min-width: 992px) {
   .hero-map-container {
      height: 70vh;
   }
}

.hero-map-wrapper {
   position: relative;
   width: 100%;
   height: 100%;
   overflow: hidden;
}

.hero-map {
   position: absolute;
   top: -150px;
   left: 0;
   width: 100%;
   height: calc(100% + 150px);
   border: none;
   /* filter: grayscale(100%) brightness(85%);  */
   z-index: 1;
}

.hero-map-title {
   position: relative;
   z-index: 2;
   height: 100%;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   color: #fff;
   text-align: center;
   background: #33333396;
   text-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
}

.hero-map-title h1 {
   font-size: 3em;
   font-weight: 600;
   margin: 0;

}

.contact-page-section {
   padding-top: 60px;
   background: #fff;
}

/* Laptops */
@media (min-width: 992px) {
   .contact-page-section {
      padding: 60px 20px;
   }
}

.contact-wrapper {
   display: flex;
   flex-wrap: wrap;
   margin: 0 auto;
   box-shadow: 1px 1px 7px 1px #c3c3c3
}

.contact-page-form,
.contact-page-info {
   flex: 1 1 500px;
   padding: 50px;
}

.contact-page-form {
   background: #ececec;
}

.contact-page-info {
   border-radius: 0px 0px 5px 5px;
   font-size: 16px;
   background: var(--color-secondary);
}

/* Laptops */
@media (min-width: 992px) {
   .contact-page-info {
      border-radius: 0px;
   }
}

.contact-page-info p {
   color: white;
}

.contact-page-info a {
   color: white;
}

.contact-page-info a:hover {
   color: var(--color-primary);
   text-decoration: underline !important;
}

.contact-page-info h3 {
   margin-top: 0;
   color: #1e1e1e;
}

.contact-socials {
   display: flex;
   align-items: center;
}

.contact-socials a {
   display: inline-flex;
   justify-content: center;
   align-items: center;
   color: #1e1e1e !important;
   width: 35px;
   height: 35px;
   font-size: 16pt;
   border-radius: 50%;
   text-decoration: none;
   transition: all 0.3s ease;
}

.contact-socials .footer-social {
   gap: 0;
}

.contact-socials i {
   width: 30px;
   height: 30px;
   font-size: 1.3rem;
   transition: color 0.3s ease, transform 0.3s ease;
}

.contact-socials a:hover {
   color: var(--color-primary) !important;
   transform: scale(1.1);
}

/* ======================================
   FAQs
========================================= */

.faq-section {
   margin: 60px auto;
   padding: 20px;
   background: var(--background-section);
   font-family: var(--font-primary);
}

.faq-section h2 {
   font-family: "Poppins", sans-serif;
   font-weight: 600;
   letter-spacing: -0.5px;
   text-transform: uppercase;
   text-align: center;
   font-size: 25pt;
   color: #404040;
   margin-bottom: 25px;
   position: relative;
}

.faq-item {
   border-bottom: 1px solid #e5e7eb;
   padding: 18px 0;
   cursor: pointer;
   transition: all 0.3s ease;
}


.faq-item h4 {
   margin: 0;
   font-size: 12pt;
   color: #111827;
   position: relative;
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.faq-item h4::after {
   content: '+';
   font-size: 1.5rem;
   color: #6b7280;
   transition: transform 0.3s ease;
}

.faq-item.active h4::after {
   transform: rotate(45deg);
   color: var(--color-secondary);
}

.faq-item p {
   max-height: 0;
   overflow: hidden;
   opacity: 0;
   margin: 0;
   color: #4b5563;
   line-height: 1.6;
   transition: all 0.3s ease;
}

.faq-item.active p {
   max-height: 200px;
   font-size: 11pt;
   opacity: 1;
   margin-top: 10px;
}

.faq-wrapper {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.faq-item:hover {
   background-color: #f4f4f4;
   /* Cambiar el fondo al pasar el mouse */
   transform: translateY(-5px);
   /* Desplazar ligeramente hacia arriba */
   box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
   /* Agregar una sombra suave */
}


/* Laptops */
@media (min-width: 992px) {
   .faq-wrapper {
      grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
      gap: 20px;
   }
}

/* ========================================
   PRODUCTOS
========================================== */

.container-product {
   padding: 20px;
   margin-bottom: 50px;
   font-family: var(--font-primary);
}

.product-grid {
   display: grid;
   grid-template-columns: repeat(1, 1fr);
   gap: 20px;
   justify-items: center;
}

.product-card {
   display: grid;
   grid-template-columns: repeat(1, 380px);
   align-items: center;
   background: #ffffff;
   padding: 10px 0px;
   border-radius: 5px;
}

/* Laptops */
@media (min-width: 992px) {
   .product-grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .product-card {
      grid-template-columns: repeat(2, 230px);
      background: var(--color-primary);
      /* height: 235px; */
   }
}


.product-image {
   width: 65%;
   background: white;
   margin: 0 auto;
}

.product-info {
   background-color: var(--color-primary);
   padding: 15px;
}

/* Laptops */
@media (min-width: 992px) {
   .product-image {
      box-shadow: 0px 0px 5px -1px #484848;
      margin-left: -20px;
      width: 83%;
   }

   .product-info {
      padding: 15px 15px 15px 0px;
      height: 100%;
   }
}


.product-image img {
   width: 100%;
   height: auto;
}

.product-name {
   font-size: 12pt;
   font-weight: bold;
   color: white;
   margin-bottom: 10px;
   cursor: pointer;
}

.product-name:hover {
   text-decoration: underline;
}

.product-price {
   font-size: 12pt;
   color: var(--color-secondary);
   margin-bottom: 10px;
   font-weight: 800;
}

.product-description p {
   font-size: 9pt;
   color: #ffffff;
   margin-bottom: 15px;
}

/* Single product */

.product-grid {
   display: grid;
   grid-template-columns: repeat(1, 1fr);
   gap: 40px;
   align-items: start;
   justify-content: center;
   margin: 40px 0px;
}

/* Laptops */
@media (min-width: 992px) {
   .product-grid {
      grid-template-columns: repeat(2, 1fr);

   }
}

.product-single-image img {
   width: 100%;
   height: auto;
   object-fit: cover;
}

.product-single-image {
   text-align: center;
}

/* Laptops */
@media (min-width: 992px) {
   .product-single-image img {
      width: 60%;
   }

   .product-single-image {
      text-align: end;
   }
}


.product-details {
   border-left: 1px solid #ccc;
   padding-left: 15px;
}

.product-details .product-title {
   font-size: 1.3rem;
   margin-bottom: 15px;
   font-weight: 600;
}

.product-single-description p {
   color: #666666;
   font-size: 11pt;
}

.product-single-price {
   font-size: 1.2rem;
   margin-bottom: 10px;
   color: var(--color-secondary);
   font-weight: 800;
}

.product-navigation {
   display: flex;
   justify-content: space-around;
   margin: 40px 0;
}

.prev-product a,
.next-product a {
   text-decoration: none;
   font-weight: bold;
}