/* ==========================================================================
   Specialist profile (redesign, 2026-10-17; owner: "the whole profile page style is not attractive: not modern, not up to date, not chic").
   Loaded ONLY on the specialist profile, after simple.css (functions.php, priority 101). Everything is scoped to .client-profile (the page) or to
   .client-profile .booking-widget (the booking panel), so the checkout and the dashboards, which share some class names, are untouched.

   Direction, "calm clinic": a light, brand-tinted hero (soft glow, round-cornered portrait with a verified mark, the name as the dominant headline,
   a few icon facts as pills, one clear booking button); pill tabs pinned under the site header that follow the section being read; airy white cards
   (large radius, hairline border, soft shadow, no top accent bars); an elevated sticky booking panel on desktop and a bottom sheet on phones.
   Only --ds-* tokens are used for colour. The few extra values below (shadows, radii, the sand tint of RavanLine) are declared once on .client-profile;
   text pairs are listed in docs/ui-redesign/contrast.md ("Specialist profile (2026-10-17)").
   ========================================================================== */

.client-profile {
	--pf-tint: var(--ds-mint);
	--pf-tint-strong: var(--ds-mint-strong);
	--pf-glow: 0, 166, 147;            /* r, g, b of the brand glow behind the hero (decoration only) */
	--pf-avatar: var(--ds-grad-brand);  /* white initial on it: every stop is >= 4.5:1 */
	--pf-r-xl: 28px;
	--pf-r-lg: 24px;
	--pf-r-md: 16px;
	--pf-shadow: 0 1px 2px rgba(23, 43, 42, 0.05), 0 16px 36px -22px rgba(23, 43, 42, 0.28);
	--pf-shadow-lift: 0 2px 4px rgba(23, 43, 42, 0.06), 0 24px 48px -22px rgba(23, 43, 42, 0.36);
	--pf-header: var(--pf-header-h, var(--ds-header-h));   /* measured by profile-nav.js */
	--pf-tabs-h: 3.75rem;
}
/* RavanLine: the same layout on warm sand with the brand brown as the glow (action colours stay the shared teal, as everywhere on that site) */
body.is-ravanline .client-profile {
	--pf-tint: var(--ds-accent-bg);
	--pf-tint-strong: #F4E8D8;
	--pf-glow: 138, 90, 43;
	--pf-avatar: linear-gradient(135deg, #5E3A17 0%, #7A4E22 55%, #8A5A2B 100%);   /* white on every stop >= 5.4:1 */
}
html:has(.prof-tabs) { scroll-padding-block-start: calc(var(--pf-header-h, var(--ds-header-h)) + 4.5rem); }

.client-profile .breadcrumb { margin-block-end: var(--ds-space-4); }

/* ---------- layout: hero + tabs + cards on the left, the booking panel on the right ---------- */
.client-profile .pf-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ds-space-6); align-items: start; }
.client-profile .pf-main { min-inline-size: 0; }
@media (min-width: 900px) {
	.client-profile .pf-layout { grid-template-columns: minmax(0, 1fr) 25rem; gap: var(--ds-space-8); }
}

/* ==========================================================================
   1. Hero
   ========================================================================== */
.pf-hero {
	position: relative; isolation: isolate; overflow: hidden;
	padding: var(--ds-space-8);
	border: 1px solid rgba(var(--pf-glow), 0.2); border-radius: var(--pf-r-xl);
	background:
		radial-gradient(34rem 18rem at 100% -15%, rgba(var(--pf-glow), 0.16), transparent 65%),
		radial-gradient(26rem 14rem at -8% 115%, rgba(var(--pf-glow), 0.12), transparent 62%),
		linear-gradient(180deg, var(--ds-surface) 0%, var(--pf-tint) 100%);
	box-shadow: var(--pf-shadow);
}
/* two soft rings in the corner: pure decoration */
.pf-hero::before {
	content: ""; position: absolute; z-index: -1; inset-inline-end: -4.5rem; inset-block-start: -6rem;
	inline-size: 13rem; block-size: 13rem; border-radius: 50%;
	box-shadow: 0 0 0 2rem rgba(var(--pf-glow), 0.06), 0 0 0 4.5rem rgba(var(--pf-glow), 0.04);
}
.pf-hero__top { display: flex; align-items: center; gap: var(--ds-space-6); }
.pf-hero__portrait { position: relative; flex: none; inline-size: 9rem; block-size: 9rem; }
.pf-hero__portrait > img, .pf-hero__initial {
	display: block; inline-size: 100%; block-size: 100%; border-radius: 32px; object-fit: cover;
	border: 4px solid var(--ds-surface); box-shadow: 0 14px 30px -14px rgba(23, 43, 42, 0.5);
}
.pf-hero__initial { display: grid; place-items: center; background: var(--pf-avatar); color: #fff; font-size: 3.5rem; font-weight: var(--ds-fw-bold); line-height: 1; }
.pf-hero__check {
	position: absolute; inset-inline-end: -0.375rem; inset-block-end: -0.375rem;
	display: grid; place-items: center; inline-size: 2.25rem; block-size: 2.25rem; border-radius: 50%;
	background: var(--ds-action); color: var(--ds-on-action); border: 3px solid var(--ds-surface);
	box-shadow: 0 6px 14px -6px rgba(0, 91, 80, 0.7);
}
.pf-hero__check .ds-icon { display: none; }
.pf-hero__check::before {
	content: ""; inline-size: 1.125rem; block-size: 1.125rem; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pf-hero__id { min-inline-size: 0; display: grid; justify-items: start; gap: var(--ds-space-2); }
.pf-hero__verified { display: inline-flex; align-items: center; gap: var(--ds-space-2); margin: 0; padding: 0.25rem 0.75rem 0.25rem 0.625rem; padding-inline: 0.625rem 0.75rem; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-pill); background: var(--ds-surface); color: var(--ds-deep); font-size: var(--ds-fs-xs); font-weight: var(--ds-fw-semibold); line-height: 1.4; }
.pf-hero__verified .ds-icon { flex: none; color: var(--ds-action); }
.pf-hero__name { margin: 0; color: var(--ds-text); font-size: clamp(1.75rem, 1.25rem + 1.9vw, 2.625rem); font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.pf-hero__role { margin: 0; color: var(--ds-text-2); font-size: var(--ds-fs-lg); font-weight: var(--ds-fw-medium); line-height: 1.5; }
.pf-hero__degrees { display: flex; flex-wrap: wrap; gap: var(--ds-space-2); margin: 0; padding: 0; list-style: none; }
.pf-hero__degrees .credential-pill { margin: 0; padding: 0.25rem 0.75rem; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-pill); background: rgba(255, 255, 255, 0.72); color: var(--ds-text); font-size: var(--ds-fs-xs); font-weight: var(--ds-fw-medium); }
.pf-rating { position: relative; display: inline-flex; align-items: center; gap: var(--ds-space-2); margin: 0; padding: 0.25rem 0.875rem 0.25rem 0.75rem; padding-inline: 0.75rem 0.875rem; border-radius: var(--ds-radius-pill); background: var(--ds-accent-bg); color: var(--ds-accent); font-size: var(--ds-fs-sm); text-decoration: none; }
.pf-rating .ds-icon { fill: var(--ds-star); stroke: var(--ds-accent); flex: none; }
.pf-rating strong { font-weight: var(--ds-fw-bold); }
.pf-rating--few { background: var(--ds-surface); border: 1px solid var(--ds-line); color: var(--ds-text-2); }
.pf-rating--few strong { color: var(--ds-text); }
a.pf-rating::after { content: ""; position: absolute; inset: -0.375rem -0.25rem; }   /* 44px tap area around the 36px chip */
a.pf-rating:hover { background: var(--ds-f-amber-bg); }
a.pf-rating:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }

