.cbr-wrapper{
    max-width:1200px;
    margin:40px auto;
    background:#fff;
    padding:40px;
    border-radius:20px;
}


/* === Área privada Mi reserva v11.8.0 === */
.cbr-my-reservation{
    max-width:980px;
    margin:30px auto;
    padding:28px;
    border:1px solid #e5e7eb;
    border-radius:18px;
    background:#fff;
    box-sizing:border-box;
}
.cbr-my-header{display:flex;justify-content:space-between;align-items:center;gap:18px}
.cbr-my-header h2{margin:0}
.cbr-my-form{display:grid;gap:12px;margin:20px 0}
.cbr-my-form label{font-weight:700;margin:0}
.cbr-my-form input,.cbr-my-form textarea{
    width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:10px;
    padding:12px 14px;background:#fff;color:#111
}
.cbr-my-form input{min-height:48px}
.cbr-my-form textarea{resize:vertical}
.cbr-my-form .cbr-button{justify-self:start;margin-top:4px}
.cbr-my-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cbr-my-grid>div{display:grid;gap:7px;min-width:0}
.cbr-my-rider{padding:16px;border:1px solid #e5e7eb;border-radius:12px}
.cbr-my-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}
.cbr-my-summary>div{display:grid;gap:4px;padding:14px;background:#f7f7f7;border-radius:10px}
.cbr-my-message{padding:12px 14px;margin:16px 0;border-radius:10px}
.cbr-my-notice{background:#ecfdf3;color:#166534;border:1px solid #bbf7d0}
.cbr-my-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.cbr-my-link{
    border:0;background:#111;color:#fff;text-decoration:none;cursor:pointer;
    padding:10px 16px;border-radius:10px;font-weight:700;transition:background-color .2s,color .2s
}
.cbr-my-reservation .cbr-my-link:hover,
.cbr-my-reservation .cbr-my-link:focus{
    background:#ffe500 !important;color:#111 !important
}
.cbr-my-status{display:inline-flex;align-items:center;gap:8px}
.cbr-my-status-dot{width:11px;height:11px;border-radius:50%;background:#9ca3af;flex:0 0 11px}
.cbr-my-status-pendiente_checkout,.cbr-my-status-pendiente{background:#f59e0b}
.cbr-my-status-confirmada{background:#2563eb}
.cbr-my-status-preparando{background:#8b5cf6}
.cbr-my-status-lista{background:#22c55e}
.cbr-my-status-entregada{background:#111827}
.cbr-my-status-abandonada{background:#9ca3af}
.cbr-my-status-incidencia{background:#dc2626}
.cbr-my-summary sup{font-size:.75em;margin-left:2px;color:#b45309;font-weight:800}
.cbr-my-payment-note{
    grid-column:1/-1;margin:0;padding:12px 14px;border-radius:10px;
    background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:14px;line-height:1.45
}
.cbr-my-summary>.cbr-my-deposit-card{
    grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;
    background:#fffbea;border:1px solid #ffe500
}
.cbr-my-deposit-card span{font-weight:800;font-size:1.08em}
.cbr-my-deposit-card small{grid-column:1/-1;color:#57534e;line-height:1.4}
.cbr-my-options{margin:4px 0;padding:16px;border:1px solid #e5e7eb;border-radius:12px}
.cbr-my-options legend{padding:0 7px;font-weight:800}
.cbr-my-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.cbr-my-option-grid label{display:grid;grid-template-columns:1fr 88px;align-items:center;gap:12px}
.cbr-my-option-grid input{margin:0 !important;min-height:44px !important}
.cbr-my-cancel-section{margin-top:34px;padding-top:24px;border-top:1px solid #e5e7eb}
.cbr-my-confirm{display:flex !important;align-items:flex-start;gap:10px;font-weight:600 !important}
.cbr-my-confirm input{width:auto !important;min-height:0 !important;margin:3px 0 0 !important;flex:0 0 auto}
.cbr-my-reservation .cbr-my-cancel-button{background:#b91c1c;color:#fff}
.cbr-my-reservation .cbr-my-cancel-button:hover,
.cbr-my-reservation .cbr-my-cancel-button:focus{background:#991b1b;color:#fff}
@media(max-width:768px){
    .cbr-my-reservation{padding:18px;margin:20px auto}
    .cbr-my-grid,.cbr-my-summary{grid-template-columns:1fr}
    .cbr-my-option-grid{grid-template-columns:1fr}
    .cbr-my-header{align-items:flex-start}
}

.cbr-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
}

.cbr-bikes-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

input,select{
    width:100%;
    padding:14px;
    border:1px solid #ddd;
    border-radius:12px;
    margin-top:8px;
    margin-bottom:18px;
}

.cbr-card{
    border:1px solid #eee;
    border-radius:16px;
    padding:20px;
}

.cbr-card img{
    width:100%;
    border-radius:12px;
    margin-bottom:15px;
}

.cbr-button,.cbr-back{
    background:#111;
    color:#fff;
    padding:14px 22px;
    border-radius:12px;
    text-decoration:none;
    border:0;
}

.cbr-back{
    background:#eee;
    color:#111;
}


.cbr-summary{
    width:100%;
    border-collapse:collapse;
    margin:30px 0;
    border:1px solid #eaeaea;
}

.cbr-summary th,
.cbr-summary td{
    padding:18px 22px;
    text-align:left;
    border-bottom:1px solid #ececec;
}

.cbr-summary th{
    font-weight:600;
}

.cbr-summary tr:nth-child(odd){
    background:#ffffff;
}

.cbr-summary tr:nth-child(even){
    background:#f7f7f7;
}

.cbr-total-row,
.cbr-total-row td,
.cbr-total-row th{
background:#ffe500 !important;
color:#000 !important;
font-weight:700 !important;
}

.cbr-total-row th,
.cbr-total-row td{
    color:#fff;
    font-size:18px;
    font-weight:700;
}



.cbr-actions{
    display:flex;
    align-items:center;
    gap:14px;
}

.cbr-reset{
    background:#efefef;
    color:#111;
    padding:14px 22px;
    border-radius:12px;
    text-decoration:none;
    font-weight:500;
}

.cbr-steps{
    justify-content:space-between;
}

.cbr-steps .cbr-button{
    margin-left:auto;
}


.cbr-steps{
    display:grid !important;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    margin-top:40px;
    width:100%;
}

.cbr-steps span{
    justify-self:center;
    font-weight:500;
}

.cbr-actions{
    justify-self:left;
}

.cbr-steps .cbr-button,
.cbr-steps button{
    justify-self:right;
}

.cbr-bikes-grid{
    margin-top:35px;
}

.cbr-info-text{
    margin-top:10px;
    margin-bottom:35px;
}

h3{
    margin-top:50px;
}


.cbr-steps{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    width:100%;
    gap:20px;
}

.cbr-steps-left,
.cbr-steps-center,
.cbr-steps-right{
    flex:1;
    display:flex;
    align-items:center;
}

.cbr-steps-left{
    justify-content:flex-start;
}

.cbr-steps-center{
    justify-content:center;
}

.cbr-steps-right{
    justify-content:flex-end;
}

.cbr-actions{
    display:flex;
    gap:14px;
}


/* v0.7.15 fixes */

.cbr-steps{
    position:relative;
}

.cbr-steps-center{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    text-align:center;
}

.cbr-steps-left{
    display:flex;
    justify-content:flex-start;
    flex:1;
}

.cbr-steps-right{
    display:flex;
    justify-content:flex-end;
    flex:1;
}


/* v0.8 fixes */

.cbr-steps{
    display:grid !important;
    grid-template-columns:1fr auto 1fr !important;
    align-items:center;
    width:100%;
    margin-top:40px;
}

.cbr-steps-left{
    justify-self:start;
}

.cbr-steps-center{
    justify-self:center;
    position:static !important;
    transform:none !important;
}

.cbr-steps-right{
    justify-self:end;
}

.cbr-summary-final{
    margin-top:40px;
}


/* v0.8.2 fixes */

.cbr-back{
    display:inline-flex !important;
    width:auto !important;
    min-width:auto !important;
    flex:none !important;
    padding:14px 22px !important;
    align-items:center;
    justify-content:center;
}


/* v0.8.3 fixes */

.cbr-back{
    display:inline-block !important;
    width:auto !important;
    max-width:max-content !important;
    padding:14px 22px !important;
    flex:0 0 auto !important;
    white-space:nowrap;
}

.cbr-steps-left{
    display:flex;
    justify-content:flex-start;
    align-items:center;
}

.cbr-button{
    transition:all .25s ease;
}

.cbr-button:hover{
    background:#ffe500 !important;
    color:#111 !important;
}

.cbr-button:hover *{
    color:#111 !important;
}


/* v0.8.4 hover fixes */

.cbr-back,
.cbr-reset{
    transition:all .25s ease;
}

.cbr-back:hover,
.cbr-reset:hover{
    background:#000000 !important;
    color:#ffffff !important;
}

.cbr-back:hover *,
.cbr-reset:hover *{
    color:#ffffff !important;
}


/* =========================
RESPONSIVE MOBILE FIXES
========================= */

@media (max-width: 768px){

    .cbr-grid{
        display:flex !important;
        flex-direction:column !important;
        gap:20px !important;
    }

    .cbr-bikes-grid{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:20px !important;
    }

    .cbr-card{
        width:100% !important;
        box-sizing:border-box !important;
    }

    .cbr-card img{
        width:100% !important;
        height:auto !important;
        border-radius:10px !important;
    }

    .cbr-steps{
        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;
        gap:10px !important;
        margin-top:30px !important;
    }

    .cbr-steps-left,
    .cbr-steps-center,
    .cbr-steps-right{
        flex:1 !important;
    }

    .cbr-steps-center{
        text-align:center !important;
        font-size:16px !important;
    }

    .cbr-steps-right{
        display:flex !important;
        justify-content:flex-end !important;
    }

    .cbr-button,
    .cbr-back,
    .cbr-reset{
        width:auto !important;
        min-width:auto !important;
        padding:12px 18px !important;
        font-size:14px !important;
        white-space:nowrap !important;
    }

    .cbr-summary{
        display:block !important;
        overflow-x:auto !important;
        width:100% !important;
    }

    .cbr-summary th,
    .cbr-summary td{
        padding:12px !important;
        font-size:14px !important;
        word-break:break-word !important;
    }

    select,
    input{
        width:100% !important;
        box-sizing:border-box !important;
    }

}


/* =========================
UX / RESPONSIVE IMPROVEMENTS
========================= */

#cbr_start_date,
#cbr_end_date{
    width:100% !important;
    height:58px !important;
    box-sizing:border-box !important;
    border-radius:12px !important;
}

.cbr-info-text{
    margin-top:25px !important;
    margin-bottom:35px !important;
}

.cbr-bikes-grid{
    margin-top:25px !important;
}

@media (max-width:768px){

    .cbr-steps{
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        gap:14px !important;
        width:100% !important;
    }

    .cbr-steps-left,
    .cbr-steps-center,
    .cbr-steps-right{
        width:100% !important;
        display:flex !important;
        justify-content:center !important;
        text-align:center !important;
    }

    .cbr-button,
    .cbr-back,
    .cbr-reset{
        width:100% !important;
        text-align:center !important;
        justify-content:center !important;
    }

    #cbr_start_date,
    #cbr_end_date{
        width:100% !important;
        min-height:58px !important;
        font-size:18px !important;
    }

}


/* better spacing */

.cbr-steps{
    margin-top:35px !important;
    margin-bottom:40px !important;
}

.cbr-info-text{
    margin-top:20px !important;
    margin-bottom:30px !important;
}

.cbr-bikes-grid{
    margin-top:25px !important;
}

@media(max-width:768px){

    .cbr-steps{
        margin-top:30px !important;
        margin-bottom:35px !important;
        gap:16px !important;
    }

}


.cbr-bike-category{
    display:block;
    margin:6px 0 12px 0;
    font-size:14px;
    font-weight:700;
    color:#666;
}

.cbr-section-row th{
    background:#f5f5f5 !important;
    font-size:15px;
    font-weight:700;
}

.cbr-indent{
    padding-left:28px !important;
    font-weight:500;
}

/* =========================================================
   TABLAS RESUMEN RESPONSIVE - MÓVIL
========================================================= */

@media (max-width: 768px) {

    .cbr-summary-table,
    .cbr-final-summary-table,
    .cbr-table-summary,
    table.cbr-table {
        width: 100%;
        border-collapse: collapse;
        display: block;
        background: transparent;
    }

    .cbr-summary-table thead,
    .cbr-final-summary-table thead,
    .cbr-table-summary thead,
    table.cbr-table thead {
        display: none;
    }

    .cbr-summary-table tr,
    .cbr-final-summary-table tr,
    .cbr-table-summary tr,
    table.cbr-table tr {
        display: flex;
        flex-direction: column;
        width: 100%;
        background: #ffffff;
        border: 1px solid #e9e9e9;
        border-radius: 14px;
        margin-bottom: 14px;
        overflow: hidden;
        box-shadow: 0 2px 10px rgba(0,0,0,0.04);
    }

    .cbr-summary-table td,
    .cbr-final-summary-table td,
    .cbr-table-summary td,
    table.cbr-table td,
    .cbr-summary-table th,
    .cbr-final-summary-table th,
    .cbr-table-summary th,
    table.cbr-table th {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 14px 16px;
        border: none;
        border-bottom: 1px solid #f2f2f2;
        box-sizing: border-box;
    }

    .cbr-total-row,
    tr.cbr-total-row {
        background: #ffe500 !important;
    }

    .cbr-total-row td,
    .cbr-total-row th {
        background: #ffe500 !important;
        color: #000 !important;
        font-weight: 700;
        font-size: 18px;
    }

    .cbr-actions,
    .cbr-navigation-buttons {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .cbr-actions .cbr-button,
    .cbr-navigation-buttons .cbr-button {
        width: 100%;
    }
}


/* =========================================================
   FORZAR TABLAS RESPONSIVE MOVIL
========================================================= */

@media screen and (max-width: 768px){

    table,
    .cbr-summary-table,
    .cbr-final-summary-table,
    .cbr-table,
    .cbr-table-summary {
        width:100% !important;
        display:block !important;
        overflow:hidden !important;
        border-collapse:separate !important;
        border-spacing:0 12px !important;
        background:transparent !important;
    }

    table thead,
    .cbr-summary-table thead,
    .cbr-final-summary-table thead,
    .cbr-table thead,
    .cbr-table-summary thead{
        display:none !important;
    }

    table tbody,
    table tr,
    .cbr-summary-table tbody,
    .cbr-summary-table tr,
    .cbr-final-summary-table tbody,
    .cbr-final-summary-table tr,
    .cbr-table tbody,
    .cbr-table tr,
    .cbr-table-summary tbody,
    .cbr-table-summary tr{
        display:block !important;
        width:100% !important;
    }

    table tr,
    .cbr-summary-table tr,
    .cbr-final-summary-table tr,
    .cbr-table tr,
    .cbr-table-summary tr{
        background:#fff !important;
        border-radius:14px !important;
        margin-bottom:14px !important;
        border:1px solid #ececec !important;
        box-shadow:0 2px 10px rgba(0,0,0,.05) !important;
        overflow:hidden !important;
    }

    table td,
    table th,
    .cbr-summary-table td,
    .cbr-summary-table th,
    .cbr-final-summary-table td,
    .cbr-final-summary-table th,
    .cbr-table td,
    .cbr-table th,
    .cbr-table-summary td,
    .cbr-table-summary th{
        display:flex !important;
        justify-content:space-between !important;
        align-items:center !important;
        width:100% !important;
        padding:14px 16px !important;
        box-sizing:border-box !important;
        border:none !important;
        border-bottom:1px solid #f2f2f2 !important;
        text-align:left !important;
        font-size:15px !important;
    }

    table td:last-child,
    table th:last-child{
        border-bottom:none !important;
    }

    .cbr-total-row,
    .cbr-total-row td,
    .cbr-total-row th{
        background:#ffe500 !important;
        color:#000 !important;
        font-weight:700 !important;
        font-size:18px !important;
        border:none !important;
    }

    .cbr-navigation-buttons,
    .cbr-actions{
        display:flex !important;
        flex-direction:column !important;
        gap:12px !important;
        width:100% !important;
    }

    .cbr-navigation-buttons .cbr-button,
    .cbr-actions .cbr-button{
        width:100% !important;
    }

}


/* Quantity selector */

.cbr-qty-selector{
display:flex;
align-items:center;
gap:10px;
margin-top:12px;
}

.cbr-qty-selector input[type=number]{
width:70px!important;
text-align:center;
font-size:18px;
font-weight:600;
padding:10px;
-moz-appearance:textfield;
}

.cbr-qty-selector input[type=number]::-webkit-inner-spin-button,
.cbr-qty-selector input[type=number]::-webkit-outer-spin-button{
-webkit-appearance:none;
margin:0;
}

.cbr-qty-btn{
width:42px;
height:42px;
border:none;
border-radius:10px;
background:#000;
color:#fff;
font-size:24px;
font-weight:700;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
}

.cbr-qty-btn:hover{
background:#ffe500;
color:#000;
}

@media(max-width:768px){

.cbr-qty-btn{
width:48px;
height:48px;
font-size:28px;
}

.cbr-qty-selector input[type=number]{
width:80px!important;
font-size:20px;
}

}


/* Refined quantity selector alignment */

.cbr-qty-selector{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    margin-top:10px;
}

.cbr-qty-selector input[type=number]{
    width:58px !important;
    height:38px;
    padding:0;
    margin:0;
    text-align:center;
    font-size:18px;
    font-weight:600;
    line-height:38px;
    border-radius:10px;
    -moz-appearance:textfield;
    vertical-align:middle;
}

.cbr-qty-selector input[type=number]::-webkit-inner-spin-button,
.cbr-qty-selector input[type=number]::-webkit-outer-spin-button{
    -webkit-appearance:none;
    margin:0;
}

.cbr-qty-btn{
    width:38px;
    height:38px;
    min-width:38px;
    border:none;
    border-radius:10px;
    background:#000;
    color:#fff;
    font-size:24px;
    font-weight:700;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    cursor:pointer;
}

.cbr-qty-btn:hover{
    background:#ffe500;
    color:#000;
}

@media(max-width:768px){

    .cbr-qty-selector{
        gap:10px;
        justify-content:flex-start;
    }

    .cbr-qty-btn{
        width:42px;
        height:42px;
        min-width:42px;
        font-size:24px;
    }

    .cbr-qty-selector input[type=number]{
        width:64px !important;
        height:42px;
        line-height:42px;
        font-size:20px;
    }

}





/* === Strong mobile datepicker normalization v8.9 === */

.cbr-wrapper input[type="date"]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    height:56px !important;
    min-height:56px !important;
    box-sizing:border-box !important;
    padding:14px 16px !important;
    font-size:16px !important;
    line-height:1.2 !important;
    text-align:left !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    background-color:#f3f3f3 !important;
    border-radius:12px !important;
}

.cbr-wrapper input[type="date"]::-webkit-date-and-time-value{
    text-align:left !important;
    font-size:16px !important;
    line-height:1.2 !important;
    min-height:20px !important;
    padding:0 !important;
    margin:0 !important;
}

.cbr-wrapper input[type="date"]::-webkit-calendar-picker-indicator{
    margin-left:auto !important;
    padding:0 !important;
    width:18px !important;
    height:18px !important;
}

.cbr-wrapper input[type="date"]::-webkit-inner-spin-button,
.cbr-wrapper input[type="date"]::-webkit-clear-button{
    display:none !important;
}

@media (max-width:768px){

    .cbr-wrapper .cbr-grid > div{
        min-width:0 !important;
    }

    .cbr-wrapper input[type="date"],
    .cbr-wrapper input[type="text"],
    .cbr-wrapper input[type="number"],
    .cbr-wrapper select,
    .cbr-wrapper textarea{
        width:100% !important;
        max-width:100% !important;
        box-sizing:border-box !important;
        font-size:16px !important;
    }

    .cbr-wrapper input[type="date"]{
        height:56px !important;
        min-height:56px !important;
        padding:14px 16px !important;
    }

}


/* === Required delivery/pickup fields v9.0.2 === */

.cbr-wrapper input[name="delivery_address"]:invalid,
.cbr-wrapper input[name="pickup_address"]:invalid{
    border:1px solid #d63638 !important;
    box-shadow:none !important;
}

.cbr-wrapper input[name="delivery_address"]:focus:invalid,
.cbr-wrapper input[name="pickup_address"]:focus:invalid{
    outline:none !important;
    border:1px solid #d63638 !important;
}



/* === Spinner búsqueda v9.3 === */

.cbr-wrapper button.cbr-loading{
    opacity:0.9;
    pointer-events:none;
}

.cbr-spinner{
    display:inline-block;
    width:16px;
    height:16px;
    margin-right:8px;
    border:2px solid rgba(255,255,255,0.45);
    border-top-color:#ffffff;
    border-radius:50%;
    animation:cbrSpin .7s linear infinite;
    vertical-align:-2px;
}

@keyframes cbrSpin{
    to{
        transform:rotate(360deg);
    }
}


/* === Seasonal demand notice v9.4 === */

.cbr-demand-season{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin:8px 0 26px;
    padding:9px 13px;
    border-radius:999px;
    font-size:14px;
    font-weight:600;
    line-height:1.2;
}

.cbr-demand-season-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    flex:0 0 10px;
}

.cbr-demand-season-high{
    background:#fff4e5;
    color:#b45309;
}

.cbr-demand-season-high .cbr-demand-season-dot{
    background:#f97316;
}

.cbr-demand-season-medium{
    background:#fffbea;
    color:#8a6d00;
}

.cbr-demand-season-medium .cbr-demand-season-dot{
    background:#f4d000;
}

.cbr-demand-season-low{
    background:#eefbf3;
    color:#18794e;
}

.cbr-demand-season-low .cbr-demand-season-dot{
    background:#22c55e;
}

@media (max-width:768px){
    .cbr-demand-season{
        width:100%;
        justify-content:flex-start;
        box-sizing:border-box;
        font-size:13px;
        margin-bottom:22px;
    }
}


/* === Precio destacado cards v9.5 === */

.cbr-price-box{
    margin:18px 0 14px;
    padding:14px 16px;
    border-radius:14px;
    background:#fff9d7;
    border:1px solid rgba(244,208,0,0.55);
}

.cbr-price-amount{
    font-size:28px;
    line-height:1;
    font-weight:800;
    color:#111111;
    letter-spacing:-0.02em;
}

.cbr-price-label{
    margin-top:7px;
    font-size:13px;
    font-weight:600;
    color:#6b5f00;
}

.cbr-info-text strong{
    white-space:nowrap;
}

@media (max-width:768px){
    .cbr-price-box{
        padding:13px 15px;
    }

    .cbr-price-amount{
        font-size:26px;
    }
}


/* === Acordeones cards bicicleta v10.0.1 === */

.cbr-card-accordions{
    margin:14px 0 16px;
    display:flex;
    flex-direction:column;
    gap:8px;
}

.cbr-card-accordion{
    border:1px solid rgba(0,0,0,0.08);
    border-radius:12px;
    background:#fafafa;
    overflow:hidden;
}

.cbr-card-accordion summary{
    cursor:pointer;
    list-style:none;
    padding:12px 14px;
    font-size:14px;
    font-weight:700;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.cbr-card-accordion summary::-webkit-details-marker{
    display:none;
}

.cbr-card-accordion summary:after{
    content:"+";
    font-size:18px;
    line-height:1;
    font-weight:800;
    margin-left:12px;
}

.cbr-card-accordion[open] summary:after{
    content:"−";
}

.cbr-card-accordion-content{
    padding:0 14px 14px;
    font-size:14px;
    line-height:1.55;
    color:#333;
}

.cbr-card-accordion-content p{
    margin:0 0 8px;
}

.cbr-card-accordion-content p:last-child{
    margin-bottom:0;
}



/* custom autocomplete v11.2 */

.cbr-location-autocomplete{
position:relative;
width:100%;
margin-bottom:12px;
}

.cbr-location-input{
width:100%;
min-height:48px;
border-radius:12px;
padding:12px 14px;
border:1px solid #ddd;
background:#fff;
box-sizing:border-box;
font-size:16px;
}

.cbr-location-input:focus{
outline:none;
border-color:#f4d000;
}

.cbr-location-results{
display:none;
position:absolute;
left:0;
right:0;
top:100%;
background:#fff;
border:1px solid rgba(0,0,0,0.08);
border-radius:12px;
box-shadow:0 10px 24px rgba(0,0,0,0.08);
z-index:999;
margin-top:6px;
max-height:280px;
overflow:auto;
}

.cbr-location-item{
padding:12px 14px;
cursor:pointer;
font-size:14px;
line-height:1.4;
}

.cbr-location-item:hover{
background:#f8f8f8;
}

.cbr-logistics-summary{
margin:16px 0 22px;
padding:14px 16px;
border-radius:14px;
background:#f8f8f8;
border:1px solid rgba(0,0,0,0.06);
font-size:14px;
line-height:1.6;
}

.cbr-logistics-summary div + div{
margin-top:8px;
}



/* === Required location fields v11.2.5 === */

.cbr-wrapper input[name="delivery_location"]:invalid,
.cbr-wrapper input[name="pickup_location"]:invalid{
    border:1px solid #d63638 !important;
    box-shadow:none !important;
}

.cbr-wrapper input[name="delivery_location"]:focus:invalid,
.cbr-wrapper input[name="pickup_location"]:focus:invalid{
    outline:none !important;
    border:1px solid #d63638 !important;
}



/* === Home search shortcode v11.3 === */

.cbr-home-search{
    background:#ffffff;
    border-radius:20px;
    padding:24px;
    box-shadow:0 14px 40px rgba(0,0,0,0.08);
}

.cbr-home-search-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:16px;
    margin-bottom:18px;
}

.cbr-home-search label{
    display:block;
    font-size:13px;
    font-weight:700;
    margin-bottom:7px;
    color:#111;
}

.cbr-home-search input{
    width:100%;
    box-sizing:border-box;
    min-height:52px;
    border-radius:12px;
    border:1px solid #ddd;
    padding:13px 15px;
    font-size:16px;
}

.cbr-home-search input:focus{
    outline:none;
    border-color:#f4d000;
}

.cbr-home-search-button{
    width:100%;
    justify-content:center;
}

@media (max-width:900px){
    .cbr-home-search-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
}

@media (max-width:640px){
    .cbr-home-search{
        padding:18px;
    }

    .cbr-home-search-grid{
        grid-template-columns:1fr;
    }
}



/* === Home launcher compact v11.3.2 === */

.cbr-home-search-grid-compact{
    grid-template-columns:repeat(4, minmax(0,1fr));
}

.cbr-home-search .cbr-location-autocomplete{
    margin-bottom:0;
}

.cbr-home-search .cbr-location-results{
    z-index:99999;
}

@media (max-width:900px){
    .cbr-home-search-grid-compact{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
}

@media (max-width:640px){
    .cbr-home-search-grid-compact{
        grid-template-columns:1fr;
    }
}



/* === Home launcher selects v11.3.3 === */

.cbr-home-search select{
    width:100%;
    box-sizing:border-box;
    min-height:52px;
    border-radius:12px;
    border:1px solid #ddd;
    padding:13px 15px;
    font-size:16px;
    background:#fff;
}

.cbr-home-search select:focus{
    outline:none;
    border-color:#f4d000;
}



/* === Home launcher clean selects v11.3.4 === */

.cbr-home-search select{
    width:100% !important;
    height:52px !important;
    min-height:52px !important;
    box-sizing:border-box !important;
    border-radius:12px !important;
    border:1px solid #ddd !important;
    padding:13px 42px 13px 15px !important;
    font-size:16px !important;
    line-height:1.2 !important;
    color:#111 !important;
    background-color:#fff !important;
    background-image:linear-gradient(45deg, transparent 50%, #111 50%), linear-gradient(135deg, #111 50%, transparent 50%) !important;
    background-position:calc(100% - 18px) 22px, calc(100% - 12px) 22px !important;
    background-size:6px 6px, 6px 6px !important;
    background-repeat:no-repeat !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    -moz-appearance:none !important;
}

.cbr-home-search select:focus{
    outline:none !important;
    border-color:#f4d000 !important;
}

.cbr-home-search select::-ms-expand{
    display:none;
}



/* === Home launcher equal fields v11.3.5 === */

.cbr-home-search input[type="date"],
.cbr-home-search select{
    width:100% !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    box-sizing:border-box !important;
    border-radius:12px !important;
    border:1px solid #ddd !important;
    padding:14px 42px 14px 15px !important;
    font-size:16px !important;
    line-height:1.2 !important;
    color:#111 !important;
    background-color:#f3f3f3 !important;
    box-shadow:none !important;
}

.cbr-home-search input[type="date"]{
    appearance:none !important;
    -webkit-appearance:none !important;
    text-align:left !important;
}

.cbr-home-search input[type="date"]::-webkit-date-and-time-value{
    text-align:left !important;
    font-size:16px !important;
    line-height:1.2 !important;
}

.cbr-home-search input[type="date"]::-webkit-calendar-picker-indicator{
    margin-left:auto !important;
    cursor:pointer !important;
}

.cbr-home-search select{
    background-image:linear-gradient(45deg, transparent 50%, #111 50%), linear-gradient(135deg, #111 50%, transparent 50%) !important;
    background-position:calc(100% - 18px) 24px, calc(100% - 12px) 24px !important;
    background-size:6px 6px, 6px 6px !important;
    background-repeat:no-repeat !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    -moz-appearance:none !important;
}

.cbr-home-search input[type="date"]:focus,
.cbr-home-search select:focus{
    outline:none !important;
    border-color:#f4d000 !important;
    background-color:#fff !important;
}

.cbr-home-search-grid-compact > div{
    min-width:0 !important;
}



/* === Mobile datepicker parity v11.3.6 === */

@media (max-width:768px){

    .cbr-home-search input[type="date"]{
        width:100% !important;
        height:56px !important;
        min-height:56px !important;
        padding:0 18px !important;
        border-radius:18px !important;
        border:1px solid #d9d9d9 !important;
        background:#f3f3f3 !important;
        color:#111 !important;
        font-size:18px !important;
        font-weight:500 !important;
        text-align:left !important;
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
    }

    .cbr-home-search input[type="date"]::-webkit-date-and-time-value{
        text-align:left !important;
    }

    .cbr-home-search input[type="date"]::-webkit-calendar-picker-indicator{
        opacity:1 !important;
        cursor:pointer !important;
        margin-left:auto !important;
    }

    .cbr-home-search select{
        width:100% !important;
        height:56px !important;
        min-height:56px !important;
        border-radius:18px !important;
        border:1px solid #d9d9d9 !important;
        background-color:#f3f3f3 !important;
        padding:0 52px 0 18px !important;
        font-size:18px !important;
        font-weight:500 !important;
        line-height:56px !important;
    }

    .cbr-home-search-grid-compact{
        gap:22px !important;
    }

}



/* === Resumen acciones y totales v11.4.0 === */

.cbr-summary-actions{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin:22px 0 28px;
}

.cbr-summary-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:12px 18px;
    border-radius:12px;
    font-size:15px;
    font-weight:700;
    text-decoration:none !important;
    transition:all .2s ease;
}

.cbr-summary-action-secondary{
    background:#f1f1f1;
    color:#111 !important;
}

.cbr-summary-action-primary{
    background:#111;
    color:#fff !important;
}

.cbr-summary-action:hover{
    transform:translateY(-1px);
}

.cbr-total-reserva-row th,
.cbr-total-reserva-row td,
.cbr-total-row th,
.cbr-total-row td{
    background:#f4d000 !important;
    color:#111 !important;
    font-weight:800 !important;
    font-size:16px;
}

.cbr-pay-now-row th,
.cbr-pay-now-row td{
    background:#eefbf3 !important;
    color:#18794e !important;
    font-weight:700 !important;
}

.cbr-remaining-row th,
.cbr-remaining-row td{
    background:#f6f6f6 !important;
    color:#333 !important;
    font-weight:700 !important;
}

@media (max-width:768px){
    .cbr-summary-actions{
        flex-direction:column;
        align-items:stretch;
        gap:10px;
        margin:20px 0 24px;
    }

    .cbr-summary-action{
        width:100%;
        box-sizing:border-box;
        min-height:50px;
    }
}



/* === Botones resumen hover v11.4.1 === */

.cbr-summary-action{
    transition:all .2s ease !important;
    min-width:220px;
}

.cbr-summary-action:hover,
.cbr-summary-action:focus{
    background:#ffe500 !important;
    border-color:#ffe500 !important;
    color:#111111 !important;
}

.cbr-summary-action:hover *,
.cbr-summary-action:focus *{
    color:#111111 !important;
}



/* === Botones resumen hover fix v11.4.2 === */

.cbr-wrapper .cbr-summary-actions a.cbr-summary-action,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action:visited{
    text-decoration:none !important;
    transition:all .2s ease !important;
}

.cbr-wrapper .cbr-summary-actions a.cbr-summary-action:hover,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action:focus,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action:active{
    background:#ffe500 !important;
    border-color:#ffe500 !important;
    color:#111111 !important;
    text-decoration:none !important;
}

.cbr-wrapper .cbr-summary-actions a.cbr-summary-action:hover *,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action:focus *,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action:active *{
    color:#111111 !important;
}

.cbr-wrapper .cbr-summary-actions a.cbr-summary-action-secondary:hover,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action-secondary:focus,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action-primary:hover,
.cbr-wrapper .cbr-summary-actions a.cbr-summary-action-primary:focus{
    background:#ffe500 !important;
    color:#111111 !important;
}



/* === Iconos planos en resumen v11.4.3 === */

.cbr-summary-label{
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.cbr-row-icon{
    width:18px;
    min-width:18px;
    text-align:center;
    color:#111111;
    font-size:15px;
    line-height:1;
}

.cbr-section-row .cbr-row-icon{
    font-size:16px;
}

@media (max-width:768px){
    .cbr-summary-label{
        gap:7px;
    }

    .cbr-row-icon{
        width:17px;
        min-width:17px;
        font-size:14px;
    }
}



/* === Iconos cargos especiales y pago final v11.4.4 === */

.cbr-summary .cbr-pay-now-row th,
.cbr-summary .cbr-pay-now-row td,
.cbr-pay-now-row th,
.cbr-pay-now-row td{
    background:#eefbf3 !important;
    color:#18794e !important;
    font-weight:700 !important;
}

.cbr-pay-now-row .cbr-row-icon{
    color:#18794e !important;
}



/* v11.4.5 forzar verde pago ahora en cualquier tabla */
tr.cbr-pay-now-row,
tr.cbr-pay-now-row th,
tr.cbr-pay-now-row td{
    background:#eefbf3 !important;
    color:#18794e !important;
    font-weight:700 !important;
}

tr.cbr-pay-now-row .cbr-row-icon{
    color:#18794e !important;
}



/* === Pago ahora verde final v11.4.6 === */

.cbr-wrapper table.cbr-summary tr.cbr-pay-now-row,
.cbr-wrapper table.cbr-summary tr.cbr-pay-now-row th,
.cbr-wrapper table.cbr-summary tr.cbr-pay-now-row td,
.cbr-wrapper table.cbr-summary tr.cbr-pay-now-final-force,
.cbr-wrapper table.cbr-summary tr.cbr-pay-now-final-force th,
.cbr-wrapper table.cbr-summary tr.cbr-pay-now-final-force td{
    background:#eefbf3 !important;
    color:#18794e !important;
    font-weight:700 !important;
}

.cbr-wrapper table.cbr-summary tr.cbr-pay-now-row .cbr-row-icon,
.cbr-wrapper table.cbr-summary tr.cbr-pay-now-final-force .cbr-row-icon{
    color:#18794e !important;
}



/* === Cards ciclistas espaciado limpio v11.4.7 === */
/* Solo afecta a las tarjetas de Datos ciclistas */

.cbr-riders-grid .cbr-rider-card{
    padding:18px !important;
}

.cbr-riders-grid .cbr-rider-card h3,
.cbr-riders-grid .cbr-rider-card h4{
    margin-top:0 !important;
    margin-bottom:16px !important;
}

/* Cada bloque label + campo */
.cbr-riders-grid .cbr-rider-card p{
    margin:0 0 18px !important;
}

/* La etiqueta debe estar cerca de SU campo inferior */
.cbr-riders-grid .cbr-rider-card label{
    display:block !important;
    margin:0 0 6px !important;
    padding:0 !important;
    line-height:1.25 !important;
}

/* Campos compactos, sin margen superior heredado */
.cbr-riders-grid .cbr-rider-card input,
.cbr-riders-grid .cbr-rider-card select{
    display:block !important;
    width:100% !important;
    min-height:46px !important;
    height:46px !important;
    margin:0 !important;
    box-sizing:border-box !important;
}

/* Separación entre campo anterior y siguiente etiqueta */
.cbr-riders-grid .cbr-rider-card input + label,
.cbr-riders-grid .cbr-rider-card select + label{
    margin-top:14px !important;
}

@media (max-width:768px){

    .cbr-riders-grid .cbr-rider-card{
        padding:15px !important;
    }

    .cbr-riders-grid .cbr-rider-card p{
        margin-bottom:16px !important;
    }

    .cbr-riders-grid .cbr-rider-card input,
    .cbr-riders-grid .cbr-rider-card select{
        min-height:46px !important;
        height:46px !important;
    }
}



/* === Banner aviso checkout v11.4.12 === */

.cbr-checkout-warning{
    display:flex;
    gap:12px;
    align-items:flex-start;
    width:100%;
    box-sizing:border-box;
    background:#fff4f4;
    border-left:4px solid #dc3545;
    border-radius:12px;
    padding:15px 17px;
    margin:20px 0 26px;
    color:#333;
    font-size:14px;
    line-height:1.5;
}

.cbr-checkout-warning i{
    color:#dc3545;
    font-size:20px;
    line-height:1;
    margin-top:3px;
    flex:0 0 22px;
    text-align:center;
}

.cbr-checkout-warning strong{
    color:#111;
    font-weight:800;
}

@media (max-width:768px){
    .cbr-checkout-warning{
        padding:14px 15px;
        margin:18px 0 24px;
    }
}



/* === Contacto previo checkout v11.5.0 === */

.cbr-precheckout-contact{
    width:100%;
    box-sizing:border-box;
    background:#ffffff;
    border:1px solid rgba(0,0,0,0.08);
    border-radius:14px;
    padding:18px;
    margin:24px 0 18px;
}

.cbr-precheckout-contact h4{
    margin:0 0 8px;
    font-size:18px;
    font-weight:800;
}

.cbr-precheckout-contact-intro{
    margin:0 0 16px;
    font-size:14px;
    color:#555;
}

.cbr-precheckout-contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.cbr-precheckout-field label{
    display:block;
    margin-bottom:7px;
    font-size:14px;
    font-weight:700;
    color:#111;
}

.cbr-precheckout-field input,
.cbr-precheckout-field select{
    width:100%;
    min-height:48px;
    box-sizing:border-box;
    border:1px solid #d1d5db;
    border-radius:12px;
    padding:12px 14px;
    background:#fff;
    color:#111;
    font-size:15px;
}

.cbr-precheckout-phone{
    display:grid;
    grid-template-columns:minmax(150px, 0.8fr) 1.2fr;
    gap:10px;
}

.cbr-precheckout-field input:focus,
.cbr-precheckout-field select:focus{
    outline:none;
    border-color:#f4d000;
}

@media (max-width:768px){
    .cbr-precheckout-contact{
        padding:15px;
        margin:22px 0 16px;
    }

    .cbr-precheckout-contact-grid{
        grid-template-columns:1fr;
        gap:14px;
    }

    .cbr-precheckout-phone{
        grid-template-columns:1fr;
        gap:10px;
    }
}



/* === Prefijo teléfono compacto v11.5.1 === */

.cbr-precheckout-phone{
    display:flex !important;
    align-items:stretch !important;
    gap:10px !important;
}

.cbr-precheckout-phone select#cbr_customer_phone_prefix_precheckout{
    flex:0 0 150px !important;
    width:150px !important;
    min-width:150px !important;
    max-width:150px !important;
    height:48px !important;
    min-height:48px !important;
    max-height:48px !important;
    padding:0 12px !important;
    line-height:48px !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    appearance:auto !important;
    -webkit-appearance:menulist !important;
    -moz-appearance:auto !important;
    background:#fff !important;
}

.cbr-precheckout-phone input#cbr_customer_phone_number_precheckout{
    flex:1 1 auto !important;
    height:48px !important;
    min-height:48px !important;
    max-height:48px !important;
}

@media (max-width:768px){
    .cbr-precheckout-phone{
        display:grid !important;
        grid-template-columns:140px 1fr !important;
        gap:10px !important;
    }

    .cbr-precheckout-phone select#cbr_customer_phone_prefix_precheckout{
        width:140px !important;
        min-width:140px !important;
        max-width:140px !important;
        flex-basis:140px !important;
    }
}

@media (max-width:420px){
    .cbr-precheckout-phone{
        grid-template-columns:1fr !important;
    }

    .cbr-precheckout-phone select#cbr_customer_phone_prefix_precheckout{
        width:100% !important;
        min-width:100% !important;
        max-width:100% !important;
    }
}


/* === Compactación ciclistas y alineación contacto v11.7.1 === */

.cbr-riders-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:14px !important;
    align-items:start !important;
}

.cbr-riders-grid .cbr-rider-card{
    padding:16px !important;
}

.cbr-riders-grid .cbr-rider-card h3,
.cbr-riders-grid .cbr-rider-card h4{
    margin:0 0 12px !important;
}

.cbr-riders-grid .cbr-rider-card p{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) !important;
    gap:6px !important;
    margin:0 0 12px !important;
    padding:0 !important;
}

.cbr-riders-grid .cbr-rider-card p:last-child{
    margin-bottom:0 !important;
}

.cbr-riders-grid .cbr-rider-card p > br{
    display:none !important;
}

.cbr-riders-grid .cbr-rider-card label{
    margin:0 !important;
    line-height:1.25 !important;
}

.cbr-riders-grid .cbr-rider-card input,
.cbr-riders-grid .cbr-rider-card select{
    min-height:46px !important;
    height:46px !important;
    margin:0 !important;
}

.cbr-precheckout-contact-grid{
    align-items:start !important;
}

.cbr-precheckout-field{
    display:grid !important;
    grid-template-rows:auto 48px !important;
    gap:7px !important;
    align-content:start !important;
    min-width:0 !important;
}

.cbr-precheckout-field > label{
    min-height:18px !important;
    margin:0 !important;
    line-height:18px !important;
}

.cbr-precheckout-field > input,
.cbr-precheckout-field > select,
.cbr-precheckout-field > .cbr-precheckout-phone{
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    align-self:start !important;
}

.cbr-precheckout-phone select,
.cbr-precheckout-phone input{
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    box-sizing:border-box !important;
}

@media (max-width:768px){
    .cbr-riders-grid{
        grid-template-columns:1fr !important;
        gap:12px !important;
    }

    .cbr-riders-grid .cbr-rider-card{
        padding:14px !important;
    }
}
