.calendarwp-scheduler-public-page {
	background: #f6f4ef;
	color: #1f252c;
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	margin: 0;
}

.calendarwp-scheduler-public {
	box-sizing: border-box;
	margin: 0 auto;
	max-width: min(1480px, calc(100vw - 48px));
	min-height: 100vh;
	padding: clamp(18px, 3vw, 42px) 18px;
}

.calendarwp-scheduler-public *,
.calendarwp-scheduler-public *::before,
.calendarwp-scheduler-public *::after {
	box-sizing: border-box;
}

.calendarwp-scheduler-public [hidden] {
	display: none !important;
}

.calendarwp-scheduler-booking-card,
.calendarwp-scheduler-confirmation,
.calendarwp-scheduler-message-card {
	background: #fff;
	border: 1px solid #dedbd4;
	border-radius: 24px;
	box-shadow: 0 20px 60px rgba(31, 37, 44, 0.08);
}

.calendarwp-scheduler-booking-card {
	display: grid;
	grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.15fr);
	overflow: hidden;
}

.calendarwp-scheduler-booking-card__summary,
.calendarwp-scheduler-booking-card__form {
	padding: clamp(28px, 4vw, 48px);
}

.calendarwp-scheduler-booking-card__summary {
	background:
		radial-gradient(circle at 0 0, rgba(126, 177, 221, 0.18), transparent 34%),
		linear-gradient(180deg, #fff, #fbfaf7);
	border-right: 1px solid #e7e3dc;
}

.calendarwp-scheduler-eyebrow {
	color: #0b776b;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin: 0 0 12px;
	text-transform: uppercase;
}

.calendarwp-scheduler-booking-card h1,
.calendarwp-scheduler-confirmation h1,
.calendarwp-scheduler-message-card h1 {
	color: #171c22;
	font-size: clamp(2rem, 5vw, 3.4rem);
	line-height: 1.02;
	margin: 0 0 20px;
}

.calendarwp-scheduler-description {
	color: #566271;
	font-size: 1.05rem;
	line-height: 1.6;
	margin: 0 0 24px;
}

.calendarwp-scheduler-description p {
	margin: 0 0 12px;
}

.calendarwp-scheduler-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 24px;
}

.calendarwp-scheduler-meta > span {
	align-items: center;
	background: #eef7ff;
	border: 1px solid #b7d6f0;
	border-radius: 999px;
	color: #075f8a;
	display: inline-flex;
	font-size: 0.86rem;
	font-weight: 800;
	gap: 6px;
	padding: 7px 12px;
}

.calendarwp-scheduler-meta__price {
	background: #f7f3ff !important;
	border-color: #9a86c8 !important;
	color: #7d6ab1 !important;
}

.calendarwp-scheduler-icon {
	display: inline-block;
	fill: none;
	flex: 0 0 auto;
	height: 1em;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 20;
	width: 1em;
}

.calendarwp-scheduler-form {
	display: grid;
	gap: 26px;
}

.calendarwp-scheduler-slots {
	border: 0;
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
}

.calendarwp-scheduler-slots legend {
	color: #171c22;
	font-size: 1.05rem;
	font-weight: 800;
	margin-bottom: 12px;
	padding: 0;
}

