.innerg-mt-auth-hub {
	max-width: 840px;
	margin: 24px 0;
}

.innerg-mt-auth-card {
	padding: 28px;
	background: var(--secondary);
	border: 1px solid var(--border);
	border-radius: 0;
}

.innerg-mt-auth-card h2 {
	margin: 0 0 10px;
	font-family: var(--font-serif);
	font-size: 32px;
	line-height: 1.15;
	color: var(--foreground);
}

.innerg-mt-auth-card p {
	margin: 0;
	color: var(--muted-foreground);
	line-height: 1.7;
}

.innerg-mt-auth-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 22px;
}

.innerg-mt-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 18px;
	border: 1px solid var(--border);
	border-radius: 0;
	font-family: var(--font-sans);
	text-decoration: none;
	font-weight: 700;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.innerg-mt-button:hover,
.innerg-mt-button:focus {
	border-color: var(--accent);
}

.innerg-mt-button-primary {
	background: var(--foreground);
	color: var(--background);
}

.innerg-mt-button-secondary {
	background: var(--background);
	color: var(--foreground);
}

.innerg-mt-button-outline {
	background: transparent;
	color: var(--foreground);
}

.innerg-mt-auth-entry-actions .innerg-mt-button-outline {
	border-color: var(--foreground);
	background: transparent;
	color: var(--foreground);
}

.innerg-mt-auth-entry-actions .innerg-mt-button-outline:hover,
.innerg-mt-auth-entry-actions .innerg-mt-button-outline:focus-visible {
	background: var(--foreground);
	color: var(--background);
}

@media (max-width: 640px) {
	.innerg-mt-auth-entry-actions {
		align-items: center;
		flex-direction: column;
	}

	.innerg-mt-auth-entry-actions .innerg-mt-button {
		inline-size: min(100%, 22rem);
		box-sizing: border-box;
	}
}

.innerg-mt-auth-help {
	margin-top: 18px !important;
	font-size: 14px;
}

.innerg-mt-portal-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
}

.innerg-mt-field-legend {
	margin-top: 14px !important;
	font-size: 13px;
	color: var(--muted-foreground);
}

.innerg-mt-form-grid,
.innerg-mt-profile-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 22px;
}

.innerg-mt-form-grid label span,
.innerg-mt-profile-grid span {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--accent);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.innerg-mt-form-grid input {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid var(--border);
	border-radius: 0;
	background: var(--background);
}

.innerg-mt-form-grid select {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid var(--border);
	border-radius: 0;
	background: var(--background);
}

.innerg-mt-form-grid label {
	display: block;
}

.innerg-mt-form-grid input:required {
	border-color: var(--accent);
}

.innerg-mt-profile-grid div {
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: 0;
	background: var(--background);
}

.innerg-mt-profile-grid strong {
	display: block;
	font-size: 16px;
	color: var(--foreground);
}

.innerg-mt-portal-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin-top: 24px;
}

.innerg-mt-stat-card,
.innerg-mt-summary-card,
.innerg-mt-profile-section {
	padding: 18px;
	border: 1px solid var(--border);
	border-radius: 0;
	background: var(--background);
}

.innerg-mt-stat-card span,
.innerg-mt-summary-card h3,
.innerg-mt-profile-section h3 {
	display: block;
	margin: 0 0 8px;
	color: var(--muted-foreground);
}

.innerg-mt-stat-card strong {
	display: block;
	font-size: 22px;
	color: var(--foreground);
}

.innerg-mt-portal-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.95fr);
	gap: 18px;
	margin-top: 24px;
}

.innerg-mt-portal-main,
.innerg-mt-portal-side,
.innerg-mt-summary-stack {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.innerg-mt-profile-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.innerg-mt-security-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.innerg-mt-profile-image-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
}

.innerg-mt-profile-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border-radius: 0;
	background: var(--secondary);
	color: var(--foreground);
	font-size: 30px;
	font-weight: 700;
	overflow: hidden;
}

.innerg-mt-profile-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.innerg-mt-profile-image-fields {
	flex: 1 1 260px;
}

.innerg-mt-profile-image-fields input[type="file"] {
	width: 100%;
	margin-top: 8px;
}

.innerg-mt-image-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
}

.innerg-mt-pref-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	margin-top: 18px;
}

.innerg-mt-pref-option {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border: 1px solid var(--border);
	border-radius: 0;
	background: var(--background);
	color: var(--foreground);
}

.innerg-mt-pref-option input {
	margin: 0;
}

.innerg-mt-danger-zone {
	border-color: var(--foreground);
	background: var(--secondary);
}

.innerg-mt-delete-modal[hidden] { display: none; }

.innerg-mt-delete-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 1rem;
}

.innerg-mt-delete-modal__backdrop {
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--foreground) 72%, transparent);
	backdrop-filter: blur(5px);
}

