:root { /* paleta de colores */
    --text: #1f1e11;
    --background: #fcfcec;
    --primary: #d7d94d;
    --primary-hover: #b9bb39;
    --secondary: #f0f49a;
    --secondary-hover: #d5d874;
    --accent: #f7fa63;
    --code-bg: #3a3b29;
    --code-border: #6a6c3b;
    --text-inverse: #ffffff;
    --header-footer-bg: whitesmoke;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html { /* añadir smooth scroll */
    scroll-behavior: smooth;
}

body {
    font-family: 'Nunito', Arial, sans-serif;
    background-color: var(--background);
    color: var(--text);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
    padding-left: 5%;
    padding-right: 5%;
}

h1, h2, h3, h4, header {
    font-family: 'Pixelify Sans', 'Nunito', Arial, sans-serif;
}

li, a {
    color: var(--text);
    text-decoration: none;
}

hr {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    border: 2px solid var(--accent);
    margin-top: 40px;
    margin-bottom: 35px;
    z-index: -1;
}

[id] { /* arreglar el scroll al hacer click al boton */
    scroll-margin-top: 80px;
}

/* styles del header ---------------------------- */
header {
    position: sticky;
    top: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid var(--accent);
    background-color: var(--header-footer-bg);
    z-index: 10;
}

.home {
    display: flex;
    align-items: center;
    padding: 8px 20px;
}

.home h4 {
    padding-left: 30px;
}

.nav-links {
    list-style: none;
}

.nav-links li {
    display: inline-block;
    padding: 8px 20px;
}

/* styles del hero section ---------------------------- */
.hero-section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 40px 0;
    max-width: 1000px;
    margin: 0 auto;
    gap: 40px;
}

.hero-content {
    flex: 1;
    background-color: var(--primary);
    padding: 25px;
    border-radius: 15px;
}

.hero-section img {
    flex-shrink: 0;
    height: 200px;
    width: auto;
}

/* styles del menu interactivo ---------------------------- */
.interactive-menu {
    width: 100%;
    margin-top: 50px;
}

.btn-list {
    display: flex;
    justify-content: space-between;
    padding: 0;
    margin-top: 25px;
    width: 100%;
}

.btn-list li {
    list-style: none;
    margin: 0;
}

/* styles de las cards ---------------------------- */
.section-main-card {
    margin-top: 30px;
}

.card-top {
    width: 100%;
    padding: 10px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    background-color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: background 0.2s;
}

.question-number {
    margin-left: 15px;
    padding: 10px;
    border-radius: 20px;
    background-color: var(--background);
}

.card-bottom {
    padding: 10px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    background-color: var(--secondary);
    transition: background 0.2s;
}

.question-card {
    transition: transform 0.2s ease-in-out;
}

.question-card .card-top {
    background-color: var(--accent);
}

.question-card .card-bottom {
    background-color: var(--secondary);
}

.question-card:hover {
    transform: translateY(-4px);
}

.question-card:hover .card-top {
    background-color: var(--primary-hover);
}

.question-card:hover .card-bottom {
    background-color: var(--secondary-hover);
}

.question-card p {
    font-size: 14px;
}

/* styles de los grids de preguntas ---------------------------- */
.questions-grid {
    margin-top: 25px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 40px;
    row-gap: 20px;
}

/* styles del footer ----------------------------*/
footer {
    margin-top: 30px;
    color: #3a3a3c;
    border-top: 2px solid var(--accent);
    padding: 15px;
    text-align: center;
    font-size: small;
    background-color: var(--header-footer-bg);
}

/* styles de botones ---------------------------- */
.btn-primary {
    display: inline-block;
    background-color: var(--secondary-hover);
    padding: 10px;
    border-radius: 15px;
    transition: background-color 0.2s ease, transform 0.2s ease-in-out;
}

.btn-primary:hover {
    background-color: var(--primary-hover);
    transform: translateY(-2px);
}

/* styles del codeblock ---------------------------- */
.codeblock {
    margin-top: 10px;
    padding: 10px;
    border-radius: 10px;
    background-color: var(--code-bg);
    color: var(--text-inverse);
    border: solid var(--code-border);
    border-width: 3px;
    font-family: monospace;
    overflow: auto;
    font-size: small;
}