
/* =================================================================
   Cooperativa Porvenir — style.css
   ================================================================= */

@import url('https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800,900|Source+Sans+Pro:300,400,600,700,900');
@import url('../vendor/bootstrap/css/bootstrap.min.css');
@import url('../vendor/Camera-master/css/camera.css');
@import url('../vendor/menu/dist/css/slimmenu.css');
@import url('../fonts/font-awesome/css/font-awesome.min.css');
@import url('../vendor/owl-carousel/owl.carousel.css');
@import url('../vendor/owl-carousel/owl.theme.css');
@import url('../vendor/WOW-master/css/libs/animate.css');
@import url('../fonts/icon/font/flaticon.css');
@import url('../vendor/fancybox/dist/jquery.fancybox.min.css');
@import url('../vendor/language-switcher/polyglot-language-switcher.css');
@import url('../vendor/sanzzy-map/dist/snazzy-info-window.min.css');

:root {
  /* ── Colores de marca ── */
  --color-brand:        #165729;
  --color-brand-light:  #25d366;
  --color-brand-mid:    #1e7a38;
  --color-brand-dark:   #0e3b1c;
  --color-brand-alpha:  rgba(22, 87, 41, 0.85);
  --color-brand-shadow: rgba(22, 87, 41, 0.2);
  --color-brand-bg:     #f0f7f2;

  /* Aliases cortos (usados en componentes nuevos) */
  --brand:        var(--color-brand);
  --brand-mid:    var(--color-brand-mid);
  --brand-light:  var(--color-brand-light);
  --brand-bg:     var(--color-brand-bg);
  --brand-shadow: var(--color-brand-shadow);
  --brand-shadow2: rgba(22, 87, 41, 0.32);

  /* ── Tipografía ── */
  --font-heading: 'Nunito Sans', sans-serif;
  --font-body:    'Source Sans Pro', sans-serif;

  /* ── Colores neutros ── */
  --color-text:        #555555;
  --color-text-dark:   #232323;
  --color-text-muted:  #777777;
  --color-border:      #eaeaea;
  --color-border-light:#f1f1f1;
  --color-bg-light:    #f8f9fa;
  --white:             #ffffff;

  /* Aliases neutros */
  --text-dark:  #1a2e20;
  --text-body:  #4a5e4f;
  --text-muted: #7a917f;
  --border:     #d4e6d8;

  /* ── Espaciado ── */
  --section-spacing: 100px;

  /* ── Radios ── */
  --radius-sm: 8px;
  --radius:    14px;
  --radius-md: 12px;
  --radius-lg: 22px;
  --radius-xl: 20px;
  --radius-pill: 50px;

  /* ── Sombras ── */
  --shadow-sm:    0 5px 15px rgba(0, 0, 0, 0.05);
  --shadow-md:    0 10px 30px rgba(0, 0, 0, 0.08);
  --shadow-lg:    0 15px 40px rgba(0, 0, 0, 0.12);
  --shadow-card:  0 8px 32px rgba(0, 0, 0, 0.07);
  --shadow-hover: 0 18px 48px rgba(0, 0, 0, 0.13);
  --shadow-brand: 0 8px 20px var(--color-brand-shadow);
  --sombra-elegante: 0 10px 30px rgba(0, 0, 0, 0.08);

  /* ── Transiciones ── */
  --transition: all 0.3s cubic-bezier(.4, 0, .2, 1);
  --transicion: var(--transition);

  /* ── Formularios ── */
  --input-border: #ced4da;
  --borde-input:  #ced4da;
  --label-color:  #3a4a3e;
  --verde-claro:  #e8f5e9;
  --verde-suave:  rgba(22, 87, 41, 0.08);
}

/* ============================================================ */
/*   00 - CSS Variables (:root)                               */
/*   01 - Global Style                                        */
/*   02 - Theme Title                                         */
/*   03 - Theme Pagination                                    */
/*   04 - Theme Header One                                    */
/*   05 - Theme Header Two                                    */
/*   06 - Theme Menu One                                      */
/*   07 - Theme Menu Two                                      */
/*   08 - Theme Main Banner                                   */
/*   09 - Top Feature                                         */
/*   10 - About Company                                       */
/*   11 - Feature Banner                                      */
/*   12 - Service Style One                                   */
/*   13 - Testimonial Slider                                  */
/*   14 - Our Team                                            */
/*   15 - Theme Counter                                       */
/*   16 - Free Consultation                                   */
/*   17 - Partner Slider                                      */
/*   18 - Theme Footer One                                    */
/*   19 - Theme Footer Two                                    */
/*   20 - CallOut Banner                                      */
/*   21 - Our Solution                                        */
/*   22 - About Company Style Two                             */
/*   23 - Our Case                                            */
/*   24 - FAQ Section                                         */
/*   25 - Why Choose Us                                       */
/*   26 - Short Banner                                        */
/*   27 - Latest News                                         */
/*   28 - Google Map                                          */
/*   29 - Theme Inner Banner                                  */
/*   30 - Why We Best                                         */
/*   31 - Core Values                                         */
/*   32 - Theme Sidebar One                                   */
/*   33 - Service Details                                     */
/*   34 - Project Details                                     */
/*   35 - Blog Sidebar                                        */
/*   36 - Blog Details                                        */
/*   37 - Contact Us                                          */
/*   38 - Company Branch Address                              */
/*   39 - Shop Page                                           */
/*   40 - Error Page                                          */
/*   41 - Button: Quiero Ser Socio                            */
/*   42 - Carousel / Banner Principal                         */
/*   43 - Savings Section (Ahorros)                           */
/*   44 - Savings Cards                                       */
/*   45 - Requirements Box                                    */
/*   46 - Credit Simulator Form                               */
/*   47 - Solidarity Section                                  */
/*   48 - Contact Info Cards                                  */
/*   49 - Social Icon Buttons                                 */
/*   50 - Page Detail (Asambleas / Eventos)                   */
/*   51 - Gallery Symmetric                                   */
/*   52 - FAQ Porvenir (Custom)                               */
/*   53 - Requirements Section (Tabs)                         */
/*   54 - Credit Request Form / Simulator                     */


/*-------- animated css ------*/
/*--------- flat-icon ---------*/
/*----------- Fancybox css -------*/

/*------------- Map -------------*/
/* =================================================================
   00 - CSS Variables — Cooperativa Porvenir
   Modificar aquí cambia colores/tipografía en TODO el sitio.
================================================================= */


/***

====================================================================
  Loading Transition
====================================================================

 ***/
/* Contenedor de pantalla completa para la carga */
#loader-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999999;
  background: #ffffff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s ease-out;
}
/* El elemento cargador */
#loader {
  background-size: contain;
  width: 80px;
  height: 80px;
  position: relative;
}
/* OPCIONAL: Si quieres un efecto de pulso institucional sin usar GIFs */
#loader::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 4px solid var(--color-brand);
  border-top-color: transparent;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

/*==================== Click Top ====================*/
/* Botón Volver Arriba */
.scroll-top {
  width: 45px;
  height: 45px;
  position: fixed;
  bottom: 30px;
  right: 25px;
  z-index: 999;
  text-align: center;
  line-height: 45px;
  color: #fff;
  background: var(--color-brand);
  font-size: 20px;
  display: none;
  cursor: pointer;
  border-radius: 50%;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
}
/* Efecto al pasar el mouse */
.scroll-top:hover {
  background: var(--color-brand-light);
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(22, 87, 41, 0.3);
}
/* Sombra proyectada en el fondo */
.scroll-top:after {
  position: absolute;
  z-index: -1;
  content: '';
  top: 100%;
  left: 5%;
  height: 10px;
  width: 90%;
  opacity: 0.6;
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 80%);
  transition: all 0.3s ease;
}
.scroll-top:hover:after {
  transform: scale(0.8);
  opacity: 0.3;
}
/* =================================================================
   01 - Global Style
   NOTA: Font Awesome se carga via @import — @font-face eliminado.
================================================================= */

html { scroll-behavior: smooth; }
body {
  overflow-x: hidden;
  font-family: var(--font-body);
  font-weight: 400;
  color: #555555;
  font-size: 18px;
  position: relative;
  background-image: url('../images/home/logo_fondo.png');
  background-attachment: fixed;
  background-size: 50% auto;
  background-position: center right;
  background-repeat: no-repeat;
  background-color: #fff;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
}
/* FIX: background-attachment:fixed no funciona en iOS Safari */
@media (max-width: 768px) {
  body { background-attachment: scroll; }
}
.main-page-wrapper { overflow-x: hidden; }
/*--------------------- Tipografía --------------------*/
h1, h2, h3, h4, h5, h6, p, ul { margin: 0; padding: 0; }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: #232323;
  line-height: 1.2;
}
h1 { font-size: 64px; font-weight: 900; letter-spacing: -1.5px; }
h2 { font-size: 42px; font-weight: 800; color: var(--color-brand); } /* Color institucional en títulos */
h3 { font-size: 32px; font-weight: 700; }
h4 { font-size: 26px; font-weight: 700; }
h5 { font-size: 22px; font-weight: 700; }
h6 { font-size: 20px; font-weight: 600; }
p { line-height: 28px; margin-bottom: 15px; }
ul { list-style-type: none; }
/*--------------------- Enlaces y Elementos de Acción --------------------*/
body a {
  text-decoration: none;
  color: var(--color-brand);
  display: inline-block;
  font-family: var(--font-heading);
  transition: all 0.3s ease;
}
a:hover, a:focus { color: var(--color-brand-light); text-decoration: none; outline: none; }
img { max-width: 100%; height: auto; display: block; }
button {
  border: none;
  outline: none;
  background: none;
  padding: 0;
  cursor: pointer;
  transition: opacity 0.3s;
}
button:hover { opacity: 0.8; }
input, textarea {
  outline: none;
  box-shadow: none;
  border: 1px solid #dfdfdf;
  padding: 10px 15px;
  border-radius: 5px;
  transition: all 0.3s ease-in-out;
}
input:focus, textarea:focus { border-color: var(--color-brand); }
/*--------------------- Sistema de Grid Adaptativo --------------------*/
.three-column-grid {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px;
}
.three-column-grid .item {
  flex: 1;
  margin: 0 15px;
  min-width: 280px;
  margin-bottom: 30px;
}
/* Espaciado global */
.section-spacing { margin-bottom: var(--section-spacing); }
/*--------------------- Transition --------------------*/
.tran3s,h2 a,h3 a,h4 a,h5 a,h6 a,.header-one .top-header .address-wrapper .quotes a,.header-one .theme-menu-wrapper .right-widget .social-icon li a,#mega-menu-holder ul.dropdown li a:before,.theme-button-one,
#theme-main-banner .camera_pag .camera_pag_ul li > span,.top-feature .main-content,.service-style-one .single-service .text,.service-style-one .single-service,
.owl-theme .owl-dots .owl-dot span,.our-team .team-member .overlay .hover-content ul li a,.our-team .team-member .overlay,.our-team .team-member .text,.theme-footer-two .top-footer .footer-list ul li a,
.theme-footer-one .top-footer .footer-list ul li a,.theme-footer-one .bottom-footer ul li a,.header-two .top-header .social-icon li a,.our-case .single-case-block .hover-content,
.our-case .single-case-block .hover-content .text .details,.accordion-one .panel-group .panel-heading a:before,.our-blog .single-blog .post-meta .read-more,.theme-footer-two .logo-widget .social-icon li a,
.core-values .single-value-block .image-box .overlay,.theme-sidebar-one .service-categories ul li a,.theme-pagination ul li a,.project-details .project-details-sidebar .social-icon li a,
.blog-sidebar .sidebar-categories ul li a,.blog-sidebar .sidebar-archives ul li a,.blog-sidebar .sidebar-tags ul li a,.blog-details .share-option  li a,.shop-page .single-product .product-name .price,
.shop-page .single-product .image-box,.shop-page .single-product .product-name .add-to-cart,.shop-page .single-product .product-name .add-to-cart a,.shop-details .product-review-tab .nav-tabs .nav-link {
  transition: all .3s ease-in-out;
}
.tran4s,.our-solution .single-solution-block .icon,.our-case .single-case-block .hover-content .text,.our-blog .single-blog .image-box img {
  transition: all .4s ease-in-out;
}
 /*----------------------- Theme Color File -------------------*/
.p-color,.header-one .top-header .address-wrapper .quotes a,.header-one .top-header .address-wrapper .address .icon,#theme-main-banner .camera_caption h1,
#theme-main-banner .camera_caption .theme-button-one,.top-feature .main-content:hover h4 a,.about-compnay .mission-goal li .icon,.service-style-one .single-service .text .read-more,
.service-style-one .single-service:hover .text h5 a,.service-style-one .contact-text h5,.service-style-one .contact-text h5 a,.our-team .team-member .overlay .hover-content ul li a:hover,
.theme-counter h6,.single-counter-box .number,.theme-footer-one .top-footer .footer-newsletter .theme-button-one,.header-two #mega-menu-holder>ul> li.active > a, .header-two #mega-menu-holder>ul> li:hover > a,
.header-two #mega-menu-holder>ul> li.active > .sub-toggle,.header-two #mega-menu-holder>ul> li:hover > .sub-toggle,.callout-banner .theme-button-one,.our-solution .single-solution-block:hover h5 a,
.faq-section .wrapper .img-box .play,.why-choose-us .single-block .icon,.why-choose-us .single-block:hover h5 a,.short-banner .overlay h2,.our-blog .single-blog .post-meta .read-more,
.our-blog .single-blog:hover .post-meta .title a,.why-we-best .wrapper .best-list-item li .icon,.why-we-best .wrapper .best-list-item li:hover h5 a,.core-values .single-value-block .image-box .overlay a,
.core-values .single-value-block:hover .text h5 a,.theme-sidebar-one .service-categories ul li a:hover,.theme-sidebar-one .service-categories ul li.active a,
.service-details .service-content .presentation-section .best-list-item li .icon,.project-details .project-details-sidebar .social-icon li a:hover,.blog-sidebar .sidebar-categories ul li a:hover,
.blog-sidebar .sidebar-recent-post li .post a:hover,.blog-sidebar .sidebar-archives ul li a:hover,.blog-details .share-option .tag-meta li a:hover,.blog-details .share-option .social-icon li a:hover,
.our-blog .comment-area .single-comment .comment a,.shop-page .single-product .product-name .price,.shop-page .single-product:hover .product-name h5 a,.shop-page .single-product .product-name .add-to-cart a,
.shop-details .product-details .product-info .price,.faq-page .panel-group .panel-heading h6 a:before {
  color:var(--color-brand);
}
.p-bg-color,.scroll-top,.header-one .top-header .address-wrapper .quotes a:hover,.theme-menu-wrapper .right-widget .search-option form button,
#mega-menu-holder ul.dropdown li:hover>a:before,.theme-button-one,#theme-main-banner .camera_caption .theme-button-one:hover,.callout-banner.no-bg .theme-button-one,
#theme-main-banner .camera_pag .camera_pag_ul li.cameracurrent > span,#theme-main-banner .camera_pag .camera_pag_ul li:hover > span,.service-style-one .contact-text h5:before,
.testimonial-section .owl-theme .owl-dots .owl-dot.active span,.testimonial-section .owl-theme .owl-dots .owl-dot:hover span,#polyglotLanguageSwitcher ul.dropdown li:hover,
.our-case .single-case-block .hover-content .text .details:hover,.our-blog .single-blog .image-box .overlay .date,.core-values .single-value-block .image-box .overlay a:hover,
.theme-sidebar-one .sidebar-brochures ul,.theme-pagination ul li a:hover,.theme-pagination ul li.active a,.blog-sidebar .sidebar-tags ul li.active a,.blog-sidebar .sidebar-tags ul li a:hover  {
  background: var(--color-brand);
}
.header-one .top-header .address-wrapper .quotes a,#theme-main-banner .camera_pag .camera_pag_ul li,.theme-pagination ul li a:hover,.theme-pagination ul li.active a,.blog-sidebar .sidebar-tags ul li.active a,
.blog-sidebar .sidebar-tags ul li a:hover,.shop-page .single-product:hover .image-box {
  border-style: solid;
  border-color:var(--color-brand);
}
/*----------------- Theme button ------------------*/
body .theme-button-one {
  display: inline-block;
  line-height: 50px;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
  background: var(--color-brand);
  border: 2px solid var(--color-brand);
  border-radius: 50px;
  padding: 0 35px;
  transition: all 0.3s ease-in-out;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 10px rgba(22, 87, 41, 0.2);
}
body .theme-button-one:hover {
  background: #ffffff;
  color: var(--color-brand);
  border-color: var(--color-brand);
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(22, 87, 41, 0.3);
  text-decoration: none;
}
/*------------------- Theme Title ------------------*/
.theme-title-one {
  position: relative;
  text-align: center;
  margin-bottom: 50px;
}
.theme-title-one h2 {
  position: relative;
  text-transform: uppercase;
  padding-bottom: 25px;
  font-weight: 800;
  color: var(--color-brand);
  letter-spacing: 1px;
}
/* La línea decorativa debajo del título */
.theme-title-one h2:before {
  content: '';
  width: 60px;
  height: 5px;
  border-radius: 10px;
  background: var(--color-brand);
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: -30px;    /* Ajustado a la mitad del nuevo ancho (60/2) */
  transition: width 0.4s ease;
}
/* Opcional: Una pequeña línea secundaria para un toque moderno */
.theme-title-one h2:after {
  content: '';
  width: 15px;
  height: 5px;
  background: #f1f1f1; /* Un toque de blanco/gris muy claro */
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: 35px;
  border-radius: 10px;
}
.theme-title-one p {
  padding-top: 25px;
  font-size: 18px;
  color: #555;
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.6;
}
/*------------------- Theme Pagination ------------------*/
.theme-pagination ul {
  padding-top: 40px;
  text-align: center;
}
.theme-pagination ul li {
  display: inline-block;
  margin: 0 5px;
}
.theme-pagination ul li a {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-brand);
  width: 50px;
  line-height: 48px;
  text-align: center;
  border-radius: 50%;
  border: 2px solid #eee;
  background: #ffffff;
  transition: all 0.3s ease;
}
/* Estado al pasar el mouse y página activa */
.theme-pagination ul li a:hover,
.theme-pagination ul li.active a {
  color: #fff !important;
  background: var(--color-brand);
  border-color: var(--color-brand);
  box-shadow: 0 4px 8px rgba(22, 87, 41, 0.3);
}
.theme-pagination ul li.active a {
  cursor: default;
  transform: scale(1.1);
}
/*--------------------------- Theme Header One  ---------------------*/
/* Especificidad aumentada para override Bootstrap sin !important */
.header-one .theme-menu-wrapper .container {
    max-width: 100%;
    width: 100%;
    padding: 0;
}

/* La caja del menú: Expansión total de lado a lado */
.header-one
/* --- LOGO SECUNDARIO (A la derecha) --- */
.theme-menu-wrapper .right-widget {
    float: right;
    display: flex;
    align-items: center;
    height: 75px;
    padding-right: 5px;
    margin-right: -5px;
}
.theme-menu-wrapper .right-widget
.theme-menu-wrapper .right-widget .secondary-logo img:hover {
    transform: scale(1.08);
}
/* --- Lógica de Menú Sticky (Scroll) --- */
.header-one.fixed-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    animation: fadeInDown 0.4s ease;
}
.header-one.fixed-header .top-header {
    display: none;
}
/* Animación para el scroll */
/* Ajuste para móviles: Ocultar logo secundario para dar espacio al menú hamburguesa */
@media (max-width: 991px) {
    .header-one .theme-menu-wrapper .bg-wrapper {
        padding-left: 15px;
        padding-right: 15px;
    }
    .theme-menu-wrapper .right-widget .secondary-logo {
        display: none;
    }
}
/*--------------------------- Theme Header Two  ---------------------*/
/* Cambiamos el fondo azul oscuro por una versión elegante y profunda de tu verde */
.header-two .top-header {
  background: #0b2e15;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.header-two .top-header .left-widget li {
  display: inline-block;
  color: #ffffff;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.5px;
}
/* Selector de Idioma (si lo usas) */
#polyglotLanguageSwitcher {
  margin-left: 25px;
}
#polyglotLanguageSwitcher span.trigger:before {
  content: '\f107';
  font-family: 'FontAwesome';
  position: absolute;
  color: #fff;
  top: 0;
  right: -25px;
  font-size: 14px;
}
#polyglotLanguageSwitcher a {
  font-family: 'Open Sans', sans-serif;
  display: inline-block;
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  font-weight: 600;
  transition: all 0.3s ease;
}
#polyglotLanguageSwitcher a:hover {
  color: #fff;
  text-decoration: none;
}
/* Redes Sociales en el Top Bar */
.header-two .top-header .social-icon {
  text-align: right;
}
.header-two .top-header .social-icon li {
  display: inline-block;
  margin-left: 20px;
}
.header-two .top-header .social-icon li a {
  font-size: 16px;
  color: rgba(255,255,255,0.7);
  transition: all 0.3s ease;
  display: inline-block;
}
/* Efecto llamativo en redes sociales */
.header-two .top-header .social-icon li a:hover {
  color: #ffffff;
  transform: translateY(-3px);
}
/*------------------------ Theme menu One --------------------*/

