/* ACUMIN VARIABLE CONCEPT GLOBAL ENFORCEMENT */

/* ======================
   TOKENS — PALETA ESTRICTA SA2EN
   Blues: #003E86
   Orange: #FF7F21
   Yellow: #FFBB24
   White: #ffffff
   NO negros, NO grises oscuros, NO sombras
   ====================== */
:root {
  --c-blue-1:   #003E86;
  --c-blue-2:   #002d62;
  --c-blue-3:   #003E86;
  --c-orange:   #FF7F21;
  --c-yellow:   #FFBB24;
  --c-white:    #ffffff;
  --c-bg:       #f8fafc;
  --c-text:     #003E86;
  --c-muted:    #64748b;
  --c-border:   #e2e8f0;
  --f-sans:     'Acumin Variable Concept', sans-serif;
  --f-head:     'Acumin Variable Concept', sans-serif;
  --t:          all 0.25s ease;
  --r:          0.75rem;
}

/* RESET */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body, p, a, span, li, input, textarea, select, h1, h2, h3, h4, h5, h6, button { 
    font-family: "Acumin Variable Concept", "Acumin Variable", "Acumin Pro", "Acumin", sans-serif !important; 
}
h1, h2, h3, h4, h5, h6 { 
    font-weight: 900; 
    font-variation-settings: 'wght' 900, 'wdth' 100;
    text-transform: uppercase; 
    line-height: 1.1; 
    letter-spacing: -0.03em; 
}
p, a, span, li, input, textarea, select { 
    font-weight: 500; 
    font-variation-settings: 'wght' 500;
}
img { max-width:100%; display:block; }
a { text-decoration:none; }

/* LAYOUT */
.container { width:100%; max-width:1920px; margin:0 auto; padding:0 5%; }
.section    { padding:80px 0; }
.bg-light   { background:var(--c-bg); }
.text-center { text-align:center; }

/* UTILITIES */
.btn-group { display:flex; gap:12px; flex-wrap:wrap; }
.hero-badge-dot { display:inline-block; width:8px; height:8px; background:var(--c-orange); border-radius:50%; flex-shrink:0; }
.section-title { font-size:2.5rem; color:var(--c-blue-1); margin-bottom:3rem; }
.section-desc { color:var(--c-muted); max-width:600px; margin:0.75rem auto 0; }
.section-header { display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:2.5rem; }
.section-header h2 { font-size:2.5rem; color:var(--c-blue-1); }
.section-header-right { max-width:400px; text-align:right; }
.section-header-right p { color:var(--c-muted); font-size:0.9rem; line-height:1.7; margin-bottom:1rem; }
.link-cta { display:inline-flex; align-items:center; gap:6px; color:var(--c-orange); font-weight:700; font-size:0.9rem; transition:var(--t); }
.link-cta:hover { color:var(--c-blue-1); }
.link-cta i { transition:var(--t); }
.link-cta:hover i { transform:translateX(4px); }
.about-card-icon { width:52px; height:52px; background:rgba(27,59,111,0.08); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:var(--c-blue-1); margin-bottom:1.5rem; flex-shrink:0; }
.about-card.primary .about-card-icon { background:var(--c-orange); color:var(--c-white); }


.section-header-centered { text-align:center; max-width:800px; margin:0 auto 4rem auto; display:flex; flex-direction:column; align-items:center; }
.section-label-centered { display:inline-flex; align-items:center; gap:0.5rem; background:rgba(0,62,134,0.05); border:1px solid rgba(0,62,134,0.1); padding:0.25rem 1rem; border-radius:0.5rem; font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--c-blue-1); margin-bottom:1rem; }
.section-label-centered .dot { width:0.5rem; height:0.5rem; border-radius:50%; background:var(--c-orange); }
.section-header-centered h2 { font-size:clamp(2rem, 4vw, 3rem); color:var(--c-blue-1); margin-bottom:1.5rem; line-height:1.1; }
.line-center { width:5rem; height:4px; background:var(--c-orange); margin-bottom:1.5rem; }
.section-header-centered p { font-size:0.95rem; color:var(--c-muted); line-height:1.6; font-weight:500; max-width:700px; }

/* REVEAL UTILS */
.reveal { opacity:0; transform:translateY(24px); transition:opacity 0.6s ease, transform 0.6s ease; }
.reveal.active { opacity:1; transform:none; }

/* ============================
   BOTÓN ÚNICO — FLAT, SIN SOMBRA
   Variantes: .btn--primary .btn--outline .btn--ghost
   ============================ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 28px; font-family:var(--f-sans); font-size:0.95rem; font-weight:700;
  border-radius:var(--r); border:2px solid transparent;
  cursor:pointer; transition:var(--t); white-space:nowrap;
}
.btn--primary  { background:var(--c-orange); color:#ffffff !important; border:2px solid var(--c-orange); }
.btn--primary:hover  { background:var(--c-blue-1); border-color:var(--c-blue-1); color:#ffffff !important; }

.btn--blue    { background:var(--c-blue-1); color:var(--c-white); border:2px solid var(--c-blue-1); }
.btn--blue:hover    { background:var(--c-white); color:var(--c-blue-1); border-color:var(--c-blue-1); }

.btn--outline  { background:transparent; color:var(--c-blue-1); border:2px solid var(--c-blue-1); }
.btn--outline:hover  { background:var(--c-blue-1); color:var(--c-white); }

.btn--ghost    { background:rgba(255,255,255,0.08); color:var(--c-white); border-color:rgba(255,255,255,0.2); }
.btn--ghost:hover    { background:rgba(255,255,255,0.15); }

/* Botón Contacto Especial: Azul Palpitante */
.btn--contact-pulse { 
  background: var(--c-blue-1) !important; 
  color: #ffffff !important; 
  border: none;
  animation: pulse-blue 2s infinite;
  box-shadow: 0 0 0 0 rgba(27, 59, 111, 0.7);
}
.btn--contact-pulse:hover { 
  background: var(--c-orange) !important; 
  color: #ffffff !important; 
  animation: none;
  transform: translateY(-3px);
}
@keyframes pulse-blue {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(27, 59, 111, 0.7); }
  70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(27, 59, 111, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(27, 59, 111, 0); }
}

