.catalog-page { background: #f7f4ed; }
.nav-current::after { right: 0 !important; }
.catalog-hero { padding: 42px 0 44px; background: var(--lilac); border-bottom: 1px solid var(--line); }
.breadcrumbs { display: flex; gap: 9px; margin-bottom: 42px; color: var(--ink-soft); font-size: 11px; }
.breadcrumbs a:hover { color: var(--ink); }
.catalog-title-row { display: grid; grid-template-columns: 1fr 420px; align-items: end; gap: 70px; }
.catalog-title-row h1 { margin: 0; font-size: clamp(45px,5.3vw,74px); line-height: .97; letter-spacing: -4.8px; }
.catalog-title-row h1 span { font-family: Georgia,serif; font-style: italic; font-weight: 400; }
.catalog-title-row > p { margin: 0 0 5px; color: var(--ink-soft); font-size: 15px; }
.catalog-search { width: min(760px,100%); display: flex; align-items: center; gap: 11px; margin-top: 40px; padding: 7px 7px 7px 18px; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; }
.catalog-search svg { width: 22px; height: 22px; fill: none; stroke: var(--ink); stroke-width: 1.8; stroke-linecap: round; }
.catalog-search input { min-width: 0; flex: 1; height: 45px; border: 0; outline: 0; background: transparent; }
.catalog-search .button { min-height: 45px; }

.catalog-toolbar { min-height: 76px; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); }
.mobile-filter-button { display: none; }
.active-chips { display: flex; flex-wrap: wrap; gap: 7px; flex: 1; }
.filter-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px 6px 11px; border: 1px solid var(--line); border-radius: 99px; background: var(--paper); font-size: 10px; }
.filter-chip button { padding: 0; border: 0; background: none; cursor: pointer; font-size: 16px; line-height: 1; }
.sort-control { margin-left: auto; color: var(--ink-soft); font-size: 11px; white-space: nowrap; }
.sort-control select { margin-left: 5px; padding: 9px 27px 9px 10px; border: 0; border-radius: 9px; background: var(--paper); color: var(--ink); font-size: 11px; font-weight: 700; }

