/* Sora Private Classes. Uses the Frencheezy theme tokens when present. */
.spc {
	--spc-ink: var(--fz-ink, #1E1B3A);
	--spc-muted: var(--fz-muted, #57536E);
	--spc-line: var(--fz-line, #E4E2EE);
	--spc-soft: var(--fz-soft, #F1F0FA);
	--spc-primary: var(--fz-primary, #4B4ACF);
	--spc-primary-dark: var(--wp--preset--color--primary-dark, #3634A8);
	--spc-accent: var(--fz-accent, #FFC93C);
	--spc-radius: var(--fz-radius, 12px);
	--spc-radius-lg: var(--fz-radius-lg, 18px);
	--spc-head: var(--wp--preset--font-family--heading, Georgia, serif);
	color: var(--spc-ink);
	font-size: 1rem;
	line-height: 1.5;
	text-align: left;
}
.spc *, .spc *::before, .spc *::after { box-sizing: border-box; }
.spc :where(h3, h4, p, ul) { margin: 0; color: inherit; }
.spc-card {
	background: #fff;
	color: var(--spc-ink);
	border-radius: var(--spc-radius-lg);
	padding: clamp(1.1rem, 3vw, 1.6rem);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .55);
	display: grid;
	gap: 1rem;
}
.spc-h { font-family: var(--spc-head); font-size: clamp(1.35rem, 2.4vw, 1.6rem); line-height: 1.15; font-weight: 700; color: var(--spc-ink) !important; }
.spc-muted { color: var(--spc-muted) !important; }
.spc-small { font-size: .85rem; }
.spc-tag { display: inline-block; font-size: .72rem; font-weight: 700; line-height: 1; padding: .3em .55em; border-radius: 999px; background: #E7F7EF; color: #0A6B3D; vertical-align: middle; margin-left: .35rem; }
.spc-tag--live { background: #FDECEC; color: #9B1C1C; }

/* buttons */
.spc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
	min-height: 46px; padding: .7rem 1.2rem; border-radius: var(--spc-radius);
	background: var(--spc-primary); color: #fff !important; border: 0; font: inherit; font-weight: 700;
	text-decoration: none !important; cursor: pointer; transition: background .15s;
}
.spc-btn:hover { background: var(--spc-primary-dark); }
.spc-btn:focus-visible, .spc-slot:focus-visible, .spc-seg button:focus-visible, .spc-pk__row:focus-visible, .spc-chip:focus-visible, .spc-icon:focus-visible, .spc-link:focus-visible { outline: 3px solid var(--spc-accent); outline-offset: 2px; }
.spc-btn--block { width: 100%; }
.spc-btn--ghost { background: transparent; color: var(--spc-primary) !important; box-shadow: inset 0 0 0 1.5px var(--spc-primary); }
.spc-btn--ghost:hover { background: var(--spc-soft); }
.spc-btn--sm { min-height: 38px; padding: .45rem .9rem; font-size: .9rem; }
.spc-btn.is-disabled { background: var(--spc-line); color: var(--spc-muted) !important; cursor: not-allowed; }
.spc-link { background: none; border: 0; padding: 0; font: inherit; font-size: .9rem; font-weight: 600; color: var(--spc-primary) !important; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.spc-link--danger { color: #9B1C1C !important; }

/* segmented length switch */
.spc-seg { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--spc-soft); gap: 4px; }
.spc-seg button { border: 0; background: transparent; font: inherit; font-weight: 700; font-size: .92rem; color: var(--spc-muted); padding: .5rem 1.1rem; border-radius: 999px; cursor: pointer; min-height: 40px; }
.spc-seg button[aria-pressed="true"] { background: #fff; color: var(--spc-ink); box-shadow: 0 1px 3px rgba(30, 27, 58, .18); }
.spc-seg--full { display: flex; }
.spc-seg--full button { flex: 1; }

/* packages */
.spc-pk__head { display: grid; gap: .3rem; }
.spc-pk__list { display: grid; gap: .5rem; }
.spc-pk__row {
	display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem;
	width: 100%; text-align: left; font: inherit; color: var(--spc-ink);
	background: #fff; border: 1.5px solid var(--spc-line); border-radius: var(--spc-radius);
	padding: .75rem .9rem; cursor: pointer; transition: border-color .15s, background .15s;
}
.spc-pk__row:hover { border-color: color-mix(in srgb, var(--spc-primary) 45%, var(--spc-line)); }
.spc-pk__row.is-on { border-color: var(--spc-primary); background: color-mix(in srgb, var(--spc-primary) 6%, #fff); }
.spc-pk__radio { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--spc-line); position: relative; }
.spc-pk__row.is-on .spc-pk__radio { border-color: var(--spc-primary); }
.spc-pk__row.is-on .spc-pk__radio::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--spc-primary); }
.spc-pk__name { font-weight: 700; display: grid; }
.spc-pk__name .spc-tag { justify-self: start; margin: .2rem 0 .1rem; }
.spc-pk__name small { font-weight: 500; color: var(--spc-muted); font-size: .82rem; }
.spc-pk__price { display: grid; justify-items: end; line-height: 1.15; }
.spc-pk__price strong { font-size: 1.1rem; }
.spc-pk__price s { color: var(--spc-muted); font-size: .82rem; }
.spc-bal { background: #FFF6DB; border-radius: var(--spc-radius); padding: .65rem .85rem; font-size: .92rem; }
.spc-bal a { color: var(--spc-primary) !important; font-weight: 700; }

/* calendar */
.spc-book { container-type: inline-size; }
.spc-cal__top { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: flex-start; }
.spc-cal__top > div:first-child { display: grid; gap: .3rem; max-width: 60ch; }
.spc-cal__bar { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; justify-content: space-between; border-top: 1px solid var(--spc-line); padding-top: 1rem; }
.spc-cal__nav { display: flex; align-items: center; gap: .5rem; }
.spc-cal__range { font-weight: 700; min-width: 13ch; text-align: center; }
.spc-icon { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--spc-line); background: #fff; color: var(--spc-ink); font-size: 1.4rem; line-height: 1; cursor: pointer; display: grid; place-items: center; padding: 0 0 3px; }
.spc-icon:disabled { opacity: .35; cursor: default; }
.spc-tz { white-space: nowrap; display: flex; align-items: center; gap: .5rem; font-size: .88rem; color: var(--spc-muted); }
.spc-tz select { max-width: 240px; min-height: 40px; border: 1.5px solid var(--spc-line); border-radius: 10px; padding: .35rem .6rem; font: inherit; font-size: .9rem; color: var(--spc-ink); background: #fff; }
.spc-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.spc-col { display: grid; align-content: start; gap: .45rem; min-width: 0; }
.spc-col__head { display: grid; justify-items: center; padding: .45rem .2rem; border-radius: 10px; background: var(--spc-soft); line-height: 1.15; }
.spc-col__head span { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--spc-muted); font-weight: 700; }
.spc-col__head strong { font-size: 1.1rem; }
.spc-col.is-today .spc-col__head { background: var(--spc-accent); }
.spc-col.is-today .spc-col__head span { color: var(--spc-ink); }
.spc-col.is-past { opacity: .5; }
.spc-col__slots { display: grid; gap: .4rem; max-height: 340px; overflow-y: auto; padding: 2px; }
.spc-col__none { text-align: center; color: var(--spc-line); font-weight: 700; padding: .4rem 0; }
.spc-slot { font: inherit; font-weight: 700; font-size: .92rem; min-height: 40px; border-radius: 10px; border: 1.5px solid color-mix(in srgb, var(--spc-primary) 35%, var(--spc-line)); background: #fff; color: var(--spc-primary); cursor: pointer; padding: .35rem .2rem; font-variant-numeric: tabular-nums; }
.spc-slot:hover { background: var(--spc-soft); }
.spc-slot.is-on { background: var(--spc-primary); color: #fff; border-color: var(--spc-primary); }
.spc-days { display: none; gap: .9rem; }
.spc-chips { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; }
.spc-chip { font: inherit; display: grid; justify-items: center; gap: 1px; padding: .45rem 0; border-radius: 12px; border: 1.5px solid var(--spc-line); background: #fff; color: var(--spc-ink); cursor: pointer; line-height: 1.1; }
.spc-chip span { font-size: .7rem; text-transform: uppercase; font-weight: 700; color: var(--spc-muted); }
.spc-chip strong { font-size: 1rem; }
.spc-chip i { font-style: normal; font-size: .68rem; font-weight: 700; color: var(--spc-primary); min-height: .8rem; }
.spc-chip[data-empty] { opacity: .5; }
.spc-chip.is-on { border-color: var(--spc-primary); background: var(--spc-primary); color: #fff; opacity: 1; }
.spc-chip.is-on span, .spc-chip.is-on i { color: #fff; }
.spc-dayslots { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: .45rem; }
.spc-empty { text-align: center; color: var(--spc-muted); background: var(--spc-soft); border-radius: var(--spc-radius); padding: .8rem; }
.spc-status { font-size: .92rem; color: var(--spc-muted); }
.spc-err { color: #9B1C1C !important; font-weight: 600; }
.spc-okmsg { color: #0A6B3D; font-weight: 600; }
.spc-confirm { border: 2px solid var(--spc-primary); border-radius: var(--spc-radius); padding: 1rem 1.1rem; display: grid; gap: .55rem; background: color-mix(in srgb, var(--spc-primary) 5%, #fff); outline: none; }
.spc-confirm.is-ok { border-color: #178357; background: #EFFAF4; }
.spc-when { font-weight: 700; font-size: 1.05rem; }
.spc-when small { font-weight: 500; color: var(--spc-muted); font-size: .85rem; }
.spc-confirm__acts { display: flex; flex-wrap: wrap; gap: .6rem; }
@container (max-width: 600px) {
	.spc-week { display: none; }
	.spc-days { display: grid; }
	.spc-cal__bar { justify-content: center; }
	.spc-tz { width: 100%; }
	.spc-tz select { flex: 1; max-width: none; }
}

/* dashboard */
.spc-dash { display: grid; gap: 1.1rem; }
.spc-bal-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; }
.spc-balbox { flex: 1 1 140px; border: 1px solid var(--spc-line); border-radius: var(--spc-radius); padding: .8rem 1rem; display: grid; background: #fff; }
.spc-balbox span { font-size: .85rem; color: var(--spc-muted); }
.spc-balbox strong { font-size: 1.6rem; line-height: 1.2; }
.spc-bal-acts { flex: 2 1 260px; display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.spc-subh { font-size: 1.05rem; font-weight: 700; }
.spc-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.spc-item { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: .8rem 1rem; border-radius: var(--spc-radius); background: #fff; border: 1px solid var(--spc-line); }
.spc-item.is-live { border-color: var(--spc-primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--spc-primary) 25%, transparent); }
.spc-item__date { display: grid; place-items: center; width: 52px; height: 56px; border-radius: 12px; background: var(--spc-accent); color: #1E1B3A; line-height: 1; }
.spc-item__day { font-family: var(--spc-head); font-size: 1.4rem; font-weight: 700; }
.spc-item__mon { font-size: .72rem; text-transform: uppercase; font-weight: 700; letter-spacing: .08em; }
.spc-item__info { display: grid; gap: .15rem; min-width: 0; }
.spc-item__meta { font-size: .9rem; color: var(--spc-muted); }
.spc-item__note { font-size: .8rem; color: var(--spc-muted); }
.spc-item__acts { display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center; justify-content: flex-end; }
.spc-ask { font-size: .9rem; display: inline-flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.spc-emptyrow { padding: 1rem; border: 1px dashed var(--spc-line); border-radius: var(--spc-radius); color: var(--spc-muted); text-align: center; }
@media (max-width: 640px) {
	.spc-item { grid-template-columns: auto 1fr; }
	.spc-item__acts { grid-column: 1 / -1; justify-content: flex-start; }
}

/* placement inside the Frencheezy live section */
.fz-live__grid .spc-packages { align-self: center; }
.fz-live-section .spc-book { position: relative; z-index: 1; margin-top: clamp(2rem, 5vw, 3.5rem); }
