.tsb-form-shell,.tsb-elementor-hero,.tsb-route-widget{font-family:'Aptos','Segoe UI',Arial,sans-serif;font-stretch:normal;font-style:normal}.tsb-form-shell{--navy:#071a2c;--aqua:#33e6cf;--coral:#ff6b5f;--sky:#eaf8ff;max-width:1040px;margin:0 auto;background:#fff;border:1px solid #dceaf0;border-radius:32px;box-shadow:0 24px 70px rgba(7,26,44,.12);overflow:hidden}.tsb-form-intro{padding:42px 48px;background:var(--navy);color:#fff;position:relative}.tsb-form-intro:after{content:"";position:absolute;width:220px;height:220px;border:2px dashed rgba(51,230,207,.35);border-radius:50%;right:-80px;top:-130px}.tsb-form-intro>span{color:var(--aqua);text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:900}.tsb-form-intro h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1;margin:12px 0}.tsb-form-intro p{color:#c3d8e2;max-width:720px;margin:0}.tsb-booking-form{padding:0 48px 46px}.tsb-form-section{display:grid;grid-template-columns:70px 1fr;gap:26px;padding:42px 0;border-bottom:1px solid #dbe8ee}.tsb-form-section:last-child{border-bottom:0}.tsb-section-number{width:58px;height:58px;border-radius:18px;background:var(--aqua);display:grid;place-items:center;font-weight:900;color:var(--navy)}.tsb-section-content h3{margin:8px 0 24px;font-size:1.45rem}.tsb-grid{display:grid;gap:18px}.tsb-grid--2{grid-template-columns:repeat(2,1fr)}.tsb-grid--3{grid-template-columns:repeat(3,1fr)}.tsb-span-2{grid-column:1/-1}.tsb-booking-form label>span{display:block;font-size:.78rem;font-weight:900;letter-spacing:.03em;margin-bottom:7px;color:#243e50}.tsb-booking-form input,.tsb-booking-form select,.tsb-booking-form textarea{width:100%;border:1px solid #cbdde5;border-radius:13px;background:#f8fcfd;padding:13px 14px;font:inherit;color:#102538;outline:0}.tsb-booking-form input:focus,.tsb-booking-form select:focus,.tsb-booking-form textarea:focus{border-color:var(--aqua);box-shadow:0 0 0 4px rgba(51,230,207,.18)}.tsb-consent{display:flex!important;gap:10px;align-items:flex-start;margin:22px 0}.tsb-consent input{width:auto;margin-top:5px}.tsb-consent span{font-weight:600!important}.tsb-submit{border:0;background:var(--coral);color:#fff;min-height:54px;padding:0 24px;border-radius:999px;font:inherit;font-weight:900;cursor:pointer}.tsb-submit:disabled{opacity:.7}.tsb-form-note{font-size:.78rem;color:#62798a}.tsb-notice{margin:24px 48px 0;padding:16px 18px;border-radius:14px}.tsb-notice--success{background:#dff9ef;color:#075b43}.tsb-notice--error{background:#ffe7e5;color:#84251e}.tsb-hp{position:absolute!important;left:-9999px!important}.tsb-admin-detail{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tsb-admin-detail>div{padding:14px;background:#f6fafc;border-radius:8px}.tsb-admin-detail strong,.tsb-admin-detail span{display:block}.tsb-admin-detail span{margin-top:5px}.tsb-elementor-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center;background:#eaf8ff;padding:70px;border-radius:38px;overflow:hidden;position:relative}.tsb-elementor-hero__copy>span{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#16786f}.tsb-elementor-hero h2{font-size:clamp(3rem,6vw,6rem);line-height:.92;letter-spacing:-.025em;margin:18px 0}.tsb-elementor-hero h2 em{font-style:normal}.tsb-elementor-hero__button{display:inline-flex;padding:15px 22px;border-radius:999px;color:#fff;text-decoration:none;font-weight:900;margin-top:18px}.tsb-elementor-ticket{background:#071a2c;color:#fff;padding:30px;border-radius:26px;transform:rotate(2deg);box-shadow:0 28px 70px rgba(7,26,44,.25)}.tsb-elementor-ticket small,.tsb-elementor-ticket span,.tsb-elementor-ticket b{display:block}.tsb-elementor-ticket small{color:#33e6cf;letter-spacing:.09em}.tsb-elementor-ticket strong{display:block;font-size:3.2rem;margin:30px 0}.tsb-elementor-ticket strong i{color:#33e6cf;font-style:normal}.tsb-elementor-ticket span{color:#b9d1dc}.tsb-elementor-ticket b{margin-top:25px;color:#33e6cf}.tsb-route-widget>h2{font-size:clamp(2.2rem,4vw,4rem)}.tsb-route-widget__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tsb-route-widget__grid a{min-height:240px;padding:22px;border-radius:24px;text-decoration:none;color:#071a2c;background:#eaf8ff;display:flex;flex-direction:column;justify-content:space-between;transition:.2s}.tsb-route-widget__grid a:nth-child(2){background:#33e6cf}.tsb-route-widget__grid a:nth-child(3){background:#ffd166}.tsb-route-widget__grid a:nth-child(4){background:#ff7a70;color:#fff}.tsb-route-widget__grid a:nth-child(5){background:#f0eaff}.tsb-route-widget__grid a:nth-child(6){background:#071a2c;color:#fff}.tsb-route-widget__grid a:hover{transform:translateY(-5px)}.tsb-route-widget__grid b{font-size:3.2rem;opacity:.25}.tsb-route-widget__grid span{font-size:1.2rem;font-weight:900}.tsb-route-widget__grid i{font-style:normal;font-weight:800}@media(max-width:800px){.tsb-form-intro{padding:34px 24px}.tsb-booking-form{padding:0 24px 30px}.tsb-form-section{grid-template-columns:1fr}.tsb-grid--2,.tsb-grid--3{grid-template-columns:1fr}.tsb-span-2{grid-column:auto}.tsb-notice{margin:20px 24px 0}.tsb-elementor-hero{grid-template-columns:1fr;padding:36px 24px}.tsb-route-widget__grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.tsb-route-widget__grid{grid-template-columns:1fr}.tsb-admin-detail{grid-template-columns:1fr}}

/* Ride Request admin meta fields */
.tsb-admin-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:4px}.tsb-admin-fields .tsb-admin-field{padding:0;background:transparent;border-radius:0}.tsb-admin-fields .tsb-admin-field--wide{grid-column:1/-1}.tsb-admin-fields label{display:block;margin:0 0 7px}.tsb-admin-fields input,.tsb-admin-fields select,.tsb-admin-fields textarea{display:block;width:100%;max-width:none;box-sizing:border-box}.tsb-admin-fields input[readonly]{background:#f0f0f1;color:#50575e}.tsb-admin-fields textarea{min-height:92px;resize:vertical}@media(max-width:782px){.tsb-admin-fields{grid-template-columns:1fr}.tsb-admin-fields .tsb-admin-field--wide{grid-column:auto}}

/* Distance-based trip price calculator */
.tsb-section-lead{margin:-12px 0 22px;color:#5d7483}.tsb-form-section--price{background:linear-gradient(135deg,rgba(51,230,207,.08),rgba(234,248,255,.6));margin-left:-48px;margin-right:-48px;padding-left:48px;padding-right:48px}.tsb-price-calculator{border:1px solid #cfe6e7;border-radius:22px;background:#fff;padding:22px;box-shadow:0 14px 34px rgba(7,26,44,.07)}.tsb-price-calculator__actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tsb-calculate{border:0;background:#071a2c;color:#fff;min-height:50px;padding:0 20px;border-radius:999px;font:inherit;font-weight:900;cursor:pointer}.tsb-calculate:hover{background:#12344f}.tsb-calculate:disabled{opacity:.65;cursor:wait}.tsb-calculate.is-loading span{display:inline-block;animation:tsb-arrow-pulse .8s infinite alternate}.tsb-price-calculator__status{font-size:.86rem;font-weight:700;color:#496273}.tsb-price-result{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px;padding-top:20px;border-top:1px solid #dcebed}.tsb-price-result>div{padding:16px;border-radius:16px;background:#f4fbfc}.tsb-price-result small,.tsb-price-result strong{display:block}.tsb-price-result small{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#5d7483}.tsb-price-result strong{margin-top:7px;font-size:1.3rem;color:#071a2c}.tsb-price-result__fare{background:#33e6cf!important}.tsb-price-result__fare strong{font-size:1.8rem}.tsb-price-result>p{grid-column:1/-1;margin:0;color:#5d7483;font-size:.82rem}.tsb-price-disclaimer{margin:16px 0 0;color:#647b89;font-size:.78rem}.tsb-price-only-shell{max-width:900px}.tsb-price-only-form .tsb-form-section{border-bottom:0}.tsb-admin-price-fields{margin-bottom:12px}@keyframes tsb-arrow-pulse{from{transform:translateX(0)}to{transform:translateX(5px)}}@media(max-width:800px){.tsb-form-section--price{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}.tsb-price-result{grid-template-columns:1fr}.tsb-price-result>p{grid-column:auto}}

/* Pricing mode panels: Flat Rate, Distance Estimator, Call for Quote */
.tsb-pricing-badge{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;margin-bottom:16px;border-radius:999px;background:#eaf8ff;color:#071a2c;font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.tsb-flat-rate-display{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:20px;border-radius:18px;background:linear-gradient(135deg,#071a2c,#123f60);color:#fff}.tsb-flat-rate-display small,.tsb-flat-rate-display strong{display:block}.tsb-flat-rate-display small{font-size:.76rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#b9d8e8}.tsb-flat-rate-display strong{font-size:clamp(2.4rem,6vw,4rem);line-height:1;color:#33e6cf}.tsb-pricing-message{margin:18px 0 0;color:#4f6877;line-height:1.65}.tsb-call-quote-panel h4{margin:0;font-size:1.55rem;color:#071a2c}.tsb-quote-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.tsb-quote-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 20px;border:2px solid #071a2c;border-radius:999px;color:#071a2c;text-decoration:none;font-weight:900}.tsb-quote-button:hover{background:#eaf8ff;color:#071a2c}.tsb-quote-button--primary{background:#ff6b5f;border-color:#ff6b5f;color:#fff}.tsb-quote-button--primary:hover{background:#e9564b;border-color:#e9564b;color:#fff}@media(max-width:600px){.tsb-flat-rate-display{align-items:flex-start;flex-direction:column}.tsb-quote-actions{flex-direction:column}.tsb-quote-button{width:100%}}


/* Conditional round-trip itinerary fields */
.tsb-round-trip-fields{margin-top:8px;padding:22px;border:1px solid #cfe6e7;border-radius:20px;background:linear-gradient(135deg,#f3fbfd,#ffffff)}
.tsb-round-trip-fields[hidden],.tsb-admin-field[hidden]{display:none!important}
.tsb-round-trip-fields__header{margin-bottom:18px}
.tsb-round-trip-fields__header>span{display:block;color:#071a2c;font-size:1rem;font-weight:900}
.tsb-round-trip-fields__header p{margin:6px 0 0;color:#5d7483;font-size:.84rem;line-height:1.5}
.tsb-admin-field--round-trip{border-left:3px solid #33e6cf!important;padding-left:12px!important}
@media(max-width:800px){.tsb-round-trip-fields{padding:18px}}

/* Trip schedule fields placed inside Section 1 */
.tsb-trip-timing{padding:18px;border:1px solid #d8e8ee;border-radius:18px;background:#f8fcfd}
@media(max-width:800px){.tsb-trip-timing{padding:16px}}


/* Passenger-first pricing flow and passenger-based flat rates */
.tsb-passenger-capacity-note{margin:16px 0 0;color:#5d7483;font-size:.82rem;line-height:1.55}
.tsb-flat-rate-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.tsb-flat-rate-option{padding:16px;border:2px solid #dcebed;border-radius:16px;background:#f8fcfd;transition:border-color .2s,box-shadow .2s,transform .2s}
.tsb-flat-rate-option small,.tsb-flat-rate-option strong{display:block}
.tsb-flat-rate-option small{color:#526b7a;font-size:.75rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.tsb-flat-rate-option strong{margin-top:8px;color:#071a2c;font-size:1.7rem}
.tsb-flat-rate-option.is-selected{border-color:#33e6cf;box-shadow:0 0 0 3px rgba(51,230,207,.16);transform:translateY(-2px)}
.tsb-flat-rate-display span{display:block;margin-top:7px;font-weight:900;color:#fff}
@media(max-width:600px){.tsb-flat-rate-options{grid-template-columns:1fr}}

/* Adult + child passenger limit */
.tsb-passenger-total{display:flex;flex-direction:column;justify-content:center;min-height:74px;padding:13px 16px;border:1px solid #cfe6e7;border-radius:13px;background:#eefafb}.tsb-passenger-total>span{font-size:.72rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#496273}.tsb-passenger-total strong{display:block;margin-top:6px;font-size:1.35rem;color:#071a2c}.tsb-passenger-total b{font:inherit;color:#0d7a70}.tsb-passenger-limit-message{margin:12px 0 0;padding:11px 13px;border-radius:10px;background:#ffe7e5;color:#84251e;font-size:.84rem;font-weight:800}.tsb-passenger-limit-message[hidden]{display:none!important}

/* Separate booking confirmation page */
.tsb-confirmation-shell{--tsb-confirm-navy:#071a2c;--tsb-confirm-aqua:#33e6cf;--tsb-confirm-coral:#ff6b5f;max-width:1040px;margin:56px auto;padding:0;background:#fff;border:1px solid #dceaf0;border-radius:32px;box-shadow:0 24px 70px rgba(7,26,44,.12);overflow:hidden;font-family:'Aptos','Segoe UI',Arial,sans-serif;color:#102538}
.tsb-confirmation-header{padding:52px 56px 44px;background:var(--tsb-confirm-navy);color:#fff;text-align:center;position:relative;overflow:hidden}
.tsb-confirmation-header:after{content:"";position:absolute;width:260px;height:260px;border:2px dashed rgba(51,230,207,.3);border-radius:50%;right:-100px;top:-150px}
.tsb-confirmation-icon{width:66px;height:66px;margin:0 auto 18px;border-radius:20px;background:var(--tsb-confirm-aqua);color:var(--tsb-confirm-navy);display:grid;place-items:center;font-size:2rem;font-weight:900}
.tsb-confirmation-eyebrow{margin:0 0 10px;color:var(--tsb-confirm-aqua);font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.tsb-confirmation-header h1,.tsb-confirmation-shell--invalid h1{margin:0;font-size:clamp(2rem,5vw,4rem);line-height:1.02;letter-spacing:-.025em}
.tsb-confirmation-header>p:not(.tsb-confirmation-eyebrow){max-width:760px;margin:18px auto 0;color:#c6dae4;font-size:1.03rem}
.tsb-confirmation-reference{display:inline-flex;gap:12px;align-items:center;margin-top:26px;padding:12px 18px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08)}
.tsb-confirmation-reference span{color:#b8d0db;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.tsb-confirmation-reference strong{color:#fff;font-size:1.05rem;letter-spacing:.04em}
.tsb-confirmation-body{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;padding:34px 36px 18px}
.tsb-confirmation-card{padding:28px;border:1px solid #dceaf0;border-radius:22px;background:#f8fcfd}
.tsb-confirmation-card--accent{background:#eaf8ff}
.tsb-confirmation-card h2{margin:0 0 18px;font-size:1.35rem;color:var(--tsb-confirm-navy)}
.tsb-confirmation-card h3{margin:24px 0 8px;font-size:1.05rem;color:var(--tsb-confirm-navy)}
.tsb-confirmation-card p{margin:0;color:#4c6678;line-height:1.65}
.tsb-confirmation-details{margin:0}
.tsb-confirmation-detail{display:grid;grid-template-columns:minmax(130px,.7fr) 1.3fr;gap:18px;padding:12px 0;border-bottom:1px solid #d9e8ee}
.tsb-confirmation-detail:last-child{border-bottom:0}
.tsb-confirmation-detail dt{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#5f798a}
.tsb-confirmation-detail dd{margin:0;font-weight:800;color:#152c3d;text-align:right}
.tsb-confirmation-email-note{margin-top:18px!important;padding:14px 16px;border-radius:14px;background:#fff;color:#17695e!important;font-weight:800}
.tsb-confirmation-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:20px 36px 12px}
.tsb-confirmation-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:999px;background:var(--tsb-confirm-coral);color:#fff!important;text-decoration:none!important;font-weight:900}
.tsb-confirmation-button--secondary{background:var(--tsb-confirm-navy)}
.tsb-confirmation-contact{text-align:center;margin:8px 0 34px;color:#61798a;font-weight:800}
.tsb-confirmation-shell--invalid{padding:56px;text-align:center}
.tsb-confirmation-shell--invalid .tsb-confirmation-eyebrow{color:#16786f}
.tsb-confirmation-shell--invalid>p:not(.tsb-confirmation-eyebrow){max-width:650px;margin:18px auto;color:#536d7e}
@media(max-width:800px){.tsb-confirmation-shell{margin:28px 16px}.tsb-confirmation-header{padding:42px 24px 34px}.tsb-confirmation-body{grid-template-columns:1fr;padding:24px 20px 10px}.tsb-confirmation-actions{padding-left:20px;padding-right:20px}.tsb-confirmation-shell--invalid{padding:42px 24px}}
@media(max-width:520px){.tsb-confirmation-detail{grid-template-columns:1fr;gap:4px}.tsb-confirmation-detail dd{text-align:left}.tsb-confirmation-reference{display:flex;flex-direction:column;gap:3px;border-radius:18px}.tsb-confirmation-button{width:100%}}
