:root{--lla-primary:#C8102E;--lla-primary-dark:#8E0B22;--lla-secondary:#111;--lla-background:#f6f6f6;--lla-text:#171717;--lla-white:#fff;--lla-success:#117a3a;--lla-danger:#b3261e}
body:has(.wcrp-shell){background:var(--lla-background)!important;margin:0}.wcrp-shell{box-sizing:border-box;min-height:100vh;padding:20px 14px;display:flex;align-items:flex-start;justify-content:center;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--lla-text)}.wcrp-card{width:min(100%,560px);background:var(--lla-white);border-radius:18px;padding:22px;box-shadow:0 10px 32px rgba(0,0,0,.09);border-top:6px solid var(--lla-primary)}.wcrp-center{text-align:center}.wcrp-brand{display:flex;justify-content:center;margin:4px 0 18px}.wcrp-logo{max-width:120px;max-height:88px;object-fit:contain}.wcrp-logo-fallback{width:74px;height:74px;border-radius:50%;background:var(--lla-primary);color:white;display:grid;place-items:center;font-weight:900;font-size:25px;border:5px solid var(--lla-secondary)}.wcrp-status{font-weight:900;letter-spacing:.04em;text-align:center;border-radius:12px;padding:13px 15px;margin:10px 0 18px}.wcrp-status.valid{background:#eaf7ee;color:var(--lla-success)}.wcrp-status.invalid{background:#fff0ef;color:var(--lla-danger)}.wcrp-qr{display:block;width:min(82vw,320px);height:auto;margin:18px auto}.wcrp-summary{border:1px solid #e8e8e8;border-radius:14px;overflow:hidden;margin:18px 0}.wcrp-summary>div{display:flex;justify-content:space-between;gap:18px;padding:12px 14px;border-bottom:1px solid #eee;text-align:left}.wcrp-summary>div:last-child{border-bottom:0}.wcrp-summary span{text-align:right}.wcrp-btn{appearance:none;border:0;border-radius:13px;background:var(--lla-primary);color:#fff!important;display:inline-flex;justify-content:center;align-items:center;text-decoration:none!important;font-weight:800;font-size:16px;min-height:52px;padding:12px 18px;width:100%;box-sizing:border-box;cursor:pointer;margin:6px 0}.wcrp-btn:hover,.wcrp-btn:focus{background:var(--lla-primary-dark);color:#fff}.wcrp-btn.secondary{background:var(--lla-secondary)}.wcrp-help{font-size:13px;opacity:.75}.wcrp-complete-form label,.wcrp-form label{display:block;font-weight:700;margin:12px 0}.wcrp-complete-form textarea,.wcrp-form input{width:100%;box-sizing:border-box;border:1px solid #cfcfcf;border-radius:10px;padding:12px;font:inherit;margin-top:6px}.wcrp-confirm-box{background:#f7f7f7;border-radius:14px;padding:14px;margin-top:12px}.wcrp-scanner-wrap{margin-top:24px;padding-top:18px;border-top:1px solid #eee}#wcrp-video{width:100%;border-radius:14px;margin-top:12px;background:#000}.wcrp-reserve-box{border:2px solid var(--lla-primary);padding:18px;border-radius:14px;margin-top:18px}.wcrp-form{margin-top:14px}.wcrp-form[hidden]{display:none!important}.wcrp-card #loginform p{margin:12px 0}.wcrp-card #loginform input[type=text],.wcrp-card #loginform input[type=password]{width:100%;box-sizing:border-box;padding:12px;border-radius:10px;border:1px solid #ccc}.wcrp-card #wp-submit{width:100%;min-height:50px;background:var(--lla-primary);color:white;border:0;border-radius:12px;font-weight:800}@media(max-width:420px){.wcrp-card{padding:17px;border-radius:14px}.wcrp-summary>div{flex-direction:column;gap:4px}.wcrp-summary span{text-align:left}.wcrp-btn{min-height:56px}}

/* Standalone validator: isolate the mobile scan/validation view from the active theme. */
html:has(body.wcrp-standalone-page),
body.wcrp-standalone-page {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 100% !important;
    background: var(--lla-background) !important;
}
body.wcrp-standalone-page #wpadminbar,
body.wcrp-standalone-page header,
body.wcrp-standalone-page footer,
body.wcrp-standalone-page .site-header,
body.wcrp-standalone-page .site-footer,
body.wcrp-standalone-page .elementor-location-header,
body.wcrp-standalone-page .elementor-location-footer {
    display: none !important;
}
body.wcrp-standalone-page .wcrp-shell {
    min-height: 100vh !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: max(18px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom)) !important;
    background: var(--lla-background) !important;
}