/* Compatibilidad con clases antiguas */
.btn-primary  { display:inline-flex; align-items:center; justify-content:center; padding:12px 28px; font-weight:700; border-radius:var(--r); border:2px solid var(--c-orange); background:var(--c-orange); color:#ffffff !important; cursor:pointer; transition:var(--t); }
.btn-primary:hover { background:#c95e18; border-color:#c95e18; color:#ffffff !important; }
.btn-outline  { display:inline-flex; align-items:center; justify-content:center; padding:12px 28px; font-weight:700; border-radius:var(--r); border:2px solid var(--c-white); background:transparent; color:var(--c-white); cursor:pointer; transition:var(--t); }
.btn-outline:hover { background:var(--c-white); color:var(--c-blue-1); }

/* ============================
   NAVBAR
   ============================ */
.navbar { position:absolute; top:0; left:0; width:100%; z-index:1000; padding:16px 0; }
.navbar-container { display:flex; justify-content:space-between; align-items:center; }
.logo img { height:60px; width:auto; }

.nav-menu ul { display:flex; list-style:none; gap:2rem; align-items:center; }
.nav-menu ul li a { color:var(--c-blue-1); font-weight:700; font-size:1rem; transition:var(--t); }
.nav-menu ul li a:hover { color:var(--c-orange); }
.nav-buttons { margin-left:1rem; }

.btn-cotizaciones-header {
  display:inline-flex; align-items:center; padding:10px 24px;
  background:var(--c-orange); color:#ffffff !important;
  border:2px solid var(--c-orange); border-radius:var(--r);
  font-weight:700; font-size:0.95rem; transition:var(--t);
}
.btn-cotizaciones-header:hover { background:#c95e18; border-color:#c95e18; }

.mobile-toggle { display:none; cursor:pointer; font-size:1.5rem; color:var(--c-blue-1); z-index:2100; }

/* ============================
   MODAL
   ============================ */
.modal { display:none; position:fixed; inset:0; background:rgba(27,59,111,0.7); z-index:9999; align-items:center; justify-content:center; }
.modal.active { display:flex; }
.modal-content { background:var(--c-white); border-radius:var(--r); padding:2.5rem; width:90%; max-width:560px; position:relative; max-height:90vh; overflow-y:auto; border:2px solid var(--c-border); }
.modal-header { margin-bottom:1.5rem; border-bottom:2px solid var(--c-border); padding-bottom:1rem; }
.modal-header h2 { color:var(--c-blue-1); font-size:1.5rem; margin-bottom:0.25rem; }
.modal-header p { color:var(--c-muted); font-size:0.9rem; }
.close-modal { position:absolute; top:1rem; right:1.25rem; font-size:1.75rem; cursor:pointer; color:var(--c-muted); transition:var(--t); line-height:1; }
.close-modal:hover { color:var(--c-orange); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.modal-content input, .modal-content select, .modal-content textarea { width:100%; padding:0.75rem 1rem; border-radius:var(--r); border:2px solid var(--c-border); font-family:var(--f-sans); font-size:0.9rem; transition:var(--t); background:var(--c-white); }
.modal-content input:focus, .modal-content select:focus, .modal-content textarea:focus { outline:none; border-color:var(--c-orange); }
.modal-content label { display:block; margin-bottom:0.4rem; font-weight:700; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--c-blue-1); }
.modal-content .form-group { margin-bottom:1.25rem; }

/* ============================
   HERO — fondo blanco/plateado con imagen de construcción
   ============================ */
.hero { min-height:100vh; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(135deg, #ffffff 0%, #f0f4f8 45%, #e8eef5 100%); position:relative; padding-top:60px; padding-bottom:40px; overflow:hidden; }
/* Fondo Plano Gris Leve con Cuadrícula Arquitectónica */
.hero-bg { 
  position:absolute; inset:0; 
  background-color: #f4f7f9;
  background-image: 
    linear-gradient(rgba(27,59,111,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(27,59,111,0.03) 1px, transparent 1px);
  background-size: 40px 40px;
  z-index:1; 
}
/* Efecto Flash / Brillo Estático para profundidad */
.hero-overlay { 
  position:absolute; inset:0; 
  background: radial-gradient(circle at 75% 20%, rgba(255,255,255,0.8) 0%, transparent 60%);
  z-index:2; 
}
.hero-grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:1rem 3rem; align-items:stretch; position:relative; z-index:10; flex-grow:1; padding-bottom:0; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; padding:6px 16px; border-radius:0.5rem; background:rgba(27,59,111,0.06); border:1px solid rgba(27,59,111,0.15); color:var(--c-blue-2); font-size:0.8rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:1rem; }
.hero-title { font-size:clamp(1.65rem,3.3vw,3.3rem); color:var(--c-blue-1); line-height:1; font-weight:900; margin-bottom:0.6rem; }
.hero-title span { color:var(--c-orange); }
.hero-content { padding-top:4rem; padding-bottom:4rem; align-self:center; }
.hero-desc { font-size:0.66rem; color:var(--c-muted); max-width:520px; margin-bottom:1.5rem; line-height:1.7; }

.hero-image-wrapper { position:relative; display:flex; align-items:flex-end; }
.hero-image-inner { position:relative; border-radius:1rem 1rem 0 0; overflow:visible; border:none; width:100%; }
.hero-image-inner img { width:100%; height:auto; object-fit:contain; display:block; margin-bottom:-4px; }

.hero-bottom-content { position:relative; z-index:20; width:100%; padding-bottom:1rem; margin-top: -1rem; }

.hero-shine {
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-20deg);
  z-index: 10;
  pointer-events: none;
  animation: shineSweepWP 15s infinite ease-in-out;
  mix-blend-mode: overlay;
}
@keyframes shineSweepWP {
  0% { left: -100%; opacity: 0; }
  2% { opacity: 1; }
  12% { left: 200%; opacity: 0; }
  100% { left: 200%; opacity: 0; }
}

/* ============================
   CLIENTS BAR — CAJA AZUL SEGÚN SCREENSHOT
   ============================ */
.hero-logos-row { 
  width: 100%;
  margin-top: -3.5rem;
  z-index: 100;
  position: relative;
}
.logo-slogan {
    color: #64748b;
    font-size: 1.15rem;
    font-weight: 300;
    margin-bottom: 1.2rem;
    letter-spacing: 0.02em;
    font-family: var(--f-sans);
    text-align: left;
    padding-left: 1rem;
}
.logo-grid-fixed { 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    gap: 1rem; 
    padding: 1.5rem 3rem;
    background: #ffffff;
    box-shadow: 0 15px 50px rgba(0,0,0,0.08);
    width: 100%;
    border-radius: 1.2rem;
}

.logo-marquee-track {
    display: flex;
    align-items: center;
    width: 100%;
    animation: none;
}

.logo-marquee-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex: 1;
}

.logo-marquee-group:last-child {
    display: none;
}

@keyframes logoMarquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.logo-grid-fixed a {
    display: flex;
    align-items: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
}

.logo-grid-fixed img {
    height: 75px;
    width: auto;
    object-fit: contain;
    transition: all 0.3s ease;
}

/* Flash Pop-Up Effect */
.logo-grid-fixed a:hover {
    transform: translateY(-10px) scale(1.08);
    filter: brightness(1.1) contrast(1.1);
}

.logo-sep {
    width: 1px;
    height: 40px;
    background: rgba(0, 0, 0, 0.06);
}

/* ============================
   FOOTER CAROUSEL — 40% MÁS GRANDE (IMPRESIONANTE)
   ============================ */
.footer-carousel-section { padding:6rem 0 2rem; overflow:hidden; background:transparent; }
.footer-carousel-section .carousel-track { display:flex; gap:2rem; width:max-content; animation:cscroll 100s linear infinite; }
.footer-carousel-section .carousel-slide { width:450px; height:280px; border-radius:1.5rem; overflow:hidden; flex-shrink:0; border:1px solid rgba(27,59,111,0.05); }
.footer-carousel-section .carousel-slide img { width:100%; height:100%; object-fit:cover; transition:var(--t); }
.footer-carousel-section .carousel-slide:hover img { transform:scale(1.08); }
@keyframes cscroll { to { transform:translateX(-50%); } }

/* ============================
   SECTION LABEL
   ============================ */
.section-label { display:flex; align-items:center; gap:10px; color:var(--c-orange); font-weight:800; text-transform:uppercase; font-size:0.78rem; letter-spacing:0.12em; margin-bottom:1rem; }
.section-label .line { width:28px; height:2px; background:var(--c-orange); flex-shrink:0; }

/* ============================
   ABOUT
   ============================ */
.about-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; margin-bottom:3rem; }
.about-card { padding:2.5rem; border-radius:var(--r); background:var(--c-white); border:2px solid var(--c-border); transition:var(--t); }
.about-card:hover { border-color:var(--c-blue-2); }
.about-card h3 { color:var(--c-blue-1); margin-bottom:0.75rem; font-size:1.25rem; }
.about-card p { color:var(--c-muted); line-height:1.7; font-size:0.95rem; }
.about-card.primary { background:var(--c-blue-1); border-color:var(--c-blue-1); }
.about-card.primary h3 { color:var(--c-white); }
.about-card.primary p { color:rgba(255,255,255,0.75); }
.about-card.primary:hover { border-color:var(--c-orange); }

.values-grid { display:grid; grid-template-columns:repeat(6, 1fr); gap:1rem; }
.value-item { display:flex; gap:0.5rem; align-items:center; padding:0.75rem; background:var(--c-bg); border-radius:var(--r); border:2px solid var(--c-border); transition:var(--t); }
.value-icon { font-size:1.25rem; color:var(--c-orange); transition:var(--t); flex-shrink:0; }
.value-item:hover { background:var(--c-blue-1); border-color:var(--c-blue-1); color:var(--c-white); }
.value-item:hover .value-icon, .value-item:hover h4, .value-item:hover p { color:var(--c-white); }
.value-item h4 { font-size:0.95rem; margin-bottom:0.25rem; color:var(--c-blue-1); transition:var(--t); }
.value-item p { font-size:0.85rem; color:var(--c-muted); transition:var(--t); }

/* ============================
   SERVICES — Tarjetas verticales premium
   ============================ */
.services-section { background:var(--c-bg); }
.services-grid { display:grid; grid-template-columns:1fr; gap:1.5rem; margin-top:2.5rem; }
@media (min-width:640px) { .services-grid { grid-template-columns:repeat(2, 1fr); } }
@media (min-width:1200px) { .services-grid { grid-template-columns:repeat(4, 1fr); } }

.service-card { background:var(--c-white); border-radius:1rem; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,0.06); border:1px solid #e2e8f0; transition:all 0.4s cubic-bezier(0.16,1,0.3,1); }
.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(0,62,134,0.12); border-color:var(--c-blue-1); }

.sc-img { height:180px; position:relative; overflow:hidden; background:#f1f5f9; }
.sc-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s ease; }
.service-card:hover .sc-img img { transform:scale(1.08); }

.sc-overlay { position:absolute; inset:0; background:linear-gradient(135deg, rgba(0,62,134,0.55), transparent 60%); display:flex; align-items:flex-start; padding:1rem; }
.sc-icon { width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center; color:white; font-size:1.25rem; transition:all 0.3s ease; }
.service-card:hover .sc-icon { background:white; color:var(--c-blue-1); transform:scale(1.05) rotate(-5deg); }
.sc-num { position:absolute; top:1rem; right:1rem; color:white; font-size:1.5rem; font-weight:800; opacity:0.4; line-height:1; }

.sc-body { padding:1.25rem; }
.sc-body h3 { font-size:1.05rem; font-weight:800; color:var(--c-blue-1); margin:0 0 0.5rem 0; line-height:1.2; }
.sc-body p { font-size:0.82rem; color:#475569; line-height:1.5; margin:0 0 1rem 0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.sc-link { display:inline-flex; align-items:center; gap:0.5rem; color:var(--c-blue-1); font-weight:700; font-size:0.78rem; text-decoration:none; text-transform:uppercase; letter-spacing:0.04em; transition:gap 0.3s ease; }
.sc-link i { font-size:0.7rem; transition:transform 0.3s ease; }
.service-card:hover .sc-link { gap:0.75rem; }
.service-card:hover .sc-link i { transform:translateX(4px); }

/* ============================
   VALUE CARDS
   ============================ */
.values-cards-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.value-card { position:relative; padding:3.5rem; border-radius:1.25rem; overflow:hidden; color:var(--c-white); min-height:420px; display:flex; align-items:flex-end; transition:var(--t); }
.blue-card { background:var(--c-blue-1); }
.orange-card { background:var(--c-orange); }
.card-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.3), transparent); transition:var(--t); }
.value-card:hover .card-overlay { background:linear-gradient(to top, rgba(0,0,0,0.5), transparent); }
.card-content { position:relative; z-index:2; }
.card-title { font-size:2.25rem; margin-bottom:1rem; }
.card-desc { font-size:1rem; opacity:0.85; max-width:400px; }
.card-list { list-style:none; margin-top:1.5rem; }
.card-list li { margin-bottom:0.75rem; display:flex; align-items:center; gap:12px; font-weight:700; font-size:0.95rem; }

