/* Grooming Suite — front-end styles */

/* Palette exposed globally so every widget (booking, portal, kiosk) can use it. */
:root {
	--gg-primary: #22bac9;
	--gg-primary-dark: #17919e;
	--gg-primary-rgb: 34, 186, 201;
	--gg-border: #e2e8f0;
	--gg-muted: #718096;
	--gg-radius: 12px;
}

.ggroom-portal,
.ggroom-kiosk {
	--gg-primary: #22bac9;
	--gg-primary-dark: #17919e;
	--gg-primary-rgb: 34, 186, 201;
	--gg-border: #e2e8f0;
	--gg-muted: #718096;
	--gg-radius: 12px;
	max-width: 900px;
	margin: 0 auto;
	color: #1a202c;
}

.ggroom-booking {
	margin: 0 auto;
	color: #1a202c;
	width: 100%;
	max-width: 1100px;
	padding: 0 20px 40px;
}
@media (min-width: 1280px) {
	.ggroom-booking { max-width: 1200px; padding: 0 32px 48px; }
}

/* Booking wizard */
.ggroom-wizard { position: relative; }
.ggroom-wizard-progress {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	counter-reset: wizard;
}
.ggroom-wizard-progress li {
	flex: 1 1 calc(50% - 8px);
	min-width: 120px;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--gg-border);
	border-radius: 10px;
	background: #fff;
	font-size: 13px;
	font-weight: 600;
	color: var(--gg-muted);
	transition: border-color .2s, background .2s, color .2s;
}
.ggroom-wizard-progress li.is-active {
	border-color: var(--gg-primary);
	background: rgba(var(--gg-primary-rgb), .08);
	color: #0f766e;
}
.ggroom-wizard-progress li.is-done {
	border-color: rgba(var(--gg-primary-rgb), .35);
	color: #1a202c;
}
.ggroom-wizard-progress li.is-clickable {
	cursor: pointer;
}
.ggroom-wizard-progress li.is-clickable:hover {
	border-color: var(--gg-primary);
	background: rgba(var(--gg-primary-rgb), .04);
}
.ggroom-wizard-progress li.is-clickable:focus {
	outline: 2px solid rgba(var(--gg-primary-rgb), .45);
	outline-offset: 2px;
}
.ggroom-wizard-step-num {
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #edf2f7;
	font-size: 13px;
	font-weight: 700;
}
.ggroom-wizard-progress li.is-active .ggroom-wizard-step-num,
.ggroom-wizard-progress li.is-done .ggroom-wizard-step-num {
	background: var(--gg-primary);
	color: #fff;
}
.ggroom-wizard-panel-title {
	margin: 0 0 8px;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.25;
}
.ggroom-wizard-panel[hidden] { display: none !important; }
.ggroom-wizard-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
	align-items: center;
	margin-top: 8px;
	padding: 16px 0 0;
	position: sticky;
	bottom: 0;
	background: linear-gradient(to top, #fff 70%, rgba(255,255,255,0));
	z-index: 5;
}
.ggroom-wizard-nav .ggroom-btn-primary { margin-left: auto; }
.ggroom-wizard-nav #ggroom-wizard-prev { margin-right: auto; }
@media (min-width: 900px) {
	.ggroom-wizard-progress li { flex: 1 1 auto; }
	.ggroom-wizard-progress { flex-wrap: nowrap; }
	.ggroom-step { padding: 28px 32px; }
	.ggroom-datetime {
		display: grid;
		grid-template-columns: minmax(300px, 380px) 1fr;
		gap: 32px;
		align-items: start;
	}
	.ggroom-booking .ggroom-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 640px) {
	.ggroom-wizard-progress li { flex: 1 1 auto; }
	.ggroom-wizard-progress { flex-wrap: nowrap; }
}
@media (max-width: 480px) {
	.ggroom-wizard-step-label { font-size: 12px; }
	.ggroom-wizard-nav {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		margin: 0;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background: #fff;
		border-top: 1px solid var(--gg-border);
		box-shadow: 0 -4px 20px rgba(0,0,0,.06);
	}
	.ggroom-wizard { padding-bottom: 80px; }
}

/* Buttons */
.ggroom-btn {
	display: inline-block;
	padding: 10px 18px;
	border-radius: 8px;
	border: 1px solid var(--gg-primary);
	background: var(--gg-primary);
	color: #fff !important;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background .15s ease;
	line-height: 1.2;
}
.ggroom-btn:hover { background: var(--gg-primary-dark); border-color: var(--gg-primary-dark); }
.ggroom-btn-outline { background: transparent; color: var(--gg-primary) !important; }
.ggroom-btn-outline:hover { background: rgba(var(--gg-primary-rgb), .08); }
.ggroom-btn-primary { font-size: 16px; }
.ggroom-btn-large { padding: 16px 28px; font-size: 18px; }
.ggroom-btn-small { padding: 6px 12px; font-size: 13px; }
.ggroom-btn-danger { background: #e53e3e; border-color: #e53e3e; }
.ggroom-btn-danger:hover { background: #c53030; border-color: #c53030; }

/* Steps / fieldsets */
.ggroom-step {
	border: 1px solid var(--gg-border);
	border-radius: var(--gg-radius);
	padding: 20px 24px;
	margin: 0 0 12px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.ggroom-wizard .ggroom-step > legend.ggroom-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	border: 0;
}
.ggroom-billing-address {
	padding: 12px 14px;
	margin: 8px 0 12px;
	background: #f7fafc;
	border: 1px solid var(--gg-border);
	border-radius: var(--gg-radius);
	font-weight: 500;
	line-height: 1.5;
}
.ggroom-booking-pets-link-wrap { margin: 0 0 12px; }
.ggroom-booking-pets-link {
	font-size: 14px;
	font-weight: 600;
	color: var(--gg-primary);
	text-decoration: none;
}
.ggroom-booking-pets-link:hover { text-decoration: underline; }
.ggroom-visit-line.is-committed {
	margin-bottom: 14px;
}
.ggroom-line-summary {
	margin-bottom: 0;
}
.ggroom-line-summary-card {
	display: flex;
	align-items: stretch;
	gap: 14px;
	padding: 14px 16px;
	border: 1px solid rgba(var(--gg-primary-rgb), .35);
	border-radius: 14px;
	background: #fff;
}
.ggroom-line-summary-media {
	flex: 0 0 56px;
}
.ggroom-line-summary-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	background: #edf2f7;
}
.ggroom-line-summary-grid {
	flex: 1 1 auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 16px;
	min-width: 0;
}
.ggroom-line-summary-col {
	min-width: 0;
}
.ggroom-line-summary-label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: var(--gg-primary);
	margin-bottom: 4px;
	line-height: 1.2;
}
.ggroom-line-summary-value {
	display: block;
	font-size: 15px;
	font-weight: 800;
	color: #1a202c;
	line-height: 1.25;
	word-break: break-word;
}
.ggroom-line-summary-price {
	color: #1a202c;
}
.ggroom-line-summary-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px;
	flex-shrink: 0;
	min-width: 48px;
}
.ggroom-line-summary-remove {
	border: 0;
	background: transparent;
	color: #94a3b8;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	padding: 2px 4px;
}
.ggroom-line-summary-remove:hover {
	color: #64748b;
}
.ggroom-line-summary-actions .ggroom-edit-line {
	font-size: 14px;
	font-weight: 700;
	color: var(--gg-primary);
	padding: 0;
}
@media (min-width: 720px) {
	.ggroom-line-summary-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
.ggroom-line-actions { margin-top: 12px; }
.ggroom-commit-line {
	display: block;
	width: 100%;
	text-align: center;
	background: #22c55e !important;
	border-color: #16a34a !important;
	color: #fff !important;
	padding: 14px 18px;
	font-size: 16px;
}
.ggroom-commit-line:hover,
.ggroom-commit-line:focus {
	background: #16a34a !important;
	border-color: #15803d !important;
	color: #fff !important;
}
.ggroom-visit-total-line { display: inline-block; margin-bottom: 6px; }
.ggroom-slot-call-btn {
	appearance: none;
	border: 0;
	background: transparent;
	cursor: pointer;
	font: inherit;
}
.ggroom-phone-display {
	font-size: 28px;
	font-weight: 800;
	text-align: center;
	margin: 8px 0 20px;
	color: var(--gg-primary);
}
.ggroom-phone-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}
.ggroom-phone-dialog { max-width: 420px; }

