/*
  style.css (GSV)
  ==============
  Objetivo: que index.html y páginas públicas se rendericen con estilo aun cuando
  el tema original no esté completo.

  - libraries.css ya importa Bootstrap 4.6 desde CDN.
  - Aquí ponemos el “skin” (colores, header, navbar, dropdowns, etc.)
  - Incluimos mapeo de icon-xxxx a FontAwesome para que no se vean vacíos.

  NOTA: este archivo solo aplica skin común público; no importa CSS del panel.
*/


:root{
  --primary:#1a5e2a;
  --primary-2:#2f8a45;
  --dark:#0b1a12;
  --text:#0f172a;
  --muted:#64748b;
  --border:rgba(15,23,42,.12);
  --shadow:0 12px 30px rgba(2,6,23,.12);
  --radius:16px;
}

/* Base */
html{scroll-behavior:smooth}
body{
  font-family:'Rubik','Roboto','Comfortaa',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  color:var(--text);
}

/* Helpers */
.color-primary{color:var(--primary)!important}
.box-shadow-none{box-shadow:none!important}

/* Header / Topbar */
.header{position:relative;z-index:50}
.header-topbar{padding:10px 0}
.header-topbar-dark{background:var(--dark);color:#fff}
.header-topbar a{color:#fff;opacity:.92}
.header-topbar a:hover{opacity:1}

.contact__list{gap:16px}
.contact__list li{display:flex;align-items:center;gap:10px;white-space:nowrap}
.contact__list i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}

.social-icons{display:flex;gap:10px}
.social-icons li a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.08)}
.social-icons li a:hover{background:rgba(255,255,255,.14)}

/* Navbar */
.sticky-navbar{position:sticky;top:0;background:#fff;box-shadow:0 6px 18px rgba(2,6,23,.06)}
.navbar{padding:12px 0}
.navbar .logo{height:44px;width:auto}

/* Menú principal (clases del template) */
.navbar-nav{display:flex;align-items:center;gap:10px}
.nav__item{position:relative}
.nav__item-link{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  border-radius:12px;
  color:var(--text);
  font-weight:500;
  transition:background .15s ease, color .15s ease;
}
.nav__item-link:hover{background:rgba(26,94,42,.08);color:var(--primary)}
.nav__item-link.active{background:rgba(26,94,42,.10);color:var(--primary)}

/* Dropdown */
.dropdown-toggle{display:none}
.has-dropdown:hover>.dropdown-menu{display:block}
.dropdown-menu{border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow);padding:10px 0}
.dropdown-menu .nav__item-link{display:flex;width:100%;border-radius:0;padding:10px 16px}
.dropdown-menu .nav__item-link:hover{background:rgba(26,94,42,.08)}

