/**
 * Universal Booking & Rental Manager — frontend components.
 *
 * Every value comes from assets/css/tokens.css (edit that file to re-theme).
 * Scoped to .ubr-*, RTL-ready (logical properties only), mobile first.
 */

/* ================================================================ Base */

.ubr,
.ubr *,
.ubr *::before,
.ubr *::after {
	box-sizing: border-box;
}

.ubr {
	color: var(--ubr-ink);
	font-family: var(--ubr-font-body);
	line-height: var(--ubr-line-height);
	-webkit-font-smoothing: antialiased;
}
.ubr :where(h1, h2, h3, h4) {
	font-family: var(--ubr-font-heading);
	color: var(--ubr-color-heading);
	line-height: var(--ubr-line-height-tight);
}
.ubr :where(img) { max-width: 100%; }
.ubr [hidden],
.ubr[hidden] { display: none !important; }

.ubr-muted { color: var(--ubr-color-muted); }
.ubr-empty { color: var(--ubr-color-muted); padding-block: var(--ubr-gap); }
.ubr-loading { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-sr-only,
.ubr .screen-reader-text,
.ubr-filter .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ubr-link {
	padding: 0;
	border: 0;
	background: none;
	color: var(--ubr-accent-strong);
	font: inherit;
	font-weight: var(--ubr-font-weight-semibold);
	text-decoration: none;
	cursor: pointer;
}
.ubr-link:hover { color: var(--ubr-accent-strong); }
.ubr-link--danger { color: var(--ubr-color-danger); }
.ubr-link--danger:hover { color: color-mix(in srgb, var(--ubr-color-danger) 80%, #000); }
.ubr-link:disabled { color: var(--ubr-color-subtle); cursor: default; text-decoration: none; }
.ubr-link:focus-visible { outline: none; border-radius: 4px; box-shadow: var(--ubr-ring); }

.ubr-grid-2 { display: grid; gap: var(--ubr-gap); grid-template-columns: 1fr; }
@media (min-width: 560px) { .ubr-grid-2 { grid-template-columns: 1fr 1fr; } }

/* ================================================================ Buttons */

.ubr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ubr-space-2);
	min-height: var(--ubr-control-height);
	padding: 0 var(--ubr-space-5);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius-sm);
	background: var(--ubr-color-surface);
	color: var(--ubr-ink);
	font: inherit;
	font-size: var(--ubr-font-size-base);
	font-weight: var(--ubr-font-weight-semibold);
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: var(--ubr-shadow-xs);
	transition: background-color var(--ubr-duration) var(--ubr-ease), border-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease), transform var(--ubr-duration) var(--ubr-ease);
}
.ubr-btn:hover { border-color: var(--ubr-color-border-strong); background: var(--ubr-color-surface-alt); color: var(--ubr-ink); }
.ubr-btn:active { transform: translateY(1px); }
.ubr-btn:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-btn[disabled],
.ubr-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; }
.ubr-btn[aria-busy="true"] { position: relative; color: transparent !important; pointer-events: none; }
.ubr-btn[aria-busy="true"]::after {
	content: "";
	position: absolute;
	width: 18px;
	height: 18px;
	border: 2px solid currentColor;
	border-color: var(--ubr-on-accent) var(--ubr-on-accent) transparent transparent;
	border-radius: 50%;
	animation: ubr-spin .7s linear infinite;
}
.ubr-btn--ghost[aria-busy="true"]::after { border-color: var(--ubr-accent) var(--ubr-accent) transparent transparent; }

.ubr-btn--primary {
	border-color: transparent;
	background: var(--ubr-accent);
	color: var(--ubr-on-accent);
	box-shadow: 0 1px 2px rgba(15, 23, 42, .1), 0 6px 16px -6px color-mix(in srgb, var(--ubr-accent) 60%, transparent);
}
.ubr-btn--primary:hover { border-color: transparent; background: var(--ubr-accent-strong); color: var(--ubr-on-accent); }
.ubr-btn--ghost { background: transparent; box-shadow: none; }
.ubr-btn--ghost:hover { border-color: var(--ubr-accent-line); background: var(--ubr-accent-softer); color: var(--ubr-accent); }
.ubr-btn--danger { border-color: transparent; background: var(--ubr-color-danger); color: #fff; }
.ubr-btn--danger:hover { border-color: transparent; background: color-mix(in srgb, var(--ubr-color-danger) 85%, #000); color: #fff; }
.ubr-btn--whatsapp::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.4.1-.2 0-.3 0-.5l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.6 4c1.7.7 2.3.8 3.2.7.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.1-.3-.2-.5-.3Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.4.1-.2 0-.3 0-.5l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.6 4c1.7.7 2.3.8 3.2.7.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.1-.3-.2-.5-.3Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ubr-btn--primary.ubr-btn--whatsapp { background: var(--ubr-color-whatsapp); color: #fff; box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--ubr-color-whatsapp) 70%, transparent); }
.ubr-btn--primary.ubr-btn--whatsapp:hover { background: color-mix(in srgb, var(--ubr-color-whatsapp) 85%, #000); }
.ubr-btn--ghost.ubr-btn--whatsapp { color: var(--ubr-color-whatsapp-ink); border-color: color-mix(in srgb, var(--ubr-color-whatsapp) 45%, var(--ubr-color-surface)); }
.ubr-btn--ghost.ubr-btn--whatsapp:hover { background: color-mix(in srgb, var(--ubr-color-whatsapp) 8%, var(--ubr-color-surface)); }
.ubr-btn--sm { min-height: var(--ubr-control-height-sm); padding: 0 var(--ubr-space-3); font-size: var(--ubr-font-size-sm); }
.ubr-btn--block { width: 100%; }

@keyframes ubr-spin { to { transform: rotate(360deg); } }

/* ================================================================ Form controls */

.ubr-input {
	width: 100%;
	min-height: var(--ubr-control-height);
	padding: var(--ubr-space-2) var(--ubr-space-3);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius-sm);
	background: var(--ubr-color-surface);
	color: var(--ubr-ink);
	font: inherit;
	font-size: var(--ubr-font-size-base);
	box-shadow: var(--ubr-shadow-xs);
	transition: border-color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease);
}
.ubr-input::placeholder { color: var(--ubr-color-subtle); }
.ubr-input:hover { border-color: var(--ubr-color-border-strong); }
.ubr-input:focus { outline: none; border-color: var(--ubr-accent); box-shadow: var(--ubr-ring); }
.ubr-input[aria-invalid="true"] { border-color: var(--ubr-color-danger); }
.ubr-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ubr-color-danger) 25%, transparent); }
select.ubr-input { padding-inline-end: var(--ubr-space-7); }
textarea.ubr-input { min-height: 104px; padding-block: var(--ubr-space-3); resize: vertical; }

.ubr-fields-grid { display: grid; grid-template-columns: 1fr; gap: var(--ubr-gap); }
@media (min-width: 640px) {
	.ubr-fields-grid { grid-template-columns: repeat(6, 1fr); }
	.ubr-field--w-full { grid-column: span 6; }
	.ubr-field--w-half { grid-column: span 3; }
	.ubr-field--w-third { grid-column: span 2; }
}
.ubr-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ubr-field[hidden] { display: none; }
.ubr-field__label { color: var(--ubr-color-heading); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-semibold); }
.ubr-required { color: var(--ubr-color-danger); }
.ubr-field__desc,
.ubr-field__hint { margin: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-field__error { margin: 0; color: var(--ubr-color-danger); font-size: var(--ubr-font-size-sm); }
.ubr-field.has-error .ubr-field__label { color: var(--ubr-color-danger); }
.ubr-field__heading { margin: var(--ubr-gap) 0 0; font-size: var(--ubr-font-size-lg); }
.ubr-choices { display: flex; flex-wrap: wrap; gap: var(--ubr-space-2) var(--ubr-space-4); }
.ubr-choice,
.ubr-check { display: inline-flex; align-items: center; gap: var(--ubr-space-2); cursor: pointer; }
.ubr-choice input,
.ubr-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--ubr-accent); }
/* Phone numbers are always written left to right (dial code first), also on RTL sites. */
.ubr-phone { display: grid; grid-template-columns: minmax(104px, 36%) 1fr; gap: var(--ubr-space-2); direction: ltr; }
.ubr-phone__country,
.ubr-phone__number { direction: ltr; text-align: left; }
.ubr-phone__country { padding-inline-end: var(--ubr-space-6); text-overflow: ellipsis; }
.ubr-range { display: flex; align-items: center; gap: var(--ubr-space-2); }
.ubr-location { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-2); }

/* Password with show/hide + strength meter */
.ubr-password { position: relative; }
.ubr-password .ubr-input { padding-inline-end: 52px; }
.ubr-password__toggle {
	position: absolute;
	inset-block: 4px;
	inset-inline-end: 4px;
	width: 44px;
	border: 0;
	border-radius: var(--ubr-radius-sm);
	background: transparent;
	color: var(--ubr-color-muted);
	font: inherit;
	font-size: var(--ubr-font-size-xs);
	font-weight: var(--ubr-font-weight-semibold);
	cursor: pointer;
}
.ubr-password__toggle:hover { color: var(--ubr-accent); background: var(--ubr-accent-softer); }
.ubr-password__toggle:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-strength { display: flex; align-items: center; gap: var(--ubr-space-3); min-height: 18px; font-size: var(--ubr-font-size-xs); color: var(--ubr-color-muted); }
.ubr-strength__bar { position: relative; flex: 1; height: 6px; overflow: hidden; border-radius: var(--ubr-radius-pill); background: var(--ubr-color-surface-sunken); }
.ubr-strength__bar > span { position: absolute; inset-block: 0; inset-inline-start: 0; width: 0; border-radius: inherit; background: var(--ubr-color-danger); transition: width var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease); }
.ubr-strength:not([data-level]),
.ubr-strength[data-level=""] { display: none; }
.ubr-strength[data-level="weak"] .ubr-strength__bar > span { width: 33%; background: var(--ubr-color-danger); }
.ubr-strength[data-level="medium"] .ubr-strength__bar > span { width: 66%; background: var(--ubr-color-warning); }
.ubr-strength[data-level="strong"] .ubr-strength__bar > span { width: 100%; background: var(--ubr-color-success); }
.ubr-strength[data-level="weak"] .ubr-strength__label { color: var(--ubr-color-danger); }
.ubr-strength[data-level="strong"] .ubr-strength__label { color: var(--ubr-color-success); }

/* Toggle (booking fields) and switch (account preferences) */
.ubr-toggle { position: relative; display: inline-block; width: 46px; height: 26px; }
.ubr-toggle__input { position: absolute; inset: 0; z-index: 1; margin: 0; opacity: 0; cursor: pointer; }
.ubr-toggle__track,
.ubr-switch__track {
	position: absolute;
	inset: 0;
	border-radius: var(--ubr-radius-pill);
	background: var(--ubr-color-border-strong);
	transition: background-color var(--ubr-duration) var(--ubr-ease);
}
.ubr-toggle__track::after,
.ubr-switch__track::after {
	content: "";
	position: absolute;
	inset-block-start: 3px;
	inset-inline-start: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	box-shadow: var(--ubr-shadow-sm);
	transition: transform var(--ubr-duration) var(--ubr-ease);
}
.ubr-toggle__input:checked + .ubr-toggle__track,
.ubr-switch input:checked + .ubr-switch__track { background: var(--ubr-accent); }
.ubr-toggle__input:checked + .ubr-toggle__track::after,
.ubr-switch input:checked + .ubr-switch__track::after { transform: translateX(20px); }
[dir="rtl"] .ubr-toggle__input:checked + .ubr-toggle__track::after,
[dir="rtl"] .ubr-switch input:checked + .ubr-switch__track::after { transform: translateX(-20px); }
.ubr-toggle__input:focus-visible + .ubr-toggle__track,
.ubr-switch input:focus-visible + .ubr-switch__track { box-shadow: var(--ubr-ring); }

.ubr-switch { position: relative; display: flex; align-items: center; gap: var(--ubr-space-3); min-height: 32px; padding-inline-start: 58px; cursor: pointer; }
.ubr-switch input { position: absolute; inset-inline-start: 0; width: 46px; height: 26px; margin: 0; opacity: 0; cursor: pointer; }
.ubr-switch__track { inset: auto; inset-inline-start: 0; width: 46px; height: 26px; }

/* Segmented control (login method, booking filters) */
.ubr-segmented {
	display: flex;
	gap: 4px;
	padding: 4px;
	border-radius: calc(var(--ubr-radius-sm) + 4px);
	background: var(--ubr-color-surface-sunken);
}
.ubr-segmented__item {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 var(--ubr-space-4);
	border: 0;
	border-radius: var(--ubr-radius-sm);
	background: transparent;
	color: var(--ubr-color-muted);
	font: inherit;
	font-size: var(--ubr-font-size-sm);
	font-weight: var(--ubr-font-weight-semibold);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease);
}
.ubr-segmented__item:hover { color: var(--ubr-ink); }
.ubr-segmented__item[aria-selected="true"],
.ubr-segmented__item[aria-current="page"] { background: var(--ubr-color-surface); color: var(--ubr-accent-strong); box-shadow: var(--ubr-shadow-sm); }
.ubr-segmented__item:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-segmented--links { flex-wrap: wrap; margin-bottom: var(--ubr-space-4); }
.ubr-segmented--links .ubr-segmented__item { flex: 0 1 auto; }

/* ================================================================ Notices, badges, status */

.ubr-notice {
	position: relative;
	margin-block: var(--ubr-space-2);
	padding: var(--ubr-space-3) var(--ubr-space-4);
	padding-inline-start: calc(var(--ubr-space-4) + 4px);
	border: var(--ubr-border-width) solid var(--ubr-accent-line);
	border-radius: var(--ubr-radius-sm);
	background: var(--ubr-accent-softer);
	color: var(--ubr-ink);
	font-size: var(--ubr-font-size-sm);
}
.ubr-notice::before { content: ""; position: absolute; inset-block: 8px; inset-inline-start: 6px; width: 3px; border-radius: 3px; background: var(--ubr-accent); }
.ubr-notice p { margin: 0 0 var(--ubr-space-2); }
.ubr-notice p:last-child { margin-bottom: 0; }
.ubr-notice--error { border-color: color-mix(in srgb, var(--ubr-color-danger) 30%, transparent); background: var(--ubr-danger-soft); }
.ubr-notice--error::before { background: var(--ubr-color-danger); }
.ubr-notice--success { border-color: color-mix(in srgb, var(--ubr-color-success) 30%, transparent); background: var(--ubr-success-soft); }
.ubr-notice--success::before { background: var(--ubr-color-success); }
.ubr-notice--warning { border-color: color-mix(in srgb, var(--ubr-color-warning) 30%, transparent); background: var(--ubr-warning-soft); }
.ubr-notice--warning::before { background: var(--ubr-color-warning); }

.ubr-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 10px;
	border-radius: var(--ubr-radius-pill);
	background: var(--ubr-accent-soft);
	color: var(--ubr-accent-strong);
	font-size: var(--ubr-font-size-xs);
	font-weight: var(--ubr-font-weight-semibold);
	line-height: 1.6;
}
.ubr-badge--muted { background: var(--ubr-color-surface-sunken); color: var(--ubr-color-muted); }
.ubr-badge--success { background: var(--ubr-success-soft); color: var(--ubr-color-success); }

.ubr-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	border-radius: var(--ubr-radius-pill);
	background: var(--ubr-color-surface-sunken);
	color: var(--ubr-color-muted);
	font-size: var(--ubr-font-size-xs);
	font-weight: var(--ubr-font-weight-semibold);
	line-height: 1.5;
	white-space: nowrap;
}
.ubr-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ubr-status--confirmed,
.ubr-status--completed { background: var(--ubr-success-soft); color: var(--ubr-color-success); }
.ubr-status--pending,
.ubr-status--awaiting_payment { background: var(--ubr-warning-soft); color: color-mix(in srgb, var(--ubr-color-warning) 80%, #000); }
.ubr-status--paid { background: var(--ubr-info-soft); color: var(--ubr-color-info); }
.ubr-status--cancelled,
.ubr-status--rejected,
.ubr-status--payment_failed { background: var(--ubr-danger-soft); color: var(--ubr-color-danger); }
.ubr-status--refunded,
.ubr-status--no_show { background: color-mix(in srgb, #7c3aed 10%, var(--ubr-color-surface)); color: #6d28d9; }

.ubr-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ubr-color-subtle); vertical-align: middle; }
.ubr-dot--available { background: var(--ubr-color-success); }
.ubr-dot--limited { background: var(--ubr-color-warning); }
.ubr-dot--unavailable { background: var(--ubr-color-danger); }

.ubr-empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--ubr-space-3);
	padding: var(--ubr-space-8) var(--ubr-space-5);
	border: 1px dashed var(--ubr-color-border-strong);
	border-radius: var(--ubr-radius);
	background: var(--ubr-color-surface-alt);
	text-align: center;
}
.ubr-empty-state__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--ubr-accent-soft); color: var(--ubr-accent); }
.ubr-empty-state__icon svg { width: 26px; height: 26px; }
.ubr-empty-state__text { margin: 0; color: var(--ubr-color-muted); }
.ubr-empty-state--compact { padding: var(--ubr-space-6) var(--ubr-space-4); }

