/* STUDIO-K Booking 예약 위저드, 날짜 모달, 상품 상세 예약 영역
   테마 토큰(--kstar-*) 쓰는데 테마 없어도 안 깨지게 var() 마다 폴백 넣어둠 */

:root {
	--kstar-book-line: var(--kstar-line, #e5e8ee);
	--kstar-book-ink: var(--kstar-ink, #14181f);
	--kstar-book-muted: var(--kstar-muted, #5b6472);
	--kstar-book-surface: var(--kstar-surface, #f7f8fa);
	--kstar-book-accent: var(--kstar-accent, #8049a8);
	--kstar-book-accent-ink: var(--kstar-accent-ink, #ffffff);
	--kstar-book-accent-strong: var(--kstar-accent-strong, #8049a8);
	--kstar-book-accent-soft: var(--kstar-accent-soft, #f6f0fb);
	--kstar-book-r: var(--kstar-r, 14px);
	--kstar-book-r-sm: var(--kstar-r-sm, 10px);
}

/* 위저드 */
.kstar-wizard {
	position: relative;
}

.kstar-wizard__noscript {
	padding: 1rem;
	background: var(--kstar-book-accent-soft);
	border-radius: var(--kstar-book-r-sm);
}

.kstar-wizard__boot {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 3rem 0;
	color: var(--kstar-book-muted);
}

.kstar-spinner {
	width: 18px;
	height: 18px;
	border: 2px solid var(--kstar-book-line);
	border-top-color: var(--kstar-book-accent-strong);
	border-radius: 50%;
	animation: kstar-spin 0.8s linear infinite;
}

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

.kstar-wizard__live {
	position: absolute;
	left: -9999px;
}

/* 진행 표시 */
.kstar-steps-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
	padding: 0 0 1.25rem;
	list-style: none;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--kstar-book-muted);
	border-bottom: 1px solid var(--kstar-book-line);
}

.kstar-steps-nav__item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.7rem;
	border-radius: 6px;
	background: var(--kstar-book-surface);
}

.kstar-steps-nav__item + .kstar-steps-nav__item::before {
	content: none;
	margin-right: 0.4rem;
	color: var(--kstar-book-line);
}

.kstar-steps-nav__item.is-current {
	color: var(--kstar-book-accent-strong);
	background: var(--kstar-book-accent-soft);
	box-shadow: inset 0 -2px var(--kstar-book-accent-strong);
}

.kstar-steps-nav__item.is-done {
	color: var(--kstar-book-ink);
}

.kstar-wizard__summary {
	margin: 0 0 1.5rem;
	padding: 0.7rem 1rem;
	background: var(--kstar-book-surface);
	border-radius: var(--kstar-book-r-sm);
	font-size: 0.85rem;
	color: var(--kstar-book-muted);
}

/* 본문 */
.kstar-step__title {
	margin: 0 0 0.35rem;
	font-size: 1.3rem;
}

.kstar-step__subtitle {
	margin: 1.75rem 0 0.5rem;
	font-size: 1rem;
}

.kstar-step__hint,
.kstar-step__label {
	margin: 0 0 1rem;
	font-size: 0.85rem;
	color: var(--kstar-book-muted);
}

.kstar-step__label {
	margin-top: 1.75rem;
	font-weight: 600;
	color: var(--kstar-book-ink);
}

/* 선택 카드 */
.kstar-choices {
	display: grid;
	gap: 0.6rem;
	/* 내용 길어도 그리드 안 벌어지게 */
	grid-template-columns: minmax(0, 1fr);
	margin-bottom: 0.5rem;
}

.kstar-choice {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	min-width: 0;
	padding: 1.1rem;
	background: #fff;
	border: 1px solid var(--kstar-book-line);
	border-radius: var(--kstar-book-r);
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
	min-height: 52px;
}

.kstar-choice:hover {
	border-color: var(--kstar-book-accent-strong);
}

.kstar-choice.is-on {
	background: var(--kstar-book-accent-soft);
	border-color: var(--kstar-book-accent-strong);
	box-shadow: inset 0 0 0 1px var(--kstar-book-accent-strong);
}

.kstar-choice--sm {
	flex-direction: row;
	align-items: center;
	padding: 0.6rem 0.95rem;
	font-size: 0.9rem;
}

.kstar-choice__title {
	font-weight: 600;
}

.kstar-choice__meta {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.3rem 0.4rem;
	min-width: 0;
	font-size: 0.85rem;
	color: var(--kstar-book-muted);
}

.kstar-choice__list {
	color: var(--kstar-book-muted);
}

.kstar-choice__off {
	font-weight: 700;
	color: var(--kstar-book-accent-strong);
}

.kstar-choice--person {
	align-items: center;
	text-align: center;
	padding: 0.7rem;
}

.kstar-choice__photo {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	margin-bottom: 0.6rem;
	border-radius: var(--kstar-book-r-sm);
	overflow: hidden;
	background: var(--kstar-book-surface);
}

.kstar-choice__photo.is-placeholder {
	background-image: linear-gradient(145deg, #eee5f4, #f5f1e7);
}

.kstar-choice__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* 옵션 */
.kstar-optlist {
	display: grid;
	gap: 0.5rem;
}

.kstar-optrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--kstar-book-line);
	border-radius: var(--kstar-book-r-sm);
	flex-wrap: wrap;
}

.kstar-optrow.is-on {
	background: var(--kstar-book-accent-soft);
	border-color: var(--kstar-book-accent-strong);
}

.kstar-optrow__main {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex: 1;
	cursor: pointer;
}

.kstar-optrow__name {
	font-weight: 500;
}

.kstar-optrow__qty {
	padding: 0.3rem 0.5rem;
	border: 1px solid var(--kstar-book-line);
	border-radius: 8px;
	background: #fff;
}

.kstar-optrow__price {
	font-weight: 600;
	white-space: nowrap;
}

/* 입력 */
.kstar-field {
	margin-bottom: 1.1rem;
}

.kstar-field__label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.85rem;
	font-weight: 600;
}

.kstar-input {
	width: 100%;
	padding: 0.7rem 0.9rem;
	background: #fff;
	border: 1px solid var(--kstar-book-line);
	border-radius: var(--kstar-book-r-sm);
	font: inherit;
	color: inherit;
	min-height: 48px;
	font-size: 16px;
}

.kstar-input:focus {
	outline: 2px solid var(--kstar-book-accent-strong);
	outline-offset: 1px;
}

/* OS 기본 파란색 말고 브랜드 색 */
.kstar-wizard input[type="checkbox"],
.kstar-wizard input[type="radio"],
.kstar-reviewform input[type="checkbox"],
.kstar-picker input[type="radio"] {
	accent-color: var(--kstar-book-accent-strong);
}

.kstar-field__error {
	display: block;
	margin-top: 0.3rem;
	font-size: 0.8rem;
	color: #b3261e;
}

/* 금액 명세 */
.kstar-lines {
	margin-bottom: 1.75rem;
	border: 1px solid var(--kstar-book-line);
	border-radius: var(--kstar-book-r);
	overflow: hidden;
}

.kstar-lines__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem 1rem;
	font-size: 0.9rem;
}

.kstar-lines__row + .kstar-lines__row {
	border-top: 1px solid var(--kstar-book-line);
}

.kstar-lines__row--off {
	color: var(--kstar-book-accent-strong);
	font-weight: 600;
}

.kstar-lines__row--total {
	background: var(--kstar-book-surface);
	font-size: 1rem;
	font-weight: 700;
}

.kstar-facts {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.4rem 1.25rem;
	margin: 0;
	font-size: 0.88rem;
}

.kstar-facts dt {
	color: var(--kstar-book-muted);
}

.kstar-facts dd {
	margin: 0;
}

/* 하단 바 */
.kstar-wizard__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--kstar-book-line);
	padding: 1.25rem 0 0;
}