/* Botones del template */
.btn{
  border-radius:14px;
  padding:10px 16px;
  border:1px solid var(--border);
  font-weight:600;
}
.btn__primary{background:var(--primary);border-color:transparent;color:#fff}
.btn__primary:hover{background:var(--primary-2);color:#fff}
.btn__secondary{background:#0f172a;border-color:transparent;color:#fff}
.btn__secondary:hover{filter:brightness(1.06);color:#fff}

/* Panels / cards (contact, etc.) */
.contact-panel{background:#fff;border-radius:18px;border:1px solid var(--border);box-shadow:0 10px 26px rgba(2,6,23,.08)}
.contact__panel-info{padding:18px}
.contact__panel-form{padding:18px}

/* Formularios */
.form-control{border-radius:14px;border:1px solid rgba(15,23,42,.18)}
.form-control:focus{border-color:rgba(26,94,42,.55);box-shadow:0 0 0 .2rem rgba(26,94,42,.12)}

/* Responsive navbar básica */
.close-mobile-menu{background:transparent;border:0}
@media (max-width: 991px){
  .navbar-nav{flex-direction:column;align-items:stretch;gap:6px;padding:10px 0}
  .has-dropdown:hover>.dropdown-menu{display:none}
  .dropdown-menu{position:static;display:block;box-shadow:none;border:0;padding:0 0 0 10px}
  .dropdown-menu .nav__item-link{padding:8px 10px}
}

/* =============================
   Iconos del template (icon-*)
   =============================
   El HTML usa clases icon-xxxx que normalmente vienen de un icon-font del tema.
   Como ese archivo no estaba incluido, los reemplazamos con FontAwesome 5 Free,
   que ya se carga desde CDN en el <head>.
*/

[class^="icon-"], [class*=" icon-"]{font-style:normal}

.icon-clock::before{content:"\f017";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-mail::before{content:"\f0e0";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-phone::before{content:"\f095";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-location::before{content:"\f3c5";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-arrow-right::before{content:"\f061";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-download::before{content:"\f019";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-solar-panel::before{content:"\f5ba";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-energy::before{content:"\f0e7";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-energy2::before{content:"\f0e7";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-electric-car::before{content:"\f5de";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-eco-house::before{content:"\f015";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-eco-factory::before{content:"\f275";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-hydro-power::before{content:"\f043";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-hydro-power3::before{content:"\f043";font-family:"Font Awesome 5 Free";font-weight:900}
.icon-filled::before{content:"\f111";font-family:"Font Awesome 5 Free";font-weight:900}

/* Si existe otro icon-* no mapeado, por lo menos deja un punto */
[class^="icon-"]:not(.icon-clock):not(.icon-mail):not(.icon-phone):not(.icon-location):not(.icon-arrow-right):not(.icon-download):not(.icon-solar-panel):not(.icon-energy):not(.icon-energy2):not(.icon-electric-car):not(.icon-eco-house):not(.icon-eco-factory):not(.icon-hydro-power):not(.icon-hydro-power3):not(.icon-filled)::before{
  content:"\f111";
  font-family:"Font Awesome 5 Free";
  font-weight:900;
  opacity:.7;
}

/* Evita viñetas si por algo Bootstrap no cargara */
ul{margin:0}
ul.list-unstyled{list-style:none;padding-left:0}

/* =============================
   Slider / Carousel (fallback sin Slick)
   ============================= */

/* Overlay helpers del template */
.bg-overlay{position:relative}
.bg-overlay::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(5,10,20,.72), rgba(5,10,20,.35));
  z-index:0;
}
.bg-overlay-2::before{background:linear-gradient(90deg, rgba(5,10,20,.80), rgba(5,10,20,.45))}
.bg-img{position:absolute;inset:0;z-index:0;overflow:hidden}
.bg-img img{width:100%;height:100%;object-fit:cover}

/* Slider */
.slider{position:relative}
.slider .slick-carousel{position:relative}
.slider .slide-item{
  position:relative;
  min-height:520px;
  display:none;
  padding:110px 0 80px;
}
.slider .slide-item.is-active{display:block}
.slider .slide-item .container{position:relative;z-index:2}
.slide__title{font-size:52px;line-height:1.05;margin:10px 0 10px;color:#fff;font-weight:700}
.slide__desc{color:rgba(255,255,255,.92);font-size:16px;max-width:680px}
.btn__white{background:#fff;border-color:transparent;color:#0f172a}
.btn__white:hover{filter:brightness(.98);color:#0f172a}
.video__btn{display:inline-flex;align-items:center;gap:12px;color:#fff}
.video__player{
  width:44px;height:44px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.22);
}
.video__player i{color:#fff}
.video__btn-title{font-weight:600}

/* Controles del slider (generados por JS) */
.gsv-slider-controls{position:absolute;left:0;right:0;bottom:18px;z-index:5;display:flex;align-items:center;justify-content:center;gap:14px}
.gsv-slider-btn{
  width:44px;height:44px;border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,0,0,.25);
  color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
}
.gsv-slider-dots{display:flex;gap:8px;align-items:center;justify-content:center}
.gsv-slider-dot{
  width:10px;height:10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background:transparent;
  opacity:.9;
}
.gsv-slider-dot.is-active{background:#fff;border-color:#fff}

/* Carouseles internos: degradar a scroll horizontal suave */
.slick-carousel.is-scroller{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding:6px 2px 18px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.slick-carousel.is-scroller > *{
  flex:0 0 auto;
  scroll-snap-align:start;
}
.slick-carousel.is-scroller::-webkit-scrollbar{height:10px}
.slick-carousel.is-scroller::-webkit-scrollbar-thumb{background:rgba(15,23,42,.18);border-radius:999px}

/* Features grid cards */
.feature-item{
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px;
  box-shadow:0 8px 22px rgba(2,6,23,.06);
  height:100%;
}
.feature__icon{font-size:26px;color:var(--primary);margin-bottom:8px}
.feature__title{font-size:18px;margin:8px 0 10px}
.feature__desc{color:var(--muted);font-size:14px}
.btn__link{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-weight:700;margin-top:8px}

/* Footer */
.footer{margin-top:40px}
.footer-primary{background:#0b1a12;color:#fff;padding:54px 0}
.footer a{color:#fff}
.footer-widget-title{font-size:16px;margin-bottom:14px}
.footer-copyrights{background:#07130d;color:rgba(255,255,255,.85);padding:16px 0}

/* Responsive */
@media (max-width: 991px){
  .slider .slide-item{min-height:520px;padding:92px 0 60px}
  .slide__title{font-size:38px}
}
@media (max-width: 575px){
  .slider .slide-item{min-height:520px;padding:78px 0 56px}
  .slide__title{font-size:32px}
  .contact__list li{white-space:normal}
}



/* ==========================================================
   Public site hardening / home theme completion (v22.7.3)
   ========================================================== */
body{background:#fff;overflow-x:hidden}
section{position:relative}
.pt-120{padding-top:120px}
.pb-80{padding-bottom:80px}
.pb-70{padding-bottom:70px}
.pb-60{padding-bottom:60px}
.py-0{padding-top:0;padding-bottom:0}
.pt-0{padding-top:0}
.mt-60{margin-top:60px}
.mb-10{margin-bottom:10px}
.mb-40{margin-bottom:40px}
.mb-60{margin-bottom:60px}
.pl-30{padding-left:30px}
.mr-30{margin-right:30px}
.mr-50{margin-right:50px}
.gutter-20{margin-left:-10px;margin-right:-10px}
.gutter-20>[class*="col-"]{padding-left:10px;padding-right:10px}
.row-no-gutter{margin-left:0;margin-right:0}
.row-no-gutter>[class*="col-"]{padding-left:0;padding-right:0}
.align-v-h{display:flex;align-items:center}
.color-white{color:#fff!important}
.color-gray{color:var(--muted)!important}
.text-underlined-primary{text-decoration:underline;text-decoration-color:rgba(26,94,42,.35);text-underline-offset:3px}
[class*="col-"]{width:100%}
@media (min-width:576px){.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-12{flex:0 0 100%;max-width:100%}}
@media (min-width:768px){.col-md-6{flex:0 0 50%;max-width:50%}.col-md-12{flex:0 0 100%;max-width:100%}}
@media (min-width:992px){.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-12{flex:0 0 100%;max-width:100%}.offset-lg-1{margin-left:8.333333%}}
@media (min-width:1200px){.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}}
.navbar-expand-lg .navbar-collapse{display:flex!important;align-items:center;justify-content:space-between;flex:1 1 auto}.collapse{display:flex!important}
.menu-lines,.menu-lines span{display:block;position:relative}.menu-lines{width:26px;height:18px}.menu-lines span,.menu-lines span:before,.menu-lines span:after{content:"";position:absolute;left:0;width:26px;height:2px;background:#0f172a;border-radius:3px}.menu-lines span{top:8px}.menu-lines span:before{top:-8px}.menu-lines span:after{top:8px}
.navbar-actions{display:flex;align-items:center;gap:12px}.navbar .btn__primary{padding:12px 18px}
.slider{background:#07130d}.slider .slide-item:first-child{display:block}.slide__body{max-width:760px;padding:20px 0}.slide__body .d-flex{flex-wrap:wrap;gap:16px}.slider .slide-item .btn{min-width:140px;justify-content:center}
.heading-layout2,.heading__layout2{margin-bottom:26px}.heading__subtitle{display:inline-block;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:10px}.heading__title{font-size:clamp(28px,3vw,44px);line-height:1.12;margin:0 0 14px;color:#0f172a;font-weight:700}.heading-light .heading__title,.heading-light .heading__desc,.heading-light .heading__subtitle{color:#fff}.heading__desc,.text-block p,.banner__text,.cta__desc,.counter__desc,.testimonial__desc,.portfolio__cat{color:var(--muted);font-size:15px;line-height:1.75}
.about-layout2{padding-top:90px}.about__img{position:relative;border-radius:26px;overflow:hidden;box-shadow:0 18px 50px rgba(2,6,23,.12);background:#fff}.about__img img{display:block;width:100%;height:auto}.text-block{padding:10px 0 0 10px}.list-items{padding:0;margin:20px 0 0;list-style:none}.list-items li{position:relative;padding-left:30px;margin-bottom:12px;color:#334155;line-height:1.6}.list-items li:before{content:"\f00c";font-family:"Font Awesome 5 Free";font-weight:900;position:absolute;left:0;top:1px;color:var(--primary)}.list-items-layout2 li{font-weight:500}.read-note{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:#f8fafc;border:1px solid var(--border);margin-top:22px}.read-note__text{font-size:14px;color:#334155;line-height:1.65}.contact__number{display:inline-flex;align-items:center;gap:10px;font-size:22px;font-weight:700;color:var(--primary);margin-top:18px}
.features-layout4{margin-top:-46px;z-index:5}.features-wrapper{position:relative;z-index:3}.features-layout1{background:#f8fafc}.features-layout1 .feature-item,.features-layout4 .feature-item{margin-bottom:24px}.custom-icon i{font-size:30px}
.banner-layout1,.banner-layout3,.cta-layout2,.cta__banner{overflow:hidden}.banner-layout1{padding:80px 0}.banner-layout1 .row,.cta-layout2 .row,.banner-layout3 .row{align-items:center}.banner-layout1 .img-block img,.cta__banner img{display:block;width:100%;border-radius:26px;box-shadow:0 18px 50px rgba(2,6,23,.14)}.banner-layout3{padding:90px 0;color:#fff;background:linear-gradient(120deg,#0b1a12,#1a5e2a)}.banner-layout3 .heading__title,.banner-layout3 .heading__desc,.banner-layout3 .banner__text,.banner-layout3 .list-items li{color:#fff}.banner-layout3 .list-items li:before{color:#fff}.cta-layout2{padding:90px 0;background:#f8fafc}.cta-container{border-radius:28px;background:#fff;box-shadow:0 18px 50px rgba(2,6,23,.10);overflow:hidden}.cta__body{padding:40px}.cta__icon{width:62px;height:62px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;background:rgba(26,94,42,.08);color:var(--primary);font-size:28px;margin-bottom:16px}.cta__title{font-size:28px;line-height:1.2;margin-bottom:12px}.cta__item{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--border)}.cta__item:first-of-type{border-top:0}.cta__item .cta__icon{width:48px;height:48px;border-radius:16px;font-size:20px;margin-bottom:0;flex:0 0 auto}
.counter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:30px}.counter-item{padding:20px;border-radius:20px;background:#fff;border:1px solid var(--border);box-shadow:0 10px 28px rgba(2,6,23,.06)}.counter-item h4,.counter-item .counter{font-size:34px;line-height:1;margin:0 0 8px;color:#0f172a}.counter-light .counter-item{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.15);backdrop-filter:blur(6px)}.counter-light .counter-item h4,.counter-light .counter__desc{color:#fff}
.portfolio-layout1{padding:90px 0;background:#fff}.portfolio-item{height:100%;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:0 14px 36px rgba(2,6,23,.08);transition:transform .18s ease, box-shadow .18s ease}.portfolio-item:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(2,6,23,.12)}.portfolio__img img{display:block;width:100%;height:250px;object-fit:cover}.portfolio__body{padding:20px}.portfolio__title{font-size:20px;line-height:1.3;margin:0 0 8px}.portfolio__cat{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:8px}
.testimonials-layout2{padding:90px 0;background:#f8fafc}.testimonial-item{height:100%;padding:26px;border-radius:24px;background:#fff;border:1px solid var(--border);box-shadow:0 14px 34px rgba(2,6,23,.08)}.testimonial__rating,.rating{display:flex;gap:5px;color:#f59e0b;margin-bottom:14px}.testimonial__desc{font-size:15px;color:#334155;margin-bottom:22px}.testimonial__meta{display:flex;align-items:center;gap:14px}.testimonial__thumb img{width:62px;height:62px;border-radius:999px;object-fit:cover}.testimonial__meta-title{margin:0;font-size:17px;font-weight:700}.testimonial__meta-desc{font-size:13px;color:var(--muted)}
.footer-primary .row{align-items:flex-start}.footer-widget{margin-bottom:30px}.footer-widget-content p,.footer-widget-content li,.footer-widget-contact li{color:rgba(255,255,255,.86);line-height:1.7}.footer-widget-nav{padding:0;margin:0;list-style:none}.footer-widget-nav li+li{margin-top:8px}.footer-widget-contact{padding:0;margin:0;list-style:none}.footer-widget-contact li{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.copyright__nav{display:flex;gap:18px;justify-content:flex-end;padding:0;margin:0;list-style:none}
.search-popup{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:24px;z-index:9999}.search-popup.show{display:flex}.search-popup__form{position:relative;width:min(720px,100%)}.search-popup__input{width:100%;height:64px;border-radius:18px;border:0;padding:0 68px 0 22px;font-size:18px;box-shadow:0 18px 50px rgba(2,6,23,.20)}.search-popup__btn,.search-popup__close{position:absolute;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#0f172a}.search-popup__btn{right:18px}.search-popup__close{right:-12px;top:-32px;transform:none;color:#fff;font-size:24px}
@media (max-width:1199px){.navbar-actions{display:none!important}.cta__body{padding:32px}}
@media (max-width:991px){.navbar-expand-lg .navbar-collapse{display:none!important;position:absolute;left:16px;right:16px;top:100%;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:18px;z-index:60}.navbar-expand-lg .navbar-collapse.show{display:block!important}.navbar-nav{display:block}.nav__item{display:block}.nav__item-link{display:flex;justify-content:space-between;width:100%}.dropdown-toggle{display:inline-flex!important;position:absolute;right:12px;top:10px;width:34px;height:34px;border:0;background:rgba(26,94,42,.06);border-radius:10px;align-items:center;justify-content:center}.dropdown-toggle:after{content:"\f078";font-family:"Font Awesome 5 Free";font-weight:900;font-size:12px;color:var(--primary)}.has-dropdown:hover>.dropdown-menu{display:none}.has-dropdown .dropdown-menu{position:static;display:none;margin-top:8px;width:100%;box-shadow:none;border-radius:12px;background:#f8fafc}.has-dropdown.is-open>.dropdown-menu{display:block}.features-layout4{margin-top:30px}.about-layout2,.banner-layout1,.portfolio-layout1,.testimonials-layout2,.cta-layout2,.banner-layout3{padding-top:70px;padding-bottom:70px}.counter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.header-topbar .d-flex{display:block!important}.social-icons{margin-top:12px}.slide__body .d-flex{align-items:flex-start!important}.counter{grid-template-columns:1fr}.cta__body{padding:24px}.copyright__nav{justify-content:flex-start;flex-wrap:wrap;margin-top:10px}}
@media (max-width:575px){.container{padding-left:18px;padding-right:18px}.slider .slide-item{min-height:580px}.heading__title{font-size:28px}.portfolio__img img{height:220px}}


/* =========================================================
   Public responsive hardening — vR3
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
img,svg,canvas,video,iframe{max-width:100%}
iframe{display:block;width:100%}
.row,[class*="col-"],.contact-panel,.contact__panel-info,.contact__panel-form,.feature-item,.portfolio-item,.testimonial-item,.cta-container{min-width:0}
.navbar-brand,.navbar-nav,.navbar-collapse,.dropdown-menu{min-width:0}

@media (max-width: 991px){
  .navbar>.container,.navbar .container{position:relative}
  .navbar-expand-lg .navbar-collapse{max-height:calc(100dvh - 110px);overflow:auto;-webkit-overflow-scrolling:touch}
  .nav__item-link{white-space:normal}
}

@media (max-width: 767px){
  .header .navbar{padding:12px 0}
  .header .navbar .logo{max-width:100%;height:56px !important}
  .contact__panel-info,.contact__panel-form{padding:16px}
  .read-note,.cta__item,.testimonial__meta{align-items:flex-start}
}

@media (max-width: 575px){
  .container{padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right))}
  .btn,.btn__primary,.btn__secondary{width:100%;justify-content:center}
  .slider .slide-item{min-height:auto;padding:72px 0 48px}
  .slide__body{padding:0}
  .slide__body .btn{width:100%;max-width:100%}
  .video__btn{width:100%;justify-content:flex-start}
  .contact-panel{border-radius:16px}
}