/* ================================================================ Cards & surfaces */

.ubr-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius);
	background: var(--ubr-color-surface);
	box-shadow: var(--ubr-shadow-sm);
}
.ubr-card__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ubr-space-3); margin-bottom: var(--ubr-space-3); }
.ubr-card__head .ubr-card__title { margin: 0; }
section.ubr-card,
form.ubr-card,
.ubr-booking-details section.ubr-card,
.ubr-guest-access .ubr-card { padding: var(--ubr-space-6); margin-bottom: var(--ubr-gap); }
section.ubr-card > .ubr-card__title,
form.ubr-card > .ubr-card__title { margin: 0 0 var(--ubr-space-4); font-size: var(--ubr-font-size-lg); }

/* ================================================================ Service parts */

.ubr-service-title { margin: 0 0 .3em; }
.ubr-service-image__img { display: block; width: 100%; height: auto; border-radius: var(--ubr-radius-lg); }
.ubr-price { color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); font-variant-numeric: tabular-nums; }
.ubr-price__prefix,
.ubr-price__unit { color: var(--ubr-color-muted); font-size: .85em; font-weight: var(--ubr-font-weight-regular); }
.ubr-price--free .ubr-price__amount { color: var(--ubr-color-success); }
.ubr-service-price .ubr-price__amount { font-size: var(--ubr-font-size-2xl); letter-spacing: -.01em; }

.ubr-gallery__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--ubr-space-2); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ubr-gallery__list { grid-template-columns: repeat(var(--ubr-columns), 1fr); } }
.ubr-gallery__item figure { margin: 0; }
.ubr-gallery__item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ubr-radius-sm); cursor: zoom-in; transition: opacity var(--ubr-duration) var(--ubr-ease); }
.ubr-gallery__item img:hover { opacity: .9; }
.ubr-gallery__item figcaption { margin-top: var(--ubr-space-1); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

.ubr-lightbox { max-width: min(92vw, 1100px); padding: 0; border: 0; border-radius: var(--ubr-radius); background: #0b1120; color: #fff; box-shadow: var(--ubr-shadow-lg); }
.ubr-lightbox::backdrop { background: var(--ubr-color-overlay); backdrop-filter: blur(4px); }
.ubr-lightbox__img { display: block; max-width: 100%; max-height: 80vh; margin: auto; }
.ubr-lightbox__caption { margin: 0; padding: var(--ubr-space-2) var(--ubr-space-4); text-align: center; }
.ubr-lightbox__close,
.ubr-lightbox__prev,
.ubr-lightbox__next { position: absolute; z-index: 1; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(15, 23, 42, .6); color: #fff; font-size: 24px; cursor: pointer; }
.ubr-lightbox__close { inset-block-start: var(--ubr-space-2); inset-inline-end: var(--ubr-space-2); }
.ubr-lightbox__prev { inset-block-start: 45%; inset-inline-start: var(--ubr-space-2); }
.ubr-lightbox__next { inset-block-start: 45%; inset-inline-end: var(--ubr-space-2); }

.ubr-stars { color: var(--ubr-color-border-strong); letter-spacing: 1px; }
.ubr-star--full { color: var(--ubr-color-star); }
.ubr-star--half { background: linear-gradient(90deg, var(--ubr-color-star) 50%, var(--ubr-color-border-strong) 50%); -webkit-background-clip: text; background-clip: text; color: transparent; }
[dir="rtl"] .ubr-star--half { background: linear-gradient(-90deg, var(--ubr-color-star) 50%, var(--ubr-color-border-strong) 50%); -webkit-background-clip: text; background-clip: text; }
.ubr-rating__count { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

.ubr-meta { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--ubr-space-3); margin: 0; }
.ubr-meta__item { padding: var(--ubr-space-3) var(--ubr-space-4); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface-alt); border: var(--ubr-border-width) solid var(--ubr-line); }
.ubr-meta dt { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-semibold); letter-spacing: var(--ubr-letter-spacing-caps); text-transform: uppercase; }
.ubr-meta dd { margin: 2px 0 0; color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-semibold); }

.ubr-hours { margin: 0; }
.ubr-hours__row { display: flex; justify-content: space-between; gap: var(--ubr-space-3); padding-block: var(--ubr-space-2); border-bottom: 1px dashed var(--ubr-line); }
.ubr-hours__row dd { margin: 0; font-variant-numeric: tabular-nums; }
.ubr-availability__next { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

.ubr-location__map { display: block; width: 100%; margin-block: var(--ubr-space-2); border: 0; border-radius: var(--ubr-radius); }
.ubr-location__address { font-style: normal; }
.ubr-location__link { color: var(--ubr-accent); font-weight: var(--ubr-font-weight-semibold); }

.ubr-features__list { display: grid; grid-template-columns: 1fr; gap: var(--ubr-space-2) var(--ubr-space-4); margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .ubr-features__list { grid-template-columns: repeat(var(--ubr-columns), 1fr); } }
.ubr-features__item { display: flex; align-items: flex-start; gap: var(--ubr-space-2); }
.ubr-features__icon { display: inline-grid; flex: none; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ubr-success-soft); color: var(--ubr-color-success); font-size: 12px; font-weight: var(--ubr-font-weight-bold); }

.ubr-extras__list { display: grid; gap: var(--ubr-space-3); margin: 0; padding: 0; list-style: none; }
.ubr-extras__item { display: flex; align-items: flex-start; gap: var(--ubr-space-3); padding: var(--ubr-space-3); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-sm); }
.ubr-extras__img { width: 56px; height: 56px; border-radius: var(--ubr-radius-sm); object-fit: cover; }
.ubr-extras__body { flex: 1; }
.ubr-extras__body p { margin: var(--ubr-space-1) 0 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-extras__price { font-weight: var(--ubr-font-weight-semibold); white-space: nowrap; }

.ubr-faq__item { margin-bottom: var(--ubr-space-2); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface); transition: box-shadow var(--ubr-duration) var(--ubr-ease); }
.ubr-faq__item[open] { box-shadow: var(--ubr-shadow-sm); }
.ubr-faq__question { display: flex; align-items: center; justify-content: space-between; gap: var(--ubr-space-3); padding: var(--ubr-space-4); color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-semibold); list-style: none; cursor: pointer; }
.ubr-faq__question::-webkit-details-marker { display: none; }
.ubr-faq__question::after { content: "+"; display: grid; flex: none; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ubr-color-surface-sunken); color: var(--ubr-color-muted); font-weight: var(--ubr-font-weight-regular); }
.ubr-faq__item[open] .ubr-faq__question::after { content: "−"; background: var(--ubr-accent-soft); color: var(--ubr-accent); }
.ubr-faq__question:focus-visible { outline: none; border-radius: var(--ubr-radius-sm); box-shadow: var(--ubr-ring); }
.ubr-faq__answer { padding: 0 var(--ubr-space-4) var(--ubr-space-4); color: var(--ubr-color-muted); }

/* ================================================================ Booking form */

.ubr-booking-form {
	padding: var(--ubr-space-6);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius-lg);
	background: var(--ubr-color-surface);
	box-shadow: var(--ubr-shadow-md);
}
@media (max-width: 480px) { .ubr-booking-form { padding: var(--ubr-space-4); } }
.ubr-booking-form__form { display: grid; gap: var(--ubr-space-6); }
.ubr-step { min-width: 0; margin: 0; padding: 0; border: 0; }
.ubr-step + .ubr-step { padding-top: var(--ubr-space-6); border-top: 1px solid var(--ubr-line); }
.ubr-step__title { display: flex; align-items: center; gap: var(--ubr-space-2); margin-bottom: var(--ubr-space-3); padding: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-base); font-weight: var(--ubr-font-weight-bold); }
.ubr-booking-form--compact .ubr-booking-form__form { gap: var(--ubr-space-4); }
.ubr-booking-form--compact .ubr-step + .ubr-step { padding-top: var(--ubr-space-4); }
.ubr-booking-form--compact .ubr-step__title { font-size: var(--ubr-font-size-sm); }

/* ---------------------------------------------------------------- Calendar */

.ubr-calendar__nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--ubr-space-2); }
.ubr-calendar__prev,
.ubr-calendar__next {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: 50%;
	background: var(--ubr-color-surface);
	color: var(--ubr-ink);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: border-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease);
}
.ubr-calendar__prev:hover:not(:disabled),
.ubr-calendar__next:hover:not(:disabled) { border-color: var(--ubr-accent-line); background: var(--ubr-accent-softer); color: var(--ubr-accent); }
.ubr-calendar__prev:focus-visible,
.ubr-calendar__next:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-calendar__prev:disabled,
.ubr-calendar__next:disabled { opacity: .3; cursor: default; }
.ubr-calendar__months { display: grid; grid-template-columns: 1fr; gap: var(--ubr-space-6); }
@media (min-width: 768px) { .ubr-calendar__months { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); } }
.ubr-calendar__title { margin-bottom: var(--ubr-space-2); color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); text-align: center; }
.ubr-calendar__grid { width: 100%; margin: 0; border: 0; border-collapse: separate; border-spacing: 2px 4px; table-layout: fixed; }
.ubr-calendar__grid th { padding: var(--ubr-space-1) 0; border: 0; background: none; color: var(--ubr-color-subtle); font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-semibold); text-align: center; text-transform: uppercase; }
.ubr-calendar__grid td { padding: 0; border: 0; background: none; text-align: center; }
.ubr-day {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 100%;
	max-width: var(--ubr-day-size);
	aspect-ratio: 1;
	min-height: 34px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: var(--ubr-radius-sm);
	background: transparent;
	color: var(--ubr-ink);
	font: inherit;
	font-size: var(--ubr-font-size-sm);
	font-weight: var(--ubr-font-weight-medium);
	font-variant-numeric: tabular-nums;
	cursor: pointer;
	transition: background-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease), border-color var(--ubr-duration) var(--ubr-ease), transform var(--ubr-duration) var(--ubr-ease);
}
/* availability indicator under the number */
.ubr-day::after { content: ""; position: absolute; inset-block-end: 5px; inset-inline-start: 50%; width: 4px; height: 4px; margin-inline-start: -2px; border-radius: 50%; background: transparent; }
.ubr-day--available::after { background: var(--ubr-color-success); }
.ubr-day--limited::after { background: var(--ubr-color-warning); }
.ubr-day--available:hover,
.ubr-day--limited:hover { border-color: var(--ubr-accent-line); background: var(--ubr-accent-softer); color: var(--ubr-accent); }
.ubr-day--unavailable { color: var(--ubr-color-subtle); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--ubr-color-subtle) 60%, transparent); }
.ubr-day--past,
.ubr-day--closed { color: color-mix(in srgb, var(--ubr-color-subtle) 70%, transparent); }
.ubr-day[aria-disabled="true"] { cursor: default; }
.ubr-day[aria-disabled="true"]:hover { border-color: transparent; background: transparent; color: inherit; }
.ubr-day.is-today { border-color: var(--ubr-color-border-strong); font-weight: var(--ubr-font-weight-bold); }
.ubr-day.is-in-range { border-radius: 0; background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); text-decoration: none; }
.ubr-day.is-in-range::after { display: none; }
.ubr-day.is-selected,
.ubr-day.is-selected:hover { border-color: transparent; border-radius: var(--ubr-radius-sm); background: var(--ubr-accent); color: var(--ubr-on-accent); box-shadow: 0 6px 14px -6px color-mix(in srgb, var(--ubr-accent) 80%, transparent); }
.ubr-day.is-selected::after { background: var(--ubr-on-accent); }
.ubr-day:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-calendar__legend { display: flex; flex-wrap: wrap; gap: var(--ubr-space-2) var(--ubr-space-4); margin: var(--ubr-space-3) 0 0; padding: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-xs); list-style: none; }
.ubr-calendar__legend li { display: inline-flex; align-items: center; gap: 6px; }
.ubr-calendar__status { min-height: 1.2em; margin-top: var(--ubr-space-2); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

/* ---------------------------------------------------------------- Time slots */

.ubr-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ubr-space-2); }
@media (min-width: 640px) { .ubr-slots { grid-template-columns: repeat(var(--ubr-columns, 4), 1fr); } }
.ubr-slots > p { grid-column: 1 / -1; margin: 0; }
.ubr-slot {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-height: var(--ubr-control-height);
	padding: var(--ubr-space-2);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius-sm);
	background: var(--ubr-color-surface);
	color: var(--ubr-ink);
	font: inherit;
	font-size: var(--ubr-font-size-sm);
	font-weight: var(--ubr-font-weight-semibold);
	font-variant-numeric: tabular-nums;
	/* Direction follows the label itself: "9:00 AM" stays LTR, "9:00 ص" is ordered correctly in Arabic. */
	unicode-bidi: plaintext;
	cursor: pointer;
	transition: border-color var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease);
}
.ubr-slot:hover { border-color: var(--ubr-accent-line); background: var(--ubr-accent-softer); color: var(--ubr-accent); }
.ubr-slot.is-selected,
.ubr-slot.is-selected:hover { border-color: var(--ubr-accent); background: var(--ubr-accent); color: var(--ubr-on-accent); box-shadow: 0 6px 14px -6px color-mix(in srgb, var(--ubr-accent) 80%, transparent); }
.ubr-slot.is-disabled { opacity: .45; text-decoration: line-through; cursor: not-allowed; }
.ubr-slot.is-disabled:hover { border-color: var(--ubr-line); background: var(--ubr-color-surface); color: var(--ubr-ink); }
.ubr-slot:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-slot__remaining { font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-regular); opacity: .75; }

.ubr-timerange,
.ubr-pickup-times { display: grid; grid-template-columns: 1fr; gap: 6px; }
@media (min-width: 640px) {
	.ubr-timerange,
	.ubr-pickup-times { grid-template-columns: 1fr 1fr; align-items: end; column-gap: var(--ubr-space-3); }
	.ubr-timerange label:nth-of-type(1),
	.ubr-pickup-times label:nth-of-type(1) { grid-column: 1; grid-row: 1; }
	.ubr-timerange select:nth-of-type(1),
	.ubr-pickup-times select:nth-of-type(1) { grid-column: 1; grid-row: 2; }
	.ubr-timerange label:nth-of-type(2),
	.ubr-pickup-times label:nth-of-type(2) { grid-column: 2; grid-row: 1; }
	.ubr-timerange select:nth-of-type(2),
	.ubr-pickup-times select:nth-of-type(2) { grid-column: 2; grid-row: 2; }
	.ubr-timerange__fullday { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------- Guests / quantity */

.ubr-stepper { display: flex; align-items: center; justify-content: space-between; gap: var(--ubr-space-3); padding-block: var(--ubr-space-2); }
.ubr-stepper + .ubr-stepper { border-top: 1px solid var(--ubr-line); }
.ubr-stepper__label { color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-semibold); }
.ubr-stepper__control { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-pill); background: var(--ubr-color-surface); }
.ubr-stepper__btn { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--ubr-color-surface-sunken); color: var(--ubr-ink); font-size: 18px; line-height: 1; cursor: pointer; transition: background-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease); }
.ubr-stepper__btn:hover:not(:disabled) { background: var(--ubr-accent-soft); color: var(--ubr-accent); }
.ubr-stepper__btn:disabled { opacity: .4; cursor: default; }
.ubr-stepper__btn:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-stepper__input { width: 48px; min-height: 36px; padding: 0; border: 0; background: transparent; color: var(--ubr-color-heading); font: inherit; font-weight: var(--ubr-font-weight-bold); font-variant-numeric: tabular-nums; text-align: center; -moz-appearance: textfield; }
.ubr-stepper__input:focus { outline: none; }
.ubr-stepper__input::-webkit-outer-spin-button,
.ubr-stepper__input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }

/* ---------------------------------------------------------------- Resources (staff / vehicles / rooms) */

.ubr-resources { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--ubr-space-2); }
.ubr-resource { position: relative; display: flex; align-items: center; gap: var(--ubr-space-3); padding: var(--ubr-space-3); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface); cursor: pointer; transition: border-color var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease); }
.ubr-resource:hover { border-color: var(--ubr-accent-line); }
.ubr-resource input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.ubr-resource:has(input:checked) { border-color: var(--ubr-accent); background: var(--ubr-accent-softer); box-shadow: inset 0 0 0 1px var(--ubr-accent); }
.ubr-resource:has(input:focus-visible) { box-shadow: var(--ubr-ring); }
.ubr-resource__img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.ubr-resource__body { display: flex; flex-direction: column; font-size: var(--ubr-font-size-sm); }
.ubr-resource__price { color: var(--ubr-accent); font-weight: var(--ubr-font-weight-semibold); }

