.ab-form{max-width:620px;margin:0 auto;font-size:16px;line-height:1.4;color:#222}
.ab-form h3{margin:0 0 14px;font-size:20px;color:#111}
.ab-form label{color:#333}
.ab-notice,.ab-loading{color:#666;padding:10px 0}

.ab-steps{display:flex;list-style:none;padding:0;margin:0 0 20px;gap:6px;counter-reset:s}
.ab-steps li{flex:1;text-align:center;font-size:12px;color:#999;padding-top:22px;position:relative}
.ab-steps li:before{counter-increment:s;content:counter(s);position:absolute;top:0;left:50%;transform:translateX(-50%);
	width:22px;height:22px;line-height:22px;border-radius:50%;background:#e5e7eb;color:#666;font-weight:600}
.ab-steps li.is-active{color:#2e7d67}
.ab-steps li.is-active:before{background:#2e7d67;color:#fff}

.ab-cards{display:flex;gap:14px;flex-wrap:wrap}
.ab-form .ab-card{flex:1;min-width:200px;border:2px solid #e5e7eb;border-radius:12px;background:#fff !important;padding:20px 18px;cursor:pointer;
	display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-align:left;text-transform:none;transition:.15s;color:#111 !important}
.ab-form .ab-card:hover{border-color:#2e7d67;background:#fff !important;color:#111 !important}
.ab-form .ab-card.is-selected{border-color:#2e7d67;box-shadow:0 0 0 3px rgba(46,125,103,.15)}
.ab-form .ab-card-title{display:block;font-weight:700;font-size:18px;color:#000 !important;line-height:1.2}
.ab-form .ab-card-desc{display:block;font-weight:400;font-size:14px;color:#333 !important;line-height:1.4}
.ab-card-pkg{position:relative;border-color:#c7e3d9}
.ab-form .ab-card-flag{align-self:flex-start;background:#2e7d67 !important;color:#fff !important;font-size:11px;font-weight:700;
	text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:999px}
.ab-pkg-note{background:#f0f7f4;border:1px solid #cfe6dd;color:#1c5a49;border-radius:8px;padding:10px 12px;font-size:14px;margin:0 0 14px}

.ab-time-help{background:#f0f7f4;border:1px solid #cfe6dd;color:#1c5a49 !important;border-radius:8px;padding:10px 12px;font-size:14px;margin:0 0 12px}
.ab-hint{color:#555 !important;margin:0 0 10px}
.ab-picked{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;min-height:10px}
.ab-pill{font-size:13px;padding:4px 10px;border-radius:999px;font-weight:600}
.ab-pill-1{background:#2e7d67;color:#fff}
.ab-pill-2{background:#dff3ec;color:#1c5a49}

.ab-calendar{max-height:340px;overflow:auto;border:1px solid #eee;border-radius:10px;padding:6px 12px}
.ab-day{padding:10px 0;border-bottom:1px solid #f1f1f1}
.ab-day:last-child{border-bottom:none}
.ab-day-label{font-weight:600;font-size:14px;margin-bottom:8px}
.ab-slots{display:flex;flex-wrap:wrap;gap:8px}
.ab-form .ab-slot{border:1px solid #cfd8d4;background:#fff !important;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:14px;color:#111 !important;text-transform:none}
.ab-form .ab-slot:hover{border-color:#2e7d67}
.ab-form .ab-slot.is-1{background:#2e7d67 !important;color:#fff !important;border-color:#2e7d67}
.ab-form .ab-slot.is-2{background:#dff3ec !important;border-color:#2e7d67;color:#1c5a49 !important}

.ab-form label{display:block;margin:0 0 14px;font-size:14px;font-weight:600;color:#333}
.ab-form input[type=text],.ab-form input[type=email],.ab-form input[type=tel],.ab-form textarea{
	width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;border:1px solid #cfd8d4;border-radius:8px;font-size:15px;font-weight:400}
.ab-check{display:flex;gap:8px;align-items:flex-start;font-weight:400}
.ab-check input{margin-top:3px}

.ab-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}
.ab-form .ab-back,.ab-form .ab-next,.ab-form .ab-pay{border:none;border-radius:8px;padding:12px 20px;font-size:15px;cursor:pointer;font-weight:600;text-transform:none}
.ab-form .ab-back{background:#eee !important;color:#333 !important}
.ab-form .ab-next,.ab-form .ab-pay{background:#2e7d67 !important;color:#fff !important}
.ab-form .ab-next:disabled{background:#b6c7c1 !important;cursor:not-allowed}
.ab-pay:disabled{opacity:.7;cursor:progress}

.ab-summary .ab-sumtable{width:100%;border-collapse:collapse;font-size:15px}
.ab-sumtable td{padding:8px 0;border-bottom:1px solid #f1f1f1;vertical-align:top}
.ab-sumtable td:first-child{color:#888;width:120px}
.ab-fineprint{font-size:13px;color:#777;margin-top:12px}
.ab-error{background:#fdecec;color:#a12b2b;border-radius:8px;padding:10px 12px;margin-top:12px;font-size:14px}

/* ---------- Floating button ---------- */
.ab-fab{position:fixed;z-index:99998;background:var(--ab-btn,#2e7d67);color:#fff;border:none;cursor:pointer;
	font-size:15px;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.22);text-decoration:none;line-height:1;
	display:inline-flex;align-items:center;gap:8px;transition:transform .15s ease,box-shadow .15s ease}
.ab-fab:hover{box-shadow:0 8px 22px rgba(0,0,0,.28)}
.ab-fab-ico{flex:none}

/* Style: side tab (subtle, edge of screen) */
.ab-style-side_tab{writing-mode:vertical-rl;padding:18px 12px}
.ab-style-side_tab .ab-fab-ico{display:none}
.ab-style-side_tab.ab-side-right{right:0;top:50%;transform:translateY(-50%) rotate(180deg);border-radius:8px 0 0 8px}
.ab-style-side_tab.ab-side-left{left:0;top:50%;transform:translateY(-50%);border-radius:0 8px 8px 0}

/* Style: corner pill (prominent, recommended for desktop) */
.ab-style-corner_pill{bottom:22px;padding:14px 22px;border-radius:999px;font-size:16px}
.ab-style-corner_pill.ab-side-right{right:22px}
.ab-style-corner_pill.ab-side-left{left:22px}
.ab-style-corner_pill:hover{transform:translateY(-2px)}

/* Style: bottom bar (full width, highest converting on mobile) */
.ab-style-bottom_bar{left:0;right:0;bottom:0;width:100%;justify-content:center;border-radius:0;
	padding:16px;font-size:17px;box-shadow:0 -4px 16px rgba(0,0,0,.16)}

/* ---------- Mobile overrides ---------- */
@media(max-width:600px){
	/* Force full-width bottom bar on phones */
	.ab-fab.ab-m-bottom_bar{left:0!important;right:0!important;bottom:0!important;top:auto!important;
		width:100%!important;writing-mode:horizontal-tb!important;transform:none!important;
		justify-content:center;border-radius:0!important;padding:16px!important;font-size:17px}
	.ab-fab.ab-m-bottom_bar .ab-fab-ico{display:inline-block}
	/* Hide on mobile */
	.ab-fab.ab-m-hidden{display:none!important}
	/* If "same", keep the desktop style but make side tabs horizontal so they're reachable */
	.ab-style-side_tab.ab-m-same{writing-mode:horizontal-tb;top:auto;bottom:0;left:0;right:0;
		transform:none;width:100%;justify-content:center;border-radius:0;padding:14px}
}

/* Slide-out panel */
.ab-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;display:none}
.ab-panel-overlay.is-open{display:block}
.ab-panel{position:absolute;top:0;right:0;height:100%;width:min(460px,92vw);background:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.2);
	overflow:auto;padding:24px;box-sizing:border-box;animation:ab-slide .25s ease}
@keyframes ab-slide{from{transform:translateX(40px);opacity:.6}to{transform:none;opacity:1}}
.ab-panel-close{position:absolute;top:10px;right:14px;border:none;background:none;font-size:28px;line-height:1;cursor:pointer;color:#999}
.ab-panel-body{margin-top:14px}

@media(max-width:600px){
	.ab-panel{width:100%}
}