.innerg-mt-delete-modal__dialog {
	position: relative;
	inline-size: min(100%, 34rem);
	max-block-size: 92vh;
	overflow: auto;
	padding: clamp(1.4rem, 4vw, 2.4rem);
	border: 1px solid var(--danger, #a33f32);
	background: var(--background);
	color: var(--foreground);
}

.innerg-mt-delete-modal__dialog h3 {
	margin: 0 0 0.75rem;
	font-family: var(--font-serif);
	font-size: clamp(1.7rem, 4vw, 2.25rem);
}

.innerg-mt-delete-modal__dialog > p:not(.innerg-profile__eyebrow) {
	color: var(--muted-foreground);
	line-height: 1.65;
}

.innerg-mt-delete-confirm,
.innerg-mt-delete-warning {
	display: block;
	margin-block: 1rem;
	padding: 0.9rem 1rem;
	border-inline-start: 3px solid var(--danger, #a33f32);
	background: color-mix(in srgb, var(--danger, #a33f32) 8%, var(--background));
}

.innerg-mt-delete-confirm {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	border: 1px solid color-mix(in srgb, var(--danger, #a33f32) 35%, var(--border));
	border-inline-start-width: 3px;
	font-size: 0.9rem;
	line-height: 1.45;
}

.innerg-mt-delete-confirm input { flex: 0 0 auto; margin-block-start: 0.2rem; }
.innerg-mt-delete-warning strong { display: block; color: var(--danger, #a33f32); }
.innerg-mt-delete-warning p { margin: 0.4rem 0 0; color: var(--muted-foreground); font-size: 0.9rem; line-height: 1.55; }
.innerg-mt-button-danger { background: var(--danger, #a33f32); color: var(--background); border-color: var(--danger, #a33f32); }
.innerg-mt-button-danger:hover,
.innerg-mt-button-danger:focus-visible { background: color-mix(in srgb, var(--danger, #a33f32) 84%, var(--foreground)); }

.innerg-mt-profile-section h3,
.innerg-mt-summary-card h3 {
	font-size: 18px;
	line-height: 1.3;
	color: var(--foreground);
}

.innerg-mt-summary-card p {
	font-size: 14px;
}

.innerg-mt-summary-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.innerg-mt-summary-list li {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--border);
}

.innerg-mt-summary-list li:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.innerg-mt-summary-list strong,
.innerg-mt-summary-list span {
	display: block;
}

.innerg-mt-summary-list span {
	margin-top: 4px;
	font-size: 13px;
	color: var(--muted-foreground);
}

.innerg-mt-front-notice {
	margin-bottom: 16px;
	padding: 14px 16px;
	border-radius: 0;
	border: 1px solid var(--border);
	font-weight: 600;
}

.innerg-mt-front-notice.is-success {
	background: color-mix(in srgb, var(--accent) 18%, var(--background));
	border-color: var(--accent);
	color: var(--foreground);
}

.innerg-mt-front-notice.is-error {
	background: color-mix(in srgb, var(--foreground) 8%, var(--background));
	border-color: var(--foreground);
	color: var(--foreground);
}

@media (max-width: 700px) {
	.innerg-mt-auth-card {
		padding: 20px;
	}

	.innerg-mt-auth-card h2 {
		font-size: 26px;
	}

	.innerg-mt-form-grid,
	.innerg-mt-profile-grid {
		grid-template-columns: 1fr;
	}

	.innerg-mt-portal-stats,
	.innerg-mt-portal-grid {
		grid-template-columns: 1fr;
	}
}
.innerg-mt-booking-layout {
	margin-top: 0.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--border);
}

.innerg-mt-booking-layout__heading {
	margin: 0 0 0.75rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.innerg-mt-booking-layout__spots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(2.25rem, 1fr));
	gap: 0.5rem;
}

.innerg-mt-booking-layout__spot {
	min-height: 2.25rem;
	border: 1px solid var(--border);
	background: var(--background);
	color: var(--foreground);
	font: inherit;
	font-size: 0.75rem;
	cursor: pointer;
}

.innerg-mt-booking-layout__spot:hover:not(:disabled),
.innerg-mt-booking-layout__spot:focus-visible {
	border-color: var(--accent);
	outline: none;
}

.innerg-mt-booking-layout__spot.is-selected {
	background: var(--foreground);
	border-color: var(--foreground);
	color: var(--background);
}

/*
 * Real spatial floor plan, used whenever a class's spots carry usable
 * x_position/y_position data (see frontend.js's renderSpotLayout()) --
 * falls back to the plain .innerg-mt-booking-layout__spots grid above
 * otherwise. inline-size fills the modal; aspect-ratio is set inline per
 * layout (frontend.js computes it from the room's real proportions).
 */
.innerg-mt-booking-layout__floor {
	position: relative;
	inline-size: 100%;
	min-block-size: 8rem;
	background: color-mix(in srgb, var(--foreground) 4%, var(--background));
	border: 1px solid var(--border);
	background-image:
		linear-gradient(color-mix(in srgb, var(--foreground) 6%, transparent) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--foreground) 6%, transparent) 1px, transparent 1px);
	background-size: 12.5% 12.5%;
}

.innerg-mt-booking-layout__spot--mapped {
	position: absolute;
	inline-size: 2.5rem;
	block-size: 2.5rem;
	min-height: 0;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	padding-inline: 0.2rem;
	box-shadow: 0 1px 2px color-mix(in srgb, var(--foreground) 15%, transparent);
}

.innerg-booking-explorer [data-booking-confirm]:disabled {
	opacity: 0.5;
	background: var(--border);
	border-color: var(--border);
	color: var(--muted-foreground);
	cursor: not-allowed;
	filter: grayscale(0.25);
}

.innerg-mt-booking-purchase {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 1rem;
	background: rgb(0 0 0 / 55%);
}

.innerg-mt-booking-purchase.is-closed { display: none; }
.innerg-mt-booking-purchase__backdrop { position: absolute; inset: 0; }
.innerg-mt-booking-purchase__dialog {
	position: relative;
	inline-size: min(100%, 48rem);
	max-block-size: min(90vh, 52rem);
	overflow: auto;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--background);
}
.innerg-mt-booking-purchase__header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.innerg-mt-booking-purchase__header h2 { margin: 0; }
.innerg-mt-booking-purchase__content { min-block-size: 16rem; margin-block: 1rem; }
.innerg-mt-booking-purchase-open { overflow: hidden; }
.innerg-booking-explorer__modal-payment > p {
	margin-block: 0 0.75rem;
	line-height: 1.55;
}

.innerg-booking-explorer__modal-payment-options {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.innerg-booking-explorer__modal-payment-option {
	min-height: 2.75rem;
	padding-inline: 0.875rem;
	border: 1px solid var(--border);
	background: var(--background);
	color: var(--foreground);
	font: inherit;
	font-size: 0.8125rem;
	text-align: left;
	cursor: pointer;
}

.innerg-booking-explorer__modal-payment-option:hover:not(:disabled),
.innerg-booking-explorer__modal-payment-option:focus-visible {
	border-color: var(--accent);
	outline: none;
}

.innerg-booking-explorer__modal-payment-option.is-selected {
	background: var(--foreground);
	border-color: var(--foreground);
	color: var(--background);
}

.innerg-booking-explorer__modal-payment-option.is-unavailable {
	opacity: 0.4;
	cursor: not-allowed;
}

.innerg-booking-explorer__modal-payment .innerg-mt-button,
.innerg-mt-booking-purchase__dialog [data-innerg-mt-booking-purchase-refresh] {
	display: flex;
	inline-size: 100%;
	box-sizing: border-box;
	min-block-size: 3rem;
	margin-block-start: 0.875rem;
	padding-inline: 1rem;
	text-align: center;
	white-space: normal;
	line-height: 1.25;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: normal;
	text-transform: none;
}

/* Calendar enhancement: inherits the active InnerG Cairo/Cormorant tokens. */
.innerg-mt-booking-calendar {
	position: relative;
	position: relative;
	inline-size: 100%;
	box-sizing: border-box;
	margin-block: 2.5rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--border);
	background: var(--secondary);
	font-family: var(--font-sans);
}

.innerg-booking-explorer > .innerg-booking-explorer__empty {
	display: none !important;
}

.innerg-booking-explorer .innerg-booking-explorer__list {
	display: grid !important;
	row-gap: 10px !important;
	background: transparent !important;
}

.innerg-mt-booking-calendar__toolbar {
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	align-items: center;
	gap: 0.75rem;
	margin-block-end: 1.25rem;
}

.innerg-mt-booking-calendar__toolbar h3 {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 500;
}

.innerg-mt-booking-calendar__toolbar button,
.innerg-mt-booking-calendar__day {
	position: relative;
	border: 1px solid var(--border);
	background: var(--background);
	color: var(--foreground);
	font: inherit;
	cursor: pointer;
}

.innerg-mt-booking-calendar__day.has-classes {
	border-bottom: 3px solid var(--accent);
}

.innerg-mt-booking-calendar__day .count {
	position: absolute;
	top: 3px;
	inset-inline-end: 4px;
	font-family: var(--font-sans);
	font-size: 10px;
	font-weight: 700;
	color: var(--accent);
}

.innerg-mt-booking-calendar__day:hover,
.innerg-mt-booking-calendar__day.is-selected {
	border-bottom-color: var(--background);
}

.innerg-mt-booking-calendar__day:hover .count,
.innerg-mt-booking-calendar__day.is-selected .count {
	color: var(--background);
}

.innerg-mt-booking-calendar[aria-busy="true"] {
	pointer-events: none;
}

.innerg-mt-booking-calendar[aria-busy="true"]::before {
	position: absolute;
	inset: 0;
	z-index: 2;
	content: '';
	background: color-mix(in srgb, var(--background) 78%, transparent);
	backdrop-filter: blur(3px);
}

.innerg-mt-booking-calendar[aria-busy="true"]::after {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	inline-size: 2.5rem;
	block-size: 2.5rem;
	content: '';
	border: 3px solid color-mix(in srgb, var(--foreground) 22%, transparent);
	border-top-color: var(--accent);
	border-radius: 50%;
	transform: translate(-50%, -50%);
	animation: innerg-mt-calendar-spin 750ms linear infinite;
}

@keyframes innerg-mt-calendar-spin {
	to { transform: translate(-50%, -50%) rotate(360deg); }
}

.innerg-mt-booking-calendar__toolbar button {
	min-block-size: 2.75rem;
	padding-inline: 0.9rem;
	font-size: 1rem;
}

.innerg-mt-booking-calendar__weekdays,
.innerg-mt-booking-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.35rem;
}

.innerg-mt-booking-calendar__weekdays {
	margin-block-end: 0.35rem;
	color: var(--muted-foreground);
	font-size: 0.82rem;
	font-weight: 700;
	text-align: center;
}

.innerg-mt-booking-calendar__day {
	position: relative;
	min-block-size: 3.2rem;
	font-size: 1.05rem;
	font-weight: 600;
}

.innerg-mt-booking-calendar__day:hover,
.innerg-mt-booking-calendar__day.is-selected {
	border-color: var(--accent);
	background: var(--foreground);
	color: var(--background);
}

.innerg-mt-booking-calendar__day:hover.has-classes,
.innerg-mt-booking-calendar__day.is-selected.has-classes {
	border-bottom-color: var(--background);
}

/* Settings > Schedule & Features > Calendar View -- Barry's-style
   horizontal date strip, opted into per desktop/mobile. Reuses the same
   .innerg-mt-booking-calendar__toolbar as the month grid (same 4-button
   layout, just data-calendar-week instead of data-calendar-month), so
   nothing below needs its own toolbar rule. */
.innerg-mt-booking-calendar__strip {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch; /* iOS Safari momentum scroll */
	padding-block-end: 0.25rem;
}

/*
 * Simplified 2026-08-21: dropped the per-day bordered "grid cell" box and
 * full color-invert on hover/selected (which made this read like the same
 * heavy month-grid day cells, not a lighter Barry's-style strip) in favor
 * of a plain underline -- closer to a real minimal date strip, and the
 * has-classes signal is now a small dot rather than a numeric badge
 * floating in the corner of a box that no longer exists.
 */
.innerg-mt-booking-calendar__strip-day {
	position: relative;
	flex: 0 0 auto;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
	min-inline-size: 4rem;
	padding: 0.5rem 0.4rem 0.7rem;
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: var(--foreground);
	font: inherit;
	cursor: pointer;
	transition: border-color 150ms ease, color 150ms ease;
}

.innerg-mt-booking-calendar__strip-weekday {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--muted-foreground);
	transition: color 150ms ease;
}

.innerg-mt-booking-calendar__strip-date {
	font-size: 0.98rem;
	font-weight: 600;
}

.innerg-mt-booking-calendar__strip-day.has-classes {
	border-bottom-color: var(--border);
}

.innerg-mt-booking-calendar__strip-day .count {
	inline-size: 4px;
	block-size: 4px;
	border-radius: 50%;
	background: var(--accent);
	font-size: 0;
	color: transparent;
}

.innerg-mt-booking-calendar__strip-day:hover,
.innerg-mt-booking-calendar__strip-day.is-selected {
	color: var(--accent);
	border-bottom-color: var(--accent);
}

.innerg-mt-booking-calendar__strip-day:hover .innerg-mt-booking-calendar__strip-weekday,
.innerg-mt-booking-calendar__strip-day.is-selected .innerg-mt-booking-calendar__strip-weekday {
	color: var(--accent);
}

@media (max-width: 767px) {
	.innerg-mt-booking-calendar__strip-day { min-inline-size: 3.5rem; padding: 0.45rem 0.3rem 0.6rem; }
	.innerg-mt-booking-calendar__strip-date { font-size: 0.88rem; }
}


.innerg-mt-booking-calendar__preview {
	position: absolute;
	z-index: 5;
	inset-inline-start: var(--innerg-mt-preview-x, 12px);
	inset-block-start: var(--innerg-mt-preview-y, 12px);
	inline-size: min(20rem, calc(100% - 1.5rem));
	box-sizing: border-box;
	padding: 1.1rem 2.8rem 1.1rem 1.15rem;
	border: 1px solid var(--border);
	border-inline-start: 3px solid var(--accent);
	background: var(--background);
	font-size: 1.05rem;
}

.innerg-mt-booking-calendar__preview strong,
.innerg-mt-booking-calendar__preview span {
	display: block;
}

.innerg-mt-booking-calendar__preview span {
	margin-block-start: 0.35rem;
	color: var(--muted-foreground);
}

.innerg-mt-booking-calendar__preview-close {
	position: absolute;
	inset-block-start: 0.6rem;
	inset-inline-end: 0.65rem;
	inline-size: 2rem;
	block-size: 2rem;
	border: 0;
	background: transparent;
	color: var(--foreground);
	font: inherit;
	font-size: 1.45rem;
	line-height: 1;
	cursor: pointer;
}

.innerg-mt-booking-calendar__preview-close:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.innerg-mt-booking-calendar__empty {
	padding: 2rem 1rem;
	background: var(--secondary);
	font-size: 1rem;
	text-align: center;
	color: var(--muted-foreground);
}

.innerg-booking-explorer__filters {
	display: grid;
	inline-size: 100%;
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-auto-flow: row;
	gap: 0.75rem;
}

.innerg-booking-explorer__filters > label {
	min-inline-size: 0;
	width: 100% !important;
	max-width: none !important;
	grid-column: span 1;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.innerg-booking-explorer__filters > label > span {
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
}

.innerg-booking-explorer__select,
.innerg-booking-explorer__pill {
	inline-size: 100%;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	min-block-size: 3.2rem;
	box-sizing: border-box;
	font-family: var(--font-sans);
	font-size: 1.05rem;
	line-height: 1.25;
}

.innerg-booking-explorer .innerg-booking-explorer__select {
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	padding-inline: 1rem 3.4rem !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m1 1 7 7 7-7' fill='none' stroke='%232B291A' stroke-width='1.5'/%3E%3C/svg%3E") !important;
	background-position: right 1.25rem center !important;
	background-repeat: no-repeat !important;
	background-size: 0.9rem auto !important;
}

.innerg-booking-explorer .innerg-booking-explorer__select option:checked,
.innerg-booking-explorer .innerg-booking-explorer__select option:hover {
	background: var(--accent);
	color: var(--background);
}

.innerg-booking-explorer__combobox {
	position: relative;
	width: 100%;
	min-width: 0;
}

.innerg-booking-explorer__combobox > input {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	background-color: var(--background) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m1 1 7 7 7-7' fill='none' stroke='%232B291A' stroke-width='1.5'/%3E%3C/svg%3E") !important;
	background-position: right 1.25rem center !important;
	background-repeat: no-repeat !important;
	background-size: 0.9rem auto !important;
	cursor: pointer;
}

.innerg-booking-explorer__combobox.is-open > input,
.innerg-booking-explorer__combobox > input:focus {
	border-color: var(--accent) !important;
	outline: 2px solid color-mix(in srgb, var(--accent) 25%, transparent);
}

.innerg-booking-explorer__combobox-options {
	position: absolute;
	z-index: 20;
	 inset-inline: 0;
	max-block-size: 15rem;
	overflow-y: auto;
	margin-block-start: 0.35rem;
	padding: 0.35rem;
	background: var(--background);
	border: 1px solid var(--foreground);
}

.innerg-booking-explorer__combobox-option {
	display: block;
	inline-size: 100%;
	padding: 0.65rem 0.8rem;
	border: 0;
	background: transparent;
	color: var(--foreground);
	font: inherit;
	text-align: start;
	cursor: pointer;
}

.innerg-booking-explorer__combobox-option:hover,
.innerg-booking-explorer__combobox-option[aria-selected="true"] {
	background: var(--accent);
	color: var(--background);
}

.innerg-booking-explorer__combobox-empty {
	display: block;
	padding: 0.65rem 0.8rem;
	color: var(--muted-foreground);
}

.innerg-booking-explorer__schedule-error {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-block: 1rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--accent);
	background: var(--background);
	color: var(--foreground);
}

.innerg-booking-explorer__schedule-error[hidden] { display: none; }

.innerg-booking-explorer__schedule-error button {
	flex: 0 0 auto;
	min-block-size: 2.75rem;
	padding-inline: 0.9rem;
	border: 1px solid var(--foreground);
	background: var(--foreground);
	color: var(--background);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.innerg-booking-explorer__pill-group {
	grid-column: 1 / -1;
	display: flex;
	inline-size: 100%;
	min-inline-size: 0;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.innerg-booking-explorer__pill-group .innerg-booking-explorer__pill {
	flex: 0 0 var(--innerg-mt-filter-pill-width, 10rem);
	inline-size: var(--innerg-mt-filter-pill-width, 10rem);
}

.innerg-mt-filter-measure {
	position: absolute;
	visibility: hidden;
	inline-size: max-content !important;
	padding-inline: 1rem !important;
	white-space: nowrap;
}

/*
 * Settings > Schedule & Features > Filter Display ("icon" mode). Inert
 * (no .innerg-mt-filters-icon class, wrapper never built) unless
 * booking-calendar.js's setupFilterDisplay() actually wraps the filters --
 * the default ("inline") behavior above is completely unaffected. Panel
 * deliberately has no overflow/max-block-size of its own (grows naturally,
 * page scrolls if needed) -- this codebase has already hit real iOS Safari
 * bugs from overflow:hidden/auto ancestors clipping native <select>
 * dropdowns and the instructor combobox's absolute-positioned options list
 * (see the .innerg-mt-is-touch rules below); a non-clipping panel sidesteps
 * that whole class of bug rather than needing its own workaround.
 */
.innerg-mt-filter-toggle {
	position: relative;
	display: none;
}

.innerg-booking-explorer.innerg-mt-filters-icon .innerg-mt-filter-toggle {
	display: block;
	margin-block-end: 1.25rem;
}

.innerg-mt-filter-toggle__button {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-block-size: 3.2rem;
	padding-inline: 1.15rem;
	border: 1px solid var(--border);
	border-radius: 0;
	background: var(--secondary);
	color: var(--foreground);
	font-family: var(--font-sans);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: border-color 180ms ease, color 180ms ease;
}

.innerg-mt-filter-toggle__button svg {
	inline-size: 1.15rem;
	block-size: 1.15rem;
	flex: 0 0 auto;
}

.innerg-mt-filter-toggle__button:hover,
.innerg-mt-filter-toggle__button:focus-visible,
.innerg-mt-filter-toggle__button[aria-expanded="true"],
.innerg-mt-filter-toggle__button.has-active-filters {
	border-color: var(--accent);
	color: var(--accent);
}

.innerg-mt-filter-toggle__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 1.35rem;
	block-size: 1.35rem;
	padding-inline: 0.3rem;
	border-radius: 50%;
	background: var(--accent);
	color: var(--background);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;
}

.innerg-mt-filter-toggle__count[hidden] { display: none; }

.innerg-mt-filter-toggle__panel {
	position: absolute;
	z-index: 30;
	inset-inline-start: 0;
	inset-block-start: calc(100% + 0.6rem);
	inline-size: min(28rem, 92vw);
	box-sizing: border-box;
	padding: 1.25rem;
	background: var(--background);
	border: 1px solid var(--foreground);
	box-shadow: 0 12px 32px color-mix(in srgb, var(--foreground) 18%, transparent);
}

.innerg-mt-filter-toggle__panel[hidden] { display: none; }

.innerg-mt-filters-icon .innerg-mt-filter-toggle__panel .innerg-booking-explorer__filters {
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 1rem;
}

.innerg-mt-filters-icon .innerg-mt-filter-toggle__panel .innerg-booking-explorer__filters > label,
.innerg-mt-filters-icon .innerg-mt-filter-toggle__panel .innerg-booking-explorer__pill-group {
	grid-column: 1 / -1;
}

.innerg-booking-explorer .innerg-mt-booking-card {
	display: grid !important;
	grid-template-columns: minmax(13rem, 1fr) minmax(0, 2fr) auto auto !important;
	align-items: center;
	gap: clamp(1rem, 2vw, 1.75rem);
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border: 1px solid var(--border);
	background: var(--secondary);
	border-radius: 0;
	transition: border-color 180ms ease, background-color 180ms ease;
}

.innerg-booking-explorer .innerg-mt-booking-card:hover {
	border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
	background: color-mix(in srgb, var(--secondary) 82%, var(--background));
}

.innerg-mt-booking-card__when-row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 0.8rem;
}

.innerg-mt-booking-card__when-row .innerg-booking-explorer__when {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
}

.innerg-mt-booking-card__date,
.innerg-mt-booking-card__duration {
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--muted-foreground);
}

.innerg-mt-booking-card__date {
	padding-inline-end: 0.8rem;
	border-inline-end: 1px solid var(--border);
	white-space: nowrap;
}

.innerg-mt-booking-card .innerg-booking-explorer__time {
	font-size: clamp(1.4rem, 2.2vw, 1.9rem);
}

.innerg-mt-booking-card .innerg-booking-explorer__class-name {
	margin: 0;
	font-family: var(--font-serif);
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1;
}

.innerg-mt-booking-card__class-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.innerg-booking-explorer .innerg-mt-booking-card .innerg-booking-explorer__tag {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0;
	border-radius: 0;
	background: transparent !important;
	color: var(--accent) !important;
	font-family: var(--font-sans);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.1875rem;
	line-height: 1.3;
	text-transform: uppercase;
}

.innerg-booking-explorer .innerg-mt-booking-card .innerg-booking-explorer__tag svg {
	inline-size: 1.05rem;
	block-size: 1.05rem;
	flex: 0 0 auto;
}

/* Only rendered when MarianaTek actually has a description for this class's
   type -- no placeholder/empty-state icon when one isn't available, same
   rule already used for instructor avatars. Sits inline inside
   .innerg-booking-explorer__class-name itself (a trailing character, not a
   sibling flex item) so it always wraps together with the title text --
   never orphans onto its own line on narrow viewports the way a flex-row
   sibling did. */
.innerg-mt-booking-card__info-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 1.3rem;
	block-size: 1.3rem;
	margin-inline-start: 0.5rem;
	vertical-align: middle;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, var(--foreground) 6%, transparent);
	color: var(--muted-foreground);
	cursor: pointer;
	flex: 0 0 auto;
	transition: background-color 150ms ease, color 150ms ease;
}

.innerg-mt-booking-card__info-icon svg {
	inline-size: 0.85rem;
	block-size: 0.85rem;
}

.innerg-mt-booking-card__info-icon:hover,
.innerg-mt-booking-card__info-icon:focus-visible {
	background: color-mix(in srgb, var(--accent) 16%, transparent);
	color: var(--accent);
	outline: none;
}

.innerg-mt-booking-card__instructor-row,
.innerg-mt-booking-card__studio-row {
	margin: 0.4rem 0 0;
	font-size: 0.98rem;
	line-height: 1.45;
}

.innerg-mt-booking-card__instructor-row {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
	text-align: start;
	font-weight: 700;
	color: var(--foreground);
}

/* Only rendered when MarianaTek (or a WP-local override) actually has a
   photo for the class's primary instructor -- no placeholder/initials
   when one isn't available, by design. */
.innerg-mt-booking-card__instructor-avatar {
	inline-size: 1.5rem;
	block-size: 1.5rem;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
}

.innerg-mt-booking-card__instructor-link {
	cursor: pointer;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--accent) 55%, transparent);
	text-underline-offset: 0.2em;
}

