@charset "UTF-8";
/*
============================================================
 GTA FRONTEND SCSS
 Archivo fuente principal de estilos
 El CSS final para navegador se sirve desde estilos.css
============================================================

INDICE
01. Configuracion
02. Tokens
03. Base / Reset
04. Layout global
05. Tipografia global
06. Componentes globales
07. Header global
08. Footer global
09. Home
10. Estructura reservada para otras paginas
11. Responsive
*/
/* ============================================================
   01. CONFIGURACIÓN & VARIABLES (TOKENS)
   ============================================================ */
/* Breakpoints */
/* Fuentes corporativas */
@font-face {
  font-family: "Along Sans S2 bold";
  src: url(../tipografias/AlongSansS2/AlongSanss2-Bold.otf) format("opentype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: "Along Sans S2";
  src: url(../tipografias/AlongSansS2/AlongSanss2-Regular.otf) format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root {
  /* Colores de marca */
  --brand-green: #74b72e;
  --brand-green-dark: #4e7f11;
  --brand-green-light: #9ed25a;
  /* Colores de texto e interfaz */
  --ink: #3c3c3b;
  --ink-soft: #4f4f4f;
  --white: #ffffff;
  --muted-gray: #bdbdbd;
  /* Fondos y superficies */
  --bg: #f7f6f5;
  --marron: #f3f0ec;
  --card: #efeeec;
  --hover-light: #f0f0f0;
  /* Bordes y Separadores */
  --border-light: #f2f2f2;
  --border-mid: #dfdfdf;
  --separator: #ececec;
  /* Radios */
  --radius-xl: 28px;
  --radius-lg: 20px;
  --radius-md: 14px;
  --radius-full: 999px;
  /* Layout */
  --max-width: 1600px;
  --bs-gutter-x: 1.5rem;
  /* Bootstrap Overrides */
  --bs-nav-link-color: #74b72e;
  --bs-nav-link-hover-color: #9ed25a !important;
}

/* ============================================================
   02. MIXINS
   ============================================================ */
/* ============================================================
   03. BASE / RESET
   ============================================================ */
* {
  box-sizing: border-box;
}

html {
  font-size: 18px;
  height: 100%;
}

body {
  margin: 0;
  font-family: "Open Sans", sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.45;
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0, "clig" 0;
  height: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-family: "Along Sans S2", sans-serif;
  line-height: 1.1;
  text-transform: uppercase;
  font-weight: 700;
}

p {
  margin: 0 0 15px 0;
  line-height: 20px;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color 180ms ease;
}

b,
strong {
  font-weight: 700 !important;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

.arrow-icon-left {
  transform: scaleX(-1);
  margin-right: 3px;
  height: 28px;
  width: auto !important;
  display: block;
}

.arrow-icon-right {
  margin-left: 3px;
  height: 28px;
  width: auto !important;
  display: block;
}

.tituloSeccion {
  color: var(--ink);
  font-family: "Along Sans S2", sans-serif;
  margin-bottom: 20px;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 2.1rem;
}

.texto {
  font-size: 14px;
  line-height: 1.4;
  color: var(--ink);
}

.textoGrande {
  font-size: 16px;
  line-height: 1.4;
  color: var(--ink);
}

.btn {
  padding: 15px 20px !important;
}

/* ============================================================
   04. LAYOUT & TIPOGRAFÍA GLOBAL
   ============================================================ */
#primary-menu .nav .nav-item .nav-link:focus {
  color: #4e7f11 !important;
}

#cabecera {
  padding: 60px 0;
}
#cabecera h1 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 80px;
  text-align: left;
  color: var(--brand-green);
  font-weight: 600;
}
@media (min-width: 992px) {
  #cabecera h1 {
    max-width: 75% !important;
  }
}
#cabecera h2 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 24px;
  color: var(--ink);
  margin-top: 5px;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 40px;
}
#cabecera p {
  font-size: 14px;
}

.section-space {
  padding: 80px 0;
}
@media (max-width: 1024px) {
  .section-space {
    padding: 60px 0;
  }
}
@media (max-width: 680px) {
  .section-space {
    padding: 40px 0;
  }
}

.section-muted {
  background: var(--bg);
}

.container {
  max-width: var(--max-width);
}

.cabeceraSeccion {
  margin-bottom: 60px;
  width: 100%;
  max-width: 800px;
}
.cabeceraSeccion.cabeceraSeccionCentro {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.cabeceraSeccion .cabeceraSeccionTitulo {
  color: var(--ink);
  margin-bottom: 20px;
  font-size: clamp(1.5rem, 4vw, 2.1rem);
}
.cabeceraSeccion .cabeceraSeccionDescripcion {
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.6;
}
.cabeceraSeccion .cabeceraSeccionDescripcion p {
  margin-bottom: 10px;
}

.margenSeccion {
  margin-bottom: 80px;
}
@media (max-width: 680px) {
  .margenSeccion {
    margin-bottom: 40px;
  }
}

.bg-marron {
  background: var(--marron);
}

.radius-lg {
  border-radius: var(--radius-lg);
}

.btn-brand {
  background: var(--brand-green);
  color: white !important;
  border: none;
  font-weight: 600;
  transition: all 0.3s ease;
  padding: 12px 30px;
}
.btn-brand:hover {
  background: var(--brand-green-light);
  color: white !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.radius-40 {
  border-radius: 50px;
}

.title-section {
  font-family: "Along Sans S2", sans-serif;
  font-size: clamp(1.45rem, 2.8vw, 2.4rem);
  line-height: 1.1;
  text-transform: uppercase;
}

.text-brand-green {
  color: var(--brand-green) !important;
}

.ps-0 {
  padding-left: 0 !important;
}

/* ============================================================
   06. COMPONENTES GLOBALES
   ============================================================ */
/* Botones */
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  min-height: 42px;
  padding: 0 20px;
  border-radius: var(--radius-full);
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.86rem;
  cursor: pointer;
  transition: transform opacity background-color 180ms ease;
}
.btn:hover {
  transform: translateY(-1px);
}
.btn-primary {
  background: var(--brand-green);
  color: var(--white);
}
.btn-primary:hover {
  background-color: var(--brand-green-light) !important;
  color: var(--white) !important;
}

.btn-light {
  background: var(--white);
  color: var(--brand-green);
  border: 1px solid var(--white);
}
.btn-light:hover {
  background: var(--brand-green);
  color: var(--white);
  border-color: var(--white);
}

.btn-outline-light {
  border: 1px solid var(--white);
  color: var(--white);
}

/* Grids reutilizables */
.card-grid {
  margin-top: 28px;
  display: grid;
  gap: 18px;
}
.card-grid.card-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1024px) {
  .card-grid.card-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .card-grid.card-grid-3 {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   07. HEADER GLOBAL
   ============================================================ */
.site-header {
  position: fixed; /* Cambiado de sticky a fixed para que flote de forma absoluta sobre el body */
  top: 0;
  left: 0;
  width: 100%; /* Obligatorio con fixed para que ocupe todo el ancho de la pantalla */
  z-index: 9999 !important; /* Subimos el z-index para asegurar que ninguna sección de la noticia lo tape */
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 90px;
  padding: 0 24px;
  font-family: "Along Sans S2", sans-serif;
}
@media (max-width: 1024px) {
  .site-header {
    min-height: 66px;
    padding: 0 12px;
  }
}

.site-header + * {
  margin-top: 90px; /* La altura exacta de tu menú en escritorio */
}

/* Y controlamos el salto también en el diseño de tablets/móviles */
@media (max-width: 768px) {
  .site-header + * {
    margin-top: 66px; /* La altura de tu menú en móvil (min-height: 66px) */
  }
}
.brand {
  max-width: 180px;
}
@media (max-width: 680px) {
  .brand {
    max-width: 96px;
  }
}

@media (max-width: 1024px) {
  .main-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 66px;
    background: var(--white);
    border-bottom: 1px solid var(--separator);
    padding: 14px 24px 18px;
    display: none;
  }
  .main-nav.is-open {
    display: block;
  }
}
.main-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: clamp(2px, 0.5vw, 8px);
  font-size: 16px;
  letter-spacing: normal;
  color: var(--ink);
}
@media (max-width: 1024px) {
  .main-nav ul {
    flex-direction: column;
    gap: 16px;
  }
}
.main-nav a {
  transition: color 180ms ease;
  color: var(--ink);
  white-space: nowrap;
  padding: 4px 8px !important;
  /* Anulamos el padding excesivo por defecto de Bootstrap (.nav-link) */
}
.main-nav a:hover {
  color: var(--brand-green);
}

.menu-toggle {
  display: none;
}
@media (max-width: 1024px) {
  .menu-toggle {
    display: inline-flex;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid var(--border-mid);
    border-radius: var(--radius-full);
    background: var(--white);
  }
}

.header-cta {
  white-space: nowrap;
}
@media (max-width: 1024px) {
  .header-cta {
    display: none;
  }
}

/* ============================================================
   08. FOOTER GLOBAL
   ============================================================ */
#pie-cta {
  background: var(--brand-green);
  color: var(--white);
  text-align: center;
  padding: 40px 0;
}
#pie-cta h2 {
  color: var(--white);
}
#pie-cta p {
  margin-bottom: 10px;
}
#pie-cta .texto {
  width: 100%;
}
@media (min-width: 1024px) {
  #pie-cta .texto {
    max-width: 60%;
  }
}
#pie-cta .btn {
  width: auto;
  display: inline-flex;
}
@media (max-width: 680px) {
  #pie-cta .btn {
    margin-bottom: 10px;
  }
}

