.oras-add-stop-zone{margin:0 0 24px}.oras-route-note{background:#fff;border:1px solid #e9ecef;border-left:4px solid var(--ocb-primary,#d63031);border-radius:8px;padding:14px 16px;margin-bottom:14px;color:var(--ocb-dark,#2d3436);font-size:.92em}.oras-route-note span{color:#636e72}.oras-add-stop{width:100%;border:2px dashed var(--ocb-primary,#d63031);background:#fff;color:var(--ocb-primary,#d63031);border-radius:9px;padding:13px 16px;font-weight:700;cursor:pointer;transition:.18s ease}.oras-add-stop:hover{background:#fff7f7}.oras-stop-card{border-left:4px solid var(--ocb-primary,#d63031)!important}.oras-stop-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.oras-stop-title-wrap{display:flex;align-items:center;gap:9px}.oras-stop-title-wrap .ocb-card-title{margin:0}.oras-stop-badge{width:27px;height:27px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--ocb-primary,#d63031);color:#fff;font-size:12px;font-weight:800;flex:0 0 auto}.oras-stop-actions{display:flex;gap:6px}.oras-mini{border:1px solid #dfe6e9;background:#fff;color:#2d3436;border-radius:7px;padding:6px 9px;font-size:12px;cursor:pointer}.oras-mini:hover{border-color:var(--ocb-primary,#d63031);color:var(--ocb-primary,#d63031)}.oras-mini:disabled{opacity:.35;cursor:not-allowed}.oras-remove-stop{color:#b33939}.oras-type-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px}.oras-type-label{font-size:13px;font-weight:600;margin-right:4px}.oras-stop-type{border:1px solid #dfe6e9;background:#fff;border-radius:8px;padding:8px 16px;font-weight:700;font-size:12px;cursor:pointer}.oras-stop-type.is-active{background:var(--ocb-primary,#d63031);border-color:var(--ocb-primary,#d63031);color:#fff}.oras-route-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#f8f9fb;border:1px solid #e9ecef;border-radius:8px;padding:11px 13px;margin-top:10px;font-size:12px;color:#636e72}.oras-route-summary strong{color:#2d3436}.oras-route-status{margin-top:8px;padding:10px 12px;border-radius:8px;background:#f8f9fb;border:1px solid #e9ecef;font-size:12px;font-weight:600;color:#636e72}.oras-route-status.is-ok{background:#eefbf5;border-color:#b7ead3;color:#18794e}.oras-route-status.is-error{background:#fff1f1;border-color:#f0b7b7;color:#a83232}.oras-route-status.is-working{background:#fff9e8;border-color:#edd998;color:#7a6215}.oras-stop-time-note{margin:8px 2px 0;color:#7b7b7b;font-size:11px;line-height:1.45}.oras-route-blocked{box-shadow:0 0 0 2px rgba(214,48,49,.15)}.oras-review-card{grid-column:1/-1}.oras-review-list{display:grid;gap:9px}.oras-review-stop{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #edf2f7}.oras-review-stop:last-child{border-bottom:0}.oras-review-num{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ocb-primary,#d63031);color:#fff;font-size:11px;font-weight:800;flex:0 0 auto}.oras-review-stop strong,.oras-review-stop span{display:block}.oras-review-stop div>span{font-size:12px;color:#636e72;margin-top:2px}.oras-review-route-total{font-size:12px;font-weight:700;color:#2d3436;background:#f8f9fb;border-radius:7px;padding:10px 12px}.oras-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:100000;padding:20px;align-items:center;justify-content:center}.oras-modal.is-open{display:flex}.oras-modal-panel{width:min(720px,100%);max-height:85vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.28);overflow:hidden;display:flex;flex-direction:column}.oras-modal-head,.oras-modal-foot{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf2f7}.oras-modal-foot{border-bottom:0;border-top:1px solid #edf2f7;justify-content:flex-end}.oras-modal-head h3{margin:0;font-size:18px}.oras-modal-close{border:0;background:#fff;font-size:24px;line-height:1;cursor:pointer}.oras-modal-body{padding:12px;overflow:auto}.oras-address-results{display:grid;gap:8px}.oras-address-result{width:100%;text-align:left;border:1px solid #e1e6eb;background:#fff;border-radius:8px;padding:11px 12px;cursor:pointer}.oras-address-result:hover,.oras-address-result:focus{border-color:var(--ocb-primary,#d63031);box-shadow:0 0 0 2px rgba(214,48,49,.08);outline:0}.oras-address-result strong,.oras-address-result span{display:block}.oras-address-result span{font-size:12px;color:#636e72;margin-top:3px}.oras-address-loading,.oras-address-empty{padding:22px;text-align:center;color:#636e72}@media(max-width:767px){.oras-stop-head{align-items:flex-start}.oras-stop-actions{flex-wrap:wrap;justify-content:flex-end}.oras-route-summary{grid-template-columns:1fr 1fr}.oras-type-row{align-items:stretch}.oras-type-label{width:100%}.oras-stop-type{flex:1}.oras-modal{padding:10px}.oras-modal-panel{max-height:92vh}}
.oras-saved-route h3{margin:0 0 10px}.oras-saved-route-list{display:grid;gap:8px}.oras-saved-route-stop{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #edf2f7}.oras-saved-route-stop:last-child{border-bottom:0}.oras-saved-route-num{width:24px;height:24px;border-radius:50%;background:var(--ocb-primary,#d63031);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex:0 0 auto}.oras-saved-route-stop strong,.oras-saved-route-stop span{display:block}.oras-saved-route-stop span{font-size:12px;color:#636e72;margin-top:2px}.oras-saved-route-stop .oras-saved-route-note{font-style:italic;color:#856404}.oras-saved-route-total{margin-top:10px;background:#f8f9fb;border-radius:7px;padding:9px 11px;font-size:12px;font-weight:700;color:#2d3436}.oras-saved-route-email{font-family:Arial,sans-serif;margin:18px 0;padding:14px;border:1px solid #e6e6e6;border-radius:8px}.oras-saved-route-email h3{font-size:16px}.oras-saved-route-email .oras-saved-route-stop{font-size:13px}.oras-admin-route-notice .oras-saved-route{max-width:900px}
.oras-preview-banner{margin:0 0 12px;padding:10px 12px;border:1px solid #f0d58a;border-radius:8px;background:#fff8e1;color:#6f5812;font-size:12px;font-weight:700}.oras-stop-postcode{text-transform:uppercase}.oras-route-price{white-space:nowrap}

.oras-review-inline-total{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid #edf2f7;font-size:12px;color:#2d3436}.oras-review-inline-total strong{font-weight:800}.oras-review-inline-total span{color:#2d3436}


/* v0.4.6: performance hardening + review hierarchy + Timed route guidance */
.oras-review-inline-stop .oras-review-stop-label{
    font-weight:600!important;
    font-size:13px;
    line-height:1.4;
    color:var(--ocb-text-main,#2d3436);
}
.oras-review-inline-stop .oras-review-stop-address{
    font-weight:500!important;
    font-size:13px!important;
    line-height:1.45;
    color:var(--ocb-text-main,#2d3436)!important;
}
.oras-review-inline-stop .oras-review-stop-detail,
.oras-review-inline-stop .oras-review-stop-note{
    font-weight:400!important;
    font-size:12px!important;
    line-height:1.45;
    color:#636e72!important;
}
.oras-review-inline-total{
    display:grid;
    grid-template-columns:minmax(92px,.8fr) minmax(0,1.7fr);
    gap:12px;
    align-items:start;
    margin-top:8px;
    padding-top:10px;
    border-top:1px solid #edf2f7;
    font-size:12px;
    color:#2d3436;
}
.oras-review-inline-total strong{font-weight:600!important;color:var(--ocb-text-main,#2d3436)}
.oras-review-inline-total span{font-weight:400;color:#636e72}
.oras-timed-route-helper{
    width:100%;
    margin-top:10px;
    padding:10px 12px;
    border:1px solid #dfe6e9;
    border-radius:8px;
    background:#f8f9fb;
    color:#4b5563;
    font-size:12px;
    line-height:1.5;
}
.oras-timed-route-helper strong{font-weight:700;color:var(--ocb-text-main,#2d3436)}
.oras-timed-route-helper.is-ok{background:#eefbf5;border-color:#b7ead3;color:#18794e}
.oras-timed-route-helper.is-error{background:#fff1f1;border-color:#f0b7b7;color:#a83232}
.oras-timed-route-helper.is-working{background:#fff9e8;border-color:#edd998;color:#7a6215}
@media(max-width:767px){
    .oras-review-inline-total{grid-template-columns:1fr;gap:3px}
}


/* v0.4.8: route-aware Timed final-delivery picker on Booking Details */
.oras-timed-final-picker{
    margin-top:10px;
    padding:14px;
    border:1px solid #dfe6e9;
    border-radius:9px;
    background:#fff;
}
.oras-timed-final-copy{font-size:12px;line-height:1.5;color:#636e72;margin-bottom:12px}
.oras-timed-final-copy strong{color:var(--ocb-text-main,#2d3436);font-size:13px;font-weight:700}
.oras-timed-final-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.oras-timed-field{display:block;margin:0;font-size:12px;font-weight:600;color:var(--ocb-text-main,#2d3436)}
.oras-timed-field>span{display:block;margin-bottom:6px}
.oras-timed-field select{width:100%;min-height:42px}
.oras-timed-final-status{margin-top:10px;padding:9px 11px;border-radius:7px;background:#f8f9fb;border:1px solid #e9ecef;font-size:12px;line-height:1.45;color:#636e72}
.oras-timed-final-status.is-ok{background:#eefbf5;border-color:#b7ead3;color:#18794e}
.oras-timed-final-status.is-error{background:#fff1f1;border-color:#f0b7b7;color:#a83232}
.oras-timed-final-status.is-working{background:#fff9e8;border-color:#edd998;color:#7a6215}
@media(max-width:767px){.oras-timed-final-grid{grid-template-columns:1fr}}

/* v0.5.0 stability + production polish */
.oras-stop-title-wrap .ocb-card-title,
.oras-stop-heading{
    font-weight:600!important;
    font-size:inherit;
    letter-spacing:normal;
}
.oras-stop-badge{font-weight:700}
.oras-route-summary{align-items:center}
.oras-route-summary>span{min-width:0;line-height:1.4}
.oras-route-summary strong{display:inline-block;margin-left:2px}
.oras-review-inline-stop{align-items:start}
.oras-review-inline-stop .ocb-r-label{font-weight:500!important}
.oras-review-inline-stop .oras-review-stop-label{font-weight:500!important}
.oras-review-inline-total{column-gap:10px}
.oras-review-inline-total strong:after{content:""}
.oras-stop-card .ocb-field{min-width:0}
.oras-stop-card textarea{resize:vertical}
.oras-mini,.oras-stop-type,.oras-add-stop,.oras-find-address{touch-action:manipulation}
.oras-stop-actions .oras-mini{min-width:38px;min-height:36px}
.oras-add-stop:focus-visible,.oras-mini:focus-visible,.oras-stop-type:focus-visible,.oras-find-address:focus-visible,.oras-address-result:focus-visible{
    outline:3px solid rgba(214,48,49,.18);outline-offset:2px
}
@media(max-width:767px){
    .oras-add-stop-zone{margin-bottom:18px}
    .oras-route-note{padding:12px 13px;font-size:13px;line-height:1.5}
    .oras-stop-card{padding-left:14px!important;padding-right:14px!important}
    .oras-stop-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
    .oras-stop-actions{gap:5px}
    .oras-stop-actions .oras-mini{padding:8px 10px;min-height:40px}
    .oras-type-row{gap:7px}
    .oras-stop-type{min-height:42px;padding:9px 14px}
    .oras-route-summary{grid-template-columns:1fr 1fr;padding:10px;gap:7px 10px}
    .oras-route-status{font-size:12px;line-height:1.45}
    .oras-stop-card .ocb-cs-grid,.oras-stop-card .ocb-cs-grid-postcode{min-width:0}
    .oras-stop-card input,.oras-stop-card textarea,.oras-stop-card button{max-width:100%}
    .oras-find-address{min-height:42px}
}
@media(max-width:480px){
    .oras-stop-head{grid-template-columns:1fr}
    .oras-stop-actions{justify-content:flex-start}
    .oras-route-summary{grid-template-columns:1fr}
    .oras-route-summary>span{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px solid #edf2f7}
    .oras-route-summary>span:last-child{border-bottom:0}
    .oras-review-inline-total{grid-template-columns:1fr;gap:2px}
    .oras-modal-panel{border-radius:10px}
}
.oras-saved-route-status{font-size:11px!important;font-weight:600;color:#475467!important;margin-top:4px!important}
.oras-confirm-route-card .oras-saved-route h3{margin-top:0}

/* v0.5.1 mobile checkout/review polish.
 * Scoped to bookings that actually contain Add Stops so the zero-stop flow
 * keeps the original OnRoute presentation unchanged. */
@media(max-width:767px){
    body.oras-has-stops .ocb-booking-wrapper,
    body.oras-has-stops .ocb-step-panel[data-step="3"]{
        max-width:100%!important;
        overflow-x:hidden!important;
    }

    /* Give iPhone/Android browser toolbars enough scroll room below checkout. */
    body.oras-has-stops .ocb-step-panel[data-step="3"]{
        padding-bottom:calc(150px + env(safe-area-inset-bottom, 0px))!important;
    }

    /* Review cards should read like a compact professional summary, not a
       desktop two-column layout enlarged for mobile. */
    body.oras-has-stops .ocb-review-grid{
        display:grid!important;
        grid-template-columns:minmax(0,1fr)!important;
        gap:14px!important;
        width:100%!important;
    }
    body.oras-has-stops .ocb-review-card{
        width:100%!important;
        min-width:0!important;
        padding:18px 16px!important;
        border-radius:10px!important;
    }
    body.oras-has-stops .ocb-review-card h3{
        margin:0 0 12px!important;
        font-size:20px!important;
        line-height:1.25!important;
        letter-spacing:0!important;
    }
    body.oras-has-stops .ocb-review-item,
    body.oras-has-stops .oras-review-inline-stop,
    body.oras-has-stops .oras-review-inline-total{
        display:grid!important;
        grid-template-columns:minmax(96px,34%) minmax(0,1fr)!important;
        column-gap:12px!important;
        row-gap:3px!important;
        align-items:start!important;
        width:100%!important;
        min-width:0!important;
        padding:11px 0!important;
    }
    body.oras-has-stops .ocb-r-label,
    body.oras-has-stops .oras-review-stop-label,
    body.oras-has-stops .oras-review-inline-total strong{
        min-width:0!important;
        font-size:14px!important;
        line-height:1.4!important;
        font-weight:500!important;
        overflow-wrap:anywhere!important;
    }
    body.oras-has-stops .ocb-r-value,
    body.oras-has-stops .ocb-r-value-group,
    body.oras-has-stops .ocb-r-address,
    body.oras-has-stops .ocb-r-contact,
    body.oras-has-stops .ocb-r-date,
    body.oras-has-stops .oras-review-stop-address,
    body.oras-has-stops .oras-review-stop-detail,
    body.oras-has-stops .oras-review-stop-note,
    body.oras-has-stops .oras-review-inline-total span{
        min-width:0!important;
        max-width:100%!important;
        font-size:14px!important;
        line-height:1.45!important;
        font-weight:400!important;
        overflow-wrap:anywhere!important;
        word-break:normal!important;
    }
    body.oras-has-stops #r-email,
    body.oras-has-stops .ocb-review-card a{
        overflow-wrap:anywhere!important;
        word-break:break-word!important;
    }

    /* Route footer gets its own clean row on narrow screens. */
    body.oras-has-stops .oras-review-inline-total{
        grid-template-columns:minmax(96px,34%) minmax(0,1fr)!important;
        margin-top:2px!important;
        border-top:1px solid #edf2f7!important;
    }

    /* Promo field: preserve a useful text box while keeping Apply tappable. */
    body.oras-has-stops .ocb-promo-section{
        padding:16px!important;
        margin:16px 0!important;
        border-radius:10px!important;
    }
    body.oras-has-stops .ocb-promo-input-group{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) auto!important;
        gap:10px!important;
        align-items:stretch!important;
    }
    body.oras-has-stops #promo_code_input{
        width:100%!important;
        min-width:0!important;
        min-height:48px!important;
        padding:10px 12px!important;
        font-size:16px!important;
    }
    body.oras-has-stops #ocb_apply_promo_btn{
        min-width:96px!important;
        min-height:48px!important;
        padding:10px 14px!important;
        white-space:nowrap!important;
    }

    /* Keep the price box strong visually without oversized copy. */
    body.oras-has-stops .ocb-price-box{
        width:100%!important;
        padding:20px 18px!important;
        border-radius:12px!important;
    }
    body.oras-has-stops .ocb-price-box .ocb-price-row,
    body.oras-has-stops .ocb-price-box .ocb-price-total{
        font-size:18px!important;
        line-height:1.35!important;
    }
    body.oras-has-stops .ocb-price-box .ocb-price-total span{
        font-size:inherit!important;
    }
    body.oras-has-stops .ocb-price-box p,
    body.oras-has-stops .ocb-price-box .ocb-price-note{
        font-size:13px!important;
        line-height:1.5!important;
    }

    /* Terms remain legible and do not force awkward line wrapping. */
    body.oras-has-stops .ocb-terms{
        margin:18px 0!important;
    }
    body.oras-has-stops .ocb-terms .ocb-checkbox{
        display:flex!important;
        align-items:flex-start!important;
        gap:10px!important;
        font-size:15px!important;
        line-height:1.4!important;
    }
    body.oras-has-stops .ocb-terms input[type="checkbox"]{
        flex:0 0 auto!important;
        width:22px!important;
        height:22px!important;
        margin-top:1px!important;
    }

    /* Final navigation/checkout buttons are deliberately non-sticky here.
       The browser's own bottom toolbar must never cover the payment action. */
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav{
        position:relative!important;
        inset:auto!important;
        bottom:auto!important;
        left:auto!important;
        right:auto!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        width:100%!important;
        margin-top:18px!important;
        padding:0 0 calc(18px + env(safe-area-inset-bottom, 0px))!important;
        background:transparent!important;
        box-shadow:none!important;
        transform:none!important;
    }
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav .ocb-btn,
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav button,
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav input[type="submit"]{
        position:relative!important;
        inset:auto!important;
        width:100%!important;
        max-width:none!important;
        min-height:54px!important;
        margin:0!important;
        padding:13px 16px!important;
        font-size:16px!important;
        line-height:1.25!important;
        border-radius:10px!important;
        white-space:normal!important;
    }

    /* Small plugin-owned text should never sit outside the mobile card. */
    body.oras-has-stops .oras-add-stop-zone,
    body.oras-has-stops .oras-stop-time-note,
    body.oras-has-stops .oras-route-status{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow-wrap:anywhere!important;
    }
    body.oras-has-stops .oras-stop-time-note{
        padding:0 2px!important;
        margin-top:10px!important;
    }
}

@media(max-width:420px){
    body.oras-has-stops .ocb-review-card{
        padding:16px 14px!important;
    }
    body.oras-has-stops .ocb-review-item,
    body.oras-has-stops .oras-review-inline-stop,
    body.oras-has-stops .oras-review-inline-total{
        grid-template-columns:96px minmax(0,1fr)!important;
        column-gap:10px!important;
    }
    body.oras-has-stops .ocb-r-label,
    body.oras-has-stops .oras-review-stop-label,
    body.oras-has-stops .oras-review-inline-total strong,
    body.oras-has-stops .ocb-r-value,
    body.oras-has-stops .ocb-r-value-group,
    body.oras-has-stops .ocb-r-address,
    body.oras-has-stops .ocb-r-contact,
    body.oras-has-stops .ocb-r-date,
    body.oras-has-stops .oras-review-stop-address,
    body.oras-has-stops .oras-review-stop-detail,
    body.oras-has-stops .oras-review-stop-note,
    body.oras-has-stops .oras-review-inline-total span{
        font-size:13px!important;
    }
    body.oras-has-stops .ocb-promo-input-group{
        grid-template-columns:1fr!important;
    }
    body.oras-has-stops #ocb_apply_promo_btn{
        width:100%!important;
    }
}

/* v0.5.2 visual QA pass — presentation only, no routing/pricing/booking logic. */

/* Desktop/tablet: make Add Stops feel native to the existing booking form. */
@media(min-width:768px){
    .oras-add-stop-zone{margin-top:2px;margin-bottom:28px}
    .oras-route-note,.oras-preview-banner,.oras-route-summary,.oras-route-status{border-radius:10px}
    .oras-route-note{padding:15px 17px;line-height:1.55}
    .oras-stop-card{box-shadow:0 4px 14px rgba(23,32,42,.045)!important}
    .oras-stop-head{margin-bottom:16px}
    .oras-stop-actions .oras-mini{min-height:38px;padding:7px 11px}
    .oras-type-row{margin-bottom:18px}
    .oras-route-summary{padding:0;overflow:hidden;gap:0}
    .oras-route-summary>span{padding:12px 14px;border-right:1px solid #e6ebf0;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:8px}
    .oras-route-summary>span:last-child{border-right:0}
    .oras-route-summary strong{font-weight:700}
    .oras-route-status{padding:11px 14px;line-height:1.5}
    .oras-review-inline-stop,.oras-review-inline-total{padding-top:12px!important;padding-bottom:12px!important}
}

/* Keep validation/focus targets clear of the site's fixed mobile header. */
.oras-stop-card,.oras-add-stop-zone,.ocb-step-panel[data-step="2"] .ocb-form-card,.ocb-step-panel[data-step="3"] .ocb-review-card{
    scroll-margin-top:170px;
}

@media(max-width:767px){
    /* Booking Details: cleaner, calmer mobile rhythm. */
    body.oras-ui-active .oras-add-stop-zone{margin:18px 0 22px!important}
    body.oras-ui-active .oras-preview-banner{padding:12px 14px!important;font-size:13px!important;line-height:1.45!important}
    body.oras-ui-active .oras-route-note{padding:14px!important;font-size:13px!important;line-height:1.5!important}
    body.oras-ui-active .oras-add-stop{min-height:52px!important;padding:13px 14px!important;font-size:16px!important;border-radius:10px!important}
    body.oras-ui-active .oras-stop-card{border-radius:10px!important;padding:16px 14px!important;margin-bottom:14px!important}
    body.oras-ui-active .oras-stop-title-wrap{gap:8px!important}
    body.oras-ui-active .oras-stop-heading{font-size:17px!important;line-height:1.25!important}
    body.oras-ui-active .oras-stop-badge{width:28px!important;height:28px!important}
    body.oras-ui-active .oras-stop-actions{width:100%!important;justify-content:flex-start!important;margin-top:2px!important}
    body.oras-ui-active .oras-stop-actions .oras-mini{min-height:44px!important;padding:9px 12px!important;font-size:13px!important}
    body.oras-ui-active .oras-type-row{margin:4px 0 16px!important}
    body.oras-ui-active .oras-type-label{font-size:13px!important;margin-bottom:2px!important}
    body.oras-ui-active .oras-stop-type{min-height:44px!important;font-size:13px!important}
    body.oras-ui-active .oras-stop-card .ocb-cs-grid{gap:7px!important;margin-bottom:13px!important}
    body.oras-ui-active .oras-stop-card .ocb-cs-grid>label,
    body.oras-ui-active .oras-stop-card .ocb-cs-grid-postcode>label{font-size:13px!important;line-height:1.35!important}
    body.oras-ui-active .oras-stop-card .ocb-field,
    body.oras-ui-active .oras-stop-card .ocb-textarea{font-size:16px!important;line-height:1.35!important;min-height:46px!important}
    body.oras-ui-active .oras-stop-card textarea.ocb-field{min-height:88px!important}
    body.oras-ui-active .oras-find-address{width:100%!important;min-height:48px!important;font-size:13px!important}

    body.oras-ui-active .oras-route-summary{grid-template-columns:1fr!important;gap:0!important;padding:8px 12px!important;border-radius:10px!important}
    body.oras-ui-active .oras-route-summary>span{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:center!important;padding:9px 0!important;border-bottom:1px solid #e8edf2!important;font-size:13px!important;line-height:1.35!important}
    body.oras-ui-active .oras-route-summary>span:last-child{border-bottom:0!important}
    body.oras-ui-active .oras-route-summary strong{text-align:right!important;font-size:13px!important;font-weight:700!important;white-space:normal!important}
    body.oras-ui-active .oras-route-status{padding:12px 14px!important;border-radius:10px!important;font-size:13px!important;line-height:1.5!important}
    body.oras-ui-active .oras-stop-time-note{font-size:12px!important;line-height:1.45!important}

    /* Review & Book: use a true mobile information hierarchy. */
    body.oras-has-stops .ocb-review-header{margin-bottom:14px!important}
    body.oras-has-stops .ocb-review-header-content{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;align-items:start!important}
    body.oras-has-stops .ocb-review-header h1{font-size:24px!important;line-height:1.15!important;margin-bottom:4px!important}
    body.oras-has-stops .ocb-review-header p{font-size:13px!important;line-height:1.45!important}
    body.oras-has-stops .ocb-btn-edit-details{width:100%!important;min-height:44px!important;margin:0!important}
    body.oras-has-stops .ocb-review-grid{gap:12px!important}
    body.oras-has-stops .ocb-review-card{padding:16px 14px!important;border-radius:11px!important}
    body.oras-has-stops .ocb-review-card h3{font-size:18px!important;line-height:1.25!important;margin:0 0 10px!important}

    body.oras-has-stops .ocb-review-item,
    body.oras-has-stops .oras-review-inline-stop,
    body.oras-has-stops .oras-review-inline-total{
        grid-template-columns:1fr!important;
        gap:4px!important;
        padding:10px 0!important;
    }
    body.oras-has-stops .ocb-r-label,
    body.oras-has-stops .oras-review-stop-label,
    body.oras-has-stops .oras-review-inline-total strong{
        font-size:12px!important;
        line-height:1.35!important;
        font-weight:700!important;
        color:#363d43!important;
        margin:0!important;
    }
    body.oras-has-stops .ocb-r-value,
    body.oras-has-stops .ocb-r-value-group,
    body.oras-has-stops .ocb-r-address,
    body.oras-has-stops .ocb-r-contact,
    body.oras-has-stops .ocb-r-date,
    body.oras-has-stops .oras-review-stop-address,
    body.oras-has-stops .oras-review-stop-detail,
    body.oras-has-stops .oras-review-stop-note,
    body.oras-has-stops .oras-review-inline-total span{
        font-size:13px!important;
        line-height:1.45!important;
        font-weight:400!important;
        margin:0!important;
    }
    body.oras-has-stops .ocb-r-value-group{display:grid!important;gap:3px!important}
    body.oras-has-stops .oras-review-inline-stop{border-top:1px solid #edf2f7!important}
    body.oras-has-stops .oras-review-inline-total{margin-top:0!important;padding-top:12px!important}

    /* Promo/price/terms: compact but still easy to tap. */
    body.oras-has-stops .ocb-promo-section{padding:14px!important;margin:14px 0!important}
    body.oras-has-stops .ocb-promo-section h3{font-size:17px!important;margin-bottom:10px!important}
    body.oras-has-stops .ocb-promo-input-group{grid-template-columns:1fr!important;gap:9px!important}
    body.oras-has-stops #promo_code_input,
    body.oras-has-stops #ocb_apply_promo_btn{width:100%!important;min-height:48px!important;font-size:15px!important}
    body.oras-has-stops .ocb-price-box{padding:18px 16px!important;margin:14px 0!important}
    body.oras-has-stops .ocb-price-box .ocb-price-total{font-size:18px!important}
    body.oras-has-stops .ocb-price-box p,
    body.oras-has-stops .ocb-price-box .ocb-price-note{font-size:12px!important;line-height:1.45!important}
    body.oras-has-stops .ocb-terms .ocb-checkbox{font-size:14px!important;line-height:1.35!important;gap:9px!important}

    /* Mobile browser chrome safety: both Booking Details and Review & Book.
       Extra scroll room is intentional; it ensures Safari/ChatGPT in-app browser
       toolbars never cover Next or Pay Securely & Book. */
    body.oras-has-stops .ocb-step-panel[data-step="2"],
    body.oras-has-stops .ocb-step-panel[data-step="3"]{
        padding-bottom:max(260px, calc(190px + env(safe-area-inset-bottom, 0px)))!important;
    }
    body.oras-has-stops .ocb-step-panel[data-step="2"] .ocb-step-nav,
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav{
        position:relative!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
        width:100%!important;
        margin:18px 0 max(180px, calc(120px + env(safe-area-inset-bottom, 0px)))!important;
        padding:0!important;
        background:transparent!important;
        box-shadow:none!important;
    }
    body.oras-has-stops .ocb-step-panel[data-step="2"] .ocb-step-nav .ocb-btn,
    body.oras-has-stops .ocb-step-panel[data-step="2"] .ocb-step-nav button,
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav .ocb-btn,
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav button,
    body.oras-has-stops .ocb-step-panel[data-step="3"] .ocb-step-nav input[type="submit"]{
        width:100%!important;
        max-width:none!important;
        min-height:54px!important;
        margin:0!important;
        padding:13px 16px!important;
        border-radius:10px!important;
        font-size:16px!important;
        line-height:1.25!important;
        white-space:normal!important;
    }
}

@media(max-width:420px){
    body.oras-ui-active .oras-preview-banner,
    body.oras-ui-active .oras-route-note{font-size:12.5px!important}
    body.oras-ui-active .oras-route-summary{padding:7px 10px!important}
    body.oras-has-stops .ocb-review-card{padding:14px 12px!important}
    body.oras-has-stops .ocb-review-card h3{font-size:17px!important}
    body.oras-has-stops .ocb-r-value,
    body.oras-has-stops .ocb-r-value-group,
    body.oras-has-stops .ocb-r-address,
    body.oras-has-stops .ocb-r-contact,
    body.oras-has-stops .ocb-r-date,
    body.oras-has-stops .oras-review-stop-address,
    body.oras-has-stops .oras-review-stop-detail,
    body.oras-has-stops .oras-review-stop-note,
    body.oras-has-stops .oras-review-inline-total span{font-size:12.5px!important}
}

/* BEGIN v0.6.6-dev presentation refinement. Remove this block to undo styling.
 * Desktop only: preserve the existing <=767px mobile rules and all UI states. */
@media (min-width:768px) {
    body.oras-ui-active .elementor-widget-shortcode:has(.ocb-booking-wrapper) {
        width:100%!important;
        max-width:1200px!important;
        align-self:center;
        margin-inline:auto;
    }
    body.oras-ui-active .ocb-booking-wrapper {
        box-sizing:border-box;
        width:100%!important;
        max-width:1200px!important;
        margin-inline:auto;
        container-type:inline-size;
        container-name:oras-booking;
    }
    body.oras-ui-active .ocb-step-panel[data-step="2"] .ocb-booking-layout {
        width:100%!important;
        max-width:none!important;
        grid-template-columns:minmax(0,1fr)!important;
        gap:24px!important;
    }
    body.oras-ui-active .ocb-booking-main {min-width:0;}
    body.oras-ui-active .oras-add-stop-zone {
        container-type:inline-size;
        container-name:oras-stops;
        margin:0 0 20px;
        min-width:0;
    }
    body.oras-ui-active .oras-route-note {margin-bottom:16px;padding:12px 16px;}
    body.oras-ui-active .oras-stop-card {padding:20px!important;margin:0 0 16px!important;}
    body.oras-ui-active .oras-stop-head {flex-wrap:wrap;gap:10px;margin-bottom:12px;}
    body.oras-ui-active .oras-stop-title-wrap {min-width:0;}
    body.oras-ui-active .oras-stop-actions {flex-wrap:wrap;gap:6px;}
    body.oras-ui-active .oras-type-row {gap:8px;margin-bottom:14px;}
    body.oras-ui-active .oras-stop-card .ocb-cs-grid {
        grid-template-columns:140px minmax(0,1fr);
        gap:10px 14px;margin-bottom:12px;
    }
    body.oras-ui-active .oras-stop-card .ocb-cs-grid>label {line-height:1.4;}
    body.oras-ui-active .oras-stop-card .ocb-cs-grid-postcode {min-width:0;gap:8px;}
    body.oras-ui-active .oras-stop-card .ocb-field {box-sizing:border-box;width:100%;max-width:100%;}
    body.oras-ui-active .oras-add-stop {
        box-sizing:border-box;min-height:46px;padding:10px 16px;
        border:1px solid var(--ocb-primary,#d63031);border-radius:9px;
        font-size:14px;line-height:1.5;font-weight:700;text-align:center;
        box-shadow:0 2px 5px rgba(23,32,42,.04);
        transition:background-color .18s ease,box-shadow .18s ease;
    }
    body.oras-ui-active .oras-add-stop:hover {
        background:#fff3f3;box-shadow:0 3px 9px rgba(214,48,49,.1);
    }
    body.oras-ui-active .oras-route-summary {
        grid-template-columns:repeat(2,minmax(0,1fr));
        align-items:stretch;gap:1px;padding:0;margin-top:12px;
        background:#e6ebf0;overflow:hidden;
    }
    body.oras-ui-active .oras-route-summary>span {
        display:flex;flex-direction:column;align-items:flex-start;
        justify-content:flex-start;gap:4px;min-width:0;min-height:0;
        padding:12px 14px;border:0;background:#f8f9fb;
        font-size:12px;line-height:1.45;overflow-wrap:anywhere;
    }
    body.oras-ui-active .oras-route-summary strong {
        display:block;margin:0;font-size:14px;line-height:1.4;text-align:left;
        white-space:normal;overflow-wrap:anywhere;
    }
    body.oras-ui-active .oras-route-status {margin-top:10px;}
    body.oras-ui-active .oras-route-status.is-ok {padding:8px 12px;font-size:12px;line-height:1.45;}
    body.oras-ui-active .oras-stop-time-note {margin:8px 2px 0;line-height:1.45;}
    body.oras-ui-active .oras-add-stop-zone + .ocb-form-card {margin-top:0!important;}
    @container oras-booking (min-width:1080px) {
        body.oras-ui-active .ocb-step-panel[data-step="2"] .ocb-booking-layout {
            grid-template-columns:minmax(0,1fr) 260px!important;
        }
    }
    @media (min-width:1100px) {
    @container oras-stops (min-width:700px) {
        body.oras-ui-active .oras-route-summary {grid-template-columns:repeat(4,minmax(0,1fr));}
    }
    }
    @container oras-stops (max-width:599px) {
        body.oras-ui-active .oras-stop-card .ocb-cs-grid {grid-template-columns:minmax(0,1fr);gap:6px;}
        body.oras-ui-active .oras-stop-card .ocb-cs-grid-postcode {grid-template-columns:minmax(0,1fr);}
    }
}
/* END v0.6.6-dev presentation refinement. */
