@media (max-width: 768px) {
    /* --- AJUSTES PARA BOTONES --- */
    .hero-buttons {
        display: flex;
        flex-direction: column;
        gap: 15px;
        align-items: center;
        justify-content: center;
        width: 100%;
    }

    .hero-btn {
        width: 80%;
        max-width: 300px;
        padding: 14px 20px;
        font-size: 16px;
        border-radius: 30px;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
        background-image: linear-gradient(to right, #007BFF, #0056b3);
        border: none;
        text-align: center;
    }

    .hero-btn:hover {
        opacity: 0.9;
    }
    
    .hero-btn.red {
        background-image: linear-gradient(to right, #dc3545, #bd2130);
    }

    /* --- AJUSTES PARA FORMULARIO --- */
    .contact-form {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 30px 20px;
        width: 95%;
        max-width: 500px;
        margin: 25px auto;
        border-radius: 15px;
        background-color: rgba(255, 255, 255, 0.9);
        box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
        box-sizing: border-box;
    }
    
    /* Regla para el título del formulario */
    .contact-form h2 {
        font-size: 28px; /* Ajusta este valor si es necesario */
        line-height: 1.2;
        text-align: center;
        margin-bottom: 20px;
    }
    
    .form-columns {
        display: flex;
        flex-direction: column;
        gap: 20px;
        width: 100%;
    }
    
    .form-group {
        width: 100%;
    }

    .form-group input,
    .form-group textarea {
        font-size: 16px;
        padding: 12px;
        border: 1px solid #ccc;
        border-radius: 8px;
        width: 100%;
        box-sizing: border-box;
    }

    .contact-form button[type="submit"] {
        width: 100%;
        padding: 15px;
        font-size: 18px;
        margin-top: 25px;
        border-radius: 30px;
        background-image: linear-gradient(to right, #007BFF, #0056b3);
        border: none;
        color: white;
        font-weight: bold;
        cursor: pointer;
    }

    /* --- AJUSTES PARA LA SECCIÓN DE CANDIDATOS --- */
    .candidate-section {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 40px 20px;
        text-align: center;
    }

    .candidate-info {
        text-align: center;
        margin-top: 20px;
    }
    
    .candidate-info h2,
    .candidate-info h4,
    .candidate-info p,
    .social-link {
        text-align: center;
    }

    .candidate-img {
        width: 90%;
        max-width: 300px;
        margin: 0 auto;
    }

    .reverse-layout .candidate-info {
        text-align: center;
    }
    
    /* --- AJUSTES PARA EL FOOTER --- */
    .footer-container {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 20px;
        text-align: center;
    }
    
    /* --- AJUSTES PARA LOS NÚMEROS DE TELÉFONO --- */
    .contact-info {
        width: 100%;
        text-align: center;
    }

    .contact-info p {
        margin-bottom: 15px;
        font-size: 18px;
        line-height: 1.5;
    }

    .contact-info p a {
        display: block;
        margin-top: 5px;
        font-size: 16px;
    }
}