/**
 * The Barber — Frontend Styles
 *
 * Scoped to .tb- and .psa- prefixes to avoid conflicts.
 * Colors are driven by CSS custom properties set from admin Style settings.
 * Default card background: #063050
 */

/* ══════════════════════════════════════════════════════════════════
   STAFF CARD GRID — matched 1:1 to Figma (node 1848:7955)
   Grid: 1300px max, 20px gap, 3 cols of 420×546 cards
   ══════════════════════════════════════════════════════════════════ */

.tb-staff-grid {
	--tb-card-bg: #063050;
	--tb-card-gradient-end: #031726;
	--tb-card-name-color: #f5f5f5;
	--tb-card-role-color: #f8fcff;
	--tb-btn-border: #ffffff;
	--tb-btn-text: #ffffff;
	--tb-btn-hover-bg: #ffffff;
	--tb-btn-hover-text: #063050;
	--tb-store-active: #063050;

	display: grid;
	gap: 20px;
	width: 100%;
	max-width: 1300px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 40px;
	padding-bottom: 40px;
	box-sizing: border-box;
	justify-content: center;
	justify-items: center;
	position: relative;
	z-index: 1;
	clear: both;
	overflow: visible;
}

/* Cards capped at 420px — never stretch wider than Figma spec */
.tb-staff-grid--cols-1 { grid-template-columns: minmax(0, 420px); }
.tb-staff-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 420px)); }
.tb-staff-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 420px)); }
.tb-staff-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 420px)); }

/* ── Card: 420×546, bg #063050, no radius ─────────────────────── */

.tb-staff-card {
	position: relative;
	width: 100%;
	max-width: 420px;
	aspect-ratio: 420 / 546;
	background: var(--tb-card-bg);
	color: #fff;
	overflow: hidden;
	border-radius: 0;
	box-sizing: border-box;
	margin: 0 auto;
}

/* ── Image: fills entire card ─────────────────────────────────── */

.tb-staff-card__image-wrap {
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	overflow: hidden !important;
	background: var(--tb-card-bg);
}

/* Gradient overlay (rgba(3,23,38,0) 45% → #031726 92%) */
.tb-staff-card__image-wrap::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(3, 23, 38, 0) 45%,
		var(--tb-card-gradient-end, #031726) 92%
	);
	pointer-events: none;
	z-index: 1;
}

.tb-staff-card .tb-staff-card__image {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	min-width: 0 !important;
	min-height: 0 !important;
	object-fit: cover !important;
	object-position: center top !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Placeholder when no photo */
.tb-staff-card__image-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tb-card-bg);
	font-size: 3rem;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.15);
}

/* ── Content: name + role + button, bottom:18px, gap:18px ─────── */

.tb-staff-card__content {
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 18px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 18px;
}

/* Name + role block (no internal gap — tight stacking) */
.tb-staff-card__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
}

