/* ============================================ FUENTES DE MARCA ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600;700&family=Literata:ital,wght@0,400;0,700;1,400;1,700&family=Raleway:wght@400;500;600;700&family=Windsong&display=swap'); /* ============================================ VARIABLES DE TEMA (modo claro por defecto) ============================================ */ :root { /* Paleta Base / Primitivas de Marca */ --brand-plum: #221728; --brand-crimson: #ba124d; --brand-teal: #003f52; --brand-sage-light: #eaf0ee; --brand-rose-muted: #dfbdb9; /* Tema Claro (Por Defecto) */ --bg-base: var(--brand-sage-light); --bg-surface: #ffffff; --bg-surface-elevated: #f5f9f8; --text-primary: var(--brand-plum); --text-secondary: var(--brand-teal); --text-muted: rgba(34, 23, 40, 0.65); --text-on-accent: #ffffff; --btn-primary-bg: var(--brand-crimson); --btn-primary-hover: #9c0f40; --btn-secondary-bg: var(--brand-teal); --btn-secondary-hover: #002c3a; --badge-bg: var(--brand-rose-muted); --badge-text: var(--brand-plum); --border: rgba(0, 63, 82, 0.12); --shadow: 0 4px 20px -2px rgba(34, 23, 40, 0.08); --glow-animation: rgba(186, 18, 77, 0.25); /* Tipografía de Marca */ --font-title: 'Literata', serif; --font-subtitle: 'Literata', serif; --font-body: 'Raleway', sans-serif; --font-small: 'Jost', sans-serif; --font-signature: 'Windsong', cursive; --font-family-base: var(--font-body); --font-size-base: 16px; /* Espaciados */ --spacing-xs: 0.5rem; --spacing-sm: 1rem; --spacing-md: 2rem; --spacing-lg: 4rem; --header-height: 72px; } /* Modo oscuro */ [data-theme="dark"] { --bg-base: var(--brand-plum); --bg-surface: #2d2034; --bg-surface-elevated: #392842; --text-primary: var(--brand-sage-light); --text-secondary: var(--brand-rose-muted); --text-muted: rgba(234, 240, 238, 0.65); --text-on-accent: #ffffff; --btn-primary-bg: var(--brand-crimson); --btn-primary-hover: #d81a5c; --btn-secondary-bg: #0b5066; --btn-secondary-hover: #10637d; --badge-bg: rgba(223, 189, 185, 0.18); --badge-text: var(--brand-rose-muted); --border: rgba(234, 240, 238, 0.12); --shadow: 0 4px 24px -2px rgba(0, 0, 0, 0.45); --glow-animation: rgba(186, 18, 77, 0.45); } /* ============================================ RESET BÁSICO ============================================ */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: var(--font-size-base); scroll-behavior: smooth; } body { font-family: var(--font-family-base); background-color: var(--bg-base); color: var(--text-primary); line-height: 1.5; min-height: 100vh; display: flex; flex-direction: column; transition: background-color 0.3s ease, color 0.3s ease; } h1, h2, h3 { font-family: var(--font-title); font-style: italic; font-weight: 700; } h4, h5, h6 { font-family: var(--font-subtitle); font-style: italic; font-weight: 400; } small { font-family: var(--font-small); } button, .btn, [class*="btn-"] { font-family: var(--font-small); } .signature, .firma { font-family: var(--font-signature); font-weight: 400; } body.menu-open { overflow: hidden; padding-right: var(--scrollbar-width, 0px); } main { flex: 1; } img, video { max-width: 100%; display: block; } a { color: inherit; text-decoration: none; } ul { list-style: none; } /* ============================================ HEADER Y LOGOS ============================================ */ .site-header { background-color: var(--bg-surface); border-bottom: 1px solid var(--border); padding: var(--spacing-sm); position: sticky; top: 0; z-index: 100; box-shadow: var(--shadow); } .main-nav { display: flex; justify-content: space-between; align-items: center; max-width: 1400px; margin: 0 auto; } .logo { display: flex; align-items: center; } .logo img { height: 40px; width: auto; } .logo-light { display: block; } .logo-dark { display: none; } [data-theme="dark"] .logo-light { display: none; } [data-theme="dark"] .logo-dark { display: block; } /* ============================================ BOTONES DE NAVEGACIÓN (HEADER) ============================================ */ .nav-actions { display: flex; gap: var(--spacing-sm); align-items: center; } /* Botón Menú */ .menu-toggle { background: none; border: 1px solid var(--border); color: var(--text-primary); padding: 0.45rem 1.1rem; cursor: pointer; font-size: 0.95rem; font-weight: 500; border-radius: 24px; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; transition: all 0.3s ease; } .menu-toggle:hover { background-color: var(--bg-surface-elevated); border-color: var(--text-primary); } .menu-icon { width: 18px; height: 18px; display: block; flex-shrink: 0; transition: transform 0.2s ease; } .menu-toggle:hover .menu-icon { transform: scale(1.08); } /* Botón Switch Tema (Circular) */ .theme-toggle { background: none; border: 1px solid var(--border); color: var(--text-primary); padding: 0; width: 40px; height: 40px; cursor: pointer; border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; transition: all 0.3s ease; } .theme-toggle:hover { background-color: var(--bg-surface-elevated); border-color: var(--text-primary); } .theme-icon { width: 20px; height: 20px; display: block; position: absolute; transition: transform 0.5s ease, opacity 0.5s ease; } /* Animación Switch Modo Claro */ [data-theme="light"] .icon-sun, :root:not([data-theme="dark"]) .icon-sun { opacity: 0; transform: rotate(180deg); pointer-events: none; } [data-theme="light"] .icon-moon, :root:not([data-theme="dark"]) .icon-moon { opacity: 1; transform: rotate(0deg); pointer-events: auto; } /* Animación Switch Modo Oscuro */ [data-theme="dark"] .icon-sun { opacity: 1; transform: rotate(0deg); pointer-events: auto; } [data-theme="dark"] .icon-moon { opacity: 0; transform: rotate(-180deg); pointer-events: none; } /* ============================================ MENÚ DESPLEGABLE (CON EFECTO AURORA) ============================================ */ .menu-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(34, 23, 40, 0.55); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; z-index: 998; } .menu-overlay.is-open { opacity: 1; visibility: visible; } .fullscreen-menu { position: fixed; bottom: 0; left: 0; width: 100%; height: 52vh; background-color: var(--bg-surface); border-top: 1px solid var(--border); border-top-left-radius: 20px; border-top-right-radius: 20px; transform: translateY(100%); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s ease; z-index: 999; overflow: hidden; /* Clave para contener los destellos de la aurora */ padding: var(--spacing-md) var(--spacing-lg) var(--spacing-lg); box-shadow: 0 -10px 40px -5px rgba(0, 0, 0, 0.2); isolation: isolate; } .fullscreen-menu.is-open { transform: translateY(0); } /* --- CAPA 1 AURORA: Onda Esmeralda / Salvia --- */ .fullscreen-menu::before { content: ""; position: absolute; top: -40%; left: -20%; width: 140%; height: 180%; pointer-events: none; z-index: -2; filter: blur(55px); border-radius: 50%; opacity: 0.35; background: radial-gradient( ellipse at center, rgba(0, 168, 140, 0.32) 0%, rgba(0, 63, 82, 0.12) 45%, transparent 70% ); will-change: transform; } /* Aurora en Modo Oscuro */ [data-theme="dark"] .fullscreen-menu::before { opacity: 0.42; mix-blend-mode: screen; background: radial-gradient( ellipse at center, rgba(0, 220, 160, 0.35) 0%, rgba(11, 80, 102, 0.28) 45%, transparent 70% ); } /* Botón de cierre */ .menu-close { position: absolute; z-index: 3; top: var(--spacing-sm); right: var(--spacing-md); background: none; border: 1px solid var(--border); color: var(--text-primary); font-size: 1.1rem; width: 36px; height: 36px; cursor: pointer; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.25s ease; } .menu-close:hover { background-color: var(--bg-surface-elevated); border-color: var(--text-primary); transform: rotate(90deg); } /* Contenedor y columnas internas */ .menu-content { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-lg); max-width: 1200px; margin: 0 auto; padding-top: 0.5rem; max-height: 100%; overflow-y: auto; } .menu-column h3 { font-family: var(--font-small); font-style: normal; font-size: 0.85rem; letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: var(--spacing-sm); color: var(--text-secondary); font-weight: 700; border-bottom: 1px solid var(--border); padding-bottom: 0.4rem; } .menu-column ul { display: flex; flex-direction: column; gap: 0.35rem; } .menu-column a { color: var(--text-primary); font-size: 0.95rem; padding: 0.25rem 0; display: inline-block; transition: transform 0.2s ease, color 0.2s ease; } .menu-column a:hover { color: var(--btn-primary-bg); transform: translateX(4px); } /* Columna 3 - Info de Contacto */ .menu-contact-info { margin-bottom: var(--spacing-sm); } .menu-contact-info p { margin-bottom: 0.35rem; color: var(--text-muted); font-size: 0.9rem; } .contact-item { display: flex; align-items: center; gap: 0.6rem; color: var(--text-primary); } .contact-icon { width: 20px; height: 16px; display: inline-block; background-color: currentColor; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; } .icon-email { -webkit-mask-image: url("../assets/iconos/buzon.svg"); mask-image: url("../assets/iconos/buzon.svg"); } .icon-phone { -webkit-mask-image: url("../assets/iconos/contacto.svg"); mask-image: url("../assets/iconos/contacto.svg"); } .menu-social { display: flex; gap: var(--spacing-sm); margin: var(--spacing-xs) 0 var(--spacing-sm); } .menu-social a { font-size: 0.85rem; font-weight: 600; color: var(--text-secondary); } /* Botones del Menú */ .menu-buttons { display: flex; flex-direction: column; gap: 0.65rem; } .btn-menu { display: block; padding: 0.65rem 1.2rem; text-align: center; border-radius: 999px; font-weight: 600; font-size: 0.9rem; transition: all 0.25s ease; transform: none !important; /* Evita heredar el translateX de los links */ } /* Botón 1: Sólido Primario */ .menu-buttons .btn-menu-primary { background-color: var(--btn-primary-bg) !important; color: var(--text-on-accent) !important; border: 1.5px solid var(--btn-primary-bg); box-shadow: 0 4px 14px -3px rgba(186, 18, 77, 0.35); } .menu-buttons .btn-menu-primary:hover { background-color: var(--btn-primary-hover) !important; border-color: var(--btn-primary-hover); color: var(--text-on-accent) !important; transform: translateY(-1px) !important; } /* Botón 2: Outline Secundario */ .menu-buttons .btn-menu-secondary { background-color: transparent !important; border: 1.5px solid var(--text-secondary); color: var(--text-primary) !important; } .menu-buttons .btn-menu-secondary:hover { background-color: var(--bg-surface-elevated) !important; border-color: var(--btn-primary-bg); color: var(--btn-primary-bg) !important; transform: translateY(-1px) !important; } /* Logo en el menú (alineado a la derecha) */ .menu-brand { margin-top: 1.75rem; display: flex; justify-content: flex-end; align-items: center; border-top: none; } .menu-brand img { height: 36px; width: auto; opacity: 0.95; transition: opacity 0.2s ease; } .menu-brand img:hover { opacity: 1; } /* ============================================ KEYFRAMES (ONDAS DE AURORA BOREAL) ============================================ */ @keyframes aurora-stream-1 { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 50% { transform: translate(7%, 8%) rotate(10deg) scale(1.1); } 100% { transform: translate(-5%, -6%) rotate(-6deg) scale(0.96); } } @keyframes aurora-stream-2 { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 50% { transform: translate(-8%, -5%) rotate(-12deg) scale(1.14); } 100% { transform: translate(6%, 7%) rotate(8deg) scale(0.94); } } @media (prefers-reduced-motion: reduce) { .fullscreen-menu::before, .fullscreen-menu::after { animation: none; } } /* ============================================ RESPONSIVE ============================================ */ @media (max-width: 768px) { .fullscreen-menu { height: 85vh; padding: var(--spacing-md); padding-bottom: var(--spacing-lg); } .menu-content { grid-template-columns: 1fr; gap: var(--spacing-md); } .menu-column h3 { font-size: 1.1rem; } .menu-column a { font-size: 1rem; } } @media (max-width: 480px) { .fullscreen-menu { height: 90vh; } } /* ============================================ SECCIONES Y FOOTER ============================================ */ main section { padding: var(--spacing-md) var(--spacing-sm); border-bottom: 1px dashed var(--border); } main section h2 { margin-bottom: var(--spacing-sm); font-size: 1.5rem; } .site-footer { border-top: 1px solid var(--border); padding: var(--spacing-md) var(--spacing-sm); margin-top: auto; background-color: var(--bg-surface); } .footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-md); margin-bottom: var(--spacing-md); max-width: 1400px; margin-left: auto; margin-right: auto; } .footer-col h4 { margin-bottom: var(--spacing-xs); color: var(--text-secondary); } .footer-bottom { border-top: 1px solid var(--border); padding-top: var(--spacing-sm); text-align: center; font-size: 0.875rem; color: var(--text-muted); } /* ============================================ SECCION HERO ============================================ */ .hero-section { min-height: calc(100vh - var(--header-height)); background-color: var(--bg-base); display: flex; align-items: center; justify-content: center; padding: var(--spacing-lg) var(--spacing-md); text-align: center; } .hero-content { max-width: 900px; width: 100%; display: flex; flex-direction: column; align-items: center; gap: var(--spacing-md); } /* Título */ .hero-title { font-family: var(--font-title); font-style: italic; font-weight: 700; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.15; color: var(--text-primary); opacity: 0; transform: translateY(30px); animation: fadeInUp 0.9s ease-out 0.2s forwards; } /* Subtítulo */ .hero-subtitle { font-family: var(--font-title); font-style: italic; font-weight: 400; font-size: clamp(1rem, 2vw, 1.25rem); line-height: 1.5; color: var(--text-muted); max-width: 700px; opacity: 0; transform: translateY(30px); animation: fadeInUp 0.9s ease-out 0.5s forwards; } /* Grupo de botones */ .hero-cta-group { display: flex; gap: var(--spacing-sm); flex-wrap: wrap; justify-content: center; margin-top: var(--spacing-sm); opacity: 0; transform: translateY(30px); animation: fadeInUp 0.9s ease-out 0.8s forwards; } /* ============================================ BOTONES (reutilizables) ============================================ */ .btn { display: inline-block; padding: 0.85rem 2rem; border-radius: 999px; font-family: var(--font-small); font-weight: 600; font-size: 0.95rem; text-align: center; cursor: pointer; transition: all 0.3s ease; text-decoration: none; } /* Botón Primario (sólido) */ .btn-primary { background-color: var(--btn-primary-bg); color: var(--text-on-accent); border: 1.5px solid var(--btn-primary-bg); box-shadow: 0 4px 14px -3px rgba(186, 18, 77, 0.35); } .btn-primary:hover { background-color: var(--btn-primary-hover); border-color: var(--btn-primary-hover); color: var(--text-on-accent); transform: translateY(-2px); box-shadow: 0 6px 20px -3px rgba(186, 18, 77, 0.45); } /* Botón Secundario (outline) */ .btn-secondary { background-color: transparent; color: var(--text-primary); border: 1.5px solid var(--text-secondary); } .btn-secondary:hover { background-color: var(--bg-surface-elevated); border-color: var(--btn-primary-bg); color: var(--btn-primary-bg); transform: translateY(-2px); } /* ============================================ ANIMACIONES ============================================ */ /* Fade-in hacia arriba (entrada escalonada) */ @keyframes fadeInUp { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } } /* Shake sutil para llamar la atención (cada 6s) */ @keyframes attentionShake { 0%, 85%, 100% { transform: translateX(0) rotate(0deg); } 87% { transform: translateX(-4px) rotate(-1deg); } 89% { transform: translateX(4px) rotate(1deg); } 91% { transform: translateX(-3px) rotate(-0.5deg); } 93% { transform: translateX(3px) rotate(0.5deg); } 95% { transform: translateX(0) rotate(0deg); } } .hero-cta-primary { animation: attentionShake 6s ease-in-out infinite; } /* Pausar shake en hover para no interferir con la interacción */ .hero-cta-primary:hover { animation-play-state: paused; } /* Respetar preferencia de movimiento reducido */ @media (prefers-reduced-motion: reduce) { .hero-title, .hero-subtitle, .hero-cta-group { animation: none; opacity: 1; transform: none; } .hero-cta-primary { animation: none; } } /* ============================================ RESPONSIVE HERO ============================================ */ @media (max-width: 768px) { .hero-section { padding: var(--spacing-md) var(--spacing-sm); } .hero-cta-group { flex-direction: column; width: 100%; max-width: 320px; } .btn { width: 100%; } } /* ============================================ SECCIÓN SERVICIOS (ACORDEÓN INTERACTIVO) ============================================ */ .servicios-section { padding: var(--spacing-lg) var(--spacing-md); background-color: var(--bg-base); } .servicios-container { display: grid; grid-template-columns: 1fr 1.5fr; gap: var(--spacing-lg); max-width: 1400px; margin: 0 auto; align-items: center; min-height: 600px; } /* Columna Izquierda */ .servicios-intro { display: flex; flex-direction: column; gap: var(--spacing-sm); align-items: flex-start; } .servicios-title { font-size: clamp(2rem, 4vw, 3rem); color: var(--text-primary); line-height: 1.1; } .servicios-subtitle { font-size: 1.1rem; color: var(--text-muted); max-width: 400px; line-height: 1.6; } .servicios-intro .btn { margin-top: var(--spacing-sm); } /* Columna Derecha: Acordeón */ .servicios-accordion { position: relative; width: 100%; height: 600px; background-color: var(--bg-surface); border-radius: 16px; padding: var(--spacing-md); box-shadow: var(--shadow); border: 1px solid var(--border); display: flex; flex-direction: column; gap: var(--spacing-xs); overflow: hidden; } /* Items del acordeón */ .servicio-item { flex: 1; background-color: var(--bg-surface-elevated); border-radius: 12px; padding: var(--spacing-sm) var(--spacing-md); display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; cursor: pointer; border: 1px solid var(--border); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; position: relative; min-height: 0; } .servicio-item:hover:not(.is-active) { background-color: var(--bg-surface); border-color: var(--text-secondary); transform: translateX(4px); } /* Estado activo (expandido) */ .servicio-item.is-active { flex: 10; background-color: var(--bg-surface-elevated); box-shadow: 0 8px 30px -5px rgba(0, 0, 0, 0.1); border-color: var(--btn-primary-bg); } /* Items colapsados (cuando hay uno activo) */ .servicios-accordion.has-active .servicio-item:not(.is-active) { flex: 0; min-height: 0; padding: 0 var(--spacing-md); opacity: 0; pointer-events: none; border-color: transparent; } /* Header del item (contraído) */ .servicio-header { display: flex; align-items: center; justify-content: center; gap: var(--spacing-sm); width: 100%; transition: opacity 0.3s ease; } .servicio-icon { width: 32px; height: 32px; object-fit: contain; flex-shrink: 0; display: inline-block; background-color: currentColor; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; } .icon-branding { -webkit-mask-image: url("../assets/iconos/branding.svg"); mask-image: url("../assets/iconos/branding.svg"); } .icon-rrss { -webkit-mask-image: url("../assets/iconos/redes_sociales.svg"); mask-image: url("../assets/iconos/redes_sociales.svg"); } .icon-web { -webkit-mask-image: url("../assets/iconos/web.svg"); mask-image: url("../assets/iconos/web.svg"); } .icon-auto { -webkit-mask-image: url("../assets/iconos/automatizaciones.svg"); mask-image: url("../assets/iconos/automatizaciones.svg"); } .icon-paid { -webkit-mask-image: url("../assets/iconos/paid_media.svg"); mask-image: url("../assets/iconos/paid_media.svg"); } .icon-add { -webkit-mask-image: url("../assets/iconos/ad_hoc.svg"); mask-image: url("../assets/iconos/ad_hoc.svg"); } /**/ .servicio-title-short { font-family: var(--font-title); font-style: italic; font-size: 1.1rem; color: var(--text-primary); font-weight: 700; white-space: nowrap; } /* Contenido del item (expandido) */ .servicio-content { display: none; flex-direction: column; align-items: center; justify-content: center; gap: var(--spacing-sm); width: 100%; max-width: 500px; height: 100%; padding: var(--spacing-md); opacity: 0; transform: translateY(10px); transition: opacity 0.4s ease 0.2s, transform 0.4s ease 0.2s; } .servicio-item.is-active .servicio-header { display: none; } .servicio-item.is-active .servicio-content { display: flex; opacity: 1; transform: translateY(0); } .servicio-icon-large { width: 64px; height: 64px; object-fit: contain; margin-bottom: var(--spacing-xs); display: inline-block; background-color: currentColor; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; } .servicio-title-long { font-family: var(--font-title); font-style: italic; font-size: clamp(1.5rem, 2.5vw, 2rem); color: var(--text-primary); font-weight: 700; line-height: 1.2; text-align: center; } .servicio-description { font-family: var(--font-body); font-size: 1rem; color: var(--text-muted); line-height: 1.6; text-align: center; max-width: 450px; } .servicio-content .btn { margin-top: var(--spacing-xs); } /* Botón cerrar */ .servicio-close { position: absolute; top: var(--spacing-sm); right: var(--spacing-sm); background: none; border: 1px solid var(--border); color: var(--text-muted); font-size: 1.2rem; cursor: pointer; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.25s ease; z-index: 5; } .servicio-close:hover { color: var(--btn-primary-bg); background-color: var(--bg-surface); border-color: var(--btn-primary-bg); transform: rotate(90deg); } /* ============================================ RESPONSIVE SERVICIOS ============================================ */ @media (max-width: 968px) { .servicios-container { grid-template-columns: 1fr; gap: var(--spacing-md); min-height: auto; } .servicios-accordion { height: 500px; } .servicios-intro { text-align: center; align-items: center; } } @media (max-width: 480px) { .servicios-accordion { height: 450px; padding: var(--spacing-sm); } .servicio-title-short { font-size: 0.95rem; } .servicio-title-long { font-size: 1.3rem; } .servicio-icon-large { width: 48px; height: 48px; } } /* ============================================ SECCIÓN DIAGNÓSTICO ============================================ */ .diagnostico-section { padding: var(--spacing-lg) var(--spacing-md); background-color: var(--bg-base); } /* Header de la sección (título y subtítulo centrados) */ .diagnostico-header { text-align: center; max-width: 700px; margin: 0 auto var(--spacing-lg); } .diagnostico-title { font-family: var(--font-title); font-style: italic; font-size: clamp(2rem, 4vw, 3rem); color: var(--text-primary); margin-bottom: var(--spacing-sm); line-height: 1.15; } .diagnostico-subtitle { font-family: var(--font-body); font-size: 1.1rem; color: var(--text-muted); line-height: 1.6; } /* Tarjeta contenedora del cuestionario */ .diagnostico-card { max-width: 800px; margin: 0 auto; background-color: var(--bg-surface); border-radius: 16px; padding: var(--spacing-md); box-shadow: var(--shadow); border: 1px solid var(--border); } /* Wrapper de la barra de progreso */ .progreso-wrapper { margin-bottom: var(--spacing-md); } /* Barra de Progreso */ .progreso-barra { width: 100%; height: 8px; background-color: var(--border); border-radius: 4px; overflow: hidden; margin-bottom: var(--spacing-xs); } .progreso-barra-completado { height: 100%; background-color: var(--btn-primary-bg); width: 0%; transition: width 0.5s cubic-bezier(0.16, 1, 0.3, 1); border-radius: 4px; } .progreso-texto { font-family: var(--font-small); font-size: 0.85rem; color: var(--text-secondary); text-align: right; } /* Contenedor de Preguntas */ .pregunta-contenedor { animation: fadeIn 0.4s ease; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .pregunta-titulo { font-family: var(--font-subtitle); font-size: 1.35rem; color: var(--text-primary); margin-bottom: var(--spacing-md); font-weight: 400; line-height: 1.3; } .opciones-contenedor { display: grid; grid-template-columns: 1fr; gap: var(--spacing-sm); } .opcion-tarjeta { background-color: var(--bg-surface-elevated); border: 2px solid var(--border); border-radius: 12px; padding: var(--spacing-sm); cursor: pointer; transition: all 0.25s ease; font-family: var(--font-body); font-size: 0.95rem; color: var(--text-primary); text-align: left; width: 100%; } .opcion-tarjeta:hover { border-color: var(--btn-primary-bg); background-color: var(--bg-surface); transform: translateX(4px); } .opcion-tarjeta:active { transform: scale(0.98); } .opcion-tarjeta.seleccionada { border-color: var(--btn-primary-bg); background-color: var(--btn-primary-bg); color: var(--text-on-accent); } /* Botón Reiniciar */ .btn-reiniciar { background: none; border: 1.5px solid var(--border); color: var(--text-secondary); padding: 0.65rem 1.2rem; border-radius: 24px; cursor: pointer; font-family: var(--font-small); font-size: 0.9rem; font-weight: 600; margin-top: var(--spacing-md); transition: all 0.25s ease; display: inline-flex; align-items: center; gap: 0.5rem; } .btn-reiniciar:hover { border-color: var(--btn-primary-bg); color: var(--btn-primary-bg); transform: translateY(-2px); } /* Contenedor de Resultados */ .resultado-contenedor { animation: fadeIn 0.5s ease; background-color: var(--bg-surface-elevated); border: 2px solid var(--btn-primary-bg); border-radius: 16px; padding: var(--spacing-md); text-align: center; } .resultado-titulo { font-family: var(--font-title); font-style: italic; font-size: clamp(1.5rem, 3vw, 2rem); color: var(--btn-primary-bg); margin-bottom: var(--spacing-sm); font-weight: 700; line-height: 1.2; } .resultado-diagnostico { font-size: 1.05rem; color: var(--text-primary); margin-bottom: var(--spacing-sm); line-height: 1.6; } .resultado-solucion { background-color: var(--bg-surface); border-left: 4px solid var(--btn-primary-bg); padding: var(--spacing-sm); margin: var(--spacing-sm) 0 var(--spacing-md); text-align: left; font-size: 0.95rem; color: var(--text-primary); border-radius: 0 8px 8px 0; } .resultado-cta { background-color: var(--btn-primary-bg); color: var(--text-on-accent); border: none; padding: 0.85rem 2rem; border-radius: 24px; font-family: var(--font-small); font-size: 0.95rem; font-weight: 600; cursor: pointer; transition: all 0.25s ease; box-shadow: 0 4px 14px -3px rgba(186, 18, 77, 0.35); display: inline-block; } .resultado-cta:hover { background-color: var(--btn-primary-hover); transform: translateY(-2px); box-shadow: 0 6px 18px -4px rgba(186, 18, 77, 0.45); } /* ============================================ RESPONSIVE DIAGNÓSTICO ============================================ */ @media (max-width: 768px) { .diagnostico-section { padding: var(--spacing-md) var(--spacing-sm); } .diagnostico-card { padding: var(--spacing-sm); } .diagnostico-title { font-size: 1.75rem; } .diagnostico-subtitle { font-size: 1rem; } .pregunta-titulo { font-size: 1.15rem; } .opcion-tarjeta { font-size: 0.9rem; padding: var(--spacing-xs); } .resultado-titulo { font-size: 1.4rem; } .resultado-solucion { font-size: 0.9rem; } } @media (max-width: 480px) { .diagnostico-card { padding: var(--spacing-sm); border-radius: 12px; } .opcion-tarjeta { padding: var(--spacing-xs); font-size: 0.85rem; } }