.site-footer {
  padding: 120px 0px 120px;
  background: var(--marron);
  font-size: 14px;
}
.site-footer .copyright-footer {
  margin-top: 20px;
  font-size: 10px;
  color: var(--ink-soft);
}

.footer-brand p {
  margin-top: 12px;
  color: var(--ink-soft);
  line-height: 1.6;
}

.footer-nav a {
  display: block;
  margin-bottom: 18px;
  font-family: "Along Sans S2", sans-serif;
  font-weight: 600;
}
.footer-nav a:hover {
  color: var(--brand-green);
}

.footer-info .pie-titulo {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 15px;
  text-transform: uppercase;
}
.footer-info ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.footer-info ul li {
  display: flex;
  align-items: center;
}
.footer-info ul li a {
  font-size: 12px;
  padding: 0 8px;
}
.footer-info ul li:not(:last-child) a::after {
  content: "|";
  color: var(--muted-gray);
  margin-left: 8px;
}

.footer-contact {
  font-family: "Along Sans S2", sans-serif;
}
.footer-contact i {
  color: var(--brand-green);
  margin-right: 8px;
}
.footer-contact a {
  display: block;
  margin-bottom: 5px;
}
.footer-contact .fw-bold {
  font-family: "Along Sans S2 Bold", sans-serif;
}
.footer-contact .social-icon-btn {
  width: 44px;
  height: 44px;
  background: var(--white);
  color: var(--brand-green);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.3s ease;
  margin-bottom: 0;
}
.footer-contact .social-icon-btn i {
  margin-right: 0;
  font-size: 18px;
  color: var(--brand-green);
  transition: all 0.3s ease;
}
.footer-contact .social-icon-btn:hover {
  background: var(--brand-green);
  transform: translateY(-2px);
}
.footer-contact .social-icon-btn:hover i {
  color: var(--white);
}

/* ============================================================
   09. HOME
============================================================ */
/* HOME - Hero */
#inicio-hero {
  position: relative;
  margin-bottom: 40px;
  padding-left: 25px;
}
#inicio-hero .hero-carousel-contenedor {
  position: relative;
  margin-bottom: 20px;
}
#inicio-hero .hero-carousel-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: 10px;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
#inicio-hero .hero-carousel-track::-webkit-scrollbar {
  display: none;
}
#inicio-hero .hero-carousel-slide {
  flex: 0 0 85%;
  height: calc(100dvh - 220px);
  scroll-snap-align: start;
  flex-shrink: 0;
}
@media (max-width: 1600px) {
  #inicio-hero .hero-carousel-slide {
    flex: 0 0 90%;
  }
}
@media (max-width: 991px) {
  #inicio-hero .hero-carousel-slide {
    height: calc(100dvh - 180px);
  }
}
#inicio-hero .hero-carousel-slide .slide-inner {
  height: 100%;
  border-radius: 50px;
  background-color: var(--marron);
}
#inicio-hero .hero-carousel-slide .slide-inner img {
  transition: transform 0.8s ease;
}
#inicio-hero .hero-carousel-slide .slide-overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.2) 50%, transparent 100%);
  z-index: 1;
}
#inicio-hero .hero-carousel-slide .slide-content {
  z-index: 2;
  padding: 50px 60px !important;
}
@media (max-width: 680px) {
  #inicio-hero .hero-carousel-slide .slide-content {
    padding: 30px !important;
  }
}
#inicio-hero .hero-carousel-slide .hero-titulo {
  font-family: "Along Sans S2 bold", sans-serif;
  font-size: clamp(1.8rem, 5vw, 3.5rem);
  line-height: 1.1;
  text-transform: uppercase;
  max-width: 900px;
}
#inicio-hero .hero-carousel-slide .hero-subtitulo {
  font-family: "Along Sans S2", sans-serif;
  font-size: 1.2rem;
  opacity: 0.9;
  max-width: 700px;
}
#inicio-hero .hero-controles-modernos {
  position: relative;
  z-index: 5;
  padding-top: 10px;
}
#inicio-hero .hero-controles-modernos .btn-hero-nav {
  width: 55px;
  height: 55px;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
  color: white;
}
#inicio-hero .hero-controles-modernos .btn-hero-nav i {
  font-size: 20px;
}
#inicio-hero .hero-controles-modernos .btn-hero-nav img {
  height: 28px;
  width: auto;
  display: block;
}
#inicio-hero .hero-controles-modernos .btn-hero-nav.prev img {
  transform: scaleX(-1);
  margin-right: 3px;
}
#inicio-hero .hero-controles-modernos .btn-hero-nav.next img {
  margin-left: 3px;
}
#inicio-hero .hero-controles-modernos .btn-hero-nav.prev, #inicio-hero .hero-controles-modernos .btn-hero-nav.next {
  background: var(--brand-green);
  color: white;
}
#inicio-hero .hero-controles-modernos .btn-hero-nav.prev:hover, #inicio-hero .hero-controles-modernos .btn-hero-nav.next:hover {
  background: var(--brand-green-light);
  transform: translateY(-2px);
}
#inicio-hero .hero-controles-modernos .btn-hero-nav.prev.disabled, #inicio-hero .hero-controles-modernos .btn-hero-nav.next.disabled {
  background: #e1efd2;
  cursor: default;
  transform: none;
  pointer-events: none;
}

/* HOME - Intro corporativo */
#inicio-intro .intro-caja {
  background: var(--marron);
  border-radius: 50px;
  padding: 48px 56px;
  margin-bottom: 80px;
}
#inicio-intro .intro-caja p {
  font-size: 16px;
  line-height: 1.4;
  color: var(--ink);
}
#inicio-intro .intro-soluciones {
  padding-top: 20px;
}
@media (max-width: 1024px) {
  #inicio-intro .intro-caja {
    padding: 36px 32px;
    margin-bottom: 48px;
  }
  #inicio-intro .intro-soluciones-titulo {
    padding-right: 0;
    margin-bottom: 24px;
  }
}
@media (max-width: 680px) {
  #inicio-intro .intro-caja {
    padding: 28px 24px;
    margin-bottom: 40px;
  }
}

/* HOME - Áreas de especialización */
#inicio-especializacion {
  background: var(--marron);
  padding-bottom: 100px;
  padding-top: 100px;
}
#inicio-especializacion .espec-tarjeta {
  border-radius: 50px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 520px;
  position: relative;
  cursor: pointer;
}
#inicio-especializacion .espec-tarjeta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0) 80%);
  pointer-events: none;
}
#inicio-especializacion .espec-tarjeta:hover::after {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.3) 55%, rgba(0, 0, 0, 0) 100%);
}
#inicio-especializacion .espec-tarjeta-inner {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  padding: 32px;
}
#inicio-especializacion .espec-tarjeta-contenido {
  color: var(--white);
}
#inicio-especializacion .espec-tarjeta-titulo {
  font-family: "Along Sans S2", sans-serif;
  font-size: clamp(1.8rem, 2.5vw, 2.2rem);
  text-transform: none;
  color: var(--white);
  margin-bottom: 12px;
  line-height: 1.1;
}
#inicio-especializacion .espec-tarjeta-descripcion {
  font-size: 14px;
  line-height: 1.5;
  color: var(--white);
  margin-bottom: 24px;
  opacity: 0.95;
  max-width: 90%;
}
#inicio-especializacion .espec-tarjeta-cta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  width: 100%;
  margin-top: 8px;
}
#inicio-especializacion .espec-tarjeta-cta span {
  font-size: 15px;
  font-weight: 500;
  color: var(--white);
  line-height: 1.2;
  text-align: right;
  font-family: "Along Sans S2", sans-serif;
}
#inicio-especializacion .espec-tarjeta-cta .espec-tarjeta-cta-btn {
  background: var(--brand-green);
  border: none;
  color: var(--white);
  border-radius: 50%;
  width: 55px;
  height: 55px;
  min-width: 55px;
  /* evita que se encoja */
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 180ms ease, transform 180ms ease;
}
#inicio-especializacion .espec-tarjeta-cta .espec-tarjeta-cta-btn:hover {
  background: var(--brand-green-light);
  transform: translateY(-2px);
}
@media (max-width: 1024px) {
  #inicio-especializacion .espec-tarjeta {
    min-height: 380px;
  }
}
@media (max-width: 680px) {
  #inicio-especializacion .espec-tarjeta {
    min-height: 320px;
    border-radius: 24px;
  }
  #inicio-especializacion .espec-tarjeta::after {
    border-radius: 24px;
  }
  #inicio-especializacion .espec-tarjeta-inner {
    padding: 24px;
  }
}

/* HOME - Experiencia */
#inicio-experiencia .datos-item {
  padding: 0 20px;
}
#inicio-experiencia .datos-numero {
  font-family: "Along Sans S2", sans-serif;
  /* font-size: clamp(3.5rem, 8vw, 6rem); */
  /* Desglose de clamp: */
  /* Valor mínimo: 3.5rem */
  /* Valor preferido (fluido): 8vw */
  /* Valor máximo: 6rem */
  font-size: 2.5rem;
  font-size: min(max(8vw, 2.5rem), 4rem);
  color: var(--brand-green);
  line-height: 1;
  margin-bottom: 8px;
}
#inicio-experiencia .datos-numero::before {
  content: "+";
}
#inicio-experiencia .datos-numero-sin-prefijo::before {
  content: "";
}
#inicio-experiencia .datos-label {
  font-family: "Along Sans S2", sans-serif;
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  color: var(--ink);
  font-weight: 400;
  letter-spacing: 0.02em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin-bottom: 16px;
}
#inicio-experiencia .datos-descripcion {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-soft);
}
#inicio-experiencia .datos-texto-adicional {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-soft);
}
@media (max-width: 1024px) {
  #inicio-experiencia .datos-item {
    padding: 0;
  }
}
@media (max-width: 680px) {
  #inicio-experiencia .datos-numero {
    font-size: clamp(3rem, 12vw, 4rem);
  }
}

