.zt-admin{max-width:840px;color:var(--zt-ink)}
.zt-admin .zt-settings-card{background:var(--zt-surface);border:1px solid var(--zt-border);border-radius:var(--zt-radius-card);padding:24px;margin:20px 0}
.zt-admin .button-primary{background:var(--zt-primary);border-color:var(--zt-primary)}
.zt-admin .zt-logo{width:230px;height:auto;margin:24px 0}
.zt-admin input{min-height:40px;border-radius:var(--zt-radius-control)}

.zt-booking{--ab3-blue:var(--zt-primary);--ab3-blue-dark:#176493;--ab3-orange:var(--zt-accent);--ab3-orange-dark:#9e1621;--ab3-green:#176493;font-size:15px}
.zt-form{display:grid;gap:22px}.zt-booking h2{font-size:21px;font-weight:500}.zt-booking h3{font-size:18px;font-weight:500}.zt-booking [hidden]{display:none!important}.zt-booking .zt-progress button:disabled{opacity:.65;cursor:default}.zt-booking .zt-progress [aria-current=step]{background:white;color:var(--zt-primary)}
.zt-booking label{display:block;font-size:14px;font-weight:500;margin:12px 0}.zt-booking label>input:not([type=checkbox]),.zt-booking label>select,.zt-booking textarea{display:block;width:100%;min-height:45px;border:1px solid var(--ab3-border);border-radius:7px;padding:10px 12px;margin-top:6px;font:inherit;background:white;color:var(--ab3-text)}.zt-booking input[type=checkbox]{accent-color:var(--zt-primary);width:18px;height:18px;vertical-align:middle;margin-right:7px}.zt-booking fieldset:not(.ab3-booking-form__choice-group){border:1px solid var(--ab3-border);border-radius:7px;padding:16px;margin:20px 0}.zt-booking legend{font-weight:500;padding:0 7px;font-size:15px}
.zt-trip-options button{border:1px solid var(--ab3-border);padding:12px;background:white;border-radius:7px;font:inherit;cursor:pointer}.zt-trip-options button.is-active{border-color:var(--zt-primary);background:var(--ab3-blue-soft);color:var(--zt-primary)}.zt-booking .zt-trip-options{grid-template-columns:1fr 1fr}.zt-address{position:relative}.zt-suggestions:not(:empty){border:1px solid var(--ab3-border);border-radius:7px;overflow:hidden;margin-bottom:12px}.zt-suggestions button{display:block;width:100%;text-align:left;padding:12px;background:white;border:0;border-bottom:1px solid var(--ab3-border);font:inherit;cursor:pointer}.zt-suggestions button:hover{background:var(--ab3-blue-soft)}.zt-stops button{border:0;background:none;color:var(--zt-primary);cursor:pointer}.zt-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.zt-contact-grid label:last-child{grid-column:1/-1}.zt-review p{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--ab3-border);overflow-wrap:anywhere}.zt-review strong{font-weight:500}.zt-feedback:empty{display:none}.zt-feedback{padding:12px;background:var(--ab3-blue-soft);border-radius:7px}.zt-car-card{border:2px solid var(--zt-primary);background:var(--ab3-blue-soft);border-radius:8px;padding:24px;max-width:420px}.zt-car-image{width:100%;height:170px;object-fit:contain}.zt-car-price{font-size:25px;color:var(--zt-primary)}.zt-booking .zt-progress{scroll-margin-top:55px}.zt-booking :focus-visible{outline:2px solid var(--zt-primary);outline-offset:3px}.zt-route-info{font-size:13px;color:var(--ab3-muted)}
@media(max-width:600px){.zt-contact-grid{grid-template-columns:1fr}.zt-review p{grid-template-columns:1fr;gap:4px}.zt-booking{padding:16px;margin:10px auto}.zt-booking .zt-progress button{font-size:11px}.zt-booking fieldset:not(.ab3-booking-form__choice-group){padding:12px}}
body:has(.zt-booking) .page-body{max-width:1180px;padding-top:0;padding-bottom:36px}body:has(.zt-booking) .page-body>article>h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body:has(.zt-booking){background:#edf5fb}.zt-booking{margin:30px auto;background:#fff}.zt-panel[data-panel="0"]{padding:18px;border:1px solid #d9e6f5;border-radius:8px;box-shadow:inset 4px 0 0 var(--ab3-blue);background:linear-gradient(90deg,rgba(47,127,200,.045),#fff 42%)}
.zt-booking .zt-address:before{position:absolute;z-index:1;top:31px;left:-27px;width:18px;height:18px;border:3px solid #d9e6f5;border-radius:50%;background:white;content:"";box-sizing:border-box}.zt-booking [data-address=destination]:before{border-color:var(--ab3-blue);background:var(--ab3-blue);box-shadow:inset 0 0 0 4px white}.zt-booking .zt-actions{margin-top:24px}.zt-booking .ab3-booking-form__panel--time>div{border:1px solid #d7e6f7;border-left:4px solid var(--ab3-blue);border-radius:8px;padding:18px;background:#f8fbff;margin-bottom:16px}.zt-booking .ab3-booking-form__panel--time h2{margin-top:0;color:var(--ab3-blue)}
.zt-booking .zt-add-stop{display:block;width:auto;max-width:none;white-space:nowrap;text-align:left;padding:8px 0}.zt-booking .zt-progress button.is-complete{background:#edf5fb;border-color:#c8deef;color:var(--zt-primary)}.zt-booking .ab3-booking-form__vehicle-grid{grid-template-columns:minmax(0,420px);border:0;outline:none;background:transparent}.zt-booking h2:focus{outline:none}.zt-booking .zt-service{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.zt-booking .zt-service>label:first-of-type,.zt-booking .zt-service>label:last-child{grid-column:1/-1}
@media(max-width:600px){.zt-booking .zt-service{grid-template-columns:1fr}.zt-booking .zt-add-stop{font-size:13px}.zt-booking .ab3-booking-form__datetime-grid button{min-height:40px}.zt-booking .zt-panel[data-panel="0"]{padding:12px}}
/* iOS zooms focused controls below 16px. Keep pinch zoom available. */
@media (max-width:1024px), (pointer:coarse) {
  .zt-booking label>input:not([type=checkbox]),
  .zt-booking label>select,
  .zt-booking textarea { font-size:16px; }
}

.zt-booking .zt-consent-toggle{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:12px;border:1px solid var(--ab3-border);border-radius:8px;cursor:pointer;font-size:16px;line-height:1.5}.zt-booking .zt-consent-toggle input[type=checkbox]{flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;cursor:pointer}.zt-booking .zt-consent-toggle:has(input:checked){background:var(--ab3-blue-soft);border-color:var(--zt-primary)}.zt-booking .zt-terms-link{display:inline-block;padding:8px 0;font-size:14px}.zt-booking .zt-submit:disabled{opacity:.5;cursor:not-allowed}

/* Clear, compact pickup choices, with native accessible controls. */
.zt-booking .zt-travellers{display:flex;align-items:center;gap:28px;padding:18px 20px;border-radius:10px;background:#edf5fb;margin:20px 0 24px}.zt-booking .zt-travellers>label{flex:0 0 210px;margin:0}.zt-booking .zt-travellers p{font-size:14px;line-height:1.7;margin:0}.zt-travellers p span{color:#526b7b}
.zt-booking .zt-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.zt-booking .zt-service-grid .zt-service{background:#fff;border:1px solid #cfdfea;border-top:3px solid var(--zt-primary);border-radius:10px;margin:0;padding:18px 20px;min-width:0}.zt-booking .zt-service legend{color:var(--zt-primary);font-size:16px;padding:0 8px}.zt-booking .zt-service label{margin:8px 0 12px}
.zt-booking label>select{appearance:none;-webkit-appearance:none;height:48px;min-height:48px;font-size:16px;padding:10px 38px 10px 12px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23176493' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.zt-booking fieldset.zt-aids{border:0;padding:0;margin:26px 0 0}.zt-booking .zt-aids legend{padding:0;font-size:17px}.zt-booking .zt-aids p{font-size:14px;margin:8px 0 12px}.zt-booking .zt-aid-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.zt-booking .zt-aid-tile{display:flex;align-items:center;gap:10px;min-height:64px;border:1px solid #cfdfea;border-radius:9px;background:#fff;padding:14px;margin:0;cursor:pointer}.zt-booking .zt-aid-tile input{flex:0 0 21px;width:21px;height:21px;margin:0}.zt-booking .zt-aid-tile:has(input:checked){border-color:var(--zt-primary);background:#eaf4fb;box-shadow:inset 0 0 0 1px var(--zt-primary)}.zt-booking .zt-aid-note{color:#526b7b;font-size:13px!important;line-height:1.6}
@media(max-width:700px){.zt-booking .zt-service-grid,.zt-booking .zt-aid-options{grid-template-columns:1fr}.zt-booking .zt-travellers{align-items:stretch;flex-direction:column;gap:10px;padding:16px}.zt-booking .zt-travellers>label{flex:auto}.zt-booking .zt-service-grid .zt-service{padding:14px}.zt-booking .zt-aid-tile{min-height:54px}}

.zt-booking .zt-payment-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;margin:20px 0}.zt-booking .zt-payment-main{border:1px solid #cfdfea;border-radius:10px;padding:20px;background:#fff}.zt-booking .zt-payment-main .ab3-booking-form__quote-box{margin:0 0 20px;padding:0 0 20px;border:0;border-bottom:1px solid #dce7ef;background:transparent}.zt-booking .zt-payment-price{font-size:28px;color:var(--zt-primary)}.zt-booking .zt-wait-card{background:#edf5fb;border-radius:10px;padding:20px;border-left:3px solid var(--zt-primary)}.zt-booking .zt-wait-card h3{margin:0 0 10px;font-size:18px}.zt-booking .zt-wait-card p{font-size:14px;line-height:1.7;margin:0}.zt-booking .zt-consent-toggle{font-weight:400;font-size:15px}.zt-booking .zt-terms-link{font-size:13px;margin-left:12px}
@media(max-width:700px){.zt-booking .zt-payment-layout{grid-template-columns:1fr;gap:14px}.zt-booking .zt-payment-main,.zt-booking .zt-wait-card{padding:16px}.zt-booking .zt-payment-price{font-size:25px}}

.zt-booking .zt-pickup-address{grid-column:1/-1;margin:4px 0 8px;font-size:14px;color:#526b7b}.zt-booking .zt-pickup-address:empty{display:none}

.zt-booking .zt-route-price{margin-top:22px;padding:18px 22px;border:1px solid #cfdfea;border-left:4px solid var(--zt-primary);border-radius:9px;background:#edf5fb}.zt-route-price>div{display:flex;align-items:center;justify-content:space-between;gap:18px}.zt-route-price-label{font-size:15px;color:#526b7b}.zt-route-price-value{font-size:26px;font-weight:600;color:var(--zt-primary)}.zt-booking .zt-route-price-note{font-size:13px;line-height:1.6;margin:8px 0 0}.zt-route-price-retry{margin-top:12px;background:white;color:#176493;border:1px solid #176493;border-radius:7px;padding:10px 14px;cursor:pointer}@media(max-width:600px){.zt-route-price>div{align-items:flex-start;flex-direction:column;gap:5px}.zt-booking .zt-route-price{padding:16px}.zt-route-price-value{font-size:24px}}

.zt-booking .zt-route-metrics{display:grid;gap:8px;margin-top:12px}.zt-booking .zt-route-metrics:empty{display:none}.zt-booking .zt-route-metrics p{display:flex;gap:16px;justify-content:space-between;margin:0;font-size:14px}.zt-route-metrics strong{font-weight:500}

/* Same inline route-summary arrangement as the LuchthavenExpress booking form. */
.zt-booking .zt-route-price{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px 20px;border:0;border-radius:0;background:transparent;padding:0;margin:18px 0 0}.zt-booking .zt-route-price-total{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.zt-booking .zt-route-price-label{font-size:14px;color:#526b7b}.zt-booking .zt-route-price-value{font-size:30px;line-height:1.2;font-weight:600;color:var(--zt-accent)}.zt-booking .zt-route-metrics{grid-column:1;grid-row:1;margin:0}.zt-booking .zt-route-metrics p{display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.5;color:#526b7b;font-size:14px}.zt-booking .zt-route-metrics strong{font-weight:500;color:#183c55}.zt-booking .zt-route-price-note,.zt-booking .zt-route-price-retry{grid-column:1/-1;margin:0}.zt-booking .zt-route-price-note{font-size:12px}.zt-booking .zt-route-price-retry{justify-self:start}.zt-booking .zt-route-price[aria-busy=true] .zt-route-price-value{font-size:18px}@media(max-width:500px){.zt-booking .zt-route-price{gap:10px}.zt-booking .zt-route-price-value{font-size:26px}.zt-booking .zt-route-metrics p{font-size:12px}}

.zt-route-price[hidden], .zt-route-price-note:empty { display: none !important; }