/* ---------------------------------------------------------------- Extras */

.ubr-extras-select { display: grid; gap: var(--ubr-space-2); margin: 0; padding: 0; list-style: none; }
.ubr-extra { display: flex; gap: var(--ubr-space-3); padding: var(--ubr-space-3); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface); transition: border-color var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease); }
.ubr-extra:has(input:checked) { border-color: var(--ubr-accent-line); background: var(--ubr-accent-softer); }
.ubr-extra__img { width: 48px; height: 48px; border-radius: var(--ubr-radius-sm); object-fit: cover; }
.ubr-extra__body { flex: 1; min-width: 0; }
.ubr-extra__check { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-2); font-weight: var(--ubr-font-weight-semibold); cursor: pointer; }
.ubr-extra__check input { width: 18px; height: 18px; margin: 0; accent-color: var(--ubr-accent); }
.ubr-extra__price { margin-inline-start: auto; color: var(--ubr-color-heading); font-variant-numeric: tabular-nums; }
.ubr-extra__desc { margin: var(--ubr-space-1) 0 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-regular); }

/* ---------------------------------------------------------------- Service address + map */

.ubr-service-area { display: grid; gap: var(--ubr-space-3); }
.ubr-service-area__note { margin: 0; padding: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); list-style: none; }
.ubr-service-area__note li { position: relative; padding-inline-start: var(--ubr-space-4); }
.ubr-service-area__note li::before { content: ""; position: absolute; inset-block-start: .6em; inset-inline-start: 2px; width: 6px; height: 6px; border-radius: 50%; background: var(--ubr-accent); }
.ubr-map-picker { position: relative; display: grid; gap: var(--ubr-space-2); }
.ubr-map-picker__bar { display: flex; gap: var(--ubr-space-2); }
.ubr-map-picker__bar .ubr-input { flex: 1; min-width: 0; }
.ubr-map-picker__bar .ubr-btn { min-height: var(--ubr-control-height); }
.ubr-map-picker__results {
	position: absolute;
	z-index: 1001;
	inset-block-start: calc(var(--ubr-control-height) + 6px);
	inset-inline: 0;
	max-height: 260px;
	margin: 0;
	padding: var(--ubr-space-1);
	overflow-y: auto;
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius-sm);
	background: var(--ubr-color-surface);
	box-shadow: var(--ubr-shadow-lg);
	list-style: none;
}
.ubr-map-picker__results li button,
.ubr-map-picker__results li a { display: block; width: 100%; padding: var(--ubr-space-2) var(--ubr-space-3); border: 0; border-radius: calc(var(--ubr-radius-sm) - 2px); background: none; color: var(--ubr-ink); font: inherit; font-size: var(--ubr-font-size-sm); text-align: start; cursor: pointer; }
.ubr-map-picker__results li button:hover,
.ubr-map-picker__results li button:focus-visible { outline: none; background: var(--ubr-accent-softer); color: var(--ubr-accent); }
.ubr-map-picker__empty { padding: var(--ubr-space-2) var(--ubr-space-3); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-map-picker__canvas { position: relative; z-index: 0; height: 280px; overflow: hidden; border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius); background: var(--ubr-color-surface-sunken); }
.ubr-map-picker__distance { min-height: 1.2em; margin: 0; font-size: var(--ubr-font-size-sm); }
.ubr-map-picker__distance.is-error { color: var(--ubr-color-danger); }
.ubr-map-picker .leaflet-container { font: inherit; }

/* ---------------------------------------------------------------- Price box & summary */

.ubr-pricebox {
	padding: var(--ubr-space-4) var(--ubr-space-5);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius);
	background: linear-gradient(180deg, var(--ubr-color-surface-alt), var(--ubr-color-surface));
	transition: opacity var(--ubr-duration) var(--ubr-ease);
}
.ubr-pricebox[aria-busy="true"] { opacity: .55; }
.ubr-pricebox__list,
.ubr-pricebox__lines { margin: 0 0 var(--ubr-space-3); }
.ubr-pricebox__line { display: flex; justify-content: space-between; gap: var(--ubr-space-3); padding-block: 3px; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-pricebox__line dt { min-width: 0; }
.ubr-pricebox__line dd { margin: 0; color: var(--ubr-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ubr-pricebox__line--adjustment dd { color: var(--ubr-color-success); }
.ubr-pricebox__line--fee dd { color: var(--ubr-color-heading); }
.ubr-pricebox__total { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ubr-space-3); padding-top: var(--ubr-space-3); border-top: 1px dashed var(--ubr-color-border-strong); color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); }
.ubr-pricebox__total dd,
.ubr-pricebox__total strong { margin: 0; font-size: var(--ubr-font-size-xl); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.ubr-pricebox__note { margin: var(--ubr-space-2) 0 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-pricebox__note.is-error { color: var(--ubr-color-danger); }

.ubr-summary { padding: var(--ubr-space-4) var(--ubr-space-5); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius); background: var(--ubr-color-surface); }
.ubr-summary__title { margin: 0 0 var(--ubr-space-3); color: var(--ubr-color-heading); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-bold); letter-spacing: var(--ubr-letter-spacing-caps); text-transform: uppercase; }
.ubr-summary__list { margin: 0; }
.ubr-summary__list > div { display: flex; justify-content: space-between; gap: var(--ubr-space-3); padding-block: var(--ubr-space-2); border-bottom: 1px solid var(--ubr-line); font-size: var(--ubr-font-size-sm); }
.ubr-summary__list > div:last-child { border-bottom: 0; }
.ubr-summary__list dt { color: var(--ubr-color-muted); }
.ubr-summary__list dd { margin: 0; color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-semibold); text-align: end; }

.ubr-button__messages:empty,
.ubr-auth__messages:empty { display: none; }

/* ================================================================ Listing */

.ubr-listing__items { display: grid; grid-template-columns: 1fr; gap: var(--ubr-space-6) var(--ubr-gap); margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .ubr-listing--grid, .ubr-listing--card, .ubr-listing--advanced { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ubr-listing--grid, .ubr-listing--card, .ubr-listing--advanced { grid-template-columns: repeat(var(--ubr-columns), 1fr); } }

.ubr-listing .ubr-card,
.ubr-card--grid,
.ubr-card--list,
.ubr-card--advanced { height: 100%; transition: transform var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease), border-color var(--ubr-duration) var(--ubr-ease); }
.ubr-listing .ubr-card:hover { border-color: var(--ubr-color-border-strong); box-shadow: var(--ubr-shadow-md); transform: translateY(-2px); }
.ubr-card__media { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--ubr-color-surface-sunken); }
.ubr-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ubr-ease); }
.ubr-card:hover .ubr-card__media img { transform: scale(1.04); }
.ubr-card__badge { position: absolute; inset-block-start: var(--ubr-space-3); inset-inline-start: var(--ubr-space-3); background: color-mix(in srgb, var(--ubr-color-surface) 92%, transparent); color: var(--ubr-color-heading); box-shadow: var(--ubr-shadow-sm); backdrop-filter: blur(6px); }
.ubr-card__body { display: flex; flex: 1; flex-direction: column; gap: var(--ubr-space-2); padding: var(--ubr-space-4) var(--ubr-space-5); }
.ubr-card__title { margin: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); }
.ubr-card__title a { color: inherit; text-decoration: none; }
.ubr-card__title a:hover { color: var(--ubr-accent); }
.ubr-card__title a:focus-visible { outline: none; border-radius: 4px; box-shadow: var(--ubr-ring); }
.ubr-card__location,
.ubr-card__excerpt,
.ubr-card__next { margin: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-card__footer { display: flex; align-items: center; justify-content: space-between; gap: var(--ubr-space-3); padding: var(--ubr-space-3) var(--ubr-space-5); border-top: 1px solid var(--ubr-line); background: var(--ubr-color-surface-alt); }

.ubr-card--list { flex-direction: column; }
@media (min-width: 640px) {
	.ubr-card--list { flex-direction: row; }
	.ubr-card--list .ubr-card__media { flex: 0 0 34%; aspect-ratio: auto; }
}
.ubr-card__aside { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: var(--ubr-space-3); padding: var(--ubr-space-4); }

.ubr-card--overlay { position: relative; }
.ubr-card--overlay .ubr-card__link { position: relative; display: block; color: #fff; text-decoration: none; }
.ubr-card--overlay .ubr-card__media { aspect-ratio: 3 / 4; }
.ubr-card__overlay { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: var(--ubr-space-2); padding: var(--ubr-space-5); background: linear-gradient(to top, rgba(2, 6, 23, .82), rgba(2, 6, 23, .3) 60%, transparent); }
.ubr-card__overlay .ubr-card__title,
.ubr-card__overlay .ubr-price { color: #fff; }
.ubr-card__overlay .ubr-price__prefix,
.ubr-card__overlay .ubr-price__unit { color: rgba(255, 255, 255, .8); }
.ubr-card--overlay .ubr-card__link:focus-visible { outline: none; box-shadow: var(--ubr-ring); }

.ubr-card--advanced .ubr-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ubr-space-2); margin: 0; }
.ubr-card--advanced .ubr-meta { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 6px; }
.ubr-card--advanced .ubr-meta__item { padding: 6px var(--ubr-space-2); font-size: var(--ubr-font-size-sm); }

.ubr-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: var(--ubr-space-6) 0 0; padding: 0; list-style: none; }
.ubr-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.ubr-pagination a,
.ubr-pagination span,
.ubr-pagination__item { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 var(--ubr-space-2); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface); color: var(--ubr-ink); font-weight: var(--ubr-font-weight-semibold); text-decoration: none; }
.ubr-pagination a:hover { border-color: var(--ubr-accent-line); color: var(--ubr-accent); }
.ubr-pagination [aria-current],
.ubr-pagination .is-current { border-color: var(--ubr-accent); background: var(--ubr-accent); color: var(--ubr-on-accent); }

/* ================================================================ Search & filters */

.ubr-filter-form { display: flex; flex-direction: column; gap: var(--ubr-space-3); }
.ubr-search .ubr-filter-form,
.ubr-booking-search .ubr-filter-form { padding: var(--ubr-space-4); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-md); }
.ubr-search__row { display: grid; grid-template-columns: 1fr; gap: var(--ubr-space-3); align-items: end; }
@media (min-width: 768px) { .ubr-search__row { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); } }
.ubr-filter { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; }
.ubr-filter__label { padding: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-semibold); }
.ubr-filter__range { display: flex; align-items: center; gap: var(--ubr-space-2); }
.ubr-archive__filters .ubr-filter-form { padding: var(--ubr-space-5); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius); background: var(--ubr-color-surface); }

/* ================================================================ Customer area: booking details */

.ubr-booking-details__header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--ubr-space-3); }
.ubr-booking-details__title { margin: 0; }
.ubr-booking-details__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--ubr-space-3); }
.ubr-table { width: 100%; border-collapse: collapse; }
.ubr-table td,
.ubr-table th { padding: var(--ubr-space-2) 0; border: 0; border-bottom: 1px solid var(--ubr-line); background: none; text-align: start; }
.ubr-table th { color: var(--ubr-color-muted); font-weight: var(--ubr-font-weight-medium); }
.ubr-table__num { font-variant-numeric: tabular-nums; text-align: end !important; white-space: nowrap; }
.ubr-notes { margin: 0; padding: 0; list-style: none; }
.ubr-notes li { padding-block: var(--ubr-space-2); border-bottom: 1px solid var(--ubr-line); }
.ubr-notes p { margin: 0; }

/* Booking list cards */
.ubr-booking-list { display: grid; gap: var(--ubr-space-3); margin: 0; padding: 0; list-style: none; }
.ubr-booking-list__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ubr-space-4);
	padding: var(--ubr-space-4);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius);
	background: var(--ubr-color-surface);
	box-shadow: var(--ubr-shadow-xs);
	transition: border-color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease);
}
.ubr-booking-list__item:hover { border-color: var(--ubr-color-border-strong); box-shadow: var(--ubr-shadow-sm); }
.ubr-booking-card__date { display: flex; flex: none; flex-direction: column; align-items: center; justify-content: center; width: 60px; height: 64px; border-radius: var(--ubr-radius-sm); background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); line-height: 1; }
.ubr-booking-card__day { font-size: var(--ubr-font-size-xl); font-weight: var(--ubr-font-weight-bold); font-variant-numeric: tabular-nums; }
.ubr-booking-card__month { margin-top: 4px; font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-semibold); letter-spacing: var(--ubr-letter-spacing-caps); text-transform: uppercase; }
.ubr-booking-card__thumb { flex: none; width: 64px; height: 64px; border-radius: var(--ubr-radius-sm); object-fit: cover; }
.ubr-booking-list__main { display: flex; flex: 1 1 200px; flex-direction: column; gap: 2px; min-width: 0; }
.ubr-booking-list__service { overflow: hidden; color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); text-overflow: ellipsis; white-space: nowrap; }
.ubr-booking-list__when,
.ubr-booking-list__number { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-booking-list__number { font-variant-numeric: tabular-nums; }
.ubr-booking-list__side { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-3); margin-inline-start: auto; }
.ubr-booking-list__total { color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); font-variant-numeric: tabular-nums; }
.ubr-booking-card__actions { display: flex; gap: var(--ubr-space-2); }
@media (max-width: 560px) {
	.ubr-booking-card__thumb { display: none; }
	.ubr-booking-list__side { width: 100%; justify-content: space-between; margin-inline-start: 0; }
}

.ubr-tabs { display: flex; gap: var(--ubr-space-1); margin-bottom: var(--ubr-gap); border-bottom: 1px solid var(--ubr-line); }
.ubr-tabs__tab { padding: var(--ubr-space-3) var(--ubr-space-4); border: 0; border-bottom: 2px solid transparent; background: none; color: var(--ubr-color-muted); font: inherit; font-weight: var(--ubr-font-weight-semibold); cursor: pointer; }
.ubr-tabs__tab[aria-selected="true"] { border-bottom-color: var(--ubr-accent); color: var(--ubr-accent); }
.ubr-tabs__tab:focus-visible { outline: none; box-shadow: var(--ubr-ring); }

.ubr-guest-access { display: grid; grid-template-columns: 1fr; gap: var(--ubr-gap); }
@media (min-width: 768px) { .ubr-guest-access { grid-template-columns: 1fr 1fr; align-items: start; } }
.ubr-guest-access .ubr-auth__card { margin: 0; }
.ubr-lookup { display: grid; gap: var(--ubr-space-3); }

.ubr-reschedule__toggle > summary { display: inline-flex; list-style: none; }
.ubr-reschedule__toggle > summary::-webkit-details-marker { display: none; }
.ubr-reschedule__body { display: grid; gap: var(--ubr-gap); margin-top: var(--ubr-gap); padding: var(--ubr-space-5); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius); background: var(--ubr-color-surface-alt); }

.ubr-timeline { margin: 0; padding: 0; border-inline-start: 2px solid var(--ubr-line); list-style: none; }
.ubr-timeline__item { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-3); padding-block: var(--ubr-space-2); padding-inline-start: var(--ubr-space-5); }
.ubr-timeline__item::before { content: ""; position: absolute; inset-inline-start: -7px; width: 12px; height: 12px; border: 2px solid var(--ubr-color-surface); border-radius: 50%; background: var(--ubr-accent); box-shadow: 0 0 0 1px var(--ubr-accent-line); }
.ubr-timeline__item time { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

.ubr-cart__list { display: grid; gap: var(--ubr-space-2); margin: 0 0 var(--ubr-space-3); padding: 0; list-style: none; }
.ubr-cart__item { display: flex; align-items: center; justify-content: space-between; gap: var(--ubr-space-3); padding: var(--ubr-space-3); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface); }
.ubr-cart__total { display: flex; justify-content: space-between; margin-bottom: var(--ubr-space-3); color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); }

.ubr-confirmation { max-width: 640px; margin-inline: auto; text-align: center; }
.ubr-confirmation__icon { display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; margin: 0 auto var(--ubr-space-4); border-radius: 50%; color: #fff; font-size: 34px; box-shadow: 0 0 0 10px var(--ubr-success-soft); }
.ubr-confirmation__icon--success { background: var(--ubr-color-success); }
.ubr-confirmation__icon--pending { background: var(--ubr-color-warning); box-shadow: 0 0 0 10px var(--ubr-warning-soft); }
.ubr-confirmation__title { margin: 0 0 var(--ubr-space-2); }
.ubr-confirmation__details { margin-block: var(--ubr-gap); text-align: start; }
.ubr-confirmation__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ubr-space-3); }