/* HOME - Clientes */
#inicio-clientesContenedor {
  padding-top: 80px;
  padding-bottom: 80px;
  padding-left: 10px;
  padding-right: 10px;
}

.clientes-carrusel {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.clientes-controles {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.clientes-track-wrapper {
  overflow: hidden;
  flex: 1;
}

.clientes-track {
  display: flex;
  transition: transform 0.4s ease;
}

.clientes-item {
  min-width: 33.3333333333%;
  padding: 0 10px;
  box-sizing: border-box;
}

.clientes-item img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 40px;
  background-color: var(--white);
  padding: 25px;
  box-sizing: border-box;
  display: block;
}

.clientes-btn {
  background: var(--brand-green);
  border: transparent;
  color: var(--white);
  border-radius: 50%;
  width: 50px;
  height: 50px;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.clientes-btn:hover {
  background-color: var(--brand-green-light);
  transform: translateY(-2px);
}

@media (max-width: 767px) {
  .clientes-item {
    min-width: 100%;
  }
}
/* HOME - Actualidad */
#inicio-actualidad {
  padding-bottom: 40px;
}
#inicio-actualidad #inicio-actualidad1 {
  border-radius: 50px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column;
}
#inicio-actualidad #inicio-actualidad1 .inicio-actualidad1-overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 60%, transparent 100%);
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 450px;
  color: var(--white);
}
#inicio-actualidad #inicio-actualidad1 .inicio-actualidad1-titulo {
  text-transform: none;
  font-size: 1.5rem !important;
}
#inicio-actualidad #inicio-actualidad1 .inicio-actualidad1-fecha {
  color: var(--brand-green);
}
#inicio-actualidad .inicio-actualidad2 {
  flex: 1;
  display: flex;
  flex-direction: column;
}
#inicio-actualidad .inicio-actualidad2 .row {
  height: 100%;
  flex: 1;
}
#inicio-actualidad .inicio-actualidad2 img {
  border-radius: 40px;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  aspect-ratio: 4/3;
}
#inicio-actualidad .inicio-actualidad2 .inicio-actualidad2-titulo {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 8px;
  text-transform: none;
}
#inicio-actualidad .inicio-actualidad2 .inicio-actualidad2-titulo a {
  color: var(--ink);
}
#inicio-actualidad .inicio-actualidad2 .inicio-actualidad2-titulo a:hover {
  color: var(--brand-green);
}
#inicio-actualidad .inicio-actualidad2 .btn {
  padding-left: 0 !important;
}
#inicio-actualidad .inicio-actualidad2:not(:last-child) {
  margin-bottom: 10px;
}

/* ============================================================
   10. ESTRUCTURA RESERVADA PARA OTRAS PAGINAS
============================================================ */
/* Pagina: Quienes somos */
.page-quienes-somos #somos-mision {
  padding: 80px 0;
  background: var(--marron);
}
.page-quienes-somos #somos-mision h2 {
  color: var(--ink);
  margin-bottom: 20px;
}
.page-quienes-somos .valor-card {
  transition: all 0.3s ease;
  border: 1px solid transparent;
  padding: 24px;
}
.page-quienes-somos .valor-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1) !important;
  border-color: var(--brand-green);
}
.page-quienes-somos .valor-card .valor-icon-wrapper {
  width: 90px;
  height: 90px;
  background-color: var(--brand-green);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.page-quienes-somos .valor-card .valor-icon-wrapper img {
  width: 48px;
  height: 48px;
  -o-object-fit: contain;
     object-fit: contain;
}
.page-quienes-somos .valor-card h3 {
  font-family: "Along Sans S2", sans-serif;
  margin-top: 10px;
  color: var(--ink);
  font-weight: 500;
  text-transform: none;
  text-align: left;
  font-size: 20px;
}
.page-quienes-somos .valor-card p {
  color: var(--ink-soft);
  line-height: 1.5;
  text-align: left;
}
.page-quienes-somos #somos-historia {
  padding-top: 80px;
}
.page-quienes-somos #somos-historia .texto p {
  margin-bottom: 20px;
}
.page-quienes-somos #somos-historia .texto p b {
  color: var(--brand-green);
}
.page-quienes-somos #somos-historia .somos-historiaImagen {
  border: 1px solid var(--border-light);
}
.page-quienes-somos #somos-historia {
  /* CARRUSEL DE HISTORIA */
}
.page-quienes-somos #somos-historia .somos-historia-carrusel {
  position: relative;
  padding: 10px 0;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-track-container {
  overflow: hidden;
  border-radius: 50px;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-track {
  display: flex;
  gap: 20px;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-track::before {
  content: "";
  position: absolute;
  top: 65px;
  left: 0;
  width: 5000px;
  height: 5px;
  background: var(--marron);
  z-index: -1;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-item {
  flex: 0 0 calc(33.333% - 14px);
}
@media (max-width: 1024px) {
  .page-quienes-somos #somos-historia .somos-historia-carrusel .historia-item {
    flex: 0 0 calc(50% - 10px);
  }
}
@media (max-width: 680px) {
  .page-quienes-somos #somos-historia .somos-historia-carrusel .historia-item {
    flex: 0 0 100%;
  }
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-card {
  background: var(--marron);
  padding: 30px 25px;
  border-radius: 50px;
  border: 1px solid var(--border-light);
  height: 100%;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-card .historia-year {
  display: block;
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--brand-green);
  line-height: 1;
  margin-bottom: 12px;
  font-family: "Along Sans S2 bold", sans-serif;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-card .historia-desc {
  font-size: 0.9rem;
  line-height: 1.3;
  color: var(--ink);
  margin-bottom: 0;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-card .historia-desc b {
  color: var(--brand-green-dark);
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-controls {
  display: flex;
  gap: 15px;
  margin-top: 30px;
  justify-content: flex-start;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-controls .historia-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: none;
  background: var(--brand-green);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-controls .historia-btn:hover {
  background: var(--brand-green-light);
  color: var(--white);
  transform: scale(1.1);
}
.page-quienes-somos #somos-historia .somos-historia-carrusel .historia-controls .historia-btn:active {
  transform: scale(0.95);
}
.page-quienes-somos #somos-equipo {
  padding-bottom: 80px;
  margin-top: 80px;
}
.page-quienes-somos #somos-equipo .equipo-container {
  background: var(--marron);
  border-radius: 50px;
  padding: 60px;
  overflow: hidden;
  align-items: center;
}
@media (max-width: 680px) {
  .page-quienes-somos #somos-equipo .equipo-container {
    padding: 40px 20px;
  }
}
.page-quienes-somos #somos-equipo .equipo-imagen img {
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
.page-quienes-somos #somos-responsabilidad {
  margin-bottom: 80px;
}
.page-quienes-somos #somos-responsabilidad .somos-responsabilidad-listado {
  background: var(--marron);
  padding: 40px;
  border-radius: 50px;
}
.page-quienes-somos #somos-responsabilidad .somos-responsabilidad-listado ul {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}
.page-quienes-somos #somos-responsabilidad .somos-responsabilidad-listado ul li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 25px;
  font-size: 16px;
  color: var(--ink);
  line-height: 1.4;
}
.page-quienes-somos #somos-responsabilidad .somos-responsabilidad-listado ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 14px;
  height: 14px;
  background: var(--brand-green);
  border-radius: 50%;
}
.page-quienes-somos #somos-responsabilidad .somos-responsabilidad-listado ul li b {
  color: var(--ink);
}
.page-quienes-somos #somos-responsabilidad .somos-responsabilidad-listado ul li:last-child {
  margin-bottom: 0;
}
.page-quienes-somos #somos-reconocimientos {
  background: var(--marron);
  padding: 80px 0;
  margin-bottom: 0px;
}
.page-quienes-somos #somos-reconocimientos .reconocimientos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 60px;
  align-items: start;
}
.page-quienes-somos #somos-reconocimientos .reconocimientos-grid .reconocimientos-header {
  grid-column: 3;
  grid-row: 1/3;
}
.page-quienes-somos #somos-reconocimientos .reconocimientos-grid .reconocimientos-header .tituloSeccion {
  margin-bottom: 25px;
  font-size: 2.8rem;
}
.page-quienes-somos #somos-reconocimientos .reconocimientos-grid .reconocimientos-header p {
  color: var(--ink-soft);
  line-height: 1.5;
  margin-bottom: 15px;
}
@media (max-width: 1024px) {
  .page-quienes-somos #somos-reconocimientos .reconocimientos-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-quienes-somos #somos-reconocimientos .reconocimientos-grid .reconocimientos-header {
    grid-column: 1/-1;
    grid-row: auto;
    margin-bottom: 40px;
  }
}
@media (max-width: 680px) {
  .page-quienes-somos #somos-reconocimientos .reconocimientos-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}
.page-quienes-somos #somos-reconocimientos .reconocimiento-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
.page-quienes-somos #somos-reconocimientos .reconocimiento-item img {
  width: 50px;
  flex-shrink: 0;
}
.page-quienes-somos #somos-reconocimientos .reconocimiento-item .reconocimiento-info h3 {
  font-size: 1.15rem;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 4px;
  text-transform: none;
  line-height: 1.25;
  font-family: "Along Sans S2", sans-serif;
}
.page-quienes-somos #somos-reconocimientos .reconocimiento-item .reconocimiento-info p {
  font-size: 0.85rem;
  color: var(--ink-soft);
  margin-bottom: 0;
}