/* the facts as refined pills */
.pf-hero__facts { display: flex; flex-wrap: wrap; gap: var(--ds-space-2); margin: var(--ds-space-6) 0 0; padding: 0; list-style: none; }
.pf-hero__facts li { display: inline-flex; align-items: center; gap: var(--ds-space-2); min-block-size: 2.5rem; padding-block: 0.25rem; padding-inline: 0.3125rem 1rem; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-pill); background: rgba(255, 255, 255, 0.82); color: var(--ds-text); font-size: var(--ds-fs-sm); line-height: 1.4; }
.pf-hero__facts .ds-icon { flex: none; box-sizing: content-box; inline-size: 1.125rem; block-size: 1.125rem; padding: 0.4375rem; border-radius: 50%; background: var(--pf-tint-strong); color: var(--ds-deep); }
.pf-hero__facts strong { font-weight: var(--ds-fw-bold); }

/* price + the one button (phones and tablets; beside a wide screen the sticky booking panel is already in view) */
.pf-hero__book { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); margin-block-start: var(--ds-space-6); padding-block-start: var(--ds-space-5); border-block-start: 1px dashed rgba(var(--pf-glow), 0.32); }
.pf-hero__price { margin: 0; display: grid; gap: 0; line-height: 1.35; }
.pf-hero__price span { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
.pf-hero__price strong { color: var(--ds-deep); font-size: var(--ds-fs-xl); font-weight: 800; }
.pf-hero__cta { gap: var(--ds-space-2); min-block-size: 3.25rem; padding-inline: var(--ds-space-8); border-radius: 16px; font-weight: var(--ds-fw-bold); box-shadow: 0 14px 26px -14px rgba(0, 91, 80, 0.75); }
.pf-hero__cta .ds-icon { flex: none; }
.pf-hero__cta:hover { box-shadow: 0 16px 30px -14px rgba(0, 91, 80, 0.85); }
@media (min-width: 900px) {
	.pf-hero__book { display: none; }
}
@media (max-width: 639.98px) {
	.pf-hero { padding: var(--ds-space-5); border-radius: var(--pf-r-lg); }
	.pf-hero::before { inset-inline-end: -6rem; inset-block-start: -7rem; }
	.pf-hero__top { align-items: flex-start; gap: var(--ds-space-4); }
	.pf-hero__portrait { inline-size: 5.75rem; block-size: 5.75rem; }
	.pf-hero__portrait > img, .pf-hero__initial { border-radius: 24px; border-width: 3px; }
	.pf-hero__initial { font-size: 2.25rem; }
	.pf-hero__check { inline-size: 1.75rem; block-size: 1.75rem; inset-inline-end: -0.25rem; inset-block-end: -0.25rem; border-width: 2px; }
	.pf-hero__check::before { inline-size: 0.875rem; block-size: 0.875rem; }
	.pf-hero__role { font-size: var(--ds-fs-md); }
	.pf-hero__facts { margin-block-start: var(--ds-space-5); }
	.pf-hero__book { margin-block-start: var(--ds-space-5); padding-block-start: var(--ds-space-4); }
	.pf-hero__cta { flex: none; padding-inline: var(--ds-space-4); white-space: nowrap; }
	.pf-hero__price { min-inline-size: 0; }
	.pf-hero__price strong { font-size: var(--ds-fs-lg); }
}

/* ==========================================================================
   2. Section tabs (pinned under the site header; plain anchors without script)
   ========================================================================== */
.prof-tabs {
	position: sticky; inset-block-start: var(--pf-header); z-index: 30;
	margin-block: var(--ds-space-4) var(--ds-space-2); margin-inline: -20px; padding-inline: 0;
	background: var(--ds-bg);
	background: color-mix(in srgb, var(--ds-bg) 88%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
	border-block-end: 1px solid transparent;
}
.prof-tabs.is-stuck { border-block-end-color: var(--ds-line); box-shadow: 0 12px 18px -16px rgba(23, 43, 42, 0.4); }
.prof-tabs ul { display: flex; gap: var(--ds-space-2); margin: 0; padding: var(--ds-space-2) 20px; list-style: none; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
.prof-tabs ul::-webkit-scrollbar { display: none; }
.prof-tabs li { flex: none; scroll-snap-align: center; }
.prof-tabs a {
	display: inline-flex; align-items: center; min-block-size: var(--ds-control-h); padding-inline: var(--ds-space-4);
	border: 1px solid var(--ds-line); border-radius: var(--ds-radius-pill); background: var(--ds-surface);
	color: var(--ds-text-2); font-size: var(--ds-fs-sm); font-weight: var(--ds-fw-semibold); white-space: nowrap; text-decoration: none;
}
.prof-tabs a:hover { border-color: var(--ds-control-line); background: var(--pf-tint); color: var(--ds-deep); }
.prof-tabs a[aria-current="true"] { border-color: var(--ds-ink); background: var(--ds-ink); color: var(--ds-on-ink); }
.prof-tabs a:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
@media (min-width: 900px) {
	.prof-tabs a { padding-inline: 0.875rem; }
	.prof-tabs { margin-inline: 0; border-radius: var(--pf-r-md); }
	.prof-tabs ul { padding-inline: 0; }
	.prof-tabs.is-stuck { border-block-end-color: transparent; box-shadow: none; }
}
@media (min-width: 640px) and (max-width: 899.98px) {
	.prof-tabs { margin-inline: calc(-1 * var(--ds-gutter, 20px)); }
	.prof-tabs ul { padding-inline: var(--ds-gutter, 20px); }
}
/* the tab strip fades at its edges while it scrolls (phones) */
@media (max-width: 899.98px) {
	.prof-tabs ul { -webkit-mask-image: linear-gradient(to right, transparent 0, #000 0.75rem, #000 calc(100% - 0.75rem), transparent 100%); mask-image: linear-gradient(to right, transparent 0, #000 0.75rem, #000 calc(100% - 0.75rem), transparent 100%); }
}

/* ==========================================================================
   3. Cards (every section of the main column)
   ========================================================================== */
.client-profile .specialist-profile__details { display: grid; gap: var(--ds-space-5); }
.client-profile .specialist-profile__details > section {
	position: relative; overflow: visible; margin: 0;
	padding: var(--ds-space-8);
	background: var(--ds-surface); border: 1px solid var(--ds-line); border-radius: var(--pf-r-lg);
	box-shadow: var(--pf-shadow); transform: none;
	scroll-margin-block-start: calc(var(--pf-header) + 4.5rem);
}
.client-profile .specialist-profile__details > section::before { content: none; }
.client-profile .specialist-profile__details > section:hover { box-shadow: var(--pf-shadow); transform: none; }
.client-profile .specialist-profile__details > section > .client-muted { margin-block: 0 var(--ds-space-4); font-size: var(--ds-fs-sm); }
.client-profile .specialist-profile__details .section-heading { margin: 0 0 var(--ds-space-5); font-size: var(--ds-fs-xl); font-weight: 800; line-height: var(--ds-lh-tight); color: var(--ds-text); }
.client-profile .specialist-profile__details .section-heading--v { gap: var(--ds-space-3); }
.client-profile .section-heading--v .section-heading__icon { inline-size: 2.75rem; block-size: 2.75rem; border-radius: 15px; }
.client-profile .section-heading--v .section-heading__icon svg { inline-size: 1.375rem; block-size: 1.375rem; }
.client-profile .specialist-profile__details section:last-child { margin-block-end: 0; }
@media (max-width: 639.98px) {
	.client-profile .specialist-profile__details { gap: var(--ds-space-4); }
	.client-profile .specialist-profile__details > section { padding: var(--ds-space-5); border-radius: 22px; }
	.client-profile .specialist-profile__details .section-heading { font-size: var(--ds-fs-lg); margin-block-end: var(--ds-space-4); }
	.client-profile .section-heading--v .section-heading__icon { inline-size: 2.5rem; block-size: 2.5rem; border-radius: 13px; }
}

/* ---------- credentials: icon rows ---------- */
.pf-rows { display: grid; gap: var(--ds-space-3); margin: 0; padding: 0; list-style: none; }
.pf-row { display: flex; align-items: center; gap: var(--ds-space-4); padding: var(--ds-space-3) var(--ds-space-4); border-radius: var(--pf-r-md); background: var(--ds-bg); }
.pf-row .ds-ibox { border-radius: 13px; inline-size: 2.75rem; block-size: 2.75rem; }
.pf-row__text { display: grid; gap: 0.125rem; min-inline-size: 0; }
.pf-row__text small { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
.pf-row__text strong { color: var(--ds-text); font-weight: var(--ds-fw-semibold); overflow-wrap: anywhere; }

/* ---------- areas ---------- */
.client-profile .pf-areas .tag-pills { gap: var(--ds-space-2); }
.client-profile .pf-areas .tag-pill { min-block-size: var(--ds-control-h); padding-inline: var(--ds-space-4); font-size: var(--ds-fs-sm); border-radius: var(--ds-radius-pill); box-shadow: none; }
.client-profile .pf-areas .tag-pill .ds-icon { inline-size: 1.125rem; block-size: 1.125rem; }

/* ---------- sessions and fees ---------- */
.pf-formats { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: var(--ds-space-3); margin: 0 0 var(--ds-space-4); padding: 0; list-style: none; }
.pf-format { display: flex; align-items: center; gap: var(--ds-space-3); padding: var(--ds-space-3) var(--ds-space-4); border: 1px solid var(--ds-line); border-radius: var(--pf-r-md); background: var(--ds-surface); }
.pf-format__icon { flex: none; display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: 14px; background: var(--ds-f-bg); color: var(--ds-f-ink); }
.pf-format strong { font-weight: var(--ds-fw-semibold); color: var(--ds-text); }
.pf-price { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ds-space-4); padding: var(--ds-space-5) var(--ds-space-6); border-radius: var(--pf-r-md); background: var(--pf-tint); border: 1px solid rgba(var(--pf-glow), 0.18); }
.pf-price__main { display: grid; gap: 0.125rem; }
.pf-price__label { color: var(--ds-text-2); font-size: var(--ds-fs-sm); }
.pf-price__amount { color: var(--ds-deep); font-size: var(--ds-fs-3xl); font-weight: 800; line-height: 1.2; }
.pf-price__meta { display: flex; flex-wrap: wrap; gap: var(--ds-space-2); margin: 0; padding: 0; list-style: none; }
.pf-price__meta li { display: inline-flex; align-items: center; gap: var(--ds-space-2); min-block-size: 2.25rem; padding-inline: var(--ds-space-3); border-radius: var(--ds-radius-pill); background: var(--ds-surface); color: var(--ds-text); font-size: var(--ds-fs-sm); }
.pf-price__meta .ds-icon { flex: none; color: var(--ds-deep); }
@media (max-width: 639.98px) {
	.pf-formats { grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr)); gap: var(--ds-space-2); }
	.pf-format { flex-direction: column; justify-content: center; gap: var(--ds-space-2); padding: var(--ds-space-3) var(--ds-space-2); text-align: center; font-size: var(--ds-fs-sm); line-height: 1.4; }
	.pf-price { padding: var(--ds-space-4); }
	.pf-price__amount { font-size: var(--ds-fs-2xl); }
}

/* ---------- reviews ---------- */
.pf-reviews__summary { display: flex; align-items: center; gap: var(--ds-space-4); margin-block-end: var(--ds-space-4); padding: var(--ds-space-4) var(--ds-space-5); border-radius: var(--pf-r-md); background: var(--ds-accent-bg); }
.pf-reviews__score { color: var(--ds-text); font-size: 2.5rem; font-weight: 800; line-height: 1; }
.pf-reviews__meta { display: grid; gap: 0.125rem; color: var(--ds-text-2); font-size: var(--ds-fs-sm); }
.pf-stars { color: var(--ds-warning); font-size: var(--ds-fs-lg); letter-spacing: 0.1em; line-height: 1.2; }
html[lang^="fa"] .pf-stars, html[lang^="fa"] .review-card__stars span:first-child { letter-spacing: 0; }
.client-profile .review-grid { gap: var(--ds-space-4); }
.client-profile .review-card { display: grid; align-content: start; gap: var(--ds-space-3); padding: var(--ds-space-5); border: 1px solid var(--ds-line); border-radius: 20px; background: var(--ds-surface); box-shadow: none; }
.client-profile .review-card::before { content: "\201C"; position: absolute; inset-block-start: 0.25rem; inset-inline-end: 1rem; color: rgba(var(--pf-glow), 0.18); font: 700 4rem/1 Georgia, "Times New Roman", serif; pointer-events: none; }
html[dir="rtl"] .client-profile .review-card::before { content: "\201D"; }
.client-profile .review-card__stars { margin: 0; color: var(--ds-warning); font-size: var(--ds-fs-md); letter-spacing: 0.1em; }
.client-profile .review-card blockquote { margin: 0; }
.client-profile .review-card blockquote p { margin: 0; color: var(--ds-text); line-height: 1.9; }
.client-profile .review-card__footer { gap: var(--ds-space-3); }
.client-profile .review-card__avatar { inline-size: 2.5rem; block-size: 2.5rem; background: var(--pf-tint-strong); color: var(--ds-deep); font-size: var(--ds-fs-md); }
.review-card__who { display: grid; gap: 0.0625rem; min-inline-size: 0; }
.review-card__who strong { color: var(--ds-text); font-size: var(--ds-fs-sm); }
.review-card__who time { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
.pf-empty { display: flex; align-items: flex-start; gap: var(--ds-space-4); padding: var(--ds-space-5); border: 1px dashed var(--ds-control-line); border-radius: var(--pf-r-md); background: var(--ds-bg); }
.pf-empty__icon { flex: none; display: grid; place-items: center; inline-size: 3rem; block-size: 3rem; border-radius: 50%; background: var(--pf-tint-strong); color: var(--ds-deep); }
.pf-empty strong { display: block; color: var(--ds-text); font-weight: var(--ds-fw-semibold); }
.pf-empty .client-muted { margin: var(--ds-space-1) 0 0; font-size: var(--ds-fs-sm); }

/* ---------- cancel / subscription: friendly folds ---------- */
.pf-acc { display: grid; gap: var(--ds-space-3); }
.pf-acc__item { border: 1px solid var(--ds-line); border-radius: var(--pf-r-md); background: var(--ds-surface); }
.pf-acc__item[open] { background: var(--ds-bg); }
.pf-acc__item > summary { display: flex; align-items: center; gap: var(--ds-space-3); min-block-size: 3.5rem; padding: var(--ds-space-2) var(--ds-space-4); list-style: none; cursor: pointer; border-radius: var(--pf-r-md); }
.pf-acc__item > summary::-webkit-details-marker { display: none; }
.pf-acc__item > summary:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
.pf-acc__title { flex: 1 1 auto; color: var(--ds-text); font-weight: var(--ds-fw-semibold); }
.pf-acc__item > summary > .ds-icon:last-child { flex: none; color: var(--ds-text-2); }
.pf-acc__item[open] > summary > .ds-icon:last-child { transform: rotate(180deg); }
.pf-acc__body { padding: 0 var(--ds-space-4) var(--ds-space-4); color: var(--ds-text-2); line-height: 1.9; }
.pf-acc__body a { display: inline-block; min-block-size: 2rem; font-weight: var(--ds-fw-semibold); }

/* ==========================================================================
   4. Place section (the in-person "where you will meet" card; moved here from simple.css and restyled)
   ========================================================================== */
.client-profile .specialist-profile__where .place-cards { margin-block-start: 0; gap: var(--ds-space-4); }
.client-profile .specialist-profile__where .place-cards__item { min-inline-size: 0; scroll-margin-block-start: calc(var(--pf-header) + 4.5rem); }
.client-profile .specialist-profile__where .place-card { gap: var(--ds-space-4); padding: var(--ds-space-5); background: var(--ds-bg); border: 1px solid var(--ds-line); border-radius: 20px; }
.client-profile .specialist-profile__where .place-card__head { gap: var(--ds-space-3); }
.client-profile .specialist-profile__where .place-card__kind { padding: 0.25rem var(--ds-space-3); background: var(--pf-tint-strong); }
.client-profile .specialist-profile__where .place-card__name { font-size: var(--ds-fs-lg); font-weight: var(--ds-fw-bold); }
.client-profile .specialist-profile__where .place-card__facts { gap: 0; }
.client-profile .specialist-profile__where .place-card__facts > div { padding-block: var(--ds-space-3); border-block-end: 1px solid var(--ds-line); }
.client-profile .specialist-profile__where .place-card__facts > div:last-child { border-block-end: 0; }
.client-profile .specialist-profile__where .place-card__facts dt { font-size: var(--ds-fs-xs); }
.client-profile .specialist-profile__where .place-card__facts a { font-weight: var(--ds-fw-semibold); }
.client-profile .specialist-profile__where .place-card__nav { gap: var(--ds-space-2); }
.client-profile .specialist-profile__where .place-card__nav .ds-btn { border-radius: var(--ds-radius-pill); background: var(--ds-surface); border-color: var(--ds-control-line); }
.client-profile .specialist-profile__where .place-card__nav .ds-btn:hover { background: var(--pf-tint); border-color: var(--ds-action); }
/* the map stays a tap away (no third-party request before it): a calm placeholder tile with the button in its middle */
.client-profile .specialist-profile__where .place-card__map { justify-items: center; padding: var(--ds-space-5) var(--ds-space-4); text-align: center; border: 1px dashed rgba(var(--pf-glow), 0.4); border-radius: var(--pf-r-md); background: linear-gradient(135deg, var(--pf-tint) 0%, var(--ds-surface) 100%); }
.client-profile .specialist-profile__where .place-card__map::before { content: ""; inline-size: 2.5rem; block-size: 2.5rem; background: var(--ds-deep); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat; opacity: 0.85; }
.client-profile .specialist-profile__where .place-card__map [data-place-map-toggle] { border-radius: var(--ds-radius-pill); background: var(--ds-surface); border-color: var(--ds-control-line); color: var(--ds-deep); font-weight: var(--ds-fw-semibold); }
.client-profile .specialist-profile__where .place-card__map [data-place-map-toggle]:hover { background: var(--pf-tint); border-color: var(--ds-action); }
.client-profile .specialist-profile__where .place-card__frame:not([hidden]) { justify-self: stretch; }
.client-profile .specialist-profile__where .place-card__iframe { border-radius: var(--pf-r-md); }
@media (max-width: 639.98px) {
	.client-profile .specialist-profile__where .place-card { padding: var(--ds-space-4); }
}
/* the widget's one-line place reminder */
.booking-widget__place { display: inline-flex; align-items: center; gap: var(--ds-space-2); color: var(--ds-text); font-weight: var(--ds-fw-semibold); min-inline-size: 0; }
.booking-widget__place .ds-icon { flex: none; color: var(--ds-action); }
.booking-widget__place-text { overflow-wrap: anywhere; }
.booking-widget__place-link { display: inline-block; margin-block-start: var(--ds-space-1); font-size: var(--ds-fs-sm); font-weight: var(--ds-fw-semibold); color: var(--ds-action); text-decoration: none; }
.booking-widget__place-link:hover, .booking-widget__place-link:focus-visible { color: var(--ds-deep); }

/* ==========================================================================
   5. Booking panel: sticky and elevated on desktop; the same markup becomes a bottom sheet on phones
   ========================================================================== */
.client-profile .booking-widget {
	display: block; position: sticky; inset-block-start: calc(var(--pf-header) + var(--ds-space-4));
	max-block-size: calc(100vh - var(--pf-header) - 2rem); max-block-size: calc(100dvh - var(--pf-header) - 2rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;
	padding: var(--ds-space-6); background: var(--ds-surface);
	border: 1px solid var(--ds-line); border-radius: var(--pf-r-xl);
	box-shadow: 0 2px 4px rgba(23, 43, 42, 0.05), 0 36px 64px -34px rgba(23, 43, 42, 0.42);
}
.booking-widget__sheet-head { display: none; }
.client-profile .booking-widget__header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ds-space-2) var(--ds-space-3); margin-block-end: var(--ds-space-3); }
.client-profile .booking-widget__header h2 { margin: 0; color: var(--ds-text); font-size: var(--ds-fs-xl); font-weight: 800; }
.client-profile .booking-widget__header h2:focus { outline: none; }
.client-profile .booking-widget__nearest { display: inline-flex; align-items: center; gap: var(--ds-space-2); padding: 0.25rem 0.75rem; border-radius: var(--ds-radius-pill); background: var(--pf-tint); color: var(--ds-deep); font-size: var(--ds-fs-xs); font-weight: var(--ds-fw-semibold); line-height: 1.5; }
.client-profile .booking-widget__nearest:empty { display: none; }
.client-profile .booking-widget__nearest::before { content: ""; flex: none; inline-size: 0.5rem; block-size: 0.5rem; border-radius: 50%; background: var(--ds-success); }
.client-profile .booking-widget .simple-steps { margin-block: 0 var(--ds-space-4); max-inline-size: none; padding: var(--ds-space-3) var(--ds-space-2) var(--ds-space-2); border-radius: var(--pf-r-md); background: var(--ds-bg); }
.client-profile .booking-widget .simple-steps__dot { inline-size: 2rem; block-size: 2rem; border-width: 1px; }
.client-profile .booking-widget .simple-steps__dot .ds-icon { inline-size: 1rem; block-size: 1rem; }
.client-profile .booking-widget .simple-steps__item + .simple-steps__item::before { inset-block-start: 0.9375rem; block-size: 2px; }
.client-profile .booking-widget .simple-steps__item[aria-current="step"] .simple-steps__dot { box-shadow: 0 0 0 3px var(--pf-tint-strong); }
.client-profile .booking-widget__hint[data-timezone-note] { display: flex; align-items: flex-start; gap: var(--ds-space-2); margin: 0 0 var(--ds-space-4); color: var(--ds-text-2); font-size: var(--ds-fs-xs); line-height: 1.7; }
.client-profile .booking-widget__hint[data-timezone-note]:empty { display: none; }
.client-profile .booking-widget__label { display: block; margin-block-end: var(--ds-space-2); color: var(--ds-text); font-size: var(--ds-fs-sm); font-weight: var(--ds-fw-bold); }
.client-profile .booking-widget__section { margin-block-end: var(--ds-space-5); }

/* session type: cards you tap */
.client-profile .booking-widget .pill-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: var(--ds-space-2); }
.client-profile .booking-widget .pill { position: relative; justify-content: center; gap: var(--ds-space-2); min-block-size: 3rem; padding: var(--ds-space-2) var(--ds-space-3); border: 1px solid var(--ds-control-line); border-radius: 14px; background: var(--ds-surface); color: var(--ds-text); font-size: var(--ds-fs-sm); font-weight: var(--ds-fw-semibold); text-align: center; }
.client-profile .booking-widget .pill .ds-icon { color: var(--ds-text-2); }
.client-profile .booking-widget .pill:hover:not(:has(input:checked)) { border-color: var(--ds-action); background: var(--pf-tint); color: var(--ds-deep); }
.client-profile .booking-widget .pill:has(input:checked) { border-color: var(--ds-action); background: var(--pf-tint); color: var(--ds-deep); box-shadow: inset 0 0 0 1px var(--ds-action); }
.client-profile .booking-widget .pill:has(input:checked) .ds-icon { color: var(--ds-action); }

/* date strip: small calendar cards */
.client-profile .booking-widget .date-carousel { gap: var(--ds-space-2); padding: 0.25rem 0.125rem var(--ds-space-2); scroll-snap-type: x proximity; scrollbar-width: none; }
.client-profile .booking-widget .date-carousel::-webkit-scrollbar { display: none; }
.client-profile .booking-widget .client-daychip { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.125rem; flex: none; min-inline-size: 4.5rem; min-block-size: 4.75rem; padding: var(--ds-space-2) var(--ds-space-1); border: 1px solid var(--ds-control-line); border-radius: 16px; background: var(--ds-surface); color: var(--ds-text); line-height: 1.25; scroll-snap-align: center; }
.client-profile .booking-widget .client-daychip__tag { padding: 0 0.5rem; border-radius: var(--ds-radius-pill); background: var(--pf-tint-strong); color: var(--ds-deep); font-size: var(--ds-fs-xs); font-weight: var(--ds-fw-semibold); opacity: 1; line-height: 1.5; }
.client-profile .booking-widget .client-daychip__wd, .client-profile .booking-widget .client-daychip__mon { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
.client-profile .booking-widget .client-daychip__num { color: var(--ds-text); font-size: var(--ds-fs-xl); font-weight: 800; line-height: 1.15; }
.client-profile .booking-widget .client-daychip:hover:not(:disabled):not([aria-pressed="true"]) { border-color: var(--ds-action); background: var(--pf-tint); }
.client-profile .booking-widget .client-daychip[aria-pressed="true"] { border-color: var(--ds-action); background: var(--ds-action); box-shadow: 0 10px 18px -10px rgba(0, 91, 80, 0.75); }
.client-profile .booking-widget .client-daychip[aria-pressed="true"] .client-daychip__num,
.client-profile .booking-widget .client-daychip[aria-pressed="true"] .client-daychip__wd,
.client-profile .booking-widget .client-daychip[aria-pressed="true"] .client-daychip__mon { color: var(--ds-on-action); }
.client-profile .booking-widget .client-daychip[aria-pressed="true"] .client-daychip__tag { background: rgba(255, 255, 255, 0.2); color: var(--ds-on-action); }
.client-profile .booking-widget .client-daychip:disabled, .client-profile .booking-widget .client-daychip.is-empty { border-color: transparent; background: var(--ds-disabled-bg); box-shadow: none; opacity: 1; }
.client-profile .booking-widget .client-daychip.is-empty .client-daychip__num { color: var(--ds-disabled-text); font-weight: var(--ds-fw-semibold); }
.client-profile .booking-widget .client-daychip.is-empty .client-daychip__wd, .client-profile .booking-widget .client-daychip.is-empty .client-daychip__mon { color: var(--ds-disabled-text); }
.client-profile .booking-widget .client-daychip:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
/* while the days load: a row of quiet placeholder cards instead of a block of grey bars */
.client-profile .booking-widget .date-carousel [data-ds-skel] { display: flex; gap: var(--ds-space-2); inline-size: 100%; }
.client-profile .booking-widget .date-carousel [data-ds-skel] .ds-skel { flex: none; inline-size: 4.5rem; block-size: 4.75rem; min-block-size: 4.75rem; margin: 0; border-radius: 16px; }
.client-profile .booking-widget .date-carousel [data-ds-skel] .ds-skel--title { inline-size: 4.5rem; }

/* times */
.client-profile .booking-widget .time-grid { grid-template-columns: repeat(auto-fill, minmax(4.75rem, 1fr)); gap: var(--ds-space-2); }
.client-profile .booking-widget button.time-slot { min-block-size: var(--ds-control-h); border: 1px solid var(--ds-control-line); border-radius: 12px; background: var(--ds-surface); color: var(--ds-text); font-weight: var(--ds-fw-semibold); }
.client-profile .booking-widget button.time-slot:hover:not(:disabled):not(.is-active) { border-color: var(--ds-action); background: var(--pf-tint); color: var(--ds-deep); }
.client-profile .booking-widget button.time-slot.is-active { border-color: var(--ds-action); background: var(--ds-action); color: var(--ds-on-action); box-shadow: 0 10px 18px -10px rgba(0, 91, 80, 0.75); }
.client-profile .booking-widget button.time-slot:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
.client-profile .booking-widget .booking-widget__empty { border-radius: var(--pf-r-md); }

/* the chosen time as a small ticket, and the price lines as a quiet summary */
.client-profile .booking-widget .client-selection { margin-block: var(--ds-space-4); padding: var(--ds-space-4); border: 1px solid rgba(var(--pf-glow), 0.28); border-inline-start-width: 1px; border-radius: var(--pf-r-md); background: var(--pf-tint); }
.client-profile .booking-widget .client-selection__title { color: var(--ds-text-2); }
.client-profile .booking-widget .booking-widget__facts { margin-block: 0 var(--ds-space-4); padding: var(--ds-space-3) var(--ds-space-4); border: 0; border-radius: var(--pf-r-md); background: var(--ds-bg); }
.client-profile .booking-widget .booking-widget__facts li { padding-block: 0.25rem; color: var(--ds-text); }
.client-profile .booking-widget .booking-widget__facts li:last-child span:last-child { color: var(--ds-deep); font-size: var(--ds-fs-lg); font-weight: 800; }
.client-profile .booking-widget .client-subnote { border-radius: var(--pf-r-md); }
.client-profile .booking-widget [data-submit-booking] { min-block-size: 3.25rem; border-radius: 16px; font-size: var(--ds-fs-md); box-shadow: 0 14px 26px -14px rgba(0, 91, 80, 0.75); }
.client-profile .booking-widget [data-submit-booking]:hover { box-shadow: 0 16px 30px -14px rgba(0, 91, 80, 0.85); }
/* when the panel is taller than the screen it scrolls inside itself; the one button stays pinned to its bottom edge */
.client-profile .booking-widget [data-submit-booking] { position: sticky; inset-block-end: var(--ds-space-1); z-index: 1; box-shadow: 0 0 0 0.5rem var(--ds-surface), 0 -1rem 0.75rem 0.25rem var(--ds-surface), 0 14px 26px -14px rgba(0, 91, 80, 0.75); }
.client-profile .booking-widget .booking-widget__waitlist { border-radius: var(--pf-r-md); }


/* ---------- date row: the heading and «pick from calendar» on one line ---------- */
.client-profile .booking-widget__row { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-2); min-block-size: var(--ds-control-h); margin-block-end: var(--ds-space-1); }
.client-profile .booking-widget__row .booking-widget__label { margin: 0; }
.booking-widget__linkbtn { display: inline-flex; align-items: center; gap: 0.375rem; min-block-size: var(--ds-control-h); padding-inline: var(--ds-space-3); border: 0; border-radius: var(--ds-radius-pill); background: transparent; color: var(--ds-deep); font: inherit; font-size: var(--ds-fs-sm); font-weight: var(--ds-fw-semibold); line-height: 1.3; cursor: pointer; text-align: start; }
.booking-widget__linkbtn[hidden] { display: none; }
.booking-widget__linkbtn .ds-icon { flex: none; }
.booking-widget__linkbtn:hover { background: var(--pf-tint); }
.booking-widget__linkbtn:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
.client-profile .booking-widget .date-carousel[hidden] { display: none; }

/* ---------- month calendar (replaces the strip while open) ---------- */
.pf-cal[hidden] { display: none; }
.pf-cal__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-2); margin-block-end: var(--ds-space-2); }
.pf-cal__title { flex: 1 1 auto; text-align: center; color: var(--ds-text); font-size: var(--ds-fs-md); font-weight: 800; }
.pf-cal__nav { flex: none; display: inline-flex; align-items: center; justify-content: center; inline-size: var(--ds-control-h); block-size: var(--ds-control-h); padding: 0; border: 1px solid var(--ds-line); border-radius: 50%; background: var(--ds-surface); color: var(--ds-deep); cursor: pointer; }
.pf-cal__nav:hover:not(:disabled) { background: var(--pf-tint); border-color: var(--ds-action); }
.pf-cal__nav:disabled { opacity: 0.35; cursor: not-allowed; }
.pf-cal__nav:focus-visible, .pf-cal__retry:focus-visible, .pf-cal__day:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
/* "back" points to the start of the line: the chevron is drawn pointing left, mirrored where the arrow belongs to the right */
html[dir="ltr"] .pf-cal__nav--next .ds-icon, html[dir="rtl"] .pf-cal__nav--prev .ds-icon { transform: scaleX(-1); }
.pf-cal__grid { inline-size: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0 0.25rem; }
.pf-cal__grid th { padding-block: var(--ds-space-1); color: var(--ds-text-2); font-size: var(--ds-fs-xs); font-weight: var(--ds-fw-semibold); text-align: center; }
.pf-cal__grid td { padding: 0; text-align: center; }
.pf-cal__day { position: relative; display: inline-flex; align-items: center; justify-content: center; inline-size: 100%; max-inline-size: 3rem; min-block-size: var(--ds-control-h); padding: 0; border: 0; border-radius: 14px; background: transparent; color: var(--ds-disabled-text); font: inherit; font-weight: var(--ds-fw-semibold); font-variant-numeric: tabular-nums; cursor: not-allowed; }
.pf-cal__day.has-times { background: var(--pf-tint); color: var(--ds-text); cursor: pointer; }
.pf-cal__day.has-times::after { content: ""; position: absolute; inset-block-end: 0.3125rem; inset-inline-start: 50%; inline-size: 0.25rem; block-size: 0.25rem; margin-inline-start: -0.125rem; border-radius: 50%; background: var(--ds-action); }
.pf-cal__day.has-times:hover { background: var(--pf-tint-strong); }
.pf-cal__day.is-today:not(.is-selected) { box-shadow: inset 0 0 0 1px var(--ds-control-line); }
.pf-cal__day.is-selected { background: var(--ds-action); color: var(--ds-on-action); box-shadow: 0 10px 18px -10px rgba(0, 91, 80, 0.75); }
.pf-cal__day.is-selected::after { background: var(--ds-on-action); }
.pf-cal__grid tbody.is-loading .pf-cal__day:not(.has-times) { background: var(--ds-tint); color: transparent; }
.pf-cal__status { min-block-size: 1.25rem; margin: var(--ds-space-2) 0 0; color: var(--ds-text-2); font-size: var(--ds-fs-xs); text-align: center; }
.pf-cal__status--error { color: var(--ds-danger); }
.pf-cal__retry { min-block-size: var(--ds-control-h); padding-inline: var(--ds-space-3); border: 0; border-radius: var(--ds-radius-pill); background: transparent; color: var(--ds-deep); font: inherit; font-weight: var(--ds-fw-semibold); text-decoration: none; cursor: pointer; }
@media (min-width: 900px) {
	.pf-cal__day { min-block-size: 2.5rem; }   /* pointer layout: slightly denser; phones keep the 44px cells */
}
@media (prefers-reduced-motion: no-preference) {
	.pf-cal__grid tbody.is-loading .pf-cal__day:not(.has-times) { animation: pf-cal-pulse 1.1s ease-in-out infinite; }
	.pf-cal__day, .pf-cal__nav { transition: background-color var(--ds-dur) var(--ds-ease), box-shadow var(--ds-dur) var(--ds-ease), border-color var(--ds-dur) var(--ds-ease); }
	@keyframes pf-cal-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
}
@media (forced-colors: active) {
	.pf-cal__day.is-selected { border: 3px solid CanvasText; }
	.pf-cal__day.has-times { border: 1px solid CanvasText; }
}