.header-one .theme-menu-wrapper {
    position: relative;
    z-index: 99;
    margin-bottom: 0;
    width: 100%;
    transition: all 0.3s ease;
}
/* Forzar que el container de Bootstrap no limite el ancho del fondo */
.header-one .theme-menu-wrapper .container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0;
}
/* La caja del menú: Expansión total de lado a lado */
.header-one .theme-menu-wrapper .bg-wrapper {
    background: #ffffff;
    position: relative;
    padding: 0 40px;
    border-top: 1px solid #f1f1f1;
    border-bottom: 3px solid var(--color-brand);
    border-left: none;
    border-right: none;
    border-radius: 0;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    width: 100%;
}
/* --- Lógica de Menú Sticky (Cuando haces scroll) --- */
.header-one.fixed-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    animation: fadeInDown 0.4s ease;
}
.header-one.fixed-header .top-header {
    display: none;
}
.header-one.fixed-header .theme-menu-wrapper .bg-wrapper {
    border-top: none;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
/* Widgets de la derecha (Buscador) */
.theme-menu-wrapper .right-widget ul li {
    display: inline-block;
    line-height: 75px;
    vertical-align: middle;
}
/* Icono de búsqueda con el verde de la Cooperativa */
.theme-menu-wrapper .right-widget .search-option .dropdown-toggle {
    background: transparent;
    font-size: 18px;
    color: var(--color-brand);
    width: 55px;
    transition: all 0.3s ease;
    border: none;
}
.theme-menu-wrapper .right-widget .search-option .dropdown-toggle:hover {
    transform: scale(1.1);
    color: var(--color-brand-light);
}
/* Dropdown del buscador */
.theme-menu-wrapper .right-widget .search-option .dropdown-menu {
    transform: none !important;
    position: absolute;
    height: 60px;
    width: 300px;
    padding: 8px;
    border-radius: 5px;
    right: 0 !important;
    top: 100% !important;
    background: #fff;
    border: 1px solid var(--color-brand);
    box-shadow: 0px 8px 20px rgba(0,0,0,0.15);
}
.theme-menu-wrapper .right-widget .search-option form input {
    position: absolute;
    top: 5px;
    left: 5px;
    right: 5px;
    bottom: 5px;
    background: #f9f9f9;
    border: 1px solid #eee;
    padding: 0 55px 0 15px;
    border-radius: 4px;
}
/* Botón del buscador */
.theme-menu-wrapper .right-widget .search-option form button {
    background: var(--color-brand);
    width: 48px;
    color: #fff;
    border: none;
    line-height: 48px;
    text-align: center;
    position: absolute;
    top: 6px;
    right: 6px;
    border-radius: 0 4px 4px 0;
    transition: background 0.3s;
}
.theme-menu-wrapper .right-widget .search-option form button:hover {
    background: #0d2356;
}
/* Animación para el scroll */
@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* Ajuste para móviles: Que el menú no pierda el ancho */
@media (max-width: 991px) {
    .header-one .theme-menu-wrapper .bg-wrapper {
        padding: 0 15px;
    }
}
/*------------------------ Theme menu Two --------------------*/
/* Color de los enlaces principales y flechas del menú */
.header-two #mega-menu-holder > ul > li > a,
.header-two #mega-menu-holder li .sub-toggle,
.header-two #mega-menu-holder > ul > li > a:before {
  color: var(--color-brand);
  font-weight: 600;
  transition: all 0.3s ease;
}
/* Hover en los enlaces principales */
.header-two #mega-menu-holder > ul > li > a:hover {
  color: var(--color-brand-light);
}
.header-two #mega-menu-holder > ul > li > a {
  padding-top: 38px;
  padding-bottom: 38px;
}
.header-two #mega-menu-holder > ul > li > a:before,
.header-two #mega-menu-holder li .sub-toggle {
  line-height: 97px;
}
/* Estilo de los desplegables (dropdown) */
.header-two #mega-menu-holder li > ul.dropdown li:first-child {
  border-top: 3px solid var(--color-brand);
}
.header-two .theme-menu-wrapper .bg-wrapper {
  position: relative;
  padding-left: 330px;
  background: #ffffff;
}
/* Contenedor del Logo */
.header-two .theme-menu-wrapper .bg-wrapper .logo {
  position: absolute;
  left: 0;
  z-index: 99;
  top: 50%;
  transform: translateY(-50%);
  padding-left: 15px;
}
/* Widgets de la derecha */
.header-two .theme-menu-wrapper .right-widget ul li {
  line-height: 97px;
}
.header-two .theme-menu-wrapper .right-widget .search-option .dropdown-toggle {
  width: auto;
  color: var(--color-brand);
  font-size: 18px;
}
/* Icono de Carrito / Notificaciones */
.header-two .theme-menu-wrapper .right-widget .cart-icon {
  border: none;
  width: auto;
  margin: 0 20px 0 0;
}
.header-two .theme-menu-wrapper .right-widget .cart-icon a {
  color: var(--color-brand);
  font-size: 20px;
}
/* Círculo indicador (badge) sobre el icono */
.header-two .theme-menu-wrapper .right-widget .cart-icon a span {
  background: var(--color-brand);
  color: #fff;
  top: 35px;
  font-weight: 700;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
/*================= Sticky Menu ===============*/
/* Animación mejorada: más suave y con un ligero efecto de escala */
@-webkit-keyframes menu_sticky {
  0%   { margin-top: -100px; opacity: 0; }
  100% { margin-top: 0; opacity: 1; }
}
@keyframes menu_sticky {
  0%   { margin-top: -100px; opacity: 0; }
  100% { margin-top: 0; opacity: 1; }
}
/* El contenedor cuando se activa el scroll */
.theme-menu-wrapper.fixed {
  position: fixed !important;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 9999;
  background: rgba(255, 255, 255, 0.98);
  margin: 0;
  padding: 0;
  box-shadow: 0 4px 20px rgba(22, 87, 41, 0.15);
  -webkit-animation: menu_sticky 0.5s ease-out;
  animation: menu_sticky 0.5s ease-out;
  border-bottom: 2px solid var(--color-brand);
}
/* Ajuste específico para Header Two cuando está fijo */
.header-two .theme-menu-wrapper.fixed {
  background: #ffffff;
}
/* Reducimos un poco la altura de los elementos cuando el menú está fijo
   para que no ocupe demasiada pantalla */
.theme-menu-wrapper.fixed #mega-menu-holder > ul > li > a {
  padding-top: 25px !important;
  padding-bottom: 25px !important;
}
.theme-menu-wrapper.fixed .right-widget ul li {
  line-height: 70px !important;
}
/*---------------------------- Theme Main Banner -------------------------*/
#theme-main-banner {margin: 0 !important;}
.camera_wrap {float:none;}
/* 1. Capa sobre la imagen para mejorar legibilidad del texto */
#theme-main-banner .camera_overlayer {
  content: '';
  position: absolute;
  top:0;
  left:0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to right, rgba(22, 87, 41, 0.4), rgba(0,0,0,0.2));
}
#theme-main-banner .main-container {position: relative;}
#theme-main-banner .camera_caption {height: 100%;}
#theme-main-banner .container {
  position: relative;
  z-index: 1;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
/* 2. Títulos impactantes */
#theme-main-banner .camera_caption h1 {
  text-transform: uppercase;
  padding: 30px 0 35px 0;
  color: #ffffff;
  font-weight: 800;
  text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
}
/* 3. Subtítulos amigables */
#theme-main-banner .camera_caption p {
  font-size: 26px;
  line-height: 35px;
  color: #ffffff;
  font-weight: 400;
  margin-bottom: 40px;
}
/* 4. Botón del Banner (Llamada a la acción) */
#theme-main-banner .camera_caption .theme-button-one {
  background: var(--color-brand);
  border: 2px solid #ffffff;
  color: #ffffff;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
#theme-main-banner .camera_caption .theme-button-one:hover {
  background: #ffffff;
  color: var(--color-brand) !important;
  border-color: #ffffff;
}
/* 5. Paginación lateral (los puntitos) */
#theme-main-banner .camera_pag {
  position: absolute;
  height: 100%;
  top:0;
  left:3%;
  z-index: 9;
}
#theme-main-banner .camera_pag .camera_pag_ul li {
  display: block;
  margin: 15px 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #ffffff;
  background: transparent;
  cursor: pointer;
  transition: all 0.3s;
}
/* Punto activo */
#theme-main-banner .camera_pag_ul li.cameracurrent,
#theme-main-banner .camera_pag .camera_pag_ul li:hover {
  background: #ffffff !important;
  transform: scale(1.3);
}
#theme-main-banner .camera_pag .camera_pag_ul li span {
  display: none;
}
/*--------------------- Top Feature -------------------*/
.three-column-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    padding: 20px 0;
}
/* Tarjeta individual (usando tu estilo de main-content) */
.top-feature .main-content {
    text-align: center;
    padding: 50px 30px;
    background: #ffffff;
    border-bottom: 4px solid #f1f1f1;
    transition: all 0.4s ease-in-out;
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.03);
    height: 100%;
}
/* Efecto al pasar el mouse */
.top-feature .main-content:hover {
    border-bottom-color: var(--color-brand);
    background: #f9fdfa;
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(22, 87, 41, 0.1);
}
/* Ajuste de iconos */
.top-feature .main-content img {
    margin: 0 auto;
    width: 200px;
    height: auto;
    transition: transform 0.4s ease;
}
.top-feature .main-content:hover img {
    transform: scale(1.1);
}
/* Títulos con tu línea decorativa */
.top-feature .main-content h4 {
    position: relative;
    padding-bottom: 22px;
    margin: 25px 0 20px 0;
    font-weight: 800;
    font-size: 22px;
}
.top-feature .main-content h4 a {
    color: var(--color-brand);
    text-decoration: none;
}
.top-feature .main-content h4:before {
    content: '';
    width: 45px;
    height: 4px;
    border-radius: 10px;
    background: var(--color-brand);
    position: absolute;
    bottom: 0;
    left: 50%;
    margin-left: -22.5px;
    transition: all 0.3s ease;
}
.top-feature .main-content:hover h4:before {
    width: 70px;
    margin-left: -35px;
}
/* Descripción */
.top-feature .main-content p {
    color: #666;
    font-size: 15px;
    line-height: 1.6;
}
/* Ajuste para celulares */
@media (max-width: 767px) {
    .three-column-grid {
        grid-template-columns: 1fr;
    }
}
/*------------------ About Company -----------------*/
/* Imagen corporativa con un toque más elegante */
.about-compnay img {
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
/* Contenedor de Misión y Visión */
.about-compnay .mission-goal {
  border-top: 1px solid #eee;
  padding-top: 40px;
  margin-top: 40px;
}
.about-compnay .mission-goal li {
  float: left;
  width: 33.33333333%;
  text-align: center;
  position: relative;
  padding: 10px;
  transition: transform 0.3s ease;
}
/* Iconos de Misión/Visión */
.about-compnay .mission-goal li .icon {
  font-size: 55px;
  color: var(--color-brand);
  margin-bottom: 15px;
  display: block;
  transition: all 0.3s ease;
}
/* Efecto al pasar el mouse por los valores */
.about-compnay .mission-goal li:hover {
  transform: translateY(-5px);
}
.about-compnay .mission-goal li:hover .icon {
  transform: scale(1.1);
  color: var(--color-brand-light);
}
/* Líneas divisorias entre Misión, Visión y Valores */
.about-compnay .mission-goal li:nth-child(2) {
  /* Cambiamos el gris punteado por líneas verdes suaves y sólidas */
  border-left: 1px solid rgba(22, 87, 41, 0.15);
  border-right: 1px solid rgba(22, 87, 41, 0.15);
}
/* Estilo para los títulos pequeños dentro de la lista (si los tienes) */
.about-compnay .mission-goal li h6 {
  font-weight: 700;
  color: #333;
  text-transform: uppercase;
  font-size: 14px;
  margin-top: 10px;
}
/*------------------ Feature Banner ---------------*/
.feature-banner {
  text-align: center;
  background-attachment: fixed;
  background-size: cover;
}
.feature-banner .opacity {
  /* Cambiamos el azul por un degradado de tu verde institucional */
  background: linear-gradient(135deg, rgba(22, 87, 41, 0.9), rgba(11, 46, 21, 0.8));
  padding: 90px 0;
}
.feature-banner .opacity h2 {
  font-size: 42px;
  line-height: 55px;
  text-transform: none;
  font-weight: 800;
  color: #fff;
  padding: 0 10%;
  margin-bottom: 40px;
  letter-spacing: -1px;
  text-shadow: 2px 2px 10px rgba(0,0,0,0.2);
}
/* Si tienes un botón dentro de este banner, este estilo lo hará resaltar */
.feature-banner .opacity .theme-button-one {
  background: #ffffff;
  color: var(--color-brand);
  border-color: #ffffff;
}
.feature-banner .opacity .theme-button-one:hover {
  background: #f1f1f1;
  color: var(--color-brand);
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
/*---------------- Service Style One --------------*/
/* Contenedor individual del servicio */
.service-style-one .single-service {
  position: relative;
  padding-left: 118px;
  overflow: hidden;
  margin-bottom: 30px;
  transition: all 0.4s ease;
  background: #fff;
  border-radius: 8px;
}
/* El cuadro de texto a la derecha */
.service-style-one .single-service .text {
  border: 1px solid #eaeaea;
  border-radius: 0 8px 8px 0;
  border-left: none;
  padding: 25px 20px 20px 35px;
  transition: all 0.4s ease;
  min-height: 140px;
}
.service-style-one .single-service .text h5 a {
  color: var(--color-brand);
  font-weight: 700;
  transition: color 0.3s;
}
.service-style-one .single-service .text p {
  padding-bottom: 12px;
  color: #666;
  line-height: 1.6;
}
/* Enlace "Leer más" */
.service-style-one .single-service .text .read-more {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-brand);
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.3s;
}
.service-style-one .single-service .text .read-more:hover {
  color: var(--color-brand-light);
}
/* Caja de imagen/icono a la izquierda */
.service-style-one .single-service .img-box {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 120px;
  border-radius: 8px 0 0 8px;
  background: var(--color-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.service-style-one .single-service .img-box img {
  width: 100%;
  height: auto;
  opacity: 0.8;
  transition: all 0.5s ease;
}
/* Efectos HOVER mejorados */
.service-style-one .single-service:hover {
  box-shadow: 0 10px 25px rgba(22, 87, 41, 0.15);
  transform: translateX(5px);
}
.service-style-one .single-service:hover .text {
  border-color: var(--color-brand);
}
.service-style-one .single-service:hover .img-box img {
  transform: scale(1.1) rotate(3deg);
  opacity: 1;
}
/* Texto de contacto inferior (¿Necesitas ayuda?) */
.service-style-one .contact-text {
  text-align: center;
  padding-top: 45px;
}
.service-style-one .contact-text h4 {
  font-weight: 400;
  color: #444;
  margin-bottom: 15px;
}
.service-style-one .contact-text h5 {
  font-weight: 700;
  color: var(--color-brand);
  display: inline-block;
  position: relative;
  font-size: 22px;
}
.service-style-one .contact-text h5:before {
  content: '';
  width: 100%;
  height: 2px;
  background: var(--color-brand); /* Línea verde bajo el número/texto */
  position: absolute;
  bottom: -5px;
  left: 0;
  opacity: 0.3;
}
/*-------------------- Testimonial Slider ------------------*/
/* 1. Fondo de la sección con un toque de marca */
.testimonial-section {
  background: url(../images/home/9.jpg) no-repeat center center;
  background-size: cover;
  background-attachment: fixed;
  background-color: var(--color-brand);
}
/* FIX: Deshabilitar parallax en móviles (bug iOS Safari) */
@media (max-width: 768px) {
  .testimonial-section { background-attachment: scroll; }
}
.testimonial-section .overlay {
  /* Un degradado oscuro para que el fondo no compita con el texto */
  background: linear-gradient(rgba(22, 87, 41, 0.85), rgba(0, 0, 0, 0.6));
  padding: 100px 0;
}
/* 2. La "burbuja" del testimonio */
.testimonial-section .wrapper {
  width: 60%;
  padding-right: 15px;
  margin: 0 auto;
}
.testimonial-section .wrapper .bg {
  background: #ffffff;
  border-radius: 15px;
  position: relative;
  padding: 50px 65px;
  box-shadow: 0px 15px 35px rgba(0, 0, 0, 0.2);
  text-align: center;
  border-bottom: 5px solid var(--color-brand);
}
/* El pequeño triángulo decorativo */
.testimonial-section .wrapper .bg:before {
  content: '\f0da';
  font-family: 'FontAwesome';
  position: absolute;
  top: 30px;
  right: -12px;
  color: #fff;
  font-size: 35px;
  text-shadow: 2px 0 5px rgba(0,0,0,0.1);
}
/* 3. Estilo del texto de la cita */
.testimonial-section .wrapper p {
  font-size: 20px;
  font-style: italic;
  font-weight: 400;
  line-height: 32px;
  color: #444;
}
/* 4. Nombre y Cargo del socio */
.testimonial-section .wrapper .name {
  position: relative;
  margin: 30px 0 10px 0;
  z-index: 1;
}
.testimonial-section .wrapper .name h6 {
  font-weight: 700;
  color: var(--color-brand);
  font-size: 18px;
  margin-bottom: 5px;
}
.testimonial-section .wrapper .name span {
  font-size: 14px;
  color: #777;
  text-transform: uppercase;
  letter-spacing: 1px;
}
/* Las comillas gigantes decorativas */
.testimonial-section .wrapper .name:before {
  content: '“';
  color: rgba(22, 87, 41, 0.07);
  font-size: 140px;
  font-weight: 900;
  position: absolute;
  top: -60px;
  left: 50%;
  z-index: -1;
  transform: translateX(-50%);
}
/* 5. Puntos de navegación (Dots) */
.testimonial-section .owl-theme .owl-dots .owl-dot span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  margin: 0 6px;
  transition: all 0.3s;
}
.testimonial-section .owl-theme .owl-dots .owl-dot.active span,
.testimonial-section .owl-theme .owl-dots .owl-dot:hover span {
  background: #ffffff;
  transform: scale(1.3);
}
/*----------------------- Our Team -----------------*/
/* Contenedor del miembro del equipo */
.our-team .team-member {
  margin-top: 30px;
  text-align: center;
  transition: all 0.3s ease;
}
.our-team .wrapper {margin-top: 25px;}
/* Imagen con bordes más redondeados y amigables */
.our-team .team-member .image-box img {
  width: 100%;
  border-radius: 12px 12px 0 0;
  transition: transform 0.5s ease;
}
.our-team .team-member .image-box {
  position: relative;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
}
/* Caja de texto (Nombre y Cargo) */
.our-team .team-member .text {
  padding: 20px 0;
  border: 1px solid #eaeaea;
  border-top: none;
  border-radius: 0 0 12px 12px;
  background: #fff;
  transition: all 0.3s ease;
}
.our-team .team-member .text h6 {
  font-weight: 700;
  color: var(--color-brand);
  font-size: 18px;
  margin-bottom: 5px;
}
.our-team .team-member .text span {
  font-size: 15px;
  font-style: italic;
  color: #777;
}
/* Efecto Hover en la tarjeta */
.our-team .team-member:hover .text {
  border-color: var(--color-brand);
  box-shadow: 0px 10px 25px rgba(22, 87, 41, 0.15);
}
/* Overlay: Cambiado de Azul a Verde Cooperativo */
.our-team .team-member .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(22, 87, 41, 0.85);
  border-radius: 12px 12px 0 0;
  opacity: 0;
  transform: translateY(100%);
  transition: all 0.4s ease-in-out;
}
.our-team .team-member:hover .overlay {
  opacity: 1;
  transform: translateY(0);
}
/* Contenido dentro del overlay (Redes sociales y descripción) */
.our-team .team-member .overlay .hover-content {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  padding: 0 15px;
}
.our-team .team-member .overlay .hover-content ul li {
  display: inline-block;
  margin: 0 5px;
}
.our-team .team-member .overlay .hover-content ul li a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid #fff;
  line-height: 37px;
  color: #fff;
  font-size: 16px;
  display: block;
  transition: all 0.3s;
}
.our-team .team-member .overlay .hover-content ul li a:hover {
  background: #fff;
  color: var(--color-brand);
  transform: rotate(360deg);
}
.our-team .team-member .overlay .hover-content p {
  line-height: 22px;
  color: #fff;
  padding-top: 15px;
  font-size: 14px;
  font-weight: 400;
}
/*------------------ Theme Counter -------------------*/
/* Contenedor principal de contadores */
.theme-counter {
  background: #ffffff;
  padding: 60px 0;
  border-top: 1px solid #f1f1f1;
  border-bottom: 1px solid #f1f1f1;
}
/* El fondo con patrón (opcional) */
.theme-counter .bg {
  background: url(../images/home/pattern.png) no-repeat center center;
  text-align: center;
  padding: 85px 0;
}
/* Título de la sección */
.theme-counter h6 {
  font-size: 16px;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-brand);
  letter-spacing: 2px;
}
.theme-counter h2 {
  font-size: 42px;
  font-weight: 800;
  color: #333;
  padding: 12px 0 45px 0;
}
.cunter-wrapper {
  width: 85%;
  margin: 0 auto;
  text-align: center;
}
/* Los números que suben (Timer) */
.single-counter-box {
  margin-bottom: 30px;
  transition: transform 0.3s ease;
}
.single-counter-box:hover {
  transform: translateY(-5px);
}
.single-counter-box .number {
  font-family: var(--font-heading);
  font-weight: 300;
  font-size: 40px;
  color: var(--color-brand);
}
.single-counter-box .number .timer {
  font-size: 75px;
  font-weight: 800;
  display: block;
  line-height: 1em;
  margin-bottom: 10px;
}
/* Texto debajo del número (ej. "Socios Satisfechos") */
.single-counter-box p {
  margin-top: 0;
  font-size: 18px;
  font-weight: 600;
  color: #666;
  text-transform: capitalize;
}
/* Botón inferior si existe */
.theme-counter .theme-button-one {
  margin-top: 50px;
  box-shadow: 0 10px 20px rgba(22, 87, 41, 0.2);
}
/*------------------ Free Consultation -----------------*/
/* 1. Contenedor del Formulario */
.consultation-form .theme-title-one {
    margin-bottom: 55px;
}
.consultation-form .main-content {
    box-shadow: 0px 15px 40px rgba(0, 0, 0, 0.1);
    border-radius: 15px;
    overflow: hidden;
}
/* 2. Imagen lateral del formulario */
.consultation-form .img-box {
    background: url(../images/home/10.jpg) no-repeat center;
    background-size: cover;
    height: 550px;
    border-radius: 15px 0 0 15px;
}
/* 3. El cuerpo del formulario */
.consultation-form .form-wrapper {
    background: #fff;
    border-radius: 0 15px 15px 0;
    height: 550px;
    padding: 60px 45px;
}
/* 4. Estilo de los inputs (Entradas de texto) */
.theme-form-one input,
.theme-form-one .form-control {
    width: 100%;
    border: none;
    border-bottom: 2px solid #f1f1f1;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    font-size: 16px;
    padding: 0 0 12px 5px;

    transition: all 0.3s ease;
    background: transparent;
}
/* Efecto cuando el usuario hace clic para escribir (Focus) */
.theme-form-one input:focus,
.theme-form-one .form-control:focus {
    border-color: var(--color-brand);
    padding-left: 10px;
}
/* 5. Área de Mensaje (Textarea) */
.theme-form-one textarea {
    width: 100%;
    max-width: 100%;
    height: 100px;
    resize: none;
    border: none;
    border-bottom: 2px solid #f1f1f1;
    font-size: 16px;
    padding: 0 0 10px 5px;
    margin-bottom: 30px;
    transition: all 0.3s ease;
}
.theme-form-one textarea:focus {
    border-color: var(--color-brand);
    padding-left: 10px;
}
/* 6. Botón de enviar */
.theme-form-one .theme-button-one {
    font-family: var(--font-heading);
    width: 100%;
    background: var(--color-brand);
    border-color: var(--color-brand);
    transition: all 0.3s;
}
.theme-form-one .theme-button-one:hover {
    background: #ffffff;
    color: var(--color-brand);
    box-shadow: 0 5px 15px rgba(22, 87, 41, 0.3);
}
/*------------------- Partner Slider ------------------*/
/* Contenedor de la sección de aliados */
.partner-section {
  padding: 50px 0;
  border-top: 1px solid #f1f1f1;
}
/* Fondo sutil: cambiamos el azul pálido por un gris seda muy limpio */
.partner-section.bg-color {
  background: #fafafa;
}
/* Título de "Nuestros Aliados" */
.partner-section h6 {
  font-size: 15px;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 25px;
  margin-top: 0;
  margin-bottom: 30px;
  color: var(--color-brand);
  letter-spacing: 2px;
  text-align: center;
  opacity: 0.8;
}
/* Estilo para los logos */
.partner-section img {
  margin: 0 auto;
  display: block;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: all 0.4s ease-in-out;
  max-width: 160px;
}
/* Efecto al pasar el mouse por los logos */
.partner-section img:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.05);
}
/* Estilo para el carrusel de socios si lo usas */
.partner-section .item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100px;
}
/*---------------------- Theme footer Two ------------------*/
/* Contenedor principal con tu verde institucional */
.theme-footer-two {
  background: var(--color-brand);
  padding-top: 75px;
  color: #fff;
}
/* Descripción de la cooperativa bajo el logo */
.theme-footer-two .logo-widget p {
  font-size: 16px;
  line-height: 26px;
  color: rgba(255, 255, 255, 0.85);
  padding: 20px 0;
}
/* Redes sociales en el footer */
.theme-footer-two .logo-widget .social-icon li {
  display: inline-block;
  margin-right: 15px;
}
.theme-footer-two .logo-widget .social-icon li a {
  font-size: 24px;
  color: rgba(255, 255, 255, 0.6);
  transition: all 0.3s ease;
}
.theme-footer-two .logo-widget .social-icon li a:hover {
  color: #ffffff;
  transform: translateY(-5px);
}
/* Títulos de las columnas del footer */
.theme-footer-two .top-footer .title {
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 25px;
  letter-spacing: 1px;
  position: relative;
}
/* Línea decorativa bajo el título */
.theme-footer-two .top-footer .title:after {
  content: '';
  width: 40px;
  height: 2px;
  background: var(--color-brand-light);
  position: absolute;
  bottom: -10px;
  left: 0;
}
/* Enlaces de navegación */
.theme-footer-two .top-footer .footer-list ul li {
  line-height: 35px;
  padding-left: 20px;
  position: relative;
}
.theme-footer-two .top-footer .footer-list ul li:before {
  content: '\f105';
  font-family: 'FontAwesome';
  font-size: 14px;
  color: rgba(255, 255, 255, 0.4);
  position: absolute;
  top: 0;
  left: 0;
}
.theme-footer-two .top-footer .footer-list ul li a {
  font-family: var(--font-body);
  font-size: 16px;
  color: rgba(255, 255, 255, 0.7);
  transition: all 0.3s;
}
.theme-footer-two .top-footer .footer-list ul li a:hover {
  color: #fff;
  padding-left: 5px;
}
/* Widget de Contacto */
.theme-footer-two .top-footer .contact-widget ul li {
  font-size: 16px;
  line-height: 24px;
  color: rgba(255, 255, 255, 0.8);
  position: relative;
  padding: 5px 0 15px 40px;
}
.theme-footer-two .top-footer .contact-widget ul li i {
  font-size: 20px;
  color: var(--color-brand-light);
  position: absolute;
  top: 8px;
  left: 0;
}
.theme-footer-two .top-footer .contact-widget ul li a {
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.3s;
}
.theme-footer-two .top-footer .contact-widget ul li a:hover {
  color: #fff;
}
/* Copyright / Parte Inferior */
.theme-footer-two .bottom-footer {
  margin-top: 60px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 25px 0;
  text-align: center;
}
.theme-footer-two .bottom-footer p {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
}
.theme-footer-two .bottom-footer p strong {
  color: #fff;
}
/*----------------- CallOut Banner  --------------*/
/* Banner de Llamado a la Acción */
.callout-banner {
  background-color: var(--color-brand);
  background-image: url(../images/home/pattern2.png);
  padding: 40px 0;
  border-radius: 10px;
  overflow: hidden;
}
.callout-banner .title {
  float: left;
  line-height: 40px;
  color: #fff;
  width: 27%;
  font-weight: 800;
  text-transform: uppercase;
}
.callout-banner p {
  float: left;
  color: rgba(255, 255, 255, 0.8);
  padding-left: 70px;
  width: 53%;
  position: relative;
  font-size: 16px;
}
/* Línea divisoria vertical */
.callout-banner p:before {
  content: '';
  width: 4px;
  height: 93%;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 5px;
  position: absolute;
  left: 25px;
  top: 3px;
}
/* Botón del Banner */
.callout-banner .theme-button-one {
  background: #ffffff;
  color: var(--color-brand);
  margin-top: 15px;
  float: right;
  border: 2px solid #ffffff;
}
.callout-banner .theme-button-one:hover {
  background: transparent;
  color: #fff !important;
  border-color: #ffffff;
}
/* Variante sin fondo (usada a veces en páginas internas) */
.callout-banner.no-bg {
  background: none;
  padding: 0;
  margin-bottom: 70px;
}
.callout-banner.no-bg .title {
  color: var(--color-brand);
  text-align: right;
}
.callout-banner.no-bg p {
  color: #555555;
}
.callout-banner.no-bg p:before {
  background: var(--color-brand);
  opacity: 0.3;
}
.callout-banner.no-bg .theme-button-one {
  background: var(--color-brand);
  color: #fff;
}
/*------------------------- Our Solution -------------------*/
/* Bloque individual de solución */
.our-solution .single-solution-block {
  margin-top: 55px;
  text-align: center;
  background: #ffffff;
  padding: 40px 20px;
  border-radius: 15px;
  transition: all 0.4s ease-in-out;
  border: 1px solid #f1f1f1;
}
/* El icono o imagen de la solución */
.our-solution .single-solution-block .icon {
  margin: 0 auto;
  transition: all 0.4s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Títulos de las soluciones */
.our-solution .single-solution-block h5 {
  margin: 30px 0 15px 0;
  font-weight: 700;
  color: var(--color-brand);
  transition: color 0.3s ease;
}
.our-solution .single-solution-block p {
  padding: 0 15px;
  color: #666;
  line-height: 1.6;
}
/* Efecto HOVER en toda la tarjeta */
.our-solution .single-solution-block:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 35px rgba(22, 87, 41, 0.12);
  border-color: rgba(22, 87, 41, 0.3);
}
.our-solution .single-solution-block:hover .icon {
  transform: scale(1.15) rotate(5deg);
}
.our-solution .single-solution-block:hover h5 {
  color: var(--color-brand-light);
}
/*------------------- About Company Stye Two -------------------*/
/* 1. Fondo de la sección con efecto Parallax */
.about-compnay-two {
  background: url(../images/home/11.jpg) no-repeat center center;
  background-size: cover;
  background-attachment: fixed;
  background-color: var(--color-brand);
}
.about-compnay-two .overlay {
  /* Degradado profundo para que el texto blanco resalte */
  background: linear-gradient(135deg, rgba(22, 87, 41, 0.9), rgba(0, 0, 0, 0.7));
  padding: 100px 0;
}
/* 2. Títulos y Textos */
.about-compnay-two .theme-title-one {
  text-align: left;
  margin-bottom: 30px;
}
.about-compnay-two .theme-title-one h2 {
  color: #fff;
  font-weight: 800;
}
/* La línea decorativa del título */
.about-compnay-two .theme-title-one h2:before {
  left: 0;
  margin: 0;
  background: var(--color-brand-light);
}
.about-compnay-two .text p {
  color: rgba(255, 255, 255, 0.9);
  padding: 0 50px 15px 0;
  font-size: 17px;
  line-height: 28px;
}
/* Firma o elemento destacado */
.about-compnay-two .text .sign {
  margin-top: 25px;
  filter: brightness(0) invert(1);
}
/* 3. El Formulario de Solicitud (Quote Form) */
.about-compnay-two .quote-form {
  background: #fff;
  border-radius: 15px;
  padding: 40px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}