/* Name: PP Editorial New Ultralight, 36px, #f5f5f5, lh 1.2 */
.tb-staff-card .tb-staff-card__name {
	margin: 0 !important;
	padding: 0 !important;
	font-family: 'PP Editorial New', 'PPEditorialNew-Ultralight', 'Editorial New', Georgia, serif !important;
	font-size: 36px !important;
	font-weight: 200 !important;
	font-style: normal !important;
	line-height: 1.2 !important;
	color: var(--tb-card-name-color, #f5f5f5) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	text-align: left !important;
}

/* Role: DM Sans Regular, 18px, #f8fcff @ 0.7 opacity, capitalize */
.tb-staff-card .tb-staff-card__role {
	margin: 0 !important;
	padding: 0 !important;
	font-family: 'DM Sans', 'Inter', system-ui, -apple-system, sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	font-style: normal !important;
	line-height: normal !important;
	color: var(--tb-card-role-color, #f8fcff) !important;
	opacity: 0.7 !important;
	text-transform: capitalize !important;
	letter-spacing: 0 !important;
	text-align: left !important;
}

/* Locations: small, subtle line under the role (book-by-person only) */
.tb-staff-card .tb-staff-card__locations {
	margin: 4px 0 0 !important;
	padding: 0 !important;
	font-family: 'DM Sans', 'Inter', system-ui, -apple-system, sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	font-style: normal !important;
	line-height: 1.4 !important;
	color: var(--tb-card-role-color, #f8fcff) !important;
	opacity: 0.6 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	text-align: left !important;
}

/* Today-at indicator: same text style as role/locations, but with a green dot */
.tb-staff-card .tb-staff-card__locations--today {
	margin: 6px 0 0 !important;
	color: var(--tb-card-role-color, #f8fcff) !important;
	opacity: 0.7 !important;
	font-weight: 400 !important;
	display: inline-flex !important;
	align-items: flex-start !important;
	gap: 6px !important;
}

.tb-staff-card .tb-staff-card__today-dot {
	position: relative !important;
	display: inline-block !important;
	width: 7px !important;
	height: 7px !important;
	border-radius: 50% !important;
	background: #7ee3b5 !important;
	flex: 0 0 auto !important;
	margin-top: 7px !important;
	animation: tb-blink 1.4s ease-in-out infinite;
}

/* Expanding ring (radar ping) */
.tb-staff-card .tb-staff-card__today-dot::after {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	border-radius: 50% !important;
	background: #7ee3b5 !important;
	animation: tb-ping 1.4s cubic-bezier(0, 0, 0.2, 1) infinite;
	pointer-events: none;
	z-index: -1;
}

@keyframes tb-ping {
	0%   { transform: scale(1);   opacity: 0.75; }
	80%  { transform: scale(2.8); opacity: 0;    }
	100% { transform: scale(2.8); opacity: 0;    }
}

@keyframes tb-blink {
	0%, 100% { opacity: 1;    }
	50%      { opacity: 0.55; }
}

/* ── Button: always visible, 1px white border, DM Sans 18px w500  */

.tb-staff-card .tb-staff-card__cta,
.tb-staff-card .tb-staff-card__cta:link,
.tb-staff-card .tb-staff-card__cta:visited {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	padding: 16px 30px !important;
	font-family: 'DM Sans', 'Inter', system-ui, sans-serif !important;
	font-size: 18px !important;
	font-weight: 500 !important;
	line-height: 24px !important;
	letter-spacing: 0 !important;
	color: var(--tb-btn-text, #ffffff) !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 1px solid var(--tb-btn-border, #ffffff) !important;
	border-radius: 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
	cursor: pointer;
	box-sizing: border-box;
	box-shadow: none !important;
	text-shadow: none !important;
}

.tb-staff-card .tb-staff-card__cta:hover,
.tb-staff-card .tb-staff-card__cta:focus,
.tb-staff-card .tb-staff-card__cta:active {
	background: var(--tb-btn-hover-bg, #ffffff) !important;
	background-color: var(--tb-btn-hover-bg, #ffffff) !important;
	background-image: none !important;
	border-color: var(--tb-btn-hover-bg, #ffffff) !important;
	color: var(--tb-btn-hover-text, #063050) !important;
	box-shadow: none !important;
	outline: none !important;
}

/* ══════════════════════════════════════════════════════════════════
   STORE SELECTOR — [phorest_book_by_store]
   ══════════════════════════════════════════════════════════════════ */

.tb-store-selector {
	--tb-store-active: #063050;
	width: 100%;
	max-width: 1300px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 40px;
	padding-bottom: 40px;
	box-sizing: border-box;
}

/* When the staff grid is nested inside the store selector (AJAX-loaded results),
   the outer selector already provides the top/bottom spacing — avoid doubling. */
.tb-store-selector .tb-staff-grid {
	padding-top: 0;
	padding-bottom: 0;
}

.tb-store-heading {
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #063050;
	margin: 0 0 0.75rem;
}

/* Location pill buttons */
.tb-store-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
	margin-bottom: 1rem;
}

.tb-store-selector .tb-store-btn,
.tb-store-selector .tb-store-btn:link,
.tb-store-selector .tb-store-btn:visited {
	padding: 16px 42px !important;
	border: 1px solid #063050 !important;
	border-radius: 0 !important;
	background: #F8FCFF00 !important;
	background-color: #F8FCFF00 !important;
	background-image: none !important;
	cursor: pointer;
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	color: #063050 !important;
	transition: all 0.2s ease !important;
	white-space: nowrap;
	box-shadow: none !important;
	text-shadow: none !important;
}

.tb-store-selector .tb-store-btn:hover,
.tb-store-selector .tb-store-btn:focus,
.tb-store-selector .tb-store-btn:active {
	border-color: var(--tb-store-active, #063050) !important;
	background: #F8FCFF00 !important;
	background-color: #F8FCFF00 !important;
	background-image: none !important;
	color: #063050 !important;
	box-shadow: none !important;
	outline: none !important;
}

.tb-store-selector .tb-store-btn.tb-store-btn--active,
.tb-store-selector .tb-store-btn.tb-store-btn--active:hover,
.tb-store-selector .tb-store-btn.tb-store-btn--active:focus,
.tb-store-selector .tb-store-btn.tb-store-btn--active:active {
	background: var(--tb-store-active, #063050) !important;
	background-color: var(--tb-store-active, #063050) !important;
	background-image: none !important;
	border-color: var(--tb-store-active, #063050) !important;
	color: #fff !important;
	box-shadow: none !important;
}

/* Address below buttons — matches heading typography */
.tb-store-address {
	font-size: 0.8rem;
	font-weight: 600;
	color: #063050;
	margin: 0.25rem 0 1.5rem;
	min-height: 1.3em;
}

/* Staff results area */
.tb-store-staff {
	min-height: 80px;
}

.tb-store-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 3rem 0;
	color: #888;
	font-size: 0.95rem;
}

.tb-store-error {
	padding: 1.25rem;
	border-radius: 8px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #b91c1c;
	text-align: center;
}

/* Shared spinner */
.tb-spinner,
.psa-spinner {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid #ccc;
	border-top-color: #1a1a1a;
	border-radius: 50%;
	animation: tb-spin 0.7s linear infinite;
}

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

/* ══════════════════════════════════════════════════════════════════
   SALON OPEN / CLOSED STATUS BANNER
   Shown at top of book-by-person, above the staff grid
   ══════════════════════════════════════════════════════════════════ */

.tb-staff-section {
	width: 100%;
	max-width: 1300px;
	margin: 0 auto;
	padding-top: 40px;
	padding-bottom: 40px;
	box-sizing: border-box;
}

/* Inside a section, the grid no longer owns the vertical padding — that moves
   to the section wrapper so the banner + grid flow together as one block. */
.tb-staff-section > .tb-staff-grid {
	padding-top: 0;
	padding-bottom: 0;
	max-width: 100%;
	margin: 0;
}

.tb-salon-status {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px 0;
	padding: 0;
	font-family: 'DM Sans', 'Inter', system-ui, -apple-system, sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	color: #063050;
	letter-spacing: 0.02em;
}

.tb-salon-status__dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	flex: 0 0 auto;
}

.tb-salon-status--open .tb-salon-status__dot {
	background: #4ade80;
	box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.18);
	animation: tb-status-pulse 1.8s ease-in-out infinite;
}

.tb-salon-status--closed .tb-salon-status__dot {
	background: #9ca3af;
	box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.18);
}

.tb-salon-status__label {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	flex-wrap: wrap;
}

.tb-salon-status__next {
	font-weight: 400;
	opacity: 0.65;
}

@keyframes tb-status-pulse {
	0%, 100% { box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.18); }
	50%      { box-shadow: 0 0 0 6px rgba(74, 222, 128, 0.08); }
}

/* Skeleton variant — shimmer placeholders */
.tb-salon-status--skeleton .tb-salon-status__dot {
	background: none;
	box-shadow: none;
	animation: none;
}

.tb-salon-status--skeleton .tb-salon-status__dot,
.tb-salon-status--skeleton .tb-salon-status__label {
	border-radius: 2px;
}

/* ══════════════════════════════════════════════════════════════════
   SKELETON LOADER — placeholder cards while real data is fetching
   ══════════════════════════════════════════════════════════════════ */

.tb-staff-card--skeleton {
	pointer-events: none;
}

.tb-skeleton-shimmer {
	background-color: rgba(255, 255, 255, 0.05);
	background-image: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0.08) 50%,
		rgba(255, 255, 255, 0) 100%
	);
	background-size: 200% 100%;
	background-repeat: no-repeat;
	animation: tb-skeleton-shimmer 1.5s ease-in-out infinite;
}

.tb-skeleton-line,
.tb-skeleton-button {
	display: block;
	border-radius: 2px;
}

.tb-skeleton-button {
	border-radius: 0;
}

@keyframes tb-skeleton-shimmer {
	0%   { background-position: -100% 0; }
	100% { background-position: 100% 0;  }
}

/* Soft fade-in for the real content when it replaces the skeleton */
.tb-staff-grid:not(.tb-staff-grid--skeleton) {
	animation: tb-fade-in 0.3s ease-out;
}

@keyframes tb-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* ══════════════════════════════════════════════════════════════════
   LOCATION PICKER — shown when a barber works at multiple branches
   ══════════════════════════════════════════════════════════════════ */

.tb-location-picker {
	display: none;
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
	z-index: 2147483646;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 20px !important;
	box-sizing: border-box;
}

.tb-location-picker.tb-location-picker--open {
	display: flex;
	animation: tb-modal-fade 0.2s ease;
}

.tb-location-picker__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7);
	cursor: pointer;
}

.tb-location-picker__dialog {
	position: relative;
	width: 100%;
	max-width: 480px;
	background: #ffffff;
	color: #063050;
	padding: 36px 32px 32px;
	box-sizing: border-box;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
	animation: tb-modal-slide 0.25s ease;
}

.tb-location-picker__close {
	position: absolute;
	top: 10px;
	right: 14px;
	background: transparent;
	border: none;
	font-size: 28px;
	line-height: 1;
	color: #063050;
	cursor: pointer;
	padding: 4px 8px;
	opacity: 0.6;
	transition: opacity 0.2s ease;
}

.tb-location-picker__close:hover,
.tb-location-picker__close:focus {
	opacity: 1;
	outline: none;
}

.tb-location-picker__title {
	margin: 0 0 8px;
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif;
	font-weight: 400;
	font-size: 28px;
	line-height: 1.2;
	color: #063050;
}

.tb-location-picker__subtitle {
	margin: 0 0 24px;
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 15px;
	line-height: 1.5;
	color: #063050;
	opacity: 0.7;
}

.tb-location-picker__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.tb-location-picker__option,
.tb-location-picker__option:link,
.tb-location-picker__option:visited {
	display: block !important;
	width: 100% !important;
	padding: 16px 20px !important;
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	color: #063050 !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 1px solid #063050 !important;
	border-radius: 0 !important;
	text-align: left !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer;
	box-sizing: border-box;
	transition: background-color 0.2s ease, color 0.2s ease !important;
}

.tb-location-picker__option:hover,
.tb-location-picker__option:focus {
	background: #08151f !important;
	background-color: #08151f !important;
	color: #ffffff !important;
	outline: none !important;
}

@media (max-width: 480px) {
	.tb-location-picker__dialog {
		padding: 32px 22px 24px;
	}
	.tb-location-picker__title { font-size: 24px; }
	.tb-location-picker__subtitle { font-size: 14px; margin-bottom: 20px; }
	.tb-location-picker__option,
	.tb-location-picker__option:link,
	.tb-location-picker__option:visited {
		padding: 14px 16px !important;
		font-size: 15px !important;
	}
}

/* ══════════════════════════════════════════════════════════════════
   BOOKING MODAL
   ══════════════════════════════════════════════════════════════════ */

.tb-booking-modal {
	display: none;
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
	z-index: 2147483647; /* Max z-index to beat any theme/plugin overlay */
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 0 !important;
}

.tb-booking-modal.tb-booking-modal--open {
	display: flex;
	animation: tb-modal-fade 0.25s ease;
}

@keyframes tb-modal-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.tb-booking-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7);
	cursor: pointer;
}

.tb-booking-modal__dialog {
	position: relative;
	width: 95%;
	max-width: 1100px;
	height: 90vh;
	max-height: 900px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	animation: tb-modal-slide 0.3s ease;
}

@keyframes tb-modal-slide {
	from { transform: translateY(20px); opacity: 0; }
	to   { transform: translateY(0); opacity: 1; }
}

.tb-booking-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.85rem 1.25rem;
	border-bottom: 1px solid #e8e8e8;
	background: #fff;
	flex-shrink: 0;
}

