@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

#abs-booking-form-wrapper{
  /* Admin-controlled variables (fallbacks = current theme) */
  --abs-wrap-bg: #1a0a2b;
  --abs-wrap-text: #ffffff;
  --abs-wrap-border: #ff00ff;
  --abs-wrap-glow1: #ff00ff;
  --abs-wrap-glow2: #00ffff;

  --abs-heading: #00ffff;
  --abs-heading-glow: #00ffff;

  --abs-label: #f0f0f0;

  --abs-field-bg: #331a4d;
  --abs-field-border: #00ffff;
  --abs-field-text: #ffffff;

  --abs-field-disabled-bg: #444444;
  --abs-field-disabled-border: #666666;
  --abs-field-disabled-text: #aaaaaa;

  --abs-week-range: #ffff00;
  --abs-cal-btn-bg: #ff00ff;
  --abs-cal-btn-text: #ffffff;

  --abs-day-border: #4a2a6d;
  --abs-day-header-bg: #331a4d;
  --abs-day-name: #00ffff;
  --abs-day-number: #aaaaaa;
  --abs-day-past-bg: #111111;

  --abs-extra-border: #ff00ff;
  --abs-extra-text: #ff00ff;
  --abs-extra-hover-bg: #ff00ff;
  --abs-extra-hover-text: #1a0a2b;

  --abs-extra-selected-bg: #ffff00;
  --abs-extra-selected-text: #1a0a2b;
  --abs-extra-selected-border: #ffff00;
  --abs-extra-selected-glow: #ffff00;

  --abs-btn-primary-bg: #00ffff;
  --abs-btn-primary-text: #1a0a2b;
  --abs-btn-primary-glow: #00ffff;

  --abs-btn-secondary-bg: #ff00ff;
  --abs-btn-secondary-text: #ffffff;
  --abs-btn-secondary-glow: #ff00ff;

  --abs-btn-disabled-bg: #555555;
  --abs-btn-disabled-text: #888888;

  --abs-summary-divider: #00ffff;
  --abs-summary-strong: #00ffff;
  --abs-summary-h3: #ffff00;

  max-width:95%;
  margin:20px auto;
  padding:25px;
  border:2px solid var(--abs-wrap-border);
  border-radius:10px;
  font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
  background:var(--abs-wrap-bg);
  color:var(--abs-wrap-text);
  box-shadow:0 0 15px var(--abs-wrap-glow1), 0 0 25px var(--abs-wrap-glow2);
}

.abs-service-options-container{display:flex;gap:20px;margin-bottom:20px}
.abs-service-options-container .abs-form-group{flex:1}

.abs-step h2{
  text-align:center;
  color:var(--abs-heading);
  margin-bottom:24px;
  font-size:22px;
  font-weight:800;
  letter-spacing:0.3px;
  line-height:1.2;
  text-shadow:none;
}

.abs-form-group label{
  display:block;
  margin-bottom:10px;
  font-weight:700;
  color:var(--abs-label);
  font-size:14px
}

.abs-form-group select{
  width:100%;
  padding:12px;
  border:2px solid var(--abs-field-border);
  border-radius:5px;
  box-sizing:border-box;
  background-color:var(--abs-field-bg);
  color:var(--abs-field-text);
  font-family:'Roboto',sans-serif
}
.abs-form-group select:disabled{
  background-color:var(--abs-field-disabled-bg);
  border-color:var(--abs-field-disabled-border);
  color:var(--abs-field-disabled-text);
  cursor:not-allowed
}

#abs-calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}
#abs-calendar-header h3{color:var(--abs-week-range);margin:0;font-size:18px;text-align:center}
#abs-calendar-header button{
  background:var(--abs-cal-btn-bg);
  color:var(--abs-cal-btn-text);
  border:none;
  padding:8px 15px;
  font-size:16px;
  cursor:pointer;
  border-radius:4px;
  font-family:'Roboto',sans-serif
}