.about-compnay-two .theme-form-one textarea {
  height: 90px;
  max-height: 90px;
  margin-bottom: 25px;
  border-bottom: 2px solid #f1f1f1;
}
/* 4. Imágenes secundarias */
.about-compnay-two .left-img {
  border-radius: 12px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}
/* 5. Variante sin fondo (limpia) */
.about-compnay-two.no-bg {
  background: none;
}
.about-compnay-two.no-bg .overlay {
  background: #ffffff;
  padding: 0;
}
.about-compnay-two.no-bg .theme-title-one h2 {
  color: var(--color-brand);
}
.about-compnay-two.no-bg .theme-title-one h2:before {
  background: var(--color-brand);
}
.about-compnay-two.no-bg .text p {
  color: #555555;
  padding-right: 0;
}
/*----------------------- Our Case --------------------*/
/* Ajuste de rejilla para que las tarjetas respiren */
.our-case .row {margin: 0 -15px;}
.our-case .row [class*="col-"] {padding: 0 15px;} /* Corregido el selector para que afecte a todas las columnas */
.our-case .wrapper {margin-top: 10px;}
/* La tarjeta del caso/proyecto */
.our-case .single-case-block {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  margin-top: 30px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  transition: all 0.4s ease;
}
.our-case .single-case-block img {
  width: 100%;
  border-radius: 12px;
  transition: transform 0.6s ease;
}
/* Capa de Hover: Cambiada de azul a Verde Cooperativo */
.our-case .single-case-block .hover-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(22, 87, 41, 0.85);
  border-radius: 12px;
  opacity: 0;
  transition: all 0.4s ease-in-out;
}
.our-case .single-case-block:hover .hover-content {
  opacity: 1;
}
.our-case .single-case-block:hover img {
  transform: scale(1.1);
}
/* Texto dentro del Hover */
.our-case .single-case-block .hover-content .text {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 30px;
  padding: 0 28px;
  opacity: 0;
  transition: all 0.5s ease;
  transition-delay: 0.1s;
  transform: translateY(20px);
}
.our-case .single-case-block:hover .hover-content .text {
  transform: translateY(0);
  opacity: 1;
}
.our-case .single-case-block .hover-content .text h5 a {
  color: #fff;
  font-weight: 700;
  font-size: 20px;
}
.our-case .single-case-block .hover-content .text p {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 15px;
}
/* Botón de detalles (el circulito) */
.our-case .single-case-block .hover-content .text .details {
  width: 45px;
  height: 45px;
  line-height: 45px;
  text-align: center;
  background: #ffffff;
  border-radius: 50%;
  color: var(--color-brand);
  font-size: 18px;
  margin-top: 10px;
  display: inline-block;
  transition: all 0.3s;
}
.our-case .single-case-block .hover-content .text .details:hover {
  background: var(--color-brand-light);
  color: #fff;
  transform: rotate(360deg);
}
/* Botón inferior de "Ver todos" */
.our-case .view-all {
  text-align: center;
  margin-top: 50px;
}
/* Ajustes para la variante 'our-project' */
.our-case.our-project .wrapper,
.our-case.our-project .single-case-block {margin-top: 0;}
.our-case.our-project .single-case-block {margin-bottom: 30px;}
/*------------------- Faq Section -------------------*/
/* 1. Fondo de la sección FAQ con efecto Parallax */
.faq-section {
  background: url(../images/home/12.jpg) no-repeat center center;
  background-size: cover;
  background-attachment: fixed;
  background-color: var(--color-brand);
  height: 570px;
  margin-bottom: 285px;
}
.faq-section .overlay {
  /* Gradiente de verde a negro para profundidad */
  background: linear-gradient(rgba(22, 87, 41, 0.9), rgba(0, 0, 0, 0.7));
  padding: 95px 0 0 0;
  height: 570px;
}
.faq-section .theme-title-one h2 { color: #fff; font-weight: 800; }
.faq-section .theme-title-one h2:before {
  background: var(--color-brand-light);
}
.faq-section .theme-title-one p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 17px;
}
/* 2. Contenedor de contenido (Imagen + Acordeón) */
.faq-section .wrapper {
  box-shadow: 0px 15px 40px rgba(0, 0, 0, 0.15);
  margin: 55px 0 0 0;
  border-radius: 12px;
  overflow: hidden;
}
.faq-section .wrapper .img-box {
  background: url(../images/home/13.jpg) no-repeat center center;
  background-size: cover;
  border-radius: 12px 0 0 12px;
  position: relative;
  height: 500px;
}
/* Botón de Play (si hay video explicativo) */
.faq-section .wrapper .img-box .play {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #ffffff;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -40px 0 0 -40px;
  text-align: center;
  line-height: 80px;
  color: var(--color-brand);
  font-size: 25px;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7); }
  70% { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); }
  100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}