/* ---------- phones: the sticky bar and the sheet ---------- */
.client-profile .booking-widget .booking-widget__grip, .booking-widget__grip { display: block; inline-size: 2.75rem; block-size: 0.3125rem; margin-inline: auto; border-radius: var(--ds-radius-pill); background: var(--ds-line); }
.pf-bookbar { inset-inline: var(--ds-space-3); inset-block-end: calc(var(--ds-space-3) + var(--ds-safe-bottom)); padding: var(--ds-space-2) var(--ds-space-2) var(--ds-space-2) var(--ds-space-5); padding-inline: var(--ds-space-5) var(--ds-space-2); border: 1px solid var(--ds-line); border-radius: 22px; background: rgba(255, 255, 255, 0.94); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); box-shadow: 0 2px 4px rgba(23, 43, 42, 0.06), 0 22px 44px -16px rgba(23, 43, 42, 0.5); }
.pf-bookbar .client-bookbar__price { display: grid; gap: 0; line-height: 1.3; min-inline-size: 0; }
.pf-bookbar .client-bookbar__price .client-muted { font-size: var(--ds-fs-xs); }
.pf-bookbar .client-bookbar__price strong { color: var(--ds-deep); font-size: var(--ds-fs-lg); font-weight: 800; }
.pf-bookbar .ds-btn { flex: none; min-block-size: 3rem; padding-inline: var(--ds-space-6); border-radius: 16px; font-weight: var(--ds-fw-bold); }
.pf-bookbar[hidden] { display: none; }
@media (max-width: 899.98px) {
	.client-profile .booking-widget.is-sheet { display: none; }
	.client-profile .booking-widget.is-sheet.is-open {
		display: block; position: fixed; z-index: 90; inset-block: auto 0; inset-inline: 0; margin: 0;
		max-block-size: 92vh; max-block-size: 92dvh; overflow-y: auto; overscroll-behavior: contain;
		padding: var(--ds-space-3) var(--ds-space-5) calc(var(--ds-space-6) + var(--ds-safe-bottom));
		border: 0; border-radius: var(--pf-r-xl) var(--pf-r-xl) 0 0;
		box-shadow: 0 -24px 60px -20px rgba(23, 43, 42, 0.5);
	}
	.client-profile .booking-widget.is-sheet.is-open .booking-widget__sheet-head { position: sticky; inset-block-start: calc(-1 * var(--ds-space-3)); z-index: 2; display: flex; align-items: center; justify-content: center; min-block-size: 2.25rem; margin: calc(-1 * var(--ds-space-3)) calc(-1 * var(--ds-space-5)) var(--ds-space-2); padding-block: var(--ds-space-3) var(--ds-space-1); background: var(--ds-surface); }
	.client-profile .booking-widget.is-sheet.is-open .booking-widget__close { position: absolute; inset-inline-end: var(--ds-space-3); inset-block-start: var(--ds-space-1); display: inline-flex; align-items: center; justify-content: center; inline-size: var(--ds-control-h); block-size: var(--ds-control-h); border: 0; border-radius: 50%; background: var(--ds-tint); color: var(--ds-text); cursor: pointer; }
	.client-profile .booking-widget.is-sheet.is-open .booking-widget__close:hover { background: var(--ds-line); }
	.client-profile .booking-widget.is-sheet.is-open .booking-widget__close:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
	.client-profile .booking-widget.is-sheet.is-open .booking-widget__close[hidden] { display: none; }
	.client-profile .booking-widget.is-sheet.is-open .booking-widget__header h2 { padding-inline-end: calc(var(--ds-control-h) + var(--ds-space-2)); }
	.pf-sheet-backdrop { position: fixed; inset: 0; z-index: 85; background: var(--ds-overlay); }
	html.pf-sheet-open { overflow: hidden; }
	/* room under the last card for the floating bar */
	.client-profile { padding-block-end: 6rem; }
}
@media (min-width: 900px) {
	.client-bookbar.pf-bookbar { display: none !important; }
}