.kstar-wizard__total {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
}

.kstar-wizard__total-label {
	font-size: 0.8rem;
	color: var(--kstar-book-muted);
}

.kstar-wizard__actions {
	display: flex;
	gap: 0.6rem;
	margin-left: auto;
}

/* 달력, 시간 슬롯 */
.kstar-cal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.kstar-cal__label {
	font-weight: 700;
}

.kstar-cal__nav {
	width: 44px;
	height: 44px;
	padding: 0;
	background: #fff;
	border: 1px solid var(--kstar-book-line);
	border-radius: 50%;
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}

.kstar-cal__nav:hover {
	border-color: var(--kstar-book-accent-strong);
}

.kstar-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.kstar-cal__weekday {
	padding: 0.35rem 0;
	font-size: 0.72rem;
	color: var(--kstar-book-muted);
	text-align: center;
}

.kstar-cal__day {
	padding: 0.55rem 0;
	background: #fff;
	border: 1px solid transparent;
	border-radius: 50%;
	font-size: 0.9rem;
	cursor: pointer;
	min-height: 42px;
}

.kstar-cal__day:hover:not(:disabled) {
	border-color: var(--kstar-book-accent-strong);
}

.kstar-cal__day.is-off {
	color: #c4c8d0;
	cursor: not-allowed;
}