.catalog-layout { display: grid; grid-template-columns: 245px 1fr; gap: 34px; padding-top: 38px; padding-bottom: 100px; }
.filter-panel { align-self: start; position: sticky; top: 100px; }
.filter-mobile-head { display: none; }
.filter-panel fieldset { margin: 0; padding: 22px 0; border: 0; border-bottom: 1px solid var(--line); }
.filter-panel fieldset:first-child { padding-top: 0; }
.filter-panel legend { width: 100%; margin-bottom: 14px; font-size: 12px; font-weight: 800; }
.filter-panel label { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; margin: 10px 0; color: #42534f; cursor: pointer; font-size: 11px; }
.filter-panel label small { color: #82908d; }
.filter-panel input[type="checkbox"],.filter-panel input[type="radio"] { width: 17px; height: 17px; margin: 0; accent-color: var(--ink); }
.range-label { display: flex; justify-content: space-between; margin-bottom: 9px; color: var(--ink-soft); font-size: 10px; }
.range-label output { color: var(--ink); font-size: 12px; font-weight: 800; }
.price-range { width: 100%; accent-color: var(--ink); }
.filter-actions { display: grid; gap: 10px; padding: 22px 0; }
.filter-actions .button { width: 100%; min-height: 45px; }
.reset-filters { border: 0; background: none; color: var(--ink-soft); cursor: pointer; font-size: 10px; text-decoration: underline; }
.filter-help { display: flex; gap: 10px; padding: 15px; background: var(--lilac); border-radius: 15px; }
.filter-help > span { flex: 0 0 auto; display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid var(--ink); border-radius: 50%; font-weight: 800; }
.filter-help p,.filter-help strong,.filter-help a { display: block; margin: 0; }
.filter-help p { font-size: 9px; }.filter-help a { margin-top: 4px; font-weight: 800; }

.results-head { min-height: 55px; display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.results-head h2 { margin: 0; font-size: 25px; letter-spacing: -1px; }.results-head p { margin: 2px 0 0; color: var(--ink-soft); font-size: 10px; }
.ranking-info { display: flex; align-items: center; gap: 7px; padding: 0; border: 0; background: none; color: var(--ink-soft); cursor: pointer; font-size: 10px; }
.ranking-info span { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid var(--line); border-radius: 50%; font-weight: 800; }
.catalog-list { display: grid; gap: 15px; }
.catalog-card { display: grid; grid-template-columns: 190px 1fr 205px; min-height: 310px; overflow: hidden; background: var(--paper); border: 1px solid rgba(24,48,43,.09); border-radius: 23px; box-shadow: 0 10px 32px rgba(24,48,43,.045); }
.catalog-card[hidden] { display: none; }
.catalog-portrait { position: relative; display: grid; place-items: center; overflow: hidden; }
.cp-lilac { background: var(--lilac); }.cp-blue { background: var(--blue); }.cp-sage { background: var(--sage); }.cp-coral { background: var(--coral); }.cp-yellow { background: var(--yellow); }.cp-peach { background: #f2c8ae; }
.catalog-portrait::before,.catalog-portrait::after { content: ""; position: absolute; border: 1px solid rgba(24,48,43,.22); border-radius: 50%; }
.catalog-portrait::before { width: 180px; height: 255px; transform: rotate(35deg); }.catalog-portrait::after { width: 220px; height: 160px; transform: rotate(-25deg); }
.initials { position: relative; z-index: 1; display: grid; place-items: center; width: 100px; height: 100px; border-radius: 50% 50% 38% 45%; background: var(--ink); color: white; font-family: Georgia,serif; font-size: 29px; }
.demo-badge { position: absolute; z-index: 2; top: 13px; left: 13px; padding: 6px 8px; border-radius: 99px; background: rgba(255,253,248,.91); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; }
.video-pill { position: absolute; z-index: 2; left: 13px; bottom: 13px; padding: 6px 9px; border-radius: 99px; background: var(--ink); color: white; font-size: 8px; }
.catalog-card-main { padding: 21px 23px; }
.catalog-card-top { display: flex; justify-content: space-between; gap: 10px; }
.verified-label { margin: 0 0 5px; color: #5e7531; font-size: 8px; text-transform: uppercase; letter-spacing: .4px; }.verified-label i { display: inline-grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; background: var(--lime); color: var(--ink); font-style: normal; }
.catalog-card h3 { margin: 0; font-size: 21px; letter-spacing: -.6px; }.catalog-card h3 a:hover { text-decoration: underline; }.role-line { margin: 2px 0 0; color: var(--ink-soft); font-size: 10px; }
.catalog-heart { flex: 0 0 auto; width: 35px; height: 35px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; font-size: 20px; }.catalog-heart.active { color: #db574f; }
.catalog-summary { margin: 15px 0; color: #4f605c; font-size: 11px; line-height: 1.5; }
.reason-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }.reason-row span { width: 100%; color: var(--ink-soft); font-size: 8px; text-transform: uppercase; }.reason-row b { padding: 4px 7px; border-radius: 99px; background: #edf3d1; font-size: 8px; font-weight: 700; }
.catalog-booking { display: flex; flex-direction: column; padding: 21px 17px; background: #f3f0e8; border-left: 1px solid var(--line); }
.rating-block strong,.rating-block span,.service-price span,.service-price strong { display: block; }.rating-block strong { font-size: 13px; }.rating-block span { color: var(--ink-soft); font-size: 8px; }
.service-price { margin: 25px 0 auto; }.service-price span { color: var(--ink-soft); font-size: 9px; }.service-price strong { margin-top: 2px; font-size: 17px; }
.nearest-slot { display: block; padding: 11px 12px; border-radius: 12px; background: var(--lime); transition: background .2s; }.nearest-slot:hover { background: var(--lime-strong); }.nearest-slot small,.nearest-slot strong,.nearest-slot span { display: block; }.nearest-slot small { font-size: 7px; text-transform: uppercase; letter-spacing: .5px; }.nearest-slot strong { margin: 2px 0 6px; font-size: 11px; }.nearest-slot span { font-size: 9px; font-weight: 800; }
.freshness { margin-top: 7px; color: var(--ink-soft); font-size: 7px; text-align: center; }
.empty-results { padding: 80px 25px; background: var(--paper); border-radius: 23px; text-align: center; }.empty-results > span { display: grid; place-items: center; width: 75px; height: 75px; margin: 0 auto 20px; background: var(--lilac); border-radius: 50%; font: 38px Georgia,serif; }.empty-results h3 { margin: 0; font-size: 26px; }.empty-results p { max-width: 480px; margin: 10px auto 22px; color: var(--ink-soft); font-size: 12px; }

.compare-bar { position: fixed; z-index: 70; left: 50%; bottom: 18px; transform: translateX(-50%); width: min(680px,calc(100% - 28px)); display: flex; align-items: center; gap: 16px; padding: 12px 14px 12px 20px; background: var(--ink); color: white; border-radius: 18px; box-shadow: var(--shadow); }
.compare-bar[hidden] { display: none; }
.compare-bar > div { min-width: 0; flex: 1; }.compare-bar strong,.compare-bar span { display: block; }.compare-bar strong { font-size: 11px; }.compare-bar span { overflow: hidden; color: rgba(255,255,255,.6); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.compare-bar .button { min-height: 40px; }.compare-close { width: 30px; height: 30px; border: 0; background: none; color: white; cursor: pointer; font-size: 22px; }
.filter-backdrop { position: fixed; z-index: 79; inset: 0; background: rgba(12,28,24,.55); }

@media (max-width: 1050px) {
	.catalog-layout { grid-template-columns: 215px 1fr; gap: 22px; }
	.catalog-card { grid-template-columns: 145px 1fr 185px; }.catalog-card-main { padding: 18px; }.catalog-summary { font-size: 10px; }
}
@media (max-width: 820px) {
	.catalog-title-row { grid-template-columns: 1fr; gap: 20px; }.catalog-title-row > p { max-width: 580px; }.catalog-search { width: 100%; }
	.catalog-toolbar { position: sticky; z-index: 30; top: 70px; background: #f7f4ed; }.mobile-filter-button { display: flex; align-items: center; gap: 7px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); font-size: 11px; font-weight: 800; }.mobile-filter-button b { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--lime); font-size: 8px; }.active-chips { display: none; }
	.catalog-layout { display: block; }.filter-panel { position: fixed; z-index: 80; top: 0; bottom: 0; left: 0; width: min(360px,90vw); padding: 22px; overflow: auto; background: var(--paper); transform: translateX(-105%); transition: transform .25s; }.filter-panel.open { transform: none; }.filter-mobile-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; font-size: 20px; }.filter-mobile-head button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: none; font-size: 23px; }.filter-panel fieldset:first-child { padding-top: 10px; }
	.catalog-results { width: 100%; }.catalog-card { grid-template-columns: 150px 1fr; }.catalog-booking { grid-column: 1/-1; display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 14px; border-top: 1px solid var(--line); border-left: 0; }.rating-block { display: none; }.service-price { margin: 0; }.nearest-slot { grid-column: 2; grid-row: 1 / span 2; }.freshness { grid-column: 1; text-align: left; }
}
@media (max-width: 560px) {
	.catalog-hero { padding-top: 25px; }.breadcrumbs { margin-bottom: 28px; }.catalog-title-row h1 { font-size: 45px; letter-spacing: -3px; }.catalog-search { display: grid; grid-template-columns: auto 1fr; border-radius: 18px; }.catalog-search .button { grid-column: 1/-1; width: 100%; }
	.catalog-toolbar { top: 70px; }.sort-control { font-size: 0; }.sort-control select { margin: 0; max-width: 155px; }
	.catalog-layout { padding-top: 24px; }.results-head { min-height: 65px; }.ranking-info { font-size: 0; }.ranking-info span { font-size: 10px; }
	.catalog-card { grid-template-columns: 112px 1fr; }.catalog-portrait { min-height: 170px; }.initials { width: 68px; height: 68px; font-size: 20px; }.video-pill { display: none; }.catalog-card-main { padding: 15px 13px; }.catalog-card h3 { font-size: 18px; }.catalog-summary { margin: 10px 0; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }.reason-row { display: none; }.tag-row span { padding: 4px 6px; font-size: 7px; }
	.catalog-booking { grid-template-columns: 1fr; }.nearest-slot { grid-column: 1; grid-row: auto; }.freshness { display: none; }.compare-bar .button { padding-inline: 14px; }.compare-bar { gap: 8px; }
}
