.ringtime {
	--rt-ink: #111111;
	--rt-muted: #5c5c5c;
	--rt-line: #d8d8d8;
	--rt-card: #ffffff;
	--rt-paper: #f4f4f4;
	--rt-accent: #111111;
	--rt-on-accent: #ffffff;
	--rt-open: #efefef;
	--rt-mark: #111111;
	--rt-danger: #111111;
	--rt-danger-soft: #f4f4f4;
	container-type: inline-size;
	color: var(--rt-ink) !important;
	background: transparent !important;
	font-family: Georgia, "Times New Roman", serif !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	max-width: 1040px;
	margin: 0 auto 2rem;
}

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

.ringtime button,
.ringtime input,
.ringtime textarea {
	appearance: none !important;
	-webkit-appearance: none !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-family: Georgia, "Times New Roman", serif !important;
}

.ringtime a {
	color: inherit !important;
}

.ringtime__shell {
	background: var(--rt-paper) !important;
	border: 1px solid var(--rt-line) !important;
	border-radius: 1.5rem;
	padding: 1.25rem;
}

.ringtime__layout {
	display: grid;
	gap: 1.25rem;
}

.ringtime__kicker {
	margin: 0 0 0.45rem !important;
	color: var(--rt-muted) !important;
	font-family: "Segoe UI", system-ui, sans-serif !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
}

.ringtime__title,
.ringtime__month,
.ringtime__chosen,
.ringtime__done h3,
.ringtime__slots-label {
	color: var(--rt-ink) !important;
	font-family: Georgia, "Times New Roman", serif !important;
	font-weight: 500 !important;
}

.ringtime__title {
	margin: 0 0 0.65rem !important;
	font-size: clamp(2rem, 4vw, 3.1rem) !important;
	letter-spacing: -0.03em !important;
	line-height: 0.98 !important;
}

.ringtime__intro {
	margin: 0 0 1rem !important;
	max-width: 36rem;
	color: var(--rt-ink) !important;
	font-size: 1.05rem !important;
}

.ringtime__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.ringtime__facts li {
	margin: 0 !important;
	padding: 0.45rem 0.7rem;
	border: 1px solid var(--rt-line) !important;
	border-radius: 999px;
	background: var(--rt-card) !important;
	color: var(--rt-muted) !important;
	font-family: "Segoe UI", system-ui, sans-serif !important;
	font-size: 0.82rem !important;
}

.ringtime__card {
	position: relative;
	background: var(--rt-card) !important;
	border: 1px solid var(--rt-line) !important;
	border-radius: 1.25rem;
	padding: 1rem;
}

.ringtime__steps {
	display: flex;
	gap: 0.4rem;
	margin: 0 0 0.9rem !important;
	color: var(--rt-muted) !important;
	font-family: "Segoe UI", system-ui, sans-serif !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
}

.ringtime__steps span {
	padding: 0.3rem 0.55rem;
	border-radius: 999px;
	background: var(--rt-paper) !important;
	color: var(--rt-muted) !important;
}

.ringtime__alert {
	margin: 0 0 0.75rem !important;
	padding: 0.75rem 0.85rem;
	border: 1px solid var(--rt-ink) !important;
	border-radius: 0.9rem;
	background: var(--rt-paper) !important;
	color: var(--rt-ink) !important;
}

.ringtime__cal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.65rem;
}

.ringtime__month {
	margin: 0 !important;
	font-size: 1.35rem !important;
}

.ringtime__nav,
.ringtime__day,
.ringtime__slot,
.ringtime__submit,
.ringtime__textbtn {
	font: inherit;
	cursor: pointer;
}

.ringtime__nav {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--rt-line) !important;
	border-radius: 999px !important;
	background: var(--rt-card) !important;
	color: var(--rt-ink) !important;
}

.ringtime__nav:disabled {
	opacity: 0.35;
	cursor: default;
}

.ringtime__dow,
.ringtime__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.3rem;
}

.ringtime__dow {
	margin-bottom: 0.35rem;
	color: var(--rt-muted) !important;
	font-family: "Segoe UI", system-ui, sans-serif !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-align: center;
	text-transform: uppercase !important;
}

.ringtime__day {
	position: relative;
	min-height: 46px;
	border: 1px solid transparent !important;
	border-radius: 0.85rem !important;
	background: transparent !important;
	color: var(--rt-ink) !important;
}

.ringtime__day:disabled {
	color: #b5b5b5 !important;
	cursor: default;
}

