/* Anshu Booking Flow - styles. Brand colours are the three variables below. */
:root{
  --ab-primary:#03449B;
  --ab-accent:#FDDF71;
  --ab-text:#1f2937;
  --ab-radius:16px;
}
html.ab-lock, html.ab-lock body{overflow:hidden}

/* ---------- overlay + dialog ---------- */
.ab-overlay{position:fixed;inset:0;z-index:999999;background:rgba(8,20,48,.62);display:none;align-items:center;justify-content:center;padding:16px;-webkit-overflow-scrolling:touch}
.ab-overlay.ab-open{display:flex}
.ab-dialog{position:relative;width:100%;max-width:460px;max-height:92vh;overflow-y:auto;background:#fff;border-radius:var(--ab-radius);padding:28px 26px 22px;box-shadow:0 24px 60px rgba(0,0,0,.28);color:var(--ab-text);font-family:Helvetica,Arial,sans-serif;animation:abUp .22s ease-out}
@keyframes abUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.ab-x{position:absolute;top:10px;right:12px;width:38px;height:38px;border:0;background:transparent;font-size:30px;line-height:1;color:#6b7280;cursor:pointer;border-radius:50%}
.ab-x:hover{background:#f1f5f9}
.ab-head{margin:0 34px 18px 0}
.ab-head h3{margin:0 0 4px;font-family:Georgia,serif;font-weight:400;font-size:24px;line-height:1.25;color:var(--ab-primary)}
.ab-price{margin:0;font-size:20px;font-weight:700;color:var(--ab-text)}
.ab-price:empty{display:none}

/* ---------- form ---------- */
.ab-form label{display:block;margin:0 0 14px;font-size:14px;font-weight:600;color:#374151}
.ab-req{color:#dc2626}
.ab-opt{font-weight:400;color:#6b7280}
.ab-form input[type=text],.ab-form input[type=email],.ab-form input[type=tel],.ab-form textarea{
  display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:13px 14px;font-size:16px;font-family:inherit;
  border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--ab-text);outline:none;transition:border-color .15s,box-shadow .15s}
.ab-form textarea{resize:vertical;min-height:84px}
.ab-form input:focus,.ab-form textarea:focus{border-color:var(--ab-primary);box-shadow:0 0 0 3px rgba(3,68,155,.15)}
.ab-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.ab-error{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:14px;line-height:1.4}
.ab-submit,.ab-btn{display:inline-block;width:100%;box-sizing:border-box;padding:15px 22px;border:0;border-radius:999px;background:var(--ab-primary);color:#fff;font-size:17px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer;font-family:inherit;transition:transform .15s,opacity .15s}
.ab-submit:hover,.ab-btn:hover{transform:translateY(-1px);opacity:.93;color:#fff}
.ab-submit:disabled{opacity:.6;cursor:wait;transform:none}
.ab-secure{margin:12px 0 0;text-align:center;font-size:12px;color:#6b7280}

/* ---------- thank-you / pay page card ---------- */
.ab-card{max-width:560px;margin:40px auto;padding:36px 28px;background:#fff;border-radius:20px;box-shadow:0 12px 40px rgba(3,68,155,.12);color:var(--ab-text);font-family:Helvetica,Arial,sans-serif}.ab-center{text-align:center}
.ab-card h2{margin:0 0 10px;font-family:Georgia,serif;font-weight:400;font-size:30px;line-height:1.2;color:var(--ab-primary)}
.ab-card p{margin:0 0 14px;font-size:16px;line-height:1.55}
.ab-card .ab-btn{width:auto;min-width:240px}
.ab-btn-ghost{background:transparent;color:var(--ab-primary);border:2px solid var(--ab-primary)}
.ab-btn-ghost:hover{color:var(--ab-primary)}
.ab-sub{font-size:18px}
.ab-small{font-size:14px!important;color:#6b7280}
.ab-ref{font-size:12px!important;margin-top:18px}
.ab-ok{color:#047857;font-weight:700}
.ab-link{background:none;border:0;padding:0;color:var(--ab-primary);text-decoration:underline;font-size:14px;cursor:pointer;font-family:inherit}
.ab-tick{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:#10b981;color:#fff;font-size:34px;line-height:64px}

/* ---------- mobile: bottom sheet ---------- */
@media (max-width:600px){
  .ab-overlay{align-items:flex-end;padding:0}
  .ab-dialog{max-width:none;max-height:94vh;border-radius:22px 22px 0 0;padding:24px 18px calc(18px + env(safe-area-inset-bottom))}
  .ab-head h3{font-size:22px}
  .ab-card{margin:20px 14px;padding:28px 18px}
  .ab-card h2{font-size:26px}
  .ab-card .ab-btn{width:100%;min-width:0}
  .ab-inline-wrap{padding:0 14px}
  .ab-inline{padding:26px 18px}
}

/* ---------- inline form (shortcode / registration page) ---------- */
.ab-inline-wrap{max-width:620px;margin:36px auto;padding:0 16px}
.ab-inline-auto{margin:48px auto 64px}
.ab-inline{background:#fff;border-radius:20px;box-shadow:0 12px 40px rgba(3,68,155,.12);color:var(--ab-text);font-family:Helvetica,Arial,sans-serif;padding:32px 28px}
.ab-inline .ab-head{margin:0 0 18px}
.ab-inline .ab-price:empty{display:none}

/* ---------- toast + newsletter feedback ---------- */
.ab-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);max-width:min(520px,92vw);background:#0f172a;color:#fff;padding:14px 20px;border-radius:12px;font-size:15px;line-height:1.4;font-family:Helvetica,Arial,sans-serif;box-shadow:0 12px 30px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:1000001;text-align:center}
.ab-toast-show{opacity:1;transform:translate(-50%,0)}
.ab-nl-ok{margin:12px 0 0;color:#10b981;font-weight:600;font-size:14px}

/* ================= v1.2 fixes: visibility on any theme ================= */
/* Continue / Pay buttons: always blue with white text, even if the theme restyles <button> */
.ab-form .ab-submit,button.ab-submit,.ab-inline .ab-submit,.ab-dialog .ab-submit{
  background:var(--ab-primary)!important;color:#fff!important;border:0!important;
  text-transform:none!important;letter-spacing:normal!important;box-shadow:none!important;
  width:100%;min-height:50px;opacity:1;-webkit-text-fill-color:#fff!important}
.ab-form .ab-submit:hover,button.ab-submit:hover{background:#02367d!important;color:#fff!important}
.ab-form .ab-submit:disabled{opacity:.65!important}
/* anchor buttons (Back to home, Book your slot ...) */
a.ab-btn,a.ab-btn:visited,a.ab-btn:hover,a.ab-btn:focus,button.ab-btn{
  background:var(--ab-primary)!important;color:#fff!important;text-decoration:none!important;
  text-transform:none!important;border:0!important;-webkit-text-fill-color:#fff!important}
a.ab-btn.ab-btn-ghost,a.ab-btn.ab-btn-ghost:visited,a.ab-btn.ab-btn-ghost:hover{
  background:transparent!important;color:var(--ab-primary)!important;border:2px solid var(--ab-primary)!important;-webkit-text-fill-color:var(--ab-primary)!important}
.ab-link{background:none!important;color:var(--ab-primary)!important;text-transform:none!important}
.ab-card h2,.ab-card p,.ab-head h3{text-transform:none!important;letter-spacing:normal!important}
.ab-card h2{font-size:30px!important;line-height:1.2!important;font-weight:400!important}

/* Thank-you + payment pages: only the card - no theme title, header or footer */
body.ab-flow-page header,body.ab-flow-page footer,
body.ab-flow-page .elementor-location-header,body.ab-flow-page .elementor-location-footer,
body.ab-flow-page #masthead,body.ab-flow-page .site-header,body.ab-flow-page .site-footer,
body.ab-flow-page #site-header,body.ab-flow-page #site-footer,
body.ab-flow-page .entry-title,body.ab-flow-page .page-title,body.ab-flow-page .page-header,
body.ab-flow-page .entry-header,body.ab-flow-page .elementor-widget-theme-page-title,
body.ab-flow-page .elementor-widget-theme-post-title,body.ab-flow-page .elementor-widget-page-title,
body.ab-flow-page .elementor-widget-heading.ab-hide{display:none!important}
body.ab-flow-page .ab-card{margin:9vh auto}
@media (max-width:600px){
  .ab-card h2{font-size:26px!important}
  body.ab-flow-page .ab-card{margin:6vh 14px}
}

/* form-only flow */
.ab-nopay .ab-secure{display:none}
.ab-done{text-align:center;padding:14px 4px 6px}
.ab-done h3{margin:0 0 8px;font-family:Georgia,serif;font-weight:400;font-size:26px;color:var(--ab-primary)}
.ab-done p{margin:0 0 18px;font-size:16px;line-height:1.55;color:var(--ab-text)}
.ab-done .ab-submit{max-width:220px}