.ggroom-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.ggroom-field label,
.ggroom-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.ggroom-field input,
.ggroom-field select,
.ggroom-field textarea,
.ggroom-form input,
.ggroom-form select,
.ggroom-form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--gg-border);
	border-radius: 8px;
	font-size: 15px;
	box-sizing: border-box;
}

.ggroom-hint { font-weight: 600; margin: 14px 0 8px; color: var(--gg-muted); }

/* Yes/No toggle fields */
.ggroom-yesno-toggle {
	display: inline-flex;
	border: 1px solid var(--gg-border);
	border-radius: 999px;
	overflow: hidden;
	margin-bottom: 10px;
}
.ggroom-yesno-option {
	margin: 0;
	cursor: pointer;
}
.ggroom-yesno-option input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.ggroom-yesno-option span {
	display: block;
	padding: 8px 18px;
	font-weight: 600;
	font-size: 14px;
	color: var(--gg-muted);
	background: #fff;
}
.ggroom-yesno-option input:checked + span {
	background: var(--gg-primary);
	color: #fff;
}
.ggroom-yesno-detail textarea {
	margin-top: 4px;
}

/* Services */
.ggroom-services {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}
.ggroom-service-card {
	position: relative;
	border: 2px solid var(--gg-border);
	border-radius: var(--gg-radius);
	padding: 16px;
	cursor: pointer;
	display: block;
}
.ggroom-service-card input { position: absolute; opacity: 0; }
.ggroom-service-card:has(input:checked) { border-color: var(--gg-primary); box-shadow: 0 0 0 3px rgba(var(--gg-primary-rgb), .12); }
.ggroom-service-body { display: flex; flex-direction: column; gap: 4px; }
.ggroom-service-name { font-weight: 700; font-size: 16px; }
.ggroom-service-price { color: var(--gg-primary); font-weight: 700; }
.ggroom-service-meta { color: var(--gg-muted); font-size: 13px; }
.ggroom-service-desc { font-size: 13px; color: var(--gg-muted); }

/* Summary */
.ggroom-summary { margin: 12px 0 20px; }
.ggroom-deposit-note { color: var(--gg-muted); font-size: 14px; }
.ggroom-total { font-size: 18px; display: flex; gap: 8px; align-items: baseline; }
.ggroom-total strong { color: var(--gg-primary); font-size: 22px; }