/* Pagina: Area */
.page-area #area-servicios {
  padding-bottom: 80px;
  margin-top: 80px;
}
.page-area #area-servicios .tituloseccion {
  margin-bottom: 20px;
  font-size: 3rem;
  color: var(--ink);
  line-height: 1.1;
}
.page-area #area-servicios h3 {
  font-size: 2.2rem;
  color: var(--brand-green-dark);
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 10px;
  font-family: "Along Sans S2 light", sans-serif;
}
.page-area .area-servicios {
  background-color: var(--marron);
  padding: 100px 0;
}
.page-area .area-servicios .servicio-card {
  background: var(--white);
  border-radius: 50px;
  padding: 20px;
  height: 100%;
  display: flex;
  flex-direction: column;
  border: none;
  box-shadow: 0 15px 50px rgba(0, 0, 0, 0.04);
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.page-area .area-servicios .servicio-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.1);
}
.page-area .area-servicios .servicio-card .servicio-card-img {
  border-radius: 50px;
  overflow: hidden;
  margin-bottom: 35px;
  aspect-ratio: 1.2/1;
}
.page-area .area-servicios .servicio-card .servicio-card-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.page-area .area-servicios .servicio-card .servicio-card-body {
  flex-grow: 1;
}
.page-area .area-servicios .servicio-card .servicio-card-body h3 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 1.5rem;
  color: var(--ink);
  font-weight: 500;
  margin-bottom: 25px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
}
.page-area .area-servicios .servicio-card .servicio-card-body p {
  font-size: 14px;
  color: var(--ink-soft);
  line-height: 1.6;
  margin-bottom: 10px;
}
.page-area .area-servicios .servicio-card .servicio-card-body p strong {
  color: var(--ink);
  font-weight: 700;
}
.page-area .area-servicios .servicio-card .servicio-card-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  margin-top: 40px;
}
.page-area .area-servicios .servicio-card .servicio-card-footer .footer-text {
  font-size: 1.05rem;
  color: var(--ink);
  text-align: right;
  line-height: 1.1;
  font-weight: 500;
}
.page-area .area-servicios .servicio-card .servicio-card-footer .btn-circular {
  width: 54px;
  height: 54px;
  background: var(--brand-green);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.3s ease;
  flex-shrink: 0;
}
.page-area .area-servicios .servicio-card .servicio-card-footer .btn-circular i {
  font-size: 18px;
}
.page-area .area-servicios .servicio-card .servicio-card-footer .btn-circular:hover {
  background: var(--brand-green-light);
  transform: rotate(90deg);
}
.page-area #servicios-proyectos {
  background-color: var(--white);
  padding: 100px 0;
}
.page-area #servicios-proyectos .proyecto-card {
  margin-bottom: 30px;
}
.page-area #servicios-proyectos .proyecto-card .proyecto-card-img {
  position: relative;
  border-radius: 50px;
  overflow: hidden;
  aspect-ratio: 16/10;
  margin-bottom: 25px;
}
.page-area #servicios-proyectos .proyecto-card .proyecto-card-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.page-area #servicios-proyectos .proyecto-card .proyecto-card-img .proyecto-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  background: var(--brand-green);
  color: white;
  padding: 8px 20px;
  border-radius: 30px;
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
}
.page-area #servicios-proyectos .proyecto-card .proyecto-card-body h3 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 1.45rem;
  color: var(--ink);
  line-height: 1.2;
  margin-bottom: 12px;
  font-weight: 500;
  text-transform: none;
}
.page-area #servicios-proyectos .proyecto-card .proyecto-card-body .proyecto-ubicacion {
  font-size: 1rem;
  color: var(--brand-green);
  font-weight: 600;
}
.page-area #servicios-proyectos .proyecto-card .proyecto-card-body .proyecto-ubicacion span {
  color: var(--brand-green);
  margin-left: 5px;
  font-weight: 400;
}
.page-area #servicios-proyectos .proyecto-card .proyecto-card-body .proyecto-ubicacion span::before {
  content: "·";
  margin-right: 5px;
}
.page-area #servicios-proyectos .proyecto-nav {
  display: flex;
  gap: 15px;
}
.page-area #servicios-proyectos .proyecto-nav .proyecto-nav-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: none;
  background: var(--brand-green);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
}
.page-area #servicios-proyectos .proyecto-nav .proyecto-nav-btn i {
  font-size: 16px;
}
.page-area #servicios-proyectos .proyecto-nav .proyecto-nav-btn:hover {
  background: var(--brand-green-light);
  color: white;
  transform: translateY(-2px);
}
.page-area #servicios-proyectos .proyecto-info {
  padding-left: 20px;
}
.page-area #servicios-proyectos .proyecto-info h2 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 3rem;
  color: var(--ink);
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 30px;
  font-weight: 700;
}
.page-area #servicios-proyectos .proyecto-info p {
  font-size: 14px;
  color: var(--ink-soft);
  line-height: 1.6;
  margin-bottom: 10px;
}
.page-area #servicios-proyectos .proyecto-info p strong {
  color: var(--ink);
}
.page-area #servicios-proyectos .proyecto-info .btn-ver-proyectos {
  display: inline-block;
  padding: 15px 35px;
  background: var(--brand-green);
  color: white;
  text-decoration: none;
  border-radius: 50px;
  font-family: "Along Sans S2", sans-serif;
  font-weight: 600;
  transition: all 0.3s ease;
  margin-top: 10px;
}
.page-area #servicios-proyectos .proyecto-info .btn-ver-proyectos:hover {
  background: var(--brand-green-light);
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(120, 190, 32, 0.2);
}

