/*
=========================================================
 BY XOCHIMILCO
 SISTEMA VISUAL UNIFICADO v2
 Diseño general de todas las páginas
=========================================================
*/

:root{
    --by-green:#075b50;
    --by-green-dark:#06483f;
    --by-green-light:#0d7567;

    --by-gold:#f4c54f;
    --by-gold-light:#ffe49a;

    --by-bg:#f5f8f7;
    --by-white:#ffffff;

    --by-text:#17352f;
    --by-muted:#6b7d77;

    --by-border:#dce8e3;

    --by-shadow:
        0 18px 45px rgba(7,91,80,.10);

    --by-radius:20px;
}


/* =====================================================
   BASE
===================================================== */

html{
    scroll-behavior:smooth;
}

body.by-page-reservar,
body.by-page-login,
body.by-page-registro,
body.by-page-mi-reserva{

    margin:0 !important;

    background:
        linear-gradient(
            180deg,
            #f8faf9 0%,
            var(--by-bg) 100%
        ) !important;

    color:var(--by-text) !important;

    font-family:
        Inter,
        Arial,
        Helvetica,
        sans-serif !important;

    min-height:100vh;
}


/* =====================================================
   HEADER
===================================================== */

.by-page-reservar .header,
.by-page-login .header,
.by-page-registro .header,
.by-page-mi-reserva .header{

    background:
        linear-gradient(
            135deg,
            var(--by-green-dark),
            var(--by-green)
        ) !important;

    color:#fff !important;

    padding:0 !important;

    min-height:82px;

    display:flex;

    align-items:center;

    box-shadow:
        0 5px 20px rgba(0,0,0,.10);

    position:relative;

    z-index:20;
}


/* =====================================================
   NAV
===================================================== */

.by-page-reservar .nav,
.by-page-login .nav,
.by-page-registro .nav,
.by-page-mi-reserva .nav{

    width:100% !important;

    max-width:1180px !important;

    margin:0 auto !important;

    padding:14px 24px !important;

    display:flex !important;

    align-items:center !important;

    justify-content:space-between !important;

    gap:25px;
}


/* =====================================================
   MARCA
===================================================== */

.by-brand{

    display:block !important;

    text-decoration:none !important;

    color:#fff !important;

    flex-shrink:0;
}

.by-brand-title{

    font-size:27px !important;

    line-height:1 !important;

    font-weight:950 !important;

    letter-spacing:-.5px;

    color:#fff !important;

}

.by-brand-title span{

    color:var(--by-gold) !important;

}

.by-brand-subtitle{

    margin-top:5px !important;

    font-size:12px !important;

    color:rgba(255,255,255,.78) !important;

    letter-spacing:.2px;

}


/* =====================================================
   BOTÓN RESERVAR HEADER
===================================================== */

.by-reservar-btn{

    display:inline-flex !important;

    align-items:center;

    justify-content:center;

    min-width:120px;

    padding:13px 21px !important;

    border-radius:12px !important;

    background:var(--by-gold) !important;

    color:var(--by-text) !important;

    text-decoration:none !important;

    font-size:13px !important;

    font-weight:950 !important;

    letter-spacing:.2px;

    transition:
        transform .18s ease,
        box-shadow .18s ease;

    box-shadow:
        0 6px 18px rgba(0,0,0,.12);
}

.by-reservar-btn:hover{

    transform:translateY(-2px);

    box-shadow:
        0 9px 24px rgba(0,0,0,.18);
}


/* =====================================================
   CONTENEDORES
===================================================== */

.by-page-reservar .container{

    width:calc(100% - 40px) !important;

    max-width:1180px !important;

    margin:0 auto !important;

    padding:48px 0 80px !important;
}

.by-page-login .container,
.by-page-registro .container{

    width:calc(100% - 40px) !important;

    max-width:520px !important;

    margin:0 auto !important;

    padding:65px 0 90px !important;
}

.by-page-mi-reserva .container{

    width:calc(100% - 40px) !important;

    max-width:980px !important;

    margin:0 auto !important;

    padding:48px 0 80px !important;
}


/* =====================================================
   TITULOS
===================================================== */