/* ============================
   CONTACT
   ============================ */
.contact-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:3rem; }
.contact-visual-card { background:var(--c-blue-1); border-radius:1.25rem; padding:2.5rem; color:var(--c-white); }
.visual-card-flex { display:flex; flex-direction:column; gap:2rem; }
.visual-card-img img { width:100%; border-radius:var(--r); }
.visual-quote { font-size:1.35rem; font-style:italic; font-weight:300; opacity:0.9; line-height:1.5; }
.visual-label { color:var(--c-orange); font-weight:800; text-transform:uppercase; font-size:0.75rem; letter-spacing:0.1em; }
.form-group { margin-bottom:1.25rem; }
.form-group label { display:block; margin-bottom:0.4rem; font-weight:700; color:var(--c-blue-1); font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em; }
.form-control { width:100%; padding:0.875rem 1.25rem; border-radius:var(--r); border:2px solid var(--c-border); background:var(--c-white); font-family:var(--f-sans); font-size:0.9rem; transition:var(--t); }
.form-control:focus { outline:none; border-color:var(--c-orange); }
.compact-contact-footer { margin-top:3rem; background:var(--c-blue-1); padding:2.5rem 3rem; border-radius:1.25rem; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; color:var(--c-white); }
.footer-info-item { display:flex; gap:1rem; align-items:center; transition:var(--t); }
.footer-info-item:hover { color:var(--c-orange); }
.footer-info-item i { font-size:1.75rem; color:var(--c-orange); }
.footer-info-item .label { text-transform:uppercase; font-size:0.7rem; font-weight:900; color:var(--c-orange); margin-bottom:2px; display:block; }
.footer-info-item .value { font-weight:800; font-size:1rem; display:block; }
.footer-info-item .sub { font-size:0.8rem; opacity:0.6; display:block; }

/* ============================
   BOTTOM UNIFIED (IMPACT + PROJECTS) 50/50
   ============================ */
.bottom-unified-section { background:var(--c-white); border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border); overflow:hidden; }
.unified-grid { display:grid; grid-template-columns:1fr 1fr; }

.impact-side { position:relative; background:var(--c-blue-1); overflow:hidden; min-height:220px; display:flex; align-items:center; padding:2rem; }
.impact-bg-overlay { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0.3; filter:grayscale(100%); mix-blend-mode:multiply; }
.impact-content-box { position:relative; z-index:2; max-width:400px; }

