/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Sep 18 2025 | 13:08:24 */
/* Mobile viewport fix */
html, body {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Prevent iOS zoom on input focus */
@media screen and (max-width: 767px) {
  input[type="text"],
  input[type="tel"],
  input[type="email"],
  textarea,
  select {
    font-size: 16px !important; /* Prevents iOS zoom */
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent;
  }
}

[id^="ac-booking"]{
  --brand:#33BCD2;
  --text:#4A4F5D;
  --muted:#6B7280;
  --background:#F8F9F9;
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.08);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, ui-sans-serif, system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Compact bar */
[id^="ac-booking"] .acb-inline{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border:1px solid #E5E7EB;
  border-radius:var(--radius);
  padding:10px;
  box-shadow:var(--shadow);
  max-width:920px;
  margin:0 auto;
  width:100%;
  flex-wrap:nowrap;
}

[id^="ac-booking"] .acb-input-wrap{
  position:relative;
  flex:1 1 auto;
  min-width:0;
}

[id^="ac-booking"] .acb-input{
  width:100%;
  border:none;
  border-radius:12px;
  padding:14px 14px 14px 44px;
  font-size:16px; /* Prevents iOS zoom - must be 16px or larger */
  color:var(--text);
  outline:none;
  transition:border-color .2s ease;
  background:#fff;
  box-sizing:border-box;
  -webkit-appearance:none; /* Remove iOS styling */
  -webkit-tap-highlight-color:transparent; /* Remove tap highlight */
}

[id^="ac-booking"] .acb-input:focus{
  border-color:var(--brand);
}

[id^="ac-booking"] .acb-pin{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  width:20px;
  height:20px;
  opacity:.6;
  pointer-events:none;
}

/* CTA (prevent wrapping under the input) */
[id^="ac-booking"] .acb-cta{
  all:unset;
  cursor:pointer;
  background:var(--brand);
  color:#fff;
  padding:14px 18px;
  border-radius:12px;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  flex:0 0 auto;
  max-width:100%;
}

[id^="ac-booking"] .acb-cta:active{
  transform:translateY(1px);
}

/* Make sure the bar never overflows on narrow phones */
@media (max-width:420px){
  [id^="ac-booking"] .acb-cta{
    padding:12px 14px;
    font-size:14px;
  }
  [id^="ac-booking"] .acb-input{
    padding:12px 12px 12px 40px;
    font-size:16px; /* Keep 16px on mobile to prevent zoom */
  }
  [id^="ac-booking"] .acb-inline{
    gap:8px;
  }
}

/* Fullscreen overlay */
[id^="ac-booking"] .acb-overlay[hidden]{
  display:none;
}

[id^="ac-booking"] .acb-overlay{
  position:fixed;
  inset:0;
  z-index:99999;
  background:var(--background);
  display:flex;
  align-items:stretch;
  justify-content:stretch;
  padding:0;
}

[id^="ac-booking"] .acb-panel{
  background:var(--background);
  color:var(--text);
  width:100%;
  height:100vh;
  border-radius:0;
  box-shadow:none;
  animation:acb-slideup .25s ease both;
  display:flex;
  flex-direction:column;
}

@keyframes acb-slideup{
  from{ transform:translateY(12px); opacity:0 }
  to{ transform:translateY(0); opacity:1 }
}

[id^="ac-booking"] .acb-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px;
  border-bottom:1px solid #E5E7EB;
  flex-shrink:0;
}

[id^="ac-booking"] .acb-address-pill{
  display:flex;
  align-items:center;
  gap:10px;
  background:var(--background);
  border-radius:20px;
  padding:12px 18px;
  font-size:14px;
  min-width:0;
  max-width:100%;
  font-family: 'Inter', sans-serif;
  font-weight:500;
  color:var(--text);
}

[id^="ac-booking"] .acb-address-pill span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:block;
}