.by-page-reservar h1,
.by-page-login h1,
.by-page-registro h1,
.by-page-mi-reserva h1{

    color:var(--by-green) !important;

    font-weight:950 !important;

    letter-spacing:-.7px;
}

.by-page-reservar h1{

    font-size:38px !important;

    margin:0 0 8px !important;
}

.by-page-login h1,
.by-page-registro h1{

    font-size:30px !important;

    margin:0 0 10px !important;
}

.by-page-mi-reserva h1{

    font-size:36px !important;

    margin-top:0 !important;
}


/* =====================================================
   SUBTÍTULOS
===================================================== */

.by-page-reservar .sub,
.by-page-login .sub,
.by-page-registro .sub{

    color:var(--by-muted) !important;

    line-height:1.6;

}


/* =====================================================
   TARJETAS GENERALES
===================================================== */

.by-page-reservar .card,
.by-page-login .card,
.by-page-registro .card,
.by-page-mi-reserva .card{

    background:var(--by-white) !important;

    border:1px solid var(--by-border) !important;

    border-radius:var(--by-radius) !important;

    box-shadow:var(--by-shadow) !important;
}


/* =====================================================
   RESERVAR
===================================================== */

.by-page-reservar .layout{

    display:grid !important;

    grid-template-columns:
        minmax(0,1fr)
        350px !important;

    gap:28px !important;

    align-items:start;
}

.by-page-reservar .card{

    padding:30px !important;
}

.by-page-reservar .card h2{

    color:var(--by-green) !important;

    font-size:24px;

    margin-top:0;

    margin-bottom:24px;
}


/* =====================================================
   FORMULARIO
===================================================== */

.by-page-reservar .form-grid{

    display:grid !important;

    grid-template-columns:
        repeat(2,minmax(0,1fr)) !important;

    gap:18px !important;
}

.by-page-reservar .field{

    gap:8px !important;
}

.by-page-reservar label,
.by-page-login label,
.by-page-registro label{

    color:var(--by-text) !important;

    font-size:13px !important;

    font-weight:850 !important;
}

.by-page-reservar input,
.by-page-reservar select,
.by-page-login input,
.by-page-registro input{

    width:100% !important;

    min-height:48px;

    padding:13px 14px !important;

    background:#fff !important;

    border:
        1px solid #d4e2dd !important;

    border-radius:12px !important;

    color:var(--by-text) !important;

    outline:none;

    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}

.by-page-reservar input:focus,
.by-page-reservar select:focus,
.by-page-login input:focus,
.by-page-registro input:focus{

    border-color:var(--by-green-light) !important;

    box-shadow:
        0 0 0 4px rgba(13,117,103,.10);
}


/* =====================================================
   BOTONES PRINCIPALES
===================================================== */