.kstar-cal__day.is-on {
	background: var(--kstar-book-accent);
	border-color: var(--kstar-book-accent);
	color: var(--kstar-book-accent-ink);
	font-weight: 700;
}

.kstar-slotpick {
	margin-top: 1.25rem;
}

.kstar-slotpick__title {
	margin: 0 0 0.55rem;
	font-size: 0.85rem;
	font-weight: 600;
}

.kstar-slotpick__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.kstar-slot {
	padding: 0.5rem 0.95rem;
	background: #fff;
	border: 1px solid var(--kstar-book-line);
	border-radius: var(--kstar-book-r-sm);
	font-size: 0.88rem;
	cursor: pointer;
	min-height: 44px;
}

.kstar-slot:hover {
	border-color: var(--kstar-book-accent-strong);
}

.kstar-slot.is-on {
	background: var(--kstar-book-accent);
	border-color: var(--kstar-book-accent);
	color: var(--kstar-book-accent-ink);
	font-weight: 700;
}

/* 모달 */
body.kstar-modal-open {
	overflow: hidden;
}

.kstar-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.kstar-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 21, 35, 0.55);
}

.kstar-modal__box {
	position: relative;
	width: 100%;
	max-width: 460px;
	max-height: 90svh;
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 20px 20px 0 0;
	overflow: hidden;
}

.kstar-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--kstar-book-line);
}

.kstar-modal__title {
	margin: 0;
	font-size: 1rem;
}

