/* Zabeeha Booking — minimal styling. Inherits theme typography/colors; only
   layout + the slot grid are styled so it blends into any WooCommerce theme. */

.zbh-form {
	margin: 1.25rem 0;
	padding: 1rem 1.25rem;
	border: 1px solid rgba( 0, 0, 0, 0.12 );
	border-radius: 10px;
}

.zbh-form .form-row {
	margin: 0 0 1rem;
}

.zbh-form label {
	display: block;
	font-weight: 600;
	font-size: 1.0625rem;
	margin-bottom: 0.35rem;
}

.zbh-instruction {
	font-size: 1rem;
	line-height: 1.5;
	color: #5a5147;
	background: #f6f1e7;
	border-left: 3px solid #15795b;
	border-radius: 6px;
	padding: 10px 14px;
	margin: 0 0 18px;
}

.zbh-form input[type="date"],
.zbh-form select {
	max-width: 320px;
	width: 100%;
	padding: 0.5rem;
}

.zbh-slots {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.zbh-slot {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	background: #ffffff !important;
	background-image: none !important;
	color: #2a2a2a !important;
	border: 1px solid #c9c2b4;
	border-radius: 8px;
	padding: 0.5rem 0.85rem;
	margin: 0;
	min-width: 64px;
	width: auto;
	cursor: pointer;
	font-size: 0.92rem;
	font-family: inherit;
	font-weight: 500;
	line-height: 1.1;
	text-transform: none !important;
	letter-spacing: normal;
	box-shadow: none !important;
	text-shadow: none;
}
.zbh-slot-time {
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.15;
}
.zbh-slot-sub {
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	opacity: 0.72;
	line-height: 1.1;
}

.zbh-slot:hover:not( [disabled] ),
.zbh-slot.is-selected {
	background: #15795b !important;
	color: #ffffff !important;
	border-color: #0f5e46;
}

.zbh-slot.is-selected {
	font-weight: 700;
}

.zbh-slot.is-low {
	border-style: dashed;
}

.zbh-slot.is-soonest:not([disabled]) {
	border-color: #15795b;
	box-shadow: 0 0 0 2px rgba(21, 121, 91, 0.25);
}
.zbh-slot.is-soonest:not([disabled]):not(.is-selected)::after {
	content: "soonest";
	font-size: 0.62rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #15795b;
	line-height: 1;
}
.zbh-back-btn {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	background: transparent !important;
	border: 0;
	box-shadow: none !important;
	text-shadow: none !important;
	color: #15795b !important;
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	text-transform: none !important;
	letter-spacing: normal;
	cursor: pointer;
	padding: 2px 0;
	margin: 0 0 10px;
}
.zbh-back-btn:hover {
	text-decoration: underline;
}
.zbh-cal-times {
	min-height: 120px;
}
.zbh-times-label {
	display: block;
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: 0.3px;
	line-height: 1.2;
	margin: 2px 0 2px;
	color: #2a2a2a;
}
.zbh-times-date {
	font-size: 1rem;
	font-weight: 700;
	color: #15795b;
	margin: 0 0 14px;
}
.zbh-cal-day.is-closed {
	background: transparent !important;
	color: #c9bfa8 !important;
	cursor: not-allowed;
	text-decoration: line-through;
	opacity: 0.55;
}

.zbh-slot.is-full,
.zbh-slot[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
	text-decoration: line-through;
}

.zbh-slot.is-mine {
	opacity: 1;
	cursor: default;
	text-decoration: none;
	background: #e8f3ee !important;
	border-color: #15795b !important;
	color: #0f5e46 !important;
	font-weight: 600;
}

.zbh-loading {
	font-style: italic;
	opacity: 0.7;
}

/* Tap-to-select choice cards (animal type, cut) — replaces dropdowns. */
.zbh-field-label {
	display: block;
	font-weight: 700;
	font-size: 1.45rem;
	line-height: 1.25;
	margin-bottom: 0.6rem;
}
.zbh-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.zbh-choices-stack {
	flex-direction: column;
}
.zbh-choices-stack .zbh-choice-full {
	width: 100%;
}
.zbh-choice {
	position: relative;
	display: block;
	margin: 0;
	cursor: pointer;
}
.zbh-choice input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.zbh-choice-box {
	display: block;
	padding: 13px 18px;
	border: 2px solid #c9c2b4;
	border-radius: 10px;
	background: #fff !important;
	color: #2a2a2a !important;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	text-shadow: none !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.zbh-choice:hover .zbh-choice-box {
	border-color: #15795b !important;
}
.zbh-choice input:checked + .zbh-choice-box {
	border-color: #15795b !important;
	background: #15795b !important;
	color: #fff !important;
	box-shadow: 0 2px 8px rgba( 21, 121, 91, 0.25 );
}
.zbh-choice input:focus-visible + .zbh-choice-box {
	outline: 2px solid #0f5e46;
	outline-offset: 2px;
}

.zbh-extra {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 16px;
	font-weight: 500;
	margin-bottom: 0.5rem;
	text-shadow: none !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.zbh-extra-price {
	font-size: 15px;
	font-weight: 700;
	color: #15795b;
	margin-left: auto;
	text-shadow: none !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.zbh-radios label {
	display: inline-block;
	font-weight: 400;
	margin-right: 1rem;
}

.zbh-hint {
	display: block;
	font-size: 0.85rem;
	opacity: 0.75;
	margin-top: 0.35rem;
}

.zbh-error {
	color: #8a1020;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.4;
	background: #fdecec;
	border: 1px solid #e7a3a3;
	border-left: 4px solid #b00020;
	border-radius: 8px;
	padding: 12px 14px;
	margin: 12px 0;
}
.zbh-error[hidden] { display: none; }

/* Outline the section that still needs attention (used instead of a popup). */
.zbh-incomplete {
	outline: 2px solid #b00020;
	outline-offset: 6px;
	border-radius: 12px;
	background: rgba( 176, 0, 32, 0.05 );
	scroll-margin-top: 90px;
}

/* ----- Inline month calendar ----- */
.zbh-cal{width:100%;max-width:460px;border:1px solid #d9cfb8;border-radius:12px;padding:16px;background:#fff;box-sizing:border-box;transform:none;filter:none;}
.zbh-cal *{text-shadow:none !important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.zbh-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.zbh-cal-title{font-weight:700;color:#2a2a2a;font-size:19px;}
.zbh-cal-nav{-webkit-appearance:none;appearance:none;border:1px solid #d9cfb8;background:#f6f1e7 !important;background-image:none !important;border-radius:8px;width:42px;height:42px;min-width:0;margin:0;cursor:pointer;font-size:22px;line-height:1;color:#15795b !important;box-shadow:none !important;text-shadow:none !important;font-family:inherit;text-transform:none !important;padding:0;}
.zbh-cal-nav:hover{background:#ece3d2 !important;}
.zbh-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.zbh-cal-dow{text-align:center;font-size:14px;font-weight:600;color:#8a795a;padding:6px 0;}
.zbh-cal-day{-webkit-appearance:none;appearance:none;height:52px;width:100%;min-width:0;margin:0;border:1px solid transparent;background:#f6f1e7 !important;background-image:none !important;border-radius:8px;cursor:pointer;color:#2a2a2a !important;font-size:18px;font-family:inherit;font-weight:600;box-shadow:none !important;text-shadow:none !important;text-transform:none !important;line-height:1;padding:0;}
.zbh-cal-day:hover{background:#15795b !important;color:#fff !important;}
.zbh-cal-empty{height:52px;visibility:hidden;}
.zbh-cal-day.is-disabled{background:transparent !important;color:#cdbf9f !important;cursor:not-allowed;}
.zbh-cal-day.is-selected{background:#15795b !important;color:#fff !important;border-color:#0f5e46;font-weight:700;}
.zbh-cal-day.is-suggested{background:#d9efe6 !important;border:2px solid #15795b !important;color:#0f5e46 !important;font-weight:800;box-shadow:0 0 0 3px rgba(21,121,91,.30) !important;}
.zbh-cal-day.is-suggested:hover{background:#15795b !important;color:#fff !important;}
.zbh-scarcity{display:inline-block;margin:6px 0;padding:3px 10px;border-radius:6px;background:#fbe8e8;color:#a3261f;font-size:13px;font-weight:600;}

/* ----- Cooling-cut acknowledgment (palm/small) ----- */
.zbh-cooling-note{margin:0 0 10px;padding:10px 12px;background:#fff7e6;border-left:3px solid #d99a00;border-radius:6px;font-size:14px;line-height:1.45;color:#4a3a10;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.zbh-danger-note{background:#fdecec;border-left:4px solid #b00020;color:#7a0d1b;}
.zbh-danger-note strong{color:#9a0f20;}
.zbh-loud{display:block;font-size:1.05rem;font-weight:800;color:#b00020;text-transform:uppercase;letter-spacing:.3px;line-height:1.25;margin-bottom:6px;}
.zbh-perlb-ack label,.zbh-byweight-ack label{font-size:14px;line-height:1.45;}

/* ----- Head pick-one extra + live total ----- */
.zbh-head-extra{margin-top:6px;}
.zbh-next-hint{display:flex;align-items:center;gap:9px;margin:0 0 14px;padding:11px 14px;background:#eef6f2;border:1px solid #cfe6dc;border-left:4px solid #15795b;border-radius:8px;font-size:14px;line-height:1.4;color:#22372f;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.zbh-next-hint .zbh-hint-tag{flex:0 0 auto;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#fff !important;background:#15795b;padding:3px 9px;border-radius:20px;}
.zbh-next-hint .zbh-hint-msg{font-weight:600;}
.zbh-next-hint.zbh-hint-ready{background:#eaf7ee;border-color:#bfe3c8;border-left-color:#1a7f37;}
.zbh-next-hint.zbh-hint-ready .zbh-hint-tag{background:#1a7f37;}
.zbh-head-choices{margin-top:10px;padding:12px 14px;border-left:3px solid #15795b;background:#f3f8f6;border-radius:0 8px 8px 0;}
.zbh-head-prompt{display:block;font-size:14px;font-weight:700;color:#15795b;margin-bottom:4px;}
.zbh-total-row{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#f1f7f4;border:1px solid #cfe6dc;border-radius:10px;}
.zbh-total-items{list-style:none;margin:0;padding:0;}
.zbh-total-items li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;font-size:15px;color:#2a2a2a;border-bottom:1px dashed #cfe6dc;}
.zbh-total-items li:last-child{border-bottom:0;}
.zbh-ti-label{flex:1 1 auto;line-height:1.35;}
.zbh-ti-amt{flex:0 0 auto;font-weight:600;white-space:nowrap;color:#2a2a2a;}
.zbh-total-line{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-top:8px;border-top:2px solid #bcdccf;}
.zbh-total-label{font-size:16px;font-weight:700;color:#2a2a2a;}
.zbh-total-amount{font-size:22px;font-weight:800;color:#15795b;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.zbh-total-note{font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;line-height:1.4;color:#9a4d00;}

/* ----- "Select a date and time" prompt (hides once a time is picked) ----- */
.zbh-pick-prompt{margin:14px 0 4px;padding:12px 14px;background:#fff7e6;border:1px solid #e6cf9a;border-left:4px solid #d99a00;border-radius:8px;font-size:15px;line-height:1.5;color:#4a3a10;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.zbh-pick-prompt strong{color:#3a2e0a;}

/* ----- Head cut-style follow-up + brain guard ----- */
.zbh-head-cut-style{margin-top:10px;padding:12px 14px;border-left:3px solid #d99a00;background:#fffaf0;border-radius:0 8px 8px 0;}
.zbh-head-cut-label{display:block;font-size:14px;font-weight:700;color:#7a4d00;margin-bottom:6px;}
.zbh-extra-disabled{opacity:.45;}
.zbh-brain-note{display:block;font-size:13px;color:#a86b00;margin:2px 0 6px 26px;}

/* ----- Added-to-cart popup ----- */
.zbh-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;}
.zbh-modal[hidden]{display:none;}
.zbh-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);}
.zbh-modal-card{position:relative;background:#fff;border-radius:14px;padding:26px 22px 22px;max-width:340px;width:90%;text-align:center;box-shadow:0 14px 44px rgba(0,0,0,.28);}
.zbh-modal-close{position:absolute;top:6px;right:12px;border:none;background:none;font-size:26px;line-height:1;cursor:pointer;color:#9a9a9a;}
.zbh-modal-title{font-size:20px;font-weight:800;color:#15795b;margin:2px 0 4px;-webkit-font-smoothing:antialiased;}
.zbh-modal-sub{font-size:15px;color:#555;margin:0 0 18px;}
.zbh-modal-actions{display:flex;flex-direction:column;gap:10px;}
.zbh-modal-actions button{padding:13px 16px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;border:2px solid #15795b;-webkit-font-smoothing:antialiased;}
.zbh-modal-more{background:#fff;color:#15795b;}
.zbh-modal-checkout{background:#15795b;color:#fff;}
