.icabs-location-host { position: relative; }

.icabs-pin-button {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: .45rem;
  padding: .35rem .65rem;
  border: 1px solid rgba(15, 101, 219, .28);
  border-radius: 999px;
  background: rgba(15, 101, 219, .07);
  color: #0a4d9c;
  font-size: .78rem;
  font-weight: 750;
  line-height: 1.2;
}
.icabs-pin-button:hover,
.icabs-pin-button:focus-visible { background: #0f65db; color: #fff; outline: 3px solid rgba(15, 101, 219, .22); outline-offset: 2px; }

.icabs-local-results {
  position: absolute;
  z-index: 10040;
  top: calc(100% + .35rem);
  left: 0;
  right: 0;
  max-height: min(65vh, 520px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(15, 35, 70, .14);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 18px 48px rgba(5, 20, 48, .22);
}
.icabs-local-results--portal { z-index: 2147483000 !important; }
.icabs-local-results__heading { padding: .65rem .85rem .5rem; color: #5e6c80; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.icabs-local-result { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: .55rem; width: 100%; padding: .65rem .8rem; border: 0; border-top: 1px solid #eef2f7; background: #fff; color: #12243f; text-align: left; }
.icabs-local-result:hover,
.icabs-local-result:focus-visible { background: #edf5ff; outline: none; }
.icabs-local-result__icon { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .65rem; background: #e8f2ff; color: #0f65db; }
.icabs-local-result strong,
.icabs-local-result small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.icabs-local-result strong { font-size: .88rem; }
.icabs-local-result small { margin-top: .12rem; color: #66758a; font-size: .73rem; }
.icabs-local-result em { padding: .2rem .4rem; border-radius: 999px; background: #e8f8ee; color: #19713a; font-size: .65rem; font-style: normal; font-weight: 800; }
.icabs-local-results-open .pac-container,
.icabs-local-results-open .ui-autocomplete { display: none !important; }

.icabs-unified-address { display: block !important; }
.icabs-address-mirror { display: none !important; }

.icabs-map-open { overflow: hidden; }
.icabs-map-dialog[hidden] { display: none !important; }
.icabs-map-dialog { position: fixed; z-index: 11000; inset: 0; display: grid; place-items: center; padding: 1rem; }
.icabs-map-dialog__backdrop { position: absolute; inset: 0; background: rgba(3, 12, 30, .76); backdrop-filter: blur(4px); }
.icabs-map-dialog__panel { position: relative; width: min(760px, 100%); max-height: calc(100vh - 2rem); overflow: auto; padding: 1rem; border-radius: 1.2rem; background: #fff; box-shadow: 0 30px 90px rgba(0, 0, 0, .38); color: #10213b; }
.icabs-map-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.icabs-map-dialog__header span { color: #0f65db; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.icabs-map-dialog__header h2 { margin: .15rem 0 0; font: 800 1.35rem/1.2 Manrope, Inter, sans-serif; }
.icabs-map-dialog__close { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; border: 0; border-radius: .75rem; background: #edf2f8; color: #142642; }
.icabs-map-dialog__close:focus-visible { outline: 3px solid rgba(15, 101, 219, .3); outline-offset: 2px; }
.icabs-map-dialog__help { margin: .6rem 0 .8rem; color: #5d6c82; font-size: .88rem; }
.icabs-location-map { width: 100%; height: min(52vh, 430px); min-height: 300px; overflow: hidden; border-radius: .9rem; background: #e7edf5; }
.icabs-map-dialog__address { min-height: 2.7rem; margin-top: .75rem; padding: .7rem .8rem; border: 1px solid #dce5f1; border-radius: .75rem; background: #f7faff; color: #243a59; font-size: .84rem; }
.icabs-map-dialog__actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: .85rem; }

footer a:focus-visible,
footer button:focus-visible {
  outline: 3px solid #ffd166 !important;
  outline-offset: 3px;
  border-radius: .3rem;
}
.icabs-footer__column a,
.icabs-footer__contact a,
.icabs-footer__legal a { line-height: 1.55; text-underline-offset: .2em; }
.icabs-footer__column a:hover,
.icabs-footer__column a:focus-visible,
.icabs-footer__contact a:hover,
.icabs-footer__contact a:focus-visible,
.icabs-footer__legal a:hover,
.icabs-footer__legal a:focus-visible { text-decoration: underline; }

[data-icabs-theme='dark'] .icabs-pin-button { border-color: rgba(96, 165, 250, .45); background: rgba(59, 130, 246, .16); color: #a9d1ff; }
[data-icabs-theme='dark'] .icabs-local-results,
[data-icabs-theme='dark'] .icabs-local-result,
[data-icabs-theme='dark'] .icabs-map-dialog__panel { border-color: #2d405d; background: #0d1b30; color: #eef5ff; }
[data-icabs-theme='dark'] .icabs-local-result { border-top-color: #263955; }
[data-icabs-theme='dark'] .icabs-local-result:hover,
[data-icabs-theme='dark'] .icabs-local-result:focus-visible { background: #173050; }
[data-icabs-theme='dark'] .icabs-local-result small,
[data-icabs-theme='dark'] .icabs-map-dialog__help { color: #b6c4d8; }
[data-icabs-theme='dark'] .icabs-map-dialog__address { border-color: #2d405d; background: #122642; color: #dceaff; }

@media (max-width: 767.98px) {
  .icabs-local-results { position: fixed; z-index: 10040; top: auto; left: .65rem; right: .65rem; bottom: .65rem; max-height: min(62vh, 460px); overflow-y: auto; }
  .icabs-map-dialog { padding: 0; align-items: end; }
  .icabs-map-dialog__panel { width: 100%; max-height: 94vh; border-radius: 1.2rem 1.2rem 0 0; }
  .icabs-location-map { height: 48vh; min-height: 280px; }
  .icabs-map-dialog__actions .btn { flex: 1 1 0; }
  .icabs-footer__column a,
  .icabs-footer__contact a,
  .icabs-footer__legal a { display: inline-flex; min-height: 44px; align-items: center; }
  .icabs-footer__bottom { gap: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .icabs-map-dialog__backdrop { backdrop-filter: none; }
}

/* Keep long pickup/drop-off addresses inside the vehicle-selection route cards. */
body .icabs-vsel-route__place { overflow: hidden; }
body .icabs-vsel-route__place > div { min-width: 0; flex: 1 1 auto; overflow: hidden; }
body .icabs-vsel-route__place strong {
  display: -webkit-box;
  max-width: 100%;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: anywhere;
  word-break: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

@media (max-width: 900px) {
  body .icabs-vsel-route__place strong {
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }
  body .icabs-vsel-actions {
    grid-template-columns: minmax(0, 336px) !important;
    justify-content: center;
    justify-items: stretch;
  }
  body .icabs-vsel-price,
  body .icabs-vsel-walletline {
    width: min(100%, 336px);
    margin-inline: auto;
    grid-column: 1 !important;
  }
  body .icabs-vsel-walletline { justify-content: center; }
}


/* Concise, customer-facing breakdown that reconciles with each booking total. */
body .icabs-vsel-fare-breakdown {
  width: min(100%, 336px);
  margin-inline: auto;
  color: #52657f;
  font-size: .76rem;
}
body .icabs-vsel-fare-breakdown summary {
  display: flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  cursor: pointer;
  color: #0f65db;
  font-weight: 800;
  list-style: none;
}
body .icabs-vsel-fare-breakdown summary::-webkit-details-marker { display: none; }
body .icabs-vsel-fare-breakdown summary::before { content: "\2139"; }
body .icabs-vsel-fare-breakdown summary::after { content: "+"; font-size: 1rem; }
body .icabs-vsel-fare-breakdown[open] summary::after { content: "\2212"; }
body .icabs-vsel-fare-breakdown__panel {
  padding: .65rem .75rem;
  border: 1px solid #dbe5f2;
  border-radius: .75rem;
  background: #f7faff;
}
body .icabs-vsel-fare-breakdown__row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .22rem 0;
}
body .icabs-vsel-fare-breakdown__row strong { color: #12243f; white-space: nowrap; }
body .icabs-vsel-fare-breakdown__total {
  margin-top: .3rem;
  padding-top: .5rem;
  border-top: 1px solid #dbe5f2;
  color: #12243f;
  font-weight: 850;
}
body .icabs-vsel-fare-breakdown__note {
  display: block;
  margin-top: .45rem;
  color: #687990;
  line-height: 1.35;
}
[data-icabs-theme='dark'] body .icabs-vsel-fare-breakdown { color: #b6c4d8; }
[data-icabs-theme='dark'] body .icabs-vsel-fare-breakdown summary { color: #73b5ff; }
[data-icabs-theme='dark'] body .icabs-vsel-fare-breakdown__panel {
  border-color: #2d405d;
  background: #10213a;
}
[data-icabs-theme='dark'] body .icabs-vsel-fare-breakdown__row strong,
[data-icabs-theme='dark'] body .icabs-vsel-fare-breakdown__total { color: #eef5ff; }
[data-icabs-theme='dark'] body .icabs-vsel-fare-breakdown__total { border-top-color: #2d405d; }
[data-icabs-theme='dark'] body .icabs-vsel-fare-breakdown__note { color: #aebdd1; }


.icabs-language-quick {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-right: .4rem;
  vertical-align: middle;
}
.icabs-language-quick button {
  min-height: 30px;
  padding: .28rem .58rem;
  border: 1px solid #cad7e8;
  border-radius: 999px;
  background: #fff;
  color: #17304f;
  font: 750 .72rem/1.1 Inter, Manrope, sans-serif;
  cursor: pointer;
}
.icabs-language-quick button:hover,
.icabs-language-quick button:focus-visible {
  border-color: #0f65db;
  background: #eaf3ff;
  color: #074b9f;
  outline: 3px solid rgba(15, 101, 219, .2);
  outline-offset: 2px;
}
.icabs-language-more { display: inline-block; vertical-align: middle; }
.icabs-language-more .goog-te-menu-value span:first-child { font-size: 0; }
.icabs-language-more .goog-te-menu-value span:first-child::after { content: 'More languages'; font-size: .72rem; }
[data-icabs-theme='dark'] .icabs-language-quick button {
  border-color: #355071;
  background: #10213a;
  color: #eaf3ff;
}
@media (max-width: 767.98px) {
  .icabs-language-quick { gap: .2rem; margin-right: .2rem; }
  .icabs-language-quick button { min-height: 32px; padding-inline: .5rem; }
}

.icabs-language-quick--mobile { display: none; }
@media (max-width: 1199.98px) {
  .icabs-navbar .icabs-language-quick--mobile {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    gap: .45rem;
    margin: 0 0 .65rem;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(120, 142, 171, .25);
  }
  .icabs-navbar .icabs-language-quick--mobile button { min-height: 40px; padding-inline: .8rem; }
}