.kstar-modal__close {
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 0;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

.kstar-modal__body {
	padding: 1.25rem;
	overflow-y: auto;
}

@media (min-width: 600px) {
	.kstar-modal {
		align-items: center;
	}

	.kstar-modal__box {
		border-radius: 20px;
	}
}

/* 상품 상세의 예약 시작 영역 */
.kstar-picker__date {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: 100%;
	padding: 0.85rem 1rem;
	margin-bottom: 1rem;
	background: #fff;
	border: 1px solid var(--kstar-book-line);
	border-radius: var(--kstar-book-r-sm);
	font: inherit;
	text-align: left;
	cursor: pointer;
	border-color: var(--kstar-book-accent-strong);
	min-height: 54px;
	color: var(--kstar-book-accent-strong);
}

.kstar-picker__date:hover {
	border-color: var(--kstar-book-accent-strong);
}

.kstar-picker__label {
	color: var(--kstar-book-accent-strong);
}

.kstar-picker__label.is-set {
	color: var(--kstar-book-ink);
	font-weight: 600;
}

.kstar-picker__parties {
	display: grid;
	gap: 0.65rem;
	margin-bottom: 1.25rem;
	/* minmax(0,1fr) 빼면 nowrap 가격 때문에 행이 카드 밖으로 밀림 */
	grid-template-columns: minmax(0, 1fr);
}

.kstar-party {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.6rem;
	min-width: 0;
	/* 할인 있는 행은 가격이 두 줄이라 높이 맞춰둠 */
	min-height: 72px;
	padding: 0.85rem;
	border: 1px solid var(--kstar-book-line);
	border-radius: var(--kstar-book-r-sm);
	cursor: pointer;
}

.kstar-party input[type="radio"] {
	margin: 0;
	accent-color: var(--kstar-book-accent-strong);
}

.kstar-party:has(input:checked) {
	background: var(--kstar-book-accent-soft);
	border-color: var(--kstar-book-accent-strong);
}

.kstar-party__name {
	min-width: 0;
	font-weight: 600;
	font-size: 0.9rem;
	/* "2 people" 이 두 줄로 접히면 행 높이 들쭉날쭉해짐 */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* 판매가 위, 정가랑 할인율 아래. 좁은 사이드바에서도 안 넘침 */
.kstar-party__price {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1px;
	font-size: 0.9rem;
	line-height: 1.35;
	white-space: nowrap;
	text-align: right;
}

.kstar-party__now {
	font-weight: 700;
	color: var(--kstar-book-accent-strong);
}

.kstar-party__was {
	display: flex;
	align-items: baseline;
	gap: 0.3rem;
	font-size: 0.74rem;
}

.kstar-party__list {
	color: var(--kstar-book-muted);
}

.kstar-party__off {
	font-weight: 700;
	color: var(--kstar-book-accent-strong);
}

/* 상세 탭 */
.kstar-tabs-nav {
	display: flex;
	gap: 0.5rem;
	margin: 1.5rem 0 0;
	padding: 0;
	overflow-x: auto;
	border-bottom: 1px solid var(--kstar-book-line);
	list-style: none;
	scrollbar-width: none;
	position: sticky;
	top: var(--kstar-header-offset, var(--kstar-header-h, 76px));
	z-index: 30;
	background: #fff;
}

.kstar-tabs-nav::-webkit-scrollbar {
	display: none;
}

.kstar-tabs-nav a {
	display: inline-block;
	padding: 1rem;
	white-space: nowrap;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--kstar-book-muted);
	border-bottom: 2px solid transparent;
	min-height: 52px;
}

.kstar-tabs-nav a:hover {
	color: var(--kstar-book-accent-strong);
	border-bottom-color: var(--kstar-book-accent-strong);
}

@media (min-width: 600px) {
	.kstar-choices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kstar-choices--party {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.kstar-choices--people {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* 결제 단계 */
.kstar-booking-ref {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	background: var(--kstar-book-accent-soft);
	border-radius: var(--kstar-book-r-sm);
	font-size: 0.95rem;
}

.kstar-booking-ref__label {
	font-size: 0.78rem;
	color: var(--kstar-book-muted);
}

.kstar-paypal {
	margin-top: 1.25rem;
	min-height: 52px;
}

.kstar-paypal__status {
	margin: 0.75rem 0 0;
	font-size: 0.85rem;
	color: var(--kstar-book-accent-strong);
	min-height: 1.2em;
}

.kstar-wizard__foot--payment {
	justify-content: flex-start;
}

/* 리뷰 작성 폼 */
.kstar-reviewform__head {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin-bottom: 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--kstar-book-line);
}

.kstar-reviewform__thumb {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: var(--kstar-book-r-sm);
}

.kstar-reviewform__product {
	margin: 0;
	font-weight: 700;
}

.kstar-reviewform__meta {
	margin: 0.2rem 0 0;
	font-size: 0.82rem;
	color: var(--kstar-book-muted);
}

.kstar-reviewform__note {
	margin: 0 0 1rem;
	font-size: 0.82rem;
	color: var(--kstar-book-muted);
}

.kstar-reviewform__msg {
	padding: 2.5rem 1.25rem;
	background: var(--kstar-book-surface);
	border-radius: var(--kstar-book-r);
	text-align: center;
}

.kstar-reviewform__msg.is-ok {
	background: var(--kstar-book-accent-soft);
}

/* 별점 */
.kstar-stars {
	display: flex;
	gap: 0.15rem;
}

.kstar-stars__btn {
	padding: 0 0.1rem;
	background: none;
	border: 0;
	font-size: 2rem;
	line-height: 1;
	color: #d8dce3;
	cursor: pointer;
	transition: color 0.12s ease, transform 0.12s ease;
}

.kstar-stars__btn:hover {
	transform: scale(1.08);
}

.kstar-stars__btn.is-on {
	color: #f5a623;
}

/* 사진 */
.kstar-photos {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.kstar-photos__item {
	position: relative;
	width: 84px;
	height: 84px;
	border-radius: var(--kstar-book-r-sm);
	overflow: hidden;
}

.kstar-photos__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.kstar-photos__remove {
	position: absolute;
	top: 3px;
	right: 3px;
	width: 22px;
	height: 22px;
	padding: 0;
	background: rgba(10, 21, 35, 0.72);
	border: 0;
	border-radius: 50%;
	color: #fff;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
}

.kstar-photos__add {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border: 1px dashed var(--kstar-book-line);
	border-radius: var(--kstar-book-r-sm);
	color: var(--kstar-book-muted);
	font-size: 1.5rem;
	cursor: pointer;
}

.kstar-photos__add:hover {
	border-color: var(--kstar-book-accent-strong);
	color: var(--kstar-book-accent-strong);
}

.kstar-photos__input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.kstar-field__hint {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.78rem;
	color: var(--kstar-book-muted);
}

/* 허니팟. 화면이랑 스크린리더 둘 다 숨김 */
.kstar-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* 위저드 인원 카드. 판매가 먼저 보이게 */
.kstar-choice__now {
	font-weight: 700;
	color: var(--kstar-book-ink);
}

/* 상품 선택 스텝. 사진 보여야 뭘 고르는지 앎 */
.kstar-choice--product {
	padding: 0.6rem 0.6rem 0.9rem;
}

.kstar-choice__cover {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	margin-bottom: 0.65rem;
	border-radius: var(--kstar-book-r-sm);
	overflow: hidden;
	background: var(--kstar-book-surface);
}

.kstar-choice__cover.is-placeholder {
	background: linear-gradient(145deg, #eee2f7, #f3eddc);
}

.kstar-choice__cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.kstar-choice--product .kstar-choice__title,
.kstar-choice--product .kstar-choice__meta {
	padding-inline: 0.35rem;
}

/* 요약 바 + 변경 버튼 */
.kstar-wizard__summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.9rem;
}

.kstar-wizard__change {
	margin-left: auto;
	padding: 0;
	background: none;
	border: 0;
	color: var(--kstar-book-accent-strong);
	font-size: 0.82rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

@media (min-width: 600px) {
	.kstar-choices--products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.kstar-choices--products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* 내 예약 조회 폼 */
.kstar-lookup {
	max-width: none;
}

.kstar-lookup__error {
	margin: 0 0 1.25rem;
	padding: 0.75rem 1rem;
	background: #fff4f2;
	border: 1px solid #f3c7bf;
	border-radius: var(--kstar-r-sm, 10px);
	color: #a3321f;
	font-size: var(--kstar-fs-sm, 0.875rem);
}

.kstar-lookup .kstar-btn {
	margin-top: 0.5rem;
}

.kstar-lookup__hint {
	margin: 1rem 0 0;
	color: var(--kstar-muted, #5b6472);
	font-size: var(--kstar-fs-xs, 0.78rem);
}

/* 터치 영역, 선택된 탭, safe-area 여백 맞추기 */
.kstar-tabs-nav a.is-active { color: var(--kstar-book-accent-strong); border-bottom-color: var(--kstar-book-accent-strong); }
.kstar-optrow__main, .kstar-lines__row > *, .kstar-facts dd { min-width: 0; overflow-wrap: anywhere; }
.kstar-optrow__qty { min-height: 44px; max-width: 5rem; }
.kstar-modal__body { overscroll-behavior: contain; padding-bottom: calc(1.25rem + env(safe-area-inset-bottom)); }
.kstar-modal__box { max-height: calc(100dvh - 24px); }
.kstar-wizard__total { flex-wrap: wrap; }
.kstar-wizard__actions { flex-wrap: wrap; }
.kstar-step__hint { line-height: 1.7; }
@media (max-width: 599px) {
 .kstar-steps-nav { font-size: 0.7rem; gap: 0.35rem; }
 .kstar-steps-nav__item { padding: 0.4rem 0.5rem; }
 .kstar-wizard__actions { width: 100%; }
 .kstar-wizard__actions .kstar-btn { flex: 1; }
 .kstar-wizard__total { width: 100%; justify-content: space-between; }
 .kstar-tabs-nav { margin-inline: calc(-1 * var(--kstar-gutter, 20px)); padding-inline: var(--kstar-gutter, 20px); }
 .kstar-tabs-nav a { padding-inline: 0.75rem; }
 .kstar-cal__grid { gap: 2px; }
 .kstar-choices--people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .kstar-slotpick__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
 .kstar-slot { padding-inline: 0.25rem; }
}

.kstar-picker__modal > .kstar-btn { margin-top: 1.25rem; }

.kstar-step__title { scroll-margin-top: calc(var(--kstar-header-offset, 76px) + 24px); }