.tb-booking-modal__title {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0;
	color: #1a1a1a;
}

.tb-booking-modal__close {
	background: transparent;
	border: none;
	font-size: 1.75rem;
	line-height: 1;
	color: #666;
	cursor: pointer;
	padding: 0.25rem 0.5rem;
	transition: color 0.2s ease;
}

.tb-booking-modal__close:hover,
.tb-booking-modal__close:focus {
	color: #000;
	outline: none;
}

.tb-booking-modal__body {
	flex: 1;
	overflow: hidden;
	background: #f2f5f9;
}

.tb-booking-modal__iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

/* Lock html + body scroll when modal is open */
html.tb-booking-modal-open,
body.tb-booking-modal-open {
	overflow: hidden !important;
	height: 100% !important;
	position: relative;
}

/* On mobile, prevent any iOS Safari rubber-band scrolling */
@media (max-width: 600px) {
	html.tb-booking-modal-open,
	body.tb-booking-modal-open {
		position: fixed !important;
		width: 100% !important;
		overflow: hidden !important;
		touch-action: none;
	}
}

@media (max-width: 600px) {
	/* Stretch the modal to truly fill mobile viewport */
	.tb-booking-modal {
		align-items: stretch;
		justify-content: stretch;
	}

	.tb-booking-modal__dialog {
		width: 100vw;
		height: 100vh;
		/* Use dynamic viewport height where supported (handles mobile browser
		   chrome — Safari address bar collapsing, etc.) */
		height: 100dvh;
		max-width: 100vw;
		max-height: 100vh;
		max-height: 100dvh;
		border-radius: 0;
		margin: 0;
	}
}

/* ══════════════════════════════════════════════════════════════════
   LEGACY — [phorest_staff_availability]
   ══════════════════════════════════════════════════════════════════ */