.faq-section .wrapper .faq-content {
  background: #fff;
  border-radius: 0 12px 12px 0;
  padding: 50px;
}
/* 3. Estilo del Acordeón */
.accordion-one .panel-group .panel {
  margin: 0;
  box-shadow: none;
  border-radius: 0;
  border: none;
}
.accordion-one .panel-heading {
  padding: 0;
  border: none;
  border-bottom: 1px solid #f1f1f1;
  transition: all 0.3s;
}
.accordion-one .panel-heading h6 a {
  color: #333;
  padding: 20px 35px 20px 0;
  display: block;
  position: relative;
  font-weight: 700;
  font-size: 16px;
  transition: color 0.3s;
}
/* Cuando la pregunta está abierta */
.accordion-one .panel-heading.active-panel {
  border-bottom-color: var(--color-brand);
}
.accordion-one .panel-heading.active-panel h6 a {
  color: var(--color-brand);
}
.accordion-one .panel-group .panel-body {
  border: none;
  padding: 15px 0 25px 0;
  color: #666;
  line-height: 1.6;
}
/* Iconos de expandir/contraer */
.accordion-one .panel-group .panel-heading a:before {
  content: "\f107";
  font-family: 'FontAwesome';
  font-size: 18px;
  color: #ccc;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s;
}
.accordion-one .panel-group .panel-heading.active-panel a:before {
  content: "\f106";
  color: var(--color-brand);
  transform: translateY(-50%) rotate(180deg);
}
/*------------------ Why Choose us -----------------*/
/* Contenedor de la sección */
.why-choose-us .wrapper {
  margin-top: 20px;
}
/* Bloque individual de beneficio */
.why-choose-us .single-block {
  position: relative;
  margin-top: 45px;
  padding: 5px 0 10px 95px;
  transition: all 0.3s ease;
}
/* Efecto al pasar el mouse por el bloque */
.why-choose-us .single-block:hover {
  transform: translateX(10px);
}
/* Títulos de los beneficios */
.why-choose-us .single-block h5 {
  margin-bottom: 12px;
  font-weight: 700;
  color: var(--color-brand);
  font-size: 20px;
  transition: color 0.3s ease;
}
.why-choose-us .single-block p {
  color: #666;
  line-height: 1.6;
  font-size: 16px;
}
/* El Icono: El corazón del beneficio */
.why-choose-us .single-block .icon {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 60px;
  color: var(--color-brand);
  line-height: 1;
  transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
/* Animación del icono al hacer hover en el bloque */
.why-choose-us .single-block:hover .icon {
  color: var(--color-brand-light);
  transform: scale(1.2) rotate(-10deg);
}
/* Opcional: Si usas una lista debajo */
.why-choose-us .single-block:hover h5 {
  color: var(--color-brand-light);
}
/*------------------ Short Banner ------------------*/
/* Banner de páginas internas */
.short-banner {
  background: url(../images/home/14.jpg) no-repeat center center;
  background-size: cover;
  background-attachment: fixed;
  background-color: var(--color-brand);
}
.short-banner .overlay {
  /* Cambiamos el blanco transparente por un degradado institucional */
  /* Esto asegura que el texto siempre sea legible sin importar la foto */
  background: linear-gradient(to right, rgba(22, 87, 41, 0.9), rgba(22, 87, 41, 0.7));
  padding: 80px 0;
  text-align: center;
}
.short-banner .overlay h2 {
  font-size: 42px;
  line-height: 52px;
  width: 75%;
  margin: 0 auto;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.2);
}
/* Opcional: Si tienes migas de pan (breadcrumbs) debajo del H2 */
.short-banner .overlay ul {
  margin-top: 15px;
  display: flex;
  justify-content: center;
  list-style: none;
}
.short-banner .overlay ul li {
  color: rgba(255, 255, 255, 0.8);
  font-size: 15px;
}
.short-banner .overlay ul li a {
  color: #fff;
  font-weight: 600;
}
/*----------------- Latest News ------------------- */
/* Contenedor del Blog */
.our-blog .single-blog .image-box {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.08);
}
.our-blog .single-blog .image-box img {
  width: 100%;
  transition: transform 0.8s cubic-bezier(0.2, 1, 0.3, 1);
}
/* Efecto de zoom elegante en la foto */
.our-blog .single-blog:hover .image-box img {
  transform: scale3d(1.1, 1.1, 1);
}
/* Overlay y Fecha */
.our-blog .single-blog .image-box .overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  border-radius: 12px;
  background: linear-gradient(to top, rgba(0,0,0,0.4), transparent);
}
.our-blog .single-blog .image-box .overlay .date {
  line-height: 30px;
  border-radius: 5px;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  padding: 0 15px;
  position: absolute;
  left: 20px;
  bottom: 20px;
  background: var(--color-brand);
  box-shadow: 0 4px 10px rgba(22, 87, 41, 0.3);
}
/* Metadatos y Título */
.our-blog .single-blog .post-meta .title {
  line-height: 28px;
  margin: 22px 0 12px 0;
  transition: color 0.3s ease;
}
.our-blog .single-blog .post-meta .title a {
  color: #333;
  font-weight: 700;
}
.our-blog .single-blog:hover .post-meta .title a {
  color: var(--color-brand);
}
/* Enlace "Leer más" */
.our-blog .single-blog .post-meta .read-more {
  font-size: 13px;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-brand);
  letter-spacing: 1px;
  display: inline-block;
  margin-top: 5px;
  transition: all 0.3s;
}
.our-blog .single-blog .post-meta .read-more:hover {
  text-decoration: none;
  color: var(--color-brand-light);
  transform: translateX(5px);
}
/* Ajustes para páginas internas y cuadrículas */
.latest-news .single-blog { margin-top: 35px; }
.blog-inner-page .our-blog .single-blog .post-meta .title {
  font-size: 26px;
  margin-top: 25px;
}
.our-blog .single-blog .post-meta p {
  color: #666;
  line-height: 1.6;
  margin-bottom: 15px;
}
.blog-inner-page .our-blog .single-blog {
  margin-bottom: 50px;
}
.blog-inner-page .our-blog .single-blog:last-child {
  border-bottom: 1px solid #eee;
  padding-bottom: 55px;
}
/*------------------- Google Map ---------------------*/
/* Contenedor del Mapa de Google */
.google-map-one {
  height: 400px;
  width: 100%;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  border: 4px solid #fff;
  transition: all 0.4s ease;
}
/* Efecto al pasar el mouse por el área del mapa */
.google-map-one:hover {
  box-shadow: 0 15px 40px rgba(22, 87, 41, 0.15);
  transform: translateY(-5px);
}
/* El lienzo interno del mapa */
.map-canvas {
  width: 100%;
  height: 100%;
  filter: grayscale(20%) contrast(1.1);
  transition: all 0.6s ease;
}
/* Al interactuar con el mapa recupera su color total */
.google-map-one:hover .map-canvas {
  filter: grayscale(0%) contrast(1);
}
/*---------------------- Theme Inner Banner -----------------*/
/* Banner principal de páginas internas */
.theme-inner-banner {
  background: url(../images/home/inner-banner.jpg) no-repeat center center;
  background-attachment: fixed;
  background-size: cover;
  background-color: var(--color-brand);
}
.theme-inner-banner .overlay {
  /* Sustituimos el azul por un degradado verde profundo */
  background: linear-gradient(to bottom, rgba(22, 87, 41, 0.8), rgba(0, 0, 0, 0.6));
  text-align: center;
  padding: 120px 0 80px 0;
}
.theme-inner-banner .overlay h2 {
  font-size: 48px;
  color: #fff;
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: 2px;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}
/* Opcional: Si deseas una línea decorativa bajo el título del banner */
.theme-inner-banner .overlay h2:after {
  content: '';
  display: block;
  width: 60px;
  height: 4px;
  background: var(--color-brand-light);
  margin: 15px auto 0;
  border-radius: 2px;
}
/*------------------- Why WE Best -------------------*/
/* 1. Contenedor principal con efecto Parallax */
.why-we-best {
  background: url(../images/home/11.jpg) no-repeat center center;
  background-size: cover;
  background-attachment: fixed;
  background-color: var(--color-brand);
  height: 570px;
  margin-bottom: 270px;
}
.why-we-best .overlay {
  /* Gradiente profundo de verde a negro */
  background: linear-gradient(135deg, rgba(22, 87, 41, 0.95), rgba(0, 0, 0, 0.8));
  padding: 95px 0 0 0;
  height: 570px;
}
.why-we-best .theme-title-one h2 { color: #fff; font-weight: 800; }
.why-we-best .theme-title-one h2:before {
  background: var(--color-brand-light);
}
.why-we-best .theme-title-one p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 17px;
}
/* 2. El Wrapper (Caja blanca que sobresale) */
.why-we-best .wrapper {
  box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.2);
  margin: 55px 0 0 0;
  border-radius: 15px;
  overflow: hidden;
}
/* Lista de beneficios (Lado izquierdo) */
.why-we-best .wrapper .best-list-item {
  background: #fff;
  padding: 65px 50px;
  border-radius: 15px 0 0 15px;
}
.why-we-best .wrapper .best-list-item li {
  position: relative;
  margin-bottom: 50px;
  padding: 5px 0 5px 90px;
  transition: transform 0.3s ease;
}
.why-we-best .wrapper .best-list-item li:hover {
  transform: translateX(10px);
}
.why-we-best .wrapper .best-list-item li h5 {
  margin-bottom: 8px;
  font-weight: 700;
  color: var(--color-brand);
  font-size: 20px;
}
.why-we-best .wrapper .best-list-item li p {
  color: #666;
  line-height: 1.6;
}
/* Iconos de la lista */
.why-we-best .wrapper .best-list-item li .icon {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 55px;
  color: var(--color-brand);
  transition: all 0.3s ease;
}
.why-we-best .wrapper .best-list-item li:hover .icon {
  color: var(--color-brand-light);
  transform: scale(1.1);
}
/* Imagen lateral (Lado derecho) */
.why-we-best .wrapper .img-box {
  background: url(../images/home/16.jpg) no-repeat center center;
  background-size: cover;
  border-radius: 0 15px 15px 0;
  position: relative;
  height: 500px;
}
/*---------------- Core Values ----------------*/
/* Contenedor de Valores Core */
.core-values {
  background: #ffffff;
  padding: 95px 0 115px 0;
  border-top: 1px solid #f1f1f1;
}
.core-values .wrapper {margin-top: 20px;}
.core-values .single-value-block {
  margin-top: 40px;
  transition: all 0.4s ease;
}
/* Caja de Imagen */
.core-values .single-value-block .image-box {
  position: relative;
  border-radius: 12px 12px 0 0;
  overflow: hidden;
}
.core-values .single-value-block .image-box img {
  width: 100%;
  transition: transform 0.6s ease;
}
/* Overlay: Cambiado a Verde Cooperativo */
.core-values .single-value-block .image-box .overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  text-align: center;
  border-radius: 12px 12px 0 0;
  background: rgba(22, 87, 41, 0.8);
  opacity: 0;
  transition: all 0.4s ease;
  transform: translateY(100%);
}
.core-values .single-value-block:hover .image-box .overlay {
  opacity: 1;
  transform: translateY(0);
}
.core-values .single-value-block:hover .image-box img {
  transform: scale(1.1);
}
/* Botón dentro del Overlay */
.core-values .single-value-block .image-box .overlay a {
  background: #fff;
  color: var(--color-brand);
  padding: 0 25px;
  line-height: 45px;
  position: relative;
  top: 50%;
  display: inline-block;
  transform: translateY(-50%);
  border-radius: 5px;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 13px;
  transition: all 0.3s;
}
.core-values .single-value-block .image-box .overlay a:hover {
  background: var(--color-brand-light);
  color: #fff;
}
/* Bloque de Texto Inferior */
.core-values .single-value-block .text {
  background: #fff;
  border: 1px solid #f1f1f1;
  border-top: none;
  border-radius: 0 0 12px 12px;
  padding: 30px;
  transition: all 0.4s ease;
}
.core-values .single-value-block .text h5 {
  margin-bottom: 12px;
  font-weight: 700;
  color: var(--color-brand);
}
.core-values .single-value-block .text p {
  color: #666;
  line-height: 1.6;
}
/* Efecto Hover en toda la tarjeta */
.core-values .single-value-block:hover .text {
  box-shadow: 0 15px 30px rgba(0,0,0,0.08);
  border-color: rgba(22, 87, 41, 0.2);
}
/*--------------------- Theme Sidebar One ----------------------*/
/* Espaciado general de los bloques de la barra lateral */
.theme-sidebar-one .sidebar-box { margin-bottom: 50px; }
/* Títulos de las secciones del sidebar */
.theme-sidebar-one .title {
    font-weight: 800;
    margin-bottom: 25px;
    color: var(--color-brand);
    text-transform: uppercase;
    font-size: 20px;
}
/* Categorías de Servicios (Menú Lateral) */
.theme-sidebar-one .service-categories ul li a {
    display: block;
    font-weight: 600;
    font-size: 17px;
    color: #333;
    line-height: 50px;
    border: 1px solid #eee;
    border-radius: 10px;
    margin-bottom: 8px;
    padding-left: 20px;
    transition: all 0.3s ease;
}
/* Estado Activo y Hover: Reemplazamos el azul por verde sutil */
.theme-sidebar-one .service-categories ul li a:hover,
.theme-sidebar-one .service-categories ul li.active a {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff;
    padding-left: 30px;
}
/* Sección de Descargas / Folletos (Brochures) */
.theme-sidebar-one .sidebar-brochures ul {
    padding: 0 25px;
    border-radius: 10px;
    background: var(--color-brand);
    box-shadow: 0 10px 20px rgba(22, 87, 41, 0.2);
}
.theme-sidebar-one .sidebar-brochures ul li a {
    display: block;
    line-height: 60px;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    position: relative;
    padding-left: 35px;
    transition: opacity 0.3s;
}
.theme-sidebar-one .sidebar-brochures ul li a:hover {
    opacity: 0.8;
}
.theme-sidebar-one .sidebar-brochures ul li a i {
    position: absolute;
    top: 0;
    left: 0;
    line-height: 60px;
    font-size: 20px;
    color: var(--color-brand-light);
}
/* Formulario rápido en el sidebar */
.theme-sidebar-one .sidebar-contact input,
.theme-sidebar-one .sidebar-contact textarea {
    width: 100%;
    max-width: 100%;
    background: #fff;
    border: none;
    border-bottom: 2px solid #f1f1f1;
    font-size: 16px;
    transition: border-color 0.3s;
}
.theme-sidebar-one .sidebar-contact input:focus,
.theme-sidebar-one .sidebar-contact textarea:focus {
    border-color: var(--color-brand);
    outline: none;
}
.theme-sidebar-one .sidebar-contact input {
    padding-bottom: 12px;
    margin-bottom: 20px;
}
.theme-sidebar-one .sidebar-contact textarea {
    height: 100px;
    resize: none;
    margin-bottom: 25px;
}
/*--------------------- Service Details ----------------------*/
/* Imagen principal del servicio */
.service-details .service-content .cover-img {
  border-radius: 12px;
  margin-bottom: 30px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}
/* Título principal del servicio (ej. Crédito de Consumo) */
.service-details .service-content .main-title {
  font-size: 34px;
  font-weight: 800;
  color: var(--color-brand);
  margin-bottom: 20px;
}
.service-details .service-content p {
  padding-bottom: 25px;
  line-height: 28px;
  color: #555;
}
/* Subtítulos dentro del texto */
.service-details .service-content .sub-heading {
  font-weight: 700;
  font-size: 24px;
  color: #333;
  margin-bottom: 20px;
}
/* Sección de presentación de beneficios específicos */
.service-details .service-content .presentation-section {
  padding: 40px 0 60px 0;
  border-top: 1px solid #f1f1f1;
}
/* Lista de beneficios con iconos grandes */
.service-details .service-content .presentation-section .best-list-item li {
  position: relative;
  margin: 20px 0 0 0;
  padding: 5px 0 10px 95px;
}
.service-details .service-content .presentation-section .best-list-item li h5 {
  margin-bottom: 8px;
  font-weight: 700;
  color: var(--color-brand);
}
.service-details .service-content .presentation-section .best-list-item li .icon {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 55px;
  color: var(--color-brand-light);
  transition: transform 0.3s ease;
}
.service-details .service-content .presentation-section .best-list-item li:hover .icon {
  transform: scale(1.1) rotate(5deg);
}
/* Sección de crecimiento / gráficos */
.service-details .service-content .market-growth {
  padding-top: 65px;
  border-top: 1px solid #f1f1f1;
  margin-top: 40px;
}
.service-details .service-content .market-growth img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}
/* Listado con flechas (Bullets) */
.service-details .service-content .market-growth ul {
  padding-left: 10px;
}
.service-details .service-content .market-growth ul li {
  line-height: 34px;
  font-size: 16px;
  color: #444;
  padding-left: 25px;
  position: relative;
  transition: padding-left 0.3s ease;
}
.service-details .service-content .market-growth ul li:hover {
  padding-left: 30px;
  color: var(--color-brand);
}
.service-details .service-content .market-growth ul li:before {
  content: '\f105';
  font-family: 'FontAwesome';
  font-size: 16px;
  color: var(--color-brand-light);
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 900;
}
/*---------------- Project Details ---------------*/
/* Título principal del proyecto */
.project-details .main-title {
  font-size: 32px;
  font-weight: 800;
  color: var(--color-brand);
  margin-bottom: 20px;
  letter-spacing: -0.5px;
}
/* Sidebar de detalles técnicos */
.project-details .project-details-sidebar p {
  padding-bottom: 15px;
  color: #666;
  line-height: 26px;
}
/* Historial del proyecto (Cifras o Fechas clave) */
.project-details .project-details-sidebar .project-history {
  margin: 0 -10px;
  padding-top: 20px;
  border-top: 1px solid #f1f1f1;
}
.project-details .project-details-sidebar .project-history li {
  float: left;
  width: 50%;
  padding: 0 10px;
  margin-bottom: 30px;
}
/* Estilo para los subtítulos dentro del historial */
.project-details .project-details-sidebar .project-history li strong {
  display: block;
  color: var(--color-brand);
  font-size: 18px;
  margin-bottom: 5px;
}
/* Iconos sociales en el detalle */
.project-details .project-details-sidebar .social-icon li {
  display: inline-block;
}
.project-details .project-details-sidebar .social-icon li a {
  color: #999;
  font-size: 18px;
  margin-right: 20px;
  transition: color 0.3s ease;
}
.project-details .project-details-sidebar .social-icon li a:hover {
  color: var(--color-brand);
}
/* Sección de gráficos */
.project-details .project-details-sidebar .charts {
  padding-top: 50px;
}
.project-details #chartContainer {
  width: 100%;
  height: 320px;
  margin-top: 25px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #eee;
}
/* Columna de imágenes del proyecto */
.project-details .image-col img {
  border-radius: 12px;
  margin-bottom: 30px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.08);
  transition: transform 0.4s ease;
}
.project-details .image-col img:hover {
  transform: scale(1.02);
}
.project-details .image-col img:last-child {
  margin-bottom: 0;
}
/*---------------------- Blog Sidebar ---------------------*/
/* Contenedor del buscador */
.blog-sidebar .sidebar-search form {
  height: 52px;
  position: relative;
  margin-bottom: 20px;
}
.blog-sidebar .sidebar-search form input {
  width: 100%;
  height: 100%;
  border: none;
  border-bottom: 2px solid #dfdfdf;
  font-size: 16px;
  padding-right: 35px;
  transition: border-color 0.3s;
}
.blog-sidebar .sidebar-search form input:focus {
  border-color: var(--color-brand);
  outline: none;
}
.blog-sidebar .sidebar-search form button {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 30px;
  font-size: 16px;
  text-align: right;
  color: var(--color-brand);
  background: transparent;
  transition: color 0.3s;
}
/* Títulos de los bloques del sidebar */
.blog-sidebar .title {
  font-weight: 800;
  margin-bottom: 20px;
  text-transform: uppercase;
  color: var(--color-brand);
  font-size: 18px;
  letter-spacing: 1px;
}
/* Categorías con iconos personalizados */
.blog-sidebar .sidebar-categories ul li a {
  color: #444;
  font-family: var(--font-body);
  line-height: 40px;
  position: relative;
  padding-left: 25px;
  display: block;
  transition: all 0.3s;
}
.blog-sidebar .sidebar-categories ul li a:before {
  content: '\f105';
  font-family: 'FontAwesome';
  font-size: 14px;
  color: var(--color-brand-light);
  position: absolute;
  left: 0;
}
.blog-sidebar .sidebar-categories ul li a:hover {
  color: var(--color-brand);
  padding-left: 30px;
}
/* Posts Recientes */
.blog-sidebar .sidebar-recent-post li {
  padding: 15px 0;
  border-bottom: 1px solid #eee;
  display: flex;
  align-items: center;
}
.blog-sidebar .sidebar-recent-post li img {
  width: 70px;
  height: 70px;
  border-radius: 8px;
  object-fit: cover;
}
.blog-sidebar .sidebar-recent-post li .post {
  width: calc(100% - 70px);
  padding-left: 15px;
}
.blog-sidebar .sidebar-recent-post li .post a {
  font-weight: 700;
  color: #232323;
  line-height: 20px;
  display: block;
  transition: color 0.3s;
}
.blog-sidebar .sidebar-recent-post li .post a:hover {
  color: var(--color-brand);
}
.blog-sidebar .sidebar-recent-post li .post .date {
  font-size: 13px;
  color: var(--color-brand);
  font-weight: 600;
  margin-top: 5px;
  display: block;
}
/* Etiquetas (Tags) */
.blog-sidebar .sidebar-tags ul li a {
  color: #666;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 32px;
  border: 1px solid #e1e1e1;
  border-radius: 20px;
  margin-top: 8px;
  padding: 0 15px;
  display: inline-block;
  transition: all 0.3s;
}
.blog-sidebar .sidebar-tags ul li.active a,
.blog-sidebar .sidebar-tags ul li a:hover {
  color: #fff;
  background: var(--color-brand);
  border-color: var(--color-brand);
  box-shadow: 0 4px 8px rgba(22, 87, 41, 0.2);
}
/*------------------- Blog Details ---------------*/
/* Título del artículo */
.blog-details .single-blog .post-meta .title {
  font-size: 34px;
  line-height: 40px;
  font-weight: 800;
  color: var(--color-brand);
  margin: 30px 0 25px 0;
}
.blog-details .single-blog .post-meta p {
  padding-bottom: 25px;
  line-height: 28px;
  color: #444;
}
/* El bloque de cita resaltada (Blockquote/Mark-text) */
.blog-details .single-blog .post-meta .mark-text {
  padding: 40px 0;
  margin: 20px 0 40px 0;
  border-top: 1px solid #f1f1f1;
  border-bottom: 1px solid #f1f1f1;
}
.blog-details .single-blog .post-meta .mark-text img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
.blog-details .single-blog .post-meta .mark-text .inner-text {
  text-align: center;
  position: relative;
  padding-top: 100px;
  margin: 0 15%;
}
.blog-details .single-blog .post-meta .mark-text .inner-text p {
  font-style: italic;
  font-size: 20px;
  color: var(--color-brand);
  line-height: 32px;
}
/* Icono de comillas */
.blog-details .single-blog .post-meta .mark-text .inner-text:before {
  content: "\f10d";
  font-family: 'FontAwesome';
  position: absolute;
  color: rgba(22, 87, 41, 0.1);
  font-size: 80px;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
/* Opciones de Compartir y Etiquetas */
.blog-details .share-option {
  border-top: 2px solid var(--color-brand);
  margin-top: 30px;
  padding-top: 20px;
}
.blog-details .share-option .tag-meta li,
.blog-details .share-option .social-icon li {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--color-brand);
}
.blog-details .share-option .social-icon li a {
  font-size: 18px;
  color: #777;
  transition: color 0.3s;
}
.blog-details .share-option .social-icon li a:hover {
  color: var(--color-brand-light);
}
/* Área de Comentarios */
.our-blog .comment-area .single-comment {
  border-bottom: 1px solid #f1f1f1;
  padding-bottom: 30px;
  margin-bottom: 30px;
  display: flex;
}
.our-blog .comment-area .single-comment img {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 2px solid var(--color-brand);
}
.our-blog .comment-area .single-comment .comment {
  width: calc(100% - 70px);
  padding-left: 25px;
}
.our-blog .comment-area .single-comment .comment h6 {
  font-weight: 700;
  color: var(--color-brand);
  margin-bottom: 5px;
}
.our-blog .comment-area .single-comment .comment a {
  color: var(--color-brand);
  font-size: 13px;
  transition: color 0.3s;
}
.our-blog .comment-area .single-comment .comment a:hover {
  color: var(--color-brand-light);
  text-decoration: none;
}
/*---------------- Contact Us ----------------*/
/* Contenedor del Mapa Secundario */
.google-map-two {
  height: 410px;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}