/* ================================================================ Customer account (dashboard) */

.ubr-account { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ubr-space-6); align-items: start; }
.ubr-account__aside,
.ubr-account__main { min-width: 0; }
@media (min-width: 900px) { .ubr-account { grid-template-columns: 260px minmax(0, 1fr); } }
.ubr-account__aside { padding: var(--ubr-space-4); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-sm); }
@media (min-width: 900px) { .ubr-account__aside { position: sticky; inset-block-start: var(--ubr-space-6); } }
.ubr-account__user { display: flex; align-items: center; gap: var(--ubr-space-3); padding: var(--ubr-space-2) var(--ubr-space-2) var(--ubr-space-4); margin-bottom: var(--ubr-space-3); border-bottom: 1px solid var(--ubr-line); }
.ubr-account__user > div { display: flex; flex-direction: column; min-width: 0; }
.ubr-account__avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; box-shadow: 0 0 0 3px var(--ubr-accent-soft); }
.ubr-account__name { overflow: hidden; color: var(--ubr-color-heading); text-overflow: ellipsis; white-space: nowrap; }
.ubr-account__email { overflow: hidden; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); text-overflow: ellipsis; white-space: nowrap; }
.ubr-account__nav ul { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 899px) {
	.ubr-account__nav ul { flex-direction: row; overflow-x: auto; scrollbar-width: none; }
	.ubr-account__nav li { flex: none; }
}
.ubr-account__link { display: flex; align-items: center; gap: var(--ubr-space-3); padding: var(--ubr-space-2) var(--ubr-space-3); border-radius: var(--ubr-radius-sm); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-base); font-weight: var(--ubr-font-weight-semibold); text-decoration: none; transition: background-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease); }
.ubr-account__link svg { flex: none; opacity: .8; }
.ubr-account__link:hover { background: var(--ubr-color-surface-alt); color: var(--ubr-ink); }
.ubr-account__link.is-active { background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); }
.ubr-account__link.is-active svg { opacity: 1; }
.ubr-account__link:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-account__link--logout { margin-top: var(--ubr-space-2); }
.ubr-account__link--logout:hover { background: var(--ubr-danger-soft); color: var(--ubr-color-danger); }
.ubr-account__badge { margin-inline-start: auto; min-width: 22px; padding: 0 6px; border-radius: var(--ubr-radius-pill); background: var(--ubr-accent); color: var(--ubr-on-accent); font-size: var(--ubr-font-size-xs); line-height: 20px; text-align: center; }
.ubr-account__main { display: grid; gap: var(--ubr-space-5); min-width: 0; }
.ubr-account__main > .ubr-card,
.ubr-account__main section.ubr-card { margin: 0; }
.ubr-account__head { display: grid; gap: var(--ubr-space-1); }
.ubr-account__head p { margin: 0; }
.ubr-account__title { margin: 0; font-size: var(--ubr-font-size-2xl); letter-spacing: -.01em; }

.ubr-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--ubr-space-3); }
@media (min-width: 640px) { .ubr-stats { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); } }
.ubr-stat { position: relative; display: flex; flex-direction: column; gap: var(--ubr-space-1); padding: var(--ubr-space-4) var(--ubr-space-5); overflow: hidden; border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius); background: var(--ubr-color-surface); color: inherit; text-decoration: none; box-shadow: var(--ubr-shadow-xs); transition: border-color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease), transform var(--ubr-duration) var(--ubr-ease); }
.ubr-stat::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; height: 3px; background: var(--ubr-accent); opacity: 0; transition: opacity var(--ubr-duration) var(--ubr-ease); }
.ubr-stat:hover { border-color: var(--ubr-accent-line); box-shadow: var(--ubr-shadow-sm); transform: translateY(-1px); }
.ubr-stat:hover::before { opacity: 1; }
.ubr-stat:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-stat__value { color: var(--ubr-color-heading); font-size: var(--ubr-font-size-2xl); font-weight: var(--ubr-font-weight-bold); font-variant-numeric: tabular-nums; line-height: 1.1; }
.ubr-stat__label { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

.ubr-next { position: relative; background: linear-gradient(135deg, var(--ubr-accent-softer), var(--ubr-color-surface) 60%); }
.ubr-next__body { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-4); }
.ubr-next__image { flex: none; width: 88px; height: 88px; border-radius: var(--ubr-radius); object-fit: cover; box-shadow: var(--ubr-shadow-sm); }
.ubr-next__info { display: flex; flex: 1 1 220px; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.ubr-next__countdown { padding: 2px 10px; border-radius: var(--ubr-radius-pill); background: var(--ubr-accent); color: var(--ubr-on-accent); font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-bold); }
.ubr-next__service { color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); }
.ubr-next__when { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

.ubr-profile { display: grid; gap: var(--ubr-space-5); }
.ubr-profile__section { display: grid; gap: var(--ubr-space-4); }
.ubr-profile__section > .ubr-card__title { margin: 0; }
.ubr-profile__section > .ubr-btn { justify-self: start; }
.ubr-profile__phone { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-2); margin: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-semibold); }
.ubr-profile__prefs { display: grid; gap: var(--ubr-space-2); margin: 0; padding: 0; border: 0; }
.ubr-profile__prefs legend { margin-bottom: var(--ubr-space-2); padding: 0; }
.ubr-disclosure > summary { display: inline-flex; list-style: none; }
.ubr-disclosure > summary::-webkit-details-marker { display: none; }
.ubr-disclosure[open] > summary { margin-bottom: var(--ubr-space-4); }

/* ================================================================ Login / registration */

.ubr-auth { width: 100%; max-width: 460px; margin-inline: auto; }
.ubr-auth__card {
	display: grid;
	gap: var(--ubr-space-5);
	padding: var(--ubr-space-7);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius-lg);
	background: var(--ubr-color-surface);
	box-shadow: var(--ubr-shadow-lg);
}
@media (max-width: 480px) { .ubr-auth__card { padding: var(--ubr-space-5); border-radius: var(--ubr-radius); } }
.ubr-auth__card--done { text-align: center; }
.ubr-auth__card--done p { margin: 0; }
.ubr-auth__header { display: grid; gap: var(--ubr-space-1); text-align: center; }
.ubr-auth__title { margin: 0; font-size: var(--ubr-font-size-2xl); letter-spacing: -.01em; }
.ubr-auth__subtitle { margin: 0; color: var(--ubr-color-muted); }
.ubr-auth__panel { display: grid; gap: var(--ubr-space-4); }
.ubr-auth__panel[hidden] { display: none; }
.ubr-auth__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ubr-space-2); font-size: var(--ubr-font-size-sm); }
.ubr-auth__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ubr-space-3); }
.ubr-auth__messages .ubr-notice { margin: 0; }
.ubr-auth__footer { padding-top: var(--ubr-space-4); border-top: 1px solid var(--ubr-line); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); text-align: center; }

/* WhatsApp one-time code */
.ubr-otp { display: grid; gap: var(--ubr-space-4); }
.ubr-otp__step { display: grid; gap: var(--ubr-space-4); }
.ubr-otp__step[hidden] { display: none; }
.ubr-otp__sent { margin: 0; padding: var(--ubr-space-3) var(--ubr-space-4); border-radius: var(--ubr-radius-sm); background: color-mix(in srgb, var(--ubr-color-whatsapp) 9%, var(--ubr-color-surface)); color: var(--ubr-color-whatsapp-ink); font-size: var(--ubr-font-size-sm); text-align: center; }
.ubr-otp__sent:empty { display: none; }
.ubr-otp__code { min-width: 0; margin: 0; padding: 0; border: 0; }
.ubr-otp__digits { display: flex; justify-content: center; gap: var(--ubr-space-2); direction: ltr; }
.ubr-otp__digit {
	width: 100%;
	max-width: 52px;
	height: 58px;
	padding: 0;
	border: var(--ubr-border-width) solid var(--ubr-color-border-strong);
	border-radius: var(--ubr-radius-sm);
	background: var(--ubr-color-surface-alt);
	color: var(--ubr-color-heading);
	font: inherit;
	font-size: var(--ubr-font-size-xl);
	font-weight: var(--ubr-font-weight-bold);
	font-variant-numeric: tabular-nums;
	text-align: center;
	caret-color: var(--ubr-accent);
	transition: border-color var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease);
}
.ubr-otp__digit:focus { outline: none; border-color: var(--ubr-accent); background: var(--ubr-color-surface); box-shadow: var(--ubr-ring); }
.ubr-otp__digit[aria-invalid="true"] { border-color: var(--ubr-color-danger); animation: ubr-shake .35s var(--ubr-ease); }
.ubr-otp__links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--ubr-space-2); font-size: var(--ubr-font-size-sm); }
.ubr-otp--inline { padding: var(--ubr-space-4); border: 1px dashed var(--ubr-color-border-strong); border-radius: var(--ubr-radius); background: var(--ubr-color-surface-alt); }
.ubr-otp--inline > .ubr-btn { justify-self: start; }
.ubr-otp__status:empty { display: none; }
.ubr-otp__status { font-size: var(--ubr-font-size-sm); }
.ubr-otp__status.is-verified { color: var(--ubr-color-success); font-weight: var(--ubr-font-weight-semibold); }

@keyframes ubr-shake {
	20%, 60% { transform: translateX(-4px); }
	40%, 80% { transform: translateX(4px); }
}

/* ================================================================ Default layouts (no Elementor) */

.ubr-container { width: min(1200px, 100% - 32px); margin-inline: auto; padding-block: var(--ubr-space-6); }
.ubr-layout { display: grid; gap: var(--ubr-space-6); }
.ubr-layout__grid { display: grid; grid-template-columns: 1fr; gap: var(--ubr-space-7); }
.ubr-layout__main,
.ubr-layout__content { display: grid; align-content: start; gap: var(--ubr-space-6); min-width: 0; }
@media (min-width: 1024px) {
	.ubr-layout__grid { grid-template-columns: minmax(0, 1fr) 400px; }
	.ubr-layout__sticky { position: sticky; inset-block-start: var(--ubr-space-6); }
	.ubr-layout--minimal .ubr-layout__grid { grid-template-columns: minmax(0, 1fr) 420px; }
}
.ubr-archive__header { display: grid; gap: var(--ubr-space-2); margin-bottom: var(--ubr-space-6); }
.ubr-archive__title { margin: 0; font-size: var(--ubr-font-size-3xl); letter-spacing: -.02em; }
.ubr-archive__description { max-width: 70ch; color: var(--ubr-color-muted); }
.ubr-archive__layout { display: grid; grid-template-columns: 1fr; gap: var(--ubr-space-7); margin-top: var(--ubr-gap); }
@media (min-width: 1024px) { .ubr-archive__layout { grid-template-columns: 280px minmax(0, 1fr); } }

/* ================================================================ Motion */

@media (prefers-reduced-motion: reduce) {
	.ubr *,
	.ubr *::before,
	.ubr *::after { transition: none !important; animation: none !important; }
	.ubr-btn[aria-busy="true"]::after { animation: ubr-spin 1.5s linear infinite !important; }
}

/* ================================================================ Theme isolation
 * Themes style bare inputs, buttons and links (borders, underlines, heights). These rules keep the
 * plugin look consistent; Elementor widget settings still win (they use more specific selectors). */

body .ubr a:not(.ubr-btn) { text-decoration: none; box-shadow: none; }
body .ubr a:not(.ubr-btn):hover,
body .ubr a:not(.ubr-btn):focus { text-decoration: none; }
body .ubr :is(input.ubr-input, select.ubr-input, textarea.ubr-input) {
	width: 100%;
	height: auto;
	min-height: var(--ubr-control-height);
	margin: 0;
	padding: var(--ubr-space-2) var(--ubr-space-3);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius-sm);
	background-color: var(--ubr-color-surface);
	color: var(--ubr-ink);
	font-family: inherit;
	font-size: var(--ubr-font-size-base);
	line-height: 1.4;
	box-shadow: var(--ubr-shadow-xs);
	outline: none;
}
body .ubr textarea.ubr-input { min-height: 104px; }
body .ubr select.ubr-input { max-width: 100%; text-overflow: ellipsis; }
.ubr-grid-2 > *,
.ubr-fields-grid > * { min-width: 0; }
body .ubr :is(input.ubr-input, select.ubr-input, textarea.ubr-input):focus { border-color: var(--ubr-accent); box-shadow: var(--ubr-ring); }
body .ubr :is(input.ubr-input, select.ubr-input, textarea.ubr-input)[aria-invalid="true"] { border-color: var(--ubr-color-danger); }
body .ubr .ubr-password .ubr-input { padding-inline-end: 52px; }
body .ubr .ubr-otp__digit { width: 100%; max-width: 52px; height: 58px; min-height: 0; padding: 0; border: var(--ubr-border-width) solid var(--ubr-color-border-strong); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface-alt); color: var(--ubr-color-heading); font-size: var(--ubr-font-size-xl); text-align: center; box-shadow: none; }
body .ubr .ubr-otp__digit:focus { border-color: var(--ubr-accent); background: var(--ubr-color-surface); box-shadow: var(--ubr-ring); }
body .ubr button:is(.ubr-btn, .ubr-link, .ubr-segmented__item, .ubr-slot, .ubr-day, .ubr-stepper__btn, .ubr-password__toggle, .ubr-calendar__prev, .ubr-calendar__next, .ubr-wizard__step-btn, .ubr-carousel__arrow, .ubr-carousel__dot, .ubr-amenu__toggle) {
	text-transform: none;
	letter-spacing: normal;
	font-family: inherit;
	line-height: 1.2;
}
body .ubr button.ubr-link { min-height: 0; padding: 0; border: 0; background: none; box-shadow: none; }
body .ubr .ubr-btn { text-decoration: none; text-transform: none; }
body .ubr :is(a, button).ubr-btn { border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-sm); background-color: var(--ubr-color-surface); color: var(--ubr-ink); font-size: var(--ubr-font-size-base); font-weight: var(--ubr-font-weight-semibold); }
body .ubr :is(a, button).ubr-btn--sm { font-size: var(--ubr-font-size-sm); }
body .ubr :is(a, button).ubr-btn--primary { border-color: transparent; background-color: var(--ubr-accent); color: var(--ubr-on-accent); }
body .ubr :is(a, button).ubr-btn--primary:hover { background-color: var(--ubr-accent-strong); color: var(--ubr-on-accent); }
body .ubr :is(a, button).ubr-btn--ghost { background-color: transparent; }
body .ubr :is(a, button).ubr-btn--ghost:hover { border-color: var(--ubr-accent-line); background-color: var(--ubr-accent-softer); color: var(--ubr-accent); }
body .ubr :is(a, button).ubr-btn--danger { border-color: transparent; background-color: var(--ubr-color-danger); color: #fff; }
body .ubr :is(a, button).ubr-btn--primary.ubr-btn--whatsapp { background-color: var(--ubr-color-whatsapp); color: #fff; }
body .ubr input[type="checkbox"],
body .ubr input[type="radio"] { width: 18px; height: 18px; min-height: 0; accent-color: var(--ubr-accent); }
body .ubr table,
body .ubr th,
body .ubr td { border: 0; background: none; }
body .ubr :where(ul, ol).ubr-account__nav ul,
body .ubr :is(.ubr-amenu__list, .ubr-terms__items, .ubr-carousel__track) { margin: 0; padding: 0; list-style: none; }
body .ubr :is(.ubr-amenu__list, .ubr-terms__items, .ubr-carousel__track) > li { margin: 0; }

/* ================================================================ Section titles & receipts */

.ubr-section-title { display: flex; align-items: center; gap: var(--ubr-space-2); margin: 0 0 var(--ubr-space-4); color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); }
.ubr-section-title::before { content: ""; width: 4px; height: 1.1em; border-radius: 4px; background: var(--ubr-accent); }

.ubr-receipt { margin: 0; }
.ubr-receipt__row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ubr-space-4); padding: var(--ubr-space-3) 0; border-bottom: 1px dashed var(--ubr-line); }
.ubr-receipt__row dt { min-width: 0; margin: 0; color: var(--ubr-ink); font-weight: var(--ubr-font-weight-regular); }
.ubr-receipt__row dd { margin: 0; color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-semibold); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ubr-receipt__qty { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-receipt__row--discount dt,
.ubr-receipt__row--discount dd { color: var(--ubr-color-success); }
.ubr-receipt__row--total { margin-top: var(--ubr-space-2); padding: var(--ubr-space-4); border: 0; border-radius: var(--ubr-radius-sm); background: var(--ubr-accent-softer); }
.ubr-receipt__row--total dt { color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); }
.ubr-receipt__row--total dd { color: var(--ubr-accent-strong); font-size: var(--ubr-font-size-xl); font-weight: var(--ubr-font-weight-bold); }

/* ================================================================ Booking details (account) */