[id^="ac-booking"] .acb-close{
  all:unset;
  cursor:pointer;
  font-weight:700;
  padding:10px 14px;
  font-size:38px;
  flex-shrink:0;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-body{
  padding:12px 20px 100px 20px;
  display:flex;
  flex-direction:column;
  gap:0;
  overflow-y:auto;
  flex:1;
}

/* Mobile spacing for form body */
@media (max-width: 768px) {
  [id^="ac-booking"] .acb-body{
    padding:12px 20px 140px 20px;
  }
}

[id^="ac-booking"] .acb-label{
  font-size:16px;
  font-weight:600;
  margin-bottom:4px;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

/* Option chips */
[id^="ac-booking"] .acb-options{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin: 0;
}

[id^="ac-booking"] .acb-option{
  border:1px solid #E5E7EB;
  border-radius:12px;
  padding:10px 16px;
  font-size:16px;
  cursor:pointer;
  user-select:none;
  color:var(--text);
  white-space:nowrap;
  font-family: 'Inter', sans-serif;
  font-weight:500;
  background:#fff;
  transition:all 0.2s ease;
}

[id^="ac-booking"] .acb-option.active{
  border-color:var(--brand);
  background:#E0F7FB;
  font-weight:600;
  color:var(--brand);
}

/* Mobile: make service row horizontally scrollable */
[id^="ac-booking"] .row-scroll{
  display:flex;
  gap:10px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding-bottom:2px;
  scroll-snap-type:x mandatory;
  flex-wrap:nowrap;
}

[id^="ac-booking"] .row-scroll .acb-option{
  scroll-snap-align:start;
  flex-shrink:0;
  min-width:fit-content;
}

[id^="ac-booking"] .row-scroll{
  scrollbar-width:thin;
}

[id^="ac-booking"] .row-scroll::-webkit-scrollbar{
  height:6px;
}

[id^="ac-booking"] .row-scroll::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.15);
  border-radius:999px;
}

/* Ensure service options don't wrap on mobile */
@media (max-width: 768px) {
  [id^="ac-booking"] .row-scroll .acb-option{
    white-space:nowrap;
    min-width:auto;
  }
}

/* Collapsible sections when add-ons is open */
[id^="ac-booking"] .acb-field{
  transition: all 0.3s ease;
  overflow: hidden;
  margin: 0 0 10px 0;
}

[id^="ac-booking"] .acb-field.collapsed{
  max-height: 0;
  opacity: 0;
  margin: 0;
  padding: 0;
  transform: scaleY(0);
  transform-origin: top;
}

/* Add-ons accordion - improved for mobile */
[id^="ac-booking"] .acb-accordion{
  border:1px solid #E5E7EB;
  border-radius:14px;
  overflow:hidden;
  transition: all 0.3s ease;
}

[id^="addons-acc"][aria-expanded="true"]{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(51,188,210,.1);
}

[id^="ac-booking"] .acb-acc-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:var(--background);
  padding:12px 14px;
  cursor:pointer;
  transition: background-color 0.2s ease;
}

[id^="addons-acc"][aria-expanded="true"] .acb-acc-head{
  background:#E0F7FB;
}

[id^="ac-booking"] .acb-acc-head h4{
  margin:0;
  font-size:16px;
  font-weight:700;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-acc-head .chev{
  transition: transform .2s ease;
}

[id^="ac-booking"] .acb-acc-body{
  display:none;
  padding:14px;
  max-height:60vh;
  overflow-y:auto;
  background:#fff;
}

[id^="addons-acc"][aria-expanded="true"] .acb-acc-body{
  display:block;
}

[id^="addons-acc"][aria-expanded="true"] .chev{
  transform:rotate(180deg);
}

/* Compact add-ons grid for mobile */
[id^="ac-booking"] .addons-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
}

@media (max-width:700px){
  [id^="ac-booking"] .addons-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
}

@media (max-width:480px){
  [id^="ac-booking"] .addons-grid{
    grid-template-columns:1fr;
    gap:8px;
  }
}

[id^="ac-booking"] .addon-card{
  border:1px solid #D1D5DB;
  border-radius:12px;
  padding:12px;
  background:#fff;
  display:grid;
  gap:4px;
  cursor:pointer;
  user-select:none;
  transition: all 0.2s ease;
}

[id^="ac-booking"] .addon-card:hover{
  border-color:var(--brand);
  transform:translateY(-1px);
}