/* Strong button rules so the active theme/Elementor cannot make action buttons invisible. */
body.wcrp-standalone-page .wcrp-card .wcrp-btn,
body.wcrp-standalone-page .wcrp-card button.wcrp-btn,
body.wcrp-standalone-page .wcrp-card input[type="submit"].wcrp-btn,
body.wcrp-standalone-page .wcrp-card a.wcrp-btn {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-color: var(--lla-primary) !important;
    background-image: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 2px solid var(--lla-primary) !important;
    border-radius: 13px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    font-weight: 800 !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    min-height: 54px !important;
    width: 100% !important;
    padding: 14px 18px !important;
    margin: 6px 0 !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
body.wcrp-standalone-page .wcrp-card .wcrp-btn:hover,
body.wcrp-standalone-page .wcrp-card .wcrp-btn:focus,
body.wcrp-standalone-page .wcrp-card .wcrp-btn:active {
    background-color: var(--lla-primary-dark) !important;
    border-color: var(--lla-primary-dark) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.wcrp-standalone-page .wcrp-card .wcrp-btn.secondary,
body.wcrp-standalone-page .wcrp-card button.wcrp-btn.secondary,
body.wcrp-standalone-page .wcrp-card a.wcrp-btn.secondary {
    background-color: var(--lla-secondary) !important;
    border-color: var(--lla-secondary) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.wcrp-standalone-page .wcrp-card .wcrp-confirm-trigger,
body.wcrp-standalone-page .wcrp-card .wcrp-confirm-box button[type="submit"] {
    background-color: var(--lla-primary) !important;
    border-color: var(--lla-primary) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.wcrp-standalone-page .wcrp-card .wcrp-confirm-box[hidden] {
    display: none !important;
}
body.wcrp-standalone-page .wcrp-card .wcrp-confirm-box:not([hidden]) {
    display: block !important;
}


/* Standalone reservation pages must not inherit visual chrome from the active theme. */
html:has(body.wcrp-standalone-page),body.wcrp-standalone-page{margin:0!important;padding:0!important;background:var(--lla-background)!important;min-height:100%!important}
body.wcrp-standalone-page #wpadminbar{display:none!important}
body.wcrp-standalone-page .wcrp-shell{margin:0!important;max-width:none!important;width:100%!important}
body.wcrp-standalone-page .wcrp-card .wcrp-btn,
body.wcrp-standalone-page .wcrp-card a.wcrp-btn,
body.wcrp-standalone-page .wcrp-card button.wcrp-btn{
    background:var(--lla-primary)!important;
    background-color:var(--lla-primary)!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    border:2px solid var(--lla-primary)!important;
    opacity:1!important;
    visibility:visible!important;
    text-decoration:none!important;
}
body.wcrp-standalone-page .wcrp-card .wcrp-btn.secondary,
body.wcrp-standalone-page .wcrp-card a.wcrp-btn.secondary,
body.wcrp-standalone-page .wcrp-card button.wcrp-btn.secondary{
    background:var(--lla-secondary)!important;
    background-color:var(--lla-secondary)!important;
    border-color:var(--lla-secondary)!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
}
body.wcrp-standalone-page .wcrp-card .wcrp-status.invalid{
    background:#fff0ef!important;
    color:var(--lla-primary-dark)!important;
    border:1px solid rgba(200,16,46,.22)!important;
}
body.wcrp-standalone-page .wcrp-home-btn{margin-top:14px!important}

/* Reservation modal — keeps the reservation flow out of the product layout. */
.wcrp-reserve-launch{
    margin-top:14px;
}
.wcrp-reserve-launch .wcrp-open-form{
    min-height:46px;
    padding:10px 22px;
    border-radius:10px;
    font-weight:800;
}
html.wcrp-modal-open,
body.wcrp-modal-open{
    overflow:hidden!important;
}
.wcrp-reserve-modal[hidden]{
    display:none!important;
}
.wcrp-reserve-modal{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    opacity:0;
    visibility:hidden;
    transition:opacity .18s ease,visibility .18s ease;
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--lla-text);
}
.wcrp-reserve-modal.is-open{
    opacity:1;
    visibility:visible;
}
.wcrp-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(10,10,12,.68);
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
}
.wcrp-modal-dialog{
    position:relative;
    z-index:1;
    width:min(920px,100%);
    max-height:min(88vh,820px);
    overflow:auto;
    overscroll-behavior:contain;
    background:#fff;
    border-radius:24px;
    box-shadow:0 28px 90px rgba(0,0,0,.28);
    transform:translateY(16px) scale(.985);
    transition:transform .18s ease;
}
.wcrp-reserve-modal.is-open .wcrp-modal-dialog{
    transform:translateY(0) scale(1);
}
.wcrp-modal-close{
    position:absolute;
    top:16px;
    right:16px;
    z-index:4;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border:1px solid #e6e6e6;
    border-radius:50%;
    background:#fff;
    color:#181818;
    font-size:29px;
    font-weight:400;
    line-height:1;
    cursor:pointer;
    box-shadow:0 4px 16px rgba(0,0,0,.08);
}
.wcrp-modal-close:hover,
.wcrp-modal-close:focus{
    background:#f5f5f5;
    color:var(--lla-primary);
}
.wcrp-modal-intro{
    padding:30px 76px 24px 32px;
    border-bottom:1px solid #ededed;
}
.wcrp-modal-kicker{
    display:block;
    margin-bottom:7px;
    color:var(--lla-primary);
    font-size:12px;
    line-height:1.2;
    font-weight:900;
    letter-spacing:.11em;
}
.wcrp-modal-intro h2{
    margin:0 0 7px!important;
    color:#171717!important;
    font-size:clamp(25px,3vw,34px)!important;
    line-height:1.12!important;
    font-weight:850!important;
}
.wcrp-modal-intro p{
    margin:0;
    max-width:660px;
    color:#636363;
    font-size:15px;
    line-height:1.55;
}
.wcrp-modal-layout{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:0;
}
.wcrp-product-preview{
    padding:28px;
    background:#f7f7f8;
    border-right:1px solid #ededed;
}
.wcrp-product-image-wrap{
    aspect-ratio:1/1;
    overflow:hidden;
    border-radius:18px;
    background:#fff;
    border:1px solid #ececec;
}
.wcrp-product-image{
    width:100%;
    height:100%;
    object-fit:contain;
    display:block;
}
.wcrp-product-preview-copy{
    margin-top:18px;
}
.wcrp-product-caption{
    display:block;
    margin-bottom:5px;
    color:#777;
    font-size:11px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.wcrp-product-name{
    display:block;
    color:#171717;
    font-size:17px;
    line-height:1.35;
}
.wcrp-unit-price{
    min-height:24px;
    margin-top:8px;
    color:var(--lla-primary);
    font-size:16px;
    font-weight:900;
}
.wcrp-reserve-modal .wcrp-form{
    margin:0;
    padding:28px 30px 30px;
}
.wcrp-fields-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.wcrp-reserve-modal .wcrp-form label{
    display:block;
    margin:0;
    color:#232323;
    font-size:14px;
    font-weight:800;
}
.wcrp-reserve-modal .wcrp-form label>span{
    display:block;
    margin-bottom:7px;
}
.wcrp-reserve-modal .wcrp-form input:not([type="hidden"]){
    width:100%;
    min-height:48px;
    box-sizing:border-box;
    margin:0;
    padding:11px 13px;
    border:1px solid #d8d8dc;
    border-radius:11px;
    background:#fff;
    color:#171717;
    font:inherit;
    font-weight:500;
    outline:none;
    box-shadow:none;
    transition:border-color .15s ease,box-shadow .15s ease;
}
.wcrp-reserve-modal .wcrp-form input:focus{
    border-color:var(--lla-primary);
    box-shadow:0 0 0 3px rgba(200,16,46,.10);
}
.wcrp-order-line{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-top:22px;
    padding:20px;
    border:1px solid #ececee;
    border-radius:16px;
    background:#fafafa;
}
.wcrp-control-label,
.wcrp-live-total>span{
    display:block;
    margin-bottom:8px;
    color:#686868;
    font-size:12px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.wcrp-qty-stepper{
    display:grid;
    grid-template-columns:42px 68px 42px;
    align-items:center;
    overflow:hidden;
    border:1px solid #d8d8dc;
    border-radius:12px;
    background:#fff;
}
.wcrp-reserve-modal .wcrp-form .wcrp-reservation-quantity{
    min-height:42px;
    height:42px;
    padding:0 5px;
    border:0;
    border-left:1px solid #ececee;
    border-right:1px solid #ececee;
    border-radius:0;
    text-align:center;
    font-weight:800;
    appearance:textfield;
    -moz-appearance:textfield;
}
.wcrp-reservation-quantity::-webkit-inner-spin-button,
.wcrp-reservation-quantity::-webkit-outer-spin-button{
    margin:0;
    -webkit-appearance:none;
}
.wcrp-qty-button{
    width:42px;
    height:42px;
    padding:0;
    border:0;
    background:#fff;
    color:#171717;
    font-size:22px;
    line-height:1;
    font-weight:700;
    cursor:pointer;
}
.wcrp-qty-button:hover,
.wcrp-qty-button:focus{
    background:#f2f2f3;
    color:var(--lla-primary);
}
.wcrp-live-total{
    min-width:170px;
    text-align:right;
}
.wcrp-total-value{
    display:block;
    color:var(--lla-primary);
    font-size:clamp(28px,4vw,40px);
    line-height:1;
    font-weight:950;
    letter-spacing:-.035em;
}
.wcrp-variation-warning{
    margin-top:16px;
    padding:11px 13px;
    border-radius:10px;
    background:#fff6e8;
    color:#7b4b00;
    font-size:13px;
    font-weight:700;
}
.wcrp-reserve-modal .wcrp-confirm-reservation{
    width:100%;
    min-height:52px;
    margin-top:18px;
    padding:12px 18px;
    border:2px solid var(--lla-primary)!important;
    border-radius:12px!important;
    background:var(--lla-primary)!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    font-size:16px!important;
    line-height:1.2!important;
    font-weight:900!important;
    box-shadow:none!important;
}
.wcrp-reserve-modal .wcrp-confirm-reservation:hover,
.wcrp-reserve-modal .wcrp-confirm-reservation:focus{
    border-color:var(--lla-primary-dark)!important;
    background:var(--lla-primary-dark)!important;
}
.wcrp-reserve-modal .wcrp-confirm-reservation:disabled{
    cursor:not-allowed;
    opacity:.55;
}
.wcrp-modal-footnote{
    margin:9px 0 0;
    color:#777;
    font-size:12px;
    line-height:1.4;
    text-align:center;
}
@media(max-width:760px){
    .wcrp-reserve-modal{
        align-items:flex-end;
        padding:0;
    }
    .wcrp-modal-dialog{
        width:100%;
        max-height:92dvh;
        border-radius:22px 22px 0 0;
    }
    .wcrp-modal-intro{
        padding:24px 64px 18px 20px;
    }
    .wcrp-modal-layout{
        grid-template-columns:1fr;
    }
    .wcrp-product-preview{
        display:flex;
        align-items:center;
        gap:14px;
        padding:16px 20px;
        border-right:0;
        border-bottom:1px solid #ededed;
    }
    .wcrp-product-image-wrap{
        flex:0 0 78px;
        width:78px;
        height:78px;
        border-radius:13px;
    }
    .wcrp-product-preview-copy{
        min-width:0;
        margin:0;
    }
    .wcrp-reserve-modal .wcrp-form{
        padding:20px;
    }
}
@media(max-width:520px){
    .wcrp-fields-grid{
        grid-template-columns:1fr;
        gap:13px;
    }
    .wcrp-order-line{
        align-items:stretch;
        flex-direction:column;
        gap:16px;
        padding:16px;
    }
    .wcrp-live-total{
        min-width:0;
        text-align:left;
    }
    .wcrp-total-value{
        font-size:32px;
    }
}
@media(prefers-reduced-motion:reduce){
    .wcrp-reserve-modal,
    .wcrp-modal-dialog{
        transition:none;
    }
}

/* Reservation modal hardening — responsive layout, LDA branding and stacking-context isolation. */
.wcrp-reserve-launch .wcrp-open-form,
.wcrp-reserve-launch button.wcrp-open-form {
    background: var(--lla-primary) !important;
    background-color: var(--lla-primary) !important;
    border: 2px solid var(--lla-primary) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}
.wcrp-reserve-launch .wcrp-open-form:hover,
.wcrp-reserve-launch .wcrp-open-form:focus {
    background: var(--lla-primary-dark) !important;
    background-color: var(--lla-primary-dark) !important;
    border-color: var(--lla-primary-dark) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
.wcrp-reserve-launch .wcrp-open-form:active {
    transform: translateY(1px);
}

body > .wcrp-reserve-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    isolation: isolate;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding:
        max(16px, env(safe-area-inset-top))
        max(16px, env(safe-area-inset-right))
        max(16px, env(safe-area-inset-bottom))
        max(16px, env(safe-area-inset-left)) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    transform: none !important;
    filter: none !important;
}
body > .wcrp-reserve-modal .wcrp-modal-backdrop {
    z-index: 0 !important;
}
body > .wcrp-reserve-modal .wcrp-modal-dialog {
    z-index: 1 !important;
    width: min(960px, 100%) !important;
    max-width: 960px !important;
    max-height: calc(100dvh - 32px) !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}
.wcrp-modal-layout,
.wcrp-product-preview,
.wcrp-reserve-modal .wcrp-form,
.wcrp-fields-grid,
.wcrp-fields-grid > *,
.wcrp-order-line,
.wcrp-live-total {
    min-width: 0;
}
.wcrp-reserve-modal .wcrp-form select.wcrp-pickup-select {
    display: block;
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    margin: 0;
    padding: 11px 42px 11px 13px;
    border: 1px solid #d8d8dc;
    border-radius: 11px;
    background-color: #fff;
    color: #171717;
    font: inherit;
    font-weight: 600;
    line-height: 1.25;
    outline: none;
    box-shadow: none;
}
.wcrp-reserve-modal .wcrp-form select.wcrp-pickup-select:focus {
    border-color: var(--lla-primary);
    box-shadow: 0 0 0 3px rgba(200,16,46,.10);
}
.wcrp-pickup-field {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #ececee;
    border-radius: 14px;
    background: #fafafa;
}
.wcrp-pickup-field[hidden] {
    display: none !important;
}
.wcrp-pickup-help {
    margin: 7px 0 0;
    color: #6b6b6b;
    font-size: 12px;
    line-height: 1.45;
}
.wcrp-pickup-warning {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 9px;
    background: #fff0ef;
    color: var(--lla-primary-dark);
    font-size: 12px;
    line-height: 1.45;
    font-weight: 750;
}
.wcrp-pickup-warning[hidden] {
    display: none !important;
}
.wcrp-order-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, auto);
    align-items: end;
}
.wcrp-total-value {
    max-width: 100%;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wcrp-qty-button {
    background: var(--lla-secondary) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
.wcrp-qty-button:hover,
.wcrp-qty-button:focus {
    background: var(--lla-primary) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

@media (max-width: 880px) {
    body > .wcrp-reserve-modal {
        padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
    }
    body > .wcrp-reserve-modal .wcrp-modal-dialog {
        max-height: calc(100dvh - 24px) !important;
        border-radius: 20px;
    }
    .wcrp-modal-layout {
        grid-template-columns: 1fr;
    }
    .wcrp-product-preview {
        display: grid;
        grid-template-columns: 94px minmax(0,1fr);
        align-items: center;
        gap: 16px;
        padding: 18px 22px;
        border-right: 0;
        border-bottom: 1px solid #ededed;
    }
    .wcrp-product-image-wrap {
        width: 94px;
        height: 94px;
        aspect-ratio: 1 / 1;
        border-radius: 14px;
    }
    .wcrp-product-preview-copy {
        margin: 0;
    }
    .wcrp-reserve-modal .wcrp-form {
        padding: 22px;
    }
}

@media (max-width: 640px) {
    body > .wcrp-reserve-modal {
        align-items: flex-end !important;
        padding: 0 !important;
    }
    body > .wcrp-reserve-modal .wcrp-modal-dialog {
        width: 100% !important;
        max-width: 100% !important;
        max-height: calc(100dvh - env(safe-area-inset-top)) !important;
        border-radius: 22px 22px 0 0 !important;
        padding-bottom: env(safe-area-inset-bottom);
    }
    .wcrp-modal-close {
        top: 12px;
        right: 12px;
        width: 40px;
        height: 40px;
    }
    .wcrp-modal-intro {
        padding: 22px 60px 17px 18px;
    }
    .wcrp-modal-intro h2 {
        font-size: clamp(23px, 7vw, 30px) !important;
    }
    .wcrp-product-preview {
        grid-template-columns: 72px minmax(0,1fr);
        gap: 13px;
        padding: 14px 18px;
    }
    .wcrp-product-image-wrap {
        width: 72px;
        height: 72px;
    }
    .wcrp-reserve-modal .wcrp-form {
        padding: 18px;
    }
    .wcrp-fields-grid {
        grid-template-columns: 1fr;
        gap: 13px;
    }
    .wcrp-pickup-field {
        margin-top: 14px;
        padding: 14px;
    }
    .wcrp-order-line {
        grid-template-columns: 1fr;
        align-items: stretch;
        gap: 16px;
        margin-top: 16px;
        padding: 15px;
    }
    .wcrp-live-total {
        width: 100%;
        min-width: 0;
        text-align: left;
    }
    .wcrp-total-value {
        font-size: clamp(28px, 10vw, 38px);
    }
    .wcrp-reserve-modal .wcrp-confirm-reservation {
        min-height: 54px;
    }
}

@media (max-width: 380px) {
    .wcrp-modal-intro p {
        font-size: 13px;
    }
    .wcrp-product-preview {
        grid-template-columns: 58px minmax(0,1fr);
        padding: 12px 16px;
    }
    .wcrp-product-image-wrap {
        width: 58px;
        height: 58px;
    }
    .wcrp-reserve-modal .wcrp-form {
        padding: 16px;
    }
    .wcrp-qty-stepper {
        grid-template-columns: 40px 62px 40px;
    }
    .wcrp-qty-button {
        width: 40px;
    }
}

/* v1.0.10 — reservable product UX and precise modal controls. */
.wcrp-modal-close,
button.wcrp-modal-close {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 0 !important;
    text-align: center !important;
    text-indent: 0 !important;
}
.wcrp-modal-close-icon {
    display: block;
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    overflow: visible;
    pointer-events: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
}

/* Keep each quantity control visually separate and fully branded for LDA. */
.wcrp-qty-stepper {
    display: grid;
    grid-template-columns: 46px 70px 46px;
    align-items: center;
    gap: 9px;
    width: max-content;
    max-width: 100%;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.wcrp-reserve-modal .wcrp-form .wcrp-reservation-quantity,
.wcrp-reserve-modal .wcrp-form input.wcrp-reservation-quantity {
    width: 70px;
    min-width: 0;
    min-height: 46px;
    height: 46px;
    padding: 0 8px;
    border: 2px solid var(--lla-primary) !important;
    border-radius: 10px !important;
    background: var(--lla-primary) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    text-align: center;
    font-size: 16px;
    line-height: 42px;
    font-weight: 900;
    box-shadow: none !important;
}
.wcrp-reserve-modal .wcrp-form .wcrp-reservation-quantity:focus {
    border-color: var(--lla-primary-dark) !important;
    background: var(--lla-primary-dark) !important;
    box-shadow: 0 0 0 3px rgba(200,16,46,.14) !important;
}
.wcrp-qty-button,
.wcrp-reserve-modal button.wcrp-qty-button {
    width: 46px;
    min-width: 46px;
    height: 46px;
    min-height: 46px;
    padding: 0 !important;
    margin: 0 !important;
    border: 2px solid var(--lla-primary) !important;
    border-radius: 10px !important;
    background: var(--lla-primary) !important;
    background-color: var(--lla-primary) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 23px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}
.wcrp-qty-button:hover,
.wcrp-qty-button:focus,
.wcrp-reserve-modal button.wcrp-qty-button:hover,
.wcrp-reserve-modal button.wcrp-qty-button:focus {
    border-color: var(--lla-primary-dark) !important;
    background: var(--lla-primary-dark) !important;
    background-color: var(--lla-primary-dark) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* Reservable products are reservation-only: preserve price/variation selectors,
   but remove WooCommerce/Elementor quantity + add-to-cart controls. */
body.single-product.wcrp-reservable-product form.cart > .quantity,
body.single-product.wcrp-reservable-product form.cart .woocommerce-variation-add-to-cart > .quantity,
body.single-product.wcrp-reservable-product form.cart .single_add_to_cart_button,
body.single-product.wcrp-reservable-product .elementor-widget-woocommerce-product-add-to-cart .quantity,
body.single-product.wcrp-reservable-product .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button,
body.single-product.wcrp-reservable-product .elementor-add-to-cart .quantity,
body.single-product.wcrp-reservable-product .elementor-add-to-cart .single_add_to_cart_button {
    display: none !important;
}

@media (max-width: 640px) {
    .wcrp-qty-stepper {
        grid-template-columns: 44px 66px 44px;
        gap: 8px;
    }
    .wcrp-qty-button,
    .wcrp-reserve-modal button.wcrp-qty-button {
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
    }
    .wcrp-reserve-modal .wcrp-form .wcrp-reservation-quantity,
    .wcrp-reserve-modal .wcrp-form input.wcrp-reservation-quantity {
        width: 66px;
        height: 44px;
        min-height: 44px;
    }
}

/* v1.0.12 — scheduled pickup and invoice-at-store mode. */
.wcrp-schedule-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin-top:18px;
    padding:18px;
    border:1px solid #ececee;
    border-radius:16px;
    background:#fafafa;
}
.wcrp-schedule-grid label{min-width:0}
.wcrp-reserve-modal .wcrp-form select{
    width:100%;
    min-height:48px;
    box-sizing:border-box;
    margin:0;
    padding:11px 38px 11px 13px;
    border:1px solid #d8d8dc;
    border-radius:11px;
    background:#fff;
    color:#171717;
    font:inherit;
    font-weight:500;
    outline:none;
    box-shadow:none;
}
.wcrp-reserve-modal .wcrp-form select:focus{
    border-color:var(--lla-primary);
    box-shadow:0 0 0 3px rgba(200,16,46,.10);
}
.wcrp-schedule-help{
    grid-column:1/-1;
    margin:0;
    color:#6c6c6c;
    font-size:12px;
    line-height:1.45;
}
.wcrp-schedule-warning{
    grid-column:1/-1;
    margin:0;
    padding:10px 12px;
    border-radius:9px;
    background:#fff1f3;
    color:#8e0b22;
    font-size:12px;
    font-weight:700;
}
.wcrp-total-value.is-price-at-store{
    max-width:260px;
    font-size:20px;
    line-height:1.15;
    letter-spacing:0;
}
@media(max-width:520px){
    .wcrp-schedule-grid{grid-template-columns:1fr;padding:16px;gap:13px}
    .wcrp-total-value.is-price-at-store{font-size:18px}
}


/* v1.0.13 — independent seat-visit flow: no price, quantity or warehouse UI.
   v1.0.18 — the price stays hidden unless "Mostrar precio" is enabled (body.wcrp-show-price). */
body.single-product.wcrp-reservable-product:not(.wcrp-show-price) .summary > .price,
body.single-product.wcrp-reservable-product:not(.wcrp-show-price) .summary .woocommerce-variation-price,
body.single-product.wcrp-reservable-product:not(.wcrp-show-price) .elementor-widget-woocommerce-product-price,
body.single-product.wcrp-reservable-product:not(.wcrp-show-price) .elementor-widget-woocommerce-product-price .price {
    display:none !important;
}
.wcrp-item-meta{display:block;margin-top:4px;color:#666;font-size:12px;line-height:1.4}
.wcrp-item-meta p{margin:0!important}

body.single-product.wcrp-reservable-product .upl-availability-table-wrapper,
body.single-product.wcrp-reservable-product [class*="upl-availability-table"] {
    display:none !important;
}

/* v1.0.14 — configurable visit/pickup points and optional quantity. */
.wcrp-location-card{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
    padding:18px;
    border:1px solid #ececee;
    border-radius:16px;
    background:#fafafa;
}
.wcrp-location-row{
    min-width:0;
    padding:14px 15px;
    border:1px solid #e3e3e6;
    border-radius:12px;
    background:#fff;
}
.wcrp-location-row>span{
    display:block;
    margin-bottom:5px;
    color:#727272;
    font-size:11px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.wcrp-location-row>strong{
    display:block;
    color:#171717;
    font-size:14px;
    line-height:1.4;
}
.wcrp-location-row>small{
    display:block;
    margin-top:5px;
    color:#686868;
    font-size:12px;
    line-height:1.45;
}
.wcrp-quantity-card{
    margin-top:18px;
    padding:18px;
    border:1px solid #ececee;
    border-radius:16px;
    background:#fafafa;
}
.wcrp-quantity-card .wcrp-control-label{margin-bottom:10px}
.wcrp-quantity-card>small{
    display:block;
    margin-top:9px;
    color:#777;
    font-size:12px;
    line-height:1.4;
}
@media(max-width:640px){
    .wcrp-location-card{grid-template-columns:1fr;padding:15px;gap:10px}
    .wcrp-quantity-card{padding:15px}
}

/* v1.0.15: Keep selected variation names readable in the modal product summary. */
.wcrp-product-name{overflow-wrap:anywhere;word-break:normal}

/* v1.0.16 — public staff-token validation and read-only customer QR view. */
.wcrp-readonly-note{
    margin:18px 0 6px;
    padding:15px 16px;
    border:1px solid #e5e5e8;
    border-radius:12px;
    background:#fafafa;
    color:#444;
    font-size:14px;
    line-height:1.5;
}
.wcrp-readonly-note strong{display:block;color:#171717;margin-bottom:4px}
.wcrp-readonly-note p{margin:0}

/* v1.0.18 — optional informative price and condition note ("estado de la butaca").
   v1.0.19 — note restyled with the LDA brand colours. */
.wcrp-condition-note{
    box-sizing:border-box;
    margin:0 0 14px;
    padding:13px 15px;
    border:1px solid rgba(200,16,46,.22);
    border-left:4px solid var(--lla-primary,#C8102E);
    border-radius:10px;
    background:#fff5f6;
    color:#171717;
    -webkit-text-fill-color:currentColor;
    font-size:14px;
    line-height:1.5;
    text-align:left;
}
.wcrp-condition-note .wcrp-condition-title{
    display:block;
    margin:0 0 4px;
    color:var(--lla-primary,#C8102E);
    font-size:11px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.wcrp-condition-note p{
    margin:0!important;
    padding:0;
    color:inherit;
    font-size:inherit;
    line-height:inherit;
    overflow-wrap:anywhere;
}
.wcrp-reserve-modal .wcrp-condition-note-modal{margin:18px 0 0}
.wcrp-card .wcrp-condition-note{margin:18px 0}
.wcrp-quantity-total{
    margin:10px 0 0!important;
    color:#444;
    font-size:14px;
    line-height:1.4;
}
.wcrp-quantity-total .wcrp-total-value,
.wcrp-quantity-total .wcrp-total-value.is-price-at-store{
    display:inline;
    max-width:none;
    overflow:visible;
    color:var(--lla-primary);
    font-size:16px;
    line-height:1.4;
    font-weight:900;
    letter-spacing:0;
    white-space:normal;
}

/* v1.0.19 — variation selectors inside the modal. */
.wcrp-variation-card{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin:0 0 18px;
    padding:18px;
    border:1px solid rgba(200,16,46,.22);
    border-radius:16px;
    background:#fff5f6;
}
.wcrp-variation-card label{min-width:0}
.wcrp-variation-card label:only-child{grid-column:1/-1}
@media(max-width:640px){
    .wcrp-variation-card{grid-template-columns:1fr;padding:15px;gap:13px}
}

/* v1.0.19 — some themes reset button margins: always keep air above the confirm button. */
.wcrp-reserve-modal .wcrp-form .wcrp-confirm-reservation,
.wcrp-reserve-modal .wcrp-form button.wcrp-confirm-reservation{
    margin-top:20px!important;
}
/* After the condition note the gap comes from the note itself, so it survives any button reset. */
.wcrp-reserve-modal .wcrp-form .wcrp-condition-note-modal{margin:18px 0 20px!important}
.wcrp-reserve-modal .wcrp-form .wcrp-condition-note-modal + .wcrp-confirm-reservation,
.wcrp-reserve-modal .wcrp-form .wcrp-condition-note-modal + button.wcrp-confirm-reservation{
    margin-top:0!important;
}

/* v1.0.19 — the "choose your options" notice follows the LDA palette, like the schedule notice. */
.wcrp-reserve-modal .wcrp-variation-warning{
    background:#fff1f3;
    color:#8e0b22;
    -webkit-text-fill-color:#8e0b22;
}

/* v1.0.22 — Keep native WooCommerce and Elementor cart/variation UI hidden
   exclusively on reservable product pages. Modal variation inputs remain visible. */
body.single-product.wcrp-reservable-product form.cart:not(.wcrp-form),
body.single-product.wcrp-reservable-product .elementor-widget-woocommerce-product-add-to-cart form.cart,
body.single-product.wcrp-reservable-product .elementor-add-to-cart form.cart {
    display: none !important;
}