.psa-availability-widget { max-width: 640px; margin: 0 auto; font-family: inherit; }
.psa-search-form { display: flex; flex-direction: column; gap: 1rem; }
.psa-form-row { display: flex; flex-direction: column; gap: 0.35rem; }
.psa-label { font-weight: 600; font-size: 0.95rem; color: #333; }

.psa-select,
.psa-input {
	width: 100%; padding: 0.65rem 0.75rem; font-size: 1rem;
	border: 1px solid #ccc; border-radius: 6px; background-color: #fff;
	color: #333; transition: border-color 0.2s ease; box-sizing: border-box;
}
.psa-select:focus,
.psa-input:focus { outline: none; border-color: #1a1a1a; box-shadow: 0 0 0 2px rgba(26,26,26,0.1); }

.psa-button {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0.7rem 1.5rem; font-size: 1rem; font-weight: 600;
	border: none; border-radius: 6px; cursor: pointer; text-decoration: none;
	transition: background-color 0.2s ease, opacity 0.2s ease;
}
.psa-button-search { background-color: #1a1a1a; color: #fff; width: 100%; margin-top: 0.5rem; }
.psa-button-search:hover { background-color: #333; }
.psa-button-search:disabled { opacity: 0.6; cursor: not-allowed; }
.psa-button-book { background-color: #2c6e49; color: #fff; padding: 0.5rem 1.2rem; font-size: 0.9rem; white-space: nowrap; }
.psa-button-book:hover { background-color: #245a3a; color: #fff; }

.psa-loading { display: flex; align-items: center; gap: 0.75rem; padding: 1.5rem 0; color: #666; font-size: 0.95rem; }
.psa-results-header { margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid #eee; }
.psa-results-title { font-size: 1.15rem; margin: 0 0 0.25rem; color: #333; }
.psa-results-count { font-size: 0.85rem; color: #888; margin: 0; }
.psa-slots-list { display: flex; flex-direction: column; gap: 0.5rem; }

.psa-slot-card {
	display: flex; align-items: center; justify-content: space-between;
	padding: 0.85rem 1rem; border: 1px solid #e8e8e8; border-radius: 8px;
	background: #fafafa; transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.psa-slot-card:hover { border-color: #ccc; box-shadow: 0 2px 8px rgba(0,0,0,0.04); }
.psa-slot-info { display: flex; flex-direction: column; gap: 0.2rem; }
.psa-slot-time { font-size: 1.05rem; font-weight: 600; color: #1a1a1a; }
.psa-slot-branch { font-size: 0.85rem; color: #777; }
.psa-slot-action { flex-shrink: 0; margin-left: 1rem; }
.psa-results-note { font-size: 0.85rem; color: #888; margin-top: 1rem; text-align: center; }

.psa-no-results,
.psa-error-message { padding: 1.25rem; border-radius: 8px; text-align: center; }
.psa-no-results { background: #f9f9f9; border: 1px solid #e8e8e8; color: #666; }
.psa-error-message { background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; }
.psa-error { padding: 1rem; border-radius: 8px; background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; margin-top: 1rem; }

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
	.tb-staff-grid--cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.tb-staff-grid--cols-3,
	.tb-staff-grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 420px)); }
}

@media (max-width: 640px) {
	/* Single column on phones — prevents tall-card cramping and any footer overlap */
	.tb-staff-grid {
		gap: 16px;
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.tb-staff-section {
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.tb-staff-section > .tb-staff-grid {
		padding-top: 0;
		padding-bottom: 0;
	}

	.tb-salon-status {
		margin-bottom: 16px;
		padding-left: 0;
		padding-right: 0;
		font-size: 13px;
	}

	.tb-store-selector {
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.tb-staff-grid--cols-2,
	.tb-staff-grid--cols-3,
	.tb-staff-grid--cols-4 { grid-template-columns: minmax(0, 420px); }

	.tb-staff-card {
		max-width: 420px;
		width: 100%;
	}

	.tb-staff-card__content { left: 16px; right: 16px; bottom: 16px; gap: 16px; }
	.tb-staff-card__name { font-size: 32px; }
	.tb-staff-card__role { font-size: 16px; }

	.tb-staff-card .tb-staff-card__cta,
	.tb-staff-card .tb-staff-card__cta:link,
	.tb-staff-card .tb-staff-card__cta:visited {
		font-size: 15px !important;
		padding: 14px 20px !important;
	}

	.tb-store-buttons { flex-direction: column; }

	.psa-slot-card { flex-direction: column; align-items: flex-start; gap: 0.65rem; }
	.psa-slot-action { margin-left: 0; width: 100%; }
	.psa-button-book { width: 100%; text-align: center; }
}

/* ══════════════════════════════════════════════════════════════════
   REDESIGNED TEAM GRID & CARD LAYOUTS (Figma REDESIGN)
   ══════════════════════════════════════════════════════════════════ */

.tb-archive-team-wrapper,
.tb-single-profile-wrapper {
	background-color: #faf6ee !important;
	padding: 60px 20px;
	min-height: 100vh;
	font-family: 'DM Sans', 'Inter', system-ui, -apple-system, sans-serif !important;
	box-sizing: border-box;
}

.tb-archive-team-container,
.tb-single-profile-container {
	max-width: 1200px;
	margin: 0 auto;
}

/* Filters */
.tb-archive-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 auto 40px;
	justify-content: center;
}

.tb-archive-filter-pill {
	font-size: 12.5px !important;
    font-weight: 600 !important;
    color: #063050 !important;
    background: #fff !important;
    border: 1px solid #d8dee3 !important;
    border-radius: 999px !important;
    padding: 7px 14px !important;
    cursor: pointer !important;
    transition: background .15s, color .15s, border-color .15s !important;
    white-space: nowrap !important;
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	text-shadow: none !important;
}

.tb-archive-filter-pill:hover {
	background: #08151f !important;
    color: #EDE6D8 !important;
    border-color: #08151f !important;
}

.tb-archive-filter-pill.active,
.tb-archive-filter-pill.active:hover {
	background: #C2A06B !important;
	border-color: #C2A06B !important;
	color: #1c1408 !important;
}

/* Location Header */
.tb-archive-location-header {
	margin-bottom: 40px;
}

.tb-archive-location-label {
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	color: #C5a880 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
}

.tb-archive-location-title {
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif !important;
	font-size: 32px !important;
	font-weight: 200 !important;
	color: #063050 !important;
	margin: 6px 0 0 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Grid */
.tb-redesigned-grid {
	display: grid;
	gap: 24px;
	width: 100%;
	justify-content: center;
	margin: 0 auto;
	box-sizing: border-box;
}

.tb-redesigned-grid--cols-1 { grid-template-columns: minmax(0, 420px); }
.tb-redesigned-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 420px)); }
.tb-redesigned-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 420px)); }
.tb-redesigned-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 420px)); }

/* Card */
.tb-redesigned-card {
	display: flex;
	flex-direction: column;
	border-radius: 6px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	max-width: 420px;
	width: 100%;
	margin: 0 auto;
	box-sizing: border-box;
	border: 1px solid #08151f1f;
}

.tb-redesigned-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 30px rgba(6, 48, 80, 0.1);
}

.tb-redesigned-card-image-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 420 / 360;
	overflow: hidden;
	background-color: #eaeff4;
}

.tb-redesigned-card-image {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center top !important;
	display: block !important;
}

.tb-redesigned-card-image-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'DM Sans', sans-serif;
	font-size: 2.2rem;
	font-weight: 700;
	color: rgba(6, 48, 80, 0.2);
}

.tb-redesigned-card-content {
	padding: 24px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.tb-redesigned-card-name {
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif !important;
	font-size: 26px !important;
	font-weight: 400 !important;
	color: #063050 !important;
	margin: 0 0 6px !important;
	line-height: 1.2 !important;
}

.tb-redesigned-card-role {
	font-family: 'DM Sans', Inter, sans-serif !important;
	font-size: 12px !important;
	color: #5d6b76 !important;
	margin: 0 0 4px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
}

.tb-redesigned-card-location-wrapper {
	margin-bottom: 12px;
}

.tb-redesigned-card-languages-overlay {
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: 10px;
	display: flex;
}

.tb-redesigned-card-languages-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 14px 5px 5px;
	background-color: #FAF7F0;
	color: #1c1408;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.01em;
	font-family: 'DM Sans', sans-serif;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
}

.tb-redesigned-card-languages-icon-circle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	border-radius: 50%;
	background-color: #C2A06B;
}

.tb-redesigned-card-languages-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: #1c1408;
}