.ubr-booking-details { display: grid; gap: var(--ubr-space-5); }
.ubr-booking-details > .ubr-card { margin: 0; padding: var(--ubr-space-6); }
.ubr-booking-details__heading { display: grid; gap: var(--ubr-space-1); min-width: 0; }
.ubr-booking-details__number { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-booking-details__number bdi { color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-semibold); }
.ubr-booking-details__title { margin: 0; font-size: var(--ubr-font-size-2xl); letter-spacing: -.01em; }
.ubr-booking-details__when { color: var(--ubr-color-muted); }
.ubr-booking-details .ubr-meta__item--wide { grid-column: 1 / -1; }
.ubr-booking-details__actions { padding: var(--ubr-space-4) var(--ubr-space-6); }
@media (max-width: 560px) {
	.ubr-booking-details > .ubr-card,
	.ubr-booking-details__actions { padding: var(--ubr-space-4); }
	.ubr-booking-details__actions .ubr-btn { flex: 1 1 100%; }
}

/* ================================================================ Profile */

body .ubr .ubr-profile__identity { position: relative; display: block; overflow: hidden; padding: 0; container-type: inline-size; }
.ubr-profile__identity[aria-busy="true"] { opacity: .6; pointer-events: none; }
.ubr-profile__cover {
	height: 96px;
	background:
		radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--ubr-accent) 55%, transparent) 0%, transparent 60%),
		linear-gradient(135deg, var(--ubr-accent-soft), color-mix(in srgb, var(--ubr-accent) 30%, var(--ubr-color-surface)));
}
.ubr-profile__identity-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--ubr-space-4) var(--ubr-space-5); padding: 0 var(--ubr-space-6) var(--ubr-space-2); margin-top: -48px; }
.ubr-profile__avatar-wrap { position: relative; flex: none; }
body .ubr img.ubr-profile__avatar {
	display: block;
	width: 104px;
	height: 104px;
	max-width: none;
	border: 4px solid var(--ubr-color-surface);
	border-radius: 50%;
	background: var(--ubr-color-surface-sunken);
	object-fit: cover;
	box-shadow: var(--ubr-shadow-md);
}
.ubr-profile__avatar-edit {
	position: absolute;
	inset-block-end: 4px;
	inset-inline-end: 0;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 3px solid var(--ubr-color-surface);
	border-radius: 50%;
	background: var(--ubr-accent);
	color: var(--ubr-on-accent);
	cursor: pointer;
	box-shadow: var(--ubr-shadow-sm);
	transition: transform var(--ubr-duration) var(--ubr-ease);
}
.ubr-profile__avatar-edit:hover { transform: scale(1.08); }
.ubr-profile__avatar-wrap:focus-within .ubr-profile__avatar-edit { box-shadow: var(--ubr-ring); }
.ubr-profile__identity-body { display: grid; flex: 1 1 240px; gap: 2px; min-width: 0; padding-bottom: var(--ubr-space-2); }
.ubr-profile__name { overflow: hidden; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-xl); font-weight: var(--ubr-font-weight-bold); text-overflow: ellipsis; white-space: nowrap; }
.ubr-profile__email { overflow: hidden; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); text-overflow: ellipsis; white-space: nowrap; }
body .ubr .ubr-profile__facts { display: flex; flex-wrap: wrap; gap: var(--ubr-space-2); margin: var(--ubr-space-2) 0 0; padding: 0; list-style: none; }
.ubr-profile__facts li { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 3px 10px; border-radius: var(--ubr-radius-pill); background: var(--ubr-color-surface-sunken); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-semibold); }
.ubr-profile__facts .ubr-badge { padding: 0 8px; }
.ubr-profile__avatar-actions { display: flex; flex-wrap: wrap; gap: var(--ubr-space-2); padding-bottom: var(--ubr-space-3); }
.ubr-profile__avatar-actions label { cursor: pointer; }
body .ubr .ubr-profile__remove:hover { border-color: color-mix(in srgb, var(--ubr-color-danger) 40%, transparent); background: var(--ubr-danger-soft); color: var(--ubr-color-danger); }
.ubr-profile__hint { margin: 0; padding: 0 var(--ubr-space-6) var(--ubr-space-4); color: var(--ubr-color-subtle); font-size: var(--ubr-font-size-xs); }
.ubr-profile__messages:empty { display: none; }
.ubr-profile__messages { padding: 0 var(--ubr-space-6) var(--ubr-space-4); }
.ubr-profile__messages .ubr-notice { margin: 0; }
.ubr-profile__actions { display: flex; justify-content: flex-end; }
@container (max-width: 520px) {
	.ubr-profile__cover { height: 80px; }
	.ubr-profile__identity-row { flex-direction: column; align-items: center; padding-inline: var(--ubr-space-4); text-align: center; }
	.ubr-profile__identity-body { justify-items: center; width: 100%; }
	.ubr-profile__name,
	.ubr-profile__email { max-width: 100%; }
	body .ubr .ubr-profile__facts,
	.ubr-profile__avatar-actions { justify-content: center; }
	.ubr-profile__hint,
	.ubr-profile__messages { padding-inline: var(--ubr-space-4); text-align: center; }
}
@media (max-width: 560px) {
	.ubr-profile__actions .ubr-btn { width: 100%; }
}

/* Other plugin avatars: Elementor and themes reset image radius/borders. */
body .ubr img:is(.ubr-account__avatar, .ubr-amenu__avatar, .ubr-amenu__avatar-lg) { max-width: none; border-radius: 50%; object-fit: cover; }

/* ================================================================ Login gate (guest bookings off) */

.ubr-login-gate { display: grid; justify-items: center; gap: var(--ubr-space-2); padding: var(--ubr-space-6) var(--ubr-space-4); border: 1px dashed var(--ubr-accent-line); border-radius: var(--ubr-radius); background: var(--ubr-accent-softer); text-align: center; }
.ubr-login-gate__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); }
.ubr-login-gate__title { margin: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); }
.ubr-login-gate__text { margin: 0; max-width: 42ch; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-login-gate__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ubr-space-2); margin-top: var(--ubr-space-2); }
/* ================================================================ Auth extras */

.ubr-auth__hint { margin: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); text-align: center; }
.ubr-auth__admin-note { margin: 0; }
.ubr-segmented__item--whatsapp::before {
	content: "";
	width: 16px;
	height: 16px;
	margin-inline-end: 6px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ubr-segmented__item--password::before {
	content: "";
	width: 16px;
	height: 16px;
	margin-inline-end: 6px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ================================================================ Multi-step booking form */

.ubr-wizard { display: grid; gap: var(--ubr-space-5); }
.ubr-wizard__progress { display: flex; gap: var(--ubr-space-2); margin: 0; padding: 0; list-style: none; counter-reset: none; }
.ubr-wizard__step { position: relative; flex: 1; min-width: 0; }
.ubr-wizard__step::after { content: ""; position: absolute; inset-block-start: 17px; inset-inline-start: calc(50% + 22px); inset-inline-end: calc(-50% + 22px + var(--ubr-space-2)); height: 2px; border-radius: 2px; background: var(--ubr-line); }
.ubr-wizard__step:last-child::after { display: none; }
.ubr-wizard__step.is-done::after { background: var(--ubr-accent); }
.ubr-wizard__step-btn { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; padding: 0; border: 0; background: none; color: var(--ubr-color-muted); font: inherit; font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-semibold); text-align: center; cursor: pointer; }
.ubr-wizard__step-btn:disabled { cursor: default; }
.ubr-wizard__step-btn:focus-visible { outline: none; }
.ubr-wizard__step-btn:focus-visible .ubr-wizard__num { box-shadow: var(--ubr-ring); }
.ubr-wizard__num { position: relative; z-index: 1; display: grid; place-items: center; width: 36px; height: 36px; border: 2px solid var(--ubr-line); border-radius: 50%; background: var(--ubr-color-surface); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-bold); transition: background-color var(--ubr-duration) var(--ubr-ease), border-color var(--ubr-duration) var(--ubr-ease), color var(--ubr-duration) var(--ubr-ease); }
.ubr-wizard__label { overflow: hidden; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; }
.ubr-wizard__step.is-active .ubr-wizard__num { border-color: var(--ubr-accent); background: var(--ubr-accent); color: var(--ubr-on-accent); box-shadow: 0 0 0 4px var(--ubr-accent-soft); }
.ubr-wizard__step.is-active .ubr-wizard__step-btn { color: var(--ubr-color-heading); }
.ubr-wizard__step.is-done .ubr-wizard__num { border-color: var(--ubr-accent); background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); }
.ubr-wizard__body { min-width: 0; }
.ubr-wizard__panel { display: grid; gap: var(--ubr-space-6); animation: ubr-fade-in .25s var(--ubr-ease); }
.ubr-wizard__panel .ubr-step + .ubr-step { padding-top: var(--ubr-space-6); border-top: 1px solid var(--ubr-line); }
.ubr-wizard__title { display: grid; gap: 2px; margin: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-xl); outline: none; }
.ubr-wizard__counter { color: var(--ubr-accent); font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-semibold); letter-spacing: var(--ubr-letter-spacing-caps); text-transform: uppercase; }
.ubr-wizard__nav { position: sticky; inset-block-end: 0; z-index: 2; display: flex; align-items: center; gap: var(--ubr-space-3); margin-inline: calc(var(--ubr-space-6) * -1); margin-bottom: calc(var(--ubr-space-6) * -1); padding: var(--ubr-space-4) var(--ubr-space-6); border-top: 1px solid var(--ubr-line); border-radius: 0 0 var(--ubr-radius-lg) var(--ubr-radius-lg); background: color-mix(in srgb, var(--ubr-color-surface) 94%, transparent); backdrop-filter: blur(8px); }
.ubr-wizard__total { flex: 1; color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); font-variant-numeric: tabular-nums; text-align: center; }
.ubr-wizard__next { margin-inline-start: auto; min-width: 140px; }
.ubr-wizard.is-last .ubr-wizard__nav { justify-content: flex-start; }
.ubr-wizard__messages:empty { display: none; }
.ubr-wizard__messages .ubr-notice { margin: 0; }
.ubr-booking-form--wizard .ubr-booking-form__form { gap: 0; }
.ubr-booking-form--wizard .ubr-summary { background: var(--ubr-color-surface-alt); }
/* Movement only: content stays visible even where animations are paused. */
@keyframes ubr-fade-in { from { transform: translateY(6px); } to { transform: none; } }
@media (max-width: 560px) {
	.ubr-wizard__label { display: none; }
	.ubr-wizard__step.is-active .ubr-wizard__label { position: absolute; inset-block-start: 42px; display: block; overflow: visible; }
	.ubr-wizard__progress { margin-bottom: var(--ubr-space-4); }
	.ubr-wizard__nav { margin-inline: calc(var(--ubr-space-4) * -1); margin-bottom: calc(var(--ubr-space-4) * -1); padding: var(--ubr-space-3) var(--ubr-space-4); }
	.ubr-wizard__next { min-width: 0; flex: 1; }
	.ubr-wizard__total { flex: none; font-size: var(--ubr-font-size-sm); }
}

/* ================================================================ Services carousel */

.ubr-carousel { --ubr-slides: 3; --ubr-carousel-gap: var(--ubr-gap); position: relative; }
.ubr-carousel__viewport { overflow: hidden; margin: -8px; padding: 8px; }
body .ubr .ubr-carousel__track {
	display: grid;
	grid-auto-columns: calc((100% - (var(--ubr-slides) - 1) * var(--ubr-carousel-gap)) / var(--ubr-slides));
	grid-auto-flow: column;
	grid-template-columns: none;
	gap: var(--ubr-carousel-gap);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding-block: 4px 10px;
}
.ubr-carousel__track::-webkit-scrollbar { display: none; }
.ubr-carousel__track:focus-visible { outline: none; box-shadow: var(--ubr-ring); border-radius: var(--ubr-radius); }
.ubr-carousel__track > li { position: relative; scroll-snap-align: start; min-width: 0; }
.ubr-carousel__viewport { contain: paint; }
.ubr-carousel__arrow {
	position: absolute;
	inset-block-start: 40%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: 50%;
	background: var(--ubr-color-surface);
	color: var(--ubr-color-heading);
	box-shadow: var(--ubr-shadow-md);
	cursor: pointer;
	transition: opacity var(--ubr-duration) var(--ubr-ease), transform var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease);
}
.ubr-carousel__arrow:hover { background: var(--ubr-accent); color: var(--ubr-on-accent); border-color: transparent; }
.ubr-carousel__arrow:disabled { opacity: 0; pointer-events: none; }
.ubr-carousel__arrow:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-carousel__arrow--prev { inset-inline-start: 6px; }
.ubr-carousel__arrow--next { inset-inline-end: 6px; }
[dir="rtl"] .ubr-carousel__arrow svg,
.rtl .ubr-carousel__arrow svg { transform: scaleX(-1); }
.ubr-carousel__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: var(--ubr-space-3); }
.ubr-carousel__dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: var(--ubr-radius-pill); background: var(--ubr-color-border-strong); cursor: pointer; transition: width var(--ubr-duration) var(--ubr-ease), background-color var(--ubr-duration) var(--ubr-ease); }
.ubr-carousel__dot[aria-current="true"] { width: 24px; background: var(--ubr-accent); }
.ubr-carousel.is-static .ubr-carousel__arrow,
.ubr-carousel.is-static .ubr-carousel__dots { display: none; }
@media (max-width: 767px) {
	.ubr-carousel { --ubr-slides: 1.15; }
	.ubr-carousel__arrow { display: none; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.ubr-carousel { --ubr-slides: 2; }
}

/* ================================================================ Categories grid */

.ubr-terms { --ubr-columns: 4; }
.ubr-terms__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ubr-gap); }
@media (min-width: 768px) { .ubr-terms__items { grid-template-columns: repeat(min(var(--ubr-columns), 3), minmax(0, 1fr)); } }
@media (min-width: 1025px) { .ubr-terms__items { grid-template-columns: repeat(var(--ubr-columns), minmax(0, 1fr)); } }
.ubr-terms__link { display: flex; flex-direction: column; height: 100%; overflow: hidden; border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius); background: var(--ubr-color-surface); color: inherit; box-shadow: var(--ubr-shadow-xs); transition: transform var(--ubr-duration) var(--ubr-ease), box-shadow var(--ubr-duration) var(--ubr-ease), border-color var(--ubr-duration) var(--ubr-ease); }
.ubr-terms__link:hover { border-color: var(--ubr-accent-line); box-shadow: var(--ubr-shadow-md); transform: translateY(-2px); }
.ubr-terms__link:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-terms__media { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ubr-accent-softer); }
.ubr-terms__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ubr-ease); }
.ubr-terms__link:hover .ubr-terms__media img { transform: scale(1.05); }
.ubr-terms__icon { width: 56px; height: 56px; color: var(--ubr-accent); font-size: 56px; line-height: 1; }
.ubr-terms__initial { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); font-size: var(--ubr-font-size-2xl); font-weight: var(--ubr-font-weight-bold); }
.ubr-terms__body { display: grid; gap: 2px; padding: var(--ubr-space-4); }
.ubr-terms__name { margin: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-base); font-weight: var(--ubr-font-weight-bold); }
.ubr-terms__count,
.ubr-terms__desc { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
/* Image tiles: text over the picture */
.ubr-terms--tiles .ubr-terms__link { position: relative; border: 0; }
.ubr-terms--tiles .ubr-terms__media { aspect-ratio: 4 / 5; }
.ubr-terms--tiles .ubr-terms__body { position: absolute; inset: auto 0 0 0; background: linear-gradient(to top, rgba(2, 6, 23, .8), transparent); }
.ubr-terms--tiles .ubr-terms__name,
.ubr-terms--tiles .ubr-terms__count,
.ubr-terms--tiles .ubr-terms__desc { color: #fff; }
/* Pills */
.ubr-terms--pills { display: flex !important; flex-wrap: wrap; gap: var(--ubr-space-2); }
.ubr-terms--pills .ubr-terms__link { flex-direction: row; align-items: center; border-radius: var(--ubr-radius-pill); }
.ubr-terms--pills .ubr-terms__media { width: 32px; height: 32px; margin-inline-start: 6px; border-radius: 50%; aspect-ratio: 1; }
.ubr-terms--pills .ubr-terms__icon { width: 20px; height: 20px; font-size: 20px; }
.ubr-terms--pills .ubr-terms__initial { width: 32px; height: 32px; font-size: var(--ubr-font-size-sm); }
.ubr-terms--pills .ubr-terms__body { display: flex; align-items: baseline; gap: var(--ubr-space-2); padding: var(--ubr-space-2) var(--ubr-space-4); }
.ubr-terms--pills .ubr-terms__name { font-size: var(--ubr-font-size-sm); }
.ubr-terms--pills .ubr-terms__count { font-size: var(--ubr-font-size-xs); }

/* ================================================================ Advanced search */

.ubr-asearch__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--ubr-space-3); padding: var(--ubr-space-4); border: var(--ubr-border-width) solid var(--ubr-line); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-md); }
.ubr-asearch__fields { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: var(--ubr-space-3); min-width: 0; }
.ubr-asearch__field { display: flex; flex: 1 1 160px; flex-direction: column; gap: 6px; min-width: 0; }
.ubr-asearch__field--keyword { flex-grow: 2; }
.ubr-asearch__field--price { flex-basis: 200px; }
.ubr-asearch__label { color: var(--ubr-color-heading); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-semibold); }
.ubr-asearch__actions { display: flex; align-items: center; gap: var(--ubr-space-3); }
.ubr-asearch__submit { min-width: 130px; }
.ubr-asearch--stacked { flex-direction: column; align-items: stretch; }
.ubr-asearch--stacked .ubr-asearch__fields { flex-direction: column; }
.ubr-asearch--stacked .ubr-asearch__field { flex-basis: auto; max-width: none !important; }
.ubr-asearch--stacked .ubr-asearch__submit { width: 100%; }
@media (max-width: 767px) {
	.ubr-asearch__form { flex-direction: column; align-items: stretch; }
	.ubr-asearch__field { flex-basis: 100% !important; max-width: none !important; }
	.ubr-asearch__actions,
	.ubr-asearch__submit { width: 100%; }
}