/* Caja principal que contiene Imagen + Formulario */
.contact-us-section .main-content {
  margin-top: 50px;
  box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.1);
  border-radius: 15px;
  overflow: hidden;
}
/* Imagen lateral del formulario de contacto */
.contact-us-section .img-box {
  background: url(../images/home/22.jpg) no-repeat center;
  background-size: cover;
  height: 500px;
  border-radius: 15px 0 0 15px;
}
/* Contenedor del Formulario */
.contact-us-section .form-wrapper {
  background: #fff;
  border-radius: 0 15px 15px 0;
  height: 500px;
  padding: 60px 40px;
}
/* Estilo de los campos al hacer clic (Focus) */
.theme-form-one input,
.theme-form-one textarea {
  transition: all 0.3s ease;
  border-bottom: 2px solid #dfdfdf;
}
.theme-form-one input:focus,
.theme-form-one textarea:focus {
  border-bottom-color: var(--color-brand);
  outline: none;
}
/* Estilo del botón de enviar (si aplica la clase theme-form-one) */
.theme-form-one button,
.theme-form-one .theme-button-one {
  background: var(--color-brand);
  border: none;
  color: #fff;
  padding: 12px 35px;
  border-radius: 5px;
  font-weight: 700;
  transition: all 0.3s;
  cursor: pointer;
}
.theme-form-one button:hover {
  background: var(--color-brand-light);
  box-shadow: 0 5px 15px rgba(22, 87, 41, 0.3);
}
/*======================= Form Validation ===================*/
/* Contenedor principal del modal de alerta */
.alert-wrapper {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  background: rgba(22, 87, 41, 0.15);
  backdrop-filter: blur(4px);
  top: 0;
  left: 0;
  z-index: 9999999;
}
/* Caja de mensaje de Éxito o Error */
#success, #error {
  position: relative;
  width: 90%;
  max-width: 450px;
  height: auto;
  min-height: 120px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #ffffff;
  text-align: center;
  border-radius: 15px;
  box-shadow: 0 15px 40px rgba(0,0,0,0.2);
  padding: 20px;
}
#success .wrapper, #error .wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80px;
}
#success .wrapper p, #error .wrapper p {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
}
/* Colores institucionales para los mensajes */
#success p { color: var(--color-brand); } /* Tu verde para el éxito */
#error p { color: #d93025; }   /* Rojo estándar de alerta para errores */
/* Botón de cerrar (la X) */
#error button,
#success button {
  color: #fff;
  width: 35px;
  height: 35px;
  line-height: 35px;
  background: #333;
  border-radius: 50%;
  position: absolute;
  top: -15px;
  right: -15px;
  font-size: 16px;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  transition: transform 0.3s ease;
}
#error button:hover,
#success button:hover {
  transform: scale(1.1) rotate(90deg);
  background: #000;
}
/* Validación de campos del formulario */
.form-validation label.error { display: none; }
/* Borde rojo cuando el campo es obligatorio y está vacío */
.form-validation input.error,
.form-validation textarea.error {
  border-bottom: 2px solid #f03838;
  background: rgba(240, 56, 56, 0.02);
}
/*------------------- Compnay Branch Address ----------------*/
/* Contenedor de fondo de sucursales */
.branch-address {
  background: #f8f9fa;
  padding: 50px 0;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
/* Espaciado del carrusel de sucursales */
.address-slider .item {
  margin: 0 15px;
  cursor: grab;
  background: #fff;
  padding: 25px;
  border-radius: 12px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
  transition: all 0.3s ease;
}
.address-slider .item:hover {
  box-shadow: 0 8px 25px rgba(22, 87, 41, 0.1);
  transform: translateY(-5px);
}
/* Texto de la dirección y contacto */
.branch-address .wrapper p {
  font-size: 16px;
  line-height: 26px;
  color: #444;
  position: relative;
  padding-left: 40px;
  margin-top: 15px;
  transition: color 0.3s;
}
.branch-address .wrapper p:hover {
  color: var(--color-brand);
}
/* Iconos de ubicación, teléfono, etc. */
.branch-address .wrapper p i {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 20px;
  color: var(--color-brand);
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
}
/* Estilo específico para el nombre de la sucursal si usas un h6 o strong */
.branch-address .wrapper h6 {
  font-weight: 700;
  color: var(--color-brand);
  font-size: 19px;
  margin-bottom: 10px;
  text-transform: uppercase;
}
/*--------------------- Shop Page --------------------*/
/* Filtros de la tienda */
.shop-page .shop-filter {
  margin-bottom: 60px;
  background: #f9f9f9;
  padding: 15px 25px;
  border-radius: 10px;
}
.shop-page .shop-filter li:first-child {
  float: left;
  line-height: 40px;
  font-size: 17px;
  font-weight: 700;
  color: var(--color-brand);
}
.shop-page .shop-filter li:last-child .form-control {
  border: 1px solid #e1e1e1;
  border-radius: 8px;
  height: 40px;
  padding: 0 15px;
  transition: border-color 0.3s;
}
.shop-page .shop-filter li:last-child .form-control:focus {
  border-color: var(--color-brand);
  box-shadow: none;
}
/* Tarjeta de Producto */
.shop-page .single-product .image-box {
  border: 1px solid #eee;
  border-radius: 12px;
  min-height: 340px;
  position: relative;
  overflow: hidden;
  background: #fff;
  transition: all 0.4s ease;
}
.shop-page .single-product:hover .image-box {
  border-color: rgba(22, 87, 41, 0.2);
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
}
.shop-page .single-product .image-box img {
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 8px;
  transform: translate(-50% , -50%);
  transition: all 0.6s cubic-bezier(0.2, 1, 0.22, 1);
}
.shop-page .single-product:hover .image-box img {
  transform: translate(-50% , -50%) scale(1.1);
}
/* Nombre y Precio */
.shop-page .single-product .product-name {
  text-align: center;
  margin-top: 20px;
  position: relative;
  overflow: hidden;
}
.shop-page .single-product .product-name h6 a {
  color: #333;
  font-weight: 700;
  transition: color 0.3s;
}
.shop-page .single-product:hover .product-name h6 a {
  color: var(--color-brand);
}
.shop-page .single-product .product-name .price {
  font-weight: 800;
  font-size: 22px;
  color: var(--color-brand);
  transition: all 0.3s ease;
}
.shop-page .single-product .product-name .price del {
  font-size: 16px;
  color: #afafaf;
  font-weight: normal;
  margin-right: 5px;
}
/* Efecto de intercambio: Precio por Botón */
.shop-page .single-product:hover .product-name .price {
  opacity: 0;
  transform: translateY(-20px);
}
.shop-page .single-product .product-name .add-to-cart {
  position: absolute;
  width: 100%;
  bottom: -30px;
  opacity: 0;
  left: 0;
  text-align: center;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.shop-page .single-product .product-name .add-to-cart a {
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  line-height: 40px;
  background: var(--color-brand);
  color: #fff;
  display: inline-block;
  padding: 0 25px;
  border-radius: 20px;
  transition: all 0.3s;
}
.shop-page .single-product .product-name .add-to-cart a:hover {
  background: var(--color-brand-light);
  text-decoration: none;
  box-shadow: 0 5px 15px rgba(37, 211, 102, 0.3);
}
.shop-page .single-product:hover .product-name .add-to-cart {
  opacity: 1;
  bottom: 0;
}
/*------------------ Shop Details ------------------*/
/* Contenedor principal de la galería */
.shop-details .product-details .product-tab {
  border: 1px solid #eee;
  border-radius: 12px;
  min-height: 380px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}
.shop-details .product-details .product-tab .product-preview {
  width: 70%;
  float: left;
  border-right: 1px solid #eee;
  height: 380px;
  position: relative;
  background: #fcfcfc;
}
.shop-details .product-details .product-tab .product-preview img {
  border-radius: 8px;
  transition: transform 0.5s ease;
}
/* Miniaturas laterales */
.shop-details .product-details .product-tab .product-thumbnail {
  float: left;
  width: 30%;
  height: 380px;
  background: #fff;
}
.shop-details .product-details .product-tab .product-thumbnail .nav-tabs li a img {
  border-radius: 8px;
  border: 2px solid transparent;
  transition: all 0.3s;
}
.shop-details .product-details .product-tab .product-thumbnail .nav-tabs li a.active img {
  border-color: var(--color-brand);
  box-shadow: 0 5px 15px rgba(22, 87, 41, 0.2);
}
/* Información del Producto */
.shop-details .product-details .product-info { padding-left: 30px; }
.shop-details .product-details .product-info .title {
  font-size: 32px;
  font-weight: 800;
  color: var(--color-brand);
}
.shop-details .product-details .product-info .price {
  font-size: 30px;
  font-weight: 800;
  color: #333;
  margin: 10px 0 15px 0;
}
.shop-details .product-details .product-info .price del {
  font-size: 20px;
  color: #bbb;
  margin-right: 10px;
}
/* Selector de Cantidad (Order Box) */
.shop-details .product-details .product-info .order-box {
  margin: 35px 0 30px 0;
  background: #f8f9fa;
  padding: 20px;
  border-radius: 10px;
  display: inline-block;
}
.shop-details .product-details .product-info .order-box li:nth-child(2) {
  border: 1px solid #ddd;
  background: #fff;
  line-height: 35px;
  padding: 0 15px;
  border-radius: 25px;
}
.shop-details .product-details .product-info .order-box li:nth-child(2) button {
  font-size: 22px;
  color: var(--color-brand);
  font-weight: 700;
  cursor: pointer;
}
/* Pestañas de Reseña y Descripción */
.shop-details .product-review-tab {
  border: 1px solid #eee;
  border-radius: 12px;
  margin: 80px 0 75px 0;
  padding: 30px 40px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.02);
}
.shop-details .product-review-tab .nav-tabs {
  border-bottom: 2px solid #eee;
}
.shop-details .product-review-tab .nav-tabs .nav-link {
  border: none;
  border-bottom: 3px solid transparent;
  color: #888;
  transition: all 0.3s;
}
.shop-details .product-review-tab .nav-tabs .nav-link.active {
  border-bottom-color: var(--color-brand);
  color: var(--color-brand);
  background: transparent;
}
/* Comentarios y Calificación */
.shop-details .product-review-tab .comment h6 {
  font-weight: 700;
  color: var(--color-brand);
}
.shop-details .product-review-tab .comment ul li {
  color: #ffc107;
}
.shop-details .product-review-tab img {
  border-radius: 50%;
  border: 2px solid #eee;
}
/*---------------------- Faq Page ------------------*/
/* Margen superior del contenedor de FAQ */
.faq-page .faq-panel { margin-top: 60px; }
/* Grupo de paneles con bordes más suaves */
.faq-page .faq-panel .panel-group {
  border: 1px solid #eee;
  border-bottom: none;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 5px 15px rgba(0,0,0,0.03);
}
.faq-page .faq-panel .panel { margin: 0; }
/* Encabezado de la pregunta */
.faq-page .panel-group .panel-heading h6 a {
  color: #333;
  font-weight: 700;
  font-size: 18px;
  padding: 24px 80px 24px 30px;
  display: block;
  position: relative;
  transition: all 0.3s ease;
}
/* El cuadro del símbolo (+ / -) */
.faq-page .panel-group .panel-heading h6 a:before {
  content: '+';
  width: 60px;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  background: #fcfcfc;
  border-left: 1px solid #eee;
  text-align: center;
  line-height: 70px;
  font-size: 24px;
  color: var(--color-brand);
  transition: all 0.3s ease;
}
/* Estilo cuando el panel está abierto (Activo) */
.faq-page .panel-group .panel-heading.active-panel h6 a {
  background-color: #f8f9fa;
  color: var(--color-brand);
}
.faq-page .panel-group .panel-heading.active-panel h6 a:before {
  content: '\f068';
  font-family: 'FontAwesome';
  font-size: 16px;
  background: var(--color-brand);
  color: #fff;
}
.faq-page .panel-group .panel-heading { border-bottom: 1px solid #eee; }
/* Cuerpo de la respuesta */
.faq-page .panel-group .panel-body {
  padding: 35px 50px 50px 30px;
  border-bottom: 1px solid #eee;
  background: #fff;
  line-height: 28px;
  color: #555;
}
/* Listas ordenadas dentro de la respuesta */
.faq-page .panel-group .panel-body ol {
  margin: 15px 0;
  padding: 0 0 0 20px;
}
.faq-page .panel-group .panel-body ol li {
  line-height: 30px;
  padding-bottom: 10px;
  color: #444;
}
.faq-page .panel-group .panel-body ol li::marker {
  color: var(--color-brand);
  font-weight: 700;
}
/*----------------------------- Error Page --------------------------*/
/* Contenedor principal del error */
.error-page {
  text-align: center;
  padding: 100px 0;
  margin-bottom: 100px;
}

/* El número 404 */
.error-page h2 {
  font-size: 160px;
  font-weight: 900;
  letter-spacing: -5px;
  color: var(--color-brand);
  line-height: 1;
  margin-bottom: 20px;
  text-shadow: 10px 10px 0px rgba(22, 87, 41, 0.05);
}

/* Título del mensaje (Ej: Página no encontrada) */
.error-page h3 {
  font-weight: 800;
  color: #333;
  font-size: 42px;
  margin: 0 0 25px 0;
  text-transform: uppercase;
}

/* Texto explicativo */
.error-page p {
  font-size: 18px;
  color: #666;
  max-width: 600px;
  margin: 0 auto 50px auto;
  line-height: 1.6;
}

/* Botón de volver al inicio */
.error-page a {
  line-height: 55px;
  display: inline-block;
  padding: 0 40px;
  background: var(--color-brand);
  color: #fff;
  border-radius: 30px;
  font-weight: 700;
  text-transform: uppercase;
  transition: all 0.3s ease;
}

.error-page a:hover {
  background: var(--color-brand-light);
  box-shadow: 0 10px 20px rgba(37, 211, 102, 0.2);
  transform: translateY(-3px);
}

/* El separador "O" */
.error-page span.or {
  font-size: 16px;
  font-weight: 700;
  color: #999;
  margin: 0 20px;
  display: inline-block;
  vertical-align: middle;
}

/* Buscador dentro de la página de error */
.error-page input {
  height: 55px;
  width: 100%;
  max-width: 400px;
  padding: 0 25px;
  border: 2px solid #f0f0f0;
  border-radius: 30px;
  font-size: 16px;
  transition: all 0.3s ease;
  outline: none;
}

.error-page input:focus {
  border-color: var(--color-brand);
  background: #fff;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

/* ___________________actualizaciones________________________ */

/* ___________________BOTON QUIERO SER SOCIO________________________ */
/* Contenedor del Banner para centrado */
.new-banner-content {
    text-align: center;
    padding: 60px 0;
}

/* Estilo Premium para el Botón Quiero Ser Socio */
.quiero-socio-btn {
    display: inline-block;
    padding: 18px 45px;
    background: var(--color-brand);
    color: #ffffff !important;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 50px;
    position: relative;
    overflow: hidden;
    transition: all 0.4s ease;
    border: 2px solid var(--color-brand);
    box-shadow: 0 10px 20px rgba(22, 87, 41, 0.2);
    cursor: pointer;
    z-index: 1;
}

/* Efecto de brillo que pasa por el botón */
.quiero-socio-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        120deg,
        transparent,
        rgba(255, 255, 255, 0.3),
        transparent
    );
    transition: all 0.6s;
    z-index: -1;
}

.quiero-socio-btn:hover::before {
    left: 100%;
}

/* Cambio de estado al pasar el mouse */
.quiero-socio-btn:hover {
    background: #ffffff;
    color: var(--color-brand) !important;
    transform: translateY(-3px);
    box-shadow: 0 15px 30px rgba(22, 87, 41, 0.4);
}

/* Ajuste para que se vea bien en celulares */
@media (max-width: 575px) {
    .quiero-socio-btn {
        padding: 15px 30px;
        font-size: 16px;
        width: 100%;
    }
}

/* Contenedor del Carousel */
#carouselExampleIndicators {
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    overflow: hidden;
    margin-top: 0;
}

/* Efecto de zoom suave en las imágenes del banner */
.carousel-item img {
    transition: transform 10s ease;
}

.carousel-item.active img {
    transform: scale(1.05);
}

.carousel-control-prev, .carousel-control-next {
    width: 8%;
    opacity: 0;
    transition: opacity 0.3s;
}

#carouselExampleIndicators:hover .carousel-control-prev,
#carouselExampleIndicators:hover .carousel-control-next {
    opacity: 1;
}

/* Iconos más elegantes */
.carousel-control-prev-icon, .carousel-control-next-icon {
    width: 40px;
    height: 40px;
    background-color: rgba(22, 87, 41, 0.7);
    border-radius: 50%;
    background-size: 50%;
}
.legal-box {
    background: #fff;
    padding: 25px;
    border-radius: 12px;
    margin-bottom: 20px;
    border-left: 5px solid #e9ecef;
    transition: all 0.3s ease;
}

.legal-box:hover {
    border-left-color: var(--color-brand);
    background: #fdfdfd;
}

.legal-box h4 {
    color: var(--color-brand);
    font-weight: 700;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Lista de requisitos numerada con estilo */
.legal-box ol {
    padding-left: 20px;
    column-count: 2;
    column-gap: 30px;
}

@media (max-width: 768px) {
    .legal-box ol { column-count: 1; }
}

.legal-box li {
    margin-bottom: 10px;
    color: #555;
    font-size: 0.9rem;
}

/* --- Rejilla de Leyes --- */
.laws-grid-section {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid #dee2e6;
}

.law-card {
    background: #fff;
    border-radius: 15px;
    padding: 25px;
    height: 100%;
    display: flex;
    gap: 20px;
    border: 1px solid #eee;
    transition: all 0.3s ease;
    margin-bottom: 20px;
}

.law-card:hover {
    box-shadow: 0 8px 25px rgba(0,0,0,0.05);
    transform: translateY(-3px);
}

.law-icon {
    width: 50px;
    height: 50px;
    background: rgba(22, 87, 41, 0.08);
    color: var(--color-brand);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.4rem;
}

.law-content h5 {
    font-weight: 700;
    margin-bottom: 5px;
    color: #333;
}

.law-content p {
    font-size: 0.85rem;
    color: #666;
    line-height: 1.4;
}

.read-link {
    color: var(--color-brand);
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    text-decoration: none;
    display: inline-block;
    margin-top: 10px;
}

.read-link:hover {
    color: #000;
}
.static-savings-card {
    background: #fff;
    padding: 35px 25px;
    border-radius: 20px;
    height: 100%;
    text-align: center;
    border: 1px solid #eee;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.static-savings-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 4px;
    background: var(--color-brand);
    transform: scaleX(0);
    transition: transform 0.4s ease;
}

.static-savings-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.static-savings-card:hover::before {
    transform: scaleX(1);
}

.big-icon-small {
    font-size: 2.5rem;
    color: var(--color-brand);
    margin-bottom: 20px;
    display: block;
}

.savings-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 15px;
    color: #333;
}

.savings-desc {
    font-size: 0.9rem;
    color: #666;
    line-height: 1.6;
}
.styled-list.large-list li {
    list-style: none;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.styled-list.large-list li i {
    width: 50px;
    height: 50px;
    background: rgba(22, 87, 41, 0.08);
    color: var(--color-brand);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.2rem;
}

.styled-list.large-list h4 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 5px;
    color: var(--color-brand);
}
/* --- Layout de Entradas --- */
.input-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.input-group {
    display: flex;
    flex-direction: column;
    text-align: left;
}

.input-group label {
    font-weight: 700;
    margin-bottom: 8px;
    color: #444;
    font-size: 0.9rem;
}

.input-group input {
    padding: 12px 15px;
    border: 2px solid #eee;
    border-radius: 10px;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.input-group input:focus {
    border-color: var(--color-brand);
    outline: none;
    box-shadow: 0 0 8px rgba(22, 87, 41, 0.1);
}

/* --- Botón Calcular --- */
#btn-calcular {
    width: 100%;
    background: var(--color-brand);
    color: white;
    border: none;
    padding: 15px;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}

#btn-calcular:hover {
    background: #0e3b1c;
    transform: translateY(-2px);
}

/* --- Resumen de Resultados --- */
#resultados {
    margin-top: 40px;
    padding-top: 30px;
    border-top: 2px dashed #eee;
}

.resumen-cards {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.resumen-card {
    flex: 1;
    min-width: 180px;
    background: rgba(22, 87, 41, 0.08);
    padding: 20px;
    border-radius: 15px;
    text-align: center;
}

.resumen-card span {
    display: block;
    font-size: 0.8rem;
    color: #666;
    margin-bottom: 5px;
}

.resumen-card strong {
    font-size: 1.2rem;
    color: var(--color-brand);
}

/* --- Tabla de Amortización --- */
#tabla-amortizacion {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    font-size: 0.9rem;
}