.tb-redesigned-card-location-badge {
	display: inline-block;
	padding: 6px 14px;
	background-color: #Eef4f8;
	color: #063050;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	font-family: 'DM Sans', sans-serif;
}

.tb-redesigned-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
}

.tb-redesigned-card-tag {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 500;
	font-family: 'DM Sans', sans-serif;
}

.tb-tag-gold {
	background: #C2A06B;
    color: #1c1408;
}

.tb-tag-blue {
	background-color: #Eef4f8;
	color: #063050;
}

.tb-redesigned-card-description {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	color: #555555 !important;
	margin: 0 0 20px !important;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	height: 4.5em; /* Lock height to align card elements */
}

.tb-redesigned-card-buttons {
	display: flex;
	gap: 10px;
	margin-top: auto;
}

.tb-redesigned-card-btn,
.tb-redesigned-card-btn:link,
.tb-redesigned-card-btn:visited {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 16px !important;
	border-radius: 30px !important;
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
	cursor: pointer;
	box-sizing: border-box;
	border: 1px solid transparent !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

.tb-redesigned-card-btn--book {
	background: #C5a880 !important;
	background-color: #C5a880 !important;
	color: #ffffff !important;
}

.tb-redesigned-card-btn--book:hover,
.tb-redesigned-card-btn--book:focus,
.tb-redesigned-card-btn--book:active {
	background: #b1936b !important;
	background-color: #b1936b !important;
	color: #ffffff !important;
}

.tb-redesigned-card-btn--profile {
	background: transparent !important;
	border: 1px solid #063050 !important;
	color: #063050 !important;
}

.tb-redesigned-card-btn--profile:hover,
.tb-redesigned-card-btn--profile:focus,
.tb-redesigned-card-btn--profile:active {
	background: #063050 !important;
	background-color: #063050 !important;
	color: #ffffff !important;
}

/* ══════════════════════════════════════════════════════════════════
   SINGLE MEMBER PROFILE STYLES
   ══════════════════════════════════════════════════════════════════ */

.tb-single-profile-main {
	display: grid;
	grid-template-columns: 420px 1fr;
	gap: 50px;
	align-items: start;
	margin-top: 20px;
}

.tb-single-profile-left {
	display: flex;
	justify-content: center;
}

.tb-single-profile-image-frame {
	border: 4px solid #063050;
	background: #063050;
	width: 100%;
	max-width: 420px;
	aspect-ratio: 420 / 500;
	overflow: hidden;
	box-sizing: border-box;
}

.tb-single-profile-image {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center top !important;
	display: block !important;
}

.tb-single-profile-image-placeholder {
	width: 100%;
	height: 100%;
	background: #063050;
	color: rgba(255, 255, 255, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'DM Sans', sans-serif;
	font-size: 4rem;
	font-weight: 700;
}

.tb-single-profile-right {
	display: flex;
	flex-direction: column;
}

.tb-single-profile-label {
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #C5a880 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	margin-bottom: 8px;
}

.tb-single-profile-name {
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif !important;
	font-size: 48px !important;
	font-weight: 200 !important;
	color: #063050 !important;
	margin: 0 0 10px !important;
	line-height: 1.1 !important;
	text-transform: none !important;
}

.tb-single-profile-subtitle {
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-size: 13px !important;
	color: #C5a880 !important;
	margin: 0 0 24px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
}

.tb-single-profile-description {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 16px !important;
	line-height: 1.7 !important;
	color: #333333 !important;
	margin-bottom: 24px;
}

.tb-single-profile-focus {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	color: #333333 !important;
	margin: 0 0 24px !important;
	border-bottom: 1px solid rgba(6, 48, 80, 0.08);
	padding-bottom: 20px;
}

.tb-single-profile-location {
	margin-bottom: 30px;
}

.tb-single-profile-heading {
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif !important;
	font-size: 22px !important;
	font-weight: 200 !important;
	color: #063050 !important;
	margin: 0 0 10px !important;
	text-transform: none !important;
}

.tb-single-profile-location-salon {
	font-family: 'DM Sans', sans-serif !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	color: #333333 !important;
	margin: 0 0 4px !important;
}

.tb-single-profile-location-address {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 15px !important;
	color: #666666 !important;
	margin: 0 !important;
}

.tb-single-profile-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 30px;
}

.tb-single-profile-btn,
.tb-single-profile-btn:link,
.tb-single-profile-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px !important;
	border-radius: 30px !important;
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
	cursor: pointer;
	box-sizing: border-box;
	border: 1px solid transparent !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

.tb-single-profile-btn--book {
	background: #C5a880 !important;
	background-color: #C5a880 !important;
	color: #ffffff !important;
}

.tb-single-profile-btn--book:hover,
.tb-single-profile-btn--book:focus,
.tb-single-profile-btn--book:active {
	background: #b1936b !important;
	background-color: #b1936b !important;
	color: #ffffff !important;
}

.tb-single-profile-btn--outline {
	background: transparent !important;
	border: 1px solid #063050 !important;
	color: #063050 !important;
}

.tb-single-profile-btn--outline:hover,
.tb-single-profile-btn--outline:focus,
.tb-single-profile-btn--outline:active {
	background: #063050 !important;
	background-color: #063050 !important;
	color: #ffffff !important;
}

.tb-single-profile-info-box {
	padding: 20px;
	background-color: #Eef4f8;
	border-left: 4px solid #C5a880;
	border-radius: 0 6px 6px 0;
	font-size: 14px;
	line-height: 1.6;
	color: #555555;
	font-family: 'DM Sans', sans-serif;
}

.tb-single-profile-info-box p {
	margin: 0 !important;
}

/* ══════════════════════════════════════════════════════════════════
   REDESIGNED RESPONSIVE MEDIA QUERIES
   ══════════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
	.tb-redesigned-grid--cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.tb-redesigned-grid--cols-3,
	.tb-redesigned-grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 420px)); }
	
	.tb-single-profile-main {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	
	.tb-single-profile-image-frame {
		max-width: 100%;
		aspect-ratio: 1 / 1;
	}
}

@media (max-width: 640px) {
	.tb-archive-filters {
		gap: 8px;
	}
	
	.tb-archive-filter-pill {
		padding: 8px 16px !important;
		font-size: 13px !important;
	}

	.tb-redesigned-grid {
		grid-template-columns: minmax(0, 420px) !important;
	}

	.tb-redesigned-card {
		max-width: 100%;
	}
	
	.tb-single-profile-name {
		font-size: 38px !important;
	}
	
	.tb-single-profile-btn {
		width: 100%;
	}
}


/* Team archive UI refinement: location-only filters, equal cards, fixed responsive grid. */

.tb-archive-filters {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: start !important;
	gap: 10px !important;
	margin: 0 auto 42px !important;
	max-width: 100% !important;
}

.tb-archive-filter-pill {
	white-space: nowrap !important;
	min-height: 42px !important;
	padding: 10px 22px !important;
	border-radius: 999px !important;
	line-height: 1 !important;
}

.tb-redesigned-grid,
.team-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 18px !important;
	justify-content: stretch !important;
	align-items: stretch !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 auto !important;
}

