/* EzyTransfers Mini Booking v0.8.0 — match the approved blue/grey/white mockup. */
.ezy-mini-booking-section{position:relative;z-index:3;background:linear-gradient(180deg,#e9f5ff,#f3f8fd 70%,#fff);padding:0 0 30px;width:100%;color:#1e3354}
.ezy-mini-booking-section .ezy-mini-booking-shell{width:min(1180px,calc(100% - 36px));margin:0 auto}
.ezy-mini-booking{position:relative;top:-22px;margin-bottom:-22px;box-sizing:border-box;width:100%;border:1px solid #dbe7f3;border-radius:14px;background:linear-gradient(120deg,#f7fbff 0%,#eef6ff 100%);box-shadow:0 12px 27px rgba(19,55,96,.12);padding:19px 23px 15px;font:14px/1.45 Arial,Helvetica,sans-serif;color:#1e3354}
.ezy-mini-booking *{box-sizing:border-box}
.ezy-mini-booking__header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 13px;min-width:0}
.ezy-mini-booking__intro{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 17px}
.ezy-mini-booking__header h2{font:800 clamp(21px,2.1vw,26px)/1.2 Arial,Helvetica,sans-serif!important;letter-spacing:-.02em;color:#0b2f72!important;margin:0!important}
.ezy-mini-booking__subtitle{font:400 12px/1.4 Arial,Helvetica,sans-serif;color:#436184}
.ezy-mini-booking__assurance{display:flex;align-items:center;justify-content:flex-end;gap:0;border-radius:999px;background:#dfedfc;color:#143a73;font-size:11px;white-space:nowrap;padding:8px 11px}
.ezy-mini-booking__assurance>span{display:inline-flex;align-items:center;gap:6px;padding:0 8px}
.ezy-mini-booking__assurance>span+span{border-left:1px solid #bdd4ee}
.ezy-mini-booking__assurance-symbol{width:17px;height:17px;display:inline-grid;place-items:center;border-radius:50%;background:#0f5fae;color:white;font-size:10px;line-height:1}
.ezy-mini-booking__form{padding:0!important;margin:0!important}
.ezy-mini-booking__locations{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1.35fr) minmax(195px,.9fr);gap:14px;align-items:end;margin-bottom:12px}
.ezy-mini-booking__details{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(0,.75fr) minmax(0,.75fr) minmax(160px,1.12fr);gap:11px;align-items:end}
.ezy-mini-booking__details--return{grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr) minmax(0,1.1fr) minmax(0,.85fr) minmax(0,.85fr) minmax(0,.85fr) minmax(138px,1.08fr)}
.ezy-mini-booking__field{min-width:0;margin:0!important}
.ezy-mini-booking__field label{display:block;margin:0 0 6px!important;font:800 12px/1.25 Arial,Helvetica,sans-serif!important;color:#0b2f72!important}
.ezy-mini-booking__input-wrap{position:relative;display:flex;align-items:center}
.ezy-mini-booking__field input:not([type=hidden]),.ezy-mini-booking__field select{display:block;width:100%;min-width:0;max-width:100%;height:44px;margin:0!important;padding:0 12px!important;border:1px solid #c4d6e9!important;border-radius:7px!important;background:#fff!important;color:#203858!important;font:500 13px/1.2 Arial,Helvetica,sans-serif!important;box-shadow:none!important;outline:none!important;appearance:auto!important;transition:border-color .15s ease,box-shadow .15s ease}
.ezy-mini-booking__field input[type=date],.ezy-mini-booking__field input[type=time]{padding-right:7px!important;color-scheme:light}
.ezy-mini-booking__input-wrap input{padding-left:36px!important;padding-right:31px!important;text-overflow:ellipsis}
.ezy-mini-booking__field input::placeholder{color:#8196ab;opacity:1}
.ezy-mini-booking__field input:focus,.ezy-mini-booking__field select:focus{border-color:#0f5fae!important;box-shadow:0 0 0 3px rgba(15,95,174,.14)!important}
.ezy-mini-booking__field input:invalid:focus{border-color:#0f5fae!important}
.ezy-mini-booking__select-wrap{position:relative}
.ezy-mini-booking__field select{cursor:pointer;padding-right:21px!important}
.ezy-mini-booking__pin{position:absolute;z-index:1;top:14px;left:12px;width:14px;height:14px;display:grid;place-items:center;color:#fff;background:#0f5fae;transform:rotate(-45deg);font-size:8px;line-height:1;border-radius:50% 50% 50% 0;pointer-events:none}
.ezy-mini-booking__pin::first-letter{transform:rotate(45deg)}
.ezy-mini-booking__clear{position:absolute;right:6px;top:6px;z-index:1;display:grid;place-items:center;width:32px;height:32px;padding:0!important;border:0!important;background:transparent!important;color:#0f5fae!important;font-size:21px!important;line-height:1;cursor:pointer;border-radius:6px}
.ezy-mini-booking__clear:hover,.ezy-mini-booking__clear:focus-visible{background:#e8f3ff!important;outline:2px solid #86baf0;outline-offset:0}
.ezy-mini-booking__action{align-self:end;min-width:0}
.ezy-mini-booking__cta{display:flex;align-items:center;justify-content:center;gap:13px;width:100%;height:44px;min-height:44px;padding:8px 10px!important;margin:0!important;border:0!important;border-radius:8px!important;background:#16a34a!important;color:white!important;font:800 17px/1.25 Arial,Helvetica,sans-serif!important;box-shadow:0 5px 11px rgba(22,163,74,.17)!important;cursor:pointer;transition:background .15s ease,transform .15s ease}
.ezy-mini-booking__cta span{font-size:21px;line-height:1}
.ezy-mini-booking__cta:hover,.ezy-mini-booking__cta:focus-visible{background:#12843d!important;color:#fff!important;transform:translateY(-1px)}
.ezy-mini-booking__status{margin:10px 0 0!important;color:#526781!important;font:400 11px/1.5 Arial,Helvetica,sans-serif!important}
.ezy-mini-booking__status[hidden]{display:none!important}
.ezy-mini-booking__status--error{color:#a12638!important;font-weight:700!important}
.ezy-mini-booking__details [hidden]{display:none!important}
.ezy-mini-booking-footer-slot{display:none!important}
@media(max-width:1200px){.ezy-mini-booking__header{align-items:flex-start}.ezy-mini-booking__assurance{font-size:10px}.ezy-mini-booking__details--return{grid-template-columns:repeat(4,minmax(0,1fr))}.ezy-mini-booking__details--return .ezy-mini-booking__action{grid-column:3/span 2}}
@media(max-width:920px){.ezy-mini-booking__header{display:block}.ezy-mini-booking__assurance{display:inline-flex;margin-top:9px}.ezy-mini-booking__locations{grid-template-columns:repeat(2,minmax(0,1fr))}.ezy-mini-booking__field--journey{grid-column:1/-1}.ezy-mini-booking__details{grid-template-columns:repeat(4,minmax(0,1fr))}.ezy-mini-booking__action{grid-column:3/span 2}.ezy-mini-booking__details--return .ezy-mini-booking__action{grid-column:3/span 2}}
@media(max-width:650px){.ezy-mini-booking-section{padding-bottom:20px}.ezy-mini-booking-section .ezy-mini-booking-shell{width:calc(100% - 24px)}.ezy-mini-booking{top:-12px;margin-bottom:-12px;padding:18px 15px 14px;border-radius:13px}.ezy-mini-booking__header{margin-bottom:15px}.ezy-mini-booking__intro{display:block}.ezy-mini-booking__header h2{font-size:23px!important}.ezy-mini-booking__subtitle{display:block;margin-top:5px}.ezy-mini-booking__assurance{display:flex;flex-wrap:wrap;justify-content:flex-start;white-space:normal;gap:6px;border-radius:8px}.ezy-mini-booking__assurance>span{padding:0 3px}.ezy-mini-booking__assurance>span+span{border:0}.ezy-mini-booking__locations{grid-template-columns:1fr;gap:12px}.ezy-mini-booking__field--journey{grid-column:auto}.ezy-mini-booking__details,.ezy-mini-booking__details--return{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ezy-mini-booking__details .ezy-mini-booking__action,.ezy-mini-booking__details--return .ezy-mini-booking__action{grid-column:1/-1}.ezy-mini-booking__cta{height:49px;min-height:49px}.ezy-mini-booking__field input:not([type=hidden]),.ezy-mini-booking__field select{height:46px}.ezy-mini-booking__pin{top:16px}}
@media(max-width:340px){.ezy-mini-booking__details,.ezy-mini-booking__details--return{grid-template-columns:1fr}.ezy-mini-booking__details .ezy-mini-booking__action{grid-column:1}}
/* Keep the location marker clear of entered text despite V7 theme input rules. */
.ezy-mini-booking .ezy-mini-booking__input-wrap input[type=text]{padding-left:37px!important;padding-right:31px!important}
/* Autocomplete popover uses the theme's navy/light-blue/white palette. */
.ezy-mini-booking__field--location{position:relative}
.ezy-mini-booking__suggestions{position:absolute;top:100%;left:0;right:0;z-index:9999;max-height:268px;overflow-y:auto;overscroll-behavior:contain;background:#fff;border:1px solid #b6d1eb;border-radius:8px;box-shadow:0 14px 29px rgba(11,47,114,.19);padding:4px;margin-top:5px}
.ezy-mini-booking__suggestions[hidden],.ezy-mini-booking__fallback[hidden]{display:none!important}
.ezy-mini-booking__suggestion{display:block;width:100%;border:0!important;background:#fff!important;color:#173c68!important;padding:11px 12px!important;margin:0!important;font:500 13px/1.4 Arial,Helvetica,sans-serif!important;text-align:left!important;cursor:pointer;border-radius:5px!important;white-space:normal}
.ezy-mini-booking__suggestion:hover,.ezy-mini-booking__suggestion:focus-visible{background:#e9f4ff!important;outline:2px solid #a3cbed;outline-offset:-2px;color:#0b2f72!important}
.ezy-mini-booking__suggestion--airport::before{content:'✈';color:#0f5fae;margin-right:9px}
.ezy-mini-booking__suggestion--google::before{content:'●';color:#0f5fae;margin-right:9px;font-size:10px}
.ezy-mini-booking__google-brand{display:flex;justify-content:flex-end;padding:7px 9px 4px;background:white;border-top:1px solid #e3ebf4}
.ezy-mini-booking__google-brand img{max-width:122px;width:auto;height:16px;object-fit:contain}
.ezy-mini-booking__fallback{margin:5px 0 0!important;color:#526781!important;font:12px/1.5 Arial,Helvetica,sans-serif!important}
.ezy-mini-booking__fallback a{color:#0b2f72!important;text-decoration:underline!important;font-weight:700}
/* Third-party Google Places legacy autocomplete may be portalled to <body>. */
.pac-container{z-index:2147483647!important}


/* v0.7.0: the native date input still owns the browser calendar and ISO date value,
   but its visible caption includes the abbreviated weekday. */
.ezy-mini-booking__date-wrap{position:relative;min-width:0}
.ezy-mini-booking__date-wrap input[type=date]{cursor:pointer;position:relative;z-index:1;color:transparent!important}
.ezy-mini-booking__date-wrap input[type=date]::-webkit-datetime-edit{color:transparent!important;opacity:0}
.ezy-mini-booking__date-wrap input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1}
.ezy-mini-booking__date-caption{position:absolute;inset:0 38px 0 12px;z-index:2;display:flex;align-items:center;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:500 13px/1.2 Arial,Helvetica,sans-serif;color:#203858}
/* v0.7.0: scrollable menus are independent of browser-native select popups.
   Scroll gestures do not close the list; clicking a choice or outside does. */
.ezy-mini-booking__select-wrap .ezy-mini-booking__select--enhanced{position:absolute!important;left:0!important;top:0!important;width:1px!important;height:1px!important;opacity:0!important;padding:0!important;border:0!important;pointer-events:none!important;z-index:-1}
.ezy-mini-booking__select-wrap--open{z-index:1001}
.ezy-mini-booking__menu-trigger{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;width:100%!important;min-height:44px!important;height:44px!important;border:1px solid #c4d6e9!important;border-radius:7px!important;background:#fff!important;color:#203858!important;padding:0 12px!important;margin:0!important;font:500 13px/1.2 Arial,Helvetica,sans-serif!important;text-align:left!important;cursor:pointer!important;box-shadow:none!important}
.ezy-mini-booking__menu-trigger:focus-visible,.ezy-mini-booking__select-wrap--open .ezy-mini-booking__menu-trigger{border-color:#0f5fae!important;outline:none!important;box-shadow:0 0 0 3px rgba(15,95,174,.14)!important}
.ezy-mini-booking__menu-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ezy-mini-booking__menu-chevron{width:9px;height:9px;border-right:2px solid #0f5fae;border-bottom:2px solid #0f5fae;transform:translateY(-2px) rotate(45deg);flex:none}
.ezy-mini-booking__select-wrap--open .ezy-mini-booking__menu-chevron{transform:translateY(2px) rotate(225deg)}
.ezy-mini-booking__menu-options{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:1002;max-height:230px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;background:#fff;border:1px solid #b6d1eb;border-radius:8px;box-shadow:0 14px 29px rgba(11,47,114,.19);padding:4px}
.ezy-mini-booking__menu-options[hidden]{display:none!important}
.ezy-mini-booking__menu-option{display:block!important;width:100%!important;min-height:38px!important;margin:0!important;padding:9px 10px!important;text-align:left!important;color:#203858!important;background:#fff!important;border:0!important;border-radius:5px!important;font:500 13px/1.4 Arial,Helvetica,sans-serif!important;white-space:nowrap!important;cursor:pointer!important}
.ezy-mini-booking__menu-option:hover,.ezy-mini-booking__menu-option:focus-visible,.ezy-mini-booking__menu-option--selected{background:#e9f4ff!important;color:#0b2f72!important;outline:none!important}
.ezy-mini-booking__menu-option--selected{font-weight:800!important}
@media(max-width:650px){.ezy-mini-booking__menu-trigger{height:46px!important;min-height:46px!important}}

/* v0.8: raise the panel into the hero on desktop, leaving safe room beneath
   its actual content. The whole section occupies normal document flow. */
@media(min-width:921px){
  .ezy-v7 > .ezy-v7__hero.ezy-mini-booking-hero-enabled .ezy-v7__hero-inner{padding-bottom:142px!important}
  .ezy-v7 > .ezy-mini-booking-section{margin-top:-180px;z-index:5;background:linear-gradient(180deg,transparent 0,transparent 180px,#f3f8fd 180px,#fff 100%)}
  .ezy-v7 > .ezy-mini-booking-section .ezy-mini-booking{top:0;margin-bottom:0}
}
@media(min-width:921px) and (max-height:800px){
  .ezy-v7 > .ezy-v7__hero.ezy-mini-booking-hero-enabled .ezy-v7__hero-inner{padding-top:12px!important;padding-bottom:120px!important}
}
.ezy-mini-booking__handoff{margin:7px 0 0!important;font:500 12px/1.4 Arial,Helvetica,sans-serif!important;color:#274b72!important}
.ezy-mini-booking__handoff[hidden]{display:none!important}
.ezy-mini-booking__handoff a{color:#0b2f72!important;text-decoration:underline!important;font-weight:700!important}
/* Maintain a visible, untruncated instant-price CTA in narrow desktop columns. */
.ezy-mini-booking__cta{font-size:clamp(12px,1.15vw,17px)!important;gap:5px!important;white-space:nowrap!important}
@media(max-width:920px){.ezy-mini-booking__cta{font-size:17px!important}}

/* Avoid overlaying the real suburb hero content: its content drives hero
   height, and the extra bottom space forms a deliberate 180px overlap bay. */
@media(min-width:1051px){
 .ezy-v7 > .ezy-v7__hero.ezy-mini-booking-hero-enabled{min-height:0!important}
 .ezy-v7 > .ezy-v7__hero.ezy-mini-booking-hero-enabled .ezy-v7__hero-inner{padding-top:14px!important;padding-bottom:195px!important}
}
@media(min-width:921px) and (max-width:1050px){
 .ezy-v7 > .ezy-v7__hero.ezy-mini-booking-hero-enabled{min-height:0!important}
 .ezy-v7 > .ezy-v7__hero.ezy-mini-booking-hero-enabled .ezy-v7__hero-inner{padding-bottom:125px!important}
 .ezy-v7 > .ezy-mini-booking-section{margin-top:-110px}
}

/* v0.8.3: in-page CTA anchors land the widget below fixed/sticky headers. */
.ezy-v7 > #ezy-mini-booking{scroll-margin-top:92px}
@media(max-width:650px){.ezy-v7 > #ezy-mini-booking{scroll-margin-top:72px}}

/* v0.8.9: compact Safari keyboard-aware address suggestions. */
@media(max-width:650px){
 .ezy-mini-booking__field--location{z-index:20}
 .ezy-mini-booking__suggestions{
   max-height:min(174px,26dvh)!important;
   overflow-y:auto!important;
   -webkit-overflow-scrolling:touch;
   overscroll-behavior:contain;
   touch-action:pan-y;
   padding:2px!important;
   margin-top:3px!important;
 }
 .ezy-mini-booking__suggestion{
   padding:7px 9px!important;
   font-size:12px!important;
   line-height:1.25!important;
   min-height:37px!important;
   overflow-wrap:anywhere;
 }
 .ezy-mini-booking__google-brand{padding:3px 8px!important}
 .ezy-mini-booking__google-brand img{height:13px!important}
}

/* v0.9.0: On narrow screens, suggestions participate in normal layout.
   This prevents the absolutely-positioned dropdown from covering the next field. */
@media(max-width:650px){
 .ezy-mini-booking .ezy-mini-booking__field--location{position:relative!important;z-index:auto!important}
 .ezy-mini-booking .ezy-mini-booking__field--location .ezy-mini-booking__suggestions{
   position:relative!important;top:auto!important;left:auto!important;right:auto!important;
   width:100%!important;max-height:158px!important;
   margin:5px 0 0!important;overflow-y:auto!important;overflow-x:hidden!important;
   -webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;
   box-shadow:0 5px 12px rgba(11,47,114,.12)!important;
 }
 .ezy-mini-booking .ezy-mini-booking__suggestion{
   display:block!important;min-height:36px!important;padding:8px 9px!important;
   line-height:1.25!important;font-size:12px!important;
   white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
 }
}

/* v0.9.1 — CHBS/Google native Places dropdown on mobile */
@media(max-width:650px){
 .pac-container{
   z-index:2147483647!important;
   border-radius:6px!important;
   box-shadow:0 3px 12px rgba(0,0,0,.14)!important;
   font-family:Arial,sans-serif!important;
 }
 .pac-item{
   min-height:37px!important;
   line-height:37px!important;
   padding:0 10px!important;
   font-size:12px!important;
   white-space:nowrap!important;
   overflow:hidden!important;
   text-overflow:ellipsis!important;
 }
 .pac-item-query{font-size:12px!important}
 .pac-icon{margin-top:9px!important}
}