/* Pagina: Servicio */
/* Los css de servicio.php van aqui */
.page-servicio .rounded-80 {
  border-radius: 80px;
}
@media (max-width: 680px) {
  .page-servicio .rounded-80 {
    border-radius: 50px;
  }
}
.page-servicio .rounded-40 {
  border-radius: 50px;
}
@media (max-width: 680px) {
  .page-servicio .rounded-40 {
    border-radius: 20px;
  }
}
.page-servicio .bg-bg {
  background-color: var(--bg);
}
.page-servicio .dot-green {
  width: 10px;
  height: 10px;
  background-color: var(--brand-green);
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 2px;
}
.page-servicio .list-green-dots li {
  position: relative;
  padding-left: 25px;
  margin-bottom: 5px;
  font-size: 14px;
  color: var(--ink-soft);
  line-height: 1.5;
}
.page-servicio .list-green-dots li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 8px;
  height: 8px;
  background-color: var(--brand-green);
  border-radius: 50%;
}
.page-servicio #cabecera {
  padding: 0 0 60px;
}
.page-servicio #cabecera h1 {
  font-size: clamp(2.4rem, 5vw, 60px) !important;
  line-height: 1.05;
  font-weight: 700;
  color: var(--brand-green);
  max-width: 100% !important;
}
.page-servicio #cabecera .rounded-custom {
  border-radius: 80px;
  width: 100%;
  aspect-ratio: 1.3/1;
  -o-object-fit: cover;
     object-fit: cover;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);
}
@media (max-width: 680px) {
  .page-servicio #cabecera .rounded-custom {
    border-radius: 50px;
  }
}
.page-servicio #cabecera .cabecera-subtitulo {
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  color: var(--ink);
  line-height: 1.3;
  text-transform: none;
  font-weight: 400;
  font-family: "Along Sans S2", sans-serif;
}
.page-servicio #cabecera .intro-texto p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin-bottom: 10px;
}
.page-servicio #cabecera .intro-texto .fw-bold {
  font-size: 17px;
  color: var(--ink);
}
.page-servicio #servicio-quees {
  padding-top: 0px;
  margin-top: 0;
  margin-bottom: 40px;
}
.page-servicio #servicio-quees .methodology-box {
  margin: 0px 80px;
  padding: 80px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.02);
  border: 1px solid rgba(0, 0, 0, 0.03);
  background-color: var(--marron);
}
.page-servicio #servicio-quees h2 {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  color: var(--ink);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.02em;
}
.page-servicio #servicio-quees .method-card {
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.01);
  border: 1px solid rgba(0, 0, 0, 0.02);
}
.page-servicio #servicio-quees .method-card p {
  font-family: "Along Sans S2", sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: var(--ink);
  font-weight: 500;
}
.page-servicio #servicio-quees .concluding-text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.page-servicio #servicio-lineas {
  padding: 80px 0;
  margin-bottom: 60px;
}
.page-servicio #servicio-lineas .tituloSeccion {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  margin-bottom: 50px;
}
.page-servicio #servicio-lineas h3 {
  font-size: 1.6rem;
  color: var(--ink);
  text-transform: none;
  font-weight: 600;
  font-family: "Along Sans S2", sans-serif;
}
.page-servicio #servicio-lineas .line-card {
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
  border: 1px solid rgba(0, 0, 0, 0.01);
  background: var(--marron);
}
.page-servicio #servicio-lineas .line-card li {
  margin-bottom: 5px;
}
.page-servicio #servicio-lineas .line-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.05);
}
.page-servicio #servicio-lineas .line-card p {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink-soft);
}
.page-servicio #servicio-diferencias {
  padding-top: 80px;
  background-color: var(--marron);
}
.page-servicio #servicio-diferencias .tituloSeccion {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
}
.page-servicio #servicio-diferencias p.intro-differential {
  font-size: 16px;
  color: var(--ink-soft);
}
.page-servicio #servicio-diferencias .diff-card {
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.03);
  border: 1px solid rgba(0, 0, 0, 0.02);
  transition: all 0.4s ease;
  text-align: left;
}
.page-servicio #servicio-diferencias .diff-card p {
  font-family: "Along Sans S2", sans-serif;
  font-size: 18px;
  line-height: 1.4;
  color: var(--ink);
  font-weight: 500;
  transition: color 0.4s ease;
}
.page-servicio #servicio-diferencias .diff-card:hover .diff-icon img {
  filter: invert(57%) sepia(86%) saturate(415%) hue-rotate(50deg) brightness(95%) contrast(89%) !important;
}
.page-servicio #servicio-diferencias .diff-icon {
  width: 90px;
  height: 90px;
  background-color: var(--brand-green);
  color: var(--white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  transition: all 0.4s ease;
  margin-top: -10px;
}
.page-servicio #servicio-diferencias .diff-icon img {
  width: 48px !important;
  height: 48px !important;
}
.page-servicio #servicio-diferencias .diff-card:hover {
  background-color: var(--brand-green) !important;
}
.page-servicio #servicio-diferencias .diff-card:hover p {
  color: var(--white);
}
.page-servicio #servicio-diferencias .diff-card:hover .diff-icon {
  background-color: var(--white);
  color: var(--brand-green);
  transform: scale(1.05);
}
.page-servicio #servicio-diferencias .concluding-footer {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
}
.page-servicio #servicio-proyectos {
  background-color: var(--white);
  padding: 100px 0;
}
.page-servicio #servicio-proyectos .proyecto-nav {
  display: flex;
  gap: 15px;
}
.page-servicio #servicio-proyectos .proyecto-nav .proyecto-nav-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: none;
  background: var(--brand-green);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
}
.page-servicio #servicio-proyectos .proyecto-nav .proyecto-nav-btn i {
  font-size: 16px;
}
.page-servicio #servicio-proyectos .proyecto-nav .proyecto-nav-btn:hover {
  background: var(--brand-green-light);
  color: white;
  transform: translateY(-2px);
}
.page-servicio #servicio-proyectos .proyecto-info {
  padding-left: 20px;
}
.page-servicio #servicio-proyectos .proyecto-info h2 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 2.2rem;
  color: var(--ink);
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 30px;
  font-weight: 700;
}
.page-servicio #servicio-proyectos .proyecto-info p {
  font-size: 14px;
  color: var(--ink-soft);
  line-height: 1.6;
  margin-bottom: 25px;
}
.page-servicio #servicio-proyectos .proyecto-info p strong {
  color: var(--ink);
}
.page-servicio #servicio-proyectos .proyecto-info .btn-ver-proyectos {
  display: inline-block;
  padding: 15px 35px;
  background: var(--brand-green);
  color: white;
  text-decoration: none;
  border-radius: 50px;
  font-family: "Along Sans S2", sans-serif;
  font-weight: 600;
  transition: all 0.3s ease;
  margin-top: 10px;
  font-size: 16px;
}
.page-servicio #servicio-proyectos .proyecto-info .btn-ver-proyectos:hover {
  background: var(--brand-green-light);
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(120, 190, 32, 0.2);
}

/* Componentes Globales de Proyecto */
.proyecto-card {
  margin-bottom: 30px;
}
.proyecto-card:hover .proyecto-card-img img {
  transform: scale(1.05);
}
.proyecto-card .proyecto-card-img {
  position: relative;
  border-radius: 50px;
  overflow: hidden;
  aspect-ratio: 16/10;
  margin-bottom: 25px;
}
.proyecto-card .proyecto-card-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.3s ease;
}
.proyecto-card .proyecto-card-img .proyecto-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  background: var(--brand-green);
  color: white;
  padding: 8px 20px;
  border-radius: 30px;
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
}
.proyecto-card .proyecto-card-body h3 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 1.45rem;
  color: var(--ink);
  line-height: 1.2;
  margin-bottom: 12px;
  font-weight: 500;
  text-transform: none;
}
.proyecto-card .proyecto-card-body .proyecto-ubicacion {
  font-size: 1rem;
  color: var(--brand-green);
  font-weight: 600;
}
.proyecto-card .proyecto-card-body .proyecto-ubicacion span {
  color: var(--brand-green);
  margin-left: 5px;
  font-weight: 400;
}
.proyecto-card .proyecto-card-body .proyecto-ubicacion span::before {
  content: "·";
  margin-right: 5px;
}

/* Pagina: Proyectos */
.page-proyectos #proyectos-contenedor {
  background-color: var(--white);
}
.page-proyectos #proyectos-contenedor .proyecto-nav-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: none;
  background: var(--brand-green);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
}
.page-proyectos #proyectos-contenedor .proyecto-nav-btn i {
  font-size: 16px;
}
.page-proyectos #proyectos-contenedor .proyecto-nav-btn:hover {
  background: var(--brand-green-light);
  color: white;
  transform: translateY(-2px);
}
.page-proyectos #proyectos-filtros .filtros-titulo {
  font-family: "Along Sans S2", sans-serif;
  color: var(--ink);
  text-transform: uppercase;
  margin-bottom: 25px;
}
.page-proyectos #proyectos-filtros .accordion-item {
  background-color: var(--marron) !important;
  border-radius: 50px !important;
  overflow: hidden;
  margin-bottom: 15px;
}
.page-proyectos #proyectos-filtros .accordion-item .accordion-button {
  font-family: "Along Sans S2", sans-serif;
  font-weight: 600;
  font-size: 1rem;
  color: var(--ink);
  background-color: transparent !important;
  padding: 20px 25px;
  box-shadow: none;
}
.page-proyectos #proyectos-filtros .accordion-item .accordion-button::after {
  background-image: none !important;
  content: "\f078";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: var(--brand-green);
  color: white;
  transition: all 0.3s ease;
}
.page-proyectos #proyectos-filtros .accordion-item .accordion-button:not(.collapsed) {
  color: var(--ink);
}
.page-proyectos #proyectos-filtros .accordion-item .accordion-button:not(.collapsed)::after {
  content: "\f077";
  background-color: white;
  color: var(--brand-green);
  transform: none;
}
.page-proyectos #proyectos-filtros .accordion-item .accordion-body {
  padding: 0 25px 25px 25px;
}
.page-proyectos #proyectos-filtros .botones-filtro .btn-aplicar {
  background-color: var(--brand-green);
  color: white;
  border-radius: 50px;
  font-weight: 500;
  border: none;
  transition: all 0.3s ease;
}
.page-proyectos #proyectos-filtros .botones-filtro .btn-aplicar:hover {
  background-color: var(--brand-green-light);
  transform: translateY(-2px);
}
.page-proyectos #proyectos-filtros .botones-filtro .btn-borrar {
  background-color: white;
  color: var(--brand-green);
  border: 1px solid var(--brand-green);
  border-radius: 50px;
  font-weight: 500;
  transition: all 0.3s ease;
}
.page-proyectos #proyectos-filtros .botones-filtro .btn-borrar:hover {
  background-color: var(--brand-green);
  color: white;
}
.page-proyectos #proyectos-filtros .custom-checkbox {
  display: flex;
  align-items: flex-start;
  margin-bottom: 12px;
}
.page-proyectos #proyectos-filtros .custom-checkbox .form-check-input {
  width: 18px;
  height: 18px;
  border: 2px solid var(--ink);
  border-radius: 3px;
  margin-top: 3px;
  cursor: pointer;
}
.page-proyectos #proyectos-filtros .custom-checkbox .form-check-input:checked {
  background-color: var(--brand-green);
  border-color: var(--brand-green);
}
.page-proyectos #proyectos-filtros .custom-checkbox .form-check-input:focus {
  box-shadow: none;
}
.page-proyectos #proyectos-filtros .custom-checkbox .form-check-label {
  margin-left: 10px;
  font-size: 15px;
  color: var(--ink);
  cursor: pointer;
  line-height: 1.5;
  font-family: "Along Sans S2", sans-serif;
}

