*{box-sizing:border-box}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    background:#07142a;
    color:#10213d;
}

.container{
    width:min(1180px,94%);
    margin:auto;
}

.hero{
    padding:24px 0;
}

.hero-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:24px;
    align-items:center;
}

.hero-premio{
    color:#fff;
}

.hero-texto h1{
    font-size:clamp(30px,5vw,58px);
    line-height:1.02;
    margin:14px 0;
}

.hero-texto p{
    font-size:18px;
    opacity:.93;
    line-height:1.5;
}

.pill{
    display:inline-block;
    background:#fff;
    color:#07142a;
    padding:9px 14px;
    border-radius:999px;
    font-weight:bold;
}

.carousel{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.carousel img{
    width:100%;
    height:100%;
    min-height:220px;
    max-height:420px;
    object-fit:cover;
    border-radius:22px;
    border:3px solid rgba(255,255,255,.9);
    box-shadow:0 16px 42px #0008;
    background:#fff;
}

.config-hero .carousel{
    grid-template-columns:repeat(2,1fr);
}

.preco-box{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
    margin:18px 0;
}

.preco-box div{
    background:#fff;
    color:#07142a;
    border-radius:18px;
    padding:14px;
}

.preco-box small{
    display:block;
    opacity:.75;
}

.preco-box strong{
    display:block;
    font-size:22px;
    margin-top:4px;
}

.progress-wrap{
    background:rgba(255,255,255,.1);
    padding:14px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.18);
}

.progress-info{
    display:flex;
    justify-content:space-between;
    font-weight:bold;
    margin-bottom:9px;
}

.progress{
    height:15px;
    background:#fff;
    border-radius:999px;
    overflow:hidden;
}

.progress span{
    display:block;
    height:100%;
    background:#0d6efd;
    border-radius:999px;
}

.acoes-hero{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:16px;
}

.aviso{
    background:rgba(255,255,255,.12);
    padding:12px;
    border-radius:14px;
}

.card{
    background:#fff;
    border:1px solid #d9e2f1;
    border-radius:22px;
    padding:20px;
    margin:20px 0;
    box-shadow:0 12px 35px #0002;
}

.card h2{
    color:#07142a;
    margin-top:0;
}

.info{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    justify-content:center;
}

.badge{
    background:#f1f6ff;
    color:#07142a;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid #d7e6ff;
}

.spec-grid-mini{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.spec-grid-mini div,
.spec-list div{
    background:#f5f8ff;
    border:1px solid #dbe7fa;
    border-radius:16px;
    padding:14px;
}

.spec-grid-mini b,
.spec-grid-mini span{
    display:block;
}

.spec-grid-mini b{
    color:#0d6efd;
    margin-bottom:5px;
}

.card-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}

.legenda{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.legenda span{
    font-size:13px;
}

.l{
    display:inline-block;
    width:12px;
    height:12px;
    border-radius:50%;
    margin-right:5px;
    vertical-align:-1px;
}

.l.livre{
    background:#fff;
    border:1px solid #0d6efd;
}

.l.reservado{
    background:#ffb020;
}

.l.pago{
    background:#18a058;
}

.grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(58px,1fr));
    gap:8px;
}

.num{
    border:1px solid #d8e4f6;
    border-radius:12px;
    padding:13px 0;
    font-weight:bold;
    cursor:pointer;
    color:#07142a;
    background:#fff;
    box-shadow:0 4px 12px #07142a12;
    touch-action:manipulation;
}

.num:hover{
    filter:brightness(.98);
    border-color:#0d6efd;
}

.num.selected{
    background:#0d6efd;
    color:#fff;
    border-color:#0d6efd;
    box-shadow:0 0 0 3px #0d6efd33;
}

.num.reservado{
    background:#ffb020;
    color:#07142a;
    cursor:not-allowed;
}

.num.pago{
    background:#18a058;
    color:#fff;
    cursor:not-allowed;
}

.form{
    display:grid;
    gap:10px;
}

.form input{
    width:100%;
    padding:14px;
    border-radius:12px;
    border:1px solid #cfdcf0;
    background:#f8fbff;
    color:#07142a;
    font-size:16px;
}

.btn{
    display:inline-block;
    text-decoration:none;
    text-align:center;
    border:0;
    border-radius:14px;
    padding:14px 18px;
    font-weight:bold;
    background:#0d6efd;
    color:#fff;
    cursor:pointer;
    font-size:16px;
    touch-action:manipulation;
}

.btn:hover{
    filter:brightness(1.08);
}

.btn.sec{
    background:#fff;
    color:#0d6efd;
    border:1px solid #cfe0ff;
}

.btn.whats{
    background:#18a058;
    color:#fff;
}

.summary{
    font-size:18px;
    text-align:center;
    color:#07142a;
}

.pixbox{
    text-align:center;
}

.pixbox img{
    max-width:260px;
    width:100%;
    background:#fff;
    padding:10px;
    border-radius:12px;
}

.textarea{
    width:100%;
    height:120px;
    border-radius:12px;
    padding:12px;
    font-size:15px;
}