#tabla-amortizacion th {
    background: #f8f9fa;
    padding: 15px;
    border-bottom: 2px solid var(--color-brand);
    color: #333;
}

#tabla-amortizacion td {
    padding: 12px;
    border-bottom: 1px solid #eee;
    text-align: center;
}

.hidden { display: none; }

/* ==========================================================================
   ESTILOS SOLICITUD DE INGRESO - COOPERATIVA PORVENIR (CONSOLIDADO)
   ========================================================================== */
.form-section-title i {
    margin-right: 10px;
}

/* 3. Etiquetas (Labels) */
label:not(.form-check-label) {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #495057;
    font-size: 0.9rem;
}

/* 4. Campos de Entrada (Inputs, Selects, Textareas) */
input[type="text"],
input[type="number"],
input[type="date"],
input[type="tel"],
input[type="email"],
select,
textarea {
    width: 100%;
    padding: 12px 15px;
    margin-bottom: 20px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #ffffff;
    transition: all 0.3s ease;
    font-size: 1rem;
    outline: none;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--color-brand) !important;
    box-shadow: 0 0 0 0.2rem rgba(22, 87, 41, 0.15) !important;
}

/* 5. ARREGLO DE CHECKS Y RADIOS (CORREGIDO) */
.form-check {
    display: flex;
    align-items: center;
    min-height: 1.5rem;
    padding-left: 1.75em;
    margin-bottom: 12px;
}

.form-check-input {
    width: 1.35em !important;
    height: 1.35em !important;
    margin-top: 0 !important;
    margin-left: -1.75em !important;
    cursor: pointer;
    border: 2px solid #ced4da !important;
    float: none !important;
}

.form-check-input:checked {
    background-color: var(--color-brand) !important;
    border-color: var(--color-brand) !important;
}

.form-check-label {
    margin-bottom: 0 !important;
    margin-left: 10px;
    font-weight: 500;
    color: #495057;
    cursor: pointer;
    user-select: none;
    line-height: 1.4;
}

.form-check-inline {
    display: inline-flex !important;
    margin-right: 1.5rem;
}

/* 6. Tablas (Hijos / PEP) */
.table {
    border-radius: 8px;
    overflow: hidden;
    margin-top: 15px;
    border: 1px solid #dee2e6;
}

.table thead {
    background-color: #e8f5e9;
    color: var(--color-brand);
}

.table thead th {
    border-bottom: 2px solid var(--color-brand);
    padding: 12px;
    font-weight: 700;
}

.table-bordered th,
.table-bordered td {
    vertical-align: middle !important;
}

/* Alineación de checks dentro de tablas */
.table .form-check {
    justify-content: center;
    padding-left: 0;
    margin-bottom: 0;
}

.table .form-check-input {
    margin-left: 0 !important;
}

/* 7. Bloque Legal y Alertas */
.text-justify {
    text-align: justify;
    line-height: 1.6;
    background: var(--color-bg-light);
    padding: 20px;
    border-radius: 10px;
    font-size: 0.9rem;
}

.alert {
    border-radius: 10px;
    border: none;
    padding: 15px 20px;
}
.theme-button-one {
    background-color: var(--color-brand);
    color: #ffffff !important;
    border: 2px solid var(--color-brand);
    padding: 16px 45px;
    border-radius: 50px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.4s ease;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(22, 87, 41, 0.3);
    display: inline-block;
    text-decoration: none;
}

.theme-button-one:hover {
    background-color: #ffffff;
    color: var(--color-brand) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(22, 87, 41, 0.4);
    border: 2px solid var(--color-brand);
}

/* 9. Responsive */
@media (max-width: 768px) {

    .form-check-inline {
        display: flex !important;
        margin-right: 0;
        margin-bottom: 10px;
    }
}

/* ==========================================================================
   Sección de Promociones y Convenios
   ========================================================================== */

.promotions-section {
    background-color: #f4f7f6;
    padding: 80px 0;
}

.theme-title-one h2 {
    color: var(--color-brand);
    font-weight: 800;
    margin-bottom: 15px;
}

.theme-title-one p {
    color: #666;
    font-size: 1.1rem;
    margin-bottom: 50px;
}

/* Tarjeta de Promoción */
.promotion-card {
    background: #ffffff;
    border-radius: 15px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    margin-bottom: 30px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    transition: all 0.3s ease-in-out;
    border: 1px solid #e9ecef;
}

.promotion-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(22, 87, 41, 0.15);
}

/* Contenedor de Imagen */
.promo-image-box {
    width: 100%;
    height: 820px;
    overflow: hidden;
    background: #f8f9fa;
    display: flex;
    justify-content: center;
    align-items: center;
}

.promo-image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.promotion-card:hover .promo-image-box img {
    transform: scale(1.1);
}

/* Contenido de la Tarjeta */
.promo-content {
    padding: 25px;
}

.promo-content h3 {
    color: var(--color-brand);
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 15px;
    border-bottom: 2px solid #e8f5e9;
    padding-bottom: 10px;
}

/* Lista de Beneficios */
.benefit-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.benefit-list li {
    margin-bottom: 10px;
    font-size: 0.95rem;
    color: #444;
    display: flex;
    align-items: flex-start;
}

.benefit-list li i {
    color: var(--color-brand);
    margin-right: 10px;
    margin-top: 4px;
    font-size: 1.1rem;
}

.benefit-list b,
.benefit-list strong {
    color: var(--color-brand);
    font-weight: 700;
}
.requirements-box h3 {
    font-weight: 700;
    margin-bottom: 10px;
    color: black;
}

.requirements-box p.big-requirement {
    font-size: 1.3rem;
    margin: 0;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.requirements-box p.big-requirement i {
    color: #ffc107;
    margin-right: 10px;
}

/* Responsive */
@media (max-width: 768px) {
    .promo-image-box {
        height: 180px;
    }

    .requirements-box p.big-requirement {
        font-size: 1.1rem;
    }
}
/* ==========================================================================
   Sección de Eventos - Cooperativa Porvenir
   ========================================================================== */

/* Ajustes del encabezado */
.header-white-box {
    background: #fff;
    padding: 40px;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.03);
    margin-bottom: 50px;
}

/* Tarjeta de Actividad Personalizada */
.activity-card-custom {
    border: none !important;
    border-radius: 15px !important;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    background: #fff;
}

.activity-card-custom:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.1) !important;
}

/* Contenedor de Imagen y Fecha */
.card-img-top-container {
    position: relative;
    height: 230px;
    overflow: hidden;
}

.custom-img-fit {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.activity-card-custom:hover .custom-img-fit {
    transform: scale(1.1);
}

/* Badge de Fecha Flotante */
.activity-date-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    background: rgba(22, 87, 41, 0.9);
    color: #fff;
    padding: 8px 15px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 700;
    backdrop-filter: blur(5px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    z-index: 2;
}

/* Cuerpo de la tarjeta */
.activity-card-custom .card-body {
    padding: 25px;
}

.activity-card-custom .card-title {
    font-size: 1.25rem;
    margin-bottom: 12px;
    color: var(--color-brand) !important;
}

.activity-card-custom .card-text {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Footer y Botón */
.activity-card-custom .card-footer {
    padding: 0 25px 25px 25px;
}

/* Reutilizamos el estilo del botón institucional */
.activity-card-custom .theme-button-one {
    display: inline-block;
    padding: 10px 25px;
    background-color: var(--color-brand);
    color: var(--color-brand);
    text-decoration: none;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    transition: all 0.3s ease;
    text-align: center;
}

.activity-card-custom .theme-button-one:hover {
    background-color: var(--color-brand-dark);
    box-shadow: 0 4px 12px rgba(22, 87, 41, 0.3);
}

/* Responsive para Eventos */
@media (max-width: 768px) {
    .card-img-top-container {
        height: 200px;
    }

    .header-white-box {
        padding: 30px 15px;
    }
}
/* ==========================================================================
   Sección de Contacto - Cooperativa Porvenir
   ========================================================================== */

.contact-section {
    background-color: transparent;
    padding: 80px 0;
}

/* Tarjeta de Información de Contacto */
.contact-info-card {
    background: #f8f9fa;
    padding: 30px 20px;
    border-radius: 15px;
    text-align: center;
    height: 100%;
    transition: all 0.3s ease;
    border: 1px solid #e9ecef;
}

.contact-info-card:hover {
    background: #ffffff;
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.08);
    border-color: var(--color-brand);
}

/* Iconos Grandes */
.contact-icon-large {
    font-size: 2.5rem;
    color: var(--color-brand);
    margin-bottom: 20px;
    display: inline-block;
}

/* Títulos y Detalles */
.info-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 15px;
}

.info-detail {
    font-size: 0.95rem;
    color: #666;
    line-height: 1.5;
    margin-bottom: 10px;
}

.info-detail a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s;
}

.info-detail a:hover {
    color: var(--color-brand);
}

/* Enlaces Especiales (Mapa, WhatsApp) */
.map-link, .whatsapp-link {
    display: inline-block;
    margin-top: 15px;
    font-weight: 700;
    text-decoration: none;
    font-size: 0.9rem;
    padding: 8px 15px;
    border-radius: 5px;
    transition: all 0.3s;
}

.map-link {
    color: var(--color-brand);
    border: 1px solid var(--color-brand);
}

.map-link:hover {
    background: var(--color-brand);
    color: #fff;
}

.whatsapp-link {
    background: var(--color-brand-light);
    color: #fff;
}

.whatsapp-link:hover {
    background: #128c7e;
    transform: scale(1.05);
}

/* Botones de Redes Sociales */
.social-links-contact {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 10px;
}

.social-icon-btn {
    width: 45px;
    height: 45px;
    line-height: 45px;
    border-radius: 50%;
    color: #fff;
    font-size: 1.2rem;
    transition: all 0.3s;
}

.social-icon-btn.instagram {
    background: #e1306c;
}

.social-icon-btn.facebook {
    background: #1877f2;
}

.social-icon-btn:hover {
    transform: rotate(360deg) scale(1.1);
    color: #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

/* Responsive */
@media (max-width: 991px) {
    .contact-info-card {
        margin-bottom: 20px;
    }
}
/* ==========================================================================
   Estilos para Páginas de Detalle (Asambleas y Eventos)
   ========================================================================== */

.page-content-wrapper {
    background-color: transparent;
    padding-bottom: 80px;
}

/* Botón Regresar */
.btn-regreso {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    padding: 10px 0;
    margin-top: 20px;
    margin-bottom: 30px;
    transition: transform 0.3s ease;
}

.btn-regreso:hover {
    transform: translateX(-5px);
    color: var(--color-brand-dark) !important;
}

/* Caja de Texto Principal */
.white-section-box {
    background: #ffffff;
    padding: 40px;
    border-radius: 15px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.03);
    line-height: 1.8;
    color: #444;
    font-size: 1.1rem;
    border-left: 5px solid var(--color-brand);
}

.white-section-box p {
    margin-bottom: 20px;
}

/* Imagen Principal */
.image-container-main img {
    width: 100%;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.15);
    transition: transform 0.5s ease;
}

/* Título de Galería */
.gallery-title-box {
    color: var(--color-brand);
    position: relative;
    padding-bottom: 15px;
}

.gallery-title-box::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: var(--color-brand);
}

/* Sistema de Galería */
.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
}

.gallery-item img {
    transition: all 0.5s ease;
    cursor: pointer;
    width: 100%;
    height: 250px;
    object-fit: cover;
}

/* Efecto hover unificado para galería */
.gallery-item:hover img {
    transform: scale(1.1);
    filter: brightness(65%);
}

/* Efecto de carga suave para las imágenes */
.gallery-zoom .col-md-4 {
    opacity: 0;
    animation: fadeInUp 0.6s forwards;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Retraso en la animación de la galería */
.gallery-zoom .col-md-4:nth-child(1) { animation-delay: 0.1s; }
.gallery-zoom .col-md-4:nth-child(2) { animation-delay: 0.2s; }
.gallery-zoom .col-md-4:nth-child(3) { animation-delay: 0.3s; }
.gallery-zoom .col-md-4:nth-child(4) { animation-delay: 0.4s; }
.gallery-zoom .col-md-4:nth-child(5) { animation-delay: 0.5s; }
.gallery-zoom .col-md-4:nth-child(6) { animation-delay: 0.6s; }

/* Responsive */
@media (max-width: 768px) {
    .white-section-box {
        padding: 25px;
        font-size: 1rem;
    }

    .gallery-item img {
        height: 200px;
    }
}
/* ==========================================================================
   Galería Simétrica - Cooperativa Porvenir
   ========================================================================== */

.gallery-zoom .gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 12px;

}

/* Fuerza a todas las imágenes a tener la misma proporción (Cuadrada o Rectangular fija) */
.gallery-zoom .gallery-item img {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important; /* Todas tendrán la misma relación de aspecto */
    object-fit: cover !important;
    transition: all 0.5s ease;
    display: block;
    cursor: pointer;
}

/* Contenedor del icono/texto de ampliar */
.zoom-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: uppercase;
    background: rgba(22, 87, 41, 0.8);
    padding: 8px 16px;
    border-radius: 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 2;
    pointer-events: none;
}

.gallery-item:hover .zoom-icon {
    opacity: 1;
}

/* Ajuste para que Fancybox (al ampliar) no se vea afectado por el object-fit */
.fancybox__content img {
    object-fit: contain !important;
    aspect-ratio: auto !important;
}
/* ==========================================================================
   Ajuste de Imagen Principal (Asambleas/Eventos)
   ========================================================================== */

.image-container-main {
    max-width: 800px;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}

.image-container-main img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.5s ease;
}

/* Ajuste para que en móviles no se vea recortada */
@media (max-width: 768px) {
    .image-container-main img {
        height: 250px;
    }
}
/* ==========================================================================
   Sección FAQ - Cooperativa Porvenir
   ========================================================================== */

.faq-section-container {
    background-color: #f9f9f9;
    padding: 80px 0;
}

.faq-section-container .theme-title-one h2 {
    color: var(--color-brand);
    font-weight: 800;
    margin-bottom: 50px;
    letter-spacing: 1px;
}

/* Contenedor del Acordeón */
.accordion-container {
    max-width: 900px;
    margin: 0 auto;
}

/* Item Individual de FAQ */
.faq-item {
    background: #fff;
    margin-bottom: 15px;
    border-radius: 10px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.03);
    transition: all 0.3s ease;
    border: 1px solid #eee;
    overflow: hidden;
}

.faq-item[open] {
    box-shadow: 0 10px 20px rgba(22, 87, 41, 0.1);
    border-color: var(--color-brand);
}

/* Estilo de la Pregunta (Summary) */
.faq-question {
    padding: 20px 25px;
    font-weight: 700;
    font-size: 1.1rem;
    color: #333;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    position: relative;
    transition: background 0.3s;
}

.faq-question::-webkit-details-marker {
    display: none;
}

.faq-question i {
    color: var(--color-brand);
    margin-right: 15px;
    font-size: 1.2rem;
}

/* Indicador de Apertura (Flecha personalizada) */
.faq-question::after {
    content: '\f107';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    right: 25px;
    transition: transform 0.3s ease;
    color: #ccc;
}

.faq-item[open] .faq-question::after {
    transform: rotate(180deg);
    color: var(--color-brand);
}

.faq-question:hover {
    background-color: #f0f7f2;
}

/* Estilo de la Respuesta */
.faq-answer {
    padding: 0 25px 25px 60px;
    color: #555;
    line-height: 1.7;
    font-size: 1rem;
    animation: slideDown 0.4s ease-out;
}

.faq-answer ul {
    padding-left: 20px;
    margin-top: 10px;
}

.faq-answer li {
    margin-bottom: 8px;
}

.faq-answer strong {
    color: var(--color-brand);
}

/* Animación de apertura */
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Responsive */
@media (max-width: 768px) {
    .faq-question {
        padding: 15px;
        font-size: 1rem;
    }
    .faq-answer {
        padding: 0 15px 15px 15px;
    }
}
/* ==========================================================================
   Sección de Requisitos (Tabs) - Cooperativa Porvenir
   ========================================================================== */

.requirements-section-container {
    padding: 80px 0;
    background-color: transparent;
}

/* Contenedor de Navegación (Botones) */
.nav-tabs-list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 40px;
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 20px;
}

.nav-tabs-list .nav-link {
    border: none;
    background: #f8f9fa;
    padding: 12px 25px;
    border-radius: 50px;
    font-weight: 700;
    color: #666;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 10px;
}

.nav-tabs-list .nav-link i {
    font-size: 1.1rem;
}

.nav-tabs-list .nav-link.active {
    background-color: var(--color-brand);
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(22, 87, 41, 0.3);
}

.nav-tabs-list .nav-link:hover:not(.active) {
    background-color: #e9ecef;
    color: var(--color-brand);
}

/* Contenedor de Contenido */
.tab-content-wrapper {
    background: #fff;
    padding: 40px;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.05);
    border: 1px solid #f0f0f0;
}

.tab-pane {
    display: none;
    animation: fadeInTab 0.5s ease;
}

.tab-pane.active {
    display: block;
}

.tab-pane h3 {
    color: var(--color-brand);
    font-weight: 800;
    margin-bottom: 20px;
}

/* Estilo de la Lista de Requisitos */
.requirements-list {
    list-style: none;
    padding: 0;
    margin-top: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}

.requirements-list li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    background: #fcfcfc;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #f1f1f1;
    transition: transform 0.3s ease;
}

.requirements-list li:hover {
    transform: translateY(-5px);
    border-color: var(--color-brand);
}

.requirements-list li span i {
    background: #f0f7f2;
    color: var(--color-brand);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 1.1rem;
}

@keyframes fadeInTab {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Responsive */
@media (max-width: 768px) {
    .nav-tabs-list {
        flex-direction: column;
        align-items: stretch;
    }

    .tab-content-wrapper {
        padding: 20px;
    }
}
/* ==========================================================================
   Formulario de Solicitud de Crédito
   ========================================================================== */

.savings-section {
    background-color: transparent;
    padding: 80px 0;
}
/* Títulos de sección dentro del formulario */
.simulador-container h4 {
    color: var(--color-brand);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 1rem;
    letter-spacing: 0.5px;
}

.simulador-container hr {
    border-top: 2px solid #f0f0f0;
    margin-bottom: 25px;
    opacity: 1;
}

/* Estilo de los Inputs y Selects */
.form-label {
    font-weight: 600;
    color: #444;
    margin-bottom: 8px;
    font-size: 0.9rem;
}

.form-control, .form-select {
    border: 2px solid #edf2ef;
    padding: 12px 15px;
    border-radius: 10px;
    transition: all 0.3s ease;
    background-color: #fcfdfc;
}

.form-control:focus, .form-select:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 4px rgba(22, 87, 41, 0.1);
    background-color: #fff;
    outline: none;
}

/* Botón de Envío Principal */
#btnEnviar {
    background-color: var(--color-brand);
    color: white;
    border: none;
    width: 100%;
    padding: 15px;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 5px 15px rgba(22, 87, 41, 0.2);
}

#btnEnviar:hover {
    background-color: var(--color-brand-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(22, 87, 41, 0.3);
}

/* Botón de Descarga PDF */
.btn-outline-success {
    color: var(--color-brand);
    border: 2px solid var(--color-brand);
    background: transparent;
    font-weight: 600;
    padding: 12px;
    border-radius: 10px;
    transition: all 0.3s;
}

.btn-outline-success:hover {
    background-color: #f0f7f2;
    color: var(--color-brand);
    border-color: var(--color-brand);
}

/* Ajustes Responsive */
@media (max-width: 768px) {
    .simulador-container {
        padding: 25px 20px;
    }

    .theme-title-one h2 {
        font-size: 1.5rem;
    }
}
.bg-light {
    background-color: transparent !important;
}
.bg-white {
    background-color: transparent !important;
}