.tb-redesigned-grid--cols-1,
.tb-redesigned-grid--cols-2,
.tb-redesigned-grid--cols-3,
.tb-redesigned-grid--cols-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.tb-redesigned-card {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
	border-radius: 6px !important;
	overflow: hidden !important;
	border: 1px solid #08151f1f !important;
}

.tb-redesigned-card-image-wrap {
	width: 100% !important;
	aspect-ratio: 4 / 5 !important;
	min-height: 0 !important;
	background: #04212f !important;
	flex: 0 0 auto !important;
}

.tb-redesigned-card-image {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center top !important;
}

.tb-redesigned-card-image-placeholder {
	background: #eef2f4 !important;
	min-height: 100% !important;
}

.tb-redesigned-card-content {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	height: 100% !important;
	padding: 16px !important;
}

.tb-redesigned-card-name {
    font-size: 19px !important;
	line-height: 1.12 !important;
	margin-bottom: 7px !important;
}

.tb-redesigned-card-role {
	min-height: 20px !important;
	margin-bottom: 14px !important;
	line-height: 1.35 !important;
}

.tb-redesigned-card-location-wrapper {
	margin-bottom: 12px !important;
}

.tb-redesigned-card-languages-badge {
	padding: 5px 11px 5px 5px !important;
	border-radius: 999px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	white-space: normal !important;
	background-color: #FAF7F0 !important;
	color: #1c1408 !important;
}

.tb-redesigned-card-location-badge,
.tb-redesigned-card-tag {
	line-height: 1.15 !important;
	white-space: normal !important;
}

.tb-redesigned-card-location-badge {
	padding: 5px 9px !important;
	border-radius: 999px !important;
	background: #eef1f3 !important;
	color: #3a4b56 !important;
	font-size: 10.5px !important;
    font-weight: 600 !important;
}

.tb-redesigned-card-tags {
	gap: 7px !important;
	margin-bottom: 18px !important;
}

.tb-redesigned-card-tag {
    padding: 4px 9px !important;
	border-radius: 999px !important;
	font-size: 10.5px !important;
    font-weight: 600 !important;
}

.tb-redesigned-card-description {
	min-height: 4.5em !important;
	height: auto !important;
	margin-bottom: 22px !important;
}

.tb-redesigned-card-buttons {
	display: flex !important;
	gap: 12px !important;
	margin-top: auto !important;
	padding-top: 18px !important;
}

.tb-redesigned-card-btn,
.tb-redesigned-card-btn:link,
.tb-redesigned-card-btn:visited,
.tb-redesigned-card-btn:active {
	flex: 1 !important;
    text-align: center !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    border-radius: 4px !important;
    padding: 9px 6px !important;
    text-decoration: none !important;
    transition: .15s !important;
}

.tb-redesigned-card-btn.tb-redesigned-card-btn--profile {
	flex: 1 !important;
    text-align: center !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    border-radius: 4px !important;
    padding: 9px 6px !important;
    text-decoration: none !important;
    transition: .15s !important;
	border: 1px solid #063050 !important;
}