.by-page-reservar .btn,
.by-page-login button,
.by-page-registro button{

    min-height:50px;

    border:0 !important;

    border-radius:12px !important;

    background:
        linear-gradient(
            135deg,
            var(--by-green),
            var(--by-green-light)
        ) !important;

    color:#fff !important;

    font-weight:950 !important;

    font-size:14px !important;

    letter-spacing:.2px;

    cursor:pointer;

    box-shadow:
        0 7px 18px rgba(7,91,80,.18);

    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.by-page-reservar .btn:hover,
.by-page-login button:hover,
.by-page-registro button:hover{

    transform:translateY(-2px);

    box-shadow:
        0 11px 25px rgba(7,91,80,.25);
}


/* =====================================================
   RESUMEN DE RESERVA
===================================================== */

.by-page-reservar .resumen{

    background:
        linear-gradient(
            180deg,
            #f9fcfb,
            #f3f8f6
        ) !important;

    border:
        1px solid var(--by-border) !important;

    border-radius:16px !important;

    padding:20px !important;
}

.by-page-reservar .row{

    padding:12px 0 !important;

    border-bottom:
        1px solid #e4ece9 !important;
}

.by-page-reservar .total{

    font-size:34px !important;

    color:var(--by-green) !important;
}


/* =====================================================
   DISPONIBILIDAD
===================================================== */

.by-page-reservar .disponibilidad{

    margin-top:24px !important;

    padding:20px !important;

    background:#f3faf7 !important;

    border:
        1px solid #cce5dd !important;

    border-radius:16px !important;
}

.by-page-reservar .trajinera{

    background:#fff !important;

    border:
        1px solid var(--by-border) !important;

    border-radius:12px !important;

    padding:14px !important;

    margin-top:10px !important;

    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.by-page-reservar .trajinera:hover{

    transform:translateY(-2px);

    box-shadow:
        0 8px 20px rgba(7,91,80,.10);
}


/* =====================================================
   LOGIN / REGISTRO
===================================================== */

.by-page-login .card,
.by-page-registro .card{

    padding:36px !important;

    box-shadow:
        0 20px 55px rgba(7,91,80,.12) !important;
}

.by-page-login .field,
.by-page-registro .field{

    margin-bottom:18px !important;
}

.by-page-login .links,
.by-page-registro .link{

    color:var(--by-muted) !important;

    margin-top:22px !important;
}

.by-page-login .links a,
.by-page-registro .link a{

    color:var(--by-green) !important;
}


/* =====================================================
   MI RESERVA
===================================================== */

.by-page-mi-reserva .card{

    padding:30px !important;

    margin-bottom:24px !important;
}

.by-page-mi-reserva .grid{

    display:grid !important;

    grid-template-columns:
        repeat(2,minmax(0,1fr)) !important;

    gap:16px !important;
}

.by-page-mi-reserva .dato{

    background:
        linear-gradient(
            135deg,
            #f7faf9,
            #f0f6f3
        ) !important;

    border:
        1px solid #e0ebe7 !important;

    border-radius:14px !important;

    padding:17px !important;
}

.by-page-mi-reserva .dato small{

    color:var(--by-muted) !important;
}

.by-page-mi-reserva .dato strong{

    color:var(--by-green) !important;
}

.by-page-mi-reserva .timer-box{

    background:
        linear-gradient(
            135deg,
            var(--by-green-dark),
            var(--by-green-light)
        ) !important;

    border-radius:18px !important;

    box-shadow:
        0 12px 30px rgba(7,91,80,.18);
}

.by-page-mi-reserva .extra{

    background:#fff9df !important;

    border:
        1px solid #eed67e !important;

    border-radius:15px !important;
}


/* =====================================================
   ESTADOS
===================================================== */

.by-page-mi-reserva .estado{

    padding:8px 14px !important;

    border-radius:999px !important;

    font-weight:900 !important;
}


/* =====================================================
   MENSAJES
===================================================== */

.by-page-reservar .error,
.by-page-login .error,
.by-page-registro .error,
.by-page-mi-reserva .error{

    border-radius:12px !important;

    padding:14px !important;
}

.by-page-reservar .ok,
.by-page-login .ok,
.by-page-registro .ok{

    border-radius:12px !important;

    padding:14px !important;
}


/* =====================================================
   FOOTER
===================================================== */

.by-page-login .footer,
.by-page-registro .footer,
.by-page-mi-reserva .footer{

    color:#84938e !important;

    font-size:11px !important;

    text-align:center;
}


/* =====================================================
   RESPONSIVE
===================================================== */

@media(max-width:850px){

    .by-page-reservar .layout{

        grid-template-columns:1fr !important;
    }

    .by-page-reservar .form-grid{

        grid-template-columns:1fr !important;
    }

    .by-page-reservar .full{

        grid-column:auto !important;
    }
}


@media(max-width:650px){

    .by-page-reservar .container,
    .by-page-login .container,
    .by-page-registro .container,
    .by-page-mi-reserva .container{

        width:calc(100% - 24px) !important;

        padding-top:30px !important;

        padding-bottom:50px !important;
    }

    .by-page-reservar .nav,
    .by-page-login .nav,
    .by-page-registro .nav,
    .by-page-mi-reserva .nav{

        padding:
            12px !important;

        gap:12px !important;
    }

    .by-brand-title{

        font-size:21px !important;
    }

    .by-brand-subtitle{

        font-size:10px !important;
    }

    .by-reservar-btn{

        min-width:auto !important;

        padding:11px 14px !important;

        font-size:11px !important;
    }

    .by-page-reservar h1{

        font-size:30px !important;
    }

    .by-page-reservar .card,
    .by-page-login .card,
    .by-page-registro .card,
    .by-page-mi-reserva .card{

        padding:22px !important;
    }

    .by-page-mi-reserva .grid{

        grid-template-columns:1fr !important;
    }

    .by-page-mi-reserva h1{

        font-size:30px !important;
    }
}

/* =========================================================
   BY XOCHIMILCO
   PAGINA PRINCIPAL
========================================================= */

.by-page-inicio{
    --by-verde:#075b50;
    --by-verde2:#0f806f;
    --by-oro:#f4c54f;
    --by-oro2:#ffe08a;
    --by-fondo:#f5f8f6;
    --by-texto:#17352f;
    --by-gris:#64746f;

    background:var(--by-fondo) !important;
    color:var(--by-texto) !important;
}

/* ENCABEZADO */

.by-page-inicio .header{
    background:#075b50 !important;
    box-shadow:0 4px 18px rgba(0,0,0,.10);
}

.by-page-inicio .nav{
    max-width:1180px;
}

.by-page-inicio .logo{
    color:#fff;
}

.by-page-inicio .logo span{
    color:#f4c54f !important;
}

.by-page-inicio .nav a{
    background:#f4c54f;
    color:#17352f;
    border-radius:10px;
}

/* HERO */

.by-page-inicio .hero{
    background:
        linear-gradient(
            135deg,
            #06483f,
            #0f806f
        ) !important;
}

/* SECCIONES */

.by-page-inicio .seccion{
    background:#f5f8f6;
}

.by-page-inicio .titulo h2{
    color:#075b50;
}

/* TARJETAS */

.by-page-inicio .paseo-card,
.by-page-inicio .card,
.by-page-inicio .paso,
.by-page-inicio .role{
    background:#fff;
    border:1px solid #dce8e3;
    border-radius:20px;
    box-shadow:0 8px 24px rgba(6,73,61,.07);
}

/* BOTONES */

.by-page-inicio .btn,
.by-page-inicio .paseo-card .btn{
    background:#f4c54f;
    color:#17352f;
    border-radius:10px;
    font-weight:900;
}

.by-page-inicio .btn:hover,
.by-page-inicio .paseo-card .btn:hover{
    background:#ffe08a;
}

/* DURACION */

.by-page-inicio .duracion{
    background:#075b50;
    color:#fff;
}

/* PRECIOS */

.by-page-inicio .paseo-precio,
.by-page-inicio .precio strong{
    color:#075b50;
}

/* PROMOCIONES */

.by-page-inicio .promocion{
    background:linear-gradient(
        135deg,
        #075b50,
        #0f806f
    );
    border-radius:20px;
}

/* FOOTER */

.by-page-inicio .footer{
    background:#063b34;
}

/* ETIQUETA DEMO */

.by-page-inicio .etiqueta{
    background:#fff7d8;
    border:1px solid #e2cb74;
    color:#705f20;
}

/* =========================================================
   TARJETAS DE EXPERIENCIAS
   TODAS EXACTAMENTE PAREJAS
========================================================= */

.by-page-inicio .paseos-grid{
    align-items:stretch;
}

.by-page-inicio .paseo-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
}

.by-page-inicio .paseo-card img{
    height:220px;
    object-fit:cover;
}

.by-page-inicio .paseo-contenido{
    flex:1;
    display:flex;
    flex-direction:column;
}

.by-page-inicio .paseo-contenido p{
    flex:1;
}

.by-page-inicio .paseo-card .btn{
    margin-top:auto;
}

/* =========================================================
   MOVIL
========================================================= */

@media(max-width:650px){

    .by-page-inicio .nav{
        padding:12px 15px;
    }

    .by-page-inicio .logo{
        font-size:20px;
    }

    .by-page-inicio .hero{
        padding:55px 18px;
    }

    .by-page-inicio .hero h1{
        font-size:42px;
    }

    .by-page-inicio .seccion{
        padding:42px 16px;
    }

    .by-page-inicio .paseo-card img{
        height:200px;
    }

}