/* ═══════════════════════════════════════════════
		   Logo secundario sin inline style
		═══════════════════════════════════════════════ */
		/* ═══════════════════════════════════════════════
		   Botón WhatsApp fijo
		═══════════════════════════════════════════════ */
		.btn-whatsapp-fixed:hover { transform: scale(1.1); box-shadow: 0 8px 28px rgba(37,211,102,0.55); }
		/* ═══════════════════════════════════════════════
		   HERO / BANNER PRINCIPAL
		═══════════════════════════════════════════════ */
		.hero-section {
			position: relative;
			min-height: 88vh;
			display: flex;
			align-items: center;
			overflow: hidden;
			background: linear-gradient(135deg, #0c3a1a 0%, #165729 55%, #1e7a38 100%);
		}
		/* Patrón de fondo decorativo */
		.hero-section::before {
			content: '';
			position: absolute; inset: 0;
			background-image:
				radial-gradient(circle at 15% 50%, rgba(255,255,255,0.04) 0%, transparent 50%),
				radial-gradient(circle at 85% 20%, rgba(37,211,102,0.08) 0%, transparent 40%),
				url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.025'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
			z-index: 0;
		}
		/* Imagen de banner del carousel como fondo del hero */
		.hero-bg-image {
			position: absolute; inset: 0;
			background: url('images/home/fondo.jpeg') center center / cover no-repeat;
			opacity: 0.18;
			z-index: 0;
		}
		/* Círculo decorativo grande */
		.hero-deco-circle {
			position: absolute;
			width: 650px; height: 650px;
			border-radius: 50%;
			border: 1.5px solid rgba(255,255,255,0.07);
			right: -120px; top: 50%;
			transform: translateY(-50%);
			z-index: 0;
			pointer-events: none;
		}
		.hero-deco-circle::before {
			content: '';
			position: absolute;
			width: 480px; height: 480px;
			border-radius: 50%;
			border: 1.5px solid rgba(255,255,255,0.05);
			top: 50%; left: 50%;
			transform: translate(-50%,-50%);
		}
		.hero-content {
			position: relative; z-index: 1;
			padding: 100px 0 80px;
			max-width: 700px;
		}
		.hero-eyebrow {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			background: rgba(255,255,255,0.1);
			border: 1px solid rgba(255,255,255,0.18);
			color: rgba(255,255,255,0.88);
			font-size: 0.78rem;
			font-weight: 700;
			letter-spacing: 2.5px;
			text-transform: uppercase;
			padding: 6px 16px;
			border-radius: 100px;
			margin-bottom: 24px;
			backdrop-filter: blur(8px);
		}
		.hero-eyebrow i { color: var(--brand-light); font-size: 0.7rem; }
		.hero-title {
			font-family: var(--font-heading);
			font-size: clamp(2.4rem, 5vw, 4rem);
			font-weight: 900;
			color: #fff;
			line-height: 1.1;
			margin-bottom: 22px;
			letter-spacing: -0.5px;
		}
		.hero-title .highlight {
			position: relative;
			color: var(--brand-light);
			display: inline-block;
		}
		.hero-title .highlight::after {
			content: '';
			position: absolute;
			bottom: 4px; left: 0; right: 0;
			height: 3px;
			background: var(--brand-light);
			border-radius: 2px;
			opacity: 0.5;
		}
		.hero-subtitle {
			font-size: 1.15rem;
			color: rgba(255,255,255,0.72);
			line-height: 1.7;
			margin-bottom: 40px;
			max-width: 540px;
		}
		.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
		.btn-hero-primary {
			display: inline-flex; align-items: center; gap: 10px;
			background: var(--brand-light);
			color: #0c3a1a;
			font-weight: 800; font-size: 0.95rem;
			padding: 15px 32px;
			border-radius: 100px;
			text-decoration: none;
			transition: var(--transition);
			box-shadow: 0 6px 24px rgba(37,211,102,0.4);
			letter-spacing: 0.2px;
		}
		.btn-hero-primary:hover {
			background: #fff; color: var(--brand);
			transform: translateY(-2px);
			box-shadow: 0 12px 32px rgba(37,211,102,0.35);
			text-decoration: none;
		}
		.btn-hero-secondary {
			display: inline-flex; align-items: center; gap: 8px;
			color: rgba(255,255,255,0.82);
			font-weight: 600; font-size: 0.92rem;
			padding: 14px 26px;
			border-radius: 100px;
			border: 1.5px solid rgba(255,255,255,0.25);
			text-decoration: none;
			transition: var(--transition);
		}
		.btn-hero-secondary:hover {
			background: rgba(255,255,255,0.1);
			color: #fff; border-color: rgba(255,255,255,0.5);
			text-decoration: none;
		}
		/* Stats rápidos en el hero */
		.hero-stats {
			display: flex;
			gap: 0;
			margin-top: 56px;
			background: rgba(255,255,255,0.07);
			border: 1px solid rgba(255,255,255,0.12);
			border-radius: var(--radius);
			backdrop-filter: blur(10px);
			overflow: hidden;
			max-width: 520px;
		}
		.hero-stat {
			flex: 1;
			padding: 18px 20px;
			text-align: center;
			border-right: 1px solid rgba(255,255,255,0.1);
		}
		.hero-stat:last-child { border-right: none; }
		.hero-stat-val {
			font-size: 1.7rem; font-weight: 900;
			color: var(--brand-light);
			font-family: var(--font-heading);
			line-height: 1;
			display: block;
		}
		.hero-stat-lbl {
			font-size: 0.72rem;
			color: rgba(255,255,255,0.6);
			text-transform: uppercase;
			letter-spacing: 0.8px;
			margin-top: 4px;
			display: block;
		}

		/* ═══════════════════════════════════════════════
		   TARJETAS DE SERVICIOS (top-feature)
		═══════════════════════════════════════════════ */
		.services-strip {
			background: #fff;
			padding: 0;
			margin-top: -2px;
			position: relative;
			z-index: 2;
		}
		.services-strip-inner {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 0;
			box-shadow: 0 20px 60px rgba(0,0,0,0.09);
			border-radius: 0 0 var(--radius-lg) var(--radius-lg);
			overflow: hidden;
		}
		@media (max-width: 768px) {
			.services-strip-inner { grid-template-columns: 1fr; }
		}
		.service-card {
			padding: 40px 36px;
			background: #fff;
			border-right: 1px solid var(--border);
			display: flex; align-items: flex-start; gap: 20px;
			transition: var(--transition);
			text-decoration: none;
			position: relative;
			overflow: hidden;
		}
		.service-card:last-child { border-right: none; }
		.service-card::after {
			content: '';
			position: absolute;
			bottom: 0; left: 0; right: 0;
			height: 3px;
			background: var(--brand);
			transform: scaleX(0);
			transform-origin: left;
			transition: transform 0.3s ease;
		}
		.service-card:hover {
			background: var(--brand-bg);
			transform: translateY(-4px);
			box-shadow: var(--shadow-hover);
			text-decoration: none;
		}
		.service-card:hover::after { transform: scaleX(1); }
		.service-icon-wrap {
			width: 56px; height: 56px; flex-shrink: 0;
			background: var(--brand-bg);
			border-radius: 14px;
			display: flex; align-items: center; justify-content: center;
			transition: var(--transition);
		}
		.service-card:hover .service-icon-wrap {
			background: var(--brand);
		}
		.service-icon-wrap img { width: 28px; height: 28px; object-fit: contain; }
		.service-icon-wrap i {
			font-size: 1.3rem;
			color: var(--brand);
			transition: var(--transition);
		}
		.service-card:hover .service-icon-wrap i { color: #fff; }
		.service-card-body h4 {
			font-size: 1.05rem; font-weight: 800;
			color: var(--text-dark);
			margin-bottom: 6px;
			transition: var(--transition);
		}
		.service-card:hover .service-card-body h4 { color: var(--brand); }
		.service-card-body p {
			font-size: 0.88rem;
			color: var(--text-body);
			line-height: 1.55;
			margin: 0;
		}
		.service-card-arrow {
			margin-left: auto; flex-shrink: 0; align-self: center;
			width: 32px; height: 32px;
			border-radius: 50%;
			background: var(--brand-bg);
			display: flex; align-items: center; justify-content: center;
			color: var(--brand);
			font-size: 0.7rem;
			transition: var(--transition);
		}
		.service-card:hover .service-card-arrow {
			background: var(--brand);
			color: #fff;
			transform: translateX(3px);
		}

		/* ═══════════════════════════════════════════════
		   SECCIÓN: POR QUÉ ELEGIRNOS
		═══════════════════════════════════════════════ */
		.why-section {
			padding: 100px 0;
			background: transparent;
			position: relative;
			overflow: hidden;
		}
		.why-section::before {
			content: '';
			position: absolute;
			width: 500px; height: 500px;
			background: radial-gradient(circle, rgba(22,87,41,0.06) 0%, transparent 70%);
			right: -100px; top: -100px;
			pointer-events: none;
		}
		.section-title-main span { color: var(--brand); }
		.section-subtitle {
			font-size: 1rem;
			color: var(--text-body);
			line-height: 1.65;
			max-width: 480px;
		}
		.why-grid {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 16px;
			margin-top: 48px;
		}
		@media (max-width: 576px) { .why-grid { grid-template-columns: 1fr; } }
		.why-card {
			background: #fff;
			border-radius: var(--radius);
			padding: 28px 26px;
			box-shadow: var(--shadow-card);
			display: flex; gap: 16px; align-items: flex-start;
			border: 1px solid transparent;
			transition: var(--transition);
		}
		.why-card:hover {
			border-color: var(--border);
			box-shadow: var(--shadow-hover);
			transform: translateY(-3px);
		}
		.why-card-icon {
			width: 46px; height: 46px; flex-shrink: 0;
			background: var(--brand-bg);
			border-radius: 12px;
			display: flex; align-items: center; justify-content: center;
			color: var(--brand);
			font-size: 1.2rem;
		}
		.why-card h5 {
			font-size: 0.95rem; font-weight: 800;
			color: var(--text-dark);
			margin-bottom: 6px;
		}
		.why-card p {
			font-size: 0.85rem;
			color: var(--text-body);
			line-height: 1.55;
			margin: 0;
		}
		/* Visual derecho de la sección why */
		.why-visual {
			position: relative;
			display: flex; align-items: center; justify-content: center;
		}
		.why-visual-card {
			background: #fff;
			border-radius: var(--radius-lg);
			padding: 40px 36px;
			box-shadow: 0 24px 64px rgba(0,0,0,0.1);
			text-align: center;
			max-width: 340px;
			width: 100%;
			position: relative;
			z-index: 1;
		}
		.why-visual-card::before {
			content: '';
			position: absolute;
			inset: -3px;
			border-radius: calc(var(--radius-lg) + 3px);
			background: linear-gradient(135deg, var(--brand-light), var(--brand));
			z-index: -1;
			opacity: 0.25;
		}
		.why-big-num {
			font-size: 4.5rem; font-weight: 900;
			color: var(--brand);
			font-family: var(--font-heading);
			line-height: 1;
			margin-bottom: 8px;
		}
		.why-big-num span { font-size: 2rem; vertical-align: super; }
		.why-visual-label {
			font-size: 0.9rem;
			color: var(--text-body);
			font-weight: 600;
		}
		.why-visual-divider {
			width: 40px; height: 3px;
			background: var(--brand);
			border-radius: 2px;
			margin: 16px auto;
		}
		.why-member-count {
			font-size: 0.85rem;
			color: var(--text-muted);
		}
		.why-member-count strong { color: var(--brand); }
		/* Floating badges */
		.why-badge {
			position: absolute;
			background: #fff;
			border-radius: 100px;
			padding: 10px 18px;
			box-shadow: 0 8px 28px rgba(0,0,0,0.1);
			display: flex; align-items: center; gap: 8px;
			font-size: 0.8rem; font-weight: 700;
			color: var(--text-dark);
			z-index: 2;
		}
		.why-badge i { color: var(--brand); }
		.why-badge-1 { top: 10%; right: -20px; }
		.why-badge-2 { bottom: 15%; left: -24px; }
		@media (max-width: 991px) { .why-badge { display: none; } }

		/* ═══════════════════════════════════════════════
		   BANNER CTA
		═══════════════════════════════════════════════ */
		.cta-banner {
			background: linear-gradient(135deg, var(--brand) 0%, #1e7a38 60%, #0c3a1a 100%);
			padding: 80px 0;
			position: relative;
			overflow: hidden;
		}
		.cta-banner::before {
			content: '';
			position: absolute; inset: 0;
			background: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M0 0h40v40H0zm40 40h40v40H40z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
		}
		.cta-banner .cta-inner {
			position: relative; z-index: 1;
			display: flex; align-items: center;
			justify-content: space-between;
			gap: 32px; flex-wrap: wrap;
		}
		.cta-text h2 {
			font-size: clamp(1.6rem, 3vw, 2.4rem);
			font-weight: 900;
			color: #fff;
			margin-bottom: 8px;
			text-shadow: 0 2px 8px rgba(0,0,0,0.2);
		}
		.cta-text p {
			color: rgba(255,255,255,0.75);
			font-size: 1rem;
			margin: 0;
		}
		.btn-cta {
			display: inline-flex; align-items: center; gap: 10px;
			background: #fff;
			color: var(--brand);
			font-weight: 800; font-size: 0.95rem;
			padding: 16px 36px;
			border-radius: 100px;
			text-decoration: none;
			white-space: nowrap;
			transition: var(--transition);
			box-shadow: 0 8px 28px rgba(0,0,0,0.2);
			flex-shrink: 0;
		}
		.btn-cta:hover {
			background: var(--brand-light);
			color: #0c3a1a;
			transform: translateY(-2px);
			box-shadow: 0 14px 36px rgba(0,0,0,0.25);
			text-decoration: none;
		}

		/* ═══════════════════════════════════════════════
		   INSTITUCIONES ALIADAS
		═══════════════════════════════════════════════ */
		.partners-section {
			padding: 80px 0;
			background: transparent;
		}
		.partner-card {
			background: #fff;
			border: 1.5px solid var(--border);
			border-radius: var(--radius);
			padding: 32px 28px;
			text-align: center;
			transition: var(--transition);
			height: 100%;
			display: flex; flex-direction: column; align-items: center;
		}
		.partner-card:hover {
			border-color: var(--brand);
			box-shadow: var(--shadow-hover);
			transform: translateY(-4px);
		}
		.partner-card img {
			max-height: 72px;
			width: auto;
			max-width: 160px;
			object-fit: contain;
			margin: 0 auto 20px;
			filter: grayscale(20%);
			transition: filter 0.3s;
		}
		.partner-card:hover img { filter: grayscale(0%); }
		.partner-card h5 {
			font-size: 1rem; font-weight: 800;
			color: var(--text-dark); margin-bottom: 8px;
		}
		.partner-card p {
			font-size: 0.85rem; color: var(--text-body);
			line-height: 1.5; margin: 0;
		}
		.partner-tag {
			display: inline-block;
			margin-top: 14px;
			background: var(--brand-bg);
			color: var(--brand);
			font-size: 0.7rem; font-weight: 700;
			letter-spacing: 0.5px; text-transform: uppercase;
			padding: 4px 10px; border-radius: 100px;
		}

		/* ═══════════════════════════════════════════════
		   ANIMACIONES DE ENTRADA
		═══════════════════════════════════════════════ */
		.anim-fade-up.d1 { animation-delay: 0.1s; }
		.anim-fade-up.d2 { animation-delay: 0.25s; }
		.anim-fade-up.d3 { animation-delay: 0.4s; }
		.anim-fade-up.d4 { animation-delay: 0.55s; }
		.anim-fade-up.d5 { animation-delay: 0.7s; }

		/* ═══════════════════════════════════════════════
		   RESPONSIVE TWEAKS
		═══════════════════════════════════════════════ */
		@media (max-width: 991px) {
			.hero-stats { max-width: 100%; }
			.why-visual { margin-top: 48px; }
			.cta-inner { text-align: center; justify-content: center; }
		}
		@media (max-width: 576px) {
			.hero-content { padding: 80px 0 60px; }
			.hero-stat-val { font-size: 1.35rem; }
		}
		/* ─── WhatsApp ─── */
		.btn-whatsapp-fixed:hover { transform: scale(1.1); }
		.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

		/* ═══════════════════════════════════════════════
		   PAGE HERO (banner interno de la página)
		═══════════════════════════════════════════════ */
		.page-hero {
			background: linear-gradient(135deg, #0c3a1a 0%, var(--brand) 60%, var(--brand-mid) 100%);
			padding: 80px 0 72px;
			position: relative;
			overflow: hidden;
		}
		.page-hero::before {
			content: '';
			position: absolute; inset: 0;
			background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.025'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
		}
		.page-hero-deco {
			position: absolute;
			width: 420px; height: 420px;
			border-radius: 50%;
			border: 1px solid rgba(255,255,255,0.07);
			right: -80px; top: 50%; transform: translateY(-50%);
			pointer-events: none;
		}
		.page-hero-content { position: relative; z-index: 1; }
		.page-hero-eyebrow {
			display: inline-flex; align-items: center; gap: 8px;
			background: rgba(255,255,255,0.1);
			border: 1px solid rgba(255,255,255,0.18);
			color: rgba(255,255,255,0.85);
			font-size: 0.72rem; font-weight: 700;
			letter-spacing: 2px; text-transform: uppercase;
			padding: 5px 14px; border-radius: 100px;
			margin-bottom: 16px;
		}
		.page-hero-eyebrow i { color: var(--brand-light); }
		.page-hero h1 {
			font-family: var(--font-heading);
			font-size: clamp(2rem, 4vw, 3.2rem);
			font-weight: 900; color: #fff;
			line-height: 1.1; margin-bottom: 14px;
		}
		.page-hero h1 span { color: var(--brand-light); }
		.page-hero p {
			color: rgba(255,255,255,0.68);
			font-size: 1rem; max-width: 520px; margin: 0;
		}
		/* Breadcrumb nav */
		.page-breadcrumb {
			display: flex; align-items: center; gap: 8px;
			margin-top: 28px;
			flex-wrap: wrap;
		}
		.page-breadcrumb a, .page-breadcrumb span {
			font-size: 0.8rem; color: rgba(255,255,255,0.55);
			text-decoration: none; transition: color 0.2s;
		}
		.page-breadcrumb a:hover { color: rgba(255,255,255,0.9); }
		.page-breadcrumb .sep { color: rgba(255,255,255,0.3); }
		.page-breadcrumb .current { color: rgba(255,255,255,0.85); font-weight: 600; }
		/* Anchor nav */
		.page-anchor-nav {
			display: flex; gap: 6px; flex-wrap: wrap;
			margin-top: 24px;
		}
		.page-anchor-nav a {
			font-size: 0.78rem; font-weight: 700;
			color: rgba(255,255,255,0.7);
			background: rgba(255,255,255,0.08);
			border: 1px solid rgba(255,255,255,0.15);
			padding: 6px 14px; border-radius: 100px;
			text-decoration: none; transition: var(--transition);
		}
		.page-anchor-nav a:hover {
			background: rgba(255,255,255,0.18);
			color: #fff;
		}

		/* ═══════════════════════════════════════════════
		   UTILIDADES DE SECCIÓN
		═══════════════════════════════════════════════ */
		.section-eyebrow {
			display: inline-block;
			font-size: 0.7rem; font-weight: 800;
			letter-spacing: 3px; text-transform: uppercase;
			color: var(--brand);
			background: rgba(22,87,41,0.1);
			padding: 5px 14px; border-radius: 100px;
			margin-bottom: 12px;
		}
		.section-title-main span { color: var(--brand); }
		.section-divider {
			width: 48px; height: 4px;
			background: var(--brand); border-radius: 2px;
			margin: 0 0 24px;
		}
		.section-divider.centered { margin: 0 auto 24px; }

		/* ═══════════════════════════════════════════════
		   HISTORIA
		═══════════════════════════════════════════════ */
		.historia-section {
			padding: 96px 0;
			background: transparent;
		}
		.historia-image-wrap {
			position: relative;
		}
		.historia-image-wrap img {
			border-radius: var(--radius-lg);
			box-shadow: 0 24px 60px rgba(0,0,0,0.12);
			width: 100%;
			object-fit: cover;
		}
		/* Badge flotante sobre la imagen */
		.historia-badge {
			position: absolute;
			bottom: -20px; left: 28px;
			background: #fff;
			border-radius: var(--radius);
			padding: 16px 22px;
			box-shadow: 0 12px 36px rgba(0,0,0,0.12);
			display: flex; align-items: center; gap: 14px;
			border-left: 4px solid var(--brand);
			min-width: 220px;
		}
		.historia-badge-icon {
			width: 42px; height: 42px; flex-shrink: 0;
			background: var(--brand-bg);
			border-radius: 10px;
			display: flex; align-items: center; justify-content: center;
			color: var(--brand); font-size: 1.1rem;
		}
		.historia-badge-text strong {
			display: block; font-size: 1.2rem;
			font-weight: 900; color: var(--brand);
			font-family: var(--font-heading);
		}
		.historia-badge-text span {
			font-size: 0.75rem; color: var(--text-muted);
			font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;
		}
		/* Cita destacada */
		.historia-quote {
			position: relative;
			background: var(--brand-bg);
			border-radius: var(--radius);
			padding: 28px 32px 28px 40px;
			margin: 28px 0;
			border-left: 4px solid var(--brand);
		}
		.historia-quote::before {
			content: '\201C';
			position: absolute;
			top: -8px; left: 14px;
			font-size: 5rem; line-height: 1;
			color: var(--brand); opacity: 0.2;
			font-family: Georgia, serif;
			pointer-events: none;
		}
		.historia-quote p {
			font-style: italic;
			font-size: 1rem;
			color: var(--text-dark);
			line-height: 1.7;
			margin: 0;
		}
		.historia-lead {
			font-size: 1.05rem; font-weight: 600;
			color: var(--text-dark); line-height: 1.65;
			margin-bottom: 18px;
		}

		/* ═══════════════════════════════════════════════
		   IDENTIDAD (Misión, Visión, Valores)
		═══════════════════════════════════════════════ */
		.identidad-section {
			padding: 96px 0;
			background: transparent;
			position: relative; overflow: hidden;
		}
		.identidad-section::before {
			content: '';
			position: absolute;
			width: 600px; height: 600px;
			background: radial-gradient(circle, rgba(22,87,41,0.05) 0%, transparent 70%);
			right: -150px; bottom: -150px;
			pointer-events: none;
		}
		.identity-card {
			background: #fff;
			border-radius: var(--radius-lg);
			padding: 36px 32px;
			height: 100%;
			box-shadow: var(--shadow-card);
			border: 1.5px solid transparent;
			transition: var(--transition);
			position: relative; overflow: hidden;
		}
		.identity-card::before {
			content: '';
			position: absolute;
			top: 0; left: 0; right: 0;
			height: 4px;
			background: linear-gradient(90deg, var(--brand), var(--brand-light));
			border-radius: var(--radius-lg) var(--radius-lg) 0 0;
		}
		.identity-card:hover {
			border-color: var(--border);
			box-shadow: var(--shadow-hover);
			transform: translateY(-4px);
		}
		.identity-icon {
			width: 56px; height: 56px;
			background: var(--brand-bg);
			border-radius: 14px;
			display: flex; align-items: center; justify-content: center;
			color: var(--brand); font-size: 1.4rem;
			margin-bottom: 20px;
		}
		.identity-card h4 {
			font-size: 1.1rem; font-weight: 900;
			color: var(--text-dark); margin-bottom: 12px;
			font-family: var(--font-heading);
		}
		.identity-card p {
			font-size: 0.92rem; color: var(--text-body);
			line-height: 1.7; margin: 0;
		}
		/* Badges de valores */
		.values-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
		.value-badge {
			background: var(--brand-bg);
			color: var(--brand);
			font-size: 0.75rem; font-weight: 700;
			padding: 5px 12px; border-radius: 100px;
			border: 1px solid rgba(22,87,41,0.2);
			letter-spacing: 0.3px;
			transition: var(--transition);
		}
		.value-badge:hover {
			background: var(--brand); color: #fff;
		}

		/* ═══════════════════════════════════════════════
		   AUTORIDADES / DIRECTIVOS
		═══════════════════════════════════════════════ */
		.directivos-section {
			padding: 100px 0;
			background: transparent;
		}
		.board-group {
			background: #fff;
			border: 1.5px solid var(--border);
			border-radius: var(--radius-lg);
			padding: 36px 32px;
			height: 100%;
			box-shadow: var(--shadow-card);
			transition: var(--transition);
		}
		.board-group:hover { box-shadow: var(--shadow-hover); }
		.board-title {
			display: flex; align-items: center; gap: 12px;
			font-size: 1rem; font-weight: 900;
			color: var(--brand);
			text-transform: uppercase; letter-spacing: 0.5px;
			padding-bottom: 18px;
			border-bottom: 2px solid var(--brand-bg);
			margin-bottom: 24px;
		}
		.board-title-icon {
			width: 38px; height: 38px; flex-shrink: 0;
			background: var(--brand-bg);
			border-radius: 10px;
			display: flex; align-items: center; justify-content: center;
			color: var(--brand); font-size: 1rem;
		}
		.authority-card {
			display: flex; align-items: center; gap: 16px;
			padding: 14px 0;
			border-bottom: 1px solid var(--brand-bg);
			transition: var(--transition);
		}
		.authority-card:last-child { border-bottom: none; padding-bottom: 0; }
		.authority-card:hover { padding-left: 6px; }
		.member-img {
			flex-shrink: 0;
			width: 62px; height: 62px;
			border-radius: 50%;
			overflow: hidden;
			border: 3px solid var(--brand-bg);
			transition: border-color 0.2s;
		}
		.authority-card:hover .member-img { border-color: var(--brand); }
		.member-img img {
			width: 100%; height: 100%;
			object-fit: cover; object-position: top;
		}
		.authority-info { flex: 1; }
		.authority-role {
			display: inline-block;
			font-size: 0.68rem; font-weight: 800;
			text-transform: uppercase; letter-spacing: 1px;
			color: var(--brand);
			background: var(--brand-bg);
			padding: 2px 8px; border-radius: 100px;
			margin-bottom: 5px;
		}
		.authority-name {
			font-size: 0.92rem; font-weight: 700;
			color: var(--text-dark); margin: 0;
			line-height: 1.3;
		}

		/* ═══════════════════════════════════════════════
		   ESTATUTO SOCIAL
		═══════════════════════════════════════════════ */
		.estatuto-section {
			padding: 96px 0;
			background: transparent;
		}
		.statute-box {
			background: #fff;
			border-radius: var(--radius-lg);
			padding: 56px 48px;
			text-align: center;
			box-shadow: 0 24px 64px rgba(0,0,0,0.08);
			border: 1.5px solid var(--border);
			max-width: 620px;
			margin: 0 auto;
			position: relative; overflow: hidden;
		}
		.statute-box::before {
			content: '';
			position: absolute; top: 0; left: 0; right: 0;
			height: 5px;
			background: linear-gradient(90deg, var(--brand), var(--brand-light));
		}
		.statute-pdf-icon {
			width: 80px; height: 80px;
			background: #fff5f5;
			border: 2px solid #fecaca;
			border-radius: 20px;
			display: flex; align-items: center; justify-content: center;
			margin: 0 auto 24px;
			font-size: 2.2rem; color: #dc2626;
			box-shadow: 0 6px 20px rgba(220,38,38,0.12);
		}
		.statute-box h3 {
			font-size: 1.35rem; font-weight: 900;
			color: var(--text-dark); margin-bottom: 14px;
		}
		.statute-box p {
			color: var(--text-body); font-size: 0.94rem;
			line-height: 1.65; margin-bottom: 32px;
		}
		.btn-download {
			display: inline-flex; align-items: center; gap: 10px;
			background: var(--brand); color: #fff;
			font-weight: 800; font-size: 0.92rem;
			padding: 15px 36px; border-radius: 100px;
			text-decoration: none;
			transition: var(--transition);
			box-shadow: 0 6px 20px var(--brand-shadow);
			letter-spacing: 0.3px;
		}
		.btn-download:hover {
			background: var(--brand-mid); color: #fff;
			transform: translateY(-2px);
			box-shadow: 0 12px 28px var(--brand-shadow);
			text-decoration: none;
		}
		.statute-meta {
			display: flex; justify-content: center;
			gap: 24px; flex-wrap: wrap;
			margin-top: 24px; padding-top: 20px;
			border-top: 1px solid var(--brand-bg);
		}
		.statute-meta-item {
			display: flex; align-items: center; gap: 6px;
			font-size: 0.78rem; color: var(--text-muted);
		}
		.statute-meta-item i { color: var(--brand); }

		/* ═══════════════════════════════════════════════
		   ANIMACIONES
		═══════════════════════════════════════════════ */
		@keyframes fadeUp {
			from { opacity: 0; transform: translateY(24px); }
			to   { opacity: 1; transform: translateY(0); }
		}
		.d1 { animation-delay: 0.1s; } .d2 { animation-delay: 0.25s; }
		.d3 { animation-delay: 0.4s; } .d4 { animation-delay: 0.55s; }

		@media (max-width: 991px) {
			.historia-badge { position: static; margin-top: 20px; border-left: 4px solid var(--brand); }
			.historia-image-wrap { margin-bottom: 16px; }
		}
		@media (max-width: 768px) {
			.page-hero { padding: 60px 0 54px; }
			.statute-box { padding: 36px 24px; }
		}
    /* ─── Botón WhatsApp (movido de inline a clase) ─── */
			.btn-whatsapp-fixed {
				position: fixed;
				width: 60px;
				height: 60px;
				bottom: 40px;
				right: 40px;
				background-color: var(--brand-light);
				color: #fff;
				border-radius: 50%;
				font-size: 28px;
				box-shadow: 2px 4px 12px rgba(0,0,0,0.25);
				z-index: 9999;
				display: flex;
				align-items: center;
				justify-content: center;
				text-decoration: none;
				transition: transform 0.2s, box-shadow 0.2s;
			}
			.btn-whatsapp-fixed:hover {
				transform: scale(1.1);
				box-shadow: 4px 6px 18px rgba(0,0,0,0.3);
			}

			/* ─── Contenedor principal del formulario ─── */
			.form-container-box {
				background: #fff;
				border-radius: 16px;
				box-shadow: 0 8px 40px rgba(0,0,0,0.07);
				padding: 50px 48px;
				margin-bottom: 60px;
				border: 1px solid #e8efe9;
			}
			@media (max-width: 768px) {
				.form-container-box { padding: 28px 18px; }
			}

			/* ─── Cabecera del formulario ─── */
			.form-header {
				text-align: center;
				margin-bottom: 44px;
				padding-bottom: 28px;
				border-bottom: 3px solid var(--brand-bg);
				position: relative;
			}
			.form-header::after {
				content: '';
				display: block;
				width: 60px;
				height: 4px;
				background: var(--brand);
				border-radius: 4px;
				margin: 0 auto;
				position: absolute;
				bottom: -3px;
				left: 50%;
				transform: translateX(-50%);
			}
			.form-header h2 {
				color: var(--brand);
				font-weight: 800;
				font-size: 2rem;
				margin-bottom: 8px;
				letter-spacing: 0.5px;
			}
			.form-header p {
				color: var(--text-muted);
				font-size: 0.95rem;
				margin: 0;
			}

			/* ─── Títulos de sección ─── */
			.form-section-title .section-num {
				background: var(--brand);
				color: #fff;
				width: 26px;
				height: 26px;
				border-radius: 50%;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				font-size: 0.78rem;
				flex-shrink: 0;
			}

			/* ─── Labels ─── */
			.form-group-field label,
			.form-group-field .form-label {
				display: block;
				font-size: 0.82rem;
				font-weight: 700;
				color: var(--label-color);
				text-transform: uppercase;
				letter-spacing: 0.4px;
				margin-bottom: 6px;
			}
			.required-star { color: #d93025; margin-left: 2px; }

			/* ─── Campos de formulario ─── */
			.form-group-field {
				margin-bottom: 20px;
			}
			.form-group-field input[type="text"],
			.form-group-field input[type="email"],
			.form-group-field input[type="tel"],
			.form-group-field input[type="number"],
			.form-group-field input[type="date"],
			.form-group-field select,
			.form-group-field textarea,
			.form-group-field .form-control,
			.form-group-field .form-select {
				width: 100%;
				padding: 11px 14px;
				border: 1.5px solid var(--input-border);
				border-radius: var(--radius-sm);
				font-size: 0.95rem;
				color: #333;
				background-color: #fdfdfd;
				transition: border-color 0.2s, box-shadow 0.2s;
				outline: none;
				appearance: auto;
			}
			.form-group-field input:focus,
			.form-group-field select:focus,
			.form-group-field textarea:focus,
			.form-group-field .form-control:focus,
			.form-group-field .form-select:focus {
				border-color: var(--brand);
				box-shadow: 0 0 0 3px var(--brand-shadow);
				background-color: #fff;
			}

			/* ─── Input de archivo ─── */
			.form-group-field input[type="file"] {
				padding: 8px 12px;
				font-size: 0.88rem;
				background: #fafafa;
			}

			/* ─── Radios y checkboxes ─── */
			.form-check-input:checked {
				background-color: var(--brand);
				border-color: var(--brand);
			}
			.form-check-input:focus {
				box-shadow: 0 0 0 3px var(--brand-shadow);
				border-color: var(--brand);
			}
			.radio-group, .check-group {
				display: flex;
				flex-wrap: wrap;
				gap: 12px 20px;
				margin-top: 8px;
			}
			.radio-group .form-check,
			.check-group .form-check {
				margin: 0;
				padding: 8px 14px;
				border: 1.5px solid var(--input-border);
				border-radius: 20px;
				background: #fafafa;
				cursor: pointer;
				transition: border-color 0.2s, background 0.2s;
			}
			.radio-group .form-check:has(input:checked),
			.check-group .form-check:has(input:checked) {
				border-color: var(--brand);
				background: var(--brand-bg);
			}
			.radio-group .form-check label,
			.check-group .form-check label {
				font-size: 0.88rem;
				font-weight: 600;
				cursor: pointer;
				text-transform: none;
				letter-spacing: 0;
				margin: 0;
			}

			/* ─── Tablas dentro del formulario ─── */
			.table thead th {
				background-color: var(--brand-bg);
				color: var(--brand);
				font-size: 0.78rem;
				font-weight: 700;
				text-transform: uppercase;
				letter-spacing: 0.4px;
				border-color: #c8dcc9;
				vertical-align: middle;
			}
			.table tbody tr:hover { background-color: #fbfdfb; }
			.table .form-control-sm {
				font-size: 0.88rem;
				border-radius: 4px;
				border-color: var(--input-border);
			}
			.table .form-control-sm:focus {
				border-color: var(--brand);
				box-shadow: 0 0 0 2px var(--brand-shadow);
			}

			/* ─── Alertas personalizadas ─── */
			.alert-info-form {
				font-size: 0.85rem;
				padding: 12px 16px;
				border-left: 4px solid var(--brand);
				background-color: var(--brand-bg);
				color: #2d5a3a;
				border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
				margin-top: 10px;
			}
			.alert-warning-form {
				font-size: 0.85rem;
				padding: 14px 18px;
				border-left: 4px solid #f0a500;
				background-color: #fffbf0;
				color: #6d4c00;
				border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
				margin-top: 16px;
			}

			/* ─── Bloque de texto legal ─── */
			.legal-text-box {
				background-color: #f8f9fa;
				border-radius: var(--radius-sm);
				padding: 20px 24px;
				font-size: 0.84rem;
				line-height: 1.65;
				color: #444;
				text-align: justify;
				border: 1px solid #e5e5e5;
			}
			.legal-text-box p:last-child { margin-bottom: 0; }

			/* ─── Checkbox de aceptación ─── */
			.accept-check-wrapper {
				margin-top: 20px;
				padding: 16px 20px;
				border: 1.5px solid var(--input-border);
				border-radius: var(--radius-sm);
				background: #fafafa;
				display: flex;
				align-items: flex-start;
				gap: 12px;
			}
			.accept-check-wrapper input[type="checkbox"] {
				width: 18px;
				height: 18px;
				flex-shrink: 0;
				margin-top: 2px;
				cursor: pointer;
			}
			.accept-check-wrapper label {
				font-size: 0.88rem;
				font-weight: 600;
				color: #333;
				cursor: pointer;
				margin: 0;
			}

			/* ─── Botón enviar ─── */
			.button-wrapper {
				text-align: center;
				margin-top: 40px;
				padding-top: 32px;
				border-top: 2px solid var(--brand-bg);
			}
			.btn-submit {
				display: inline-flex;
				align-items: center;
				gap: 10px;
				padding: 15px 48px;
				background: var(--brand);
				color: #fff;
				font-size: 1rem;
				font-weight: 800;
				text-transform: uppercase;
				letter-spacing: 1px;
				border: 2px solid var(--brand);
				border-radius: 50px;
				cursor: pointer;
				transition: all 0.3s ease;
				box-shadow: 0 6px 20px var(--brand-shadow);
			}
			.btn-submit:hover {
				background: #fff;
				color: var(--brand);
				transform: translateY(-2px);
				box-shadow: 0 10px 28px var(--brand-shadow);
			}
			.btn-submit i { font-size: 1.1rem; }

			/* ─── Logo del nav sin inline style ─── */
			/* ─── Tabla de hijos responsive ─── */
			#contenedor_tabla_hijos {
				margin-top: 12px;
			}

			/* ─── Separador entre subsecciones ─── */
			.subsection-label {
				font-size: 0.8rem;
				font-weight: 700;
				text-transform: uppercase;
				color: var(--text-muted);
				letter-spacing: 0.5px;
				margin-bottom: 12px;
				margin-top: 4px;
			}

      /* ============================================================
   SECCIÓN PROMOCIONES — Agregar a style.css
   ============================================================ */

/* --- Variables de color (usá las tuyas si ya las tenés) --- */
:root {
    --promo-green:      #2d8c4e;   /* verde Porvenir */
    --promo-green-dark: #1e6338;
    --promo-green-soft: #e8f5ed;
    --promo-accent:     #f5a623;   /* ámbar para los porcentajes */
    --promo-text:       #1a2e1f;
    --promo-muted:      #5a6e60;
    --promo-card-bg:    #ffffff;
    --promo-radius:     18px;
    --promo-shadow:     0 8px 32px rgba(45, 140, 78, 0.12);
    --promo-shadow-hover: 0 20px 48px rgba(45, 140, 78, 0.22);
}

/* --- Sección general --- */
.promo-section {
    padding: 90px 0 80px;
    background: linear-gradient(160deg, #f0f9f3 0%, #ffffff 60%, #f0f9f3 100%);
    position: relative;
    overflow: hidden;
}

/* Detalle decorativo de fondo */
.promo-section::before {
    content: '';
    position: absolute;
    top: -120px;
    right: -120px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(45, 140, 78, 0.08) 0%, transparent 70%);
    pointer-events: none;
}

/* --- Encabezado --- */
.promo-header {
    margin-bottom: 56px;
}

.promo-badge {
    display: inline-block;
    background: var(--promo-green-soft);
    color: var(--promo-green);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 6px 18px;
    border-radius: 50px;
    margin-bottom: 16px;
    border: 1.5px solid rgba(45, 140, 78, 0.25);
}

.promo-title {
    font-size: 2.4rem;
    font-weight: 800;
    color: var(--promo-text);
    margin-bottom: 14px;
    line-height: 1.2;
}

.promo-subtitle {
    font-size: 1.05rem;
    color: var(--promo-muted);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

/* --- Tarjeta --- */
.promo-card {
    background: var(--promo-card-bg);
    border-radius: var(--promo-radius);
    box-shadow: var(--promo-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1.5px solid rgba(45, 140, 78, 0.1);
}

.promo-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--promo-shadow-hover);
}

/* Imagen */
.promo-card__img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;       /* Proporción fija para todas las imágenes */
    overflow: hidden;
    background: #e8ede9;
}

.promo-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;          /* Rellena sin distorsionar */
    object-position: center top;
    display: block;
    transition: transform 0.4s ease;
}

.promo-card:hover .promo-card__img {
    transform: scale(1.04);
}

/* Overlay con tag */
.promo-card__overlay {
    position: absolute;
    top: 14px;
    left: 14px;
}

.promo-card__tag {
    display: inline-block;
    background: var(--promo-green);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 50px;
}

/* Cuerpo de la tarjeta */
.promo-card__body {
    padding: 24px 28px 28px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.promo-card__name {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--promo-text);
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--promo-green-soft);
}

/* Lista de beneficios */
.promo-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.promo-card__list li {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 0.93rem;
    color: var(--promo-muted);
    line-height: 1.45;
}

/* Ícono de check cuando no hay porcentaje */
.promo-card__list li .fa-check {
    color: var(--promo-green);
    font-size: 0.8rem;
    flex-shrink: 0;
    margin-top: 2px;
}

/* Porcentaje destacado */
.promo-pct {
    display: inline-block;
    background: var(--promo-accent);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    padding: 2px 9px;
    border-radius: 6px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* --- Aviso de requisito --- */
.promo-requirement {
    margin-top: 56px;
    padding: 22px 32px;
    background: var(--promo-green-soft);
    border-radius: 14px;
    border-left: 4px solid var(--promo-green);
    display: inline-flex;
    align-items: center;
    gap: 14px;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}

.promo-requirement__icon {
    font-size: 1.5rem;
    color: var(--promo-green);
    flex-shrink: 0;
}

.promo-requirement__text {
    font-size: 0.95rem;
    color: var(--promo-muted);
    margin: 0;
    text-align: left;
}

.promo-requirement__text strong {
    color: var(--promo-green-dark);
}

/* --- Responsive --- */
@media (max-width: 991px) {
    .promo-title {
        font-size: 2rem;
    }
    .promo-card__img-wrap {
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 767px) {
    .promo-section {
        padding: 60px 0 50px;
    }
    .promo-title {
        font-size: 1.7rem;
    }
    .promo-requirement {
        flex-direction: column;
        text-align: center;
        padding: 20px 22px;
    }
    .promo-requirement__text {
        text-align: center;
    }
}