.projects-side { background:var(--c-light); padding:1.5rem; display:flex; flex-direction:column; justify-content:center; }
.mini-projects-marquee { overflow:hidden; position:relative; margin-top:0.75rem; }
.mini-track { display:flex; gap:0.5rem; animation:mini-scroll 30s linear infinite; }
.mini-track img { height:120px; width:auto; border-radius:0.25rem; object-fit:cover; border:1px solid var(--c-border); }

@keyframes scroll-projects-unified {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.animate-scroll-projects-unified {
    animation: scroll-projects-unified 35s linear infinite;
}

@keyframes scroll-logos {
    0% { transform: translateX(0); }
    100% { transform: translateX(-33.33%); }
}

/* ============================
   TEAM — 6 columnas compactas como Next.js
   ============================ */
.team-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:0.75rem; margin-top:1rem; }
.team-card { border-radius:0.5rem; overflow:hidden; background:var(--c-white); border:1px solid var(--c-border); transition:var(--t); cursor:pointer; }
.team-card:hover { border-color:var(--c-orange); }
.team-img { aspect-ratio:3/2; overflow:hidden; position:relative; }
.team-img img { width:100%; height:100%; object-fit:cover; transition:var(--t); }
.team-card:hover .team-img img { transform:scale(1.06); }
.team-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(27,59,111,0.85), transparent); opacity:0; transition:var(--t); display:flex; align-items:flex-end; padding:0.5rem; }
.team-card:hover .team-overlay { opacity:1; }
.team-overlay p { color:var(--c-white); font-size:0.6rem; font-weight:700; }
.team-content { padding:0.5rem; text-align:center; }
.team-content h4 { font-size:0.7rem; font-weight:700; color:var(--c-blue-1); margin-bottom:0; transition:var(--t); line-height:1.2; }
.team-card:hover .team-content h4 { color:var(--c-orange); }
.team-content p { font-size:0.55rem; color:var(--c-muted); font-weight:700; text-transform:uppercase; letter-spacing:0.05em; margin:0; }

/* ============================
   COMBINED IMPACT (ci- classes)
   ============================ */
.ci-section { padding:100px 0; background:#fff; border-top:1px solid #f1f5f9; }
.ci-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.ci-left { padding-right:2rem; border-right:1px solid #f1f5f9; }
.ci-label-row { margin-bottom:1.5rem; }
.ci-label { color:var(--c-orange); font-weight:800; text-transform:uppercase; font-size:0.7rem; letter-spacing:0.2em; }
.ci-title { font-family:var(--f-head); font-size:3.2rem; color:var(--c-blue-1); line-height:1; margin-bottom:2rem; font-weight:900; letter-spacing:-0.04em; }
.ci-title span { color:var(--c-orange); }
.ci-image-wrap { border-radius:12px; overflow:hidden; margin-bottom:2rem; box-shadow:0 15px 35px rgba(0,62,134,0.08); }
.ci-image { width:100%; height:300px; object-fit:cover; display:block; }
.ci-text { font-size:1rem; color:var(--c-muted); line-height:1.7; margin-bottom:2.5rem; font-weight:500; }
.ci-btns .btn { padding:1rem 2rem; }
.ci-btns .btn--outline { font-size:0.8rem; }
.ci-faq-side { }
.ci-faq-title { font-family:var(--f-head); font-size:2.2rem; color:var(--c-blue-1); font-weight:900; margin-bottom:2.5rem; letter-spacing:-0.02em; }
.ci-faq-title span { color:var(--c-orange); }
.ci-faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 2rem; }
.faq-item-mini { border-bottom:1px solid #f1f5f9; margin-bottom:0.5rem; }
.faq-trigger-comb { width:100%; padding:1rem 0; display:flex; justify-content:space-between; align-items:center; background:none; border:none; cursor:pointer; text-align:left; }
.faq-trigger-comb span { font-family:var(--f-sans); font-size:0.85rem; font-weight:800; color:var(--c-blue-1); padding-right:1rem; line-height:1.2; }
.faq-trigger-comb i { color:var(--c-orange); font-size:0.65rem; }
.faq-content-comb { max-height:0; overflow:hidden; transition:max-height 0.3s ease-out; }
.faq-answer { padding-bottom:1rem; color:var(--c-muted); font-size:0.8rem; line-height:1.4; font-weight:500; }

/* ============================
   SOCIAL IMPACT
   ============================ */
.social-impact { background:var(--c-bg); }
.social-impact-card { background:var(--c-blue-1); border-radius:1.25rem; display:grid; grid-template-columns:1fr 1.2fr; overflow:hidden; color:var(--c-white); }
.social-impact-image img { width:100%; height:100%; object-fit:cover; }
.social-impact-content { padding:4rem 3.5rem; display:flex; flex-direction:column; justify-content:center; }
.social-impact-content h2 { font-size:2.75rem; margin-bottom:1.5rem; line-height:1.15; }
.social-impact-content p { font-size:1rem; opacity:0.8; line-height:1.75; margin-bottom:2rem; }
.social-impact-btns { display:flex; gap:1rem; flex-wrap:wrap; }

/* ============================
   LOGO MARQUEE FOOTER — GRANDES
   ============================ */
.logo-marquee-footer {
  width: 100%;
  padding: 1rem 0;
  background: var(--c-white);
  overflow: hidden;
  border-top: 1px solid var(--c-border);
  position: relative;
  z-index: 10;
}

.marquee-container {
  display: flex;
  overflow: hidden;
  user-select: none;
  mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
}

.marquee-content {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 4rem;
  width: max-content;
  animation: scroll-logos-wp 40s linear infinite;
  padding: 0.5rem 0;
}

.marquee-content img {
  height: 35px;
  width: auto;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.35;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.marquee-content img:hover {
  filter: grayscale(0);
  opacity: 1;
  transform: translateY(-5px);
}

/* Hide any potential slider arrows */
.slick-arrow, .swiper-button-next, .swiper-button-prev, .owl-nav {
    display: none !important;
}

.marquee-text {
    font-size: 2rem;
    font-weight: 900;
    color: var(--c-blue-1);
    opacity: 0.15;
    white-space: nowrap;
    text-transform: uppercase;
    font-family: var(--f-head);
    letter-spacing: -0.05em;
    transition: all 0.4s ease;
}

.marquee-text:hover {
    opacity: 0.8;
    transform: scale(1.05);
}

@keyframes scroll-logos-wp {
  from { transform: translateX(-50%); }
  to { transform: translateX(0); }
}

/* ============================
   FOOTER — azul corporativo #1B3B6F
   ============================ */
.footer { background:var(--c-blue-1); color:var(--c-white); padding:60px 0 32px; border-top:6px solid var(--c-orange); }

/* Hide ANY slider arrows, dots, or navigation in footer sliders */
.footer-carousel-section .slick-arrow, 
.footer-carousel-section .slick-dots,
.logo-marquee-footer .slick-arrow,
.logo-marquee-footer .slick-dots,
.carousel-track + .arrows, 
.carousel-track + .navigation {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; margin-bottom:3rem; }
.footer-logo img { height:52px; margin-bottom:1rem; }
.footer p { color:rgba(255,255,255,0.75); font-size:0.875rem; line-height:1.7; }
.footer h4 { font-size:1rem; margin-bottom:1.25rem; color:var(--c-white); font-family:var(--f-head); }
.footer-links { list-style:none; }
.footer-links li { margin-bottom:0.75rem; }
.footer-links li a { color:rgba(255,255,255,0.65); font-size:0.875rem; transition:var(--t); display:inline-flex; align-items:center; gap:6px; }
.footer-links li a:hover { color:var(--c-orange); }
.social-link { width:36px; height:36px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.15); border-radius:0.5rem; display:inline-flex; align-items:center; justify-content:center; color:var(--c-white); font-size:0.875rem; transition:var(--t); }
.social-link:hover { background:var(--c-orange); border-color:var(--c-orange); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.1); padding-top:2rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.footer-copy { color:rgba(255,255,255,0.6); font-size:0.9rem; }
.footer-links { display:flex; gap:1.5rem; }
.footer-links a { color:rgba(255,255,255,0.6); font-size:0.9rem; transition:var(--t); }
.footer-links a:hover { color:var(--c-orange); }

/* Footer classes used in footer.php */
.footer-main-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; margin-bottom:2rem; }
.footer-brand { display:flex; flex-direction:column; gap:0.75rem; }
.footer-brand-logo { height:auto; width:auto; max-height:48px; }
.footer-slogan { color:rgba(255,255,255,0.75); font-size:0.85rem; line-height:1.5; }
.footer-slogan span { color:var(--c-orange); font-weight:700; }
.footer-social { display:flex; gap:0.5rem; margin-top:0.5rem; }
.footer-col-title { font-size:1rem; margin-bottom:1rem; color:var(--c-white); font-family:var(--f-head); }
.footer-list { list-style:none; padding:0; margin:0; }
.footer-list li { margin-bottom:0.6rem; }
.footer-list a { color:rgba(255,255,255,0.65); font-size:0.85rem; transition:var(--t); text-decoration:none; }
.footer-list a:hover { color:var(--c-orange); }
.footer-claims-btn { display:inline-flex; align-items:center; gap:0.4rem; margin-top:1rem; padding:0.5rem 0.75rem; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1); border-radius:0.4rem; color:rgba(255,255,255,0.8); font-size:0.75rem; text-decoration:none; transition:var(--t); }
.footer-claims-btn:hover { background:rgba(255,255,255,0.12); color:var(--c-white); }
.footer-bottom-bar { border-top:1px solid rgba(255,255,255,0.1); padding-top:1.5rem; margin-top:1rem; display:grid; grid-template-columns:1fr 1fr auto; gap:1.5rem; align-items:start; }
.footer-info-block { display:flex; flex-direction:column; gap:0.15rem; }
.footer-info-label { font-size:0.65rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--c-orange); font-weight:700; }
.footer-info-val { font-size:0.8rem; color:rgba(255,255,255,0.85); font-weight:500; }
.footer-info-sub { font-size:0.7rem; color:rgba(255,255,255,0.5); }
.footer-copy-block { display:flex; flex-direction:column; gap:0.25rem; text-align:right; font-size:0.75rem; color:rgba(255,255,255,0.6); }
.footer-flag { font-size:0.6rem; color:var(--c-orange); font-weight:600; }