.calendarwp-scheduler-slot {
	align-items: center;
	border: 1px solid #d9e6f2;
	border-radius: 16px;
	cursor: pointer;
	display: flex;
	gap: 12px;
	padding: 13px 14px;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.calendarwp-scheduler-slot:has(input:checked) {
	background: #eef7ff;
	border-color: #78b4e8;
	box-shadow: 0 0 0 3px rgba(120, 180, 232, 0.18);
}

.calendarwp-scheduler-slot:hover {
	border-color: #78b4e8;
	transform: translateY(-1px);
}

.calendarwp-scheduler-slot input {
	accent-color: #0b7db3;
	flex: 0 0 auto;
}

.calendarwp-scheduler-slot span {
	display: grid;
	gap: 3px;
}

.calendarwp-scheduler-slot strong {
	color: #1f252c;
	font-size: 0.98rem;
}

.calendarwp-scheduler-slot small {
	color: #5f6c7b;
	font-size: 0.92rem;
}

.calendarwp-scheduler-fields {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.calendarwp-scheduler-fields label {
	display: grid;
	gap: 8px;
}

.calendarwp-scheduler-fields label:nth-child(3) {
	grid-column: 1 / -1;
}

.calendarwp-scheduler-fields span {
	color: #1f252c;
	font-size: 0.95rem;
	font-weight: 800;
}

.calendarwp-scheduler-fields input,
.calendarwp-scheduler-guest-row input {
	background: #fff;
	border: 1px solid #d6dce2;
	border-radius: 14px;
	color: #171c22;
	font: inherit;
	min-height: 50px;
	padding: 10px 14px;
	width: 100%;
}

.calendarwp-scheduler-fields input:focus,
.calendarwp-scheduler-guest-row input:focus {
	border-color: #78b4e8;
	box-shadow: 0 0 0 4px rgba(120, 180, 232, 0.2);
	outline: none;
}

.calendarwp-scheduler-submit,
.calendarwp-scheduler-back-link {
	align-items: center;
	background: #087daf;
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 800;
	justify-content: center;
	min-height: 54px;
	padding: 14px 24px;
	text-decoration: none;
	text-transform: none;
}

.calendarwp-scheduler-submit:hover,
.calendarwp-scheduler-back-link:hover {
	background: #05658f;
	color: #fff;
}

.calendarwp-scheduler-back-link--secondary {
	background: #eef7ff;
	color: #075f8a;
}

.calendarwp-scheduler-back-link--secondary:hover {
	background: #dbeefd;
	color: #075f8a;
}

.calendarwp-scheduler-back-link--danger {
	background: #fff1f1;
	color: #b42318;
}

.calendarwp-scheduler-back-link--danger:hover {
	background: #ffdede;
	color: #8f1e15;
}

.calendarwp-scheduler-back-link--disabled,
.calendarwp-scheduler-back-link--disabled:hover {
	cursor: default;
	opacity: 0.8;
	pointer-events: none;
}

.calendarwp-scheduler-notice {
	border-radius: 14px;
	font-weight: 700;
	padding: 12px 14px;
}

.calendarwp-scheduler-notice--error {
	background: #fff4f2;
	border: 1px solid #ffc3bb;
	color: #9f2b1f;
}

.calendarwp-scheduler-message-card,
.calendarwp-scheduler-confirmation {
	margin: 0 auto;
	max-width: 720px;
	padding: clamp(28px, 5vw, 56px);
	text-align: center;
}

.calendarwp-scheduler-message-card p,
.calendarwp-scheduler-confirmation p {
	color: #5f6c7b;
	font-size: 1.08rem;
	line-height: 1.55;
	margin: 0;
}

.calendarwp-scheduler-message-actions {
	margin: 24px auto 0;
	text-align: center;
}

.calendarwp-scheduler-check {
	align-items: center;
	background: #e5f7ec;
	border-radius: 999px;
	color: #2f9b57;
	display: inline-flex;
	font-size: 3rem;
	font-weight: 900;
	height: 88px;
	justify-content: center;
	margin-bottom: 24px;
	width: 88px;
}

.calendarwp-scheduler-confirmation__details {
	background: #f8fafb;
	border: 1px solid #e0e5ea;
	border-radius: 18px;
	margin: 28px 0;
	padding: 24px;
	text-align: left;
}

.calendarwp-scheduler-confirmation__details h2 {
	font-size: 1.35rem;
	margin: 0 0 16px;
}

.calendarwp-scheduler-confirmation__details p {
	color: #1f252c;
	margin: 8px 0;
}

.calendarwp-scheduler-confirmation__summary-list {
	display: grid;
	gap: 10px;
	margin-top: 18px;
}

.calendarwp-scheduler-confirmation__summary-list > div {
	align-items: center;
	border-bottom: 1px solid #e7edf2;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 0 0 10px;
}

.calendarwp-scheduler-confirmation__summary-list > div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.calendarwp-scheduler-confirmation__summary-list span,
.calendarwp-scheduler-confirmation__attendees h3 {
	color: #667382;
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.calendarwp-scheduler-confirmation .calendarwp-scheduler-confirmation__attendees h3 {
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.calendarwp-scheduler-confirmation__summary-list strong {
	color: #1f252c;
	font-size: 1rem;
	font-weight: 600;
	text-align: right;
}

.calendarwp-scheduler-confirmation__attendees {
	border-top: 1px solid #e7edf2;
	margin-top: 20px;
	padding-top: 20px;
}

.calendarwp-scheduler-confirmation__attendees h3 {
	margin: 0 0 12px;
}

.calendarwp-scheduler-confirmation__attendees ul {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.calendarwp-scheduler-confirmation__attendees li {
	background: #fff;
	border: 1px solid #e3e8ee;
	border-radius: 12px;
	padding: 12px 14px;
}

.calendarwp-scheduler-confirmation__attendees li strong,
.calendarwp-scheduler-confirmation__attendees li span {
	display: block;
}

.calendarwp-scheduler-confirmation__attendees li strong {
	color: #1f252c;
	font-size: 0.98rem;
	font-weight: 600;
}

.calendarwp-scheduler-confirmation__attendees li span {
	color: #667382;
	font-size: 0.92rem;
	margin-top: 2px;
}

.calendarwp-scheduler-confirmation__actions {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.calendarwp-scheduler-calendar-menu {
	position: relative;
}

.calendarwp-scheduler-calendar-menu summary {
	list-style: none;
}

.calendarwp-scheduler-calendar-menu summary::-webkit-details-marker {
	display: none;
}

.calendarwp-scheduler-calendar-menu__options {
	background: #fff;
	border: 1px solid #d6dce2;
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(31, 37, 44, 0.14);
	display: grid;
	gap: 4px;
	left: 50%;
	margin-top: 10px;
	min-width: 240px;
	padding: 8px;
	position: absolute;
	top: 100%;
	transform: translateX(-50%);
	z-index: 20;
}

.calendarwp-scheduler-calendar-menu:not([open]) .calendarwp-scheduler-calendar-menu__options {
	display: none;
}

.calendarwp-scheduler-calendar-menu__options a {
	border-radius: 10px;
	color: #1f252c;
	font-size: 0.95rem;
	font-weight: 600;
	padding: 10px 12px;
	text-align: left;
	text-decoration: none;
}

.calendarwp-scheduler-calendar-menu__options a:hover {
	background: #eef7ff;
	color: #075f8a;
}

.calendarwp-scheduler-availability-widget {
	--calendarwp-scheduler-border: #d6dce2;
	--calendarwp-scheduler-muted: #5f6c7b;
	--calendarwp-scheduler-surface: #fff;
	--calendarwp-scheduler-wash: #f8fafb;
	box-sizing: border-box;
	color: #1f252c;
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	margin: 0 auto;
	max-width: 1180px;
}

.calendarwp-scheduler-availability-widget *,
.calendarwp-scheduler-availability-widget *::before,
.calendarwp-scheduler-availability-widget *::after {
	box-sizing: border-box;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-panel {
	background: #fff;
	border: 1px solid var(--calendarwp-scheduler-border);
	border-radius: 22px;
	box-shadow: 0 18px 50px rgba(31, 37, 44, 0.08);
	padding: clamp(22px, 4vw, 34px);
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-panel__header,
.calendarwp-scheduler-availability-widget .calendarwp-scheduler-availability-preferences,
.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-rule,
.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-slot,
.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-slot__actions {
	align-items: center;
	display: flex;
	gap: 16px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-panel__header {
	justify-content: space-between;
	margin-bottom: 26px;
}

.calendarwp-scheduler-availability-widget h2 {
	color: #171c22;
	font-size: clamp(1.6rem, 4vw, 2.4rem);
	line-height: 1.08;
	margin: 0;
}

.calendarwp-scheduler-availability-widget p {
	color: var(--calendarwp-scheduler-muted);
	margin: 8px 0 0;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-availability-preferences {
	align-items: flex-end;
	flex-wrap: wrap;
	margin-bottom: 24px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-field,
.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-slot label {
	display: grid;
	gap: 7px;
}

.calendarwp-scheduler-availability-widget label span,
.calendarwp-scheduler-availability-widget .calendarwp-scheduler-field label {
	color: #1f252c;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.calendarwp-scheduler-availability-widget input[type="time"],
.calendarwp-scheduler-availability-widget select {
	background: #fff;
	border: 1px solid var(--calendarwp-scheduler-border);
	border-radius: 14px;
	color: #1f252c;
	font: inherit;
	min-height: 48px;
	padding: 8px 13px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-rules {
	display: grid;
	gap: 14px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-rule {
	background: var(--calendarwp-scheduler-wash);
	border: 1px solid var(--calendarwp-scheduler-border);
	border-radius: 18px;
	display: grid;
	grid-template-columns: minmax(150px, 0.45fr) minmax(320px, 1fr) auto;
	padding: 16px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-rule__day {
	align-items: center;
	display: flex;
	gap: 10px;
	position: relative;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-rule__label {
	font-size: 1rem;
	letter-spacing: 0;
	text-transform: none;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-day-toggle__input {
	height: 1px;
	margin: 0;
	opacity: 0;
	position: absolute;
	width: 1px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-day-toggle {
	background: #fff;
	border: 1px solid #8c8f94;
	border-radius: 999px;
	display: inline-flex;
	flex: 0 0 auto;
	height: 16px;
	position: relative;
	transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
	width: 32px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-day-toggle::after {
	background: #1d2327;
	border-radius: 999px;
	content: "";
	height: 12px;
	left: 1px;
	position: absolute;
	top: 1px;
	transition: transform 160ms ease;
	width: 12px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-day-toggle__input:checked + .calendarwp-scheduler-day-toggle {
	background: #0085ba;
	border-color: #0085ba;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-day-toggle__input:checked + .calendarwp-scheduler-day-toggle::after {
	background: #fff;
	transform: translateX(16px);
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-day-toggle__input:focus-visible + .calendarwp-scheduler-day-toggle {
	box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(0, 124, 186, 0.28);
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-rule__slots {
	display: grid;
	gap: 10px;
}

.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-slot {
	align-items: end;
	justify-content: flex-start;
}

.calendarwp-scheduler-button,
.calendarwp-scheduler-availability-widget .button {
	align-items: center;
	background: #fff;
	border: 1px solid #0b72b9;
	border-radius: 6px;
	color: #0b65a4;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	min-height: 40px;
	padding: 8px 16px;
	text-decoration: none;
}

.calendarwp-scheduler-button--primary {
	background: #087daf;
	border-color: #087daf;
	color: #fff;
}

.calendarwp-scheduler-button--danger,
.calendarwp-scheduler-availability-widget .button-link-delete {
	border-color: #d63638;
	color: #d63638;
}

.calendarwp-scheduler-booking-card--compact {
	border-color: #ebe8e1;
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(31, 37, 44, 0.08);
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	grid-template-columns: 320px minmax(0, 670px);
	margin: 0 auto;
	max-width: 990px;
	min-height: 600px;
}

.calendarwp-scheduler-booking-card--compact .calendarwp-scheduler-booking-card__summary {
	background: #fff;
	border-right: 1px solid #ebe8e1;
	padding: 32px;
}

.calendarwp-scheduler-booking-card--compact .calendarwp-scheduler-booking-card__form {
	padding: 0;
}

.calendarwp-scheduler-brand {
	color: #3d3d3d;
	font-family: ui-rounded, "Arial Rounded MT Bold", "Segoe UI", sans-serif;
	font-size: clamp(1.85rem, 2.8vw, 2.45rem);
	font-weight: 900;
	line-height: 1;
	margin: 0 0 22px;
}

.calendarwp-scheduler-brand--logo {
	align-items: center;
	display: flex;
	font-size: 0;
	min-height: 48px;
}

.calendarwp-scheduler-brand--logo img {
	display: block;
	height: auto;
	max-height: 56px;
	max-width: min(100%, 220px);
	object-fit: contain;
}

.calendarwp-scheduler-booking-card--compact h1 {
	color: #3b3b3a;
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 28px;
	margin-bottom: 12px;
}

.calendarwp-scheduler-booking-card--compact h2,
.calendarwp-scheduler-booking-card--compact h3 {
	color: #333;
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	letter-spacing: 0;
}

.calendarwp-scheduler-description {
	font-size: 0.88rem;
	line-height: 1.45;
	margin-top: 14px;
}

.calendarwp-scheduler-meta {
	gap: 7px;
	margin-top: 12px;
}

.calendarwp-scheduler-meta > span {
	border-radius: 999px;
	border-width: 1px;
	font-size: 12px;
	font-weight: 600;
	gap: 6px;
	letter-spacing: 0.03em;
	line-height: 16px;
	min-height: 24px;
	padding: 5px 10px;
	text-transform: uppercase;
}

.calendarwp-scheduler-meta__duration {
	background: #f3fbf0 !important;
	border-color: #7cb86c !important;
	color: #6aa455 !important;
}

.calendarwp-scheduler-meta__location {
	background: #eef7ff !important;
	border-color: #9ec4ea !important;
	color: #82add9 !important;
}

.calendarwp-scheduler-meta__price {
	background: #f7f3ff !important;
	border-color: #9a86c8 !important;
	color: #7d6ab1 !important;
}

.calendarwp-scheduler-back-control {
	align-items: center;
	color: #3b3b3a;
	display: inline-flex;
	font-size: 14px;
	font-weight: 500;
	gap: 10px;
	line-height: 20px;
	margin-bottom: 24px;
	padding: 8px 14px;
	border-radius: 999px;
	text-decoration: none;
	transition: background-color 140ms ease, color 140ms ease;
}

.calendarwp-scheduler-back-control:hover,
.calendarwp-scheduler-back-control:focus-visible {
	background: #f3f9fd;
	color: #3b3b3a;
	outline: none;
}

.calendarwp-scheduler-selected-summary {
	color: #67737e;
	display: grid;
	font-size: 14px;
	font-weight: 400;
	gap: 8px;
	line-height: 20px;
	margin-top: 16px;
}

.calendarwp-scheduler-selected-summary p {
	align-items: flex-start;
	display: flex;
	gap: 10px;
	margin: 0;
}

.calendarwp-scheduler-selected-summary span {
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
}

.calendarwp-scheduler-selected-summary__datetime {
	display: grid;
	gap: 0;
}

.calendarwp-scheduler-selected-summary .calendarwp-scheduler-icon {
	color: #67737e;
	height: 18px;
	margin-top: 1px;
	stroke-width: 18;
	width: 18px;
}

.calendarwp-scheduler-host {
	align-items: center;
	color: #30343a;
	display: flex;
	gap: 14px;
	margin-top: 28px;
}

.calendarwp-scheduler-host__avatar {
	background: #d5d6d8;
	border-radius: 999px;
	display: block;
	flex: 0 0 auto;
	height: 56px;
	overflow: hidden;
	width: 56px;
}

.calendarwp-scheduler-host__avatar img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: var(--calendarwp-host-image-x, 50%) var(--calendarwp-host-image-y, 50%);
	transform: scale(var(--calendarwp-host-image-zoom, 1));
	transform-origin: var(--calendarwp-host-image-x, 50%) var(--calendarwp-host-image-y, 50%);
	width: 100%;
}

.calendarwp-scheduler-host > div > span {
	color: #7a8490;
	display: block;
	font-size: 0.74rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	line-height: 1;
	margin-bottom: 5px;
	text-transform: uppercase;
}

.calendarwp-scheduler-host strong {
	display: block;
	font-size: 18px;
	line-height: 24px;
}

.calendarwp-scheduler-form,
.calendarwp-scheduler-step {
	min-height: 100%;
}

.calendarwp-scheduler-step {
	display: none;
}

.calendarwp-scheduler-step--active {
	display: grid;
}

.calendarwp-scheduler-step[data-step="calendar"] {
	grid-template-columns: 420px 220px;
	min-height: 600px;
}

.calendarwp-scheduler-calendar-pane,
.calendarwp-scheduler-details-pane {
	padding: 32px;
}

.calendarwp-scheduler-times-pane {
	border-left: 1px solid #ebe8e1;
	padding: 32px;
}

.calendarwp-scheduler-step-heading h2,
.calendarwp-scheduler-details-pane h2 {
	color: #3b3b3a;
	font-size: 18px;
	font-weight: 600;
	line-height: 28px;
	margin: 0 0 18px;
}

.calendarwp-scheduler-details-pane > h2 {
	color: #3b3b3a;
	font-size: 18px;
	font-weight: 600;
	line-height: 28px;
}

.calendarwp-scheduler-calendar__header {
	align-items: center;
	display: grid;
	grid-template-columns: 32px 1fr 32px;
	margin-bottom: 14px;
}

.calendarwp-scheduler-calendar__header h3 {
	font-size: 18px;
	font-weight: 500;
	line-height: 28px;
	margin: 0;
	text-align: center;
}

.calendarwp-scheduler-icon-button {
	align-items: center;
	background: #faf9f7;
	border: 0;
	border-radius: 999px;
	color: transparent;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0;
	height: 32px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: relative;
	width: 32px;
}

.calendarwp-scheduler-icon-button::before {
	border-bottom: 2px solid #4a4a4a;
	border-right: 2px solid #4a4a4a;
	content: "";
	height: 9px;
	left: 50%;
	position: absolute;
	top: 50%;
	width: 9px;
}

.calendarwp-scheduler-icon-button[data-role="prev-month"]::before {
	transform: translate(-40%, -50%) rotate(135deg);
}

.calendarwp-scheduler-icon-button[data-role="next-month"]::before {
	transform: translate(-60%, -50%) rotate(-45deg);
}

.calendarwp-scheduler-calendar__weekdays,
.calendarwp-scheduler-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
	text-align: center;
	width: 355px;
}

.calendarwp-scheduler-calendar__weekdays {
	color: #707984;
	font-size: 0.68rem;
	font-weight: 850;
	gap: 0;
	margin-bottom: 12px;
}

.calendarwp-scheduler-calendar__grid {
	column-gap: 0;
	row-gap: 15px;
}

.calendarwp-scheduler-calendar-day {
	align-items: center;
	aspect-ratio: 1;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 999px;
	color: #a9afb6;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0.84rem;
	font-weight: 500;
	justify-content: center;
	justify-self: center;
	height: 40px;
	min-width: 0;
	padding: 0;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
	width: 40px;
}

.calendarwp-scheduler-calendar-day.is-available {
	color: #82b2dd;
}

.calendarwp-scheduler-calendar-day.is-available:hover {
	border-color: #8cbcea;
}

.calendarwp-scheduler-calendar-day.is-selected {
	background: #8bb8e3;
	border-color: #8bb8e3;
	color: #fff;
}

.calendarwp-scheduler-calendar-day.is-blocked {
	background: #f8d6d2;
	color: #ef766d;
}

.calendarwp-scheduler-calendar-day.is-unavailable,
.calendarwp-scheduler-calendar-day.is-past {
	color: #b8bec4;
	cursor: default;
}

.calendarwp-scheduler-timezone {
	border-top: 1px solid #ebe8e1;
	margin-top: 18px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 14px;
	width: 355px;
	max-width: 100%;
}

.calendarwp-scheduler-timezone__top {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.calendarwp-scheduler-timezone__top strong {
	color: #3b3b3a;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
}

.calendarwp-scheduler-time-format-toggle {
	align-items: center;
	display: inline-flex;
	gap: 6px;
}

.calendarwp-scheduler-time-format-toggle button {
	background: transparent;
	border: 0;
	border-radius: 6px;
	color: #67727e;
	cursor: pointer;
	font: inherit;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	padding: 6px 8px;
}

.calendarwp-scheduler-time-format-toggle button.is-active,
.calendarwp-scheduler-time-format-toggle button[aria-pressed="true"] {
	background: #8bb8e3;
	color: #fff;
}

.calendarwp-scheduler-timezone-select {
	margin: 10px 0 0;
	position: relative;
}

.calendarwp-scheduler-timezone-select::after {
	border-bottom: 2px solid currentColor;
	border-right: 2px solid currentColor;
	color: #9aa2aa;
	content: "";
	height: 7px;
	pointer-events: none;
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-65%) rotate(45deg);
	width: 7px;
}

.calendarwp-scheduler-timezone-select select {
	appearance: none;
	-webkit-appearance: none;
	background: #fff;
	border: 1px solid #ebe8e1;
	border-radius: 10px;
	box-sizing: border-box;
	color: #3f454c;
	cursor: pointer;
	font: inherit;
	font-size: 0.82rem;
	line-height: 1.3;
	padding: 9px 36px 9px 11px;
	width: 100%;
}

.calendarwp-scheduler-timezone-select select:focus {
	border-color: #8bb8e3;
	box-shadow: 0 0 0 3px rgba(139, 184, 227, 0.18);
	outline: none;
}

.calendarwp-scheduler-times-pane h2 {
	color: #3b3b3a;
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	margin: 0 0 6px;
}

.calendarwp-scheduler-times-pane > p {
	color: #67737e;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	margin: 0 0 14px;
}

.calendarwp-scheduler-times {
	display: grid;
	gap: 7px;
}

.calendarwp-scheduler-time-row {
	display: grid;
	gap: 6px;
	grid-template-columns: 1fr;
}

.calendarwp-scheduler-time-row.is-selected {
	grid-template-columns: minmax(0, 1fr) auto;
}

.calendarwp-scheduler-time-option,
.calendarwp-scheduler-more-times,
.calendarwp-scheduler-time-next {
	background: #fff;
	border: 1px solid #8bb8e3;
	border-radius: 999px;
	color: #82add9;
	cursor: pointer;
	font: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	min-height: 40px;
	padding: 8px 16px;
	text-align: center;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
	white-space: nowrap;
}

.calendarwp-scheduler-time-option:hover,
.calendarwp-scheduler-time-option:focus-visible {
	background: #f3f9fd;
	border-color: #8bb8e3;
	color: #3b3b3a;
	outline: none;
}

.calendarwp-scheduler-time-option.is-selected {
	background: #8bb8e3;
	color: #fff;
}

.calendarwp-scheduler-time-row.is-selected .calendarwp-scheduler-time-option {
	padding-left: 16px;
	padding-right: 16px;
}

.calendarwp-scheduler-time-next {
	background: #6d9b58;
	border-color: #6d9b58;
	color: #fff;
	font-weight: 500;
	min-width: 64px;
}

.calendarwp-scheduler-time-next:hover {
	background: #5c8b49;
	border-color: #5c8b49;
	color: #fff;
}

.calendarwp-scheduler-more-times {
	border-color: transparent;
	font-size: 0.84rem;
	min-height: 30px;
}

.calendarwp-scheduler-times__empty {
	color: #6b7683;
	margin: 0;
}

.calendarwp-scheduler-show-details .calendarwp-scheduler-booking-card__summary {
	background: #fff;
}

.calendarwp-scheduler-show-details .calendarwp-scheduler-booking-card__form {
	grid-column: auto;
}

.calendarwp-scheduler-show-details {
	grid-template-columns: 320px minmax(0, 670px);
	max-width: 990px;
	min-height: 600px;
}

.calendarwp-scheduler-details-pane {
	box-sizing: border-box;
	max-width: none;
	width: 100%;
}

.calendarwp-scheduler-step[data-step="details"] {
	min-height: 600px;
	width: 100%;
}

.calendarwp-scheduler-fields {
	gap: 10px;
}

.calendarwp-scheduler-fields label {
	gap: 5px;
}

.calendarwp-scheduler-fields label:nth-child(3),
.calendarwp-scheduler-fields label:nth-child(4) {
	grid-column: 1 / -1;
}

.calendarwp-scheduler-fields span,
.calendarwp-scheduler-guests h3 {
	color: #333;
	font-size: 0.84rem;
	font-weight: 850;
	letter-spacing: 0;
	text-transform: none;
}

.calendarwp-scheduler-fields input,
.calendarwp-scheduler-guest-row input {
	border-color: #ebe8e1;
	border-radius: 10px;
	font-size: 0.88rem;
	line-height: 1.25;
	min-height: 36px;
	padding: 6px 11px;
}

.calendarwp-scheduler-notification-options {
	display: grid;
	gap: 7px;
	margin-top: 12px;
}

.calendarwp-scheduler-switch-row {
	align-items: center;
	border: 1px solid #ebe8e1;
	border-radius: 12px;
	color: #64707c;
	display: grid;
	font-size: 0.82rem;
	gap: 10px;
	grid-template-columns: 1fr 50px;
	line-height: 1.35;
	min-height: 44px;
	padding: 7px 10px;
}

.calendarwp-scheduler-switch-row--sms {
	border-radius: 16px;
	color: #67737e;
	font-size: 14px;
	font-weight: 400;
	gap: 16px;
	grid-template-columns: minmax(0, 1fr) 50px;
	line-height: 20px;
	min-height: 76px;
	padding: 14px 16px;
}

.calendarwp-scheduler-switch-row--sms a {
	color: #7eb4dd;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.calendarwp-scheduler-switch-row--sms a:hover,
.calendarwp-scheduler-switch-row--sms a:focus-visible {
	color: #5d9bd1;
}

.calendarwp-scheduler-switch-row input {
	height: 1px;
	opacity: 0;
	position: absolute;
	width: 1px;
}

.calendarwp-scheduler-switch-row i {
	background: #ebeae6;
	border-radius: 999px;
	height: 24px;
	position: relative;
	width: 46px;
}

.calendarwp-scheduler-switch-row i::after {
	background: #fff;
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(31, 37, 44, 0.16);
	content: "";
	height: 18px;
	left: 3px;
	position: absolute;
	top: 3px;
	transition: transform 140ms ease;
	width: 18px;
}

.calendarwp-scheduler-switch-row input:checked + i {
	background: #78b3e0;
}

.calendarwp-scheduler-switch-row input:checked + i::after {
	transform: translateX(22px);
}

.calendarwp-scheduler-guests {
	margin-top: 14px;
}

.calendarwp-scheduler-guests__header {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: space-between;
}

.calendarwp-scheduler-guests h3 {
	margin: 0;
}

.calendarwp-scheduler-booking-card:not(.calendarwp-scheduler-has-guests) .calendarwp-scheduler-guests h3 {
	display: none;
}

.calendarwp-scheduler-add-guest {
	background: #fff;
	border: 1px solid #8bb8e3;
	border-radius: 999px;
	color: #82add9;
	cursor: pointer;
	font: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	min-height: 36px;
	padding: 7px 18px;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.calendarwp-scheduler-add-guest:hover,
.calendarwp-scheduler-add-guest:focus-visible {
	background: #fff;
	border-color: #8bb8e3;
	color: #3b3b3a;
	outline: none;
}

.calendarwp-scheduler-guest-row {
	align-items: center;
	display: grid;
	gap: 10px;
	grid-template-columns: 1fr 1fr 32px;
	margin-top: 10px;
}

.calendarwp-scheduler-guest-row button {
	align-items: center;
	background: transparent;
	border: 0;
	color: #66717d;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 1.35rem;
	height: 32px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	width: 32px;
}

.calendarwp-scheduler-payment-summary {
	align-items: center;
	background: #f1f7fc;
	border: 1px solid #cfe3f5;
	border-radius: 8px;
	color: #3b3b3a;
	display: flex;
	font-size: 14px;
	font-weight: 500;
	gap: 12px;
	justify-content: space-between;
	line-height: 20px;
	margin-top: 14px;
	padding: 10px 14px;
}

.calendarwp-scheduler-payment-summary strong {
	font: inherit;
	font-weight: 600;
}

.calendarwp-scheduler-submit {
	background: #76a9d8;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	min-height: 40px;
	padding: 9px 18px;
}

.calendarwp-scheduler-submit:hover {
	background: #6299ca;
}

.calendarwp-scheduler-submit:disabled {
	cursor: default;
	opacity: 0.45;
}

.calendarwp-scheduler-submit--final {
	float: right;
	margin-top: 16px;
	min-width: 185px;
}

.calendarwp-scheduler-event-cta,
.calendarwp-template .calendarwp-card.calendarwp-scheduler-event-cta,
.calendar-wp-overlay .calendarwp-template .calendarwp-card.calendarwp-scheduler-event-cta {
	background: var(--calendarwp-card-background, #fff);
	border: 1px solid var(--calendarwp-card-border, var(--calendarwp-color-border, #d7dce3));
	border-radius: var(--calendarwp-radius-m, 12px);
	box-shadow: var(--calendarwp-card-shadow, none);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: var(--calendarwp-space-s, 0.75rem);
	height: 100%;
	margin: 28px 0;
	padding: clamp(0.85rem, 1vw, 1.1rem);
	width: 100%;
}

.calendarwp-template .calendarwp-event-action-grid__item--rsvp .calendarwp-scheduler-event-cta,
.calendar-wp-overlay .calendarwp-template .calendarwp-event-action-grid__item--rsvp .calendarwp-scheduler-event-cta {
	margin: 0;
}

.calendarwp-template .calendarwp-scheduler-event-cta > *,
.calendar-wp-overlay .calendarwp-template .calendarwp-scheduler-event-cta > * {
	margin-block-start: 0;
}

.calendarwp-template .calendarwp-scheduler-event-cta p,
.calendarwp-template .calendarwp-scheduler-event-cta h3,
.calendar-wp-overlay .calendarwp-template .calendarwp-scheduler-event-cta p,
.calendar-wp-overlay .calendarwp-template .calendarwp-scheduler-event-cta h3 {
	margin-bottom: 0;
	margin-top: 0;
}

.calendarwp-scheduler-event-cta__header,
.calendarwp-template .calendarwp-scheduler-event-cta__header,
.calendar-wp-overlay .calendarwp-template .calendarwp-scheduler-event-cta__header {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	min-width: 0;
	flex-wrap: wrap;
}

.calendarwp-scheduler-event-cta__title,
.calendarwp-template .calendarwp-scheduler-event-cta .calendarwp-scheduler-event-cta__title,
.calendar-wp-overlay .calendarwp-template .calendarwp-scheduler-event-cta .calendarwp-scheduler-event-cta__title {
	color: var(--calendarwp-color-text, #1d232a);
	font-family: inherit !important;
	font-size: clamp(1rem, 1.05vw, 1.125rem) !important;
	font-style: normal !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	margin: 0 !important;
}

.calendarwp-scheduler-event-cta__price,
.calendarwp-template .calendarwp-scheduler-event-cta__price,
.calendar-wp-overlay .calendarwp-template .calendarwp-scheduler-event-cta__price {
	background: #f7f2ff;
	border: 1px solid #8a73b8;
	border-radius: 999px;
	color: #7f69ad;
	flex: 0 0 auto;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 16px;
	padding: 3px 10px;
}

.calendarwp-scheduler-event-cta__availability,
.calendarwp-template .calendarwp-scheduler-event-cta__availability,
.calendar-wp-overlay .calendarwp-template .calendarwp-scheduler-event-cta__availability {
	color: #67737e;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 20px !important;
	margin: -2px 0 0 !important;
}

.calendarwp-scheduler-event-cta__button,
.calendarwp-template .calendarwp-scheduler-event-cta__button,
.calendar-wp-overlay .calendarwp-scheduler-event-cta__button {
	align-items: center;
	background: #76a9d8;
	border: 1px solid #76a9d8;
	border-radius: 999px;
	box-shadow: none !important;
	box-sizing: border-box;
	color: #fff;
	display: inline-flex !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	justify-content: center;
	line-height: 20px !important;
	min-height: 40px;
	padding: 9px 18px;
	text-decoration: none !important;
	width: 100%;
}

.calendarwp-scheduler-event-cta__button:hover,
.calendarwp-scheduler-event-cta__button:focus,
.calendarwp-template .calendarwp-scheduler-event-cta__button:hover,
.calendarwp-template .calendarwp-scheduler-event-cta__button:focus,
.calendar-wp-overlay .calendarwp-scheduler-event-cta__button:hover,
.calendar-wp-overlay .calendarwp-scheduler-event-cta__button:focus {
	background: #6299ca;
	border-color: #6299ca;
	color: #fff;
	text-decoration: none !important;
}

.calendarwp-scheduler-event-cta__button::before,
.calendarwp-scheduler-event-cta__button::after,
.calendarwp-template .calendarwp-scheduler-event-cta__button::before,
.calendarwp-template .calendarwp-scheduler-event-cta__button::after,
.calendar-wp-overlay .calendarwp-scheduler-event-cta__button::before,
.calendar-wp-overlay .calendarwp-scheduler-event-cta__button::after {
	content: none !important;
}

@media (max-width: 900px) {
	.calendarwp-scheduler-availability-widget .calendarwp-scheduler-panel__header,
	.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-slot {
		align-items: stretch;
		flex-direction: column;
	}

	.calendarwp-scheduler-availability-widget .calendarwp-scheduler-weekly-rule {
		grid-template-columns: 1fr;
	}

	.calendarwp-scheduler-booking-card--compact,
	.calendarwp-scheduler-show-details {
		grid-template-columns: 1fr;
	}

	.calendarwp-scheduler-step[data-step="calendar"] {
		grid-template-columns: 1fr;
	}

	.calendarwp-scheduler-times-pane {
		border-left: 0;
		border-top: 1px solid #ebe8e1;
	}
}

@media (max-width: 780px) {
	.calendarwp-scheduler-public {
		max-width: none;
		padding: 14px;
		width: 100%;
	}

	.calendarwp-scheduler-booking-card {
		grid-template-columns: 1fr;
	}

	.calendarwp-scheduler-booking-card__summary {
		border-bottom: 1px solid #e7e3dc;
		border-right: 0;
	}

	.calendarwp-scheduler-fields {
		grid-template-columns: 1fr;
	}

	.calendarwp-scheduler-booking-card__summary,
	.calendarwp-scheduler-booking-card__form {
		padding: 24px;
	}

	.calendarwp-scheduler-booking-card--compact .calendarwp-scheduler-booking-card__form,
	.calendarwp-scheduler-booking-card--compact .calendarwp-scheduler-booking-card__summary {
		padding: 22px;
	}

	.calendarwp-scheduler-calendar-pane,
	.calendarwp-scheduler-details-pane,
	.calendarwp-scheduler-times-pane {
		padding: 22px 0 0;
	}

	.calendarwp-scheduler-calendar__grid {
		gap: 7px;
	}

	.calendarwp-scheduler-calendar__weekdays,
	.calendarwp-scheduler-calendar__grid {
		grid-template-columns: repeat(7, minmax(32px, 1fr));
	}

	.calendarwp-scheduler-guest-row {
		grid-template-columns: 1fr;
	}
}
