.stb-wrap{
    max-width:920px;
    margin:30px auto;
}

.stb-card{
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:18px;
    padding:30px;
    box-shadow:0 14px 40px rgba(15,23,42,.08);
}

.stb-heading h2{
    margin:0 0 7px;
    font-size:31px;
    line-height:1.2;
    color:#0f172a;
}

.stb-heading p{
    margin:0 0 25px;
    color:#64748b;
}

.stb-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.stb-grid label{
    display:flex;
    flex-direction:column;
    gap:7px;
    font-weight:650;
    color:#1e293b;
}

.stb-grid label span{
    color:#dc2626;
}

.stb-grid input,
.stb-grid select,
.stb-grid textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid #cbd5e1;
    border-radius:10px;
    padding:12px 13px;
    background:#fff;
    font:inherit;
    color:#0f172a;
    transition:border-color .15s,box-shadow .15s,background .15s;
}

.stb-grid input:focus,
.stb-grid select:focus,
.stb-grid textarea:focus{
    outline:0;
    border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,.13);
}

.stb-full{
    grid-column:1/-1;
}

.stb-primary,
.stb-action{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    border:0;
    border-radius:10px;
    background:#0f172a;
    color:#fff!important;
    padding:13px 20px;
    font-weight:750;
    text-decoration:none;
    cursor:pointer;
    margin-top:20px;
}

.stb-primary{
    width:100%;
    font-size:16px;
}

.stb-primary:disabled,
.stb-action:disabled{
    opacity:.6;
    cursor:wait;
}

.stb-secondary{
    background:#475569;
}

.stb-result{
    margin-top:22px;
    border-radius:12px;
    padding:20px;
}

.stb-success{
    background:#f0fdf4;
    border:1px solid #bbf7d0;
}

.stb-error{
    background:#fef2f2;
    border:1px solid #fecaca;
    color:#991b1b;
}

.stb-result-label{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#15803d;
    font-weight:750;
}

.stb-price{
    font-size:36px;
    font-weight:850;
    line-height:1.1;
    margin:6px 0;
}

.stb-breakdown,
.stb-vehicle-used,
.stb-route-used,
.stb-route-detected{
    margin-top:8px;
    color:#475569;
    font-size:14px;
}

.stb-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.stb-smart-route-status{
    margin-top:20px;
    padding:14px 16px;
    border-radius:11px;
    font-size:14px;
    line-height:1.45;
}

.stb-smart-route-status.is-loading{
    background:#f8fafc;
    border:1px solid #e2e8f0;
    color:#475569;
}

.stb-smart-route-status.is-fixed{
    background:#f0fdf4;
    border:1px solid #bbf7d0;
    color:#166534;
}

.stb-smart-route-status.is-manual{
    background:#fff7ed;
    border:1px solid #fed7aa;
    color:#9a3412;
}

.stb-smart-route-status>div:first-child{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
}

.stb-preview-price{
    font-size:22px;
    font-weight:850;
    color:#15803d;
}

.stb-spinner{
    display:inline-block;
    width:13px;
    height:13px;
    margin-right:8px;
    border:2px solid #cbd5e1;
    border-top-color:#475569;
    border-radius:50%;
    vertical-align:-2px;
    animation:stb-spin .8s linear infinite;
}

@keyframes stb-spin{to{transform:rotate(360deg)}}

.stb-secure{
    text-align:center;
    color:#64748b;
    font-size:13px;
    margin-top:11px;
}

.stb-alert{
    padding:15px;
    border-radius:9px;
    margin-bottom:18px;
}

.stb-alert-error{
    background:#fef2f2;
    border:1px solid #fecaca;
    color:#991b1b;
}

.stb-alert-warning{
    background:#fffbeb;
    border:1px solid #fde68a;
    color:#92400e;
}

.stb-hidden{
    display:none!important;
}

.stb-booking-form [hidden]{
    display:none!important;
}

/* Google Places address search — no customer-facing map is displayed. */
.stb-google-place-host{
    display:none;
    width:100%;
}

.stb-google-ready .stb-google-place-host{
    display:block;
}

.stb-google-fallback-hidden{
    display:none!important;
}

.stb-google-place-host gmp-place-autocomplete{
    display:block;
    width:100%;
    min-height:48px;
    color-scheme:light;
}

.stb-google-status{
    display:block;
    margin-top:7px;
    font-size:12px;
    font-weight:650;
    line-height:1.35;
}

.stb-google-status.is-success{color:#15803d}
.stb-google-status.is-error{color:#b91c1c}
.stb-google-status.is-loading{color:#475569}

.stb-google-invalid .stb-google-place-host,
.stb-google-invalid .stb-google-fallback{
    outline:2px solid #ef4444;
    outline-offset:2px;
    border-radius:8px;
}

@media(max-width:700px){
    .stb-wrap{margin:18px auto}
    .stb-card{padding:20px}
    .stb-grid{grid-template-columns:1fr}
    .stb-full{grid-column:auto}
    .stb-heading h2{font-size:26px}
    .stb-smart-route-status>div:first-child{align-items:flex-start;flex-direction:column}
}


/* Ride preference cards */
.stb-ride-choice{
    border:0;
    padding:0;
    margin:0 0 22px;
}
.stb-ride-choice legend{
    margin:0 0 9px;
    padding:0;
    color:#1e293b;
    font-weight:750;
}
.stb-ride-choice legend span{color:#dc2626}
.stb-ride-options{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.stb-ride-option{
    position:relative;
    display:flex;
    align-items:center;
    gap:11px;
    border:1px solid #cbd5e1;
    border-radius:12px;
    padding:14px 16px;
    cursor:pointer;
    background:#fff;
    transition:border-color .15s,box-shadow .15s,background .15s;
}
.stb-ride-option:hover{
    border-color:#64748b;
}
.stb-ride-option:has(input:checked){
    border-color:#0f172a;
    box-shadow:0 0 0 2px rgba(15,23,42,.09);
    background:#f8fafc;
}
.stb-ride-option input{
    width:18px;
    height:18px;
    margin:0;
    flex:0 0 auto;
}
.stb-ride-option span{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.stb-ride-option strong{
    color:#0f172a;
    font-size:15px;
}
.stb-ride-option small,
.stb-field-help{
    color:#64748b;
    font-size:12px;
    line-height:1.4;
    font-weight:500;
}
.stb-google-invalid .stb-google-place-host gmp-place-autocomplete,
.stb-google-invalid .stb-google-fallback{
    outline:2px solid #dc2626;
    outline-offset:1px;
}

@media (max-width:700px){
    .stb-ride-options{grid-template-columns:1fr}
}

/* v3.4.0: both Private Ride and Shared Ride are visible selectable cards. */
.stb-return-location.stb-hidden,
.stb-return-date.stb-hidden,
.stb-return-time.stb-hidden{
    display:none!important;
}

.stb-vehicle-used{
    margin-top:10px;
    color:#166534;
}
.stb-vehicle-used strong{font-weight:800}
.stb-vehicle-capacity{color:#475569}
