/* ========================================================= SOLUCIONES - TARJETAS CON EFECTO DE OLAS ========================================================= */ /* --- TARJETA BASE --- */ .solucion-card { background: var(--bg-surface); border-radius: 16px; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); transition: box-shadow 0.3s ease; display: flex; flex-direction: column; position: relative; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .solucion-card:hover { box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15); } /* --- HEADER CON COLOR Y OLAS --- */ .solucion-card__header { position: relative; height: 140px; display: flex; align-items: center; justify-content: center; overflow: hidden; } /* Franja que tapa cualquier costura subpíxel entre la ola y el body */ .solucion-card__header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--bg-surface); z-index: 3; pointer-events: none; } /* Efecto de ola SVG (SVG en línea, se estira al contenedor) */ .solucion-card__wave { position: absolute; bottom: -2px; left: -5%; width: 110%; height: clamp(48px, 5.5vw, 65px); max-width: none; display: block; pointer-events: none; z-index: 1; } /* La ola toma el color del cuerpo de la tarjeta/modal (acompaña el tema) */ .solucion-card__wave path, .modal-infografia__wave path { fill: var(--bg-surface); } /* Icono */ .solucion-card__icon { font-size: 3rem; color: #ffffff; z-index: 2; position: relative; margin-top: -1rem; transition: transform 0.3s ease; -webkit-font-smoothing: antialiased; } .solucion-card:hover .solucion-card__icon { transform: scale(1.15); } /* --- BODY --- */ .solucion-card__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; position: relative; } /* Título */ .solucion-card__title { font-size: 1.1rem; font-weight: 700; color: var(--text-main); margin: 0 0 0.5rem; line-height: 1.3; min-height: 2.6em; } /* Subtítulo */ .solucion-card__subtitle { font-size: 0.85rem; font-weight: 600; color: var(--ide-primary, #0066cc); margin: 0 0 0.75rem; line-height: 1.4; } /* Texto descriptivo */ .solucion-card__text { font-size: 0.85rem; color: var(--text-muted); line-height: 1.5; margin: 0 0 1.5rem; flex: 1; } /* Botón circular */ .solucion-card__btn { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--border-color); background: var(--bg-surface); display: flex; align-items: center; justify-content: center; color: var(--text-main); text-decoration: none; transition: all 0.3s ease; align-self: flex-start; } .solucion-card__btn i { font-size: 1rem; transition: transform 0.3s ease; } .solucion-card__btn:hover { border-color: var(--ide-primary, #0066cc); color: var(--ide-primary, #0066cc); transform: scale(1.1); } .solucion-card__btn:hover i { transform: translateX(3px); } /* ========================================================= COLORES ESPECÍFICOS POR SOLUCIÓN - 8 COLORES ÚNICOS ========================================================= */ /* 1. Gestión - Verde/Teal */ .solucion-card--gestion .solucion-card__header { background: linear-gradient(135deg, #1abc9c 0%, #16a085 100%); } /* 2. Capacidades - Naranja */ .solucion-card--capacidades .solucion-card__header { background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%); } /* 3. Procesos - Violeta/Púrpura */ .solucion-card--procesos .solucion-card__header { background: linear-gradient(135deg, #9b59b6 0%, #8e44ad 100%); } /* 4. Proyectos - Rojo/Rosa */ .solucion-card--proyectos .solucion-card__header { background: linear-gradient(135deg, #e74c3c 0%, #c0392b 50%, #e91e63 100%); } /* 5. Digital - Azul oscuro */ .solucion-card--digital .solucion-card__header { background: linear-gradient(135deg, #34495e 0%, #2c3e50 100%); } /* 6. Estrategia - Azul claro */ .solucion-card--estrategia .solucion-card__header { background: linear-gradient(135deg, #5dade2 0%, #3498db 100%); } /* 7. Sectorial - Verde lima/Oliva */ .solucion-card--sectorial .solucion-card__header { background: linear-gradient(135deg, #a3ce0a 0%, #016309 100%); } /* 8. A medida - Índigo */ .solucion-card--medida .solucion-card__header { background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%); } /* ========================================================= RESPONSIVE ========================================================= */ @media (max-width: 900px) { .solucion-card__header { height: 100px; } .solucion-card__icon { font-size: 2rem; } .solucion-card__body { padding: 1.25rem; } .solucion-card__title { font-size: 1rem; } } @media (max-width: 600px) { .solucion-card__header { height: 90px; } .solucion-card__icon { font-size: 1.75rem; } .solucion-card__body { padding: 1rem; } .solucion-card__title { font-size: 0.95rem; min-height: auto; } .solucion-card__subtitle { font-size: 0.8rem; } .solucion-card__text { font-size: 0.8rem; } } /* ========================================================= MODAL INFOGRAFÍA - BASE (COMPACTO) ========================================================= */ .modal-backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 1.5rem; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .modal-backdrop.is-active { opacity: 1; visibility: visible; } .modal-infografia { background: var(--bg-surface); border-radius: 20px; max-width: 1200px; width: 100%; max-height: 90vh; overflow: hidden; position: relative; box-shadow: 0 24px 64px rgba(0, 0, 0, 0.25); transform: translateY(20px) scale(0.97); transition: transform 0.3s ease; } .modal-backdrop.is-active .modal-infografia { transform: translateY(0) scale(1); } /* Botón cerrar */ .modal-close-btn { position: absolute; top: 1rem; right: 1rem; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(10px); border: 2px solid rgba(255, 255, 255, 0.3); font-size: 1rem; color: #ffffff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; z-index: 10; } .modal-close-btn:hover { background: #ffffff; color: #1a1a2e; transform: rotate(90deg); } /* --- HEADER BASE --- */ .modal-infografia__header { position: relative; padding: 2rem 2rem 3rem; text-align: center; overflow: hidden; color: #ffffff; } /* Franja que tapa la costura subpíxel durante la animación del modal */ .modal-infografia__header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--bg-surface); z-index: 3; pointer-events: none; } .modal-infografia__wave { position: absolute; bottom: -2px; left: -5%; width: 110%; height: clamp(40px, 4vw, 50px); max-width: none; display: block; pointer-events: none; z-index: 1; } .modal-infografia__header-icon { font-size: 2.5rem; margin-bottom: 0.5rem; position: relative; z-index: 2; display: block; } .modal-infografia__header-title { font-size: 1.6rem; font-weight: 700; margin: 0 0 0.35rem; position: relative; z-index: 2; line-height: 1.2; } .modal-infografia__header-subtitle { font-size: 0.95rem; font-weight: 500; margin: 0; opacity: 0.95; position: relative; z-index: 2; } /* --- BODY --- */ .modal-infografia__body { padding: 1.5rem 2rem; } .modal-infografia__intro { font-size: 0.9rem; line-height: 1.5; color: var(--text-body); margin: 0 0 1.5rem; padding-bottom: 1rem; border-bottom: 2px solid var(--border-color); text-align: center; max-width: 800px; margin-left: auto; margin-right: auto; } .modal-infografia__section-title { display: flex; align-items: center; gap: 0.6rem; font-size: 1.1rem; font-weight: 700; color: var(--text-main); margin: 0 0 1rem; } .modal-infografia__section-title i { font-size: 1.2rem; } /* --- GRID DE NORMAS ISO (3 columnas) --- */ .normas-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.85rem; margin-bottom: 1.5rem; } .norma-card { display: flex; gap: 0.75rem; padding: 0.85rem; background: var(--bg-muted); border-radius: 10px; border-left: 3px solid #1abc9c; transition: all 0.3s ease; } .norma-card:hover { background: var(--bg-surface-elevated); box-shadow: 0 4px 12px rgba(26, 188, 156, 0.15); transform: translateX(3px); } .norma-card__icon { width: 40px; height: 40px; border-radius: 8px; color: #ffffff; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; } .norma-card__content { flex: 1; min-width: 0; } .norma-card__title { font-size: 0.95rem; font-weight: 700; color: var(--text-main); margin: 0 0 0.15rem; } .norma-card__subtitle { font-size: 0.75rem; font-weight: 600; margin: 0 0 0.35rem; } .norma-card__text { font-size: 0.75rem; color: var(--text-muted); line-height: 1.4; margin: 0; } /* --- SECCIONES DESTACADAS (2 columnas) --- */ .destacados-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.85rem; margin-bottom: 0; } .destacado-card { display: flex; gap: 0.85rem; padding: 1rem; border-radius: 10px; transition: all 0.3s ease; } .destacado-card--integrados { background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%); border: 2px solid #1abc9c; } .destacado-card--auditorias { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border: 2px solid #f59e0b; } .destacado-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08); } .destacado-card__icon { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; } .destacado-card--integrados .destacado-card__icon { background: #1abc9c; color: #ffffff; } .destacado-card--auditorias .destacado-card__icon { background: #f59e0b; color: #ffffff; } .destacado-card__content { flex: 1; } .destacado-card__title { font-size: 0.95rem; font-weight: 700; color: var(--text-main); margin: 0 0 0.35rem; line-height: 1.3; } .destacado-card__text { font-size: 0.78rem; color: var(--text-body); line-height: 1.4; margin: 0; } /* --- FOOTER --- */ .modal-infografia__footer { padding: 1rem 2rem 1.25rem; background: var(--bg-muted); border-top: 1px solid var(--border-color); display: flex; justify-content: center; } .modal-infografia__cta { display: inline-flex; align-items: center; gap: 0.6rem; color: #ffffff; padding: 0.7rem 1.75rem; border-radius: 50px; text-decoration: none; font-weight: 600; font-size: 0.9rem; transition: all 0.3s ease; border: none; } .modal-infografia__cta:hover { transform: translateY(-2px); } .modal-infografia__cta i { transition: transform 0.3s ease; } .modal-infografia__cta:hover i { transform: translateX(3px); } /* ========================================================= MODALES - COLORES POR SOLUCIÓN (narrativa visual) ========================================================= */ /* 1. Gestión - Verde/Teal */ .modal-infografia--gestion .modal-infografia__header { background: linear-gradient(135deg, #1abc9c 0%, #16a085 100%); } .modal-infografia--gestion .modal-infografia__section-title i { color: #1abc9c; } .modal-infografia--gestion .norma-card { border-left-color: #1abc9c; } .modal-infografia--gestion .norma-card:hover { box-shadow: 0 4px 12px rgba(26, 188, 156, 0.15); } .modal-infografia--gestion .norma-card__icon { background: linear-gradient(135deg, #1abc9c 0%, #16a085 100%); } .modal-infografia--gestion .norma-card__subtitle { color: #1abc9c; } .modal-infografia--gestion .modal-infografia__cta { background: linear-gradient(135deg, #1abc9c 0%, #16a085 100%); } .modal-infografia--gestion .modal-infografia__cta:hover { box-shadow: 0 6px 16px rgba(26, 188, 156, 0.4); } /* 2. Capacidades - Naranja */ .modal-infografia--capacidades .modal-infografia__header { background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%); } .modal-infografia--capacidades .modal-infografia__section-title i { color: #e67e22; } .modal-infografia--capacidades .norma-card { border-left-color: #e67e22; } .modal-infografia--capacidades .norma-card:hover { box-shadow: 0 4px 12px rgba(230, 126, 34, 0.15); } .modal-infografia--capacidades .norma-card__icon { background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%); } .modal-infografia--capacidades .norma-card__subtitle { color: #e67e22; } .modal-infografia--capacidades .modal-infografia__cta { background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%); } .modal-infografia--capacidades .modal-infografia__cta:hover { box-shadow: 0 6px 16px rgba(230, 126, 34, 0.4); } /* 3. Procesos - Violeta */ .modal-infografia--procesos .modal-infografia__header { background: linear-gradient(135deg, #9b59b6 0%, #8e44ad 100%); } .modal-infografia--procesos .modal-infografia__section-title i { color: #9b59b6; } .modal-infografia--procesos .norma-card { border-left-color: #9b59b6; } .modal-infografia--procesos .norma-card:hover { box-shadow: 0 4px 12px rgba(155, 89, 182, 0.15); } .modal-infografia--procesos .norma-card__icon { background: linear-gradient(135deg, #9b59b6 0%, #8e44ad 100%); } .modal-infografia--procesos .norma-card__subtitle { color: #9b59b6; } .modal-infografia--procesos .modal-infografia__cta { background: linear-gradient(135deg, #9b59b6 0%, #8e44ad 100%); } .modal-infografia--procesos .modal-infografia__cta:hover { box-shadow: 0 6px 16px rgba(155, 89, 182, 0.4); } /* 4. Proyectos - Rojo/Rosa */ .modal-infografia--proyectos .modal-infografia__header { background: linear-gradient(135deg, #e74c3c 0%, #c0392b 50%, #e91e63 100%); } .modal-infografia--proyectos .modal-infografia__section-title i { color: #e74c3c; } .modal-infografia--proyectos .norma-card { border-left-color: #e74c3c; } .modal-infografia--proyectos .norma-card:hover { box-shadow: 0 4px 12px rgba(231, 76, 60, 0.15); } .modal-infografia--proyectos .norma-card__icon { background: linear-gradient(135deg, #e74c3c 0%, #e91e63 100%); } .modal-infografia--proyectos .norma-card__subtitle { color: #e74c3c; } .modal-infografia--proyectos .modal-infografia__cta { background: linear-gradient(135deg, #e74c3c 0%, #e91e63 100%); } .modal-infografia--proyectos .modal-infografia__cta:hover { box-shadow: 0 6px 16px rgba(231, 76, 60, 0.4); } /* 5. Digital - Azul oscuro */ .modal-infografia--digital .modal-infografia__header { background: linear-gradient(135deg, #34495e 0%, #2c3e50 100%); } .modal-infografia--digital .modal-infografia__section-title i { color: #34495e; } .modal-infografia--digital .norma-card { border-left-color: #34495e; } .modal-infografia--digital .norma-card:hover { box-shadow: 0 4px 12px rgba(52, 73, 94, 0.15); } .modal-infografia--digital .norma-card__icon { background: linear-gradient(135deg, #34495e 0%, #2c3e50 100%); } .modal-infografia--digital .norma-card__subtitle { color: #34495e; } .modal-infografia--digital .modal-infografia__cta { background: linear-gradient(135deg, #34495e 0%, #2c3e50 100%); } .modal-infografia--digital .modal-infografia__cta:hover { box-shadow: 0 6px 16px rgba(52, 73, 94, 0.4); } /* 6. Estrategia - Azul claro */ .modal-infografia--estrategia .modal-infografia__header { background: linear-gradient(135deg, #5dade2 0%, #3498db 100%); } .modal-infografia--estrategia .modal-infografia__section-title i { color: #3498db; } .modal-infografia--estrategia .norma-card { border-left-color: #3498db; } .modal-infografia--estrategia .norma-card:hover { box-shadow: 0 4px 12px rgba(52, 152, 219, 0.15); } .modal-infografia--estrategia .norma-card__icon { background: linear-gradient(135deg, #5dade2 0%, #3498db 100%); } .modal-infografia--estrategia .norma-card__subtitle { color: #3498db; } .modal-infografia--estrategia .modal-infografia__cta { background: linear-gradient(135deg, #5dade2 0%, #3498db 100%); } .modal-infografia--estrategia .modal-infografia__cta:hover { box-shadow: 0 6px 16px rgba(52, 152, 219, 0.4); } /* 7. Sectorial - Verde lima/Oliva */ .modal-infografia--sectorial .modal-infografia__header { background: linear-gradient(135deg, #a3ce0a 0%, #016309 100%); } .modal-infografia--sectorial .modal-infografia__section-title i { color: #016309; } .modal-infografia--sectorial .norma-card { border-left-color: #7cb342; } .modal-infografia--sectorial .norma-card:hover { box-shadow: 0 4px 12px rgba(124, 179, 66, 0.15); } .modal-infografia--sectorial .norma-card__icon { background: linear-gradient(135deg, #a3ce0a 0%, #016309 100%); } .modal-infografia--sectorial .norma-card__subtitle { color: #016309; } .modal-infografia--sectorial .modal-infografia__cta { background: linear-gradient(135deg, #a3ce0a 0%, #016309 100%); } .modal-infografia--sectorial .modal-infografia__cta:hover { box-shadow: 0 6px 16px rgba(124, 179, 66, 0.4); } /* ========================================================= SECCIÓN: SOLUCIONES RELACIONADAS ========================================================= */ .soluciones-relacionadas { background: var(--bg-surface); } /* --- Header --- */ .soluciones-relacionadas__header { margin-bottom: 2.5rem; } .soluciones-relacionadas__eyebrow { display: inline-block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 0.75rem; } .soluciones-relacionadas__title { font-size: 2rem; font-weight: 800; color: var(--text-main); margin: 0; line-height: 1.2; max-width: 700px; } /* --- Grid Principal --- */ .soluciones-relacionadas__grid { display: grid; grid-template-columns: repeat(4, 1fr) 1.3fr; gap: 1.25rem; align-items: stretch; } /* --- Tarjeta Base --- */ .relacionada-card { border-radius: 16px; padding: 1.75rem 1.5rem; display: flex; flex-direction: column; gap: 1.25rem; min-height: 220px; transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; } .relacionada-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08); } /* --- Marca (ide. + subtítulo) --- */ .relacionada-card__brand { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; } .relacionada-card__brand-ide { font-size: 2rem; font-weight: 800; letter-spacing: -0.02em; color: #4a5568; /* Default, sobreescrito por variante */ } .relacionada-card__brand-sub { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.15em; margin-top: 0.15rem; color: #64748b; } /* --- Texto --- */ .relacionada-card__text { font-size: 0.9rem; font-weight: 600; line-height: 1.35; color: #1a1a2e; margin: 0; flex: 1; } /* --- Botón circular --- */ .relacionada-card__btn { width: 100px; height: 40px; padding: 0 1rem; border-radius: 9999px; border: 1.5px solid currentColor; background: transparent; display: inline-flex; align-items: center; justify-content: center; color: #1a1a2e; text-decoration: none; transition: all 0.3s ease; align-self: flex-start; } .relacionada-card__btn i { font-size: 0.9rem; transition: transform 0.3s ease; } .relacionada-card__btn:hover i { transform: translateX(3px); } /* ========================================================= VARIANTES DE COLOR POR MARCA ========================================================= */ /* 1. IDE Excellence - Verde Menta */ .relacionada-card--excellence { background: #e8f5ee; } .relacionada-card--excellence .relacionada-card__btn { color: var(--ide-excellence); } .relacionada-card--excellence .relacionada-card__btn:hover { background: var(--ide-excellence); color: #ffffff; } /* 2. IDE Projects - Melocotón */ .relacionada-card--projects { background: #fdf0e3; } .relacionada-card--projects .relacionada-card__btn { color: var(--ide-projects); } .relacionada-card--projects .relacionada-card__btn:hover { background: var(--ide-projects); color: #ffffff; } /* 3. IDE Digital - Lavanda */ .relacionada-card--digital { background: #ebe9fb; } .relacionada-card--digital .relacionada-card__btn { color: var(--ide-digital); } .relacionada-card--digital .relacionada-card__btn:hover { background: var(--ide-digital); color: #ffffff; } /* 4. IDE Academy - Rosa */ .relacionada-card--academy { background: #fde8ec; } .relacionada-card--academy .relacionada-card__btn { color: var(--ide-academy); } .relacionada-card--academy .relacionada-card__btn:hover { background: var(--ide-academy); color: #ffffff; } /* ========================================================= TEXTO LATERAL ========================================================= */ .soluciones-relacionadas__aside { display: flex; align-items: center; padding-left: 1.5rem; border-left: 2px solid var(--border-color); } .soluciones-relacionadas__aside-text { font-size: 0.95rem; line-height: 1.6; color: var(--text-body); margin: 0; } /* ========================================================= RESPONSIVE ========================================================= */ @media (max-width: 1200px) { .soluciones-relacionadas__grid { grid-template-columns: repeat(4, 1fr); } .soluciones-relacionadas__aside { grid-column: 1 / -1; padding-left: 0; padding-top: 1.5rem; border-left: none; border-top: 2px solid var(--border-color); margin-top: 0.5rem; } } @media (max-width: 900px) { .soluciones-relacionadas__grid { grid-template-columns: repeat(2, 1fr); } .soluciones-relacionadas__title { font-size: 1.65rem; } } @media (max-width: 600px) { .soluciones-relacionadas__grid { grid-template-columns: 1fr; } .soluciones-relacionadas__title { font-size: 1.4rem; } .relacionada-card { min-height: 180px; padding: 1.5rem 1.25rem; } .relacionada-card__brand-ide { font-size: 1.75rem; } } /* ========================================================= RESPONSIVE MODALES ========================================================= */ @media (max-width: 1024px) { .normas-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .modal-backdrop { padding: 1rem; } .modal-infografia { max-height: 95vh; overflow-y: auto; } .modal-infografia__header { padding: 1.5rem 1.25rem 2.5rem; } .modal-infografia__header-title { font-size: 1.3rem; } .modal-infografia__header-icon { font-size: 2rem; } .modal-infografia__body { padding: 1.25rem; } .normas-grid, .destacados-grid { grid-template-columns: 1fr; } .norma-card, .destacado-card { padding: 0.85rem; } .modal-infografia__footer { padding: 1rem 1.25rem 1.25rem; } } /* ========================================================= MODO OSCURO - AJUSTES DE TARJETAS DESTACADAS ========================================================= */ [data-theme="dark"] .destacado-card--integrados { background: linear-gradient(135deg, rgba(26, 188, 156, 0.14) 0%, rgba(22, 160, 133, 0.2) 100%); } [data-theme="dark"] .destacado-card--auditorias { background: linear-gradient(135deg, rgba(245, 158, 11, 0.14) 0%, rgba(234, 179, 8, 0.2) 100%); }