/* Pagina: Proyecto */
.page-proyecto {
  padding-bottom: 80px;
}
.page-proyecto #proyecto-cabecera {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: calc(100vh - 120px);
  min-height: 400px;
  /* 1. EL CONTENEDOR: 100% limpio, sin paddings */
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-contenedor {
  flex: 1;
  min-height: 0;
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  display: flex;
  align-items: stretch;
  padding: 0;
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-contenedor::-webkit-scrollbar {
  display: none;
}
.page-proyecto #proyecto-cabecera {
  /* 2. EL TRACK: Flujo horizontal puro */
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  height: 100%;
  gap: 24px;
  padding: 0;
}
.page-proyecto #proyecto-cabecera {
  /* 3. LAS DIAPOSITIVAS: Ajuste fino definitivo para el colchón de aire */
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide {
  width: 75vw;
  max-width: 1000px;
  flex-shrink: 0;
  height: 100%;
  scroll-snap-align: center;
}
@media (max-width: 991px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide {
    width: 85vw;
  }
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide {
  /* 🛠️ ALINEACIÓN DE LA PRIMERA FOTO (Ajuste fino del aire izquierdo) */
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
  padding-left: 0;
  margin-left: 20px;
}
@media (min-width: 576px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
    margin-left: calc(50vw - 260px);
  }
}
@media (min-width: 768px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
    margin-left: calc(50vw - 345px);
  }
}
@media (min-width: 992px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
    margin-left: calc(50vw - 460px);
  }
}
@media (min-width: 1200px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
    margin-left: calc(50vw - 550px);
  }
}
@media (min-width: 1400px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
    margin-left: calc(50vw - 875px);
  }
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
  /* ◄ Ajustado a 875px para recortar el exceso de aire */
}
@media (min-width: 1920px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:first-child {
    margin-left: calc(50vw - 915px);
  }
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide {
  /* 🛠️ ALINEACIÓN DE LA ÚLTIMA FOTO (Ajuste fino del aire derecho simétrico) */
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
  padding-right: 0;
  margin-right: 20px;
}
@media (min-width: 576px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
    margin-right: calc(50vw - 260px);
  }
}
@media (min-width: 768px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
    margin-right: calc(50vw - 345px);
  }
}
@media (min-width: 992px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
    margin-right: calc(50vw - 460px);
  }
}
@media (min-width: 1200px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
    margin-right: calc(50vw - 550px);
  }
}
@media (min-width: 1400px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
    margin-right: calc(50vw - 875px);
  }
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
  /* ◄ Ajustado a 875px para recortar el exceso de aire */
}
@media (min-width: 1920px) {
  .page-proyecto #proyecto-cabecera .proyecto-carrusel-slide:last-child {
    margin-right: calc(50vw - 915px);
  }
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide {
  /* Estilos estéticos internos */
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide .slide-inner {
  overflow: hidden;
  border-radius: 50px;
  height: 100%;
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide .slide-inner img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  cursor: pointer;
  transition: transform 0.4s ease, filter 0.4s ease;
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-slide .slide-inner:hover img {
  transform: scale(1.03);
  filter: brightness(0.95);
}
.page-proyecto #proyecto-cabecera {
  /* CONTROLES */
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-controles .btn-carrusel {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: none;
  background: #e9f3d9;
  color: var(--brand-green);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-controles .btn-carrusel i {
  font-size: 16px;
}
.page-proyecto #proyecto-cabecera .proyecto-carrusel-controles .btn-carrusel.active, .page-proyecto #proyecto-cabecera .proyecto-carrusel-controles .btn-carrusel:hover {
  background: var(--brand-green);
  color: white;
}
.page-proyecto #proyecto-titular .proyecto-etiquetas .badge {
  padding: 8px 20px;
  border-radius: 30px;
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
}
.page-proyecto #proyecto-titular .proyecto-etiquetas .badge.bg-brand {
  background-color: var(--brand-green) !important;
  color: white;
}
.page-proyecto #proyecto-titular .proyecto-etiquetas .badge.outline-brand {
  background-color: transparent !important;
  border: 1px solid var(--brand-green);
  color: var(--brand-green);
}
.page-proyecto #proyecto-titular h1 {
  font-family: "Along Sans S2", sans-serif;
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
  width: 60%;
  text-transform: none;
}
@media (max-width: 768px) {
  .page-proyecto #proyecto-titular h1 {
    font-size: 2rem;
  }
}
.page-proyecto #proyecto-titular #proyecto-meta {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--brand-green);
}
.page-proyecto #proyecto-titular #proyecto-meta .meta-dot {
  width: 6px;
  height: 6px;
  background-color: var(--brand-green-light);
  opacity: 0.5;
  border-radius: 50%;
  display: inline-block;
}
.page-proyecto #proyecto-contenido {
  max-width: 900px;
}
.page-proyecto #proyecto-contenido p,
.page-proyecto #proyecto-contenido ul {
  font-size: 1.05rem;
  color: var(--ink-soft);
  line-height: 1.8;
  margin-bottom: 1.5rem;
}
.page-proyecto #proyecto-contenido p strong,
.page-proyecto #proyecto-contenido ul strong {
  color: var(--ink);
}
.page-proyecto #proyecto-contenido ul {
  padding-left: 1.5rem;
}
.page-proyecto #proyecto-contenido ul li {
  margin-bottom: 0.5rem;
}
.page-proyecto #proyecto-pie {
  max-width: 900px;
}
.page-proyecto #proyecto-pie .compartir-texto {
  font-size: 1rem;
  color: var(--ink-soft);
  font-weight: 500;
}
.page-proyecto #proyecto-pie .btn-social {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--marron);
  color: var(--brand-green);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.3s ease;
}
.page-proyecto #proyecto-pie .btn-social i {
  font-size: 16px;
}
.page-proyecto #proyecto-pie .btn-social:hover {
  background: var(--brand-green);
  color: white;
  transform: translateY(-2px);
}

#lightboxModal {
  background-color: rgba(0, 0, 0, 0.85);
}
#lightboxModal .btn-close-white {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 0.8;
}
#lightboxModal .btn-close-white:hover {
  opacity: 1;
}

/* Pagina: Blog */
.page-blog #blog-cuerpo {
  padding-bottom: 80px;
}
.page-blog {
  /* SIDEBAR */
}
.page-blog .blog-sidebar .sidebar-widget .widget-title {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 25px;
  color: var(--ink);
  border-bottom: none;
  padding-bottom: 0;
  font-family: "Along Sans S2 bold", sans-serif;
}
.page-blog .blog-sidebar .sidebar-widget {
  /* Buscador */
}
.page-blog .blog-sidebar .sidebar-widget .blog-search {
  position: relative;
}
.page-blog .blog-sidebar .sidebar-widget .blog-search input {
  width: 100%;
  padding: 12px 15px;
  border: none;
  font-size: 0.9rem;
  background: var(--bg);
}
.page-blog .blog-sidebar .sidebar-widget .blog-search input:focus {
  outline: none;
}
.page-blog .blog-sidebar .sidebar-widget .blog-search button {
  position: absolute;
  right: 5px;
  top: 5px;
  bottom: 5px;
  background: var(--brand-green);
  color: white;
  border: none;
  border-radius: 50%;
  width: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-blog .blog-sidebar .sidebar-widget {
  /* Widget Tags */
}
.page-blog .blog-sidebar .sidebar-widget .widget-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.page-blog .blog-sidebar .sidebar-widget .widget-tags .tag-link {
  display: inline-block;
  padding: 8px 22px;
  border: 1px solid var(--brand-green);
  border-radius: 30px;
  color: var(--brand-green);
  text-decoration: none;
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.95rem;
  font-weight: 400;
  transition: all 0.2s ease;
}
.page-blog .blog-sidebar .sidebar-widget .widget-tags .tag-link:hover {
  background: var(--brand-green);
  color: white;
}
.page-blog .blog-sidebar .sidebar-widget .widget-tags .tag-link.active {
  background: var(--brand-green);
  color: white;
}
.page-blog {
  /* PAGINACIÓN CIRCULAR */
}
.page-blog .blog-pagination {
  display: flex;
  justify-content: flex-end;
  gap: 20px;
  margin-top: 60px;
  margin-bottom: 40px;
}
.page-blog .blog-pagination .page-link-circle {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 1.1rem;
  color: white;
  transition: all 0.3s ease;
}
.page-blog .blog-pagination .page-link-circle.prev {
  background: #e1efd2;
}
.page-blog .blog-pagination .page-link-circle.next {
  background: var(--brand-green);
}
.page-blog .blog-pagination .page-link-circle:hover {
  transform: scale(1.1);
  opacity: 0.9;
}
.page-blog {
  /* CARDS DE NOTICIAS */
}
.page-blog .blog-card {
  margin-bottom: 40px;
}
.page-blog .blog-card .blog-card-image {
  position: relative;
  border-radius: 50px;
  overflow: hidden;
  margin-bottom: 15px;
  aspect-ratio: 16/10;
}
.page-blog .blog-card .blog-card-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.5s ease;
}
.page-blog .blog-card .blog-card-image .blog-card-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  background: var(--brand-green);
  color: white;
  padding: 6px 18px;
  border-radius: 20px;
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  z-index: 2;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.page-blog .blog-card:hover .blog-card-image img {
  transform: scale(1.05);
}
.page-blog .blog-card .blog-card-title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  margin-bottom: 8px;
  font-family: "Along Sans S2", sans-serif;
  text-transform: none;
}
.page-blog .blog-card .blog-card-title a {
  color: var(--ink);
  text-decoration: none;
  transition: color 0.2s ease;
}
.page-blog .blog-card .blog-card-title a:hover {
  color: var(--brand-green);
}
.page-blog .blog-card .blog-card-date {
  display: block;
  color: var(--brand-green);
  font-size: 0.9rem;
  margin-bottom: 8px;
  font-weight: 600;
  text-transform: lowercase;
}
.page-blog .blog-card .blog-card-link {
  color: var(--ink-soft);
  text-decoration: none;
  font-size: 0.9rem;
  transition: all 0.2s ease;
}
.page-blog .blog-card .blog-card-link:hover {
  color: var(--brand-green);
}

