* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', sans-serif;
    background: #fff;
    color: #333;
}

/* ========================
   NAVBAR
======================== */
.navbar {
    position: fixed;
    top: 0;
    width: 100%;
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 60px;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.navbar-logo {
    height: 50px;
    width: auto;
}

.btn-iniciar-sesion {
    background: #c0392b;
    color: white;
    padding: 12px 32px;
    border-radius: 50px;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    transition: background 0.2s;
}

.btn-iniciar-sesion:hover {
    background: #a93226;
}

/* ========================
   SECCIONES GENERALES
======================== */
section {
    display: flex;
    align-items: center;
}

/* ========================
   SECCIÓN 1: HERO
======================== */
.hero{
    display:grid;
    grid-template-columns:48% 52%;

    min-height:calc(100vh - 82px);
}

.hero-left {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 60px;
    background: #f9f9f9;
}

.hero-left img {
    width: 500px;
    height: auto;
    margin-bottom: 0px;
}

.hero-left p {
    font-size: 16px;
    color: #888;
    text-align: center;
    line-height: 1.6;
    max-width: 400px;
}

.hero-right{
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    background:#ffffff;
    overflow:hidden;
}

/* ========================
   CAROUSEL GENERAL
======================== */

.carousel{
    position: relative;
    width:100%;
    height:100vh;
}

.carousel-slide{
    position:absolute;
    inset:0;

    opacity:0;
    visibility:hidden;

    transition:opacity .5s ease;
}

.carousel-slide.active{
    opacity:1;
    visibility:visible;
}

/* Botones */

.carousel-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:48px;
    height:48px;

    border:none;
    border-radius:50%;

    background:rgba(255,255,255,.75);
    color:#666;

    cursor:pointer;
    z-index:50;

    display:flex;
    justify-content:center;
    align-items:center;

    transition:.2s;
}

.carousel-btn:hover{
    background:white;
    box-shadow:0 4px 15px rgba(0,0,0,.15);
}

.carousel-btn.prev{
    left:18px;
}

.carousel-btn.next{
    right:18px;
}
/* ========================
   CAPTURAS DEL SISTEMA
======================== */



#carousel-sistema .carousel-slide{
    display:flex;
    justify-content:center;
    align-items:center;
}

#carousel-sistema img{

    max-width:88%;
    max-height:78%;

    width:auto;
    height:auto;

    object-fit:contain;

    border-radius:12px;

    box-shadow:0 18px 45px rgba(0,0,0,.15);
}
/* ========================
   FOTOS DE JORNADAS
======================== */


#carousel-jornadas .carousel-slide{
    display:flex;
    justify-content:center;
    align-items:center;
}

#carousel-jornadas img{

    width:100%;
    height:100%;

    object-fit:cover;
}
/* ========================
   SECCIÓN 2: QUÉ ES SIVIS
======================== */
.que-es {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 100vh;
}

.que-es-left {
    padding: 80px 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.que-es-left h2 {
    font-size: 56px;
    font-weight: 900;
    color: #555;
    line-height: 1.1;
    margin-bottom: 30px;
}

.que-es-left p {
    font-size: 16px;
    color: #888;
    line-height: 1.8;
    max-width: 420px;
}

.que-es-right {
    position: relative;
    overflow: hidden;
    min-height: 0px;
}

/* ========================
   SECCIÓN 3: QUÉ PERMITE
======================== */
.que-permite {
    flex-direction: column;
    padding: 80px;
    background: #f9f9f9;
    min-height: 100vh;
}

.que-permite h2 {
    font-size: 56px;
    font-weight: 900;
    color: #555;
    line-height: 1.1;
    margin-bottom: 60px;
}

.funciones-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    width: 100%;
}

.funcion-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
}

.funcion-card h3 {
    font-size: 15px;
    font-weight: 700;
    color: #555;
    letter-spacing: 0.5px;
}

.funcion-card i {
    font-size: 56px;
    color: #bbb;
}

.funcion-card p {
    font-size: 14px;
    color: #888;
    line-height: 1.6;
}

/* ========================
   FOOTER
======================== */
.footer {
    background: #333;
    color: #aaa;
    text-align: center;
    padding: 24px;
    font-size: 13px;
}

.footer span {
    color: #c0392b;
}

/* ========================
   TABLET Y TELÉFONO
======================== */
@media (max-width: 768px) {

    /* Barra superior */
    .navbar {
        height: 70px;
        padding: 10px 16px;
        gap: 12px;
    }

    .navbar-logo {
        height: auto;
        max-height: 42px;
        max-width: 42%;
        object-fit: contain;
    }

    .btn-iniciar-sesion {
        padding: 10px 16px;
        font-size: 13px;
        white-space: nowrap;
        flex-shrink: 0;
    }

    /* Primera sección: texto arriba, capturas abajo */
    .hero {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        min-height: auto;
        padding-top: 70px;
    }

    .hero-left {
        order: 1;
        padding: 32px 24px 24px;
    }

    .hero-left img {
        width: 280px;
        max-width: 100%;
        height: auto;
        margin-bottom: 12px;
    }

    .hero-left p {
        max-width: 440px;
        font-size: 15px;
        line-height: 1.7;
    }

    .hero-right {
        order: 2;
        width: 100%;
        min-width: 0;
        padding: 16px 0 28px;
    }

    /* Ambos carruseles dejan de ocupar toda la pantalla */
    .carousel {
        width: 100%;
        height: 300px;
    }

    #carousel-sistema img {
        max-width: 90%;
        max-height: 88%;
        width: auto;
        height: auto;
        object-fit: contain;
    }

    .carousel-btn {
        width: 36px;
        height: 36px;
    }

    .carousel-btn.prev {
        left: 8px;
    }

    .carousel-btn.next {
        right: 8px;
    }

    /* Segunda sección: explicación arriba, fotos abajo */
    .que-es {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        min-height: auto;
    }

    .que-es-left {
        order: 1;
        padding: 36px 24px;
    }

    .que-es-left h2 {
        font-size: 34px;
        line-height: 1.15;
        margin-bottom: 20px;
    }

    .que-es-left p {
        max-width: none;
        font-size: 15px;
        line-height: 1.7;
    }

    .que-es-right {
        order: 2;
        width: 100%;
        min-width: 0;
    }

    #carousel-jornadas img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* Funciones */
    .que-permite {
        min-height: auto;
        padding: 40px 24px;
    }

    .que-permite h2 {
        font-size: 34px;
        line-height: 1.15;
        text-align: center;
        margin-bottom: 32px;
    }

    .funciones-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px 24px;
    }

    .funcion-card {
        min-width: 0;
        gap: 12px;
    }

    .funcion-card i {
        font-size: 40px;
    }

    .funcion-card h3 {
        font-size: 15px;
    }

    .funcion-card p {
        font-size: 14px;
        line-height: 1.6;
    }

    .footer {
        padding: 20px 16px;
        font-size: 12px;
        line-height: 1.6;
    }
}

/* ========================
   TELÉFONOS 
======================== */
@media (max-width: 480px) {

    /* Una función por fila para facilitar la lectura */
    .funciones-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .funcion-card {
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }

    .que-es-left h2,
    .que-permite h2 {
        font-size: 30px;
    }

    #carousel-sistema {
        height: 250px;
    }

    #carousel-jornadas {
        height: 280px;
    }
}