/*
 * Aucip Book front end. Brand: "Atelier" – calm spruce + warm clay on sand, Newsreader (display) +
 * Figtree (body/UI). Every token can be overridden by a theme via
 * theme.json → settings.custom.aucipBook.* (exposed as --wp--custom--aucip-book--*).
 */
/* Atelier font pair (self-hosted, OFL; Latin + Latin-ext subset). Licences in assets/fonts/. */
@font-face { font-family: "Newsreader"; src: url("../fonts/newsreader-latin-var.woff2") format("woff2"); font-weight: 500 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree-latin-var.woff2") format("woff2"); font-weight: 300 900; font-style: normal; font-display: swap; }
.aucip-book {
	/* Palette */
	--ab-primary: var(--wp--custom--aucip-book--primary, #24524c);
	--ab-primary-strong: var(--wp--custom--aucip-book--primary-strong, color-mix(in srgb, var(--ab-primary) 78%, #000));
	--ab-primary-soft: var(--wp--custom--aucip-book--primary-soft, color-mix(in srgb, var(--ab-primary) 10%, #fff));
	--ab-on-primary: var(--wp--custom--aucip-book--on-primary, #fff);
	--ab-accent: var(--wp--custom--aucip-book--accent, #b4643f);
	--ab-accent-soft: var(--wp--custom--aucip-book--accent-soft, color-mix(in srgb, var(--ab-accent) 12%, #fff));
	--ab-surface: var(--wp--custom--aucip-book--surface, #fbf8f3);
	--ab-card: var(--wp--custom--aucip-book--card, #fff);
	--ab-ink: var(--wp--custom--aucip-book--ink, #1e2724);
	--ab-muted: var(--wp--custom--aucip-book--muted, #5b6662);
	--ab-line: var(--wp--custom--aucip-book--line, #e5ded3);
	--ab-ok: #3c7553;
	--ab-ok-soft: #e7f2ea;
	--ab-warn: #94600f;
	--ab-warn-soft: #fbf1df;
	--ab-err: #a83a30;
	--ab-err-soft: #fbeae7;
	/* Type: system serif for display, theme font for body (respects theme.json typography). */
	--ab-font-display: var(--wp--custom--aucip-book--font-display, "Newsreader", Georgia, serif);
	--ab-font-body: var(--wp--custom--aucip-book--font-body, "Figtree", system-ui, sans-serif);
	--ab-text-xs: .8125rem;
	--ab-text-sm: .875rem;
	--ab-text-base: 1rem;
	--ab-text-lg: 1.125rem;
	--ab-text-xl: 1.375rem;
	--ab-text-2xl: 1.75rem;
	--ab-leading: 1.45;
	/* Spacing (4px base) */
	--ab-space-1: .25rem;
	--ab-space-2: .5rem;
	--ab-space-3: .75rem;
	--ab-space-4: 1rem;
	--ab-space-5: 1.5rem;
	--ab-space-6: 2rem;
	--ab-radius-sm: var(--wp--custom--aucip-book--radius-sm, 8px);
	--ab-radius: var(--wp--custom--aucip-book--radius, 14px);
	--ab-radius-pill: 999px;
	--ab-shadow: 0 1px 2px rgb(30 39 36 / 6%), 0 4px 16px rgb(30 39 36 / 6%);
	/* Text/icons/borders in the accent: darkened toward ink so light accents stay readable; PHP sets it to the accent itself when the accent is dark. */
	--ab-primary-ink: color-mix(in srgb, var(--ab-primary) 45%, var(--ab-ink));
	--ab-focus: 0 0 0 3px color-mix(in srgb, var(--ab-primary-ink) 40%, transparent);
	--ab-ease: cubic-bezier(.2, .7, .3, 1);
	--ab-dur: 180ms;

	box-sizing: border-box;
	max-width: 42rem;
	color: var(--ab-ink);
	font-family: var(--ab-font-body);
	font-size: var(--ab-text-base);
	line-height: var(--ab-leading);
}
.aucip-book *, .aucip-book *::before, .aucip-book *::after { box-sizing: border-box; }
.aucip-book [hidden] { display: none !important; }
.aucip-book select, .aucip-book input, .aucip-book button { font-family: inherit; line-height: var(--ab-leading); }
.aucip-book .ab-icon { flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.aucip-book button { font: inherit; }
.aucip-book :focus-visible { outline: none; box-shadow: var(--ab-focus); }

/* ---------- Card shell ---------- */
.aucip-book__card {
	background: var(--ab-card);
	border: 1px solid var(--ab-line);
	border-radius: var(--ab-radius);
	box-shadow: var(--ab-shadow);
	padding: var(--ab-space-5);
}
.aucip-book__form { display: grid; gap: var(--ab-space-5); }
.aucip-book__step { display: grid; gap: var(--ab-space-3); margin: 0; padding: 0; border: 0; min-width: 0; }
.aucip-book__step-title {
	display: flex; align-items: center; gap: var(--ab-space-2);
	margin: 0; padding: 0;
	font-size: var(--ab-text-sm); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ab-muted);
}
.aucip-book__step-num {
	display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem;
	border-radius: var(--ab-radius-pill); background: var(--ab-primary-soft); color: var(--ab-primary-ink);
	font-family: var(--ab-font-display); font-size: var(--ab-text-sm); letter-spacing: 0;
}

/* ---------- Inputs ---------- */
.aucip-book__control { position: relative; display: block; }
.aucip-book__control > .ab-icon { position: absolute; inset-inline-start: var(--ab-space-3); top: 50%; translate: 0 -50%; color: var(--ab-primary-ink); pointer-events: none; }
.aucip-book__control > .ab-icon--chevronDown { inset-inline: auto var(--ab-space-3); color: var(--ab-muted); }
.aucip-book select, .aucip-book input[type="date"] {
	appearance: none; -webkit-appearance: none;
	width: 100%; min-height: 48px; margin: 0;
	padding: var(--ab-space-2) calc(var(--ab-space-3) + 28px);
	border: 1px solid var(--ab-line); border-radius: var(--ab-radius-sm);
	background: var(--ab-card); color: var(--ab-ink);
	font: inherit; font-size: var(--ab-text-base);
	transition: border-color var(--ab-dur) var(--ab-ease), box-shadow var(--ab-dur) var(--ab-ease);
}
.aucip-book select:hover, .aucip-book input[type="date"]:hover { border-color: color-mix(in srgb, var(--ab-primary) 45%, var(--ab-line)); }
.aucip-book select:focus, .aucip-book input[type="date"]:focus { outline: none; border-color: var(--ab-primary-ink); box-shadow: var(--ab-focus); }
.aucip-book__sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.aucip-book__addons { display: grid; gap: var(--ab-space-2); margin: 0; padding: 0; border: 0; }
.aucip-book__addons legend { padding: 0; margin-bottom: var(--ab-space-2); font-size: var(--ab-text-sm); color: var(--ab-muted); }
.aucip-book__check {
	display: flex; align-items: center; gap: var(--ab-space-3); min-height: 48px;
	padding: var(--ab-space-2) var(--ab-space-3); border: 1px solid var(--ab-line); border-radius: var(--ab-radius-sm);
	cursor: pointer; transition: border-color var(--ab-dur) var(--ab-ease), background-color var(--ab-dur) var(--ab-ease);
}
.aucip-book__check:has(input:checked) { border-color: var(--ab-primary-ink); background: var(--ab-primary-soft); }
.aucip-book__check input { width: 1.125rem; height: 1.125rem; margin: 0; accent-color: var(--ab-primary); }
.aucip-book__check span { flex: 1; }
.aucip-book__check small { color: var(--ab-muted); font-size: var(--ab-text-sm); white-space: nowrap; }

/* ---------- Day strip ---------- */
.aucip-book__days {
	display: grid; grid-auto-flow: column; grid-auto-columns: minmax(3.5rem, 1fr); gap: var(--ab-space-2);
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
	margin: 0 calc(var(--ab-space-1) * -1); padding: var(--ab-space-1);
}
.aucip-book__days::-webkit-scrollbar { display: none; }
.aucip-book__day {
	display: grid; justify-items: center; gap: 2px; min-height: 60px; padding: var(--ab-space-2) 0;
	border: 1px solid var(--ab-line); border-radius: var(--ab-radius-sm); background: var(--ab-card); color: var(--ab-ink);
	cursor: pointer; scroll-snap-align: start;
	transition: border-color var(--ab-dur) var(--ab-ease), background-color var(--ab-dur) var(--ab-ease), transform var(--ab-dur) var(--ab-ease);
}
.aucip-book__day small { font-size: var(--ab-text-xs); color: var(--ab-muted); text-transform: uppercase; letter-spacing: .04em; }
.aucip-book__day strong { font-family: var(--ab-font-display); font-size: var(--ab-text-lg); font-weight: 600; line-height: 1; }
.aucip-book__day:hover { border-color: var(--ab-primary-ink); }
.aucip-book__day[aria-pressed="true"] { background: var(--ab-primary); border-color: var(--ab-primary-ink); color: var(--ab-on-primary); }
.aucip-book__day[aria-pressed="true"] small { color: inherit; opacity: .8; }
.aucip-book__date-more { display: flex; align-items: center; gap: var(--ab-space-2); font-size: var(--ab-text-sm); color: var(--ab-muted); }
.aucip-book__date-more .aucip-book__control { flex: 1; max-width: 14rem; }
.aucip-book__date-more input[type="date"] { min-height: 40px; font-size: var(--ab-text-sm); }

/* ---------- Slots ---------- */
.aucip-book__slots { display: grid; gap: var(--ab-space-4); min-height: 7.5rem; align-content: start; }
.aucip-book__slot-group { display: grid; gap: var(--ab-space-2); }
.aucip-book__slot-group h4 { margin: 0; font-size: var(--ab-text-xs); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ab-muted); }
.aucip-book__slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); gap: var(--ab-space-2); }
.aucip-book__slot-grid > .aucip-book__state, .aucip-book__slot-grid > .aucip-book-my__meta { grid-column: 1 / -1; }
.aucip-book__slot {
	position: relative; min-height: 44px; padding: 0 var(--ab-space-2);
	border: 1px solid var(--ab-line); border-radius: var(--ab-radius-pill); background: var(--ab-card); color: var(--ab-ink);
	font-size: var(--ab-text-sm); font-variant-numeric: tabular-nums; white-space: nowrap; cursor: pointer;
	transition: border-color var(--ab-dur) var(--ab-ease), background-color var(--ab-dur) var(--ab-ease), color var(--ab-dur) var(--ab-ease), transform 120ms var(--ab-ease);
}
.aucip-book__slot:hover { border-color: var(--ab-primary-ink); color: var(--ab-primary-ink); }
.aucip-book__slot:active, .aucip-book__day:active { transform: scale(.96); }
.aucip-book__slot[aria-checked="true"] { background: var(--ab-primary); border-color: var(--ab-primary-ink); color: var(--ab-on-primary); }

/* ---------- Summary + primary action ---------- */
.aucip-book__summary {
	display: flex; align-items: center; gap: var(--ab-space-3);
	padding: var(--ab-space-3) var(--ab-space-4); border-radius: var(--ab-radius-sm);
	background: var(--ab-surface); border: 1px dashed var(--ab-line); color: var(--ab-muted); font-size: var(--ab-text-sm);
}
.aucip-book__summary.is-ready { border-style: solid; border-color: color-mix(in srgb, var(--ab-primary) 30%, var(--ab-line)); background: var(--ab-primary-soft); color: var(--ab-ink); }
.aucip-book__summary b { color: var(--ab-ink); font-weight: 600; }
.aucip-book__summary .aucip-book__price { margin-inline-start: auto; font-family: var(--ab-font-display); font-size: var(--ab-text-lg); color: var(--ab-ink); white-space: nowrap; }
.aucip-book__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--ab-space-2);
	min-height: 48px; padding: 0 var(--ab-space-5);
	border: 1px solid transparent; border-radius: var(--ab-radius-pill);
	background: var(--ab-primary); color: var(--ab-on-primary);
	font-weight: 600; font-size: var(--ab-text-base); text-decoration: none; cursor: pointer;
	transition: background-color var(--ab-dur) var(--ab-ease), transform 120ms var(--ab-ease), box-shadow var(--ab-dur) var(--ab-ease);
}
.aucip-book__btn:hover { background: var(--ab-primary-strong); color: var(--ab-on-primary); }
.aucip-book__btn:active { transform: translateY(1px); }
.aucip-book__btn:disabled { background: var(--ab-line); color: var(--ab-muted); cursor: not-allowed; }
.aucip-book__btn.is-busy { pointer-events: none; }
.aucip-book__btn.is-busy::after { content: ""; width: 1rem; height: 1rem; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: ab-spin .7s linear infinite; }
.aucip-book__add { width: 100%; }
.aucip-book__btn--ghost { background: transparent; color: var(--ab-primary-ink); border-color: var(--ab-line); }
.aucip-book__btn--ghost:hover { background: var(--ab-primary-soft); color: var(--ab-primary-strong); }
.aucip-book__btn--sm { min-height: 40px; padding: 0 var(--ab-space-4); font-size: var(--ab-text-sm); }
.aucip-book__btn--danger { background: var(--ab-err); }
.aucip-book__btn--danger:hover { background: color-mix(in srgb, var(--ab-err) 85%, #000); }
.aucip-book__link {
	display: inline-flex; align-items: center; gap: var(--ab-space-1); min-height: 44px; padding: 0 var(--ab-space-1);
	border: 0; background: none; color: var(--ab-primary-ink); font-size: var(--ab-text-sm); font-weight: 600; cursor: pointer; text-decoration: none;
}
.aucip-book__link:hover { color: var(--ab-primary-strong); text-decoration: underline; text-underline-offset: 3px; }
.aucip-book__icon-btn {
	display: inline-grid; place-items: center; width: 40px; height: 40px; flex: none;
	border: 0; border-radius: var(--ab-radius-pill); background: transparent; color: var(--ab-muted); cursor: pointer;
	transition: background-color var(--ab-dur) var(--ab-ease), color var(--ab-dur) var(--ab-ease);
}
.aucip-book__icon-btn:hover { background: var(--ab-err-soft); color: var(--ab-err); }

/* ---------- Bag ---------- */
.aucip-book__bag { margin-top: var(--ab-space-4); }
.aucip-book__bag:empty { display: none; }
.aucip-book__bag-head { display: flex; align-items: center; gap: var(--ab-space-2); margin: 0 0 var(--ab-space-3); font-family: var(--ab-font-display); font-size: var(--ab-text-xl); font-weight: 600; }
.aucip-book__count.is-bump { animation: ab-bump 420ms var(--ab-ease); }
.aucip-book__later { display: flex; align-items: center; gap: var(--ab-space-2); margin-top: var(--ab-space-2); padding: var(--ab-space-2) var(--ab-space-3); border-radius: var(--ab-radius-sm); background: var(--ab-surface); color: var(--ab-muted); font-size: var(--ab-text-sm); }
.aucip-book__later strong { margin-inline-start: auto; color: var(--ab-ink); font-variant-numeric: tabular-nums; }
.aucip-book__count { display: inline-grid; place-items: center; min-width: 1.5rem; height: 1.5rem; padding: 0 .4rem; border-radius: var(--ab-radius-pill); background: var(--ab-accent); color: #fff; font-family: var(--ab-font-body); font-size: var(--ab-text-xs); font-weight: 700; }
.aucip-book__bag ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.aucip-book__item { display: flex; align-items: flex-start; gap: var(--ab-space-3); padding: var(--ab-space-3) 0; border-top: 1px solid var(--ab-line); }
.aucip-book__item:first-child { border-top: 0; padding-top: 0; }
.aucip-book__item.is-new { animation: ab-in 320ms var(--ab-ease); }
.aucip-book__item-body { flex: 1; min-width: 0; display: grid; gap: 2px; }
.aucip-book__item-title { font-weight: 600; }
.aucip-book__item-meta { color: var(--ab-muted); font-size: var(--ab-text-sm); }
.aucip-book__hold { display: inline-flex; align-items: center; gap: var(--ab-space-1); width: fit-content; margin-top: var(--ab-space-1); padding: 2px var(--ab-space-2); border-radius: var(--ab-radius-pill); background: var(--ab-accent-soft); color: var(--ab-accent); font-size: var(--ab-text-xs); font-weight: 600; }
.aucip-book__hold .ab-icon { width: 14px; height: 14px; }
.aucip-book__item-price { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; padding-top: 1px; }
.aucip-book__bag-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ab-space-3); margin-top: var(--ab-space-3); padding-top: var(--ab-space-4); border-top: 1px solid var(--ab-line); }
.aucip-book__total { display: grid; font-size: var(--ab-text-sm); color: var(--ab-muted); }
.aucip-book__total strong { font-family: var(--ab-font-display); font-size: var(--ab-text-2xl); line-height: 1.1; color: var(--ab-ink); font-variant-numeric: tabular-nums; }

/* ---------- States ---------- */
.aucip-book__state { display: grid; justify-items: center; gap: var(--ab-space-2); padding: var(--ab-space-5) var(--ab-space-4); border-radius: var(--ab-radius-sm); background: var(--ab-surface); text-align: center; color: var(--ab-muted); font-size: var(--ab-text-sm); }
.aucip-book__state > .ab-icon { width: 32px; height: 32px; color: var(--ab-primary-ink); }
.aucip-book__state strong { color: var(--ab-ink); font-size: var(--ab-text-base); }
.aucip-book__state .aucip-book__btn { margin-top: var(--ab-space-2); }
.aucip-book__state--error { background: var(--ab-err-soft); }
.aucip-book__state--error > .ab-icon { color: var(--ab-err); }
.aucip-book__msg { display: flex; align-items: flex-start; gap: var(--ab-space-2); margin: 0; padding: var(--ab-space-3); border-radius: var(--ab-radius-sm); font-size: var(--ab-text-sm); }
.aucip-book__msg:empty { display: none; }
.aucip-book__msg.is-error { background: var(--ab-err-soft); color: var(--ab-err); }
.aucip-book__msg.is-warn { flex-wrap: wrap; align-items: center; background: var(--ab-warn-soft); color: var(--ab-warn); }
.aucip-book__msg.is-warn > span { flex: 1 1 12rem; }
.aucip-book__msg.is-ok { background: var(--ab-ok-soft); color: var(--ab-ok); }
.aucip-book__skel { display: block; border-radius: var(--ab-radius-sm); background: linear-gradient(90deg, #efe9e0 0%, #f7f3ed 50%, #efe9e0 100%) 0 0 / 200% 100%; animation: ab-shimmer 1.3s linear infinite; }
.aucip-book__skel--pill { height: 44px; border-radius: var(--ab-radius-pill); }
.aucip-book__skel--field { height: 48px; }
.aucip-book__skel--label { height: .75rem; width: 7rem; }
.aucip-book__skel--card { height: 5.5rem; border-radius: var(--ab-radius); }
.aucip-book__skeleton { display: grid; gap: var(--ab-space-4); }

/* Server-rendered placeholder reserves the form's space (CLS). */
.aucip-book[data-aucip-book-form] { min-height: 36rem; }
.aucip-book[data-aucip-book-my] { min-height: 12rem; }

/* ---------- My Appointments ---------- */
.aucip-book-my { display: grid; gap: var(--ab-space-3); margin: 0; padding: 0; list-style: none; }
.aucip-book-my__section { margin: var(--ab-space-5) 0 var(--ab-space-3); font-size: var(--ab-text-xs); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ab-muted); }
.aucip-book-my__section:first-child { margin-top: 0; }
.aucip-book-my__item { display: grid; grid-template-columns: auto 1fr; gap: var(--ab-space-4); padding: var(--ab-space-4); border: 1px solid var(--ab-line); border-radius: var(--ab-radius); background: var(--ab-card); animation: ab-in 280ms var(--ab-ease) both; }
.aucip-book-my__date { display: grid; place-content: center; justify-items: center; width: 3.75rem; height: 4rem; border-radius: var(--ab-radius-sm); background: var(--ab-primary-soft); color: var(--ab-primary-ink); }
.aucip-book-my__date small { font-size: var(--ab-text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.aucip-book-my__date strong { font-family: var(--ab-font-display); font-size: var(--ab-text-2xl); line-height: 1; }
.aucip-book-my__body { display: grid; gap: var(--ab-space-1); min-width: 0; }
.aucip-book-my__top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ab-space-2); }
.aucip-book-my__title { font-weight: 600; font-size: var(--ab-text-lg); }
.aucip-book-my__meta { display: flex; flex-wrap: wrap; gap: var(--ab-space-1) var(--ab-space-4); color: var(--ab-muted); font-size: var(--ab-text-sm); }
.aucip-book-my__meta span { display: inline-flex; align-items: center; gap: var(--ab-space-1); }
.aucip-book-my__meta .ab-icon { width: 16px; height: 16px; }
.aucip-book-my__actions { display: flex; flex-wrap: wrap; gap: var(--ab-space-2); margin-top: var(--ab-space-2); }
.aucip-book-my__panel { grid-column: 1 / -1; display: grid; gap: var(--ab-space-3); padding: var(--ab-space-4); border-radius: var(--ab-radius-sm); background: var(--ab-surface); animation: ab-in 220ms var(--ab-ease); }
.aucip-book-my__panel p { margin: 0; font-size: var(--ab-text-sm); }
.aucip-book-my__item.is-cancelled, .aucip-book-my__item.is-completed, .aucip-book-my__item.is-no_show { background: var(--ab-surface); }
.aucip-book-my__item.is-cancelled .aucip-book-my__date { background: var(--ab-line); color: var(--ab-muted); }
.aucip-book-my__item.is-cancelled .aucip-book-my__title { text-decoration: line-through; text-decoration-color: var(--ab-muted); color: var(--ab-muted); }
.aucip-book__pill { display: inline-flex; align-items: center; padding: 1px var(--ab-space-2); border-radius: var(--ab-radius-pill); font-size: var(--ab-text-xs); font-weight: 600; background: var(--ab-line); color: var(--ab-muted); }
.aucip-book__pill.is-confirmed { background: var(--ab-ok-soft); color: var(--ab-ok); }
.aucip-book__pill.is-pending { background: var(--ab-warn-soft); color: var(--ab-warn); }
.aucip-book__pill.is-cancelled, .aucip-book__pill.is-no_show { background: var(--ab-err-soft); color: var(--ab-err); }
.aucip-book__pill.is-balance { background: var(--ab-accent-soft); color: var(--ab-accent); }

/* ---------- Service & staff lists ---------- */
.aucip-book-services h3 { margin: var(--ab-space-5) 0 var(--ab-space-2); font-family: var(--ab-font-display); font-size: var(--ab-text-xl); }
.aucip-book-services__list { display: grid; margin: 0; padding: 0; list-style: none; }
.aucip-book-services__list li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ab-space-2) var(--ab-space-4); padding: var(--ab-space-3) 0; border-bottom: 1px solid var(--ab-line); }
.aucip-book-services__name { flex: 1 1 12rem; font-weight: 600; }
.aucip-book-services__meta { color: var(--ab-muted); font-size: var(--ab-text-sm); font-variant-numeric: tabular-nums; }
.aucip-book-services__book { display: inline-flex; align-items: center; gap: var(--ab-space-1); min-height: 40px; padding: 0 var(--ab-space-4); border-radius: var(--ab-radius-pill); background: var(--ab-primary-soft); color: var(--ab-primary-ink); font-weight: 600; font-size: var(--ab-text-sm); text-decoration: none; transition: background-color var(--ab-dur) var(--ab-ease); }
.aucip-book-services__book:hover { background: var(--ab-primary); color: var(--ab-on-primary); }
.aucip-book-staff ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: var(--ab-space-4); margin: 0; padding: 0; list-style: none; }
.aucip-book-staff li { display: grid; grid-template-columns: auto 1fr; gap: var(--ab-space-1) var(--ab-space-3); align-items: center; padding: var(--ab-space-4); border: 1px solid var(--ab-line); border-radius: var(--ab-radius); background: var(--ab-card); }
.aucip-book-staff li img, .aucip-book__avatar { grid-row: span 2; width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; }
.aucip-book__avatar { display: grid; place-items: center; background: var(--ab-accent-soft); color: var(--ab-accent); font-family: var(--ab-font-display); font-weight: 600; font-size: var(--ab-text-lg); }
.aucip-book-staff li p { margin: 0; color: var(--ab-muted); font-size: var(--ab-text-sm); }

/* ---------- Motion ---------- */
@keyframes ab-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes ab-shimmer { to { background-position: -200% 0; } }
@keyframes ab-spin { to { transform: rotate(360deg); } }
@keyframes ab-bump { 40% { transform: scale(1.35); } }
@media (prefers-reduced-motion: reduce) {
	.aucip-book *, .aucip-book *::before, .aucip-book *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; scroll-behavior: auto !important; }
	.aucip-book__skel { animation: none; }
}

/* ---------- Small screens (360–414) ---------- */
@media (max-width: 480px) {
	.aucip-book__card { padding: var(--ab-space-4); border-radius: var(--ab-radius-sm); }
	.aucip-book__form { gap: var(--ab-space-4); }
	.aucip-book__slot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.aucip-book__days { grid-auto-columns: calc((100% - 4 * var(--ab-space-2)) / 5); }
	.aucip-book__summary { flex-wrap: wrap; }
	.aucip-book__bag-foot .aucip-book__btn { flex: 1 1 100%; }
	.aucip-book-my__item { grid-template-columns: 1fr; gap: var(--ab-space-3); }
	.aucip-book-my__date { grid-auto-flow: column; gap: var(--ab-space-2); width: auto; height: auto; padding: var(--ab-space-1) var(--ab-space-3); justify-content: start; align-items: baseline; }
	.aucip-book-my__date strong { font-size: var(--ab-text-lg); }
	.aucip-book-my__actions .aucip-book__btn { flex: 1; }
}

/* ---------- Pay-on-site, hold warning, toast ---------- */
.aucip-book__paylater { display: flex; flex-wrap: wrap; gap: var(--ab-space-1); align-items: center; margin-top: var(--ab-space-1); font-size: var(--ab-text-sm); color: var(--ab-muted); }
.aucip-book__paylater strong { font-family: inherit; font-size: inherit; color: var(--ab-ink); font-variant-numeric: tabular-nums; }
.aucip-book__hold.is-expiring { background: var(--ab-warn-soft); color: var(--ab-warn); }

/* ---------- WooCommerce cart & checkout (classic + blocks): appointment lines ---------- */
.wc-block-cart-items__row.is-aucip-appointment .wc-block-components-quantity-selector,
.wc-block-cart-items__row.is-aucip-appointment .wc-block-cart-item__quantity .wc-block-components-quantity-selector,
.woocommerce-cart-form .cart_item.is-aucip-appointment .quantity { display: none !important; }
.is-aucip-appointment .wc-block-components-product-details { display: grid; gap: 2px; margin-top: 4px; }
.is-aucip-appointment .wc-block-components-product-details > li { display: block !important; }
.is-aucip-appointment .wc-block-components-product-details > li::after { content: none !important; display: none !important; }
.is-aucip-appointment .wc-block-components-product-details__name { font-weight: 600; }
.wc-block-components-totals-item.aucip-book-paylater .wc-block-components-totals-item__label { color: #5b6662; font-weight: 400; }
.aucip-book-paylater-row th, .aucip-book-paylater-row td { color: #5b6662; font-weight: 400; }
/* Block cart/checkout: WooCommerce joins item details with an aria-hidden " / " span. Appointment lines show one detail per line instead. */
.is-aucip-appointment .wc-block-components-product-details > span > span[aria-hidden="true"],
.wc-block-cart-items__row:has(img[src*="aucip-book/assets/img/appointment.svg"]) .wc-block-components-product-details > span > span[aria-hidden="true"],
.wc-block-components-order-summary-item:has(img[src*="aucip-book/assets/img/appointment.svg"]) .wc-block-components-product-details > span > span[aria-hidden="true"] { display: none; }
.is-aucip-appointment .wc-block-components-product-details > span,
.wc-block-cart-items__row:has(img[src*="aucip-book/assets/img/appointment.svg"]) .wc-block-components-product-details > span,
.wc-block-components-order-summary-item:has(img[src*="aucip-book/assets/img/appointment.svg"]) .wc-block-components-product-details > span { display: block; }
.wc-block-cart-items__row:has(img[src*="aucip-book/assets/img/appointment.svg"]) .wc-block-components-quantity-selector { display: none !important; }
.aucip-book__hold.is-expired { background: var(--ab-warn-soft); color: var(--ab-warn); }

/* Designer: never show WooCommerce's detail separators on any line (pseudo-element variants). */
.wc-block-components-product-details__value::after,
.wc-block-components-product-details > li::after { content: none !important; }
/* Day strip: fade the scroll edge so it reads as scrollable. */
.aucip-book__days { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); }

/* Display face: headings, step titles, prices. Optical sizing on, weights 500-600. */
.aucip-book h2, .aucip-book h3, .aucip-book__step-title, .aucip-book__price, .aucip-book__total strong, .aucip-book__bag-head, .aucip-book__day strong, .aucip-book-my__date strong, .aucip-book-services h3 { font-family: var(--ab-font-display); font-optical-sizing: auto; letter-spacing: -0.01em; font-weight: 600; }
.aucip-book__price { font-weight: 500; }
