/* Vacaciona Bus Reservas - Croquis generado */
.vbr-wrap{
    max-width:900px;
    margin:28px auto;
    font-family:Arial,Helvetica,sans-serif;
    color:#1f2937;
}
.vbr-info{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    padding:24px;
    border-radius:20px;
    background:linear-gradient(135deg,#f8fafc,#eef4f7);
    border:1px solid #dbe4ea;
    margin-bottom:20px;
    box-shadow:0 8px 25px rgba(15,23,42,.06);
}
.vbr-info h2{margin:4px 0 12px;font-size:27px}
.vbr-info p{margin:5px 0}
.vbr-kicker{font-size:11px;letter-spacing:1.5px;font-weight:700;color:#64748b}
.vbr-bus-summary{
    min-width:110px;
    text-align:center;
    padding:14px;
    background:#fff;
    border-radius:16px;
    border:1px solid #e2e8f0;
    box-shadow:0 4px 12px rgba(15,23,42,.06);
}
.vbr-bus-summary span{display:block;font-size:27px}
.vbr-bus-summary strong{display:block;font-size:24px;margin-top:4px}
.vbr-bus-summary small{color:#64748b}
.vbr-map-title{text-align:center;margin:18px 0 12px}
.vbr-map-title h3{margin:0 0 5px;font-size:22px}
.vbr-map-title span{color:#64748b;font-size:14px}

.vbr-bus-modern{
    position:relative;
    width:min(100%,560px);
    margin:0 auto;
    padding:18px 14px 14px;
    background:#fff;
    border:3px solid #334155;
    border-radius:42px 42px 24px 24px;
    box-shadow:0 15px 35px rgba(15,23,42,.12);
    overflow:hidden;
}
.vbr-bus-roof{
    height:7px;
    border-radius:20px;
    background:#cbd5e1;
    margin:0 20px 10px;
}
.vbr-bus-header{
    padding:10px 10px 16px;
    border-bottom:2px dashed #d7e0e7;
}
.vbr-bus-title{
    text-align:center;
    font-size:11px;
    letter-spacing:1.2px;
    color:#64748b;
    font-weight:700;
    margin-bottom:12px;
}
.vbr-front-area{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.vbr-driver-box{
    width:90px;
    height:70px;
    border:2px solid #64748b;
    border-radius:16px 16px 8px 8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:#f8fafc;
}
.vbr-steering{font-size:26px;line-height:25px;color:#475569}
.vbr-driver-box small{font-size:9px;color:#64748b;margin-top:5px}
.vbr-front-door{
    padding:12px 14px;
    border:2px solid #94a3b8;
    border-radius:10px;
    font-size:10px;
    letter-spacing:.5px;
    color:#64748b;
}

.vbr-bus-body{padding:16px 4px 10px}
.vbr-seat-row{
    display:grid;
    grid-template-columns:minmax(54px,1fr) minmax(54px,1fr) 34px minmax(54px,1fr) minmax(54px,1fr);
    gap:8px;
    align-items:center;
    margin-bottom:10px;
}
.vbr-bus-modern.executive21 .vbr-seat-row{
    grid-template-columns:minmax(64px,1fr) minmax(64px,1fr) 38px minmax(64px,1fr);
}
.vbr-seat-card{
    position:relative;
    min-height:58px;
    border:2px solid #16a36a;
    border-radius:13px 13px 10px 10px;
    background:#eaf8f0;
    color:#14532d;
    cursor:pointer;
    font-weight:800;
    padding:0;
    transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
    box-shadow:0 3px 0 rgba(22,163,106,.18);
}
.vbr-seat-card:hover{transform:translateY(-2px);box-shadow:0 7px 13px rgba(15,23,42,.12)}
.vbr-seat-card:before{
    content:"";
    position:absolute;
    left:7px;right:7px;top:6px;height:16px;
    border:1px solid rgba(20,83,45,.28);
    border-radius:7px 7px 4px 4px;
    background:rgba(255,255,255,.5);
}
.vbr-seat-card:after{
    content:"";
    position:absolute;
    left:8px;right:8px;bottom:6px;height:12px;
    border-radius:3px;
    background:rgba(22,163,106,.18);
}
.vbr-seat-icon{display:none}
.vbr-seat-number{
    position:relative;
    z-index:2;
    display:flex;
    height:58px;
    align-items:center;
    justify-content:center;
    padding-top:4px;
    font-size:15px;
}
.vbr-seat-card.selected{
    background:#eaf1ff!important;
    border-color:#2563eb!important;
    color:#1e3a8a!important;
    box-shadow:0 3px 0 rgba(37,99,235,.2)!important;
}
.vbr-seat-card.selected:after{background:rgba(37,99,235,.18)}
.vbr-seat-card.busy,
.vbr-seat-card:disabled{
    background:#fff0f0!important;
    border-color:#dc2626!important;
    color:#991b1b!important;
    cursor:not-allowed;
    box-shadow:0 3px 0 rgba(220,38,38,.16)!important;
}
.vbr-seat-card.busy:after{background:rgba(220,38,38,.15)}
.vbr-aisle-label{
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
}
.vbr-aisle-label:before{
    content:"";
    position:absolute;
    top:0;bottom:0;
    border-left:1px dashed #cbd5e1;
}
.vbr-aisle-label span{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    font-size:8px;
    color:#94a3b8;
    letter-spacing:1px;
    background:#fff;
    padding:4px 0;
    z-index:1;
}
.vbr-bus-footer{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
    padding:14px 10px 4px;
    border-top:2px dashed #d7e0e7;
    color:#64748b;
    font-size:10px;
    letter-spacing:1px;
}
.vbr-rear-light{
    width:9px;height:9px;border-radius:50%;
    background:#ef4444;
    box-shadow:0 0 7px rgba(239,68,68,.35);
}

.vbr-legend{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:18px;
    margin:18px 0;
    font-size:14px;
}
.vbr-legend span{display:flex;align-items:center;gap:7px}
.vbr-legend i{width:13px;height:13px;border-radius:4px;display:inline-block}
.vbr-legend .available{background:#16a36a}
.vbr-legend .selected-dot{background:#2563eb}
.vbr-legend .busy-dot{background:#dc2626}

.vbr-form-area{
    margin-top:20px;
    padding:24px;
    border:1px solid #dbe4ea;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.vbr-form-area h3{margin-top:0}
.vbr-passenger{
    padding:15px;
    margin:12px 0;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:12px;
}
.vbr-passenger input,.vbr-passenger select,.vbr-form-area>label input{
    width:100%;
    box-sizing:border-box;
    padding:11px;
    margin:6px 0 12px;
    border:1px solid #cbd5e1;
    border-radius:8px;
}
.vbr-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vbr-contact-grid label{font-size:14px;font-weight:600}
.vbr-contact-grid input{
    width:100%;box-sizing:border-box;padding:11px;margin-top:6px;
    border:1px solid #cbd5e1;border-radius:8px;
}
.vbr-submit{
    width:100%;
    padding:15px 22px;
    border:0;
    border-radius:10px;
    background:#1f2937;
    color:#fff;
    cursor:pointer;
    font-size:16px;
    font-weight:700;
}
.vbr-message{margin-top:12px;font-weight:bold}

@media(max-width:600px){
    .vbr-wrap{margin:18px 10px}
    .vbr-info{padding:18px;align-items:flex-start}
    .vbr-info h2{font-size:21px}
    .vbr-bus-summary{min-width:70px;padding:10px}
    .vbr-bus-modern{padding:13px 8px 10px;border-radius:30px 30px 18px 18px}
    .vbr-seat-row{grid-template-columns:minmax(42px,1fr) minmax(42px,1fr) 24px minmax(42px,1fr) minmax(42px,1fr);gap:5px}
    .vbr-bus-modern.executive21 .vbr-seat-row{grid-template-columns:minmax(50px,1fr) minmax(50px,1fr) 26px minmax(50px,1fr)}
    .vbr-seat-card,.vbr-seat-number,.vbr-aisle-label{min-height:50px;height:50px}
    .vbr-seat-number{font-size:13px}
    .vbr-driver-box{width:75px;height:60px}
    .vbr-contact-grid{grid-template-columns:1fr}
}

/* AYATS doble piso – 69 asientos */
.vbr-ayats69{max-width:780px;margin:0 auto}
.vbr-ayats-floor{margin:24px 0 30px}
.vbr-ayats-floor-label{display:flex;justify-content:space-between;align-items:center;margin:0 4px 9px;color:#475569}
.vbr-ayats-floor-label strong{font-size:17px;letter-spacing:.7px}
.vbr-ayats-floor-label span{font-size:12px;color:#64748b}
.vbr-ayats-bus{position:relative;background:#fff;border:3px solid #334155;border-radius:34px 34px 22px 22px;box-shadow:0 15px 35px rgba(15,23,42,.12);overflow:hidden;padding:18px}
.vbr-ayats-front,.vbr-ayats-upper-front{display:flex;align-items:center;justify-content:space-between;padding:0 6px 14px;border-bottom:2px dashed #d7e0e7;margin-bottom:12px}
.vbr-ayats-wheel,.vbr-ayats-upper-wheel{font-size:30px;color:#475569}
.vbr-ayats-driver{font-size:10px;font-weight:700;color:#64748b;letter-spacing:1px}
.vbr-ayats-door{border:2px solid #94a3b8;border-radius:10px;padding:9px 12px;font-size:10px;font-weight:700;color:#64748b}
.vbr-ayats-lower-grid{position:relative;min-height:450px;display:grid;grid-template-columns:repeat(6,minmax(58px,1fr));grid-template-rows:repeat(6,62px);gap:9px;align-items:stretch}
.vbr-ayats-lower-grid .vbr-seat-card{width:100%;height:100%;min-height:58px}
.vbr-ayats-seat.s7{grid-column:3;grid-row:1}.vbr-ayats-seat.s8{grid-column:3;grid-row:2}
.vbr-ayats-seat.s3{grid-column:4;grid-row:1}.vbr-ayats-seat.s4{grid-column:4;grid-row:2}
.vbr-ayats-seat.s10{grid-column:3;grid-row:4}.vbr-ayats-seat.s9{grid-column:3;grid-row:5}
.vbr-ayats-seat.s6{grid-column:4;grid-row:4}.vbr-ayats-seat.s5{grid-column:4;grid-row:5}
.vbr-ayats-seat.s2{grid-column:5;grid-row:4}.vbr-ayats-seat.s1{grid-column:5;grid-row:5}
.vbr-ayats-stairs{display:flex;align-items:center;justify-content:center;text-align:center;border:2px dashed #94a3b8;border-radius:14px;color:#64748b;font-size:10px;font-weight:800;letter-spacing:1px;background:#f8fafc}
.lower-stairs{grid-column:1 / span 2;grid-row:4 / span 2}
.vbr-ayats-wc{display:flex;align-items:center;justify-content:center;border:2px solid #64748b;border-radius:12px;background:#f8fafc;font-weight:800;color:#334155}
.wc1{grid-column:1;grid-row:1}.wc2{grid-column:2;grid-row:1}
.vbr-ayats-upper-front span{font-size:11px;font-weight:800;letter-spacing:1px;color:#64748b}
.vbr-ayats-upper-grid{position:relative;padding-top:2px}
.vbr-ayats-row{display:grid;grid-template-columns:minmax(58px,1fr) minmax(58px,1fr) 34px minmax(58px,1fr) minmax(58px,1fr);gap:8px;margin-bottom:10px;align-items:center}
.vbr-ayats-row .vbr-seat-card{width:100%}
.vbr-ayats-aisle{height:58px;position:relative}
.vbr-ayats-aisle:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed #cbd5e1}
.upper-stairs{height:74px;margin:8px auto 12px;width:42%;max-width:260px}
.vbr-ayats-rear{text-align:center;border-top:2px dashed #d7e0e7;margin-top:8px;padding:12px 0 2px;font-size:10px;letter-spacing:1px;font-weight:800;color:#64748b}

@media(max-width:600px){
 .vbr-ayats-bus{padding:12px;border-radius:26px 26px 18px 18px}
 .vbr-ayats-floor-label strong{font-size:15px}
 .vbr-ayats-lower-grid{grid-template-columns:repeat(6,minmax(38px,1fr));grid-template-rows:repeat(6,52px);gap:5px;min-height:370px}
 .vbr-ayats-row{grid-template-columns:minmax(42px,1fr) minmax(42px,1fr) 20px minmax(42px,1fr) minmax(42px,1fr);gap:5px;margin-bottom:6px}
 .vbr-ayats-row .vbr-seat-card,.vbr-ayats-lower-grid .vbr-seat-card{min-height:48px;height:48px}
 .vbr-ayats-aisle{height:48px}
 .vbr-ayats-stairs{font-size:8px}
 .upper-stairs{height:62px}
}
