/* ----------- RESET ----------- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Roboto', 'Segoe UI', system-ui, sans-serif;
    background: #ffffff;
    color: #333;
}

/* ----------- BACKGROUND SHAPES ----------- */
.bg-shape {
    position: fixed;
    z-index: -1;
    background: #f7f7f7;
    border-radius: 50%;
    opacity: 0.9;
}

.bg-left {
    width: 480px;
    height: 480px;
    left: -220px;
    bottom: -260px;
}

.bg-right {
    width: 420px;
    height: 420px;
    right: -180px;
    top: -200px;
}

/* ----------- CONTENEDOR ----------- */
.container {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
    padding: 48px 20px 60px;
}

/* PANEL */
.panel {
    width: 100%;
}

/* LOGO */
.logo {
    width: 100%;
    max-width: 244px;
    display: block;
    margin: 0 auto 40px auto;
}

/* TITULOS */
.titulo {
    margin-bottom: 32px;
}

.hola {
    font-size: 22px;
    color: #1d1d1d;
}

.subtitulo {
    margin-top: 2px;
    font-size: 28px;
    font-weight: 700;
    color: #1d1d1d;
}

/* ----------- FORMULARIO ----------- */
.formulario {
    width: 100%;
}

label {
    display: block;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #404040;
}

select,
input[type="text"] {
    width: 100%;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid #d1d1d1;
    font-size: 16px;
    color: #222;
    background-color: #fff;
    outline: none;
    margin-bottom: 22px;
    appearance: none;
}

/* Select con flecha SVG */
select {
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10L12 15L17 10' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 18px;
}

/* RECORDAR */
.recordar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 26px;
}

.recordar input[type="checkbox"] {
    width: 16px;
    height: 16px;
}

/* ----------- BOTÓN (ESPACIADO MEJORADO) ----------- */
.btn {
    background-color: #E1111C;
    border: 1px solid #E1111C;
    color: #fff;
    width: 100%;
    max-width: 368px;
    height: 48px;
    font-size: 18px;
    font-weight: 700;
    border-radius: 22px;
    text-align: center;
    display: block;
    margin: 16px auto 245px;
    /* ← ESPACIADO INFERIOR AUMENTADO */
    cursor: pointer;
}

.btn:hover {
    background-color: #cc0510;
}

/* ----------- LINEA ----------- */
.divider {
    border: none;
    border-top: 1px solid #e3e3e3;
    margin: 46px 0 18px;
}

/* OLVIDE */
.olvide {
    display: block;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    color: #404040;
    text-decoration: none;
}

.olvide:hover {
    text-decoration: underline;
}

/* ----------- RESPONSIVE ----------- */
@media (max-width: 768px) {

    .container {
        padding: 40px 20px 50px;
    }

    .btn {
        width: 260px;
        height: 45px;
        font-size: 17px;
        border-radius: 999px;
        margin: 24px auto 200px;
        /* ← ESPACIADO INFERIOR AUMENTADO EN MÓVIL */
    }

    .bg-left {
        width: 340px;
        height: 340px;
        left: -160px;
        bottom: -200px;
    }

    .bg-right {
        width: 300px;
        height: 300px;
        right: -130px;
        top: -150px;
    }
}

/* Margen para cuando aparece el nuevo input (solo PC) */
.btn-margen-reducido {
    margin: 16px auto 230px !important;
}