.innerg-mt-booking-card__instructor-link:hover,
.innerg-mt-booking-card__instructor-link:focus-visible {
	color: var(--accent);
}

.innerg-mt-modal-open { overflow: hidden; }

.innerg-mt-instructor-modal[hidden] { display: none; }

.innerg-mt-instructor-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 1.25rem;
}

.innerg-mt-instructor-modal__backdrop {
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--foreground) 62%, transparent);
	backdrop-filter: blur(5px);
}

.innerg-mt-instructor-modal__dialog {
	position: relative;
	display: grid;
	grid-template-columns: minmax(8rem, 13rem) minmax(0, 1fr);
	gap: 1.5rem;
	inline-size: min(100%, 42rem);
	max-block-size: min(90vh, 42rem);
	overflow: auto;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	border: 1px solid var(--border);
	background: var(--background);
	color: var(--foreground);
}

.innerg-mt-instructor-modal__close {
	position: absolute;
	top: 0.7rem;
	inset-inline-end: 0.85rem;
	border: 0;
	background: transparent;
	color: var(--foreground);
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer;
}

.innerg-mt-instructor-modal__photo {
	inline-size: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.innerg-mt-instructor-modal__eyebrow {
	margin: 0 0 0.55rem;
	color: var(--accent);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.innerg-mt-instructor-modal__copy h2 { margin: 0 0 0.8rem; font-family: var(--font-serif); font-size: clamp(1.8rem, 4vw, 2.8rem); }
.innerg-mt-instructor-modal__copy p { color: var(--muted-foreground); line-height: 1.65; }
.innerg-mt-instructor-modal__socials { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1rem; }
.innerg-mt-instructor-modal__socials a { color: var(--foreground); font-weight: 700; text-underline-offset: 0.2em; }
.innerg-mt-instructor-modal__gallery { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.65rem; }
.innerg-mt-instructor-modal__gallery img { inline-size: 100%; aspect-ratio: 1; object-fit: cover; }
.innerg-mt-instructor-modal__loading,
.innerg-mt-instructor-modal__error { grid-column: 1 / -1; color: var(--muted-foreground); }

.innerg-mt-class-info-modal[hidden] { display: none; }

.innerg-mt-class-info-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 1.25rem;
}

.innerg-mt-class-info-modal__backdrop {
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--foreground) 62%, transparent);
	backdrop-filter: blur(5px);
}