/* ================================================================ Account icon (header) */

.ubr-amenu { --ubr-amenu-size: 24px; position: relative; display: flex; }
.ubr-amenu__toggle { display: inline-flex; align-items: center; gap: var(--ubr-space-2); min-height: 40px; padding: 4px 8px; border: 0; border-radius: var(--ubr-radius-pill); background: transparent; color: var(--ubr-color-heading); font: inherit; font-weight: var(--ubr-font-weight-semibold); cursor: pointer; transition: background-color var(--ubr-duration) var(--ubr-ease); }
.ubr-amenu__toggle:hover,
.ubr-amenu.is-open .ubr-amenu__toggle { background: var(--ubr-accent-softer); }
.ubr-amenu__toggle:focus-visible { outline: none; box-shadow: var(--ubr-ring); }
.ubr-amenu__toggle > svg:first-child { width: var(--ubr-amenu-size); height: var(--ubr-amenu-size); }
.ubr-amenu__avatar { width: calc(var(--ubr-amenu-size) + 8px); height: calc(var(--ubr-amenu-size) + 8px); border-radius: 50%; object-fit: cover; }
.ubr-amenu__caret { transition: transform var(--ubr-duration) var(--ubr-ease); }
.ubr-amenu.is-open .ubr-amenu__caret { transform: rotate(180deg); }
.ubr-amenu__panel {
	position: absolute;
	inset-block-start: calc(100% + 8px);
	z-index: 1000;
	width: 280px;
	max-width: calc(100vw - 24px);
	padding: var(--ubr-space-2);
	border: var(--ubr-border-width) solid var(--ubr-line);
	border-radius: var(--ubr-radius);
	background: var(--ubr-color-surface);
	box-shadow: var(--ubr-shadow-lg);
	animation: ubr-fade-in .18s var(--ubr-ease);
}
.ubr-amenu__panel--end { inset-inline-end: 0; }
.ubr-amenu__panel--start { inset-inline-start: 0; }
.ubr-amenu.is-flipped .ubr-amenu__panel--end { inset-inline-end: auto; inset-inline-start: 0; }
.ubr-amenu.is-flipped .ubr-amenu__panel--start { inset-inline-start: auto; inset-inline-end: 0; }
.ubr-amenu__head { display: flex; align-items: center; gap: var(--ubr-space-3); padding: var(--ubr-space-3); margin-bottom: var(--ubr-space-1); border-bottom: 1px solid var(--ubr-line); }
.ubr-amenu__head > div { display: grid; min-width: 0; }
.ubr-amenu__avatar-lg { width: 40px; height: 40px; border-radius: 50%; }
.ubr-amenu__title { display: block; margin: 0; color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); }
.ubr-amenu__text { display: block; overflow: hidden; margin: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); text-overflow: ellipsis; white-space: nowrap; }
.ubr-amenu__link { display: flex; align-items: center; gap: var(--ubr-space-3); padding: var(--ubr-space-2) var(--ubr-space-3); border-radius: var(--ubr-radius-sm); color: var(--ubr-ink); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-semibold); }
.ubr-amenu__link:hover,
.ubr-amenu__link:focus-visible { outline: none; background: var(--ubr-accent-softer); color: var(--ubr-accent-strong); }
.ubr-amenu__link svg { flex: none; opacity: .8; }
.ubr-amenu__link .ubr-account__badge { margin-inline-start: auto; }
.ubr-amenu__sep { margin-top: var(--ubr-space-1); padding-top: var(--ubr-space-1); border-top: 1px solid var(--ubr-line); }
.ubr-amenu__link--logout:hover { background: var(--ubr-danger-soft); color: var(--ubr-color-danger); }
.ubr-amenu__guest { display: grid; gap: var(--ubr-space-2); padding: var(--ubr-space-3); text-align: center; }
.ubr-amenu__guest .ubr-amenu__text { margin-bottom: var(--ubr-space-2); white-space: normal; }

/* ================================================================ Responsive refinements */

@media (max-width: 899px) {
	.ubr-account { gap: var(--ubr-space-4); }
	.ubr-account__aside { padding: var(--ubr-space-3); }
	.ubr-account__user { padding-bottom: var(--ubr-space-3); margin-bottom: var(--ubr-space-2); }
	.ubr-account__nav ul { gap: var(--ubr-space-1); padding-bottom: 2px; }
	.ubr-account__link { white-space: nowrap; }
	.ubr-account__link--logout { margin-top: 0; }
}
@media (max-width: 560px) {
	section.ubr-card,
	form.ubr-card { padding: var(--ubr-space-4); }
	.ubr-account__title { font-size: var(--ubr-font-size-xl); }
	.ubr-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ubr-stat { padding: var(--ubr-space-3) var(--ubr-space-4); }
	.ubr-meta { grid-template-columns: 1fr 1fr; }
	.ubr-booking-form { padding: var(--ubr-space-4); border-radius: var(--ubr-radius); }
	.ubr-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ubr-segmented--links { flex-wrap: wrap; }
	.ubr-segmented__item { padding: 0 var(--ubr-space-2); }
	.ubr-otp__digits { gap: 6px; }
	body .ubr .ubr-otp__digit { height: 50px; font-size: var(--ubr-font-size-lg); }
	.ubr-confirmation__actions .ubr-btn { width: 100%; }
}
@media (max-width: 380px) {
	.ubr-meta { grid-template-columns: 1fr; }
	.ubr-phone { grid-template-columns: 1fr; }
}
/* ================================================================ v1.3 — premium layer
 * Cards, listing toolbar, image mosaic, archive hero, service layouts, booking panel, skeletons.
 */

.ubr .ubr-icon { flex: none; display: inline-block; vertical-align: middle; }
[dir="rtl"] .ubr .ubr-icon--flip, .rtl .ubr .ubr-icon--flip { transform: scaleX(-1); }
.ubr-status--expired { background: var(--ubr-color-surface-sunken); color: var(--ubr-color-subtle); }

/* Service cards */
.ubr-card--grid,
.ubr-card--advanced { border-radius: var(--ubr-radius-lg); }
.ubr-card--grid .ubr-card__media,
.ubr-card--advanced .ubr-card__media { margin: 8px 8px 0; border-radius: var(--ubr-radius); aspect-ratio: 16 / 11; }
.ubr-card__badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; font-size: var(--ubr-font-size-xs); }
.ubr-card__badge .ubr-icon { width: 14px; height: 14px; }
.ubr-card__body { gap: 6px; padding: var(--ubr-space-4) var(--ubr-space-5) var(--ubr-space-3); }
.ubr-card__title { font-size: var(--ubr-font-size-lg); line-height: 1.3; letter-spacing: -.01em; }
.ubr-card__location { display: inline-flex; align-items: center; gap: 5px; }
.ubr-card__location .ubr-icon { color: var(--ubr-accent); }
.ubr-card__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ubr-card__footer { padding: var(--ubr-space-3) var(--ubr-space-5) var(--ubr-space-4); border-top: 0; background: none; }
.ubr-card__footer .ubr-price__amount { color: var(--ubr-accent-strong); font-size: var(--ubr-font-size-xl); letter-spacing: -.01em; }
.ubr-card .ubr-btn .ubr-icon { transition: transform var(--ubr-duration) var(--ubr-ease); }
.ubr-card .ubr-btn:hover .ubr-icon--arrow-right { transform: translateX(3px); }
[dir="rtl"] .ubr-card .ubr-btn:hover .ubr-icon--arrow-right { transform: scaleX(-1) translateX(3px); }
.ubr-card--list .ubr-card__media .ubr-icon { display: none; }
.ubr-card--list .ubr-badge .ubr-icon { width: 14px; height: 14px; }
.ubr-card--overlay .ubr-badge { align-self: flex-start; background: rgba(255, 255, 255, .92); color: var(--ubr-color-heading); }

/* List view of grid cards (results bar switch) */
@media (min-width: 640px) {
	.ubr-listing[data-view="list"] .ubr-listing__items { grid-template-columns: 1fr; }
	.ubr-listing[data-view="list"] .ubr-card--grid,
	.ubr-listing[data-view="list"] .ubr-card--advanced { display: grid; grid-template-columns: minmax(200px, 34%) minmax(0, 1fr) auto; align-items: stretch; }
	.ubr-listing[data-view="list"] .ubr-card__media { grid-row: span 2; margin: 8px; aspect-ratio: auto; min-height: 170px; }
	.ubr-listing[data-view="list"] .ubr-card__body { grid-column: 2; padding-block-start: var(--ubr-space-5); }
	.ubr-listing[data-view="list"] .ubr-card__footer { grid-column: 3; grid-row: 1 / span 2; flex-direction: column; align-items: flex-end; justify-content: center; padding: var(--ubr-space-5); border-inline-start: 1px solid var(--ubr-line); }
}

/* Results bar */
.ubr-listing__toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-3); margin: 0 0 var(--ubr-space-5); }
.ubr-listing__count { margin: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-medium); }
.ubr-listing__spacer { flex: 1; }
.ubr-listing__sort { position: relative; display: inline-flex; align-items: center; }
.ubr-listing__sort > .ubr-icon { position: absolute; inset-inline-start: 12px; color: var(--ubr-color-muted); pointer-events: none; }
body .ubr .ubr-listing__sort select { min-height: var(--ubr-control-height-sm); padding-inline-start: 36px; font-size: var(--ubr-font-size-sm); }
.ubr-view-toggle { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--ubr-line); border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface); }
body .ubr button.ubr-view-toggle__btn { display: inline-grid; place-items: center; width: 34px; height: 30px; min-height: 0; padding: 0; border: 0; border-radius: calc(var(--ubr-radius-sm) - 3px); background: none; color: var(--ubr-color-muted); box-shadow: none; cursor: pointer; }
body .ubr button.ubr-view-toggle__btn[aria-pressed="true"] { background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); }
body .ubr button.ubr-view-toggle__btn:focus-visible { box-shadow: var(--ubr-ring); }
@media (max-width: 639px) { .ubr-view-toggle { display: none; } }

/* Gallery mosaic: one large image + four; swipe on phones */
.ubr-gallery__list--mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: var(--ubr-space-2); height: clamp(280px, 42vw, 520px); }
.ubr-gallery__list--mosaic .ubr-gallery__item { position: relative; min-height: 0; }
.ubr-gallery__list--mosaic .ubr-gallery__item:first-child { grid-row: span 2; }
.ubr-gallery__list--mosaic .ubr-gallery__item.is-extra { display: none; }
.ubr-gallery__list--mosaic figure,
.ubr-gallery__list--mosaic a { display: block; height: 100%; }
.ubr-gallery__list--mosaic img { width: 100%; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; border-radius: 0 !important; }
.ubr-gallery__list--mosaic .ubr-gallery__item:first-child img { border-start-start-radius: var(--ubr-radius-lg) !important; border-end-start-radius: var(--ubr-radius-lg) !important; }
.ubr-gallery__list--mosaic .ubr-gallery__item:nth-child(3) img { border-start-end-radius: var(--ubr-radius-lg) !important; }
.ubr-gallery__list--mosaic .ubr-gallery__item:nth-child(5) img { border-end-end-radius: var(--ubr-radius-lg) !important; }
.ubr-gallery__list--n2 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
.ubr-gallery__list--n2 .ubr-gallery__item:first-child { grid-row: auto; }
.ubr-gallery__list--n2 .ubr-gallery__item:nth-child(2) img { border-start-end-radius: var(--ubr-radius-lg) !important; border-end-end-radius: var(--ubr-radius-lg) !important; }
.ubr-gallery__list--n3 { grid-template-columns: 2fr 1fr; }
.ubr-gallery__list--n3 .ubr-gallery__item:nth-child(2) img { border-start-end-radius: var(--ubr-radius-lg) !important; }
.ubr-gallery__list--n3 .ubr-gallery__item:nth-child(3) img { border-end-end-radius: var(--ubr-radius-lg) !important; }
.ubr-gallery__list--n4 .ubr-gallery__item:nth-child(4) { grid-column: span 2; }
.ubr-gallery__list--n4 .ubr-gallery__item:nth-child(4) img { border-end-end-radius: var(--ubr-radius-lg) !important; }
.ubr-gallery__item[data-more]::after { content: attr(data-more); position: absolute; inset: 0; display: grid; place-items: center; background: rgba(2, 6, 23, .5); color: #fff; font-size: var(--ubr-font-size-2xl); font-weight: var(--ubr-font-weight-bold); pointer-events: none; border-end-end-radius: var(--ubr-radius-lg); }
@media (max-width: 639px) {
	.ubr-gallery__list--mosaic { display: flex; height: auto; overflow-x: auto; scroll-snap-type: x mandatory; gap: var(--ubr-space-2); scrollbar-width: none; }
	.ubr-gallery__list--mosaic::-webkit-scrollbar { display: none; }
	.ubr-gallery__list--mosaic .ubr-gallery__item,
	.ubr-gallery__list--mosaic .ubr-gallery__item.is-extra { display: block; flex: 0 0 86%; scroll-snap-align: center; }
	.ubr-gallery__list--mosaic img { aspect-ratio: 4 / 3 !important; height: auto !important; border-radius: var(--ubr-radius) !important; }
	.ubr-gallery__item[data-more]::after { display: none; }
}

/* Archive */
.ubr-archive-service .ubr-container { width: min(var(--ubr-container), 100% - 32px); }
.ubr-archive__hero { position: relative; padding-block: var(--ubr-space-8) var(--ubr-space-7); background: linear-gradient(120deg, color-mix(in srgb, var(--ubr-color-primary) 5%, var(--ubr-color-surface)), color-mix(in srgb, var(--ubr-color-primary) 15%, var(--ubr-color-surface))); overflow: hidden; }
.e-con.ubr-archive__hero,
.elementor-section.ubr-archive__hero { margin-block-end: var(--ubr-space-6); padding: var(--ubr-space-8) var(--ubr-space-7) !important; border-radius: calc(var(--ubr-radius) * 1.6); }
.e-con.ubr-archive__hero .elementor-heading-title { font-size: var(--ubr-font-size-4xl); letter-spacing: -.02em; }
.ubr-archive__hero.has-image { background: linear-gradient(90deg, rgba(2, 6, 23, .72), rgba(2, 6, 23, .25)), var(--ubr-hero-image) center / cover no-repeat; color: #fff; }
[dir="rtl"] .ubr-archive__hero.has-image { background: linear-gradient(-90deg, rgba(2, 6, 23, .72), rgba(2, 6, 23, .25)), var(--ubr-hero-image) center / cover no-repeat; }
.ubr-archive__hero-inner { display: grid; gap: var(--ubr-space-3); padding-block: 0 !important; }
.ubr-archive__hero .ubr-archive__title { margin: 0; font-size: var(--ubr-font-size-4xl); letter-spacing: -.02em; }
.ubr-archive__hero.has-image .ubr-archive__title,
.ubr-archive__hero.has-image .ubr-archive__description,
.ubr-archive__hero.has-image .ubr-breadcrumb,
body .ubr .ubr-archive__hero.has-image .ubr-breadcrumb a { color: #fff; }
.ubr-archive__hero .ubr-archive__description { max-width: 62ch; margin: 0; font-size: var(--ubr-font-size-lg); }
.ubr-archive__hero .ubr-archive__description p { margin: 0; }
.ubr-archive__search { margin-block-start: var(--ubr-space-3); max-width: 980px; }
.ubr-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
body .ubr .ubr-breadcrumb a { display: inline-flex; align-items: center; gap: 6px; color: var(--ubr-color-muted); text-decoration: none; }
body .ubr .ubr-breadcrumb a:hover { color: var(--ubr-accent); }
.ubr-breadcrumb [aria-current] { color: var(--ubr-accent-strong); font-weight: var(--ubr-font-weight-semibold); }
.ubr-archive__hero.has-image .ubr-breadcrumb [aria-current] { color: #fff; }
.ubr-archive-service > .ubr-archive__layout { padding-block: var(--ubr-space-7) var(--ubr-space-8); }
.ubr-archive__filters { align-self: start; padding: var(--ubr-space-5); border: 1px solid var(--ubr-line); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-sm); }
@media (min-width: 1024px) { .ubr-archive__filters { position: sticky; inset-block-start: var(--ubr-space-6); } }
.ubr-archive__filters .ubr-filter-form { padding: 0; border: 0; background: none; box-shadow: none; }
.ubr-archive__filters-title { display: flex; align-items: center; gap: var(--ubr-space-2); margin: 0 0 var(--ubr-space-4); padding-block-end: var(--ubr-space-3); border-block-end: 1px solid var(--ubr-line); color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); }

/* Service page layouts */
.ubr-layout { gap: var(--ubr-space-6); }
.ubr-layout__hero .ubr-service-image__img { aspect-ratio: 21 / 9; object-fit: cover; }
.ubr-layout__header { display: grid; gap: var(--ubr-space-2); }
.ubr-layout__header .ubr-service-title { margin: 0; font-size: var(--ubr-font-size-4xl); letter-spacing: -.02em; }
.ubr-layout__badges { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-3); }
.ubr-layout__badges .ubr-badge .ubr-icon { width: 14px; height: 14px; }
.ubr-layout__location { display: inline-flex; align-items: center; gap: 5px; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-layout__location .ubr-icon { color: var(--ubr-accent); }
.ubr-layout__nav { position: sticky; inset-block-start: 0; z-index: 5; display: flex; gap: var(--ubr-space-1); overflow-x: auto; padding: var(--ubr-space-2); border: 1px solid var(--ubr-line); border-radius: var(--ubr-radius); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-sm); scrollbar-width: none; }
body .ubr .ubr-layout__nav a { flex: none; padding: var(--ubr-space-2) var(--ubr-space-4); border-radius: var(--ubr-radius-sm); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-semibold); text-decoration: none; }
body .ubr .ubr-layout__nav a:hover { background: var(--ubr-accent-softer); color: var(--ubr-accent-strong); }
.ubr-layout__section { scroll-margin-top: 90px; }
.ubr-layout__section-title { display: flex; align-items: center; gap: var(--ubr-space-3); margin: 0 0 var(--ubr-space-4); font-size: var(--ubr-font-size-xl); }
.ubr-layout__section-icon { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--ubr-radius-sm); background: var(--ubr-accent-soft); color: var(--ubr-accent-strong); }
.ubr-layout--advanced .ubr-layout__section,
.ubr-layout--modern .ubr-layout__section { padding: var(--ubr-space-6); border: 1px solid var(--ubr-line); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-xs); }
.ubr-layout--classic .ubr-layout__section + .ubr-layout__section { padding-top: var(--ubr-space-6); border-top: 1px solid var(--ubr-line); }

