/* =========================================================
   MULTI-SERVICIO / WIZARD - ANEXADO
========================================================= */

.multi-process{
    padding:100px 0;
    background:
        radial-gradient(circle at 50% 0%,rgba(204,255,0,.06),transparent 35%),
        #050505;
    border-top:1px solid #1a1a1a;
    border-bottom:1px solid #1a1a1a;
}
.multi-shell{
    border:1px solid var(--line);
    background:rgba(8,8,8,.95);
    box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.multi-steps{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
    padding:20px;
    border-bottom:1px solid var(--line);
}
.multi-step-pill{
    position:relative;
    padding:12px 8px 12px 38px;
    color:#666;
    font-size:10px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:1px;
}
.multi-step-pill:before{
    content:attr(data-step);
    position:absolute;
    left:0;
    top:50%;
    transform:translateY(-50%);
    width:28px;
    height:28px;
    border:1px solid #333;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#777;
}
.multi-step-pill.active{color:#fff}
.multi-step-pill.active:before{
    background:var(--accent);
    border-color:var(--accent);
    color:#000;
}
.multi-step-pill.done{color:var(--accent)}
.multi-step-pill.done:before{
    border-color:var(--accent);
    color:var(--accent);
}
.multi-progress{
    height:4px;
    background:#151515;
}
.multi-progress span{
    display:block;
    height:100%;
    width:25%;
    background:var(--accent);
    box-shadow:0 0 16px rgba(204,255,0,.35);
    transition:width .25s ease;
}
.multi-body{padding:30px}
.multi-page{display:none}
.multi-page.active{display:block}
.multi-head{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:28px;
    margin-bottom:28px;
}
.multi-head h3{
    font-size:clamp(2rem,5vw,4rem);
    line-height:.95;
    letter-spacing:-2px;
    text-transform:uppercase;
}
.multi-head p{
    max-width:520px;
    color:var(--muted);
    line-height:1.7;
}
.multi-grid{
    display:grid;
    grid-template-columns:1fr .85fr;
    gap:18px;
}
.multi-panel{
    border:1px solid var(--line);
    background:linear-gradient(145deg,#111,#090909);
    padding:24px;
}
.multi-panel-title{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:20px;
}
.multi-panel-title strong{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:1px;
}
.multi-badge{
    min-width:30px;
    height:30px;
    border-radius:999px;
    background:var(--accent);
    color:#000;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    font-weight:950;
}
.multi-qty{
    display:grid;
    grid-template-columns:52px 1fr 52px;
    min-height:56px;
    border:1px solid #333;
    background:#080808;
}
.multi-qty button{
    border:0;
    background:#111;
    color:var(--accent);
    font-size:26px;
    font-weight:900;
}
.multi-qty button:hover{
    background:var(--accent);
    color:#000;
}
.multi-qty button:disabled{
    opacity:.3;
    cursor:not-allowed;
}
.multi-qty-center{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-inline:1px solid #292929;
}
.multi-qty-center strong{font-size:22px}
.multi-qty-center span{
    font-size:9px;
    color:#777;
    text-transform:uppercase;
    letter-spacing:1px;
}
.multi-add{
    width:100%;
    min-height:58px;
    margin-top:18px;
    border:0;
    background:var(--accent);
    color:#000;
    font-size:12px;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:1px;
}
.multi-add:hover{background:var(--accent2)}
.multi-error{
    display:none;
    color:#ff7777;
    font-size:11px;
    margin-top:10px;
}
.multi-error.show{display:block}
.multi-empty{
    border:1px dashed #303030;
    padding:32px 18px;
    text-align:center;
    color:#777;
    font-size:13px;
    line-height:1.6;
}
.multi-cart{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.multi-item{
    border:1px solid #282828;
    background:#080808;
    padding:15px;
    display:grid;
    grid-template-columns:1fr auto;
    gap:14px;
    align-items:center;
}
.multi-item h4{font-size:13px;margin-bottom:4px}
.multi-item p{font-size:11px;color:#888}
.multi-controls{
    display:flex;
    align-items:center;
    gap:6px;
}
.multi-mini{
    width:31px;
    height:31px;
    border:1px solid #303030;
    background:#121212;
    color:#fff;
    font-weight:900;
}
.multi-mini:hover{
    border-color:var(--accent);
    color:var(--accent);
}
.multi-remove:hover{
    border-color:#ff6666;
    color:#ff6666;
}
.multi-item-qty{
    min-width:26px;
    text-align:center;
    font-weight:900;
    font-size:12px;
}
.multi-summary{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--line);
}
.multi-sum{
    border:1px solid #242424;
    background:#090909;
    padding:12px;
    text-align:center;
}
.multi-sum strong{
    display:block;
    color:var(--accent);
    font-size:20px;
}
.multi-sum span{
    font-size:9px;
    color:#777;
    text-transform:uppercase;
    letter-spacing:1px;
}
.multi-review-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.multi-review-item{
    border:1px solid var(--line);
    background:#0a0a0a;
    padding:16px;
    display:grid;
    grid-template-columns:36px 72px minmax(0,1fr) auto 36px;
    align-items:center;
    gap:14px;
}

.multi-review-no{
    width:34px;
    height:34px;
    border:1px solid var(--accent);
    color:var(--accent);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:10px;
    font-weight:900;
}

.multi-review-media{
    width:72px;
    height:72px;
    overflow:hidden;
    border:1px solid #2a2a2a;
    background:#111;
}

.multi-review-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.multi-review-info{
    min-width:0;
}

.multi-review-info strong{
    display:block;
    min-width:0;
    overflow-wrap:anywhere;
    word-break:normal;
}

.multi-review-info p,
.multi-review-item p{
    font-size:11px;
    color:#888;
    margin-top:4px;
}

.multi-review-qty{
    color:var(--accent);
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}

.multi-review-remove{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #333;
    background:#111;
    color:#aaa;
    font-size:22px;
    line-height:1;
    cursor:pointer;
    transition:
        background .2s ease,
        color .2s ease,
        border-color .2s ease,
        transform .15s ease;
}

.multi-review-remove:hover{
    background:#1a1a1a;
    color:var(--accent);
    border-color:var(--accent);
}

.multi-review-remove:active{
    transform:scale(.94);
}
.multi-total{
    margin-top:18px;
    padding:18px;
    border:1px solid var(--accent);
    background:rgba(204,255,0,.06);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.multi-total strong{
    color:var(--accent);
    font-size:22px;
}
.multi-actions{
    margin-top:26px;
    padding-top:20px;
    border-top:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.multi-btn{
    min-height:52px;
    padding:0 22px;
    border:1px solid var(--line);
    background:#111;
    color:#fff;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:1px;
}
.multi-btn.primary{
    background:var(--accent);
    color:#000;
    border-color:var(--accent);
}
.multi-btn.wa{
    background:var(--green);
    color:#fff;
    border-color:var(--green);
}
.multi-ticket{
    border:1px solid var(--accent);
    background:#070707;
    padding:24px;
    position:relative;
    overflow:hidden;
}
.multi-ticket:after{
    content:"UK";
    position:absolute;
    right:-8px;
    bottom:-48px;
    font-size:10rem;
    font-weight:950;
    color:rgba(204,255,0,.035);
}
.multi-ticket-id{
    color:var(--accent);
    font-size:clamp(1.4rem,4vw,2.2rem);
    font-weight:950;
    margin-bottom:8px;
}
.multi-ticket-date{
    color:#777;
    font-size:11px;
    margin-bottom:22px;
}
.multi-ticket-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}
.multi-ticket-cell{
    border-top:1px solid #242424;
    padding-top:12px;
}
.multi-ticket-cell span{
    display:block;
    font-size:9px;
    color:#777;
    text-transform:uppercase;
    letter-spacing:1px;
    margin-bottom:4px;
}
.multi-ticket-products{
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid #242424;
}
.multi-ticket-product{
    display:flex;
    justify-content:space-between;
    gap:18px;
    padding:8px 0;
    border-bottom:1px solid #171717;
    font-size:12px;
}
.multi-status{
    min-height:18px;
    margin-top:12px;
    font-size:11px;
    color:#777;
}
.multi-status.error{color:#ff7777}
.multi-status.ok{color:var(--accent)}
.multi-note{
    margin-top:18px;
    border-left:2px solid var(--accent);
    background:#090909;
    padding:12px 14px;
    color:#888;
    font-size:11px;
    line-height:1.6;
}
@media(max-width:900px){
    .multi-grid{grid-template-columns:1fr}
    .multi-head{display:block}
    .multi-head p{margin-top:16px}
    .multi-steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
    .multi-body{padding:20px}
    .multi-summary{grid-template-columns:1fr 1fr}
    .multi-sum:last-child{grid-column:1/-1}
    .multi-actions{flex-direction:column-reverse}
    .multi-btn{width:100%}
    .multi-ticket-grid{grid-template-columns:1fr}
}

/* =========================================================
   REVIEW — RESPONSIVE
========================================================= */

@media(max-width:640px){

    .multi-review-item{
        grid-template-columns:48px 64px minmax(0,1fr) 36px;
        grid-template-areas:
            "num media info remove"
            "num media qty  remove";
        align-items:center;
        gap:10px;
        padding:14px;
    }

    .multi-review-no{
        grid-area:num;
        align-self:center;
        justify-self:start;
    }

    .multi-review-media{
        grid-area:media;
        width:64px;
        height:64px;
    }

    .multi-review-info{
        grid-area:info;
        min-width:0;
    }

    .multi-review-info strong{
        display:block;
        white-space:normal;
        overflow-wrap:anywhere;
        word-break:normal;
        line-height:1.35;
        font-size:14px;
    }

    .multi-review-info p{
        margin:5px 0 0;
        font-size:11px;
        line-height:1.4;
    }

    .multi-review-qty{
        grid-area:qty;
        justify-self:start;
        align-self:start;
        font-size:12px;
        white-space:nowrap;
    }

    .multi-review-remove{
        grid-area:remove;
        align-self:center;
        justify-self:end;
        width:34px;
        height:34px;
    }
}

@media(max-width:420px){

    .multi-process{
        padding:70px 0;
    }

    .multi-steps{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px 12px;
        padding:14px;
    }

    .multi-step-pill{
        min-width:0;
        padding:10px 4px 10px 34px;
        font-size:9px;
        letter-spacing:.7px;
    }

    .multi-step-pill:before{
        width:26px;
        height:26px;
        font-size:9px;
    }

    .multi-body{
        padding:16px;
    }

    .multi-head{
        margin-bottom:22px;
    }

    .multi-head h3{
        font-size:clamp(2rem,12vw,3rem);
        letter-spacing:-1.5px;
    }

    .multi-review-item{
        grid-template-columns:38px 58px minmax(0,1fr);
        grid-template-areas:
            "num media info"
            "num media qty"
            "remove remove remove";
        align-items:center;
        gap:8px 10px;
        padding:12px;
    }

    .multi-review-no{
        width:34px;
        height:34px;
    }

    .multi-review-media{
        width:58px;
        height:58px;
    }

    .multi-review-info strong{
        font-size:13px;
        line-height:1.35;
    }

    .multi-review-qty{
        font-size:11px;
    }

    .multi-review-remove{
        grid-area:remove;
        justify-self:start;
        margin-top:8px;
    }

    .multi-total{
        padding:14px;
    }

    .multi-total strong{
        font-size:20px;
    }
}
