/* ==========================================================
   Astrology Appointment Booking Pro — Hora Sutra Exact Theme
   This CSS is inside the plugin file: assets/aab-pro.css
   It controls services section + appointment Date/Time/Form/Pay popup.
========================================================== */
:root{
  --aab-primary-bg:#FFF8E8;
  --aab-secondary-bg:#FFF0C7;
  --aab-gold:#D9A441;
  --aab-deep-gold:#9A5A12;
  --aab-premium-gold:#F4C95D;
  --aab-maroon:#4A150C;
  --aab-maroon-2:#7A2415;
  --aab-red:#A73319;
  --aab-dark:#2A1208;
  --aab-card:#FFFDF6;
  --aab-border:#E6BE67;
  --aab-white:#ffffff;
  --aab-brown-1:#624023;
  --aab-brown-2:#5d3b20;
  --aab-brown-3:#3e200a;
  --aab-orange:#f47a05;
  --aab-orange-dark:#b83e00;
  --aab-green:#0d823e;
  --aab-green-bg:#eaf6ef;
  --aab-green-line:#93cfae;
  --aab-shadow:0 20px 48px rgba(74,21,12,.16);
}

/* ===== Services Section: wide large-card layout exactly like your screenshot ===== */
#asb-services.aab-service-section,
#asb-services.aab-service-section *{
  box-sizing:border-box !important;
  font-family:'Poppins',Arial,sans-serif !important;
}
#asb-services.aab-service-section{
  width:100% !important;
  padding:72px 0 86px !important;
  background:linear-gradient(180deg,#fffaf0 0%,#fffdf6 48%,#fff8e8 100%) !important;
  color:#050129 !important;
  overflow:hidden !important;
}
#asb-services .aab-container{
  width:min(1500px,calc(100% - 48px)) !important;
  max-width:1500px !important;
  margin:0 auto !important;
}
#asb-services .aab-head{
  text-align:center !important;
  max-width:880px !important;
  margin:0 auto 36px !important;
}
#asb-services .aab-head span{
  display:inline-block !important;
  color:var(--aab-deep-gold) !important;
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  letter-spacing:2.2px !important;
  margin:0 0 8px !important;
}
#asb-services .aab-head h2{
  font-size:clamp(34px,3.2vw,48px) !important;
  line-height:1.12 !important;
  margin:0 0 12px !important;
  color:#050129 !important;
  font-weight:900 !important;
  letter-spacing:-.035em !important;
}
#asb-services .aab-head h2 b{
  color:var(--aab-deep-gold) !important;
  font-weight:900 !important;
}
#asb-services .aab-head p{
  color:#5b5570 !important;
  margin:0 auto !important;
  max-width:720px !important;
  font-size:17px !important;
  line-height:1.75 !important;
  font-weight:500 !important;
}
#asb-services .aab-category{
  margin:32px auto 0 !important;
  background:#ffffff !important;
  border:1px solid rgba(230,190,103,.82) !important;
  border-radius:32px !important;
  padding:34px 36px 38px !important;
  box-shadow:0 22px 56px rgba(74,21,12,.10) !important;
}
#asb-services .aab-category h3{
  font-size:34px !important;
  line-height:1.15 !important;
  margin:0 0 30px !important;
  color:#050129 !important;
  font-weight:650 !important;
  letter-spacing:-.035em !important;
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
}
#asb-services .aab-category h3:before{
  content:"" !important;
  width:6px !important;
  height:43px !important;
  display:inline-block !important;
  border-radius:0 !important;
  background:#f47a05 !important;
  flex:0 0 6px !important;
}
#asb-services .aab-service-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:26px !important;
}
#asb-services .aab-service-card{
  background:#ffffff !important;
  border:1px solid #e8e3dc !important;
  border-radius:28px !important;
  padding:20px !important;
  overflow:hidden !important;
  box-shadow:0 18px 38px rgba(42,18,8,.08) !important;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
  min-height:470px !important;
  display:flex !important;
  flex-direction:column !important;
}
#asb-services .aab-service-card:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 24px 54px rgba(42,18,8,.14) !important;
  border-color:rgba(230,190,103,.95) !important;
}
#asb-services .aab-service-card img{
  width:100% !important;
  height:220px !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
  border-radius:18px !important;
  background:linear-gradient(135deg,#FFF8E8,#FFF0C7) !important;
  margin:0 0 20px !important;
  filter:saturate(1.04) contrast(1.02) !important;
}
#asb-services .aab-service-body{
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
}
#asb-services .aab-service-body h4{
  font-size:26px !important;
  line-height:1.18 !important;
  min-height:0 !important;
  margin:0 0 14px !important;
  color:#050129 !important;
  font-weight:650 !important;
  letter-spacing:-.035em !important;
}
#asb-services .aab-service-body p{
  font-size:20px !important;
  line-height:1.55 !important;
  min-height:94px !important;
  margin:0 0 24px !important;
  color:#5b5570 !important;
  font-weight:400 !important;
  display:block !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
}
#asb-services .aab-price-row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  margin-top:auto !important;
}
#asb-services .aab-price-row strong{
  font-size:30px !important;
  line-height:1 !important;
  color:#f47a05 !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  letter-spacing:-.02em !important;
}
#asb-services .aab-open-booking{
  border:0 !important;
  border-radius:999px !important;
  padding:20px 34px !important;
  min-width:150px !important;
  min-height:62px !important;
  background:linear-gradient(135deg,#f47a05,#d14d00) !important;
  color:#fff !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:800 !important;
  cursor:pointer !important;
  box-shadow:0 16px 30px rgba(244,122,5,.24) !important;
  white-space:nowrap !important;
}
#asb-services .aab-open-booking:hover{
  filter:brightness(.98) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 20px 38px rgba(244,122,5,.32) !important;
}