/* Pagina: Noticia Detalle */
.page-noticia .noticia-hero-container {
  position: relative;
  height: calc(100vh - 120px);
  border-radius: 50px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 60px;
}
.page-noticia .noticia-hero-container .noticia-hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 0;
}
.page-noticia .noticia-hero-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, transparent 30%, rgba(0, 0, 0, 0.85) 100%);
  z-index: 1;
}
.page-noticia .noticia-hero-container .noticia-hero-content {
  position: relative;
  z-index: 2;
  max-width: 950px;
}
.page-noticia .noticia-hero-container .noticia-hero-content .noticia-badge {
  display: inline-block;
  background: var(--brand-green);
  color: white;
  padding: 6px 18px;
  border-radius: 20px;
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 25px;
}
.page-noticia .noticia-hero-container .noticia-hero-content h1 {
  color: white;
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 25px;
  font-family: "Along Sans S2", sans-serif;
  text-transform: none;
}
.page-noticia .noticia-hero-container .noticia-hero-content .noticia-date {
  display: block;
  color: var(--brand-green);
  font-size: 1.1rem;
  font-weight: 600;
  text-transform: lowercase !important;
}
@media (max-width: 1024px) {
  .page-noticia .noticia-hero-container {
    height: 450px;
    padding: 40px;
  }
  .page-noticia .noticia-hero-container h1 {
    font-size: 2.5rem;
  }
}
@media (max-width: 680px) {
  .page-noticia .noticia-hero-container {
    height: auto;
    min-height: 400px;
    padding: 30px;
    border-radius: 30px;
  }
  .page-noticia .noticia-hero-container h1 {
    font-size: 2rem;
  }
}
.page-noticia .post-content {
  padding-top: 40px;
}
.page-noticia .post-content h2 {
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 20px;
  text-transform: none;
  font-family: "Along Sans S2", sans-serif;
}
.page-noticia .post-content h3 {
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 25px;
  text-transform: none;
}
.page-noticia .post-content .post-list {
  list-style: none;
  padding-left: 0;
  margin: 30px 0;
}
.page-noticia .post-content .post-list li {
  position: relative;
  padding-left: 25px;
  margin-bottom: 15px;
  font-size: 1rem;
  color: var(--ink-soft);
}
.page-noticia .post-content .post-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 10px;
  height: 10px;
  background: var(--brand-green);
  border-radius: 50%;
}
.page-noticia .post-content .post-share {
  border-top: none;
  padding-top: 30px;
}
.page-noticia .post-content .post-share .share-label {
  font-weight: 400;
  color: var(--ink);
}
.page-noticia .post-content .post-share .share-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--marron);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand-green);
  text-decoration: none;
  transition: all 0.3s ease;
}
.page-noticia .post-content .post-share .share-icon:hover {
  background: var(--brand-green);
  color: white;
  transform: translateY(-3px);
}
.page-noticia {
  /* SIDEBAR NOTICIA */
}
.page-noticia .noticia-sidebar {
  padding-top: 40px;
}
.page-noticia .noticia-sidebar .sidebar-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ink);
  text-transform: uppercase;
  font-family: "Along Sans S2", sans-serif;
  border-bottom: none;
  padding-bottom: 10px;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-image {
  position: relative;
  border-radius: 50px;
  overflow: hidden;
  aspect-ratio: 16/9;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-image .mini-card-badge {
  position: absolute;
  top: 10px;
  right: 30px;
  background: var(--brand-green);
  color: white;
  padding: 4px 12px;
  border-radius: 15px;
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.3;
  margin-top: 10px;
  margin-bottom: 5px;
  text-transform: none;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-title a {
  color: var(--ink);
  text-decoration: none;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-title a:hover {
  color: var(--brand-green);
}
.page-noticia .noticia-sidebar .mini-card .mini-card-date {
  display: block;
  font-size: 0.85rem;
  color: var(--brand-green);
  font-weight: 600;
  margin-bottom: 5px;
  text-transform: lowercase;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-link {
  font-size: 0.9rem;
  color: var(--ink-soft);
  text-decoration: none;
}
.page-noticia .noticia-sidebar .mini-card .mini-card-link:hover {
  color: var(--brand-green);
}

/* Pagina: Contacto */
.page-contacto #contacto .contacto-localizacion {
  display: flex;
  flex-wrap: wrap;
  padding-bottom: 20px;
  margin-bottom: 0px;
  border-bottom: none;
}
.page-contacto #contacto .contacto-localizacion:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.page-contacto #contacto .contacto-localizacion .col-md-6 {
  display: flex;
  flex-direction: column;
}
.page-contacto #contacto .contacto-localizacion h3 {
  margin-bottom: 15px;
  color: var(--ink);
  font-family: "Along Sans S2 bold", sans-serif;
  font-size: 1.4rem;
}
.page-contacto #contacto .contacto-localizacion ul {
  padding-left: 0;
  margin-bottom: 0;
}
.page-contacto #contacto .contacto-localizacion ul li {
  list-style: none;
  padding-left: 0;
  margin-bottom: 5px;
  display: flex;
  align-items: flex-start;
  color: var(--ink);
  font-family: "Along Sans S2", sans-serif;
  font-size: 0.95rem;
}
.page-contacto #contacto .contacto-localizacion ul li i {
  color: var(--brand-green);
  width: 24px;
  margin-right: 10px;
  margin-top: 4px;
  text-align: center;
}
.page-contacto #contacto .contacto-localizacion ul li .btn {
  margin-top: 5px;
}
.page-contacto #contacto .contacto-localizacion ul li .btn i {
  color: #fff !important;
  margin-left: 8px;
  margin-top: 0;
  width: auto;
}
.page-contacto #contacto .mapa-container {
  flex: 1;
  display: flex;
  border-radius: 50px;
  overflow: hidden;
  min-height: 200px;
}
.page-contacto #contacto .mapa-container iframe {
  width: 100% !important;
  height: 100% !important;
  border: 0;
}
.page-contacto #contacto .col-md-5 {
  display: flex;
  flex-direction: column;
}
.page-contacto #contacto-formulario {
  flex: 1;
  display: flex;
  flex-direction: column;
  background-color: var(--marron);
  padding: 40px;
  border-radius: 50px;
}
.page-contacto #contacto-formulario .tituloSeccion {
  margin-bottom: 25px;
  font-size: 1.8rem;
}
.page-contacto #contacto-formulario form {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.page-contacto #contacto-formulario form input[type=text],
.page-contacto #contacto-formulario form input[type=email],
.page-contacto #contacto-formulario form input[type=tel],
.page-contacto #contacto-formulario form textarea {
  width: 100%;
  padding: 14px 20px;
  border: none;
  border-radius: 50px;
  background-color: var(--white);
  font-size: 15px;
  color: var(--ink);
  transition: all 0.3s ease;
}
.page-contacto #contacto-formulario form input[type=text]:focus,
.page-contacto #contacto-formulario form input[type=email]:focus,
.page-contacto #contacto-formulario form input[type=tel]:focus,
.page-contacto #contacto-formulario form textarea:focus {
  outline: none;
  border-color: var(--brand-green);
  box-shadow: 0 0 0 4px rgba(120, 190, 32, 0.1);
}
.page-contacto #contacto-formulario form input[type=text]::-moz-placeholder, .page-contacto #contacto-formulario form input[type=email]::-moz-placeholder, .page-contacto #contacto-formulario form input[type=tel]::-moz-placeholder, .page-contacto #contacto-formulario form textarea::-moz-placeholder {
  color: #a0a0a0;
}
.page-contacto #contacto-formulario form input[type=text]::placeholder,
.page-contacto #contacto-formulario form input[type=email]::placeholder,
.page-contacto #contacto-formulario form input[type=tel]::placeholder,
.page-contacto #contacto-formulario form textarea::placeholder {
  color: #a0a0a0;
}
.page-contacto #contacto-formulario form textarea {
  flex: 1;
  min-height: 120px;
  resize: none;
}
.page-contacto #contacto-formulario form {
  /* Estilo para el grupo de checkbox */
}
.page-contacto #contacto-formulario form .checkbox-group {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 10px 0;
}
.page-contacto #contacto-formulario form .checkbox-group input[type=checkbox] {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  cursor: pointer;
  accent-color: var(--brand-green);
}
.page-contacto #contacto-formulario form .checkbox-group label {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-soft);
  cursor: pointer;
}
.page-contacto #contacto-formulario form .btn {
  background-color: var(--brand-green);
  color: var(--white);
  padding: 14px 30px;
  border-radius: 50px;
  font-family: "Along Sans S2", sans-serif;
  font-weight: 400;
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0;
  border: none;
  transition: all 0.3s ease;
  align-self: flex-start;
  margin-top: auto;
}
.page-contacto #contacto-formulario form .btn:hover {
  background-color: var(--brand-green-light);
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(120, 190, 32, 0.3);
}

