

:root{
    --bkr-black:#111;
    --bkr-gold-1:#d4af37;
    --bkr-gold-2:#b8962e;
    --bkr-light:#f4f4f4;
    --bkr-border:#e5e5e5;
    --bkr-shadow:0 8px 25px rgba(0,0,0,.08);
}

/* =========================
   LAYOUT GENERAL
========================= */

.bkr-wizard{
    max-width:1100px;
    margin:60px auto;
    font-family:inherit;
}

.bkr-layout{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:60px;
}

.bkr-field-error {
    border-color: #e53e3e !important;
    outline: none;
    box-shadow: 0 0 0 2px rgba(229, 62, 62, 0.2);
}

.bkr-field-error-msg {
    display: block;
    color: #e53e3e;
    font-size: 12px;
    margin-top: 3px;
}

@media(max-width:1024px){
    .bkr-layout{
        grid-template-columns:1fr;
    }
}

/* =========================
   PROGRESS
========================= */

.bkr-progress-bar{
    height:4px;
    background:#ddd;
    margin-bottom:25px;
}

.bkr-progress-fill{
    height:100%;
    background:var(--bkr-black);
    transition:width .3s ease;
}

.bkr-steps-indicator{
    display:flex;
    justify-content:space-between;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:600;
    margin-bottom:50px;
}

.bkr-steps-indicator span{
    opacity:.3;
}

.bkr-steps-indicator span.active{
    opacity:1;
    color:var(--bkr-black);
}

/* =========================
   CARDS BASE
========================= */

.bkr-product-card,
.bkr-store-card,
.bkr-setup-card,
.bkr-booker-form,
.bkr-confirmation-card{
    background:#fff;
    border-radius:6px;
    border:1px solid var(--bkr-border);
    box-shadow:var(--bkr-shadow);
    transition:.25s ease;
}

.bkr-product-card:hover,
.bkr-store-card:hover{
    transform:translateY(-4px);
}
.bkr-product-card{
    position:relative;
    overflow:hidden;
}

/* =========================
   STORE GRID
========================= */

.bkr-store-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:30px;
}

.bkr-store-card{
    padding:30px;
    cursor:pointer;
}

.bkr-store-card input{
    display:none;
}

.bkr-store-card input:checked + .bkr-store-content{
    border-left:4px solid var(--bkr-black);
    padding-left:15px;
}

/* =========================
   DATE & SELECTS
========================= */

.bkr-datetime-wrapper{
    margin-top:40px;
    display:flex;
    flex-direction:column;
    gap:20px;
}

.bkr-datetime-wrapper input,
.bkr-datetime-wrapper select{
    padding:14px;
    border:1px solid #ccc;
    border-radius:4px;
    background:#fafafa;
    font-size:14px;
}

.bkr-datetime-wrapper input:focus,
.bkr-datetime-wrapper select:focus{
    border-color:var(--bkr-black);
    background:#fff;
    outline:none;
}

/* =========================
   PRODUCT GRID
========================= */

.bkr-product-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:40px;
}

.bkr-card-front{
    padding:25px;
}

.bkr-img img{
    width:100%;
    height:auto;
    display:block;
    border-radius:4px;
}

.bkr-product-card h3{
    font-size:20px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
    margin:15px 0 8px;
}

.bkr-price{
    font-size:18px;
    font-weight:700;
    color:var(--bkr-black);
}

/* =========================
   QTY
========================= */

.bkr-qty-wrapper{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:10px;
    background: #fff;
    border-radius: 50px;
}

.bkr-qty-wrapper button{
    width:30px;
    height:30px;
    border:none;
    background:var(--bkr-black);
    color:#fff;
    border-radius:50%;
    cursor:pointer;
    font-size:14px;
}

.bkr-qty{
    width:40px;
    text-align:center;
    border:none;
    font-size:15px;
    background:transparent;
}

.bkr-qty::-webkit-outer-spin-button,
.bkr-qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.bkr-qty {
    -moz-appearance: textfield;
    appearance: none;
}

/* =========================
   STEP 3 PERSONALIZACIÓN
========================= */

.bkr-setup-wrapper{
    display:flex;
    flex-direction:column;
    gap:35px;
    margin-top:40px;
}

.bkr-setup-card{
    display:flex;
    gap:30px;
    padding:30px;
}

.bkr-setup-image{
    width:220px;
    flex-shrink:0;
}

.bkr-setup-image img{
    width:100%;
    border-radius:4px;
}

.bkr-setup-content h3{
    font-size:18px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
}

.bkr-setup-content label{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:600;
    margin-top:15px;
    display:block;
}

