:root { --color-fondo: #0b1020; --color-fondo-seccion: #11182b; --color-fondo-suave: #1a2340; --color-texto: #f5f5f5; --color-primario: #4ea8ff; --color-secundario: #00c896; --color-borde: #2b3555; --color-contraste-alto: #ffffff; --fuente-base: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } /* Reset básico */ *, *::before, *::after { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; font-family: var(--fuente-base); background-color: var(--color-fondo); color: var(--color-texto); line-height: 1.6; } /* Enlace para saltar contenido */ .skip-link { position: absolute; top: -40px; left: 0; background: var(--color-contraste-alto); color: #000000; padding: 8px 16px; z-index: 100; text-decoration: none; font-weight: 600; } .skip-link:focus { top: 0; } /* Encabezado */ .site-header { background-color: #050814; border-bottom: 1px solid var(--color-borde); padding: 1rem 1.5rem; display: grid; grid-template-columns: 1.5fr auto; grid-template-rows: auto auto; gap: 0.75rem 1.5rem; align-items: center; } .logo-area h1 { margin: 0; font-size: 1.7rem; color: var(--color-primario); letter-spacing: 0.04em; } .logo-area p { margin: 0.25rem 0 0; font-size: 0.95rem; color: #cfd8ff; } /* Menú principal */ .menu-toggle { justify-self: end; padding: 0.4rem 0.8rem; border-radius: 4px; border: 1px solid var(--color-borde); background-color: transparent; color: var(--color-texto); cursor: pointer; font-size: 1.3rem; } .main-nav ul { list-style: none; padding: 0; margin: 0; display: none; flex-wrap: wrap; gap: 0.75rem; } .main-nav ul.open { display: flex; } .main-nav a { text-decoration: none; color: var(--color-texto); font-weight: 600; padding: 0.35rem 0.7rem; border-radius: 999px; font-size: 0.9rem; background-color: #151c33; } .main-nav a:hover, .main-nav a:focus { background-color: var(--color-primario); color: #000000; } /* Buscador */ .search-form { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; } .search-form label { font-size: 0.85rem; color: #cfd8ff; } .search-form input[type="search"] { flex: 1; min-width: 160px; padding: 0.35rem 0.5rem; border-radius: 4px; border: 1px solid var(--color-borde); background-color: #050814; color: var(--color-texto); } .search-form button { padding: 0.4rem 0.8rem; border-radius: 4px; border: none; background-color: var(--color-primario); color: #000000; cursor: pointer; font-weight: 600; } /* Breadcrumbs */ .breadcrumbs { padding: 0.5rem 1.5rem; font-size: 0.85rem; color: #cfd8ff; } .breadcrumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; } .breadcrumbs a { color: var(--color-primario); text-decoration: none; } /* Secciones generales */ .section { padding: 2.5rem 1.5rem; border-top: 1px solid var(--color-borde); background-color: var(--color-fondo-seccion); } /* Hero */ .hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.5fr); gap: 1.8rem; align-items: center; } .hero-texto h2 { font-size: 2rem; margin-top: 0; margin-bottom: 0.75rem; } .hero-texto p { font-size: 1rem; max-width: 40rem; color: #dde5ff; } .btn-primario { display: inline-block; margin-top: 1rem; padding: 0.7rem 1.3rem; background-color: var(--color-secundario); color: #000000; text-decoration: none; border-radius: 999px; font-weight: 600; font-size: 0.95rem; } .btn-primario:hover, .btn-primario:focus { background-color: #00a67f; } .hero-imagen img { width: 100%; height: auto; border-radius: 12px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45); } .hero-imagen figcaption { font-size: 0.85rem; margin-top: 0.35rem; font-style: italic; color: #cfd8ff; } /* Imagen entre secciones */ .image-break { padding: 0; margin: 0; } .image-break img { width: 100%; height: auto; display: block; opacity: 0.9; } /* Títulos de sección */ .section h2 { margin-top: 0; font-size: 1.6rem; margin-bottom: 0.75rem; } /* Conceptos */ .concepto { margin-top: 1.5rem; padding: 1.5rem; border-radius: 10px; background-color: var(--color-fondo-suave); border: 1px solid var(--color-borde); } .concepto h3 { margin-top: 0; font-size: 1.2rem; } .concepto p { margin-bottom: 1rem; } /* Imágenes en contenido */ .image-space { margin: 1.5rem 0; } .image-space img { width: 100%; height: auto; border-radius: 10px; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4); } .image-space figcaption { font-size: 0.85rem; margin-top: 0.4rem; color: #cfd8ff; } /* Código */ .code-block { background: #050814; color: #e0e6ff; padding: 1rem; border-radius: 8px; overflow-x: auto; font-size: 0.9rem; } /* Recursos */ .recursos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2rem; margin-top: 1.5rem; } .recurso { padding: 1.2rem; border-radius: 10px; border: 1px solid var(--color-borde); background-color: var(--color-fondo-suave); } .recurso h3 { margin-top: 0; } .recurso a { display: inline-block; margin-top: 0.6rem; color: var(--color-primario); text-decoration: none; font-weight: 600; } /* Pasos */ .steps { padding-left: 1.2rem; } .steps li { margin-bottom: 0.9rem; } /* Formulario de participación */ .form-participacion { margin-top: 1rem; max-width: 650px; } .campo-formulario { margin-bottom: 1rem; } .campo-formulario label { display: block; margin-bottom: 0.25rem; font-weight: 600; } .campo-formulario input, .campo-formulario textarea, .campo-formulario select { width: 100%; padding: 0.55rem 0.6rem; border-radius: 6px; border: 1px solid var(--color-borde); font: inherit; background-color: #050814; color: var(--color-texto); } /* Footer */ .site-footer { background-color: #050814; border-top: 1px solid var(--color-borde); padding: 1.8rem 1.5rem; } .footer-contenido { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; } .footer-titulo { margin-top: 0; font-size: 1.2rem; } .footer-nav ul { list-style: none; padding: 0; margin: 0; } .footer-nav a { text-decoration: none; color: #dde5ff; font-size: 0.9rem; } .footer-copy { margin-top: 1.5rem; font-size: 0.85rem; text-align: center; color: #9ca7d9; } /* Animaciones de entrada */ .fade-in { opacity: 0; transform: translateY(20px); animation: fadeInUp 0.9s ease forwards; } @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } } /* Responsivo */ @media (min-width: 900px) { .main-nav ul { display: flex; justify-content: flex-end; } .menu-toggle { display: none; } .search-form { grid-column: 1 / -1; } } @media (max-width: 768px) { .site-header { grid-template-columns: 1fr; grid-template-rows: auto auto auto; } .hero { grid-template-columns: 1fr; } }