#abs-weekly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.abs-day-column{border:1px solid var(--abs-day-border);border-radius:8px;overflow:hidden}
.abs-day-header{padding:10px;text-align:center;background-color:var(--abs-day-header-bg)}
.abs-day-header .day-name{font-size:14px;color:var(--abs-day-name);font-weight:700}
.abs-day-header .day-number{font-size:12px;color:var(--abs-day-number)}
.abs-slots-container{padding:10px}
.abs-slots-container select{margin-top:10px}
.abs-time-slot-option{font-family:'Roboto',sans-serif}

.abs-day-column.is-past{opacity:.5;background:var(--abs-day-past-bg);pointer-events:none}

.abs-extras-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.abs-extra-item label{
  display:block;
  padding:12px;
  border:2px solid var(--abs-extra-border);
  border-radius:5px;
  text-align:center;
  cursor:pointer;
  background:transparent;
  color:var(--abs-extra-text);
  transition:all .3s ease;
  font-weight:700;
  font-family:'Roboto',sans-serif
}
.abs-extra-item label:hover{background-color:var(--abs-extra-hover-bg);color:var(--abs-extra-hover-text)}
.abs-extra-item input:checked+label{
  background-color:var(--abs-extra-selected-bg);
  color:var(--abs-extra-selected-text);
  border-color:var(--abs-extra-selected-border);
  box-shadow:0 0 10px var(--abs-extra-selected-glow)
}
.abs-extra-item input{display:none}

.abs-form-group input[type=text],
.abs-form-group input[type=email],
.abs-form-group input[type=tel]{
  width:100%;
  padding:12px;
  border:2px solid var(--abs-field-border);
  border-radius:5px;
  box-sizing:border-box;
  background-color:var(--abs-field-bg);
  color:var(--abs-field-text);
  font-family:'Roboto',sans-serif
}

.abs-next-btn,.abs-prev-btn,#abs-confirm-btn{
  background:var(--abs-btn-primary-bg);
  color:var(--abs-btn-primary-text);
  padding:14px 22px;
  border:none;
  border-radius:5px;
  cursor:pointer;
  font-size:16px;
  font-weight:700;
  margin-right:10px;
  transition:all .3s ease;
  text-shadow:0 0 3px #fff;
 font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
}
.abs-next-btn:hover,#abs-confirm-btn:hover{transform:scale(1.05);box-shadow:0 0 15px var(--abs-btn-primary-glow)}
.abs-prev-btn{
  background-color:var(--abs-btn-secondary-bg);
  color:var(--abs-btn-secondary-text)
}
.abs-prev-btn:hover{box-shadow:0 0 15px var(--abs-btn-secondary-glow)}
.abs-next-btn:disabled{
  background-color:var(--abs-btn-disabled-bg);
  color:var(--abs-btn-disabled-text);
  cursor:not-allowed;
  transform:none;
  box-shadow:none
}

#abs-summary{
  border-top:2px dashed var(--abs-summary-divider);
  margin-top:20px;
  padding-top:20px;
  font-family:'Roboto',sans-serif
}
#abs-summary p{margin:0 0 10px;font-size:16px}
#abs-summary strong{color:var(--abs-summary-strong)}
#abs-summary h3{ ... font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif; ... }
.abs-step h2{
  text-shadow: none;
  font-weight: 800;
  letter-spacing: .2px;
  line-height: 1.2;
}

#abs-summary h3{
  font-weight: 800;
  letter-spacing: .2px;
  line-height: 1.25;
  margin: 0 0 12px;
}

.abs-next-btn,.abs-prev-btn,#abs-confirm-btn{
  text-shadow: none;
  font-weight: 800;
  letter-spacing: .2px;
}
/* Mobile tweaks */
/* Mobile font size fix for Step title */
@media (max-width: 480px){
  .abs-step h2{
    font-size: 18px !important;
    line-height: 1.25;
    margin-bottom: 20px;
    letter-spacing: 0.2px;
  }
}
/* Stop iOS auto-zoom on focus */
@media (max-width: 768px){
  #abs-booking-form-wrapper input,
  #abs-booking-form-wrapper select,
  #abs-booking-form-wrapper textarea{
    font-size:16px !important;
  }
}