.bkr-setup-content input{
    width:100%;
    padding:12px;
    border:1px solid #ccc;
    border-radius:4px;
    background:#fafafa;
}

.bkr-setup-content input:focus{
    border-color:var(--bkr-black);
    background:#fff;
    outline:none;
}

/* =========================
   STEP 4 FORM
========================= */

.bkr-booker-form{
    padding:40px;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:25px;
}

.bkr-form-row-full{
    grid-column:1 / -1;
}

.bkr-booker-form label{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:600;
}

.bkr-booker-form input,
.bkr-booker-form select,
.bkr-booker-form textarea{
    width:100%;
    padding:14px;
    border:1px solid #ccc;
    border-radius:4px;
    background:#fafafa;
}

.bkr-booker-form input:focus,
.bkr-booker-form select:focus,
.bkr-booker-form textarea:focus{
    border-color:var(--bkr-black);
    background:#fff;
    outline:none;
}

.bkr-booker-form textarea{
    min-height:110px;
    resize:vertical;
}

@media(max-width:768px){
    .bkr-booker-form{
        grid-template-columns:1fr;
    }
}

/* =========================
   SUMMARY
========================= */

.bkr-summary{
    background:#fff;
    padding:35px;
    border:1px solid var(--bkr-border);
    border-radius:6px;
    box-shadow:var(--bkr-shadow);
    position:sticky;
    top:120px;
}

.bkr-summary h3{
    text-transform:uppercase;
    letter-spacing:1px;
    font-size:16px;
    margin-bottom:20px;
}

.bkr-summary-item{
    margin-bottom:15px;
    font-size:14px;
}

.bkr-summary-item strong{
    display:block;
    font-size:12px;
    text-transform:uppercase;
    opacity:.6;
}

/* =========================
   STEP 5 CONFIRMATION
========================= */

.bkr-confirmation-wrapper{
    margin-top:40px;
    display:flex;
    flex-direction:column;
    gap:35px;
}

.bkr-confirmation-card{
    display:flex;
    gap:30px;
    padding:30px;
}

.bkr-confirmation-image{
    width:200px;
}

.bkr-confirmation-image img{
    width:100%;
    border-radius:4px;
}

.bkr-confirmation-content h4{
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
}

.bkr-confirmation-accessory-item{
    display:flex;
    justify-content:space-between;
    font-size:14px;
    padding:4px 0;
}

.bkr-confirmation-line-total{
    margin-top:15px;
    font-size:16px;
    font-weight:700;
}

.bkr-confirmation-booker{
    background:#fff;
    padding:30px;
    border:1px solid var(--bkr-border);
    border-radius:6px;
    box-shadow:var(--bkr-shadow);
}

.bkr-confirmation-total{
    text-align:right;
    font-size:22px;
    text-transform:uppercase;
    font-weight:700;
    color:var(--bkr-black);
}

@media(max-width:768px){
    .bkr-confirmation-card{
        flex-direction:column;
    }
}

/* =========================
   BOTONES ESTILO HOME
========================= */

.bkr-next,
.bkr-prev,
#bkr-confirm-order,
.bkr-reset{
    background:linear-gradient(to bottom,var(--bkr-gold-1),var(--bkr-gold-2));
    border:none;
    padding:12px 28px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:1px;
    border-radius:4px;
    cursor:pointer;
    color:#000;
    transition:.2s ease;
}

.bkr-next:hover,
.bkr-prev:hover,
#bkr-confirm-order:hover,
.bkr-reset:hover{
    transform:translateY(-2px);
    box-shadow:0 6px 15px rgba(0,0,0,.2);
}
.bkr-actions {
    display: flex;
    gap: 10px;
    margin: 30px 0;
    justify-content: flex-end;
}
.bkr-card-hover {
    padding: 25px;
    position: absolute;
    bottom: 100%;
}
.bkr-card-hover{
    position:absolute;
    left:0;
    right:0;
    bottom:-100%;
    padding:25px;
    background:#fff;
    border:1px solid;
    border-radius:10px 10px 0 0;
    
    transform:translateY(150%);
    transition:transform .35s ease, padding .2s ease;
}

/* Estado hover */
.bkr-product-card:hover .bkr-card-hover{
    transform:translateY(0);
    padding:20px;
    bottom: 0;
}
.bkr-card-hover .label-var {
    font-size: 1rem;
    font-weight: 700;
}
.bkr-size-item {
    padding: 5px;
    background: #e7e7e7;
    border-radius: 10px;
    text-align: center;
    width: calc(50% - 10px);
    font-weight: 700;
}

/* =========================
   LOADING OVERLAY
========================= */