/* ==========================================================================
   6. About card (moved here from simple.css; same markup and script hooks, new look: a soft lead panel without the old accent bar)
   ========================================================================== */
/* ---- BEGIN profile: «About the specialist» card (2026-10-17, restyled in the profile redesign) ----
   A pulled-out lead sentence on the brand tint (soft quote mark and a large faint icon, both decoration), the rest of the bio as comfortable
   paragraphs (about 65 characters per line), a «Read more» fold on phones (profile-about.js; the whole text shows without the script) and up to
   three fact tiles that exist only when the data does. Only existing tokens are used. */
.client-profile .prof-about__lead { position: relative; isolation: isolate; overflow: hidden; margin-block-end: var(--ds-space-5); padding: var(--ds-space-6) var(--ds-space-6) var(--ds-space-6) var(--ds-space-6); padding-inline-start: calc(var(--ds-space-6) + 2.5rem); background: linear-gradient(135deg, var(--pf-tint) 0%, var(--ds-surface) 130%); border: 1px solid rgba(var(--pf-glow), 0.22); border-radius: 20px; }
.client-profile .prof-about__quote { position: absolute; inset-inline-start: var(--ds-space-5); inset-block-start: var(--ds-space-5); inline-size: 1.75rem; block-size: 1.75rem; color: var(--ds-brand); opacity: 0.55; z-index: -1; }
body.is-ravanline .client-profile .prof-about__quote, body.is-ravanline .client-profile .prof-about__spark { color: var(--ds-accent); }
.client-profile .prof-about__spark { position: absolute; inset-inline-end: -1.25rem; inset-block-end: -1.5rem; color: var(--ds-brand); opacity: 0.1; line-height: 0; z-index: -1; pointer-events: none; }
.client-profile .prof-about__spark .ds-icon { inline-size: 7.5rem; block-size: 7.5rem; stroke-width: 1.2; }
.client-profile .prof-about__lead-text { margin: 0; max-inline-size: 44ch; color: var(--ds-deep); font-size: var(--ds-fs-lg, 1.125rem); font-weight: var(--ds-fw-semibold); line-height: 1.95; overflow-wrap: anywhere; }
body.is-ravanline .client-profile .prof-about__lead-text { color: var(--ds-text); }
.client-profile .prof-about__body { max-inline-size: 65ch; color: var(--ds-text); line-height: 2; }
.client-profile .prof-about__body > :first-child { margin-block-start: 0; }
.client-profile .prof-about__body > :last-child { margin-block-end: 0; }
.client-profile .prof-about__body p { margin-block: 0 var(--ds-space-3); overflow-wrap: anywhere; }
.client-profile .prof-about__body.is-folded { max-block-size: 10.5rem; overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, black 55%, transparent); mask-image: linear-gradient(to bottom, black 55%, transparent); }
.client-profile .prof-about__toggle { display: inline-flex; align-items: center; gap: var(--ds-space-2); min-block-size: 2.75rem; margin-block-start: var(--ds-space-2); padding-inline: var(--ds-space-4); border: 1px solid var(--ds-control-line); border-radius: var(--ds-radius-pill); background: var(--ds-surface); color: var(--ds-deep); font: inherit; font-weight: var(--ds-fw-semibold); cursor: pointer; text-decoration: none; }
.client-profile .prof-about__toggle[hidden] { display: none; }
.client-profile .prof-about__toggle:hover { background: var(--pf-tint); color: var(--ds-deep); }
.client-profile .prof-about__toggle:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
.client-profile .prof-about__toggle .ds-icon { flex: none; }
.client-profile .prof-about__toggle[aria-expanded="true"] .ds-icon { transform: rotate(180deg); }
.client-profile .prof-about__facts { display: flex; flex-wrap: wrap; gap: var(--ds-space-3); margin: var(--ds-space-5) 0 0; padding: 0; list-style: none; }
.client-profile .prof-about__lead + .prof-about__facts:last-child, .client-profile .section-heading + .prof-about__facts { margin-block-start: var(--ds-space-4); }
.client-profile .prof-about__fact { flex: 1 1 11rem; display: flex; align-items: center; gap: var(--ds-space-3); min-inline-size: 0; padding: var(--ds-space-3) var(--ds-space-4); background: var(--ds-bg); border: 1px solid var(--ds-line); border-radius: var(--pf-r-md); }
.client-profile .prof-about__fact .ds-ibox { flex: none; }
.client-profile .prof-about__fact-text { display: grid; gap: 0.125rem; min-inline-size: 0; }
.client-profile .prof-about__fact-text strong { color: var(--ds-text); font-weight: var(--ds-fw-bold); overflow-wrap: anywhere; }
.client-profile .prof-about__fact-text span { color: var(--ds-text-2); font-size: var(--ds-fs-sm); }
@media (max-width: 639.98px) {
	.client-profile .prof-about__lead { padding: var(--ds-space-4); padding-inline-start: calc(var(--ds-space-4) + 2rem); }
	.client-profile .prof-about__quote { inset-inline-start: var(--ds-space-3); inset-block-start: var(--ds-space-3); }
	.client-profile .prof-about__lead-text { font-size: var(--ds-fs-md); line-height: 1.85; }
	.client-profile .prof-about__fact { flex-basis: 100%; padding: var(--ds-space-2) var(--ds-space-3); }
	.client-profile .prof-about__spark .ds-icon { inline-size: 5.5rem; block-size: 5.5rem; }
}
@media (min-width: 640px) {
	.client-profile .prof-about__lead-text { font-size: var(--ds-fs-xl, 1.25rem); }
}
/* ---- END profile: «About the specialist» card ---- */