.innerg-mt-class-info-modal__dialog {
	position: relative;
	inline-size: min(100%, 30rem);
	max-block-size: min(90vh, 30rem);
	overflow: auto;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	border: 1px solid var(--border);
	background: var(--background);
	color: var(--foreground);
}

.innerg-mt-class-info-modal__close {
	position: absolute;
	top: 0.7rem;
	inset-inline-end: 0.85rem;
	border: 0;
	background: transparent;
	color: var(--foreground);
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer;
}

.innerg-mt-class-info-modal__eyebrow {
	margin: 0 0 0.55rem;
	color: var(--accent);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.innerg-mt-class-info-modal__content h2 { margin: 0 0 0.8rem; font-family: var(--font-serif); font-size: clamp(1.6rem, 4vw, 2.2rem); }
.innerg-mt-class-info-modal__content p:not(.innerg-mt-class-info-modal__eyebrow) { color: var(--muted-foreground); line-height: 1.65; white-space: pre-line; }

.innerg-mt-staff-extension__form { display: grid; gap: 1rem; margin-block-start: 1.25rem; }
.innerg-mt-staff-extension__form label { display: grid; gap: 0.4rem; color: var(--foreground); font-weight: 700; }
.innerg-mt-staff-extension__form input,
.innerg-mt-staff-extension__form textarea { inline-size: 100%; border: 1px solid var(--border); border-radius: 0; background: var(--background); color: var(--foreground); font: inherit; padding: 0.75rem 0.85rem; }
.innerg-mt-staff-extension__social-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.innerg-mt-staff-extension__feedback { margin: 0; }

.innerg-mt-booking-card__studio-row {
	color: var(--muted-foreground);
}

.innerg-mt-booking-card .innerg-booking-explorer__meta,
.innerg-mt-booking-card .innerg-booking-explorer__spots,
.innerg-mt-booking-card .innerg-booking-explorer__spots-label,
.innerg-mt-booking-card .innerg-booking-explorer__waitlist-open {
	font-size: 0.94rem;
}

.innerg-mt-booking-card .innerg-booking-explorer__action-btn {
	font-size: 0.9rem;
	padding: 0.8rem 1.2rem;
}

.innerg-mt-booking-card__spots-wrap {
	display: flex;
	align-items: center;
}

.innerg-mt-booking-card__spots-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 2.25rem;
	padding-inline: 0.8rem;
	border-radius: 0;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}