.ringtime__day.is-open {
	background: var(--rt-open) !important;
}

.ringtime__day.is-open::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 6px;
	width: 5px;
	height: 5px;
	border-radius: 999px;
	background: var(--rt-mark) !important;
	transform: translateX(-50%);
}

.ringtime__day.is-selected,
.ringtime__slot.is-selected {
	background: var(--rt-accent) !important;
	color: var(--rt-on-accent) !important;
	border-color: var(--rt-accent) !important;
}

.ringtime__day.is-selected::after {
	background: var(--rt-on-accent) !important;
}

.ringtime__day:focus-visible,
.ringtime__slot:focus-visible,
.ringtime__nav:focus-visible,
.ringtime__submit:focus-visible,
.ringtime input:focus-visible,
.ringtime textarea:focus-visible {
	outline: 2px solid var(--rt-accent) !important;
	outline-offset: 2px;
}

.ringtime__times {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--rt-line) !important;
}

.ringtime__slots-label {
	margin: 0 0 0.55rem !important;
	font-size: 1.15rem !important;
}

.ringtime__slots {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.45rem;
}

.ringtime__slot {
	min-height: 44px;
	border: 1px solid var(--rt-line) !important;
	border-radius: 999px !important;
	background: var(--rt-card) !important;
	color: var(--rt-ink) !important;
}

.ringtime__slot:disabled {
	color: #b5b5b5 !important;
	text-decoration: line-through;
	background: transparent !important;
	cursor: default;
}

.ringtime__form {
	display: grid;
	gap: 0.8rem;
}

.ringtime__chosen {
	margin: 0 !important;
	padding: 0.85rem 1rem;
	border-radius: 1rem;
	background: var(--rt-open) !important;
	font-size: 1.35rem !important;
	line-height: 1.2 !important;
}

.ringtime__textbtn {
	justify-self: start;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--rt-ink) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.ringtime__field {
	display: grid;
	gap: 0.35rem;
	color: var(--rt-ink) !important;
	font-family: "Segoe UI", system-ui, sans-serif !important;
	font-size: 0.92rem !important;
	font-weight: 600 !important;
}

.ringtime__field em {
	color: var(--rt-muted) !important;
	font-style: normal;
	font-weight: 500 !important;
}

.ringtime__field input,
.ringtime__field textarea {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--rt-line) !important;
	border-radius: 0.9rem !important;
	background: var(--rt-card) !important;
	color: var(--rt-ink) !important;
	font-family: "Segoe UI", system-ui, sans-serif !important;
	font-weight: 450 !important;
}

.ringtime__field textarea {
	min-height: 6.5rem;
	resize: vertical;
}

.ringtime__submit {
	min-height: 52px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--rt-accent) !important;
	color: var(--rt-on-accent) !important;
	font-family: "Segoe UI", system-ui, sans-serif !important;
	font-weight: 650 !important;
}

.ringtime__submit:hover,
.ringtime__submit:focus {
	background: var(--rt-accent) !important;
	color: var(--rt-on-accent) !important;
	filter: none !important;
}

.ringtime__submit:disabled {
	opacity: 0.6;
	cursor: default;
}

.ringtime.is-booked .ringtime__steps,
.ringtime.is-booked [data-panel="calendar"],
.ringtime.is-booked .ringtime__field,
.ringtime.is-booked .ringtime__chosen,
.ringtime.is-booked .ringtime__textbtn,
.ringtime.is-booked [data-submit] {
	display: none !important;
}

.ringtime.is-booked [data-form],
.ringtime.is-booked [data-done] {
	display: block !important;
}

.ringtime__done h3 {
	margin: 0 0 0.45rem !important;
	font-size: 2.2rem !important;
	letter-spacing: -0.03em !important;
	line-height: 1 !important;
}

.ringtime__done p {
	margin: 0 0 1rem !important;
	color: var(--rt-ink) !important;
}

.ringtime__hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@container (min-width: 760px) {
	.ringtime__shell {
		padding: 1.5rem;
	}

	.ringtime__layout {
		grid-template-columns: minmax(0, 0.86fr) minmax(18rem, 1.14fr);
		gap: 1.5rem;
		align-items: start;
	}

	.ringtime__mast {
		position: sticky;
		top: 1.5rem;
		padding: 1.25rem 0.4rem 1rem 0.75rem;
	}

	.ringtime__card {
		padding: 1.15rem;
	}
}

@media (max-width: 420px) {
	.ringtime__slots {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