/* Booking panel */
.ubr-book-panel { display: grid; gap: var(--ubr-space-4); padding: var(--ubr-space-5); border: 1px solid var(--ubr-color-border); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-lg); }
.ubr-book-panel__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--ubr-space-2); padding-bottom: var(--ubr-space-3); border-bottom: 1px solid var(--ubr-color-border); }
.ubr-book-panel__head .ubr-price__amount { font-size: var(--ubr-font-size-2xl); color: var(--ubr-color-heading); }
.ubr-book-panel .ubr-booking-form { padding: 0; border: 0; box-shadow: none; background: none; }
.ubr-book-panel__trust { display: grid; gap: var(--ubr-space-2); margin: 0; padding: var(--ubr-space-3) 0 0; border-top: 1px solid var(--ubr-color-border); list-style: none; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-book-panel__trust li { display: flex; align-items: center; gap: var(--ubr-space-2); margin: 0; }
.ubr-book-panel__trust .ubr-icon { color: var(--ubr-color-success); }
.ubr-layout--minimal .ubr-layout__header,
.ubr-layout__single { width: 100%; max-width: 760px; margin-inline: auto; }
.ubr-layout--minimal .ubr-layout__header { text-align: center; justify-items: center; }
.ubr-layout__single { display: grid; gap: var(--ubr-space-6); }
.ubr-layout__book { padding-top: var(--ubr-space-6); border-top: 1px solid var(--ubr-line); }
@media (min-width: 1024px) {
	.ubr-layout__grid { grid-template-columns: minmax(0, 1fr) 400px; gap: var(--ubr-space-8); }
	.ubr-layout__sticky { inset-block-start: 90px; }
}
@media (max-width: 767px) {
	.ubr-layout__header .ubr-service-title { font-size: var(--ubr-font-size-2xl); }
	.ubr-layout--advanced .ubr-layout__section,
	.ubr-layout--modern .ubr-layout__section { padding: var(--ubr-space-4); }
	.ubr-book-panel { padding: var(--ubr-space-4); box-shadow: var(--ubr-shadow-md); }
}

/* Loading skeletons (calendar, time slots, account lists while fetching) */
.ubr-skeleton-line,
.ubr [aria-busy="true"] .ubr-loading { display: block; height: 14px; border-radius: 7px; background: linear-gradient(90deg, var(--ubr-color-surface-sunken) 25%, var(--ubr-color-surface-alt) 37%, var(--ubr-color-surface-sunken) 63%); background-size: 400% 100%; color: transparent; animation: ubr-shimmer 1.4s ease infinite; }
@keyframes ubr-shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }
.e-con.ubr-book-panel { --gap: var(--ubr-space-3) !important; align-self: flex-start; }
@media (max-width: 1023px) { .e-con.ubr-book-panel { box-shadow: var(--ubr-shadow-md); } }

/* Account overview */
.ubr-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .ubr-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ubr-stat { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-items: center; column-gap: var(--ubr-space-3); row-gap: 2px; padding: var(--ubr-space-4); border-radius: var(--ubr-radius-lg); }
.ubr-stat__icon { grid-row: span 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--ubr-radius); background: color-mix(in srgb, var(--ubr-tone, var(--ubr-accent)) 12%, var(--ubr-color-surface)); color: var(--ubr-tone, var(--ubr-accent)); }
.ubr-stat__label { grid-column: 2; }
.ubr-stat__value { grid-column: 2; font-size: var(--ubr-font-size-2xl); }
.ubr-stat--primary { --ubr-tone: var(--ubr-accent); }
.ubr-stat--warning { --ubr-tone: var(--ubr-color-warning); }
.ubr-stat--success { --ubr-tone: var(--ubr-color-success); }
.ubr-stat--danger { --ubr-tone: var(--ubr-color-danger); }
.ubr-stat::before { background: var(--ubr-tone, var(--ubr-accent)); }
.ubr-account .ubr-card__title { display: flex; align-items: center; gap: var(--ubr-space-2); }
.ubr-account .ubr-card__title .ubr-icon { color: var(--ubr-accent); }
.ubr-next { padding: var(--ubr-space-5) !important; }
.ubr-next__body { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--ubr-space-5); }
.ubr-next__image { width: 180px; height: 130px; border-radius: var(--ubr-radius); }
.ubr-next__when { display: inline-flex; align-items: center; gap: 6px; }
.ubr-next__when .ubr-icon { color: var(--ubr-accent); }
.ubr-next__side { display: grid; justify-items: end; gap: var(--ubr-space-3); }
.ubr-next__total { display: grid; justify-items: end; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-xl); font-weight: var(--ubr-font-weight-bold); font-variant-numeric: tabular-nums; }
.ubr-next__total small { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-xs); font-weight: var(--ubr-font-weight-medium); }
@media (max-width: 720px) {
	.ubr-next__body { grid-template-columns: 1fr; }
	.ubr-next__image { width: 100%; height: 170px; }
	.ubr-next__side { justify-items: stretch; }
	.ubr-next__total { justify-items: start; }
}
.ubr-recent { display: grid; gap: var(--ubr-space-3); }
.ubr-recent .ubr-card__head { margin: 0; }
.ubr-recent__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr)); gap: var(--ubr-space-4); margin: 0; padding: 0; list-style: none; }
.ubr-recent__item { display: flex; flex-direction: column; overflow: hidden; margin: 0; border: 1px solid var(--ubr-line); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-xs); transition: box-shadow var(--ubr-duration) var(--ubr-ease), transform var(--ubr-duration) var(--ubr-ease); }
.ubr-recent__item:hover { box-shadow: var(--ubr-shadow-md); transform: translateY(-2px); }
.ubr-recent__media { position: relative; display: block; aspect-ratio: 16 / 10; margin: 6px 6px 0; overflow: hidden; border-radius: var(--ubr-radius); background: var(--ubr-color-surface-sunken); }
.ubr-recent__media img { width: 100%; height: 100%; object-fit: cover; }
.ubr-recent__media .ubr-status { position: absolute; inset-block-start: 8px; inset-inline-end: 8px; box-shadow: var(--ubr-shadow-sm); }
.ubr-recent__body { display: grid; gap: 4px; padding: var(--ubr-space-3) var(--ubr-space-4) var(--ubr-space-4); }
body .ubr a.ubr-recent__title { overflow: hidden; color: var(--ubr-color-heading); font-weight: var(--ubr-font-weight-bold); text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
body .ubr a.ubr-recent__title:hover { color: var(--ubr-accent); }
.ubr-recent__date { display: inline-flex; align-items: center; gap: 5px; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-recent__total { color: var(--ubr-color-heading); font-variant-numeric: tabular-nums; }
.ubr-empty-state__title { margin: 0; color: var(--ubr-color-heading); }

/* Login / registration: split screen */
.ubr-auth.ubr-auth--split { max-width: 1100px; container-type: inline-size; }
.ubr-auth__split { display: grid; grid-template-columns: minmax(0, 1fr); }
.ubr-auth__visual { display: none; }
@container (min-width: 820px) {
	.ubr-auth__split { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); overflow: hidden; border: 1px solid var(--ubr-line); border-radius: calc(var(--ubr-radius) * 1.8); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-lg); }
	.ubr-auth__visual { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: var(--ubr-space-7); min-height: 560px; padding: var(--ubr-space-8) var(--ubr-space-7); background: radial-gradient(circle at 15% 15%, color-mix(in srgb, #fff 18%, transparent), transparent 45%), linear-gradient(150deg, var(--ubr-accent), var(--ubr-accent-strong)); color: var(--ubr-on-accent); }
	.ubr-auth__visual.has-image { background: linear-gradient(to top, rgba(2, 6, 23, .82), rgba(2, 6, 23, .15) 65%), var(--ubr-auth-image) center / cover no-repeat; color: #fff; }
	.ubr-auth__side { display: grid; align-items: center; padding: var(--ubr-space-7); }
	.ubr-auth__side .ubr-auth__card { padding: var(--ubr-space-5) 0; border: 0; box-shadow: none; background: none; }
}
.ubr-auth__logo { max-height: 48px; width: auto; }
.ubr-auth__brand { font-family: var(--ubr-font-heading); font-size: var(--ubr-font-size-xl); font-weight: var(--ubr-font-weight-bold); }
.ubr-auth__tagline { margin: 0 0 var(--ubr-space-5); font-family: var(--ubr-font-heading); font-size: var(--ubr-font-size-3xl); font-weight: var(--ubr-font-weight-bold); line-height: 1.15; letter-spacing: -.02em; }
.ubr-auth__points { display: grid; gap: var(--ubr-space-3); margin: 0; padding: 0; list-style: none; }
.ubr-auth__points li { display: flex; align-items: center; gap: var(--ubr-space-3); margin: 0; font-weight: var(--ubr-font-weight-medium); }
.ubr-auth__points .ubr-icon { display: grid; flex: none; place-items: center; width: 34px; height: 34px; padding: 8px; border-radius: var(--ubr-radius-sm); background: color-mix(in srgb, currentColor 16%, transparent); }
/* ======================================================================
 * v1.3.1 — Showcase service layout + archive designs
 * ==================================================================== */

/* Hero band: blurred, darkened main image behind the title and the gallery slider. */
.ubr-hero-band { position: relative; isolation: isolate; overflow: hidden; margin-block-end: var(--ubr-space-7); padding: clamp(20px, 3vw, 40px); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-secondary); color: #fff; }
.ubr-hero-band__bg { position: absolute; inset: -24px; z-index: -1; background: var(--ubr-hero-image, none) center / cover no-repeat; filter: blur(14px) saturate(1.1); transform: scale(1.05); }
.ubr-hero-band__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(15, 23, 42, .9), rgba(15, 23, 42, .62)); }
.ubr-hero-band__inner { display: grid; gap: var(--ubr-space-7); align-items: center; }
@media (min-width: 960px) { .ubr-hero-band__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } .ubr-hero-band__inner.is-text-only { grid-template-columns: 1fr; } }
.ubr-hero-band__text { display: grid; gap: var(--ubr-space-4); justify-items: start; min-width: 0; }
.ubr-hero-band .ubr-breadcrumb, .ubr-hero-band .ubr-breadcrumb a { color: rgba(255, 255, 255, .78); }
.ubr-hero-band .ubr-breadcrumb a:hover { color: #fff; }
.ubr-hero-band__badge.ubr-badge { background: var(--ubr-accent); color: var(--ubr-on-accent); border-color: transparent; }
body .ubr-hero-band .ubr-hero-band__title { margin: 0; color: #fff; font-family: var(--ubr-font-heading); font-size: var(--ubr-font-size-4xl); line-height: var(--ubr-line-height-tight); }
.ubr-hero-band__summary { margin: 0; max-width: 56ch; color: rgba(255, 255, 255, .84); font-size: var(--ubr-font-size-lg); }
.ubr-hero-band .ubr-rating, .ubr-hero-band .ubr-rating__count { color: rgba(255, 255, 255, .9); }
.ubr-hero-band__chips { display: flex; flex-wrap: wrap; gap: var(--ubr-space-2); margin: var(--ubr-space-2) 0 0; padding: 0; list-style: none; }
.ubr-hero-band__chips li { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--ubr-radius-pill); background: rgba(255, 255, 255, .1); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-medium); }
.ubr-hero-band__chips .ubr-icon { color: var(--ubr-accent); }
.ubr-hero-band__media { min-width: 0; }

/* Gallery slider */
.ubr-gslider { position: relative; overflow: hidden; border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface-sunken); }
.ubr-gslider__track { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.ubr-gslider__track::-webkit-scrollbar { display: none; }
.ubr-gslider__slide { flex: 0 0 100%; aspect-ratio: 16 / 10; scroll-snap-align: start; }
.ubr-gslider__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ubr-gslider__nav { position: absolute; top: 50%; z-index: 2; display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; transform: translateY(-50%); border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--ubr-color-heading); box-shadow: var(--ubr-shadow-md); cursor: pointer; transition: background var(--ubr-duration), transform var(--ubr-duration) var(--ubr-ease); }
.ubr-gslider__nav:hover { background: #fff; transform: translateY(-50%) scale(1.06); }
.ubr-gslider__nav:focus-visible { outline: 3px solid var(--ubr-accent); outline-offset: 2px; }
.ubr-gslider__nav--prev { inset-inline-start: 14px; }
.ubr-gslider__nav--next { inset-inline-end: 14px; }
[dir="rtl"] .ubr-gslider__nav .ubr-icon, .rtl .ubr-gslider__nav .ubr-icon { transform: scaleX(-1); }
.ubr-gslider__count { position: absolute; bottom: 14px; inset-inline-end: 14px; z-index: 2; padding: 4px 12px; border-radius: var(--ubr-radius-pill); background: rgba(15, 23, 42, .72); color: #fff; font-size: var(--ubr-font-size-sm); font-variant-numeric: tabular-nums; direction: ltr; }
.ubr-gslider__thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--ubr-space-2); margin: var(--ubr-space-3) 0 0; padding: 0; list-style: none; }
.ubr-gslider__thumbs li { margin: 0; }
.ubr-gslider__thumb { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: var(--ubr-radius-sm); background: var(--ubr-color-surface-sunken); cursor: pointer; opacity: .78; transition: opacity var(--ubr-duration), border-color var(--ubr-duration); }
.ubr-gslider__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ubr-gslider__thumb:hover, .ubr-gslider__thumb.is-active { opacity: 1; border-color: var(--ubr-accent); }
.ubr-gslider__thumb[data-more]::after { content: attr(data-more); position: absolute; inset: 0; display: grid; place-items: center; background: rgba(15, 23, 42, .6); color: #fff; font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); }

/* Showcase layout */
.ubr-layout--showcase { width: min(var(--ubr-container), 100% - 32px); margin-inline: auto; padding-block: var(--ubr-space-6); }
.ubr-layout--showcase .ubr-layout__main { display: grid; gap: var(--ubr-space-6); align-content: start; min-width: 0; }
.ubr-sc-card { padding: clamp(18px, 2.4vw, 28px); border: 1px solid var(--ubr-color-border); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-sm); }
.ubr-sc-card__title, .e-con.ubr-sc-card .elementor-heading-title { display: flex; align-items: center; gap: var(--ubr-space-2); margin: 0 0 var(--ubr-space-4); color: var(--ubr-color-heading); font-family: var(--ubr-font-heading); font-size: var(--ubr-font-size-xl); }
.ubr-sc-card__title .ubr-icon { color: var(--ubr-accent); }
.ubr-sc-card > .ubr-sc-card__title:last-child { margin-bottom: 0; }
.ubr-sc-card .ubr-layout__content > :last-child { margin-bottom: 0; }
.ubr-sc-split { display: grid; gap: var(--ubr-space-6); }
@media (min-width: 768px) { .ubr-sc-split { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } }
/* Features as small cards (about card). */
.ubr-sc-card .ubr-features__list { gap: var(--ubr-space-3); margin-top: var(--ubr-space-5); }
@media (min-width: 640px) { .ubr-sc-card .ubr-features__list { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); } }
.ubr-sc-card .ubr-features__item { flex-direction: column; align-items: center; gap: var(--ubr-space-2); padding: var(--ubr-space-4) var(--ubr-space-3); border: 1px solid var(--ubr-color-border); border-radius: var(--ubr-radius); background: var(--ubr-color-surface-alt); text-align: center; font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-medium); }
.ubr-sc-card .ubr-features__icon { width: 40px; height: 40px; background: var(--ubr-accent-soft); color: var(--ubr-accent); font-size: 16px; }