@media (max-width: 1400px) {
	.tb-redesigned-grid,
	.team-grid,
	.tb-redesigned-grid--cols-1,
	.tb-redesigned-grid--cols-2,
	.tb-redesigned-grid--cols-3,
	.tb-redesigned-grid--cols-4 {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 1023px) {
	.tb-redesigned-grid,
	.team-grid,
	.tb-redesigned-grid--cols-1,
	.tb-redesigned-grid--cols-2,
	.tb-redesigned-grid--cols-3,
	.tb-redesigned-grid--cols-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.tb-archive-team-wrapper,
	.tb-single-profile-wrapper {
		padding: 42px 16px !important;
	}

	.tb-archive-filters {
		justify-content: flex-start !important;
		padding-bottom: 6px !important;
	}

	.tb-redesigned-grid,
	.team-grid,
	.tb-redesigned-grid--cols-1,
	.tb-redesigned-grid--cols-2,
	.tb-redesigned-grid--cols-3,
	.tb-redesigned-grid--cols-4 {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}

	.tb-redesigned-card {
		min-height: 0 !important;
	}


}

/* Shortcode team listing pagination */
.tb-team-pagination {
	margin-top: 36px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.tb-team-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	padding: 10px 14px;
	border-radius: 999px;
	border: 1px solid rgba(6, 48, 80, 0.18);
	background: #ffffff;
	color: #063050;
	font-weight: 700;
	text-decoration: none;
}

.tb-team-pagination .page-numbers.current,
.tb-team-pagination .page-numbers:hover,
.tb-team-pagination .page-numbers:focus {
	background: #063050;
	color: #ffffff;
	border-color: #063050;
}


/* Location Tabs */
.tb-redesigned-card.tb-card-filtered-out {
	display: none;
}

.tb-archive-filter-pill {
	cursor: pointer;
}

.tb-archive-filter-pill.active {
	background: #c9a96b;
	color: #00111d;
}


/* ==========================================================================
   Team location filter — force hidden cards to disappear
   ========================================================================== */

.tb-archive-team-wrapper .tb-redesigned-card[hidden],
.tb-archive-team-wrapper .tb-redesigned-card.tb-card-filtered-out {
	display: none !important;
}

/* Grouped category sections (e.g. the /team/ archive page). */
.tb-archive-location-section {
	margin-bottom: 64px;
}

.tb-archive-location-section:last-child {
	margin-bottom: 0;
}

.tb-archive-team-wrapper .tb-archive-location-section[hidden] {
	display: none !important;
}

.tb-archive-team-wrapper .tb-archive-filter-pill {
	cursor: pointer;
}

.tb-archive-team-wrapper .tb-archive-filter-pill.active {
	background: #c9a96b !important;
	color: #06141d !important;
}

/* ===== Ported from services catalogue (the-barber v1.4.0) ===== */
/* ═══════════════════════════════════════════════════════════════
   [phorest_services] — Service catalogue
   ═══════════════════════════════════════════════════════════════ */

.tb-services {
	width: 100%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 40px 0;
	box-sizing: border-box;
	font-family: 'DM Sans', Inter, sans-serif;
}

/* The branch pills reuse the store-selector look, but those rules are scoped to
   .tb-store-selector — extend them to the services wrapper rather than
   duplicating the design. */
.tb-services .tb-store-btn,
.tb-services .tb-store-btn:link,
.tb-services .tb-store-btn:visited {
	padding: 16px 42px !important;
	border: 1px solid #063050 !important;
	border-radius: 0 !important;
	background: #F8FCFF00 !important;
	background-color: #F8FCFF00 !important;
	background-image: none !important;
	cursor: pointer;
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	color: #063050 !important;
	transition: all 0.2s ease !important;
	white-space: nowrap;
	box-shadow: none !important;
	text-shadow: none !important;
}

.tb-services .tb-store-btn:hover,
.tb-services .tb-store-btn:focus,
.tb-services .tb-store-btn:active {
	border-color: var(--tb-store-active, #063050) !important;
	color: #063050 !important;
	box-shadow: none !important;
	outline: none !important;
}

.tb-services .tb-store-btn.tb-store-btn--active,
.tb-services .tb-store-btn.tb-store-btn--active:hover,
.tb-services .tb-store-btn.tb-store-btn--active:focus {
	background: var(--tb-store-active, #063050) !important;
	background-color: var(--tb-store-active, #063050) !important;
	border-color: var(--tb-store-active, #063050) !important;
	color: #fff !important;
	box-shadow: none !important;
}

.tb-services__content {
	transition: opacity 0.15s ease;
}

.tb-services__category {
	margin: 0 0 2.75rem;
}

.tb-services__category-title {
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif;
	font-weight: 200;
	font-size: 30px;
	line-height: 1.2;
	color: #063050;
	margin: 0 0 1rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid rgba(6, 48, 80, 0.18);
}

.tb-services__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tb-service-row {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	padding: 1.1rem 0;
	border-bottom: 1px solid rgba(6, 48, 80, 0.08);
}

.tb-service-row:last-child {
	border-bottom: 0;
}

.tb-service-row__main {
	flex: 1 1 auto;
	min-width: 0;
}

.tb-service-row__name {
	font-family: 'DM Sans', Inter, sans-serif;
	font-size: 18px;
	font-weight: 500;
	color: #063050;
	margin: 0;
	line-height: 1.35;
}

.tb-service-row__description {
	font-size: 14px;
	line-height: 1.5;
	color: rgba(6, 48, 80, 0.65);
	margin: 0.3rem 0 0;
}

.tb-service-row__meta {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.15rem;
	text-align: right;
	white-space: nowrap;
}

.tb-service-row__duration {
	font-size: 13px;
	color: rgba(6, 48, 80, 0.6);
}

.tb-service-row__price {
	font-size: 18px;
	font-weight: 600;
	color: #063050;
}

.tb-service-row__cta,
.tb-service-row__cta:link,
.tb-service-row__cta:visited {
	flex: 0 0 auto;
	display: inline-block;
	padding: 12px 30px !important;
	border: 1px solid #063050 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-image: none !important;
	font-family: 'PP Editorial New', 'Editorial New', Georgia, serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: #063050 !important;
	text-decoration: none !important;
	white-space: nowrap;
	cursor: pointer;
	transition: all 0.2s ease !important;
	box-shadow: none !important;
}

.tb-service-row__cta:hover,
.tb-service-row__cta:focus {
	background: var(--tb-store-active, #063050) !important;
	background-color: var(--tb-store-active, #063050) !important;
	border-color: var(--tb-store-active, #063050) !important;
	color: #fff !important;
}

.tb-services__loading {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 1rem 0;
	font-size: 14px;
	color: #063050;
}

.tb-services__error {
	padding: 1rem 0;
	color: #b3261e;
	font-size: 14px;
}

@media (max-width: 640px) {
	.tb-service-row {
		flex-wrap: wrap;
		gap: 0.6rem;
	}

	.tb-service-row__main { flex: 1 1 100%; }

	.tb-service-row__meta {
		flex-direction: row;
		align-items: baseline;
		gap: 0.75rem;
		text-align: left;
	}

	.tb-service-row__cta { margin-left: auto; }
}





/* CSS Styling  */
/* CSS Styling  */
/* CSS Styling  */
/* CSS Styling  */
/* =========================================================
   THE BARBER — FINAL SERVICES DESIGN
   Use this block only. Remove previous service CSS overrides.
   ========================================================= */

.tb-services {
	--tb-services-bg: #f7f3eb;
	--tb-services-text: #063050;
	--tb-services-gold: #c6a36a;
	--tb-services-border: rgba(6, 48, 80, 0.18);
	--tb-services-dots: rgba(6, 48, 80, 0.35);

	width: 100%;
	color: var(--tb-services-text);
}

.tb-services__content {
	width: 100%;
	color: var(--tb-services-text);
}

/* Category section */
.tb-services__category {
	width: 100%;
	margin: 0 0 64px;
	padding: 0;
	background: #fbf8f1;
	border: 0;
	box-shadow: none;
}

.tb-services__category:last-child {
	margin-bottom: 0;
}

.tb-services__category-header {
	margin: 0;
	padding: 0;
}

.tb-services__category-title {
	margin: 0;
	padding: 0 0 13px;
	color: var(--tb-services-text);
	border-bottom: 1px solid var(--tb-services-border);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(28px, 2.4vw, 42px);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.02em;
	text-transform: none;
}

.tb-services__category-divider {
	display: none;
}

/* Services list */
.tb-services__list {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Entire service row is clickable */
.tb-service-row {
	display: grid;
	grid-template-columns: minmax(0, auto) minmax(60px, 1fr) auto;
	align-items: center;
	column-gap: 16px;
	width: 100%;
	margin: 0;
	padding: 17px 0;
	color: var(--tb-services-text) !important;
	background: #fbf8f1;
	border: 0;
	border-bottom: 1px solid var(--tb-services-border);
	border-radius: 0;
	box-shadow: none;
	text-decoration: none !important;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		padding-left 0.2s ease,
		padding-right 0.2s ease;
}

.tb-service-row:link,
.tb-service-row:visited,
.tb-service-row:hover,
.tb-service-row:active,
.tb-service-row:focus {
	color: var(--tb-services-text) !important;
	text-decoration: none !important;
}

.tb-service-row:hover,
.tb-service-row:focus-visible {
	padding-left: 8px;
	padding-right: 8px;
	background: rgba(198, 163, 106, 0.07);
	outline: none;
}

/* Left content */
.tb-service-row__main {
	min-width: 0;
}

.tb-service-row__name {
	margin: 0;
	padding: 0;

	color: var(--tb-services-text);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(18px, 1.25vw, 24px);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.tb-service-row__description {
	max-width: 680px;
	margin: 4px 0 0;
	padding: 0;

	color: var(--tb-services-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.45;
	opacity: 0.88;
}

/* Dotted leader */
.tb-service-row__leader {
	align-self: center;
	width: 100%;
	min-width: 50px;
	height: 1px;

	border-bottom: 1px dotted var(--tb-services-dots);
}

/* Right price and duration */
.tb-service-rightSide {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;

	min-width: 115px;
	text-align: right;
}

.tb-service-row__price {
	display: block;

	color: var(--tb-services-text);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.tb-service-row__duration {
	display: block;
	margin-top: 4px;

	color: var(--tb-services-text);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.25;
	white-space: nowrap;
	opacity: 0.68;
}

/* Old Buchen button must stay hidden */
.tb-service-row__cta {
	display: none !important;
}

/* Category footer buttons */
.tb-services__category-footer {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;

	margin-top: 22px;
	padding: 0;
}

.tb-services__category-book,
.tb-services__staff-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 42px;
	padding: 11px 20px;

	border-radius: 0;
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none !important;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

.tb-services__category-book {
	color: #102b40 !important;
	background: var(--tb-services-gold);
	border: 1px solid var(--tb-services-gold);
}

.tb-services__category-book:hover,
.tb-services__category-book:focus {
	color: #ffffff !important;
	background: var(--tb-services-text);
	border-color: var(--tb-services-text);
}

.tb-services__staff-link {
	color: var(--tb-services-text) !important;
	background: transparent;
	border: 1px solid var(--tb-services-text);
}

.tb-services__staff-link:hover,
.tb-services__staff-link:focus {
	color: #ffffff !important;
	background: var(--tb-services-text);
}

/* Branch selector spacing */
.tb-services .tb-store-heading {
	margin-bottom: 12px;
}

.tb-services__branches {
	margin-bottom: 34px;
}

/* Loading state */
.tb-services--loading .tb-services__content {
	opacity: 0.45;
	pointer-events: none;
}

/* Tablet */
@media (max-width: 900px) {
	.tb-services__category {
		margin-bottom: 52px;
	}

	.tb-service-row {
		grid-template-columns: minmax(0, auto) minmax(40px, 1fr) auto;
		column-gap: 12px;
	}

	.tb-service-row__description {
		max-width: 520px;
	}
}

/* Mobile */
@media (max-width: 767px) {
	.tb-services__category {
		margin-bottom: 42px;
	}

	.tb-services__category-title {
		padding-bottom: 10px;
		font-size: 28px;
	}

	.tb-service-row {
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 12px;
		row-gap: 4px;

		padding: 15px 0;
	}

	.tb-service-row:hover,
	.tb-service-row:focus-visible {
		padding-left: 0;
		padding-right: 0;
		background: transparent;
	}

	.tb-service-row__main {
		grid-column: 1;
		grid-row: 1;
	}

	.tb-service-row__leader {
		display: none;
	}

	.tb-service-rightSide {
		grid-column: 2;
		grid-row: 1;
		align-self: start;
		min-width: auto;
	}

	.tb-service-row__name {
		font-size: 18px;
	}

	.tb-service-row__description {
		max-width: none;
		padding-right: 8px;
		font-size: 11px;
	}

	.tb-service-row__price {
		font-size: 14px;
	}

	.tb-service-row__duration {
		font-size: 10px;
	}

	.tb-services__category-footer {
		gap: 10px;
		margin-top: 18px;
	}

	.tb-services__category-book,
	.tb-services__staff-link {
		min-height: 40px;
		padding: 10px 15px;
		font-size: 12px;
	}
}

/* Small mobile */
@media (max-width: 480px) {
	.tb-services__category-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.tb-services__category-book,
	.tb-services__staff-link {
		width: 100%;
	}
}
/* CSS Styling  */
/* CSS Styling  */
/* =========================================================
   SERVICES CATEGORY PILLS
   ========================================================= */

.tb-services__category-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
	background-color: #fbf8f1 !important;
	width: 100%;
	margin: 0 0 38px;
	padding: 0 0 14px;
    position: sticky;
    top: 32px;
	border-bottom: 1px solid var(--tb-services-border);
	z-index: 998;
}

.tb-services__category-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 40px;
	padding: 9px 18px;

	color: var(--tb-services-text) !important;
	background: transparent;
	border: 1px solid var(--tb-services-text);
	border-radius: 999px;

	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none !important;
	white-space: nowrap;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}

.tb-services__category-pill:hover,
.tb-services__category-pill:focus,
.tb-services__category-pill--active {
	color: #ffffff !important;
	background: #c2a06b;
	border-color: #c2a06b;
	text-decoration: none !important;
}

.tb-services__category-pill:hover {
	transform: translateY(-1px);
}

.tb-services__category {
	scroll-margin-top: 110px;
}

@media (max-width: 767px) {
    
	.tb-services__category-nav {
	    top: 0;
        padding-top: 16px;
		overflow-x: auto;
		gap: 8px;
		margin-bottom: 28px;
		padding-bottom: 12px;
		flex-wrap: nowrap;
        justify-content: flex-start;
	}

	.tb-services__category-pill {
		flex: 0 0 auto;
		min-height: 36px;
		padding: 8px;
		font-size: 12px;
		
	}
}
/* CSS Styling  */