#bkr-loading-overlay{
    position:fixed;
    inset:0;
    background:rgba(255,255,255,.85);
    backdrop-filter:blur(4px);
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:9999;
    opacity:0;
    pointer-events:none;
    transition:.3s ease;
}

#bkr-loading-overlay.active{
    opacity:1;
    pointer-events:all;
}

/* Spinner elegante premium */
.bkr-loader{
    width:60px;
    height:60px;
    border:4px solid #ddd;
    border-top:4px solid var(--bkr-black);
    border-radius:50%;
    animation:bkrSpin 1s linear infinite;
}

@keyframes bkrSpin{
    to{ transform:rotate(360deg); }
}

.bkr-size-grid {
    flex-wrap: wrap;
    display: flex;
    gap: 10px;
}

.bkr-setup-content {
    width: 100%;
}
/* =========================
   SETUP CONTENT REFINADO
========================= */

.bkr-setup-content{
    position:relative;
}

/* Título producto */
.bkr-setup-content h3{
    font-size:20px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
    margin-bottom:5px;
}

/* Variación */
.bkr-variation-label{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:1px;
    opacity:.5;
    margin-bottom:25px;
}

/* Inputs más limpios */
.bkr-setup-content input[type="text"],
.bkr-setup-content input[type="email"]{
    background:#fafafa;
    border:1px solid #ddd;
    border-radius:6px;
    transition:.2s ease;
}

.bkr-setup-content input:focus{
    border-color:#111;
    background:#fff;
    box-shadow:0 0 0 2px rgba(0,0,0,.05);
}

/* =========================
   UPGRADES SECTION PREMIUM
========================= */

.bkr-upgrades{
    margin-top:35px;
    padding:25px;
    background:#f8f8f8;
    border-radius:8px;
    border:1px solid #e5e5e5;
}

/* Título upgrades */
.bkr-upgrades strong{
    display:block;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
    margin-bottom:20px;
    position:relative;
}

.bkr-upgrades strong::after{
    content:'';
    display:block;
    width:40px;
    height:2px;
    background:#d4af37;
    margin-top:8px;
}

/* =========================
   UPGRADE ITEM
========================= */

.bkr-upgrade-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 18px;
    margin-bottom:12px;
    background:#fff;
    border-radius:6px;
    border:1px solid #e5e5e5;
    cursor:pointer;
    transition:.25s ease;
    position:relative;
}

/* Hover elegante */
.bkr-upgrade-item:hover{
    transform:translateY(-2px);
    box-shadow:0 6px 15px rgba(0,0,0,.08);
}

/* Checkbox personalizado */
.bkr-upgrade-item input[type="checkbox"]{
    appearance:none;
    width:18px;
    height:18px;
    border:2px solid #111;
    border-radius:4px;
    margin-right:10px;
    position:relative;
    cursor:pointer;
    transition:.2s ease;
}

/* Check activo */
.bkr-upgrade-item input[type="checkbox"]:checked{
    background:#111;
    border-color:#111;
}

.bkr-upgrade-item input[type="checkbox"]:checked::after{
    content:'✓';
    position:absolute;
    top:-2px;
    left:3px;
    font-size:12px;
    color:#fff;
}

/* Texto upgrade */
.bkr-upgrade-item > div{
    display:flex;
    align-items:center;
    font-size:14px;
    font-weight:500;
}

/* Precio destacado */
.bkr-upgrade-item span{
    font-weight:700;
    font-size:14px;
    letter-spacing:.5px;
}

/* Estado seleccionado visual */
.bkr-upgrade-item:has(input:checked){
    border-color:#d4af37;
    background:#fffdf5;
    box-shadow:0 6px 20px rgba(212,175,55,.15);
}

/* Etiqueta opcional tipo badge */
.bkr-upgrade-item:has(input:checked)::before{
    content:"Añadido";
    position:absolute;
    top:-8px;
    right:12px;
    background:#d4af37;
    color:#000;
    font-size:10px;
    padding:3px 8px;
    border-radius:20px;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
}

/* Último item sin margen */
.bkr-upgrade-item:last-child{
    margin-bottom:0;
}
input.text, input.title, input[type=email], input[type=password], input[type=tel], input[type=text], select, textarea {
    background-color: #fff;
    border: 1px solid #bbb;
    padding: 10px !important;
    color: #4e4e4e;
}
/* === v2 additions: return date/time, rider height === */
#bkr_end_date,
#bkr_return_time {
    display: block;
    width: 100%;
    margin-top: 10px;
}
.bkr-rider-height {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 8px 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.bkr-rider-id {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 8px 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}