/* Pagina Catedra de economia circular */
.page-catedra .text-ink {
  color: var(--ink);
}
.page-catedra .text-ink-soft {
  color: var(--ink-soft);
}
.page-catedra .text-brand {
  color: var(--brand-green);
}
.page-catedra .bg-marron {
  background-color: var(--marron);
}
.page-catedra .bg-brand {
  background-color: var(--brand-green);
}
.page-catedra .rounded-lg {
  border-radius: var(--radius-lg);
}
.page-catedra #catedra-hero {
  z-index: 1;
}
.page-catedra #catedra-hero .hero-wrapper {
  border-radius: 50px;
  background-color: #000;
  height: calc(100vh - 120px);
}
.page-catedra #catedra-hero .hero-wrapper .video-background {
  overflow: hidden;
  position: absolute;
  width: 100%;
  height: 100%;
}
.page-catedra #catedra-hero .hero-wrapper .video-background iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100vw;
  height: 56.25vw;
  /* Ratio 16:9 basado en el ancho */
  min-height: 100vh;
  min-width: 177.77vh;
  /* Ratio 16:9 basado en el alto */
  transform: translate(-50%, -50%) scale(1.05);
  /* Centrado y ligero aumento para tapar bordes */
  pointer-events: none;
  border: none;
}
.page-catedra #catedra-hero .hero-wrapper .video-overlay {
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 50%, transparent 100%);
}
.page-catedra #catedra-hero .hero-wrapper .hero-content {
  min-height: 60vh;
}
.page-catedra #catedra-hero .hero-wrapper .hero-content h1 {
  font-family: "Along Sans S2", sans-serif;
  text-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);
  line-height: 1.1;
  font-size: clamp(2rem, 4vw, 3.5rem);
  text-transform: none;
}
.page-catedra #catedra-hero .hero-wrapper {
  position: relative;
  overflow: hidden;
}
.page-catedra {
  /* 1. EL OVERLAY ESTÉTICO: Nace con un fondo negro sólido para tapar los controles de YouTube */
}
.page-catedra #catedra-hero .video-overlay {
  background-color: #1a1a1a; /* O el color predominante de la cabecera */
  transition: background-color 2.5s ease;
  /* Ejecutamos una animación CSS que mantiene el fondo negro 3 segundos 
     y luego lo vuelve transparente de golpe, justo cuando los controles de YT se van */
  animation: revelarVideo 5.5s forwards;
}
@keyframes revelarVideo {
  0%, 90% {
    background-color: #1a1a1a; /* Tapa los controles y el overlay gris */
  }
  100% {
    background-color: rgba(0, 0, 0, 0.4); /* Tu overlay oscuro definitivo para que el texto sea legible */
  }
}
.page-catedra #catedra-intro {
  padding-top: 80px;
  padding-bottom: 80px;
}
.page-catedra #catedra-intro .catedra-logo {
  max-width: 50%;
}
.page-catedra #catedra-intro .catedra-logo.logo-uhu {
  -o-object-fit: contain;
     object-fit: contain;
}
.page-catedra #catedra-objetivos {
  padding-top: 80px;
  padding-bottom: 80px;
}
.page-catedra #catedra-objetivos .tituloSeccion {
  font-family: "Along Sans S2 bold", sans-serif;
}
.page-catedra #catedra-objetivos .custom-bullet-list li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 10px;
  font-size: 1rem;
  line-height: 1.3;
  color: var(--ink-soft);
}
.page-catedra #catedra-objetivos .custom-bullet-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--brand-green);
}
.page-catedra #catedra-objetivos .custom-bullet-list li strong {
  color: var(--ink);
}
.page-catedra #catedra-direccion {
  padding-top: 80px;
  padding-bottom: 80px;
}
.page-catedra #catedra-direccion .tituloSeccion {
  font-family: "Along Sans S2 bold", sans-serif;
}
.page-catedra #catedra-direccion h6 {
  font-family: "Along Sans S2 bold", sans-serif;
  font-weight: 700;
  color: var(--ink);
  font-size: 1.3rem;
  letter-spacing: 0.5px;
}
.page-catedra #catedra-direccion .person-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 32px;
}
.page-catedra #catedra-direccion .person-list li .person-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--marron);
  color: var(--brand-green);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 14px;
}
.page-catedra #catedra-direccion .person-list li .person-info {
  font-family: "Along Sans S2", sans-serif;
  font-size: 1.15rem;
  color: var(--ink);
  line-height: 1.4;
  font-weight: 400;
}
.page-catedra #catedra-direccion .person-list li .person-info .text-muted {
  margin-top: 2px;
  font-weight: 400;
}
.page-catedra #catedra-actividades {
  margin-bottom: 80px;
}
.page-catedra #catedra-actividades h2 {
  font-family: "Along Sans S2 bold", sans-serif;
}
.page-catedra #catedra-actividades .actividad-card {
  border-radius: 50px !important;
  transition: transform 0.3s ease;
}
.page-catedra #catedra-actividades .actividad-card:hover {
  transform: translateY(-4px);
}
.page-catedra #catedra-actividades .actividad-card .icon-wrapper {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: var(--brand-green);
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-catedra #catedra-actividades .actividad-card .icon-wrapper img {
  width: 32px;
  height: 32px;
  -o-object-fit: contain;
     object-fit: contain;
}
.page-catedra #catedra-actividades .actividad-card .icon-wrapper i {
  font-size: 20px;
}
.page-catedra #catedra-actividades .actividad-card h5 {
  font-size: 0.95rem;
  text-transform: none !important;
}
.page-catedra #catedra-noticias h2 {
  font-size: 1.6rem;
  letter-spacing: 0.5px;
}
.page-catedra #catedra-noticias .noticia-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.page-catedra #catedra-noticias .noticia-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}
.page-catedra #catedra-noticias .noticia-card .text-brand {
  color: var(--brand-green);
}
.page-catedra #catedra-noticias .side-card {
  border-color: var(--border-light) !important;
}
.page-catedra #catedra-noticias .side-card:hover {
  border-color: var(--brand-green) !important;
}

/* Paginas auxiliares: 404, legal, etc */
.page-aux h1 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 2rem;
  color: var(--ink);
}
.page-aux h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--brand-green-dark);
  margin-top: 3.5rem;
  margin-bottom: 1.25rem;
}
.page-aux p {
  margin-bottom: 1.25rem;
  line-height: 1.7;
  color: #444;
}
.page-aux ul {
  padding-left: 0;
  list-style: none;
  margin-bottom: 2.5rem;
}
.page-aux ul li {
  margin-bottom: 1rem;
  position: relative;
  padding-left: 1.75rem;
  line-height: 1.6;
}
.page-aux ul li::before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--brand-green-dark);
  position: absolute;
  left: 0;
  top: 2px;
  font-size: 0.9rem;
}
.page-aux strong {
  color: var(--brand-green-dark);
  font-weight: 700;
}

/* ============================================================
   11. RESPONSIVE
============================================================ */
@media (max-width: 1024px) {
  .site-header {
    grid-template-columns: auto auto auto auto;
    padding-left: 12px;
    padding-right: 12px;
    min-height: 66px;
  }
  .menu-toggle {
    display: inline-flex;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid var(--border-mid);
    /* FIX: #dfdfdf → token */
    border-radius: 999px;
    background: var(--white);
  }
  .main-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 66px;
    background: var(--white);
    border-bottom: 1px solid var(--separator);
    /* FIX: #ececec → token */
    padding: 14px 24px 18px;
    display: none;
  }
  .main-nav.is-open {
    display: block;
  }
  .main-nav ul {
    flex-direction: column;
    align-items: flex-start;
  }
  .header-cta {
    display: none;
  }
  .hero-grid,
  .intro-wrap,
  .clients-wrap,
  .footer-grid,
  .card-grid-news {
    grid-template-columns: 1fr;
    grid-template-areas: none;
  }
  .hero-main,
  .hero-side {
    min-height: 360px;
    border-radius: 24px;
  }
  .news-card,
  .news-card-lg,
  .card-grid-news .news-card:nth-child(2),
  .card-grid-news .news-card:nth-child(3) {
    grid-area: unset;
    min-height: 240px;
  }
  .card-grid-3,
  .stats-grid,
  .logo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .section-space {
    padding: 30px 0;
  }
  .site-header {
    position: sticky;
    top: 0;
  }
  .header-inner {
    min-height: 66px;
  }
  .brand {
    max-width: 96px;
  }
  .main-nav {
    top: 66px;
  }
  .hero-main,
  .hero-side {
    min-height: 250px;
  }
  .hero-overlay {
    padding: 18px;
  }
  .intro-box {
    padding: 24px;
  }
  .card-grid-3,
  .stats-grid,
  .logo-grid,
  .cta-band-inner,
  .cta-buttons {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: flex-start;
  }
}
#cookies_ventana {
  position: fixed;
  z-index: 30000;
  width: 96%;
  left: 2%;
  bottom: 20px !important;
  background: #000;
  color: #fff !important;
  border-radius: 10px !important;
  padding-right: 10px;
  padding-left: 10px;
  padding-top: 10px;
  padding-bottom: 20px;
  text-align: center;
}

@media only screen and (max-width: 992px) {
  #cookies_ventana {
    width: 70%;
  }
}
#cookies_ventana p {
  text-align: center !important;
}

#cookies_ventana a {
  color: #fff !important;
  border: 1px solid #fff !important;
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 5px;
  padding-bottom: 5px;
  margin-bottom: 10px;
}

@media only screen and (max-width: 992px) {
  #cookies_ventana a {
    text-wrap: nowrap;
    margin-bottom: 10px !important;
    float: left !important;
  }
}
/* ============================================================
   MODAL CONTACTO
   ============================================================ */
.modal-contacto .modal-input {
  border: 1px solid var(--border-mid);
  border-radius: var(--radius-md);
  padding: 14px 18px;
  font-size: 15px;
  background: #fafafa;
  transition: all 0.3s ease;
}
.modal-contacto .modal-input:focus {
  outline: none;
  border-color: var(--brand-green);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(120, 190, 32, 0.15);
}
.modal-contacto .btn-close {
  width: 14px;
  height: 14px;
  opacity: 0.5;
  transition: all 0.3s ease;
}
.modal-contacto .btn-close:hover {
  opacity: 1;
  transform: rotate(90deg);
}

/*# sourceMappingURL=estilos.css.map */