refactorizacion v4.8 index

This commit is contained in:
2026-10-08 10:04:29 -03:00
parent 4cb4b3d1d7
commit a0bd5d5a02
33 changed files with 2988 additions and 1878 deletions
+534
View File
@@ -0,0 +1,534 @@
/* =========================================================
ECOSISTEMA - CARRUSEL
Variables nuevas + estilos del bloque refactorizado
========================================================= */
:root {
/* Color inactivo de los botones (rojo del esquema) */
--eco-tab-inactive: var(--ide-grey);
--eco-tab-inactive-text: #ffffff;
/* Color de fondo inactivo de la tarjeta (naranja del esquema) */
--eco-card-bg: #e88a0a;
/* Texto sobre la zona oscura de la tarjeta */
--eco-text-dark: #0a0a0a;
--eco-text-muted-dark: #2a2a2a;
/* Transiciones */
--eco-fade-duration: 600ms;
--eco-tab-duration: 250ms;
}
.herobg-1{
background-image:
linear-gradient(
to right,
rgba(0, 0, 0, 0.6) 0%,
rgba(0, 0, 0, 0.3) 20%,
rgba(0, 0, 0, 0.15) 70%,
rgba(0, 0, 0, 0.0) 100%
),
url('../assets/img/hero/hero_003.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.herobg-2{
background-image:
linear-gradient(
to right,
rgba(44,109,140, 1) 0%,
rgba(44,109,140, 0.5) 40%,
rgba(44,109,140, 0.2) 70%,
rgba(44,109,140, 0.05) 100%
),
url('../assets/img/hero/hero_017.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
/* ---------- TABS / BOTONES ---------- */
.ecosystem-tabs {
display: flex;
justify-content: center;
gap: 0.75rem;
flex-wrap: wrap;
margin-bottom: 1rem;
}
.eco-tab {
appearance: none;
border: 2px solid var(--eco-tab-inactive);
background: var(--eco-tab-inactive);
color: var(--eco-tab-inactive-text);
font-weight: 700;
font-size: 0.95rem;
padding: 0.4rem 1.4rem;
border-radius: 999px;
cursor: pointer;
transition:
background-color var(--eco-tab-duration) ease,
color var(--eco-tab-duration) ease,
border-color var(--eco-tab-duration) ease,
transform var(--eco-tab-duration) ease;
}
.eco-tab:hover {
transform: translateY(-2px);
filter: brightness(1.08);
}
.eco-tab:focus-visible {
outline: 3px solid rgba(255, 255, 255, 0.6);
outline-offset: 2px;
}
/* Estado activo: el color lo inyecta el JS vía data-color */
.eco-tab.is-active {
color: #ffffff;
border-color: transparent;
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
/* ---------- CARRUSEL (contenedor) ---------- */
.ecosystem-carousel {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
max-height: 450px;
min-height: 360px;
border-radius: var(--radius-md, 12px);
overflow: hidden;
background: var(--eco-card-bg);
box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.08));
}
/* ---------- SLIDE ---------- */
.eco-slide {
position: absolute;
inset: 0;
opacity: 0;
visibility: hidden;
transition:
opacity var(--eco-fade-duration) ease,
visibility var(--eco-fade-duration) ease;
}
.eco-slide.is-active {
opacity: 1;
visibility: visible;
}
/* Imagen de fondo (placeholder) */
.eco-slide__bg {
position: absolute;
inset: 0;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
/* Degradado de derecha a izquierda:
transparente a la izquierda → color sólido a la derecha
para resaltar el contenido (logo + texto) */
.eco-slide__overlay {
position: absolute;
inset: 0;
background: linear-gradient(
to left,
var(--eco-slide-color) 0%,
var(--eco-slide-color) 45%,
rgba(0, 0, 0, 0.15) 70%,
transparent 100%
);
}
/* ---------- CONTENIDO (logo + texto) ---------- */
.eco-slide__content {
position: relative;
z-index: 2;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
padding: 2.5rem 3rem;
color: var(--eco-text-dark);
}
/* Logo (PNG) - controlado por clase específica */
.eco-slide__logo {
align-self: flex-end;
width: 210px;
height: 90px;
background-size: contain;
background-repeat: no-repeat;
background-position: right center;
}
/* Texto */
.eco-slide__text {
max-width: 35%;
margin-left: auto; /* empuja el bloque a la derecha */
text-align: right;
}
.eco-slide__text h3 {
font-size: 1.6rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.02em;
margin: 0 0 0.75rem 0;
color: var(--eco-text-dark);
line-height: 1.2;
}
.eco-slide__text p {
font-size: 1.2rem;
line-height: 1.55;
color: var(--eco-text-muted-dark);
margin: 0 0 1.25rem 0;
}
.eco-slide__link {
display: inline-block;
font-size: 0.95rem;
font-weight: 700;
color: var(--eco-text-dark);
text-decoration: none;
border-bottom: 2px solid currentColor;
padding-bottom: 2px;
transition: opacity 200ms ease;
}
.eco-slide__link:hover {
opacity: 0.7;
}
/* =========================================================
BRÚJULA - MARCA DE AGUA
========================================================= */
.brujula-section {
position: relative;
overflow: hidden;
}
.brujula-watermark {
position: absolute;
right: -5%;
top: 50%;
transform: translateY(-50%) rotate(15deg);
width: 600px;
height: 600px;
opacity: 0.7;
pointer-events: none;
z-index: 0;
color: var(--ide-accent-soft);
}
.brujula-watermark svg {
width: 100%;
height: 100%;
}
/* =========================================================
BRÚJULA - BOTÓN VOLVER (reposicionado)
========================================================= */
.quiz-container {
position: relative;
z-index: 1;
}
.quiz-back-btn {
position: absolute;
top: 1.5rem;
right: 1.5rem;
z-index: 10;
background: transparent;
border: 1px solid var(--text-muted, #888);
color: var(--text-muted, #888);
font-size: 0.85rem;
padding: 0.4rem 0.9rem;
border-radius: 6px;
cursor: pointer;
transition: all 200ms ease;
}
.quiz-back-btn:hover {
background: rgba(255, 255, 255, 0.05);
color: #ffffff;
border-color: #ffffff;
}
/* =========================================================
BRÚJULA - HEADER DE PASO (para alinear título y botón)
========================================================= */
.quiz-step-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 1.5rem;
padding-right: 100px; /* Espacio para el botón volver */
}
/* =========================================================
RESPONSIVE
========================================================= */
@media (max-width: 768px) {
.brujula-watermark {
width: 400px;
height: 400px;
right: -20%;
opacity: 0.03;
}
.quiz-back-btn {
top: 1rem;
right: 1rem;
font-size: 0.8rem;
padding: 0.35rem 0.75rem;
}
.quiz-step-header {
padding-right: 80px;
}
}
/* =========================================================
COLORES ESPECÍFICOS POR CAPACIDAD
========================================================= */
.eco-slide--excellence { --eco-slide-color: var(--ide-excellence); }
.eco-slide--project { --eco-slide-color: var(--ide-projects); }
.eco-slide--digital { --eco-slide-color: var(--ide-digital); }
.eco-slide--academy { --eco-slide-color: var(--ide-academy); }
/* =========================================================
PLACEHOLDERS DE LOGOS
Reemplaza las URLs por tus assets reales.
Ajusta width/height aquí para controlar el tamaño.
========================================================= */
.logo-excellence { background-image: url('../assets/img/slide/ide1.png'); }
.logo-project { background-image: url('../assets/img/slide/ide2.png'); }
.logo-digital { background-image: url('../assets/img/slide/ide3.png'); }
.logo-academy { background-image: url('../assets/img/slide/ide4.png'); }
/* =========================================================
PLACEHOLDERS DE IMÁGENES DE FONDO
========================================================= */
.eco-slide--excellence .eco-slide__bg { background-image: url('../assets/img/slide/slide-excellence.png'); }
.eco-slide--project .eco-slide__bg { background-image: url('../assets/img/slide/slide-projects.png'); }
.eco-slide--digital .eco-slide__bg { background-image: url('../assets/img/slide/slide-digital.png'); }
.eco-slide--academy .eco-slide__bg { background-image: url('../assets/img/slide/slide-academy.png'); }
/* =========================================================
ÁMBITOS DE EXPERIENCIA - TARJETAS CON HOVER REVEAL
========================================================= */
/* --- TARJETA BASE --- */
.ambito-card {
position: relative;
min-height: 240px;
border-radius: var(--radius-md, 12px);
overflow: hidden;
cursor: pointer;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.1));
transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.ambito-card:hover {
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
transform: translateY(-4px);
}
/* --- OVERLAY (Degradado para legibilidad) --- */
/* Un degradado de abajo hacia arriba asegura que el texto se lea
sin tapar completamente la imagen de fondo */
.ambito-card .overlay {
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.2) 60%, transparent 100%);
transition: background 0.4s ease;
z-index: 1;
}
.ambito-card:hover .overlay {
background: linear-gradient(to top, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0.1) 100%);
}
/* --- CONTENIDO --- */
.ambito-card .content {
position: relative;
z-index: 2;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Alinea el contenido abajo para mejor revelación */
height: 100%;
padding: 1rem 1rem;
text-align: left;
}
/* --- TÍTULO --- */
.ambito-card h4 {
color: #ffffff;
font-size: 1.1rem;
font-weight: 700;
margin: 0;
line-height: 1.3;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), font-size 0.4s ease;
}
/* --- TEXTO A REVELAR --- */
.ambito-card .reveal-text {
color: rgba(255, 255, 255, 0.9);
font-size: 0.85rem;
font-weight: 400;
line-height: 1.4;
margin: 0;
/* Estado inicial: oculto */
opacity: 0;
max-height: 0;
transform: translateY(10px);
overflow: hidden;
/* Transición suave */
transition:
opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
max-height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
margin-top 0.4s ease;
}
/* =========================================================
ESTADOS HOVER (La magia)
========================================================= */
/* 1. El título sube un poco y se achica ligeramente para hacer espacio */
.ambito-card:hover h4 {
transform: translateY(-8px);
font-size: 1rem;
}
/* 2. El texto aparece, gana altura y se posiciona */
.ambito-card:hover .reveal-text {
opacity: 1;
max-height: 100px; /* Suficiente para 2-3 líneas de texto */
transform: translateY(0);
margin-top: 0.5rem;
}
/* =========================================================
IMÁGENES DE FONDO POR TARJETA
(Nota: Los espacios en los nombres de archivo se codifican como %20)
========================================================= */
.cardi-agro { background-image: url('../assets//img/cards/agro.png'); }
.cardi-industria { background-image: url('../assets//img/cards/indu.png'); }
.cardi-telecom { background-image: url('../assets/img/cards/teco.png'); }
.cardi-salud { background-image: url('../assets/img/cards/salud.png'); }
.cardi-educacion { background-image: url('../assets/img/cards/edu.png'); }
/* =========================================================
RESPONSIVE
========================================================= */
@media (max-width: 768px) {
.ambitos-grid {
grid-template-columns: 1fr !important; /* Apila el encabezado y las tarjetas */
text-align: center;
}
.ambito-card {
min-height: 200px;
}
.ambito-card h4 {
font-size: 1rem;
}
}
/* =========================================================
RESPONSIVE
========================================================= */
@media (max-width: 900px) {
.ecosystem-carousel {
aspect-ratio: 4 / 3;
}
.eco-slide__content {
padding: 1.75rem 2rem;
}
.eco-slide__logo {
width: 140px;
height: 55px;
}
.eco-slide__text {
max-width: 70%;
}
.eco-slide__text h3 {
font-size: 1.3rem;
}
}
@media (max-width: 600px) {
.ecosystem-tabs {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0.6rem;
}
.eco-tab {
font-size: 0.85rem;
padding: 0.55rem 1rem;
}
.ecosystem-carousel {
aspect-ratio: 3 / 4;
min-height: 420px;
}
.eco-slide__content {
padding: 1.25rem 1.25rem 1.5rem;
justify-content: flex-end;
}
.eco-slide__logo {
align-self: flex-end;
width: 120px;
height: 50px;
margin-bottom: 1rem;
}
.eco-slide__text {
max-width: 100%;
text-align: left;
}
.eco-slide__text h3 {
font-size: 1.15rem;
}
.eco-slide__text p {
font-size: 0.9rem;
}
/* En móvil el degradado cubre más para garantizar legibilidad */
.eco-slide__overlay {
background: linear-gradient(
to top,
var(--eco-slide-color) 0%,
var(--eco-slide-color) 55%,
rgba(0, 0, 0, 0.1) 85%,
transparent 100%
);
}
}
+230 -159
View File
@@ -245,7 +245,7 @@ p, li, .lead-text, .text-body, .text-muted {
/* --- 4. Layout & Contenedores --- */
.container {
width: 100%;
max-width: 1200px;
max-width: 1360px;
margin-left: auto;
margin-right: auto;
padding-left: 1.5rem;
@@ -324,6 +324,8 @@ p, li, .lead-text, .text-body, .text-muted {
align-items: center;
gap: 1.8rem;
list-style: none;
flex-shrink: 1;
min-width: 0;
}
.nav-link {
@@ -357,6 +359,7 @@ p, li, .lead-text, .text-body, .text-muted {
display: flex;
align-items: center;
gap: 1rem;
flex-shrink: 0;
}
.nav-item.dropdown {
position: relative;
@@ -593,7 +596,7 @@ p, li, .lead-text, .text-body, .text-muted {
gap: 0.6rem;
font-family: 'Barlow Condensed', sans-serif;
font-weight: 500;
font-size: 2.9rem;
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 0.09em;
padding: 0.75rem 1.6rem;
@@ -690,15 +693,45 @@ p, li, .lead-text, .text-body, .text-muted {
padding: 0.45rem 1rem;
font-size: 0.85rem;
}
/*==============================*/
/*efecto ruido*/
.incomodidad-section {
position: relative;
width: 100%;
padding: 100px 24px;
overflow: hidden; /* Evita que las ondas ensanchen la pantalla */
/* --- Botón CTA Unificado --- */
.btn-cta-unificado {
padding: 0.75rem 2rem;
border-radius: 50px; /* Estilo píldora */
background-color: var(--ide-primary);
color: #FFFFFF;
font-family: 'Barlow Condensed', sans-serif;
font-weight: 600;
font-size: 1.1rem;
text-transform: uppercase;
letter-spacing: 0.05em;
display: inline-flex;
align-items: center;
gap: 0.5rem;
border: 2px solid transparent;
transition: all var(--transition-fast);
}
.btn-cta-unificado:hover {
background-color: var(--ide-primary-dark);
box-shadow: var(--shadow-md);
transform: translateY(-2px);
}
.btn-cta-unificado svg {
transition: transform var(--transition-fast);
}
.btn-cta-unificado:hover svg {
transform: translateX(4px);
}
.nav-actions .btn-cta-unificado {
flex-shrink: 0;
font-size: 0.95rem;
padding: 0.5rem 1.25rem;
}
/*==============================*/
/* Canvas como fondo absoluto */
#ripple-canvas {
position: absolute;
@@ -749,6 +782,7 @@ p, li, .lead-text, .text-body, .text-muted {
box-shadow: var(--shadow-md);
transform: translateY(-2px);
}
/*tarjetas especiales*/
/*Agro*/
.card-agro {
@@ -765,28 +799,6 @@ p, li, .lead-text, .text-body, .text-muted {
align-items: center;
text-align: center;
}
.icono-agro {
display: block;
width: 2.5rem;
height: 2.5rem;
margin-bottom: 0.5rem;
background-color: var(--text-body);
-webkit-mask-image: url('../assets/iconos/agro_color.svg');
mask-image: url('../assets/iconos/agro_color.svg');
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: center;
mask-position: center;
-webkit-mask-size: contain;
mask-size: contain;
flex-shrink: 0;
}
.card-agro:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}
/*Fabrica*/
.card-fabrica {
background-image: linear-gradient(var(--card-overlay), var(--card-overlay)), url('../assets/img/fabrica3.jpg');
@@ -1126,6 +1138,7 @@ p, li, .lead-text, .text-body, .text-muted {
max-width: 860px;
margin: 0 auto;
transition: all 0.25s ease;
position: relative;
}
.quiz-header {
@@ -1171,21 +1184,21 @@ p, li, .lead-text, .text-body, .text-muted {
/* ---- Grid de opciones (estilo Opción A) ---- */
.quiz-options-grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 0.85rem;
margin-top: 1rem;
}
.quiz-options-grid--2col {
grid-template-columns: 1fr 1fr;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
/* ---- Cards de opción (estilo Opción A) ---- */
.quiz-option-card {
display: flex;
align-items: flex-start;
gap: 0.75rem;
padding: 1rem 1.25rem;
gap: 0.5rem;
padding: 0.75rem 1rem;
background: var(--bg-body);
border: 2px solid transparent;
border-radius: 0.85rem;
@@ -1239,21 +1252,20 @@ p, li, .lead-text, .text-body, .text-muted {
/* ---- Estilos para títulos con iconos SVG en las tarjetas del quiz ---- */
.quiz-option-card .opt-title {
font-family: 'Barlow Condensed', sans-serif;
font-weight: 600;
font-weight: 500;
display: flex;
align-items: center;
gap: 8px;
gap: 6px;
font-size: 1.1rem;
margin-bottom: 0.2rem;
margin-bottom: 0.15rem;
color: var(--text-primary, #094b63);
}
.quiz-option-card .opt-title .icono {
width: 24px;
height: 24px;
.quiz-option-card .opt-title i {
width: 18px;
height: 18px;
flex-shrink: 0;
color: inherit;
}
.quiz-option-card .opt-title .opt-text {
@@ -2501,154 +2513,213 @@ canvas {
box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.06);
}
/* --- 17. Footer --- */
/* =========================================================
FOOTER MODULAR - ESTILOS
========================================================= */
#site-footer {
position: relative;
overflow: hidden;
background-color: var(--bg-surface);
border-top: 1px solid var(--border-color);
padding-top: 4.5rem;
padding-bottom: 2.5rem;
/*padding-top: 4.5rem;
padding-bottom: 2.5rem;*/
margin-top: auto;
transition: background-color var(--transition-normal);
}
/* Logo de fondo - NO debe interferir con los links */
.footer-bg {
position: absolute;
transform: translate(0%, -17%);
height: auto;
pointer-events: none; /* ¡CLAVE! Evita que la imagen capture eventos */
}
/* El SVG dentro del contenedor */
.footer-bg img {
display: block;
width: 100%;
height: auto;
pointer-events: none; /* Hereda o se asegura */
}
/* Contenido del footer - POR ENCIMA del fondo */
.footer-grid {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: 1.5fr 1fr 1fr 1.25fr;
gap: 2.5rem;
margin-bottom: 3.5rem;
}
.footer-logo-wrap {
margin-bottom: 1rem;
}
.footer-links {
list-style: none;
padding: 0;
margin: 0;
}
.footer-links li {
margin-bottom: 0.35rem;
}
.footer-link {
color: var(--text-muted);
text-decoration: none;
transition: color 0.3s ease;
position: relative;
z-index: 2; /* Asegura que estén por encima */
}
.footer-link:hover {
color: var(--ide-accent);
}
/* Links del ecosistema en la columna 1 */
.footer-link2 {
color: var(--text-muted);
text-decoration: none;
transition: color 0.3s ease;
position: relative;
z-index: 2;
}
.footer-link2:nth-child(1):hover { color: var(--ide-excellence); } /* Excellence */
.footer-link2:nth-child(2):hover { color: var(--ide-projects); } /* Project */
.footer-link2:nth-child(3):hover { color: var(--ide-academy); } /* Academy */
.footer-link2:nth-child(4):hover { color: var(--ide-digital); } /* Digital */
/* Footer bottom - también por encima */
.footer-bottom {
position: relative;
z-index: 1;
/* --- FILA SUPERIOR --- */
.footer-top {
display: flex;
justify-content: space-between;
align-items: center;
font-family: 'Plus Jakarta Sans', sans-serif;
font-size: 0.85rem;
color: var(--text-muted);
border-top: 1px solid var(--border-color);
padding-top: 1.5rem;
flex-wrap: wrap;
gap: 2rem;
margin-bottom: 2.5rem;
}
.footer-bottom a {
position: relative;
z-index: 2;
}
.footer-socials {
.footer-brand {
display: flex;
gap: 0.75rem;
flex-direction: row; /* CAMBIADO: de column a row */
align-items: flex-start; /* Alinea arriba ambos elementos */
gap: 1rem; /* Espacio entre logo y slogan */
max-width: 400px; /* Aumentado para que quepa el slogan */
}
.footer-logo {
height: 45px;
width: auto;
object-fit: contain;
flex-shrink: 0; /* Evita que el logo se encoja */
}
.footer-slogan {
font-size: 0.95rem;
font-weight: 500;
color: var(--text-muted, #6c757d);
line-height: 1.5;
margin: 0;
text-align: left; /* Asegura que el texto quede alineado a la izquierda */
}
/* Navegación horizontal */
.footer-links-horizontal {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 1.25rem 1.75rem; /* gap vertical | gap horizontal */
list-style: none;
margin: 0;
padding: 0;
}
.footer-link {
font-size: 0.95rem;
color: var(--text-body, #333);
text-decoration: none;
font-weight: 500;
transition: color 0.2s ease;
}
.footer-link:hover {
color: var(--ide-primary, #0066cc); /* Ajusta a tu color primario */
}
/* Botón CTA */
.footer-cta-btn {
border-radius: 50px;
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.65rem 1.35rem;
font-size: 0.9rem;
font-weight: 600;
text-decoration: none;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.footer-cta-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
/* --- DIVISOR --- */
.footer-divider {
border: none;
border-top: 1px solid var(--border-color, #e0e0e0);
margin: 0 0 1.5rem 0;
}
/* --- FILA INFERIOR --- */
.footer-bottom {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 1.5rem;
}
.footer-legal-list {
display: flex;
gap: 1.5rem;
list-style: none;
margin: 0;
padding: 0;
}
.footer-link-small {
font-size: 0.85rem;
color: var(--text-muted, #6c757d);
text-decoration: none;
transition: color 0.2s ease;
}
.footer-link-small:hover {
color: var(--text-body, #333);
text-decoration: underline;
}
/* Redes Sociales */
.footer-socials {
display: flex;
gap: 1.25rem;
}
.footer-social-link {
display: inline-flex;
color: var(--text-muted, #6c757d);
font-size: 1.15rem;
text-decoration: none;
transition: color 0.2s ease, transform 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 50%;
color: var(--text-muted);
background: var(--bg-subtle, rgba(255,255,255,0.05));
transition: all 0.3s ease;
text-decoration: none;
font-size: 1rem;
width: 32px;
height: 32px;
}
.footer-social-link:hover {
color: var(--ide-accent, #3fff4f);
transform: translateY(-3px);
color: var(--ide-primary, #0066cc); /* Ajusta a tu color primario */
transform: translateY(-2px);
}
/* Copyright */
.footer-copyright {
color: var(--text-muted, #6c757d);
font-size: 0.8rem;
text-align: right;
}
/* Responsive */
@media (max-width: 768px) {
.footer-bg {
width: 40%;
max-width: 300px;
opacity: 0.04;
}
.footer-grid {
grid-template-columns: 1fr 1fr;
.footer-credit {
color: var(--text-muted, #6c757d);
font-weight: 600;
text-decoration: none;
transition: color 0.2s ease;
}
.footer-credit:hover {
color: var(--text-body, #333);
}
/* =========================================================
RESPONSIVE (Móviles y Tablets)
========================================================= */
@media (max-width: 992px) {
.footer-top {
flex-direction: column;
align-items: center;
text-align: center;
gap: 2rem;
}
.footer-brand {
max-width: 100%;
align-items: center;
}
.footer-links-horizontal {
justify-content: center;
}
}
@media (max-width: 480px) {
.footer-bg {
width: 30%;
max-width: 200px;
opacity: 0.03;
@media (max-width: 768px) {
.footer-bottom {
flex-direction: column;
align-items: center;
text-align: center;
gap: 1.25rem;
}
.footer-grid {
grid-template-columns: 1fr;
gap: 1.5rem;
.footer-legal-list {
flex-direction: column;
gap: 0.75rem;
}
}
.footer-copyright {
text-align: center;
}
}