@media(max-width:1100px){
  #asb-services .aab-container{width:min(980px,calc(100% - 34px)) !important;}
  #asb-services .aab-category{border-radius:26px !important;padding:26px !important;}
  #asb-services .aab-category h3{font-size:30px !important;margin-bottom:24px !important;}
  #asb-services .aab-service-card{min-height:430px !important;padding:16px !important;border-radius:24px !important;}
  #asb-services .aab-service-card img{height:190px !important;border-radius:16px !important;}
  #asb-services .aab-service-body h4{font-size:22px !important;}
  #asb-services .aab-service-body p{font-size:17px !important;min-height:80px !important;}
  #asb-services .aab-price-row strong{font-size:26px !important;}
  #asb-services .aab-open-booking{font-size:17px !important;min-height:54px !important;min-width:130px !important;padding:17px 25px !important;}
}
@media(max-width:760px){
  #asb-services.aab-service-section{padding:54px 0 64px !important;}
  #asb-services .aab-container{width:calc(100% - 22px) !important;}
  #asb-services .aab-head{margin-bottom:24px !important;}
  #asb-services .aab-head h2{font-size:28px !important;}
  #asb-services .aab-head p{font-size:14px !important;}
  #asb-services .aab-category{padding:16px !important;border-radius:20px !important;margin-top:22px !important;}
  #asb-services .aab-category h3{font-size:22px !important;gap:10px !important;margin-bottom:16px !important;}
  #asb-services .aab-category h3:before{height:28px !important;width:4px !important;flex-basis:4px !important;}
  #asb-services .aab-service-grid{grid-template-columns:1fr !important;gap:16px !important;}
  #asb-services .aab-service-card{min-height:0 !important;border-radius:20px !important;padding:14px !important;}
  #asb-services .aab-service-card img{height:190px !important;border-radius:16px !important;margin-bottom:14px !important;}
  #asb-services .aab-service-body h4{font-size:19px !important;line-height:1.25 !important;margin-bottom:9px !important;}
  #asb-services .aab-service-body p{font-size:15px !important;line-height:1.55 !important;min-height:0 !important;margin-bottom:18px !important;}
  #asb-services .aab-price-row strong{font-size:23px !important;}
  #asb-services .aab-open-booking{font-size:14px !important;min-height:46px !important;min-width:112px !important;padding:14px 19px !important;}
}
/* ===== Appointment Booking Popup: Date / Time / Details / Pay same theme ===== */
.aab-modal-overlay,
.aab-modal-overlay *{
  box-sizing:border-box !important;
  font-family:'Poppins',Arial,sans-serif !important;
}
.aab-modal-overlay{
  position:fixed !important;
  inset:0 !important;
  background:rgba(42,18,8,.72) !important;
  backdrop-filter:blur(3px) !important;
  z-index:999999 !important;
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
  padding:20px !important;
}
.aab-modal-overlay.is-open{
  display:flex !important;
}
.aab-modal{
  position:relative !important;
  width:min(980px,96vw) !important;
  max-height:94vh !important;
  overflow:auto !important;
  background:#fffdf6 !important;
  border:1px solid rgba(230,190,103,.65) !important;
  border-radius:24px !important;
  color:var(--aab-dark) !important;
  box-shadow:0 30px 90px rgba(42,18,8,.38) !important;
}
.aab-modal::-webkit-scrollbar{width:7px !important;}
.aab-modal::-webkit-scrollbar-thumb{background:#d7a94b !important;border-radius:20px !important;}
.aab-x{
  position:absolute !important;
  right:20px !important;
  top:20px !important;
  width:54px !important;
  height:54px !important;
  border-radius:18px !important;
  border:1px solid rgba(230,190,103,.65) !important;
  background:#fff !important;
  color:var(--aab-red) !important;
  font-size:30px !important;
  line-height:1 !important;
  cursor:pointer !important;
  z-index:2 !important;
  box-shadow:0 10px 24px rgba(74,21,12,.08) !important;
}
.aab-modal-top{
  padding:24px 72px 18px 28px !important;
  background:linear-gradient(135deg,#FFFDF6,#FFF0C7) !important;
  border-bottom:1px solid rgba(230,190,103,.58) !important;
}
.aab-modal-top h3{
  font-size:20px !important;
  line-height:1.25 !important;
  font-weight:950 !important;
  margin:0 0 8px !important;
  color:#2A1208 !important;
}
.aab-modal-top b{
  font-size:18px !important;
  color:var(--aab-deep-gold) !important;
  font-weight:950 !important;
}
.aab-tabs{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:12px !important;
  padding:18px 28px 8px !important;
  background:#FFFDF6 !important;
}
.aab-tab{
  height:48px !important;
  border:1px solid rgba(230,190,103,.70) !important;
  background:#fff !important;
  border-radius:26px !important;
  color:#684733 !important;
  font-size:15px !important;
  font-weight:950 !important;
  cursor:pointer !important;
  box-shadow:0 6px 14px rgba(74,21,12,.04) !important;
}
.aab-tab.is-active{
  border-color:#624023 !important;
  background:linear-gradient(135deg,#fff8e8,#fff0c7) !important;
  color:#4A150C !important;
}
.aab-step{
  display:none !important;
  padding:0 28px 24px !important;
  background:#FFFDF6 !important;
}
.aab-step.is-active{
  display:block !important;
}
.aab-step-title{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin:6px 0 16px !important;
}
.aab-step-title h4{
  font-size:22px !important;
  font-weight:950 !important;
  margin:0 !important;
  color:#2A1208 !important;
}
.aab-step-title span{
  font-size:15px !important;
  font-weight:850 !important;
  color:#684733 !important;
  text-align:right !important;
}
.aab-date-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:16px !important;
}
.aab-time-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:12px !important;
}
.aab-date-card,
.aab-time-card{
  border:1.5px solid rgba(230,190,103,.85) !important;
  background:linear-gradient(135deg,#fffdf6,#fff0c7) !important;
  border-radius:20px !important;
  min-height:96px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  color:#624023 !important;
  font-weight:950 !important;
  cursor:pointer !important;
  transition:.2s ease !important;
  box-shadow:0 9px 18px rgba(154,90,18,.08) !important;
}
.aab-time-card{
  min-height:76px !important;
  border-radius:14px !important;
}
.aab-date-card:hover,
.aab-time-card:hover{
  transform:translateY(-2px) !important;
  border-color:#624023 !important;
}
.aab-date-card strong{
  font-size:24px !important;
  margin-bottom:8px !important;
}
.aab-date-card span{
  font-size:16px !important;
}
.aab-time-card strong{
  font-size:18px !important;
}
.aab-time-card span{
  font-size:12px !important;
  margin-top:8px !important;
  color:inherit !important;
  opacity:.82 !important;
}
.aab-date-card.is-selected,
.aab-time-card.is-selected{
  background:linear-gradient(135deg,#624023,#5d3b20,#3e200a) !important;
  border-color:#624023 !important;
  color:#fff !important;
  box-shadow:0 14px 28px rgba(62,32,10,.24) !important;
}
.aab-time-card.is-booked{
  opacity:.5 !important;
  cursor:not-allowed !important;
  background:#f4eee2 !important;
  border-color:#e2d1b2 !important;
  color:#8a7765 !important;
  box-shadow:none !important;
}
.aab-form{
  display:grid !important;
  grid-template-columns:repeat(2,1fr) !important;
  gap:12px !important;
}
.aab-field label{
  display:block !important;
  font-size:14px !important;
  font-weight:950 !important;
  margin:0 0 8px !important;
  color:#2A1208 !important;
}
.aab-field input,
.aab-field textarea{
  width:100% !important;
  border:1px solid rgba(230,190,103,.85) !important;
  border-radius:14px !important;
  background:#fff !important;
  padding:15px 16px !important;
  font-size:15px !important;
  font-weight:800 !important;
  color:#2A1208 !important;
  outline:none !important;
}
.aab-field input:focus,
.aab-field textarea:focus{
  border-color:#624023 !important;
  box-shadow:0 0 0 4px rgba(98,64,35,.10) !important;
}
.aab-field textarea{
  min-height:84px !important;
  resize:vertical !important;
}
.aab-full{
  grid-column:1/-1 !important;
}
.aab-summary,
.aab-payment-note{
  border:1px solid rgba(230,190,103,.85) !important;
  background:linear-gradient(135deg,#fffdf6,#fff8e8) !important;
  border-radius:14px !important;
  padding:18px 20px !important;
  margin-bottom:12px !important;
  color:#684733 !important;
  font-size:14px !important;
  font-weight:800 !important;
  line-height:1.52 !important;
}
.aab-summary b,
.aab-payment-note h5{
  color:#624023 !important;
}
.aab-payment-note h5{
  margin:0 0 14px !important;
  font-size:15px !important;
}
.aab-payment-note p{
  margin:0 0 12px !important;
}
.aab-status{
  font-weight:950 !important;
  margin:8px 0 !important;
  color:#A73319 !important;
}
.aab-status.success{
  color:#167a3b !important;
}
.aab-actions{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
  margin-top:18px !important;
}
.aab-next,
.aab-cancel{
  height:66px !important;
  border-radius:16px !important;
  font-size:18px !important;
  font-weight:950 !important;
  cursor:pointer !important;
}
.aab-next{
  background:linear-gradient(135deg,#624023,#5d3b20,#3e200a) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:0 14px 28px rgba(62,32,10,.22) !important;
}
.aab-next:hover{
  filter:brightness(1.05) !important;
  transform:translateY(-1px) !important;
}
.aab-next:disabled{
  opacity:.55 !important;
  cursor:not-allowed !important;
}
.aab-cancel{
  background:#fff !important;
  color:#624023 !important;
  border:1px solid rgba(230,190,103,.85) !important;
}
.aab-cancel:hover{
  background:#fff8e8 !important;
}
body.aab-modal-lock{
  overflow:hidden !important;
}

/* ===== Responsive ===== */
@media(max-width:900px){
  #asb-services .aab-container{width:min(760px,calc(100% - 24px)) !important;}
  #asb-services .aab-service-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:12px !important;}
  #asb-services .aab-service-card img{height:112px !important;}
  .aab-modal{width:96vw !important;border-radius:18px !important;}
  .aab-date-grid,.aab-time-grid{grid-template-columns:repeat(2,1fr) !important;}
  .aab-tabs{gap:8px !important;padding:15px 14px 8px !important;}
  .aab-tab{height:42px !important;font-size:13px !important;}
  .aab-step{padding:0 14px 18px !important;}
  .aab-modal-top{padding:22px 70px 14px 16px !important;}
  .aab-x{width:46px !important;height:46px !important;right:14px !important;top:14px !important;}
  .aab-form{grid-template-columns:1fr !important;}
  .aab-actions{grid-template-columns:1fr !important;}
  .aab-cancel{order:1 !important;}
  .aab-next{order:2 !important;}
}
@media(max-width:560px){
  #asb-services.aab-service-section{padding:34px 0 46px !important;}
  #asb-services .aab-container{width:calc(100% - 18px) !important;max-width:none !important;}
  #asb-services .aab-head h2{font-size:24px !important;}
  #asb-services .aab-head p{font-size:13px !important;}
  #asb-services .aab-category{padding:11px !important;border-radius:13px !important;margin-top:14px !important;}
  #asb-services .aab-category h3{font-size:15px !important;margin-bottom:10px !important;}
  #asb-services .aab-service-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;}
  #asb-services .aab-service-card{padding:7px !important;border-radius:11px !important;}
  #asb-services .aab-service-card img{height:82px !important;border-radius:8px !important;margin-bottom:7px !important;}
  #asb-services .aab-service-body h4{font-size:10.5px !important;line-height:1.3 !important;min-height:28px !important;margin-bottom:4px !important;}
  #asb-services .aab-service-body p{font-size:9.5px !important;line-height:1.45 !important;min-height:28px !important;margin-bottom:7px !important;}
  #asb-services .aab-price-row strong{font-size:11.5px !important;}
  #asb-services .aab-open-booking{font-size:8.5px !important;padding:6px 9px !important;min-width:54px !important;}
  .aab-modal-overlay{padding:8px !important;align-items:flex-start !important;}
  .aab-modal{max-height:96vh !important;border-radius:16px !important;}
  .aab-modal-top h3{font-size:17px !important;}
  .aab-modal-top b{font-size:15px !important;}
  .aab-step-title{align-items:flex-start !important;flex-direction:column !important;}
  .aab-step-title h4{font-size:19px !important;}
  .aab-step-title span{text-align:left !important;}
  .aab-date-grid,.aab-time-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;}
  .aab-date-card{min-height:82px !important;border-radius:15px !important;}
  .aab-date-card strong{font-size:20px !important;}
  .aab-date-card span{font-size:14px !important;}
  .aab-time-card strong{font-size:15px !important;}
  .aab-field input,.aab-field textarea{font-size:14px !important;}
  .aab-next,.aab-cancel{height:55px !important;font-size:16px !important;}
}
@media(max-width:360px){
  #asb-services .aab-service-grid{grid-template-columns:1fr !important;}
  #asb-services .aab-service-card img{height:155px !important;}
  #asb-services .aab-service-body h4{font-size:13px !important;min-height:auto !important;}
  #asb-services .aab-service-body p{font-size:11.5px !important;min-height:auto !important;}
  #asb-services .aab-open-booking{font-size:10px !important;padding:8px 13px !important;}
}