/* Booking panel with a colored header band. */
.ubr-book-panel--showcase { gap: var(--ubr-space-4); padding: 0 var(--ubr-space-5) var(--ubr-space-5); }
.ubr-book-panel__band { display: flex; align-items: center; justify-content: center; gap: var(--ubr-space-2); margin: -1px calc(var(--ubr-space-5) * -1 - 1px) 0; padding: var(--ubr-space-4) var(--ubr-space-5); border-radius: var(--ubr-radius-lg) var(--ubr-radius-lg) 0 0; background: var(--ubr-accent); color: var(--ubr-on-accent); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); text-align: center; }
.elementor .e-con.ubr-book-panel--showcase { --padding-top: 0px; --padding-right: 20px; --padding-bottom: 20px; --padding-left: 20px; }
.ubr-book-panel__band .elementor-heading-title { width: 100%; margin: 0; color: inherit; font-size: inherit; font-weight: inherit; text-align: center; }

.ubr-book-panel--showcase .ubr-book-panel__head { justify-content: center; }

/* Detail tabs */
.ubr-stabs { border: 1px solid var(--ubr-color-border); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-sm); overflow: hidden; }
.ubr-stabs__list { display: flex; gap: var(--ubr-space-1); overflow-x: auto; padding: var(--ubr-space-2) var(--ubr-space-3) 0; border-bottom: 1px solid var(--ubr-color-border); background: var(--ubr-color-surface-alt); scrollbar-width: thin; }
body .ubr .ubr-stabs__tab { display: inline-flex; flex: none; align-items: center; gap: var(--ubr-space-2); min-height: 48px; margin: 0 0 -1px; padding: 0 var(--ubr-space-4); border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none; color: var(--ubr-color-muted); font: inherit; font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-semibold); cursor: pointer; box-shadow: none; transition: color var(--ubr-duration), border-color var(--ubr-duration); }
body .ubr .ubr-stabs__tab:hover { color: var(--ubr-color-heading); background: none; }
body .ubr .ubr-stabs__tab[aria-selected="true"] { border-bottom-color: var(--ubr-accent); color: var(--ubr-accent); }
body .ubr .ubr-stabs__tab:focus-visible { outline: 2px solid var(--ubr-accent); outline-offset: -2px; }
.ubr-stabs__panel { padding: clamp(18px, 2.4vw, 28px); }
.ubr-stabs__panel[hidden] { display: none; }
.ubr-stabs__panel > * + * { margin-top: var(--ubr-space-5); }
.ubr-stabs__details { display: grid; gap: var(--ubr-space-6); align-items: start; }
@media (min-width: 768px) { .ubr-stabs__details { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.ubr-stabs__figure { margin: 0; overflow: hidden; border-radius: var(--ubr-radius); }
.ubr-stabs__figure img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
/* Icon list version of the quick facts inside the tabs. */
.ubr-stabs .ubr-meta { grid-template-columns: 1fr; gap: 0; }
.ubr-stabs .ubr-meta__item { display: flex; align-items: center; justify-content: space-between; gap: var(--ubr-space-3); padding: var(--ubr-space-3) 0; border: 0; border-bottom: 1px dashed var(--ubr-color-border); border-radius: 0; background: none; }
.ubr-stabs .ubr-meta__item:last-child { border-bottom: 0; }
.ubr-stabs .ubr-meta dt { display: flex; align-items: center; gap: var(--ubr-space-3); font-size: var(--ubr-font-size-sm); letter-spacing: 0; text-transform: none; }
.ubr-stabs .ubr-meta dd { margin: 0; text-align: end; }
.ubr-meta__icon { display: inline-grid; flex: none; place-items: center; color: var(--ubr-accent); vertical-align: -3px; margin-inline-end: 6px; }
.ubr-stabs .ubr-meta__icon { width: 36px; height: 36px; margin: 0; border-radius: 50%; background: var(--ubr-accent-soft); }

/* Next free dates */
.ubr-dates { display: grid; gap: var(--ubr-space-3); }
.ubr-dates__title { display: flex; align-items: center; gap: var(--ubr-space-2); margin: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-xl); }
.ubr-dates__title .ubr-icon { color: var(--ubr-accent); }
.ubr-dates__status { display: inline-flex; align-items: center; gap: var(--ubr-space-2); margin: 0; font-weight: var(--ubr-font-weight-semibold); }
.ubr-dates__status.is-open { color: var(--ubr-color-success); }
.ubr-dates__status.is-closed { color: var(--ubr-color-muted); }
.ubr-dates__hint { margin: 0; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }
.ubr-dates__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: var(--ubr-space-2); margin: 0; padding: 0; list-style: none; }
.ubr-dates__day { display: grid; justify-items: center; gap: 0; margin: 0; padding: var(--ubr-space-2) var(--ubr-space-1); border: 1px solid var(--ubr-accent-line); border-radius: var(--ubr-radius-sm); background: var(--ubr-accent-softer); line-height: 1.2; }
.ubr-dates__day strong { color: var(--ubr-color-heading); font-size: var(--ubr-font-size-xl); }
.ubr-dates__day span { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-xs); }
.ubr-dates__day.is-limited { border-color: color-mix(in srgb, var(--ubr-color-warning) 40%, transparent); background: var(--ubr-warning-soft); }

/* Contact banner */
.ubr-cta-band { position: relative; isolation: isolate; display: flex; flex-wrap: wrap; align-items: center; gap: var(--ubr-space-5); margin-block: var(--ubr-space-8) var(--ubr-space-4); padding: clamp(20px, 3vw, 36px); overflow: hidden; border-radius: var(--ubr-radius-lg); background: var(--ubr-color-secondary); color: #fff; }
.ubr-cta-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, color-mix(in srgb, var(--ubr-accent) 88%, #000), color-mix(in srgb, var(--ubr-accent) 55%, var(--ubr-color-secondary))); }
.ubr-cta-band__icon { display: inline-grid; flex: none; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.ubr-cta-band__text { flex: 1 1 280px; min-width: 0; }
.ubr-cta-band__title { margin: 0 0 4px; color: #fff; font-size: var(--ubr-font-size-2xl); font-weight: var(--ubr-font-weight-bold); line-height: var(--ubr-line-height-tight); }
.ubr-cta-band__desc { margin: 0; color: rgba(255, 255, 255, .86); }
body .ubr .ubr-cta-band__button, .ubr-cta-band__button { display: inline-flex; align-items: center; gap: var(--ubr-space-2); min-height: var(--ubr-control-height); padding: 0 var(--ubr-space-6); border: 0; border-radius: var(--ubr-radius-pill); background: #fff; color: var(--ubr-color-secondary); font-weight: var(--ubr-font-weight-bold); text-decoration: none; box-shadow: var(--ubr-shadow-md); }
body .ubr .ubr-cta-band__button:hover { background: #fff; color: var(--ubr-accent); transform: translateY(-1px); }

/* Archive header: split (text + image) and centered (search) */
.ubr-ahero { position: relative; display: grid; overflow: hidden; margin-block-end: var(--ubr-space-7); border: 1px solid var(--ubr-color-border); border-radius: var(--ubr-radius-lg); background: linear-gradient(135deg, var(--ubr-accent-softer), var(--ubr-color-surface) 60%); }
.ubr-ahero__inner { display: grid; gap: var(--ubr-space-4); align-content: center; justify-items: start; padding: clamp(24px, 4vw, 56px); }
body .ubr-ahero .ubr-ahero__title { margin: 0; color: var(--ubr-color-heading); font-family: var(--ubr-font-heading); font-size: var(--ubr-font-size-4xl); line-height: var(--ubr-line-height-tight); }
.ubr-ahero__text { margin: 0; max-width: 54ch; color: var(--ubr-color-muted); font-size: var(--ubr-font-size-lg); }
.ubr-ahero__image { min-height: 220px; background: var(--ubr-hero-image) center / cover no-repeat; }
@media (min-width: 900px) {
	.ubr-ahero[data-style="split"][data-image="1"] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.ubr-ahero__image { min-height: 340px; clip-path: inset(0 round 0); }
}
.ubr-ahero[data-style="center"] { border: 0; background: var(--ubr-color-secondary); color: #fff; text-align: center; }
.ubr-ahero[data-style="center"][data-image="1"] { background: linear-gradient(rgba(15, 23, 42, .62), rgba(15, 23, 42, .78)), var(--ubr-hero-image) center / cover no-repeat; }
.ubr-ahero[data-style="center"] .ubr-ahero__inner { justify-items: center; padding-block: clamp(40px, 7vw, 96px); }
.ubr-ahero[data-style="center"] .ubr-ahero__title { color: #fff; }
.ubr-ahero[data-style="center"] .ubr-ahero__text, .ubr-ahero[data-style="center"] .ubr-breadcrumb, .ubr-ahero[data-style="center"] .ubr-breadcrumb a { color: rgba(255, 255, 255, .84); }
.ubr-ahero__search { width: 100%; max-width: 960px; margin-top: var(--ubr-space-3); color: var(--ubr-ink); text-align: start; }
.ubr-ahero__search .ubr-search { box-shadow: var(--ubr-shadow-lg); }

/* Archive filter panel */
.ubr-afilters { padding: var(--ubr-space-5); border: 1px solid var(--ubr-color-border); border-radius: var(--ubr-radius-lg); background: var(--ubr-color-surface); box-shadow: var(--ubr-shadow-sm); }
.ubr-afilters__form { display: grid; gap: var(--ubr-space-5); margin: 0; }
.ubr-afilters__title { display: flex; align-items: center; gap: var(--ubr-space-2); margin: 0; padding-bottom: var(--ubr-space-3); border-bottom: 1px solid var(--ubr-color-border); color: var(--ubr-color-heading); font-size: var(--ubr-font-size-lg); font-weight: var(--ubr-font-weight-bold); }
.ubr-afilters__title .ubr-icon { color: var(--ubr-accent); }
.ubr-afilters__group { display: grid; gap: var(--ubr-space-2); min-width: 0; margin: 0; padding: 0; border: 0; }
.ubr-afilters__group legend, .ubr-afilters__legend { margin-bottom: var(--ubr-space-2); padding: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-bold); }
.ubr-afilters__check { display: flex; padding: 6px 0; font-size: var(--ubr-font-size-sm); }
.ubr-afilters__check > span:nth-child(2) { flex: 1; }
.ubr-afilters__count { min-width: 28px; padding: 1px 8px; border-radius: var(--ubr-radius-pill); background: var(--ubr-color-surface-sunken); color: var(--ubr-color-muted); font-size: var(--ubr-font-size-xs); text-align: center; }
.ubr-afilters__select { position: relative; display: block; }
.ubr-afilters__select > .ubr-icon { position: absolute; top: 50%; inset-inline-start: 12px; transform: translateY(-50%); color: var(--ubr-color-muted); pointer-events: none; }
body .ubr .ubr-afilters__select select { width: 100%; padding-inline-start: 38px; }
.ubr-afilters__actions { display: grid; gap: var(--ubr-space-2); justify-items: center; }
.ubr-afilters__actions .ubr-link { color: var(--ubr-color-muted); font-size: var(--ubr-font-size-sm); }

/* Dual range slider */
.ubr-range { position: relative; height: 28px; margin-inline: 2px; }
.ubr-range::before, .ubr-range__fill { content: ""; position: absolute; top: 50%; height: 6px; transform: translateY(-50%); border-radius: 3px; }
.ubr-range::before { inset-inline: 0; background: var(--ubr-color-surface-sunken); }
.ubr-range__fill { inset-inline: 0; background: var(--ubr-accent); }
body .ubr .ubr-range input[type="range"] { position: absolute; inset: 0; width: 100%; height: 28px; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.ubr-range input[type="range"]::-webkit-slider-runnable-track { background: none; border: 0; }
.ubr-range input[type="range"]::-webkit-slider-thumb { width: 20px; height: 20px; border: 3px solid var(--ubr-accent); border-radius: 50%; background: #fff; box-shadow: var(--ubr-shadow-sm); cursor: pointer; pointer-events: auto; -webkit-appearance: none; appearance: none; }
.ubr-range input[type="range"]::-moz-range-track { background: none; border: 0; }
.ubr-range input[type="range"]::-moz-range-thumb { width: 14px; height: 14px; border: 3px solid var(--ubr-accent); border-radius: 50%; background: #fff; cursor: pointer; pointer-events: auto; }
.ubr-range input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: var(--ubr-ring); }
.ubr-range__values { margin: 0; color: var(--ubr-color-heading); font-size: var(--ubr-font-size-sm); font-weight: var(--ubr-font-weight-semibold); text-align: center; }

/* Archive designs */
.ubr-archive--sidebar .ubr-archive__layout, .ubr-archive--explorer .ubr-archive__explore { padding-top: 0; }
.ubr-archive__filters--panel { padding: 0; border: 0; background: none; box-shadow: none; }
@media (min-width: 1024px) { .ubr-archive__filters--panel { position: sticky; top: calc(var(--ubr-sticky-top, 24px)); align-self: start; } }
.ubr-archive__explore { display: grid; gap: var(--ubr-space-6); }
.ubr-archive__explore .ubr-terms--pills { justify-content: center; }
.ubr-listing__search { position: relative; display: inline-flex; align-items: center; }
.ubr-listing__search > .ubr-icon { position: absolute; inset-inline-start: 12px; color: var(--ubr-color-muted); pointer-events: none; }
body .ubr .ubr-listing__search input { min-height: var(--ubr-control-height-sm); width: min(260px, 60vw); padding-inline-start: 36px; font-size: var(--ubr-font-size-sm); }
@media (max-width: 640px) { .ubr-listing__search { flex: 1 1 100%; } body .ubr .ubr-listing__search input { width: 100%; } }.ubr-archive-service.alignfull { max-width: none; margin-block: 0; }
.ubr-layout--showcase .ubr-layout__content { margin: 0; padding: 0; }
.ubr-stabs__list { overflow-y: hidden; }
body .ubr .ubr-stabs .ubr-meta dd { font-size: var(--ubr-font-size-base); line-height: var(--ubr-line-height-tight); }
@media (min-width: 640px) { .ubr-sc-card .ubr-features__list { grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); } }
.ubr-hero-band .ubr-breadcrumb [aria-current] { color: #fff; }
.ubr-cta-band::before { background: linear-gradient(100deg, color-mix(in srgb, var(--ubr-accent) 62%, #0f172a), color-mix(in srgb, var(--ubr-accent) 38%, #0f172a)); }.ubr-range__values { direction: ltr; unicode-bidi: isolate; }
.ubr-afilters__check > span:nth-child(2) { color: var(--ubr-ink); }body .elementor .e-con > .elementor-widget.ubr-book-panel__band { width: calc(100% + var(--ubr-space-5) * 2 + 2px); max-width: none !important; --container-widget-width: auto; }
.ubr-book-panel__band .elementor-heading-title { color: inherit !important; }.ubr-archive-elementor.alignfull { max-width: none; margin-block: 0; }