/* ==========================================================================
   7. Small motion (all of it off for people who ask for less: a single reduced-motion rule at the end)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	.pf-hero__cta, .pf-bookbar .ds-btn, .client-profile .booking-widget [data-submit-booking], .prof-tabs a, .client-profile .booking-widget .client-daychip, .client-profile .booking-widget button.time-slot, .client-profile .booking-widget .pill, .pf-acc__item > summary > .ds-icon:last-child, .client-profile .prof-about__toggle .ds-icon, .client-profile .review-card, .pf-format {
		transition: transform var(--ds-dur) var(--ds-ease), box-shadow var(--ds-dur) var(--ds-ease), background-color var(--ds-dur) var(--ds-ease), border-color var(--ds-dur) var(--ds-ease), color var(--ds-dur) var(--ds-ease);
	}
	.pf-hero__cta:hover, .client-profile .booking-widget [data-submit-booking]:hover { transform: translateY(-1px); }
	.client-profile .booking-widget .client-daychip:hover:not(:disabled), .client-profile .booking-widget button.time-slot:hover:not(:disabled) { transform: translateY(-1px); }
	.client-profile .review-card:hover, .pf-format:hover { transform: translateY(-2px); box-shadow: var(--pf-shadow); }
	.pf-hero__portrait > img, .pf-hero__initial { animation: pf-portrait-in 480ms var(--ds-ease) both; }
	.pf-hero__id > *, .pf-hero__facts li { animation: pf-rise 460ms var(--ds-ease) both; }
	.pf-hero__id > :nth-child(2) { animation-delay: 60ms; }
	.pf-hero__id > :nth-child(3) { animation-delay: 110ms; }
	.pf-hero__id > :nth-child(n+4) { animation-delay: 160ms; }
	.pf-hero__facts li:nth-child(2) { animation-delay: 80ms; }
	.pf-hero__facts li:nth-child(3) { animation-delay: 120ms; }
	.pf-hero__facts li:nth-child(4) { animation-delay: 160ms; }
	.client-profile .booking-widget .time-grid > .time-slot { animation: pf-rise 260ms var(--ds-ease) both; }
	.client-profile .booking-widget .time-grid > .time-slot:nth-child(n+7) { animation-delay: 50ms; }
	.client-profile .booking-widget .time-grid > .time-slot:nth-child(n+13) { animation-delay: 100ms; }
	.pf-bookbar:not([hidden]) { animation: pf-bar-in 320ms var(--ds-ease) both; }
	.client-profile .booking-widget.is-sheet.is-open { animation: pf-sheet-in 320ms var(--ds-ease) both; }
	.pf-sheet-backdrop { animation: pf-fade 240ms ease both; }
	.client-profile .booking-widget__nearest::before { animation: pf-pulse 2.4s ease-in-out infinite; }
	@keyframes pf-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
	@keyframes pf-portrait-in { from { opacity: 0; transform: scale(0.94); } to { opacity: 1; transform: none; } }
	@keyframes pf-bar-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
	@keyframes pf-sheet-in { from { transform: translateY(32px); opacity: 0.4; } to { transform: none; opacity: 1; } }
	@keyframes pf-fade { from { opacity: 0; } to { opacity: 1; } }
	@keyframes pf-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(6, 118, 71, 0.45); } 50% { box-shadow: 0 0 0 5px rgba(6, 118, 71, 0); } }
}
@media (prefers-reduced-motion: reduce) {
	.pf-hero *, .pf-bookbar, .pf-sheet-backdrop, .client-profile .booking-widget, .client-profile .booking-widget * { animation: none !important; transition: none !important; }
}

/* high-contrast / forced colours: borders instead of tints */
@media (forced-colors: active) {
	.pf-hero, .client-profile .specialist-profile__details > section, .client-profile .booking-widget, .pf-bookbar, .prof-tabs a, .pf-format, .pf-row, .pf-acc__item { border: 1px solid CanvasText; }
	.prof-tabs a[aria-current="true"], .client-profile .booking-widget .client-daychip[aria-pressed="true"], .client-profile .booking-widget button.time-slot.is-active { border-width: 3px; }
}
@media print {
	.prof-tabs, .pf-bookbar, .pf-hero__book { display: none !important; }
}

/* section headings carry a coloured icon badge (the family comes from the .ds-f-* class the template sets) */
.client-profile .section-heading--v { display: flex; align-items: center; gap: var(--ds-space-3); }
.client-profile .section-heading--v .section-heading__icon { background: var(--ds-f-bg); color: var(--ds-f-ink); }