/* ============================
   TECH MERGED SECTION
   ============================ */
.tech-merged-grid { display:grid; grid-template-columns:1fr; gap:4rem; align-items:start; }
@media (min-width:1024px) { .tech-merged-grid { grid-template-columns:5fr 7fr; gap:5rem; } }
.tech-left { position:sticky; top:8rem; }
.tech-label { display:flex; align-items:center; gap:0.75rem; font-size:0.7rem; font-weight:800; text-transform:uppercase; letter-spacing:0.15em; margin-bottom:2.5rem; }
.tech-logo { margin-bottom:2.5rem; }
.tech-logo img { height:7rem; width:auto; filter:drop-shadow(0 4px 6px rgba(0,0,0,0.05)); }
.tech-lead { font-size:0.95rem; line-height:1.6; color:#475569; margin-bottom:2.5rem; }
.tech-lead strong { color:var(--c-blue-1); font-weight:800; }
.tech-features { display:flex; flex-direction:column; gap:0.5rem; }
.tf-item { display:flex; align-items:flex-start; gap:1rem; cursor:default; padding:0.75rem; margin-left:-0.75rem; margin-right:-0.75rem; border-radius:1rem; transition:background 0.3s ease; }
.tf-item:hover { background:var(--c-bg); }
.tf-icon { width:3rem; height:3rem; border-radius:0.75rem; background:rgba(0,62,134,0.05); border:1px solid rgba(0,62,134,0.1); display:flex; align-items:center; justify-content:center; font-size:1.1rem; color:var(--c-blue-1); transition:transform 0.3s ease, background 0.3s ease, color 0.3s ease; flex-shrink:0; box-shadow:0 2px 5px rgba(0,0,0,0.02); }
.tf-item:hover .tf-icon { background:var(--c-blue-1); border-color:var(--c-blue-1); color:var(--c-white); transform:scale(1.1); }
.tf-text { display:flex; flex-direction:column; justify-content:center; min-height:3rem; }
.tf-text h4 { font-size:0.95rem; font-weight:800; color:#0f172a; margin:0 0 0.25rem 0; transition:color 0.3s ease; }
.tf-item:hover .tf-text h4 { color:var(--c-blue-1); }
.tf-text p { font-size:0.8rem; color:#475569; line-height:1.4; margin:0; }

.tr-title { font-size:2rem; font-weight:900; color:var(--c-blue-1); margin-bottom:1.5rem; }
.tr-cards { display:flex; flex-direction:column; gap:1.25rem; }

.tech-compact-card { position:relative; background:var(--c-white); border:1px solid #e2e8f0; border-radius:1rem; padding:1.5rem; display:flex; flex-direction:column; gap:1.5rem; overflow:hidden; transition:box-shadow 0.3s ease; }
@media (min-width:640px) { .tech-compact-card { flex-direction:row; padding:2rem; } }
.tech-compact-card:hover { box-shadow:0 15px 35px rgba(0,0,0,0.05); border-color:#cbd5e1; }

.tcc-accent { position:absolute; left:0; top:0; bottom:0; width:4px; transform:scaleY(0); transform-origin:top; transition:transform 0.3s ease; }
.tech-compact-card:hover .tcc-accent { transform:scaleY(1); }
.tcc-accent.accent-blue { background:var(--c-blue-1); }
.tcc-accent.accent-orange { background:var(--c-orange); }

.tcc-icon-large { width:4rem; height:4rem; border-radius:1rem; display:flex; align-items:center; justify-content:center; font-size:1.75rem; flex-shrink:0; transition:var(--t); }
.tcc-icon-large.icon-blue { background:rgba(0,62,134,0.05); color:var(--c-blue-1); }
.tech-compact-card:hover .tcc-icon-large.icon-blue { background:var(--c-blue-1); color:var(--c-white); }
.tcc-icon-large.icon-orange { background:rgba(255,127,33,0.05); color:var(--c-orange); }
.tech-compact-card:hover .tcc-icon-large.icon-orange { background:var(--c-orange); color:var(--c-white); }

.tcc-content { flex:1; }
.tcc-content h3 { font-size:1.25rem; font-weight:800; color:var(--c-blue-1); margin-bottom:0.75rem; transition:color 0.3s ease; }
.tcc-content p { font-size:0.85rem; color:#475569; line-height:1.6; margin-bottom:1rem; }
.tcc-link { display:inline-flex; align-items:center; gap:0.5rem; font-size:0.7rem; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--c-blue-1); cursor:pointer; transition:color 0.3s ease; }
.tcc-link:hover { text-decoration:underline; }
.tcc-link i { transition:transform 0.3s ease; font-size:1rem; }
.tech-compact-card:hover .tcc-link i { transform:translateX(5px); }

/* ============================
   CONTACT & FAQ SECTION
   ============================ */
.contact-compact-box { display:grid; grid-template-columns:1fr 1fr; background:var(--c-white); border-radius:1.5rem; overflow:hidden; box-shadow:0 10px 40px rgba(0,0,0,0.08); margin-bottom:4rem; }
.ccb-left { background:var(--c-blue-1); padding:3rem; display:flex; flex-direction:column; justify-content:center; color:var(--c-white); position:relative; }
.ccb-label { display:flex; align-items:center; gap:0.5rem; font-size:0.75rem; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--c-orange); margin-bottom:1.5rem; }
.ccb-left h2 { font-size:2.5rem; line-height:1.1; margin-bottom:2rem; color:var(--c-white); }
.ccb-quote-box { background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.1); padding:1.5rem; border-radius:1rem; backdrop-filter:blur(4px); }
.ccb-quote-box p { font-size:1.1rem; font-style:italic; line-height:1.5; margin-bottom:1rem; color:rgba(255,255,255,0.9); }
.ccb-quote-box .author { font-size:0.7rem; font-weight:800; text-transform:uppercase; letter-spacing:0.05em; color:var(--c-orange); }

.ccb-right { padding:3rem; background:var(--c-white); }
.compact-form { display:flex; flex-direction:column; gap:1.25rem; }
.form-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.form-group label { display:block; font-size:0.65rem; font-weight:800; text-transform:uppercase; letter-spacing:0.05em; color:var(--c-muted); margin-bottom:0.25rem; margin-left:0.25rem; }
.form-group input, .form-group select, .form-group textarea { width:100%; background:#f8fafc; border:1px solid #e2e8f0; border-radius:0.75rem; padding:0.85rem; font-size:0.85rem; font-family:var(--f-sans); outline:none; transition:var(--t); color:#334155; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--c-orange); box-shadow:0 0 0 3px rgba(255,127,33,0.1); }
.form-group textarea { resize:none; }

.faq-section { margin-bottom:3rem; }
.faq-header { text-align:center; margin-bottom:2rem; }
.faq-header h3 { font-size:1.5rem; color:var(--c-blue-1); margin-bottom:0.5rem; font-weight:900; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:1.5rem; row-gap:0.5rem; }
.faq-item { background:var(--c-white); border-radius:0.5rem; border:1px solid #e2e8f0; overflow:hidden; box-shadow:0 2px 5px rgba(0,0,0,0.02); }
.faq-q { padding:0.6rem 1rem; display:flex; align-items:center; justify-content:space-between; font-weight:700; color:var(--c-blue-1); font-size:0.8rem; cursor:pointer; list-style:none; }
.faq-q::-webkit-details-marker { display:none; }
.faq-q i { color:#94a3b8; font-size:0.75rem; transition:transform 0.3s ease; }
.faq-item[open] .faq-q i { transform:rotate(45deg); color:var(--c-orange); }
.faq-a { padding:0 1rem 0.75rem 1rem; font-size:0.75rem; color:#475569; line-height:1.5; border-top:1px solid #f1f5f9; margin-top:0.25rem; padding-top:0.5rem; }

.info-bar-dark { background:#0f172a; border-radius:1.5rem; padding:2rem; display:grid; grid-template-columns:repeat(4, 1fr); gap:2rem; }
.ib-item { display:flex; align-items:center; gap:1rem; }
.ib-icon { width:3rem; height:3rem; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:0.75rem; display:flex; align-items:center; justify-content:center; color:var(--c-white); font-size:1.1rem; transition:var(--t); }
.ib-item:hover .ib-icon { background:var(--c-orange); border-color:var(--c-orange); }
.ib-text { display:flex; flex-direction:column; }
.ib-text label { font-size:0.6rem; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:#94a3b8; margin-bottom:0.25rem; transition:var(--t); }
.ib-item:hover .ib-text label { color:var(--c-orange); }
.ib-text span, .ib-text a { color:var(--c-white); font-size:0.9rem; font-weight:700; text-decoration:none; }
.ib-text small { font-size:0.7rem; color:#94a3b8; margin-top:0.1rem; }

/* ============================
   AWESOME BANNER
   ============================ */
.awesome-banner { position:relative; width:100%; min-height:500px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#00091a; }
@media (min-width:768px) { .awesome-banner { min-height:600px; } }
.banner-bg { position:absolute; inset:0; z-index:0; }
.banner-overlay { display:none; }
.banner-gradient { position:absolute; inset:0; background:linear-gradient(to top, #00091a, rgba(0,9,26,0.8), transparent); mix-blend-mode:multiply; z-index:1; }
.banner-bg img { width:100%; height:100%; object-fit:cover; object-position:center; filter:grayscale(100%) contrast(150%) brightness(110%); mix-blend-mode:luminosity; opacity:0.6; }

/* Flash Effects */
.awesome-banner::before, .awesome-banner::after { content:''; position:absolute; top:0; left:-150%; width:50%; height:100%; background:linear-gradient(to right, transparent, rgba(255,255,255,0.4), transparent); transform:skewX(-30deg); z-index:30; pointer-events:none; }
.awesome-banner.active::before { animation:flash-sweep 1.2s ease-in-out forwards; }
.awesome-banner:hover::after { animation:flash-sweep 1s ease-in-out; }
@keyframes flash-sweep { 0% { left:-150%; } 100% { left:200%; } }

.banner-content { position:relative; z-index:2; text-align:center; padding:4rem 1rem; }
.banner-inner { max-width:900px; margin:0 auto; }
.banner-label { display:inline-flex; align-items:center; gap:0.5rem; padding:0.5rem 1rem; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); border-radius:0.5rem; color:var(--c-white); font-size:0.85rem; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:2rem; backdrop-filter:blur(10px); }
.banner-inner h2 { font-size:2.5rem; line-height:1.2; color:var(--c-white); margin-bottom:2rem; text-shadow:0 10px 30px rgba(0,0,0,0.5); }
@media (min-width:768px) { .banner-inner h2 { font-size:3.5rem; } }
@media (min-width:1024px) { .banner-inner h2 { font-size:4.5rem; } }
.banner-inner p { font-size:1.1rem; color:rgba(255,255,255,0.9); max-width:700px; margin:0 auto 3rem auto; line-height:1.6; text-shadow:0 2px 10px rgba(0,0,0,0.5); }
@media (min-width:768px) { .banner-inner p { font-size:1.25rem; } }
.banner-actions { display:flex; flex-direction:column; gap:1.5rem; justify-content:center; align-items:center; }
@media (min-width:576px) { .banner-actions { flex-direction:row; } }
.banner-actions a { width:100%; font-size:0.85rem; font-weight:800; text-transform:uppercase; letter-spacing:0.05em; display:flex; align-items:center; justify-content:center; transition:var(--t); }
@media (min-width:576px) { .banner-actions a { width:auto; } }
.banner-bottom-line { position:absolute; bottom:0; left:0; width:100%; height:8px; background:linear-gradient(to right, var(--c-blue-1), var(--c-orange), var(--c-yellow)); z-index:2; }

/* ============================
   SPLIT CARD SECTION (VALOR)
   ============================ */
.split-card-container { display:grid; grid-template-columns:1fr; border-radius:2rem; overflow:hidden; box-shadow:0 20px 40px rgba(0,0,0,0.15); max-width:1000px; margin:0 auto; }
@media (min-width:768px) { .split-card-container { grid-template-columns:1fr 1fr; } }
.split-card { position:relative; padding:3rem 2.5rem; color:var(--c-white); overflow:hidden; }
@media (min-width:1024px) { .split-card { padding:4rem; } }
.blue-side { background:var(--c-blue-1); }
.orange-side { background:var(--c-orange); }
.sc-glow { position:absolute; width:15rem; height:15rem; border-radius:50%; filter:blur(60px); z-index:0; transition:opacity 0.5s ease; opacity:0.3; }
.blue-side .sc-glow { top:0; right:0; background:rgba(255,255,255,0.15); }
.blue-side:hover .sc-glow { opacity:0.6; }
.orange-side .sc-glow { bottom:0; left:0; background:rgba(255,255,255,0.25); }
.orange-side:hover .sc-glow { opacity:0.6; }
.sc-content { position:relative; z-index:1; }
.sc-label { display:block; font-size:0.7rem; font-weight:800; text-transform:uppercase; letter-spacing:0.15em; margin-bottom:1rem; opacity:0.8; }
.sc-content h3 { font-size:2.5rem; line-height:1.1; margin-bottom:1.5rem; color:var(--c-white); }
.blue-side p { color:rgba(255,255,255,0.8); }
.orange-side p { color:rgba(255,255,255,0.9); }
.sc-content p { font-size:0.95rem; line-height:1.6; margin-bottom:3rem; }
.sc-list { display:flex; flex-direction:column; gap:2rem; }
.sc-item { display:flex; align-items:center; gap:1.25rem; }
.sc-icon { width:3rem; height:3rem; border-radius:0.75rem; display:flex; align-items:center; justify-content:center; font-size:1.25rem; color:var(--c-white); box-shadow:0 4px 15px rgba(0,0,0,0.1); }
.blue-side .sc-icon { background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.1); }
.orange-side .sc-icon { background:rgba(255,255,255,0.2); border:1px solid rgba(255,255,255,0.2); }
.sc-item h4 { font-size:1.1rem; font-weight:700; color:var(--c-white); margin:0; }

/* ============================
   RESPONSIVE
   ============================ */
@media (max-width:1400px) {
  .hero-title { font-size:4rem; }
  .team-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:1200px) {
  .services-grid { grid-template-columns:1fr 1fr; }
  .compact-contact-footer { grid-template-columns:1fr 1fr; }
}
@media (max-width:992px) {
  .hero-grid, .about-grid, .values-cards-grid, .contact-grid, .social-impact-card { grid-template-columns:1fr; }
  .values-grid { grid-template-columns:repeat(2, 1fr); }
  .footer-grid { grid-template-columns:1fr; gap:2rem; }
  .values-grid { grid-template-columns:1fr 1fr; }
  .nav-menu { position:fixed; top:0; right:-100%; width:75%; height:100vh; background:var(--c-blue-1); display:flex !important; flex-direction:column; justify-content:center; align-items:center; transition:0.4s ease; z-index:2000; border-left:4px solid var(--c-orange); }
  .nav-menu.active { right:0; }
  .nav-menu ul { flex-direction:column; gap:2rem; }
  .nav-menu ul li a { font-size:1.4rem; color:#ffffff; }
  .mobile-toggle { display:block; }
  .hidden-mobile { display:none !important; }
  .social-impact-image { height:320px; }
  .social-impact-content { padding:3rem 2rem; }
}
@media (max-width:600px) {
  html { overflow-x:hidden; }
  body { overflow-x:hidden; width:100%; max-width:100vw; position:relative; }
  .container { padding:0 4%; }
  .section { padding:30px 0; }

  /* NAVBAR */
  .logo img { height:40px !important; }
  .nav-menu { width:85%; }
  .nav-menu ul li a { font-size:0.9rem; color:#ffffff; }
  .header-separator, .header-slogan { display:none !important; }

  /* HERO */
  .hero { padding-top:60px; padding-bottom:20px; min-height:auto; }
  .hero-grid { gap:0.35rem; }
  .hero-title { font-size:1rem; }
  .hero-desc { font-size:0.56rem; }
  .hero-content { padding-top:0.5rem; padding-bottom:0; }
  .hero-image-wrapper { display:flex; margin-top:0.5rem; }
  .hero-image-inner { transform:scale(1.1) !important; right:10% !important; }
  .hero-badge { font-size:0.5rem; padding:2px 8px; }
  .btn-group { flex-direction:column; gap:0.4rem; }
  .btn-group .btn { width:100%; justify-content:center; font-size:0.6rem; padding:0.5rem 1rem !important; }
  .hero-logos-row { margin-top:0; overflow:hidden; }
  .logo-slogan { font-size:0.56rem; padding:0 6%; margin-bottom:0.5rem; text-align:center; line-height:1.3; }
  .logo-grid-fixed { overflow:hidden; padding:0.35rem 0.6rem; border-radius:0.5rem; gap:0; display:block; }
  .logo-grid-fixed img { height:18px; }
  .logo-sep { height:14px; display:block; flex-shrink:0; }
  .logo-marquee-track { display:flex; align-items:center; width:max-content; animation:logoMarquee 25s linear infinite; }
  .logo-marquee-group { display:flex; align-items:center; gap:0.5rem; flex-shrink:0; justify-content:flex-start; }
  .logo-marquee-group:last-child { display:flex; }

  /* ABOUT */
  .about-grid { gap:0.5rem; margin-bottom:1rem; }
  .about-card { padding:0.5rem; }
  .about-card-icon { width:22px; height:22px; font-size:0.6rem; margin-bottom:0.4rem; border-radius:6px; }
  .about-card h3 { font-size:0.65rem; margin-bottom:0.3rem; }
  .about-card p { font-size:0.55rem; line-height:1.4; }
  .values-grid { gap:0.3rem; margin-top:0.5rem; }
  .value-item { padding:0.35rem; gap:0.3rem; }
  .value-item h4 { font-size:0.6rem; margin-bottom:0.1rem; }
  .value-item p { font-size:0.52rem; }
  .value-icon { font-size:0.8rem; }

  /* SERVICES */
  .services-section { padding:30px 0; }
  .section-header-centered { margin-bottom:1rem; }
  .section-header-centered h2 { font-size:0.75rem; }
  .section-header-centered p { font-size:0.56rem; }
  .services-grid { gap:0.6rem; margin-top:1rem; }
  .sc-img { height:80px; }
  .sc-body { padding:0.5rem; }
  .sc-body h3 { font-size:0.65rem; }
  .sc-body p { font-size:0.55rem; margin-bottom:0.3rem; }
  .sc-icon { width:26px; height:26px; font-size:0.7rem; }
  .sc-num { font-size:0.75rem; }

  /* BANNER */
  .awesome-banner { min-height:200px; }
  .banner-inner h2 { font-size:0.8rem; }
  .banner-inner p { font-size:0.6rem; }
  .banner-content { padding:1rem 0.5rem; }

  /* TECH */
  .tech-left { position:static; }
  .tech-compact-card { padding:0.65rem; flex-direction:column; gap:0.5rem; }
  .tcc-icon-large { width:2.2rem; height:2.2rem; font-size:0.9rem; }
  .tech-compact-card h4 { font-size:0.65rem; }
  .tech-compact-card p { font-size:0.55rem; }

  /* TEAM */
  .team-grid { grid-template-columns:repeat(2,1fr); gap:0.4rem; }
  .team-card { padding:0.75rem; }
  .team-card h3 { font-size:0.65rem; }
  .team-card p { font-size:0.55rem; }
  .team-card-img { height:100px; }

  /* CONTACT */
  .contact-grid { gap:1rem; }
  .compact-contact-footer { grid-template-columns:1fr; gap:0.5rem; padding:0.75rem; }
  .footer-info-item { flex-wrap:wrap; font-size:0.55rem; }
  .footer-info-item .value { font-size:0.6rem; }
  .contact-compact-box { grid-template-columns:1fr; }
  .ccb-left, .ccb-right { padding:1rem; }
  .ccb-left h2 { font-size:0.75rem; }
  .form-grid-2 { grid-template-columns:1fr; gap:0.5rem; }
  .faq-grid { grid-template-columns:1fr; }

  /* SOCIAL IMPACT + FAQ (combined-impact.php) */
  .ci-section { padding:30px 0; }
  .ci-grid { grid-template-columns:1fr; gap:1.25rem; }
  .ci-left { padding-right:0; border-right:none; }
  .ci-label-row { margin-bottom:0.5rem; }
  .ci-label { font-size:0.5rem; }
  .ci-title { font-size:0.8rem; line-height:1.1; margin-bottom:0.6rem; }
  .ci-title br { display:none; }
  .ci-image-wrap { margin-bottom:0.6rem; border-radius:8px; }
  .ci-image { height:140px; border-radius:8px; }
  .ci-text { font-size:0.56rem; line-height:1.4; margin-bottom:0.75rem; }
  .ci-btns .btn { padding:0.5rem 0.75rem; font-size:0.6rem; }
  .ci-btns { gap:0.35rem; }
  .ci-faq-title { font-size:0.7rem; margin-bottom:0.75rem; }
  .ci-faq-grid { grid-template-columns:1fr; gap:0; }
  .faq-item-mini { margin-bottom:0; }
  .faq-trigger-comb { padding:0.4rem 0; }
  .faq-trigger-comb span { font-size:0.55rem; padding-right:0.5rem; }
  .faq-trigger-comb i { font-size:0.5rem; }
  .faq-answer { font-size:0.52rem; padding-bottom:0.5rem; }
  #recursos { overflow:hidden; }

  /* VALUE CARDS */
  .values-cards-grid { grid-template-columns:1fr; gap:0.6rem; }
  .value-card { padding:1.25rem; min-height:180px; }
  .card-title { font-size:0.8rem; }
  .value-card p { font-size:0.56rem; }

  /* SPLIT CARD */
  .split-card { padding:1.25rem 1rem; }
  .sc-content h3 { font-size:0.85rem; }

  /* FOOTER - MOBILE REDESIGN */
  .footer { padding:10px 0 5px; border-top-width:3px; }
  .footer-main-grid { grid-template-columns:1fr 1fr; gap:0.35rem; }
  .footer-brand { grid-column:1/-1; gap:0.1rem; }
  .footer-brand-logo { height:auto; width:auto; max-width:120px; }
  .footer-slogan { font-size:0.45rem; line-height:1.15; }
  .footer-social { gap:0.15rem; margin-top:0.1rem; }
  .footer-social .social-link { width:18px; height:18px; font-size:0.4rem; }
  .footer-col-title { font-size:0.5rem; margin-bottom:0.15rem; }
  .footer-col:last-child { grid-column:1/-1; }
  .footer-list li { margin-bottom:0.08rem; }
  .footer-list a { font-size:0.46rem; }
  .footer-claims-btn { font-size:0.4rem; padding:0.15rem 0.3rem; margin-top:0.2rem; }
  .footer-bottom-bar { grid-template-columns:1fr; gap:0.08rem; padding-top:0.15rem; margin-top:0.1rem; text-align:center; }
  .footer-info-block { align-items:center; gap:0.03rem; }
  .footer-info-label { font-size:0.38rem; }
  .footer-info-val { font-size:0.42rem; line-height:1.1; }
  .footer-info-sub { font-size:0.38rem; }
  .footer-copy-block { text-align:center; font-size:0.38rem; gap:0.08rem; line-height:1.1; }
  .footer-flag { font-size:0.36rem; }
  .footer-carousel-section .carousel-slide { width:160px; height:100px; }

  /* INFO BAR */
  .info-bar-dark { grid-template-columns:1fr 1fr; gap:0.5rem; padding:0.75rem; font-size:0.55rem; }

  /* BOTTOM UNIFIED */
  .unified-grid { grid-template-columns:1fr; }
  .bottom-unified-section .impact-side { min-height:120px; padding:1rem; }
  .bottom-unified-section .projects-side { padding:0.75rem; }
  .bottom-unified-section h3 { font-size:0.65rem; }
  .bottom-unified-section p { font-size:0.55rem; }

  /* MARQUEE */
  .marquee-content img { height:22px; }
  .marquee-text { font-size:0.75rem; }
}
@media (min-width:601px) and (max-width:1023px) {
  html { overflow-x:hidden; }
  body { overflow-x:hidden; width:100%; max-width:100vw; position:relative; }
  .sc-img { height:160px; }
  .section-header-centered { margin-bottom:2.5rem; }
  .hero-image-inner { transform:scale(1.2); right:20%; }
  .hero-title { font-size:2.8rem; }
  .hero-desc { font-size:0.72rem; max-width:400px; }
  .logo-grid-fixed { display:block; overflow:hidden; padding:1.25rem 2rem; }
  .logo-grid-fixed img { height:48px; }
  .logo-marquee-track { display:flex; align-items:center; width:max-content; animation:logoMarquee 30s linear infinite; }
  .logo-marquee-group { display:flex; align-items:center; gap:0.75rem; flex-shrink:0; justify-content:flex-start; }
  .logo-marquee-group:last-child { display:flex; }
  .ci-grid { grid-template-columns:1fr; gap:2rem; }
  .ci-left { padding-right:0; border-right:none; }
  .ci-title { font-size:2.2rem; }
  .ci-faq-title { font-size:1.6rem; }
  .ci-image { height:240px; }
  .ci-faq-grid { grid-template-columns:1fr; gap:0; }
  .footer-main-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .team-grid { grid-template-columns:repeat(3,1fr); }
  .compact-contact-footer { grid-template-columns:1fr 1fr; padding:2rem; }
}
@media (min-width:1024px) {
  .navbar { position:fixed; background:rgba(255,255,255,0.95); backdrop-filter:blur(10px); }
  .hero { min-height:auto; justify-content:flex-start; padding-top:180px; padding-bottom:40px; }
  .hero-grid { flex-grow:0; }
  .hero-content { padding-top:0; padding-bottom:2rem; }
}
@media (min-width:2000px) {
  .hero-grid { grid-template-columns:1.3fr 0.7fr; gap:4rem; }
  .hero-title { font-size:clamp(2rem,3vw,4rem); }
  .hero-image-inner { transform:scale(1.2); right:10%; }
}
