/*==================================================
                HERO DEL CARRITO
==================================================*/

body{

        background:
        radial-gradient(
            circle at center,
            rgba(255,255,255,.15),
            transparent 55%
        ),
        linear-gradient(
            180deg,
            #1b78df 0%,
            #0d4fb0 45%,
            #08378a 75%,
            #03286f 100%
        );

        color:white;
        min-height:100vh;
    }

.cart-hero{

    margin-top:-12px;

    border-radius:0 0 40px 40px;

    box-shadow:0 15px 40px rgba(0,0,0,.15);

    background: linear-gradient(135deg,#0c2d7a,#1d64d8);

    padding:65px 0;

    position:relative;

    overflow:hidden;

}

.cart-hero::before{

    content:"";

    position:absolute;

    width:700px;

    height:700px;

    border-radius:50%;

    background:rgba(255,255,255,.05);

    top:-350px;

    right:-150px;

}

.cart-hero::after{

    content:"";

    position:absolute;

    width:500px;

    height:500px;

    border-radius:50%;

    background:rgba(255,255,255,.04);

    left:-250px;

    bottom:-250px;

}

.cart-hero-content{

    display:flex;

    align-items:center;

    gap:30px;

    position:relative;

    z-index:2;

}

.cart-icon{

    width:80px;

    height:80px;

    border-radius:50%;

    background:rgba(255,255,255,.15);

    display:flex;

    justify-content:center;

    align-items:center;

    color:white;

    font-size:36px;

}

.cart-hero h1{

    color:white;

    font-size:46px;

    font-weight:700;

    margin-bottom:10px;

}

.cart-hero p{

    color:rgba(255,255,255,.85);

    font-size:18px;

    margin:0;

}

/*==================================================
                TARJETAS
==================================================*/

.cart-card{

    background:white;

    box-shadow:
    0 20px 45px rgba(14,46,105,.12);

    border:1px solid rgba(29,100,216,.08);

    max-width:1100px;

    margin:auto;

    padding:25px;

    overflow:hidden;

    position:relative;

    border-radius:24px;

    transition:.35s;

}

.cart-card:hover{

    transform:translateY(-5px);

    box-shadow:0 20px 45px rgba(0,0,0,.18)!important;

}

.cart-card img{

    transition:.35s;

    max-height:170px;

    border-radius:18px;

    object-fit:contain;

}

.cart-card:hover img{

    transform:scale(1.05);

}

.cart-card::after{

content:"";

position:absolute;

right:-40px;

top:-40px;

width:170px;

height:170px;

background:rgba(29,100,216,.05);

border-radius:50%;

}

/*==================================================
                TOTAL
==================================================*/

.total-card{

    max-width:1100px;

    margin:35px auto 0;

    border-radius:24px;

    background:white;

    padding:10px;

    box-shadow:
    0 18px 40px rgba(14,46,105,.12);

    border:1px solid rgba(29,100,216,.08);

}

/*==================================================
                BOTONES
==================================================*/

.btn-primary{

    background:#1d64d8;

    border:none;

}

.btn-primary:hover{

    background:#0b56cc;

}

.btn-success{

    background:#16954d;

    border:none;

}

.btn-success:hover{

    background:#118042;

}

.btn-danger{

    border:none;

}

.btn-lg{

padding:10px 26px;

font-size:16px;

font-weight:600;

border-radius:40px;

transition:.3s;

}

.btn-lg:hover{

transform:translateY(-2px);

box-shadow:0 10px 20px rgba(0,0,0,.15);

}

/*==================================================
                RESPONSIVE
==================================================*/

@media(max-width:768px){

.cart-hero{

padding:60px 0;

}

.cart-hero-content{

flex-direction:column;

text-align:center;

}

.cart-hero h1{

font-size:38px;

}

.cart-card img{

max-height:130px;

}

}

.cantidad-carrito{

transition:.25s;

}

.cantidad-carrito:focus{

transform:scale(1.04);

}

.col-12{

margin-bottom:30px;

}

.cantidad-carrito{

border-radius:12px;

height:44px;

text-align:center;

border:2px solid #dbe5f7;

}

.cart-card h3{

font-size:38px;

font-weight:700;

margin-bottom:18px;

color:#14213d;

}

.cart-card strong{

font-weight:600;

}

.btn-volver{

display:inline-flex;

align-items:center;

gap:10px;

color:white;

font-weight:600;

text-decoration:none;

background:rgba(255,255,255,.15);

padding:10px 22px;

border-radius:40px;

backdrop-filter:blur(10px);

transition:.3s;

}

.btn-volver:hover{

background:rgba(255,255,255,.25);

color:white;

transform:translateX(-4px);

}

/* =======================================================
RESPONSIVE MÓVIL
======================================================= */

@media (max-width: 768px){

    .navbar{

        margin:10px;

        padding:12px 15px;

        border-radius:18px;

    }

    .navbar-brand{

        gap:10px;

        min-width:0;

    }

    .logo-navbar{

        height:55px;

    }

    .nombre-negocio{

        font-size:1.55rem;

        white-space:normal;

        line-height:1.2;

    }

    .navbar-collapse{

        margin-top:15px;

    }

    .navbar-nav{

        gap:5px;

        text-align:center;

    }

    .hero{

        padding:35px 0;

        text-align:center;

    }

    .titulo-bienvenida{

        font-size:2.4rem;

        line-height:1.2;

    }

    .titulo-negocio{

        font-size:3rem;

        line-height:1.1;

    }

    .descripcion-negocio{

        font-size:1.05rem;

        margin:20px auto;

        line-height:1.6;

    }

    .btn-productos{

        width:100%;

        font-size:1.1rem;

    }

    .card-custom iframe{

        height:280px;

    }

    .local-card{

        height:auto;

        padding:25px;

    }

    .contacto-grid{

        display:flex;

        flex-direction:column;

        gap:25px;

    }

    .contacto-item{

        width:100%;

        border-right:none;

        border-bottom:1px solid rgba(255,255,255,.15);

        padding:0 0 20px 0;

    }

    .contacto-item:last-child{

        border-bottom:none;

    }

}

/* =======================================================
   Pantallas muy pequeñas (360px o menos)
======================================================= */

@media (max-width: 360px) {

    .navbar{
        margin:8px;
        padding:10px 12px;
    }

    .navbar-brand{

        display:flex;
        align-items:center;
        gap:8px;
        flex:1;
        min-width:0;

    }

    .logo-navbar{
        height:42px;
        flex-shrink:0;
    }

    .nombre-negocio{
        font-size:1rem;
        line-height:1.2;
        white-space:normal;
        word-break:break-word;
    }

    .titulo-bienvenida{
        font-size:1.9rem;
        line-height:1.15;
    }

    .titulo-negocio{
        font-size:2.2rem;
        line-height:1;
    }

    .descripcion-negocio{
        font-size:.95rem;
        line-height:1.5;
        padding:0 10px;
    }

    .btn-productos{
        width:100%;
        font-size:1rem;
    }

    .card-custom{
        padding:12px;
    }

    .card-custom iframe{
        height:220px;
    }

}

/* ==========================================
   Carrito - móviles pequeños
========================================== */

@media (max-width: 480px){

    /* Contenedor de cantidad y botones */
    .cart-card form .d-flex{
        flex-direction: column;
        align-items: stretch !important;
        gap: 12px;
    }

    /* Campo cantidad */
    .cantidad-carrito{
        width:100% !important;
    }

    /* Botones */
    .cart-card .btn{
        width:100%;
    }

    .cart-card .btn-primary,
    .cart-card .btn-outline-danger{
        margin-left:0 !important;
    }

}