* { box-sizing: border-box; margin: 0; padding: 0; }
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #fff;
    color: #1c1f26;
}

/* ===== Utility bar (thin, top) ===== */
.tw-utility-bar {
    background:#1a1a1a; padding:9px 28px;
    display:flex; align-items:center; justify-content:flex-end; gap:14px;
    font-size:12px;
}
.tw-lang-select-small {
    background:transparent; color:rgba(255,255,255,.65); border:1px solid #3a3a3a;
    border-radius:5px; padding:3px 8px; font-size:11.5px; cursor:pointer;
}
.tw-utility-divider { width:1px; height:14px; background:rgba(255,255,255,.15); }
.tw-utility-bar a { color:rgba(255,255,255,.8); text-decoration:none; font-weight:600; }
.tw-utility-bar a:hover { color:#fff; }
.tw-utility-highlight { color:#e8b93c !important; }
.tw-utility-muted { color:rgba(255,255,255,.45) !important; font-weight:400 !important; }
.tw-utility-badge {
    background:rgba(232,185,60,.12); color:#e8b93c; font-weight:700;
    padding:4px 12px; border-radius:20px; font-size:11.5px;
}

/* ===== Main brand header ===== */
.tw-header {
    background:#0d0d0d; color:#fff; padding:20px 28px 24px;
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
}
.tw-logo { font-size:26px; font-weight:900; letter-spacing:.5px; }
.tw-logo-gold { color:#e8b93c; }
.tw-logo-blue { color:#3b82f6; }
.tw-tagline { color:#e8b93c; font-size:12.5px; font-weight:800; text-align:right; line-height:1.6; letter-spacing:.4px; }

.tw-header-rule { height:3px; background:linear-gradient(90deg, #e8b93c, #3b82f6); }

/* ===== Main two-column layout ===== */
.tw-main {
    display: flex; gap: 0; align-items: stretch; min-height: 640px;
}
.tw-form-col { flex: 0 0 46%; max-width: 46%; padding: 30px; }
.tw-map-col { flex: 1; position: sticky; top: 0; align-self: stretch; }
#tw-map { width: 100%; height: 100%; min-height: 640px; }

@media (max-width: 880px) {
    .tw-main { flex-direction: column; }
    .tw-form-col { flex: 1 1 auto; max-width: 100%; }
    #tw-map { min-height: 360px; }
}

.tw-form-card { max-width: 620px; }

/* ===== Trip toggle (radio style) ===== */
.tw-trip-toggle { display: flex; gap: 24px; margin-bottom: 20px; }
.tw-trip-toggle label { display: flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14.5px; cursor: pointer; }
.tw-trip-toggle input[type="radio"] { width: 16px; height: 16px; accent-color: #1e88e5; }

/* ===== Sections ===== */
.tw-section { margin-bottom: 20px; }
.tw-section-title {
    font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px;
    color: #1e88e5; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #eee;
}
.tw-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tw-grid.cols-3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 520px) { .tw-grid, .tw-grid.cols-3 { grid-template-columns: 1fr; } }

.tw-field label { display: block; font-size: 12px; font-weight: 700; color: #444; margin-bottom: 5px; }
.tw-field input, .tw-field select, .tw-field textarea {
    width: 100%; padding: 10px 11px; border: 1px solid #dcdfe4; border-radius: 7px;
    font-size: 13.5px; font-family: inherit; background: #fff;
}
.tw-field input:focus, .tw-field select:focus, .tw-field textarea:focus {
    outline: none; border-color: #1e88e5;
}
.tw-checkbox-field { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; }
.tw-checkbox-field input { width: auto; }

/* ===== Promo code ===== */
.tw-promo-row { display: flex; gap: 8px; }
.tw-promo-row input { flex: 1; }
.tw-promo-btn {
    padding: 0 18px; background: #0d0d0d; color: #e8b93c; border: none; border-radius: 7px;
    font-size: 12.5px; font-weight: 800; letter-spacing: .3px; cursor: pointer; white-space: nowrap;
}
.tw-promo-btn:hover { background: #1a1a1a; }
.tw-promo-btn:disabled { opacity: .6; cursor: default; }
.tw-promo-message { font-size: 12px; margin-top: 6px; min-height: 14px; }
.tw-promo-message.valid { color: #2e7d32; font-weight: 700; }
.tw-promo-message.invalid { color: #c62828; font-weight: 700; }

/* ===== Fare box ===== */
.tw-fare-box {
    background: #0d0d0d; border-radius: 10px; padding: 18px; text-align: center; margin: 22px 0;
    border: 1px solid #e8b93c;
}
.tw-fare-label { font-size: 11.5px; color: #3b82f6; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; }
.tw-fare-amount { font-size: 32px; font-weight: 900; margin: 4px 0; color: #fff; }
.tw-fare-note { font-size: 12px; color: #9aa0aa; }

/* ===== Submit button ===== */
.tw-submit-btn {
    width: 100%; padding: 15px; background: #e8b93c; color: #0d0d0d; border: none;
    border-radius: 10px; font-size: 15px; font-weight: 900; letter-spacing: .5px; cursor: pointer;
}
.tw-submit-btn:hover { background: #d4a730; }
.tw-submit-btn:disabled { opacity: .6; cursor: default; }

.tw-error-box { background: #fdecea; color: #c62828; padding: 12px 14px; border-radius: 8px; font-size: 13.5px; margin-bottom: 16px; }
.tw-success-box { background: #e8f5e9; color: #2e7d32; padding: 16px; border-radius: 10px; font-size: 14px; }

/* ===== Footer ===== */
.tw-footer {
    background: #0d0d0d; color: #fff; display: flex; justify-content: center; gap: 90px;
    padding: 36px 20px 20px; flex-wrap: wrap; text-align: center;
}
.tw-footer-col { font-size: 13.5px; }
.tw-footer-title { color: #e8b93c; font-weight: 800; font-size: 12.5px; text-transform: uppercase; margin-bottom: 8px; letter-spacing: .5px; }
.tw-footer-col a { color: #fff; text-decoration: none; }
.tw-footer-col a:hover { color: #e8b93c; }
.tw-copyright { background: #0d0d0d; color: rgba(255,255,255,.4); text-align: center; font-size: 12px; padding: 0 20px 24px; }

/* Simple booking form (fallback pages: thank-you, errors) */
.tw-form-wrap { max-width: 640px; margin: 40px auto; padding: 0 16px; }

/* ===== Hero ===== */
.tw-hero {
    background: radial-gradient(circle at 82% 30%, rgba(232,185,60,.10), transparent 55%), #0d0d0d;
    padding: 40px 28px 34px;
}
.tw-hero-inner {
    max-width: 1180px; margin: 0 auto;
    display: flex; align-items: center; justify-content: space-between; gap: 40px;
}
.tw-hero-copy { flex: 1 1 480px; max-width: 620px; }
.tw-hero-airports { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tw-airport-badge {
    border: 1px solid rgba(232,185,60,.5); color: #e8b93c; font-weight: 800; font-size: 12px;
    letter-spacing: .5px; padding: 4px 12px; border-radius: 20px;
}
.tw-hero-headline { color: #fff; font-size: 30px; font-weight: 900; line-height: 1.25; margin-bottom: 10px; }
.tw-hero-subheadline { color: rgba(255,255,255,.65); font-size: 14.5px; line-height: 1.6; margin-bottom: 22px; max-width: 480px; }
.tw-trust-badges { display: flex; flex-wrap: wrap; gap: 18px 26px; }
.tw-trust-badge { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.85); font-size: 12.5px; font-weight: 700; }
.tw-trust-badge svg { width: 19px; height: 19px; color: #e8b93c; flex: 0 0 auto; }
.tw-hero-art { flex: 0 0 auto; width: 380px; max-width: 40vw; }
.tw-hero-art svg { width: 100%; height: auto; display: block; }

@media (max-width: 880px) {
    .tw-hero-inner { flex-direction: column; align-items: flex-start; gap: 24px; }
    .tw-hero-art { width: 100%; max-width: 320px; align-self: center; }
    .tw-hero-headline { font-size: 24px; }
}

/* ===== Partner / wholesale-rates banner ===== */
.tw-partner-banner {
    background: #16181c; color: #fff; text-align: center;
    padding: 12px 20px; font-size: 13px; font-weight: 600;
    display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap;
}
.tw-partner-banner a {
    color: #e8b93c; font-weight: 800; text-decoration: none;
}
.tw-partner-banner a:hover { text-decoration: underline; }

/* ===== Booking progress stepper ===== */
.tw-stepper { display: flex; align-items: center; margin-bottom: 22px; }
.tw-step { display: flex; align-items: center; gap: 8px; opacity: .45; transition: opacity .15s ease; }
.tw-step.active { opacity: 1; }
.tw-step-num {
    width: 22px; height: 22px; border-radius: 50%; background: #eceff1; color: #666;
    display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 800;
    flex: 0 0 auto; transition: background .15s ease, color .15s ease;
}
.tw-step.active .tw-step-num { background: #0d0d0d; color: #e8b93c; }
.tw-step-label { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .3px; color: #444; white-space: nowrap; }
.tw-step-line { flex: 1 1 auto; height: 2px; background: #eceff1; margin: 0 10px; }
@media (max-width: 560px) {
    .tw-step-label { display: none; }
    .tw-step-line { margin: 0 6px; }
}

/* ===== Vehicle class cards ===== */
.tw-vehicle-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin-top: 4px; }
.tw-vehicle-card {
    border: 1.5px solid #dcdfe4; border-radius: 10px; padding: 14px 10px; text-align: center;
    cursor: pointer; transition: border-color .15s ease, background .15s ease, transform .1s ease;
}
.tw-vehicle-card:hover { border-color: #e8b93c; }
.tw-vehicle-card:focus-visible { outline: 2px solid #1e88e5; outline-offset: 2px; }
.tw-vehicle-card.active { border-color: #e8b93c; background: #fdf8ec; }
.tw-vehicle-card.active:active { transform: scale(.98); }
.tw-vehicle-icon { color: #0d0d0d; height: 34px; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.tw-vehicle-card.active .tw-vehicle-icon { color: #c8931f; }
.tw-vehicle-icon svg { width: 100%; height: 100%; }
.tw-vehicle-name { font-size: 12.5px; font-weight: 800; color: #1c1f26; margin-bottom: 3px; }
.tw-vehicle-capacity { font-size: 11px; color: #8a8f98; display: flex; align-items: center; justify-content: center; gap: 4px; }
.tw-vehicle-capacity svg { width: 12px; height: 12px; flex: 0 0 auto; }
.tw-field-note { font-size: 11.5px; color: #8a8f98; margin-top: 6px; }

/* ===== Offer list (marketplace: fleet + vehicle + price + rating) ===== */
.tw-offer-list { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.tw-offer-placeholder, .tw-offer-empty {
    font-size: 12.5px; color: #8a8f98; padding: 16px 14px; text-align: center;
    border: 1.5px dashed #dcdfe4; border-radius: 10px;
}
.tw-offer-empty { color: #a04b3f; border-color: #f0c4bb; background: #fdf3f1; }
.tw-offer-card {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    border: 1.5px solid #dcdfe4; border-radius: 10px; cursor: pointer;
    transition: border-color .15s ease, background .15s ease, transform .1s ease;
}
.tw-offer-card:hover { border-color: #e8b93c; }
.tw-offer-card:focus-visible { outline: 2px solid #1e88e5; outline-offset: 2px; }
.tw-offer-card.active { border-color: #e8b93c; background: #fdf8ec; }
.tw-offer-card.active:active { transform: scale(.99); }
.tw-offer-icon { color: #0d0d0d; width: 40px; height: 30px; flex: 0 0 auto; }
.tw-offer-card.active .tw-offer-icon { color: #c8931f; }
.tw-offer-icon svg { width: 100%; height: 100%; }
.tw-offer-info { flex: 1; min-width: 0; }
.tw-offer-vehicle-name { font-size: 13px; font-weight: 800; color: #1c1f26; }
.tw-offer-fleet-row { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: #6b7280; margin-top: 2px; flex-wrap: wrap; }
.tw-offer-rating { color: #c8931f; font-weight: 700; white-space: nowrap; }
.tw-offer-capacity { font-size: 11px; color: #8a8f98; display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.tw-offer-capacity svg { width: 12px; height: 12px; flex: 0 0 auto; }
.tw-offer-price-col { text-align: right; flex: 0 0 auto; }
.tw-offer-price { font-size: 15px; font-weight: 900; color: #1c1f26; white-space: nowrap; }
.tw-offer-price-note { font-size: 10px; color: #9aa0aa; }
.tw-offer-best-badge {
    display: inline-block; font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px;
    color: #2e7d32; background: #e8f5e9; padding: 2px 6px; border-radius: 20px; margin-left: 6px;
}

/* ===== Trust strip (near Reserve button) ===== */
.tw-trust-strip {
    display: flex; flex-wrap: wrap; gap: 10px 18px; justify-content: center;
    font-size: 11.5px; font-weight: 700; color: #444; margin-bottom: 16px;
}
.tw-trust-strip span { display: flex; align-items: center; gap: 5px; }
.tw-trust-strip svg { width: 15px; height: 15px; color: #2e7d32; flex: 0 0 auto; }