[id^="ac-booking"] .addon-card h5{
  margin:0;
  font-size:14px;
  font-weight:700;
  color:var(--text);
  line-height:1.2;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .addon-card p{
  margin:0;
  font-size:12px;
  color:var(--muted);
  line-height:1.3;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .addon-price{
  font-size:13px;
  font-weight:700;
  color:var(--text);
  opacity:.9;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .badge-free{
  display:inline-block;
  padding:2px 6px;
  border-radius:999px;
  background:#CFFAFE;
  color:#065F46;
  font-size:11px;
  font-weight:700;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .addon-card.selected{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(51,188,210,.18);
  background:#F0FDFF;
}

/* Bottom section with price and next button */
[id^="ac-booking"] .acb-bottom-section{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  background:#fff;
  border-top:1px solid #E5E7EB;
  padding:16px 20px 16px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  z-index:100000;
  box-shadow:0 -4px 20px rgba(0,0,0,0.1);
}

/* Mobile spacing for iOS Safari */
@media (max-width: 768px) {
  [id^="ac-booking"] .acb-bottom-section{
    padding:16px 20px 40px 20px;
    bottom:0;
  }
}

[id^="ac-booking"] .acb-price-display{
  display:flex;
  flex-direction:column;
  gap:2px;
}

[id^="ac-booking"] .acb-price-label{
  font-size:14px;
  color:var(--muted);
  font-weight:500;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-price-amount{
  font-size:24px;
  font-weight:700;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-submit{
  all:unset;
  cursor:pointer;
  background:var(--brand);
  color:#fff;
  padding:14px 24px;
  border-radius:12px;
  font-weight:700;
  text-align:center;
  box-shadow:var(--shadow);
  flex-shrink:0;
  min-width:100px;
  transition:all 0.3s ease;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-submit:disabled{
  background:#D1D5DB;
  color:#9CA3AF;
  cursor:not-allowed;
  box-shadow:none;
}

/* Calendar screen */
[id^="ac-booking"] .acb-calendar-screen{
  padding:20px 20px 140px 20px;
  overflow-y:auto;
  flex:1;
  background:var(--background);
}

/* Mobile spacing for calendar screen */
@media (max-width: 768px) {
  [id^="ac-booking"] .acb-calendar-screen{
    padding:20px 20px 160px 20px;
  }
}

[id^="ac-booking"] .acb-calendar-header{
  text-align:center;
  margin-bottom:20px;
}

[id^="ac-booking"] .acb-calendar-header h3{
  margin:0;
  font-size:24px;
  font-weight:700;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-calendar-container{
  background:#fff;
  border-radius:16px;
  padding:20px;
  box-shadow:var(--shadow);
  margin-bottom:20px;
  max-width:400px;
  margin-left:auto;
  margin-right:auto;
}

[id^="ac-booking"] .acb-calendar-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px;
}

[id^="ac-booking"] .acb-cal-prev,
[id^="ac-booking"] .acb-cal-next{
  all:unset;
  cursor:pointer;
  width:40px;
  height:40px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  font-weight:700;
  color:var(--text);
  transition:background-color 0.2s ease;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-cal-prev:hover,
[id^="ac-booking"] .acb-cal-next:hover{
  background:var(--background);
}

[id^="ac-booking"] .acb-cal-month{
  font-size:18px;
  font-weight:600;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-cal-weekdays{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:8px;
  margin-bottom:12px;
}

[id^="ac-booking"] .acb-cal-weekdays div{
  text-align:center;
  font-size:14px;
  font-weight:600;
  color:var(--muted);
  padding:8px 0;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-cal-days{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:6px;
}

[id^="ac-booking"] .acb-cal-day{
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  font-size:14px;
  font-weight:500;
  cursor:pointer;
  transition:all 0.2s ease;
  position:relative;
  min-height:40px;
  font-family: 'Inter', sans-serif;
  color:var(--text);
}

/* Desktop: more compact calendar */
@media (min-width: 769px) {
  [id^="ac-booking"] .acb-cal-days{
    gap:4px;
  }
  
  [id^="ac-booking"] .acb-cal-day{
    font-size:13px;
    min-height:36px;
  }
  
  [id^="ac-booking"] .acb-cal-weekdays div{
    font-size:12px;
    padding:6px 0;
  }
  
  [id^="ac-booking"] .acb-calendar-nav{
    margin-bottom:16px;
  }
  
  [id^="ac-booking"] .acb-cal-month{
    font-size:16px;
  }
}

[id^="ac-booking"] .acb-cal-day:hover{
  background:var(--background);
}

[id^="ac-booking"] .acb-cal-day.other-month{
  color:#D1D5DB;
  cursor:not-allowed;
}

[id^="ac-booking"] .acb-cal-day.selected{
  background:var(--brand);
  color:#fff;
}

[id^="ac-booking"] .acb-cal-day.available{
  background:#E0F7FB;
  color:var(--brand);
  font-weight:600;
}

/* Arrival window section */
[id^="ac-booking"] .acb-arrival-section{
  margin:20px 0;
  max-width:400px;
  margin-left:auto;
  margin-right:auto;
}

/* Desktop: compact arrival section */
@media (min-width: 769px) {
  [id^="ac-booking"] .acb-arrival-section{
    margin:16px auto;
  }
}

[id^="ac-booking"] .acb-arrival-label{
  font-size:16px;
  font-weight:600;
  margin-bottom:8px;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-arrival-select{
  width:100%;
  padding:12px 16px;
  border:1px solid #E5E7EB;
  border-radius:12px;
  font-size:16px;
  color:var(--text);
  background:#fff;
  cursor:pointer;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-arrival-select:focus{
  outline:none;
  border-color:var(--brand);
}

/* User info fields */
[id^="ac-booking"] .acb-user-info{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin:20px 0;
  max-width:400px;
  margin-left:auto;
  margin-right:auto;
}

/* Desktop: compact user info */
@media (min-width: 769px) {
  [id^="ac-booking"] .acb-user-info{
    gap:12px;
    margin:16px auto;
  }
}

[id^="ac-booking"] .acb-input-field{
  width:100%;
  padding:14px 16px;
  border:1px solid #E5E7EB;
  border-radius:12px;
  font-size:16px; /* Prevents iOS zoom - must be 16px or larger */
  color:var(--text);
  background:#fff;
  box-sizing:border-box;
  font-family: 'Inter', sans-serif;
  -webkit-appearance:none; /* Remove iOS styling */
  -webkit-tap-highlight-color:transparent; /* Remove tap highlight */
}

[id^="ac-booking"] .acb-input-field:focus{
  outline:none;
  border-color:var(--brand);
}

[id^="ac-booking"] .acb-input-field::placeholder{
  color:var(--muted);
}

/* Compact Apt/Suite input */
[id^="ac-booking"] [id^="acb-apt-suite"]{
  max-width:120px;
  text-align:center;
}


/* Hide original bottom section when calendar is shown */
[id^="ac-booking"] .acb-bottom-booking{
  display:none;
}

/* Success screen */
[id^="ac-booking"] .acb-success-screen{
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:rgba(0,0,0,0.5);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:100001;
  padding:20px;
}

[id^="ac-booking"] .acb-success-content{
  background:#fff;
  border-radius:20px;
  padding:40px 30px;
  text-align:center;
  max-width:400px;
  width:100%;
  box-shadow:0 20px 60px rgba(0,0,0,0.3);
  animation:acb-success-appear 0.3s ease both;
}

@keyframes acb-success-appear{
  from{ transform:scale(0.9) translateY(20px); opacity:0 }
  to{ transform:scale(1) translateY(0); opacity:1 }
}

[id^="ac-booking"] .acb-success-icon{
  margin-bottom:20px;
}

[id^="ac-booking"] .acb-success-title{
  margin:0 0 16px 0;
  font-size:24px;
  font-weight:700;
  color:var(--text);
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-success-message{
  margin:0 0 30px 0;
  font-size:16px;
  color:var(--muted);
  line-height:1.5;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-success-screen .acb-submit{
  margin:0 auto;
}

/* Debug toast */
[id^="ac-booking"] .acb-toast{
  position:fixed;
  right:12px;
  bottom:12px;
  z-index:100000;
  background:var(--text);
  color:#fff;
  padding:10px 12px;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.2);
  font-size:13px;
  max-width:80vw;
  font-family: 'Inter', sans-serif;
}

[id^="ac-booking"] .acb-toast.ok{
  background:#065f46;
}

[id^="ac-booking"] .acb-toast.err{
  background:#7f1d1d;
}

/* Google Places Autocomplete Styling */
.pac-container {
  border-radius: 16px !important;
  border: 1px solid #E5E7EB !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.08) !important;
  margin-top: 4px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Desktop: Match input field width only */
@media (min-width: 769px) {
  .pac-container {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    left: auto !important;
    right: auto !important;
  }
  
  /* Position dropdown to align with input field */
  [id^="ac-booking"] .acb-input-wrap {
    position: relative;
  }
}

/* Mobile: Make dropdown full width of widget */
@media (max-width: 768px) {
  .pac-container {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
  }
}

.pac-item {
  padding: 12px 16px !important;
  border-bottom: 1px solid #F3F4F6 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: var(--text) !important;
  transition: background-color 0.2s ease !important;
}

.pac-item:hover {
  background-color: var(--background) !important;
}

.pac-item:last-child {
  border-bottom: none !important;
}

.pac-item-query {
  font-weight: 500 !important;
  color: var(--text) !important;
}

.pac-matched {
  font-weight: 600 !important;
  color: var(--brand) !important;
}