/* Messages */
.ggroom-message { padding: 12px 16px; border-radius: 8px; margin: 12px 0; font-weight: 600; }
.ggroom-success { background: #f0fff4; border: 1px solid #9ae6b4; color: #22543d; }
.ggroom-error { background: #fff5f5; border: 1px solid #feb2b2; color: #742a2a; }
.ggroom-notice { background: rgba(var(--gg-primary-rgb), .08); border: 1px solid rgba(var(--gg-primary-rgb), .28); border-radius: var(--gg-radius); padding: 20px; }

/* Portal */
.ggroom-portal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ggroom-portal-booking-cta {
	margin-bottom: 20px;
}
.ggroom-portal-booking-cta .ggroom-btn-large {
	padding: 14px 28px;
	font-size: 16px;
}
.ggroom-portal-tabs { display: flex; gap: 8px; border-bottom: 2px solid var(--gg-border); margin-bottom: 20px; flex-wrap: wrap; }
.ggroom-tab {
	border: none; background: none; padding: 12px 16px; font-size: 15px; font-weight: 600;
	cursor: pointer; color: var(--gg-muted); border-bottom: 3px solid transparent; margin-bottom: -2px;
}
.ggroom-tab.is-active { color: var(--gg-primary); border-bottom-color: var(--gg-primary); }
.ggroom-tab-panel { display: none; }
.ggroom-tab-panel.is-active { display: block; }

.ggroom-pet-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin-bottom: 24px; }
.ggroom-pet-card { border: 1px solid var(--gg-border); border-radius: var(--gg-radius); padding: 16px; }
.ggroom-pet-card h4 { margin: 0 0 8px; display: flex; align-items: center; gap: 8px; }
.ggroom-pet-card ul { list-style: none; padding: 0; margin: 0 0 12px; font-size: 14px; }
.ggroom-badge { background: #edf2f7; color: var(--gg-muted); border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 600; }
.ggroom-pet-actions { display: flex; gap: 8px; align-items: stretch; margin-top: 4px; }
.ggroom-pet-actions form { margin: 0; display: flex; }
.ggroom-icon-btn {
	display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; line-height: 1;
	border-radius: 8px; border: 1px solid var(--gg-border); background: #fff; color: #2d3748;
	font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: none; font-family: inherit;
}
.ggroom-icon-btn:hover { background: #f7fafc; border-color: #cbd5e0; }
.ggroom-icon-btn.is-danger { color: #c53030; border-color: #fed7d7; background: #fff5f5; }
.ggroom-icon-btn.is-danger:hover { background: #fed7d7; }
.ggroom-icon-btn .ggroom-ico { font-size: 15px; line-height: 1; }
.ggroom-detail-list { list-style: none; padding: 0; }
.ggroom-detail-list li { padding: 6px 0; border-bottom: 1px solid var(--gg-border); }

/* Verified success screen */
.ggroom-success-screen { max-width: 520px; margin: 40px auto; text-align: center; }
.ggroom-success-screen h2 { font-size: 26px; margin: 18px 0 8px; }
.ggroom-success-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 20px; }
.ggroom-check-circle { width: 96px; height: 96px; margin: 0 auto; }
.ggroom-check-circle svg { width: 96px; height: 96px; }
.ggroom-check-bg { stroke: #38a169; stroke-width: 2; stroke-dasharray: 166; stroke-dashoffset: 166; animation: ggroom-stroke .6s cubic-bezier(.65,0,.45,1) forwards; }
.ggroom-check-mark { stroke: #38a169; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 48; stroke-dashoffset: 48; animation: ggroom-stroke .35s cubic-bezier(.65,0,.45,1) .6s forwards; }
@keyframes ggroom-stroke { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
	.ggroom-check-bg, .ggroom-check-mark { animation: none; stroke-dashoffset: 0; }
}

/* Tables */
.ggroom-table { width: 100%; border-collapse: collapse; margin: 12px 0 28px; }
.ggroom-table th, .ggroom-table td { text-align: left; padding: 12px; border-bottom: 1px solid var(--gg-border); vertical-align: top; }
.ggroom-table th { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--gg-muted); }
.ggroom-status { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.ggroom-status-pending { background: #fefcbf; color: #744210; }
.ggroom-status-confirmed { background: #c6f6d5; color: #22543d; }
.ggroom-status-completed { background: rgba(var(--gg-primary-rgb), .18); color: #0f5f6a; }
.ggroom-status-cancelled, .ggroom-status-no_show { background: #fed7d7; color: #742a2a; }
.ggroom-billing { font-size: 13px; line-height: 1.6; }

.ggroom-req { color: #e53e3e; }
.ggroom-field-label { display: block; font-weight: 600; margin-bottom: 6px; }
.ggroom-col-2 { grid-column: 1 / -1; }
.ggroom-check { display: flex; align-items: center; gap: 8px; font-weight: 600; margin-bottom: 12px; }
.ggroom-check[hidden] { display: none !important; }
.ggroom-check input { width: auto; }
.ggroom-hint { font-size: 14px; }

/* Add-on cards */
.ggroom-addons { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.ggroom-addon-card {
	position: relative; display: flex; flex-direction: column; background: #fff;
	border: 2px solid var(--gg-border); border-radius: 14px; overflow: hidden; transition: border-color .15s, box-shadow .15s;
}
.ggroom-addon-card > input { position: absolute; opacity: 0; width: 0; height: 0; }
.ggroom-addon-card:has(input:checked) { border-color: var(--gg-primary); box-shadow: 0 0 0 3px rgba(var(--gg-primary-rgb), .12); }
.ggroom-addon-top { display: flex; gap: 12px; padding: 16px; align-items: flex-start; }
.ggroom-addon-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.ggroom-addon-name { font-weight: 800; font-size: 18px; color: #1a202c; }
.ggroom-addon-desc {
	font-size: 13px; color: var(--gg-muted); margin: 0; line-height: 1.45;
	display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.ggroom-addon-price { font-weight: 800; color: var(--gg-primary); font-size: 18px; margin-top: 4px; }
.ggroom-addon-media { flex: 0 0 92px; }
.ggroom-addon-media img { width: 92px; height: 92px; object-fit: cover; border-radius: 10px; display: block; }
.ggroom-addon-actions { display: flex; margin-top: auto; border-top: 1px solid var(--gg-border); }
.ggroom-addon-toggle {
	flex: 1; text-align: center; padding: 13px; font-weight: 700; cursor: pointer;
	background: var(--gg-primary); color: #fff; text-transform: uppercase; font-size: 13px; letter-spacing: .03em; border: 0;
}
.ggroom-addon-card:has(input:checked) .ggroom-addon-toggle { background: #2f855a; }
.ggroom-addon-toggle .added { display: none; }
.ggroom-addon-card:has(input:checked) .ggroom-addon-toggle .add { display: none; }
.ggroom-addon-card:has(input:checked) .ggroom-addon-toggle .added { display: inline; }
.ggroom-addon-more {
	flex: 1; text-align: center; padding: 13px; font-weight: 700; text-transform: uppercase; font-size: 13px;
	color: #4a5568 !important; text-decoration: none; background: #f7fafc;
}
.ggroom-addon-more:hover { background: #edf2f7; }
.ggroom-addons.is-disabled { opacity: .55; }
.ggroom-addons.is-disabled .ggroom-addon-toggle, .ggroom-addons.is-disabled .ggroom-addon-more { pointer-events: none; }
.ggroom-addons-hint { color: var(--gg-muted); font-size: 13px; margin: 0 0 10px; }

/* Radio cards (species, sex, pay type) */
.ggroom-radio-cards { display: flex; flex-wrap: wrap; gap: 10px; }
.ggroom-radio-card {
	display: flex; align-items: center; gap: 8px; padding: 10px 16px;
	border: 2px solid var(--gg-border); border-radius: 10px; cursor: pointer; font-weight: 600;
}
.ggroom-radio-card input { position: absolute; opacity: 0; width: 0; height: 0; }
.ggroom-radio-card:has(input:checked) { border-color: var(--gg-primary); background: rgba(var(--gg-primary-rgb), .06); }
.ggroom-radio-icon { font-size: 22px; line-height: 1; }

/* Pet picker — booking step 1 */
.ggroom-booking .ggroom-pet-picker-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0 -4px;
	padding: 4px;
}
.ggroom-booking .ggroom-pet-picker {
	display: flex;
	flex-wrap: nowrap;
	gap: 16px;
	margin-bottom: 0;
	min-width: min-content;
}
.ggroom-booking .ggroom-pet-option {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: 96px;
	min-width: 96px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-align: center;
	flex: 0 0 auto;
}
.ggroom-booking .ggroom-pet-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.ggroom-booking .ggroom-pet-avatar-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	padding: 3px;
	border: 3px solid transparent;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ggroom-booking .ggroom-pet-option:has(input:checked) .ggroom-pet-avatar-wrap {
	border-color: var(--gg-primary);
	box-shadow: 0 0 0 3px rgba(var(--gg-primary-rgb), .2);
}
.ggroom-booking .ggroom-pet-avatar {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	background: #edf2f7;
}
.ggroom-booking .ggroom-pet-avatar-add {
	background: var(--gg-primary);
	color: #fff;
	font-size: 32px;
	line-height: 1;
	border: 3px dashed rgba(var(--gg-primary-rgb), .45);
}
.ggroom-booking .ggroom-pet-option-new:hover .ggroom-pet-avatar-add {
	border-style: solid;
}
.ggroom-booking .ggroom-pet-option-name {
	font-weight: 700;
	font-size: 14px;
	color: var(--gg-primary);
	width: 100%;
}
.ggroom-booking .ggroom-pet-option-species {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	color: #1a202c;
	text-transform: uppercase;
}
.ggroom-booking .ggroom-pet-option.is-unavailable {
	opacity: .55;
	cursor: not-allowed;
	pointer-events: none;
}
.ggroom-booking .ggroom-pet-option-note {
	display: block;
	width: 100%;
	font-size: 11px;
	font-weight: 600;
	color: #c53030;
	text-align: center;
	margin-top: 4px;
}

/* Product cards — services & add-ons */
.ggroom-booking .ggroom-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
}
.ggroom-booking .ggroom-product-card {
	display: flex;
	flex-direction: column;
	background: #f1f5f9;
	border-radius: 14px;
	overflow: hidden;
	border: 2px solid transparent;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ggroom-booking .ggroom-product-card.is-selected {
	border-color: var(--gg-primary);
	box-shadow: 0 0 0 3px rgba(var(--gg-primary-rgb), .15);
}
.ggroom-booking .ggroom-line-addon.is-out-of-range {
	opacity: 0.72;
	pointer-events: none;
}
.ggroom-booking .ggroom-line-addon.is-distance-quote {
	opacity: 1;
	pointer-events: auto;
}
.ggroom-booking .ggroom-line-addon.is-out-of-range .ggroom-addon-price-label,
.ggroom-booking .ggroom-line-addon.is-distance-quote .ggroom-addon-price-label {
	color: #9a3412;
	font-weight: 700;
}
.ggroom-booking .ggroom-line-addon.is-distance-quote.is-quote-requested .ggroom-addon-price-label {
	color: #4a5568;
}
.ggroom-booking .ggroom-product-add .request,
.ggroom-booking .ggroom-product-add .requested {
	display: none;
}
.ggroom-booking .ggroom-line-addon.is-distance-quote:not(.is-quote-requested) .ggroom-product-add .add,
.ggroom-booking .ggroom-line-addon.is-distance-quote:not(.is-quote-requested) .ggroom-product-add .added {
	display: none;
}
.ggroom-booking .ggroom-line-addon.is-distance-quote:not(.is-quote-requested) .ggroom-product-add .request {
	display: inline;
}
.ggroom-booking .ggroom-line-addon.is-distance-quote.is-quote-requested .ggroom-product-add .add,
.ggroom-booking .ggroom-line-addon.is-distance-quote.is-quote-requested .ggroom-product-add .added,
.ggroom-booking .ggroom-line-addon.is-distance-quote.is-quote-requested .ggroom-product-add .request {
	display: none;
}
.ggroom-booking .ggroom-line-addon.is-distance-quote.is-quote-requested .ggroom-product-add .requested {
	display: inline;
}
.ggroom-booking .ggroom-line-addon.is-distance-quote.is-quote-requested .ggroom-product-add {
	background: var(--gg-primary);
	color: #fff;
}
.ggroom-quote-route {
	margin: 0 0 16px;
	padding: 0;
}
.ggroom-quote-route-row {
	margin: 0 0 12px;
}
.ggroom-quote-route-row dt {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #64748b;
	margin: 0 0 4px;
}
.ggroom-quote-route-row dd {
	margin: 0;
	font-size: 15px;
	color: #1e293b;
	line-height: 1.45;
}
.ggroom-quote-message {
	font-size: 14px;
	line-height: 1.55;
	color: #334155;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 14px 16px;
}
.ggroom-booking .ggroom-product-top {
	display: flex;
	gap: 12px;
	padding: 14px 14px 10px;
	align-items: flex-start;
	flex: 1 1 auto;
}
.ggroom-booking .ggroom-product-info {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ggroom-booking .ggroom-product-name {
	font-weight: 800;
	font-size: 17px;
	color: var(--gg-primary);
	line-height: 1.2;
}
.ggroom-booking .ggroom-product-desc {
	font-size: 13px;
	color: var(--gg-muted);
	margin: 0;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ggroom-booking .ggroom-product-meta {
	font-size: 12px;
	color: var(--gg-muted);
}
.ggroom-booking .ggroom-product-price {
	font-weight: 800;
	font-size: 20px;
	color: #4a5568;
	margin-top: 4px;
}
.ggroom-booking .ggroom-addon-price-label {
	display: flex;
	flex-direction: column;
	gap: 2px;
	line-height: 1.25;
}
.ggroom-booking .ggroom-addon-distance-miles {
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
}
.ggroom-booking .ggroom-product-media {
	flex: 0 0 88px;
}
.ggroom-booking .ggroom-product-media img {
	width: 88px;
	height: 88px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}
.ggroom-booking .ggroom-product-actions {
	display: flex;
	margin-top: auto;
}
.ggroom-booking .ggroom-product-add,
.ggroom-booking .ggroom-product-more {
	flex: 1;
	text-align: center;
	padding: 12px 10px;
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .04em;
	border: 0;
	cursor: pointer;
	text-decoration: none;
	font-family: inherit;
	line-height: 1.2;
}
.ggroom-booking .ggroom-product-add {
	background: var(--gg-primary);
	color: #fff;
}
.ggroom-booking .ggroom-product-add:hover {
	background: var(--gg-primary-dark);
}
.ggroom-booking .ggroom-product-more {
	background: var(--gg-accent-dark, #2d3748);
	color: var(--gg-primary) !important;
}
.ggroom-booking .ggroom-product-more:hover {
	background: #1a202c;
}
.ggroom-booking .ggroom-product-card.is-selected .ggroom-product-add {
	background: #2f855a;
}
.ggroom-booking .ggroom-product-add .added { display: none; }
.ggroom-booking .ggroom-product-card.is-selected .ggroom-product-add .add { display: none; }
.ggroom-booking .ggroom-product-card.is-selected .ggroom-product-add .added { display: inline; }

/* Legacy pet picker (portal, etc.) */
.ggroom-pet-picker { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.ggroom-pet-option {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
	width: 120px; min-height: 128px; padding: 12px; box-sizing: border-box;
	border: 2px solid var(--gg-border); border-radius: 12px; cursor: pointer; text-align: center;
}
.ggroom-pet-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.ggroom-pet-option:has(input:checked) { border-color: var(--gg-primary); background: rgba(var(--gg-primary-rgb), .06); }
.ggroom-pet-avatar {
	display: flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; min-width: 56px; margin: 0 auto;
	border-radius: 50%; object-fit: cover; background: #edf2f7; flex: 0 0 auto;
}
.ggroom-pet-avatar-add {
	width: 56px; height: 56px; min-width: 56px; margin: 0 auto;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%; background: #edf2f7;
	font-size: 30px; line-height: 1; color: var(--gg-muted);
}
.ggroom-pet-option-name { font-weight: 700; font-size: 14px; width: 100%; text-align: center; }
.ggroom-pet-option-species { font-size: 12px; color: var(--gg-muted); width: 100%; text-align: center; }

/* Photo field */
.ggroom-photo-field { display: flex; align-items: center; gap: 12px; }
.ggroom-photo-preview { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; background: #edf2f7; }
.ggroom-pet-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.ggroom-pet-thumb { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: #edf2f7; }
.ggroom-pet-card-head h4 { margin: 0; }

/* Date & time */
.ggroom-datetime { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.ggroom-calendar {
	border: 1px solid var(--gg-border); border-radius: 12px; padding: 14px;
	width: 308px; box-sizing: border-box; flex: 0 0 auto;
}
.ggroom-calendar *, .ggroom-calendar *::before, .ggroom-calendar *::after { box-sizing: border-box; }
.ggroom-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ggroom-cal-title { font-weight: 700; font-size: 15px; }
.ggroom-cal-nav {
	appearance: none; -webkit-appearance: none; border: 0; margin: 0; box-shadow: none;
	background: #edf2f7; color: #1a202c; border-radius: 8px; width: 34px; height: 34px; min-width: 34px;
	padding: 0; cursor: pointer; font-size: 16px; line-height: 1; text-align: center;
}
.ggroom-cal-nav:disabled { opacity: .35; cursor: not-allowed; }
.ggroom-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; width: 100%; }
.ggroom-cal-dow {
	display: flex; align-items: center; justify-content: center;
	height: 26px; font-size: 11px; color: var(--gg-muted); font-weight: 700; text-transform: uppercase;
}
.ggroom-cal-day {
	appearance: none; -webkit-appearance: none; box-shadow: none; margin: 0; padding: 0;
	display: flex; align-items: center; justify-content: center; width: 100%; height: 38px; min-width: 0;
	border: 1px solid transparent; background: #fff; border-radius: 8px; cursor: pointer;
	font-size: 14px; line-height: 1; color: #1a202c; font-family: inherit;
}
.ggroom-cal-day:hover:not(:disabled):not(.is-empty) { background: rgba(var(--gg-primary-rgb), .12); }
.ggroom-cal-day.is-empty { background: transparent; border-color: transparent; cursor: default; visibility: hidden; }
.ggroom-cal-day.is-disabled, .ggroom-cal-day:disabled { color: #cbd5e0; cursor: not-allowed; background: #fff; }
.ggroom-cal-day.is-selected { background: var(--gg-primary); color: #fff; font-weight: 700; border-color: var(--gg-primary); }
.ggroom-slots-wrap { flex: 1 1 240px; min-width: 220px; }
.ggroom-slots-label { color: var(--gg-muted); margin-top: 0; }
.ggroom-slots { display: flex; flex-wrap: wrap; gap: 8px; }
.ggroom-slot {
	appearance: none; -webkit-appearance: none; box-shadow: none; margin: 0; font-family: inherit;
	border: 1px solid var(--gg-border); background: #fff; border-radius: 999px; padding: 8px 16px;
	cursor: pointer; font-size: 14px; font-weight: 600; color: #1a202c;
}
.ggroom-slot:hover { border-color: var(--gg-primary); }
.ggroom-slot.is-selected { background: var(--gg-primary); color: #fff; border-color: var(--gg-primary); }
.ggroom-slot-full { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
.ggroom-slot.is-full { color: #a0aec0; border-style: dashed; cursor: not-allowed; text-decoration: line-through; }
.ggroom-slot-call { font-size: 11px; font-weight: 700; color: #c53030 !important; text-transform: uppercase; text-decoration: none; letter-spacing: .02em; }
.ggroom-slot-call:hover { text-decoration: underline; }
.ggroom-slot-call-label { font-size: 11px; color: #a0aec0; }

@media (max-width: 400px) {
	.ggroom-calendar { width: 100%; }
}

/* Order-pay / checkout table polish */
.woocommerce-order-pay #order_review table.shop_table,
.woocommerce-checkout #order_review table.shop_table {
	border: 1px solid #e2e8f0; border-radius: 12px; border-collapse: separate; border-spacing: 0;
	overflow: hidden; width: 100%;
}
.woocommerce-order-pay #order_review table.shop_table thead th,
.woocommerce-checkout #order_review table.shop_table thead th {
	background: #f7fafc; color: #4a5568; text-transform: uppercase; font-size: 12px; letter-spacing: .04em;
	padding: 12px 16px; border-bottom: 1px solid #e2e8f0; text-align: left;
}
.woocommerce-order-pay #order_review table.shop_table td,
.woocommerce-order-pay #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th {
	padding: 12px 16px; border-bottom: 1px solid #edf2f7;
}
.woocommerce-order-pay #order_review table.shop_table tbody tr:nth-child(even) td,
.woocommerce-checkout #order_review table.shop_table tbody tr:nth-child(even) td {
	background: #fbfcfd;
}
.woocommerce-order-pay #order_review table.shop_table tfoot th,
.woocommerce-order-pay #order_review table.shop_table tfoot td,
.woocommerce-checkout #order_review table.shop_table tfoot th,
.woocommerce-checkout #order_review table.shop_table tfoot td {
	background: #f7fafc; font-weight: 700;
}
.woocommerce-order-pay #order_review table.shop_table tfoot tr:last-child th,
.woocommerce-order-pay #order_review table.shop_table tfoot tr:last-child td,
.woocommerce-checkout #order_review table.shop_table tfoot tr:last-child th,
.woocommerce-checkout #order_review table.shop_table tfoot tr:last-child td {
	font-size: 16px; color: #1a202c;
}
.woocommerce-order-pay #payment, .woocommerce-checkout #payment { background: #fff; border-radius: 12px; }
.woocommerce-order-pay #payment .place-order button,
.woocommerce-checkout #payment .place-order button {
	background: var(--gg-primary); border-radius: 8px;
}

/* Kiosk (tablet) */
.ggroom-kiosk { max-width: 820px; margin: 0 auto; color: #1a202c; font-size: 18px; }
.ggroom-kiosk-title { font-size: 26px; margin-bottom: 20px; }
.ggroom-kiosk-locked { max-width: 560px; margin: 40px auto; text-align: center; background: #fff5f5; border: 1px solid #feb2b2; border-radius: 12px; padding: 30px; }
.ggroom-kiosk-list { list-style: none; padding: 0; margin: 0; }
.ggroom-kiosk-item {
	display: flex; align-items: center; gap: 16px; padding: 20px; margin-bottom: 12px;
	border: 1px solid #e2e8f0; border-radius: 12px; text-decoration: none; color: inherit; background: #fff;
}
.ggroom-kiosk-item:hover { border-color: var(--gg-primary); box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.ggroom-kiosk-pet { font-weight: 700; font-size: 20px; flex: 1; }
.ggroom-kiosk-owner { color: #718096; }
.ggroom-kiosk-when { color: var(--gg-primary); font-weight: 600; }
.ggroom-kiosk-go { font-size: 24px; color: var(--gg-primary); }
.ggroom-kiosk-back { display: inline-block; margin-bottom: 16px; text-decoration: none; font-weight: 600; }
.ggroom-waiver-doc { border: 1px solid #e2e8f0; border-radius: 12px; padding: 24px; background: #fff; }
.ggroom-waiver-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin: 16px 0; }
.ggroom-waiver-grid h4 { margin: 0 0 6px; color: #718096; font-size: 14px; text-transform: uppercase; }
.ggroom-waiver-text { border-top: 1px solid #e2e8f0; margin-top: 16px; padding-top: 16px; line-height: 1.6; }
.ggroom-waiver-company { margin: 0; font-size: 24px; }
.ggroom-waiver-subtitle { text-transform: uppercase; letter-spacing: .03em; color: #4a5568; font-weight: 700; margin: 2px 0 12px; font-size: 14px; }
.ggroom-clauses { margin-top: 8px; }
.ggroom-clause { border-top: 1px solid #edf2f7; padding: 12px 0; }
.ggroom-clause-title { font-weight: 700; margin: 0 0 4px; }
.ggroom-clause-body { margin: 0 0 8px; line-height: 1.55; }
.ggroom-clause-initials { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: #4a5568; font-size: 14px; }
.ggroom-clause-initial { width: 90px; padding: 8px 10px; border: 1px solid var(--gg-border); border-radius: 8px; text-transform: uppercase; }
.ggroom-initials-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; background: #f7fafc; border: 1px dashed #cbd5e0; border-radius: 10px; padding: 12px; margin: 12px 0; }
.ggroom-initials-quick { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.ggroom-initials-quick input { width: 90px; padding: 8px 10px; border: 1px solid var(--gg-border); border-radius: 8px; text-transform: uppercase; }
.ggroom-media-consent { background: #f7fafc; border-radius: 10px; padding: 12px; }
.ggroom-signature-block { margin-top: 24px; text-align: center; }
.ggroom-signature-label { font-weight: 600; margin-bottom: 10px; }
.ggroom-signature-pad {
	width: 100%; max-width: 700px; height: auto; touch-action: none;
	border: 2px dashed #cbd5e0; border-radius: 12px; background: #fff; cursor: crosshair;
}
.ggroom-signature-actions { display: flex; gap: 12px; justify-content: center; margin-top: 16px; }
.ggroom-signature-view { max-width: 400px; border: 1px solid #e2e8f0; border-radius: 8px; }

.ggroom-visit-line {
	border: 0;
	border-radius: 0;
	padding: 0 0 24px;
	margin-bottom: 24px;
	background: transparent;
	border-bottom: 1px solid var(--gg-border);
}
.ggroom-visit-line:last-child {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}
.ggroom-step-pets .ggroom-hint {
	margin-top: 0;
	margin-bottom: 20px;
	font-weight: 500;
	font-size: 15px;
}
.ggroom-line-section {
	margin-bottom: 28px;
}
.ggroom-line-section:last-child {
	margin-bottom: 0;
}
.ggroom-line-title {
	margin: 0 0 14px;
	font-size: 22px;
	font-weight: 800;
	color: #1a202c;
	letter-spacing: -.02em;
}
.ggroom-line-empty {
	color: var(--gg-muted);
	font-size: 14px;
	margin: 8px 0 0;
}
.ggroom-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ggroom-visit-line-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
}
.ggroom-visit-line-badge {
	font-weight: 700;
	font-size: 14px;
	color: var(--gg-muted);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.ggroom-btn-add-pet {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 16px 20px;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	border-radius: 12px;
}
.ggroom-btn-text {
	background: none;
	border: none;
	color: var(--gg-muted);
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
}
.ggroom-btn-secondary {
	background: #edf2f7;
	color: var(--gg-text);
	border: 1px solid var(--gg-border);
	margin-top: 4px;
}

@media (max-width: 600px) {
	.ggroom-booking .ggroom-product-grid {
		grid-template-columns: 1fr;
	}
	.ggroom-booking .ggroom-pet-option {
		width: 88px;
		min-width: 88px;
	}
	.ggroom-booking .ggroom-pet-avatar-wrap {
		width: 64px;
		height: 64px;
	}
}

/* Breed searchable combobox */
.ggroom-breed-picker { position: relative; }
.ggroom-breed-control {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--gg-border);
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}
.ggroom-breed-picker.is-open .ggroom-breed-control {
	border-color: var(--gg-brand, #22bac9);
	box-shadow: 0 0 0 2px rgba(34, 186, 201, 0.15);
}
.ggroom-breed-search {
	flex: 1;
	width: 100%;
	padding: 10px 12px;
	border: none;
	border-radius: 0;
	font-size: 15px;
	background: transparent;
}
.ggroom-breed-search:focus { outline: none; }
.ggroom-breed-toggle {
	flex: 0 0 40px;
	border: none;
	border-left: 1px solid var(--gg-border);
	background: #f8fafc;
	color: var(--gg-muted, #64748b);
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
}
.ggroom-breed-toggle:hover { background: #f1f5f9; }
.ggroom-breed-dropdown {
	position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px);
	max-height: 320px; overflow: auto; margin: 0; padding: 6px 0; list-style: none;
	background: #fff; border: 1px solid var(--gg-border); border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.ggroom-breed-dropdown li {
	padding: 10px 12px; cursor: pointer;
}
.ggroom-breed-dropdown li.is-active,
.ggroom-breed-dropdown li:hover { background: #f0fdfa; color: #0f766e; }
.ggroom-breed-dropdown li[aria-selected="true"] { font-weight: 600; }

@media (max-width: 600px) {
	.ggroom-table thead { display: none; }
	.ggroom-table tr { display: block; border: 1px solid var(--gg-border); border-radius: 10px; margin-bottom: 12px; padding: 8px; }
	.ggroom-table td { display: flex; justify-content: space-between; border: none; padding: 8px; }
	.ggroom-table td::before { content: attr(data-label); font-weight: 700; color: var(--gg-muted); }
}

/* Front-end modal (new pet during booking) */
.ggroom-fe-modal[hidden] { display: none !important; }
.ggroom-fe-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.ggroom-fe-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.5);
	pointer-events: none;
	z-index: 0;
}
.ggroom-fe-modal-dialog {
	position: relative;
	z-index: 1;
	pointer-events: auto;
	background: #fff;
	border-radius: var(--gg-radius);
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
	width: min(840px, 100%);
	max-height: 92vh;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.ggroom-new-pet-form {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
}
.ggroom-fe-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--gg-border);
}
.ggroom-fe-modal-header h2 {
	margin: 0;
	font-size: 20px;
}
.ggroom-fe-modal-close {
	border: 0;
	background: transparent;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: var(--gg-muted);
	padding: 0 4px;
}
.ggroom-fe-modal-body {
	padding: 16px 20px;
	overflow: auto;
	flex: 1 1 auto;
}
.ggroom-fe-modal-footer {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 14px 20px 18px;
	border-top: 1px solid var(--gg-border);
	background: #f8fafc;
	flex: 0 0 auto;
	position: relative;
	z-index: 2;
}
.ggroom-modal-message {
	margin-bottom: 12px;
}
.ggroom-order-pet {
	display: block;
	color: #718096;
	font-weight: 600;
	margin-top: 4px;
}

/* Pet form sections (modal + portal) */
.ggroom-pet-section {
	margin-bottom: 20px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--gg-border);
}
.ggroom-pet-section:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}
.ggroom-pet-fields-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 16px;
}
.ggroom-pet-fields-grid .ggroom-field-name,
.ggroom-pet-fields-grid .ggroom-field-species,
.ggroom-pet-fields-grid .ggroom-field-photo,
.ggroom-pet-fields-grid .ggroom-field-medical,
.ggroom-pet-fields-grid .ggroom-field-allergies {
	grid-column: 1 / -1;
}
.ggroom-pet-section-behavior .ggroom-pet-fields-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ggroom-field-tip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	margin-left: 4px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #edf2f7;
	color: var(--gg-muted);
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	cursor: help;
	vertical-align: middle;
}
.ggroom-field-tip:hover,
.ggroom-field-tip:focus {
	background: var(--gg-primary);
	color: #fff;
}
.ggroom-senior-auto .ggroom-yesno-toggle {
	opacity: .95;
}
.ggroom-senior-auto .ggroom-yesno-option {
	cursor: default;
}
.ggroom-new-pet-form .ggroom-photo-field,
.ggroom-pet-form .ggroom-photo-field {
	align-items: flex-start;
}
.ggroom-new-pet-form .ggroom-photo-preview,
.ggroom-pet-form .ggroom-photo-preview {
	width: 72px;
	height: 72px;
}
@media (max-width: 640px) {
	.ggroom-pet-fields-grid,
	.ggroom-pet-section-behavior .ggroom-pet-fields-grid {
		grid-template-columns: 1fr;
	}
	.ggroom-pet-fields-grid .ggroom-field-name,
	.ggroom-pet-fields-grid .ggroom-field-species,
	.ggroom-pet-fields-grid .ggroom-field-photo,
	.ggroom-pet-fields-grid .ggroom-field-medical,
	.ggroom-pet-fields-grid .ggroom-field-allergies {
		grid-column: auto;
	}
}

.ggroom-visit-pickup-question {
	margin: 0 0 20px;
}
.ggroom-visit-pickup-label {
	font-size: 15px;
	font-weight: 600;
	margin: 0 0 12px;
	line-height: 1.45;
}
.ggroom-pickup-choice {
	margin-bottom: 0;
}
.ggroom-pickup-choice .ggroom-radio-card {
	flex: 1 1 120px;
	justify-content: center;
	text-align: center;
	min-height: 48px;
}

/* Visit step (pickup / domicilio) */
.ggroom-booking [hidden] { display: none !important; }
.ggroom-visit-block {
	margin-bottom: 20px;
	padding: 16px;
	border: 1px solid var(--gg-border);
	border-radius: 12px;
	background: #fafbfc;
}
.ggroom-visit-block:last-child { margin-bottom: 0; }
.ggroom-visit-block-title {
	margin: 0 0 6px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: #1a202c;
}
.ggroom-visit-block-desc {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--gg-muted);
}
.ggroom-visit-address-field > label:first-child { margin-bottom: 8px; }
.ggroom-address-options {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	margin: 0;
}
.ggroom-address-option {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	border: 2px solid var(--gg-border);
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s, background .15s;
	outline: none;
}
.ggroom-address-option:hover {
	border-color: rgba(var(--gg-primary-rgb), .4);
}
.ggroom-address-option:focus-within {
	outline: none;
	box-shadow: none;
}
.ggroom-address-option.is-selected,
.ggroom-address-option:has(input:checked) {
	border-color: var(--gg-primary);
	background: rgba(var(--gg-primary-rgb), .06);
}
.ggroom-address-option input {
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: var(--gg-primary);
}
.ggroom-address-option-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	flex: 1;
}
.ggroom-address-option-body strong {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--gg-muted);
}
.ggroom-address-line {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	color: #1a202c;
	word-break: break-word;
}
.ggroom-address-line-muted {
	font-weight: 400;
	color: var(--gg-muted);
}
.ggroom-visit-confirm-wrap {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--gg-border);
}
.ggroom-visit-confirm-wrap .ggroom-check {
	margin-bottom: 0;
	font-size: 14px;
}
/* Visit step: address + access two-column layout */
.ggroom-visit-details-layout {
	margin-bottom: 20px;
}
.ggroom-visit-details-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	align-items: stretch;
}
.ggroom-visit-details-col {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	min-width: 0;
}
.ggroom-visit-details-col .ggroom-visit-block-title {
	margin-top: 0;
}
.ggroom-visit-details-col .ggroom-visit-block-header {
	margin-bottom: 12px;
}
.ggroom-visit-details-col .ggroom-address-options {
	grid-template-columns: 1fr;
	gap: 10px;
}
.ggroom-visit-access-fields {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.ggroom-visit-access-fields .ggroom-field label {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 6px;
}
.ggroom-visit-access-fields textarea,
.ggroom-visit-access-fields input[type="text"] {
	width: 100%;
}
@media (min-width: 768px) {
	.ggroom-visit-details-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 24px;
	}
	.ggroom-visit-details-col + .ggroom-visit-details-col {
		padding-left: 24px;
		border-left: 1px solid var(--gg-border);
	}
	.ggroom-visit-details-col .ggroom-address-options {
		grid-template-columns: 1fr;
	}
}
@media (min-width: 900px) {
	.ggroom-visit-details-col .ggroom-address-options {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.ggroom-account-address-links {
	margin: 8px 0 0;
	font-size: 13px;
}
.ggroom-inline-sep {
	margin: 0 6px;
	color: var(--gg-muted);
}

/* Servicios a domicilio (Pet Taxi) — paso recogida */
.ggroom-pickup-services {
	margin: 0;
}
.ggroom-pickup-services-header {
	margin-bottom: 14px;
}
.ggroom-pickup-services-header .ggroom-visit-block-title {
	margin-top: 0;
}
.ggroom-pickup-services-panel {
	padding: 0;
	border: 0;
	background: transparent;
}
.ggroom-pickup-services-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	align-items: stretch;
}
.ggroom-pickup-services-layout.is-quote-mode {
	grid-template-columns: 1fr;
}
.ggroom-pickup-services-main {
	min-width: 0;
}
.ggroom-pickup-addon-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ggroom-booking .ggroom-pickup-service-card {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	min-height: 100%;
}
.ggroom-booking .ggroom-pickup-service-card.is-selected {
	border-color: var(--gg-primary);
	box-shadow: none;
}
.ggroom-booking .ggroom-pickup-service-card.is-distance-quote .ggroom-addon-price-amount {
	color: #9a3412;
	font-weight: 800;
}
.ggroom-pickup-distance-alert {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 14px;
	line-height: 1.55;
	color: #1a202c;
}
.ggroom-pickup-distance-alert-title {
	display: inline;
	font-size: 15px;
	font-weight: 800;
	margin-right: 6px;
	color: #ea580c;
}
#ggroom-pickup-distance-alert-text {
	color: #1a202c;
}
.ggroom-pickup-loading {
	margin: 0 0 12px;
	font-size: 14px;
	color: var(--gg-muted);
}
.ggroom-pickup-quote-aside {
	padding: 0 0 0 4px;
	border: 0;
	border-radius: 0;
	background: transparent;
	min-width: 0;
	display: flex;
	flex-direction: column;
}
@media (min-width: 768px) {
	.ggroom-pickup-services-layout.is-quote-mode .ggroom-pickup-quote-aside {
		padding-left: 20px;
		border-left: 1px solid var(--gg-border);
	}
}
.ggroom-pickup-quote-aside-title {
	margin: 0 0 14px;
	font-size: 15px;
	font-weight: 700;
	color: #1a202c;
}
.ggroom-pickup-quote-aside .ggroom-quote-route {
	flex: 1 1 auto;
	margin-bottom: 0;
}
@media (min-width: 768px) {
	.ggroom-pickup-services-layout.is-quote-mode {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
		gap: 20px;
	}
}
@media (min-width: 900px) {
	.ggroom-pickup-services-layout.is-quote-mode {
		grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
	}
}
.ggroom-visit-block-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}
.ggroom-visit-block-header .ggroom-visit-block-title,
.ggroom-visit-block-header .ggroom-visit-block-desc {
	margin-bottom: 0;
}
.ggroom-visit-block-header .ggroom-visit-block-desc {
	margin-top: 4px;
}
.ggroom-address-edit {
	flex-shrink: 0;
	align-self: center;
	margin-left: auto;
	padding: 4px 10px;
	border: none;
	background: transparent;
	color: var(--gg-primary);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
}
.ggroom-address-edit:hover {
	color: var(--gg-primary-dark);
}
.ggroom-address-dialog {
	max-width: 520px;
}

/* Visit step refresh spinner */
.ggroom-visit-block.is-refreshing {
	position: relative;
}
.ggroom-step-spinner-wrap {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: rgba(255, 255, 255, 0.82);
	border-radius: inherit;
}
.ggroom-step-spinner-wrap[hidden] {
	display: none !important;
}
.ggroom-step-spinner-text {
	font-size: 14px;
	color: var(--gg-muted);
	font-weight: 600;
}
.ggroom-spinner {
	width: 32px;
	height: 32px;
	border: 3px solid rgba(var(--gg-primary-rgb), 0.2);
	border-top-color: var(--gg-primary);
	border-radius: 50%;
	animation: ggroom-spin 0.75s linear infinite;
}
@keyframes ggroom-spin {
	to { transform: rotate(360deg); }
}
.ggroom-visit-block.is-refreshing .ggroom-pickup-services-panel,
.ggroom-visit-block.is-refreshing .ggroom-visit-details-grid {
	opacity: 0.35;
	pointer-events: none;
}
@media (min-width: 900px) {
	.ggroom-pickup-choice .ggroom-radio-card {
		flex: 0 1 auto;
		min-width: 140px;
	}
}
@media (max-width: 480px) {
	.ggroom-visit-block {
		padding: 14px 12px;
		margin-bottom: 14px;
	}
	.ggroom-wizard-panel-title {
		font-size: 1.2rem;
	}
	.ggroom-pickup-choice {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}
	.ggroom-pickup-choice .ggroom-radio-card {
		flex: 1 1 auto;
		padding: 12px 10px;
	}
}