/* PAINEL ADMIN */
.admin-table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
    color:#07142a;
    border-radius:16px;
    overflow:hidden;
}

.admin-table th,
.admin-table td{
    padding:12px;
    border-bottom:1px solid #dbe7fa;
    text-align:left;
    color:#07142a;
}

.admin-table th{
    background:#f5f8ff;
    color:#07142a;
    font-weight:bold;
}

.admin-table tr:hover{
    background:#f8fbff;
}

.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.page-top{
    color:#fff;
    margin-top:22px;
}

.alert{
    padding:12px;
    border-radius:12px;
    background:#fff7df;
    border:1px solid #e0bc56;
    color:#694b00;
}

.ok{
    background:#e5ffed;
    border-color:#49b66b;
    color:#0b5d28;
}

.small{
    opacity:.8;
    font-size:13px;
}

.spec-list{
    display:grid;
    gap:12px;
}

.spec-list span{
    display:block;
    color:#0d6efd;
    font-weight:bold;
    margin-bottom:4px;
}

.spec-list b{
    display:block;
    color:#07142a;
}

.check-grid,
.games-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:10px;
}

.check-grid span,
.games-grid span{
    background:#f5f8ff;
    border:1px solid #dbe7fa;
    border-radius:14px;
    padding:13px;
    font-weight:bold;
}

.games-grid span{
    text-align:center;
    color:#0d6efd;
}

.destaque-config{
    text-align:center;
}

.destaque-config p{
    font-size:18px;
    line-height:1.5;
}

.center{
    text-align:center;
}

/* TABLET */
@media(max-width:860px){
    .hero-grid{
        grid-template-columns:1fr;
    }

    .preco-box,
    .spec-grid-mini{
        grid-template-columns:1fr;
    }

    .carousel,
    .config-hero .carousel{
        grid-template-columns:1fr;
    }

    .hero-texto{
        text-align:center;
    }

    .acoes-hero{
        justify-content:center;
    }

    .acoes-hero .btn{
        flex:1 1 220px;
    }
}

/* CELULAR */
@media(max-width:768px){
    body{
        overflow-x:hidden;
    }

    .container{
        width:95%;
        padding:0 4px;
    }

    .hero{
        padding:14px 0;
    }

    .hero-grid{
        display:flex;
        flex-direction:column;
        gap:18px;
    }

    .hero-texto h1{
        font-size:28px;
        text-align:center;
    }

    .hero-texto p{
        font-size:16px;
        text-align:center;
    }

    .pill{
        font-size:13px;
    }

    .carousel{
        display:grid;
        grid-template-columns:1fr;
    }

    .carousel img{
        width:100%;
        height:auto;
        min-height:0;
        max-height:none;
        aspect-ratio:16/10;
        object-fit:cover;
        border-radius:16px;
    }

    .preco-box{
        grid-template-columns:1fr;
        gap:10px;
    }

    .progress-wrap{
        padding:12px;
    }

    .acoes-hero{
        display:flex;
        flex-direction:column;
        gap:10px;
    }

    .acoes-hero .btn{
        width:100%;
    }

    .card{
        padding:16px;
        border-radius:18px;
        margin:14px 0;
        background:#fff;
    }

    .card-title{
        align-items:flex-start;
    }

    .card-title h2{
        width:100%;
        font-size:22px;
    }

    .legenda{
        width:100%;
        justify-content:center;
    }

    .spec-grid-mini,
    .spec-list,
    .check-grid,
    .games-grid{
        grid-template-columns:1fr;
    }

    .spec-list div{
        display:flex;
        flex-direction:column;
        gap:5px;
    }

    .grid{
        grid-template-columns:repeat(5,1fr);
        gap:6px;
    }

    .num{
        width:100%;
        min-height:45px;
        padding:10px 0;
        font-size:14px;
        border-radius:10px;
    }

    .form input,
    .form .btn{
        width:100%;
    }

    .summary{
        font-size:16px;
    }

    .topbar{
        flex-direction:column;
        text-align:center;
    }

    .topbar .btn{
        width:100%;
    }

    /* ADMIN NO CELULAR */
    .admin-table{
        display:block;
        overflow-x:auto;
        white-space:nowrap;
        background:#10213d;
        border-radius:16px;
    }

    .admin-table th,
    .admin-table td,
    .admin-table td *,
    .admin-table th *{
        color:#fff !important;
    }

    .admin-table th{
        background:#07142a;
    }

    .admin-table tr:hover{
        background:#10213d;
    }
}

/* CELULARES PEQUENOS */
@media(max-width:480px){
    .container{
        width:96%;
    }

    .hero-texto h1{
        font-size:24px;
    }

    .preco-box strong{
        font-size:20px;
    }

    .grid{
        grid-template-columns:repeat(4,1fr);
    }

    .num{
        min-height:42px;
        font-size:12px;
    }

    .btn{
        padding:13px 14px;
        font-size:15px;
    }

    .pixbox img{
        max-width:230px;
    }
}

/* CELULAR MUITO PEQUENO */
@media(max-width:360px){
    .grid{
        grid-template-columns:repeat(3,1fr);
    }

    .num{
        min-height:40px;
    }
}