.innerg-mt-booking-card__spots-badge.is-good {
	background: color-mix(in srgb, var(--accent) 20%, var(--secondary));
	color: var(--foreground);
}

.innerg-mt-booking-card__spots-badge.is-medium {
	background: color-mix(in srgb, var(--foreground) 11%, var(--secondary));
	color: var(--foreground);
}

.innerg-mt-booking-card__spots-badge.is-low,
.innerg-mt-booking-card__spots-badge.is-none {
	background: color-mix(in srgb, var(--muted-foreground) 24%, var(--secondary));
	color: var(--foreground);
}

/* Settings > Schedule & Features > Show Booking Social Proof -- only shown
   for classes already at the "is-low" spots-badge threshold above, so it
   never appears without the numeric badge it's reinforcing. */
.innerg-mt-booking-card__urgency-note {
	color: var(--accent);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.innerg-mt-instructor-directory__header { max-inline-size: 42rem; margin-block-end: 2rem; }
.innerg-mt-instructor-directory__header h2 { margin-block: 0.35rem 0.75rem; }
.innerg-mt-instructor-directory__grid { display: grid; grid-template-columns: repeat(var(--innerg-mt-directory-columns, 3), minmax(0, 1fr)); gap: 1.25rem; }
.innerg-mt-instructor-directory__card { min-inline-size: 0; border: 1px solid var(--border); background: var(--secondary); }
.innerg-mt-instructor-directory__trigger { position: relative; display: block; inline-size: 100%; padding: 0; border: 0; background: transparent; color: var(--foreground); text-align: start; cursor: pointer; }
.innerg-mt-instructor-directory__portrait { display: block; aspect-ratio: 4 / 5; background: var(--muted); overflow: hidden; }
.innerg-mt-instructor-directory__portrait img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.innerg-mt-instructor-directory__initials { display: grid; place-items: center; inline-size: 100%; block-size: 100%; color: var(--foreground); font-family: var(--font-serif); font-size: clamp(3rem, 8vw, 5rem); }
.innerg-mt-instructor-directory__summary { position: absolute; inset-inline: 1rem; inset-block-end: 1rem; display: grid; gap: 0.25rem; padding: 0.75rem; background: color-mix(in srgb, var(--background) 88%, transparent); }
.innerg-mt-instructor-directory__name { font-family: var(--font-serif); font-size: 1.35rem; }
.innerg-mt-instructor-directory__title { color: var(--muted-foreground); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }
.innerg-mt-instructor-directory__body { display: grid; gap: 0.8rem; padding: 1.1rem; }
.innerg-mt-instructor-directory__body p { margin: 0; color: var(--muted-foreground); line-height: 1.55; }
.innerg-mt-instructor-directory__discipline { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.innerg-mt-instructor-directory__discipline span { padding: 0.25rem 0.45rem; border: 1px solid var(--border); color: var(--accent); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.innerg-mt-instructor-directory__modal[hidden] { display: none; }
.innerg-mt-instructor-directory__modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 1rem; }
.innerg-mt-instructor-directory__modal-backdrop { position: absolute; inset: 0; background: color-mix(in srgb, var(--foreground) 62%, transparent); backdrop-filter: blur(5px); }
.innerg-mt-instructor-directory__modal-dialog { position: relative; inline-size: min(100%, 38rem); max-block-size: 90vh; overflow: auto; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--border); background: var(--background); color: var(--foreground); }
.innerg-mt-instructor-directory__modal-close { position: absolute; inset-block-start: 0.65rem; inset-inline-end: 0.8rem; border: 0; background: transparent; color: var(--foreground); font-size: 1.8rem; cursor: pointer; }
.innerg-mt-instructor-directory__modal-dialog h3 { margin: 0 0 0.75rem; font-family: var(--font-serif); font-size: clamp(1.8rem, 5vw, 2.7rem); }
.innerg-mt-instructor-directory__modal-title { margin-block-start: -0.35rem; color: var(--accent) !important; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.innerg-mt-instructor-directory__modal-dialog > p { color: var(--muted-foreground); line-height: 1.65; }
.innerg-mt-instructor-directory__modal-label { margin-block-start: 1.5rem; color: var(--accent) !important; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.innerg-mt-instructor-directory__sessions { display: grid; gap: 0.65rem; }
.innerg-mt-instructor-directory__sessions a { display: grid; gap: 0.2rem; padding: 0.8rem; border-block-start: 1px solid var(--border); color: var(--foreground); text-decoration: none; }
.innerg-mt-instructor-directory__sessions a span { color: var(--muted-foreground); font-size: 0.9rem; }
.innerg-mt-instructor-directory__socials { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block: 1rem; }
.innerg-mt-instructor-directory__socials a { color: var(--foreground); font-weight: 700; text-underline-offset: 0.2em; }
.innerg-mt-instructor-directory__card[hidden] { display: none; }
.innerg-mt-instructor-directory__pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-block-start: 2rem; }
.innerg-mt-instructor-directory__pagination button { min-inline-size: 6rem; padding: 0.65rem 0.8rem; border: 1px solid var(--border); border-radius: 0; background: transparent; color: var(--foreground); font: inherit; cursor: pointer; }
.innerg-mt-instructor-directory__pagination button:hover:not(:disabled),
.innerg-mt-instructor-directory__pagination button:focus-visible:not(:disabled) { border-color: var(--accent); color: var(--accent); }
.innerg-mt-instructor-directory__pagination button:disabled { opacity: 0.45; cursor: not-allowed; }
.innerg-mt-instructor-directory__pagination span { min-inline-size: 3rem; color: var(--muted-foreground); text-align: center; }

@media (max-width: 767px) {
	.innerg-booking-explorer__filters { grid-template-columns: minmax(0, 1fr) !important; }
	.innerg-booking-explorer__filters > label { grid-column: 1 / -1; }
	.innerg-booking-explorer__pill-group { grid-column: 1 / -1; }
	.innerg-mt-booking-calendar__toolbar { grid-template-columns: auto 1fr auto; }
	.innerg-mt-booking-calendar__toolbar [data-calendar-today] { display: none; }
	.innerg-mt-booking-calendar__day { min-block-size: 2.65rem; font-size: 0.95rem; }
	.innerg-mt-booking-calendar__day .count { top: 2px; inset-inline-end: 2px; font-size: 8px; }
	.innerg-mt-booking-calendar__preview { inset-inline-start: 0.75rem; inline-size: calc(100% - 1.5rem); font-size: 1rem; }
	.innerg-booking-explorer .innerg-mt-booking-card { display: grid !important; grid-template-columns: 1fr !important; align-items: stretch; gap: 1rem; padding: 1.15rem; }
	.innerg-mt-booking-card__when-row,
	.innerg-mt-booking-card .innerg-booking-explorer__who,
	.innerg-mt-booking-card .innerg-booking-explorer__spots-wrap,
	.innerg-mt-booking-card .innerg-booking-explorer__action-btn { grid-column: 1; }
	.innerg-mt-booking-card__when-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0.75rem; padding-block-end: 0.9rem; border-block-end: 1px solid var(--border); }
	.innerg-mt-booking-card__when-row .innerg-booking-explorer__when { display: flex; align-items: baseline; justify-content: flex-end; gap: 0.55rem; }
	.innerg-mt-booking-card__date { padding-inline-end: 0.75rem; }
	.innerg-mt-booking-card .innerg-booking-explorer__who { padding-block-start: 0; border-block-start: 0; }
	.innerg-mt-booking-card .innerg-booking-explorer__spots-wrap { display: flex; align-items: baseline; gap: 0.4rem; }
	.innerg-mt-booking-card .innerg-booking-explorer__action-btn { inline-size: 100%; margin-block-start: 0.25rem; }
	.innerg-mt-instructor-modal { padding: 0.75rem; }
	.innerg-mt-instructor-modal__dialog { grid-template-columns: 1fr; gap: 1rem; max-block-size: 92vh; padding: 1.25rem; }
	.innerg-mt-instructor-modal__photo { max-inline-size: 12rem; }
	.innerg-mt-instructor-modal__gallery { grid-column: auto; }
	.innerg-mt-staff-extension__social-grid { grid-template-columns: 1fr; }
}

/*
 * Restores native <select> rendering on touch devices, where the custom
 * appearance:none + SVG-arrow styling above is known to leave iOS Safari's
 * native picker unresponsive/blank even though the <select> is fully
 * populated (Android's own select UI isn't affected by this, which is why
 * this only ever surfaces on iPhone). Matched two ways on purpose: the
 * media query covers the common case, and the .innerg-mt-is-touch class
 * (set in booking-calendar.js via the same touch check already used for
 * the instructor combobox) is a belt-and-braces fallback for devices where
 * (hover: none) and (pointer: coarse) doesn't evaluate the way the JS-side
 * touch detection does.
 */
.innerg-booking-explorer.innerg-mt-is-touch .innerg-booking-explorer__select {
	appearance: auto !important;
	-webkit-appearance: auto !important;
	-moz-appearance: auto !important;
	min-block-size: 44px;
	padding-inline: 0.85rem !important;
	background-image: none !important;
}

@media (hover: none) and (pointer: coarse) {
	.innerg-booking-explorer .innerg-booking-explorer__select {
		appearance: auto !important;
		-webkit-appearance: auto !important;
		-moz-appearance: auto !important;
		min-block-size: 44px;
		padding-inline: 0.85rem !important;
		background-image: none !important;
	}

	.innerg-booking-explorer__filters,
	.innerg-booking-explorer__filters > label,
	.innerg-booking-explorer__combobox {
		overflow: visible;
	}

	.innerg-booking-explorer__combobox-options { z-index: 1000; }
	.innerg-booking-explorer__schedule-error { align-items: stretch; flex-direction: column; }
	.innerg-booking-explorer__schedule-error button { inline-size: 100%; }
}

.innerg-booking-explorer.innerg-mt-is-touch .innerg-booking-explorer__filters,
.innerg-booking-explorer.innerg-mt-is-touch .innerg-booking-explorer__filters > label,
.innerg-booking-explorer.innerg-mt-is-touch .innerg-booking-explorer__combobox {
	overflow: visible;
}

.innerg-mt-booking-layout__spot.is-unavailable {
	opacity: 0.4;
	cursor: not-allowed;
}

@media (max-width: 767px) {
	.innerg-mt-instructor-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
	.innerg-mt-instructor-directory__body { padding: 0.85rem; }
}

@media (max-width: 480px) {
	.innerg-mt-instructor-directory__grid { grid-template-columns: 1fr; }
}

.innerg-mt-commerce__header { max-inline-size: 44rem; margin-block-end: 2rem; }
.innerg-mt-commerce__header h2 { margin-block: 0.35rem 0.75rem; }
.innerg-mt-commerce__header > p:last-child { color: var(--muted-foreground); line-height: 1.6; }
.innerg-mt-commerce__sections { display: grid; gap: 2.5rem; }
.innerg-mt-commerce__section { display: grid; gap: 1rem; }
.innerg-mt-commerce__section h3 { margin: 0; font-family: var(--font-serif); font-size: clamp(1.55rem, 3vw, 2.2rem); }
.innerg-mt-commerce__section > p { margin: 0; color: var(--muted-foreground); }
.innerg-mt-commerce__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.innerg-mt-commerce__card { display: flex; flex-direction: column; gap: 0.8rem; min-block-size: 13rem; padding: 1.4rem; border: 1px solid var(--border); background: var(--secondary); }
.innerg-mt-commerce__card h4 { margin: 0; font-family: var(--font-serif); font-size: 1.45rem; }
.innerg-mt-commerce__card p { margin: 0; color: var(--muted-foreground); line-height: 1.55; }
.innerg-mt-commerce__price { color: var(--foreground); font-size: 1.35rem; }
.innerg-mt-commerce__price span, .innerg-mt-commerce__meta { color: var(--muted-foreground); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }
.innerg-mt-commerce__card .innerg-mt-button, .innerg-mt-commerce__card .innerg-mt-commerce__unavailable { align-self: flex-start; margin-block-start: auto; text-decoration: none; }
.innerg-mt-commerce__state { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--border); background: var(--secondary); }
.innerg-mt-commerce__state h3 { margin-block: 0 0.5rem; font-family: var(--font-serif); font-size: 1.65rem; }
.innerg-mt-commerce__state p { margin: 0; color: var(--muted-foreground); line-height: 1.6; }
.innerg-mt-commerce__state--error { border-color: var(--accent); }
.innerg-mt-commerce__state--error .innerg-mt-button { margin-block-start: 1rem; }
.innerg-mt-commerce__unavailable { align-self: end; color: var(--muted-foreground); font-size: 0.85rem; }
.innerg-mt-commerce-modal-open { overflow: hidden; }
.innerg-mt-commerce__web-modal { position: fixed; z-index: 100000; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgb(0 0 0 / 58%); backdrop-filter: blur(8px); }
.innerg-mt-commerce__web-modal.is-closed { visibility: hidden; opacity: 0; pointer-events: none; }
.innerg-mt-commerce__web-dialog { display: grid; grid-template-rows: auto minmax(0, 1fr); inline-size: min(64rem, 100%); max-block-size: min(90vh, 54rem); overflow: hidden; border: 1px solid var(--border); background: var(--background); }
.innerg-mt-commerce__web-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-block-end: 1px solid var(--border); background: var(--secondary); }
.innerg-mt-commerce__web-header h3 { margin: 0; font-family: var(--font-serif); font-size: 1.35rem; }
.innerg-mt-commerce__web-header .innerg-mt-button { margin: 0; }
.innerg-mt-commerce__web-content { min-block-size: 20rem; overflow: auto; padding: 0.5rem; background: var(--background); }

.innerg-mt-welcome {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35rem;
	max-inline-size: 100%;
	color: var(--foreground);
	font-family: var(--font-sans);
	font-size: 0.9rem;
	line-height: 1.35;
	white-space: nowrap;
}
.innerg-mt-welcome__greeting { color: var(--muted-foreground); }
.innerg-mt-welcome__name { overflow: hidden; font-weight: 700; text-overflow: ellipsis; }
.innerg-mt-welcome--ar { direction: rtl; }
@media (max-width: 640px) {
	.innerg-mt-welcome { font-size: 0.82rem; }
}

@media (max-width: 640px) {
	.innerg-mt-commerce__web-modal { padding: 0; }
	.innerg-mt-commerce__web-dialog { max-block-size: 100vh; block-size: 100%; }
	.innerg-mt-commerce__web-header { padding: 0.85rem 1rem; }
}

@media (max-width: 900px) {
	.innerg-mt-commerce__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.innerg-mt-commerce__grid { grid-template-columns: 1fr; }
	.innerg-mt-commerce__card { min-block-size: auto; padding: 1.15rem; }
	.innerg-mt-commerce__card .innerg-mt-button { inline-size: 100%; justify-self: stretch; text-align: center; }
}
