/* ==========================================================================
   UNO — каталог компаний и онлайн-запись (публичные страницы)
   --------------------------------------------------------------------------
   Слой поверх brand.css: использует токены --b-*, поэтому светлая часть сайта
   остаётся консистентной. Классы с префиксом cc- (company catalog).
   ========================================================================== */

.cc-wrap{
    margin:0 0 40px;
    font-family:var(--b-font);
    color:var(--b-ink);
}

.cc-page-head{
    margin-bottom:22px;
}

.cc-page-head h1{
    margin:0 0 6px;
    font-family:var(--b-font);
    font-size:32px;
    line-height:1.2;
    font-weight:700;
    color:var(--b-ink);
}

.cc-page-head p{
    margin:0;
    color:var(--b-muted);
    font-size:15px;
    max-width:70ch;
}

/* ---------------------------------------------------------------- фильтры */

.cc-filters{
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
    padding:14px 16px;
    margin-bottom:22px;
}

.cc-filters form{
    display:grid;
    grid-template-columns:minmax(180px,2fr) repeat(3,minmax(130px,1fr)) auto;
    gap:10px;
    align-items:end;
}

.cc-field{
    display:grid;
    gap:5px;
    min-width:0;
}

.cc-field label{
    font-size:12px;
    font-weight:600;
    color:var(--b-muted);
    letter-spacing:.02em;
}

.cc-input,
.cc-select{
    width:100%;
    min-height:44px;
    padding:9px 12px;
    border:1px solid var(--b-line-strong);
    border-radius:var(--b-r-sm);
    background:var(--b-surface);
    color:var(--b-ink);
    font-family:var(--b-font);
    font-size:14px;
}

.cc-input:focus,
.cc-select:focus{
    outline:none;
    border-color:var(--b-accent);
    box-shadow:0 0 0 3px rgba(143, 224, 31,.16);
}

.cc-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    padding:10px 18px;
    border-radius:var(--b-r-sm);
    border:1px solid transparent;
    background:var(--b-accent);
    color:var(--b-on-accent);
    font-family:var(--b-font);
    font-size:14px;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
    white-space:nowrap;
}

.cc-btn:hover{
    background:var(--b-accent-strong);
    color:var(--b-on-accent);   /* белый на #3F7A00 давал 3.4:1 — ниже AA */
}

.cc-btn--ghost{
    background:transparent;
    border-color:var(--b-line-strong);
    color:var(--b-ink-soft);
}

.cc-btn--ghost:hover{
    background:var(--b-surface-2);
    color:var(--b-ink);
}

.cc-btn[disabled]{
    opacity:.55;
    cursor:not-allowed;
}

/* ------------------------------------------------------------- карточки */

.cc-list{
    display:grid;
    gap:16px;
}

.cc-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:18px;
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
    padding:20px 22px;
}

.cc-card h2{
    margin:0 0 6px;
    font-family:var(--b-font);
    font-size:20px;
    line-height:1.25;
    font-weight:700;
}

.cc-card h2 a{
    color:var(--b-ink);
    text-decoration:none;
}

.cc-card h2 a:hover{
    color:var(--b-accent-text);
}

.cc-card-text{
    margin:0 0 10px;
    color:var(--b-ink-soft);
    font-size:14px;
    line-height:1.5;
}

.cc-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
    color:var(--b-muted);
    font-size:13px;
}

.cc-badges{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:10px;
}

.cc-badge{
    display:inline-block;
    padding:3px 10px;
    border-radius:var(--b-r-pill);
    background:var(--b-surface-2);
    color:var(--b-ink-soft);
    font-size:12px;
    font-weight:600;
}

.cc-badge--on{
    background:var(--b-teal-soft);
    color:#0B0F14;
}

.cc-side{
    display:grid;
    gap:8px;
    align-content:start;
    justify-items:end;
    text-align:right;
}

.cc-rating{
    font-family:var(--b-font-num);
    font-size:22px;
    font-weight:700;
    line-height:1;
}

.cc-rating small{
    display:block;
    margin-top:4px;
    font-family:var(--b-font);
    font-size:12px;
    font-weight:500;
    color:var(--b-muted);
}

.cc-empty{
    background:var(--b-surface);
    border:1px dashed var(--b-line-strong);
    border-radius:var(--b-r-md);
    padding:36px 22px;
    text-align:center;
    color:var(--b-muted);
}

.cc-empty b{
    display:block;
    margin-bottom:6px;
    color:var(--b-ink);
    font-size:16px;
}

/* ------------------------------------------------------- страница компании */

.cc-hero{
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
    padding:24px 26px;
    margin-bottom:18px;
}

.cc-hero h1{
    margin:0 0 8px;
    font-family:var(--b-font);
    font-size:30px;
    line-height:1.2;
    font-weight:700;
}

.cc-hero-sub{
    margin:0 0 14px;
    color:var(--b-ink-soft);
    font-size:15px;
    max-width:72ch;
}

.cc-hero-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:16px;
}

.cc-section{
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
    padding:20px 22px;
    margin-bottom:16px;
}

.cc-section h2{
    margin:0 0 12px;
    font-family:var(--b-font);
    font-size:19px;
    font-weight:700;
}

.cc-rows{
    display:grid;
    gap:10px;
}

.cc-row{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:10px 0;
    border-bottom:1px solid var(--b-line);
    font-size:14px;
}

.cc-row:last-child{
    border-bottom:none;
    padding-bottom:0;
}

.cc-row-name{
    min-width:0;
}

.cc-row-name b{
    display:block;
    font-weight:600;
}

.cc-row-name span{
    color:var(--b-muted);
    font-size:13px;
}

.cc-row-value{
    white-space:nowrap;
    font-weight:600;
}

.cc-pills{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.cc-pill{
    padding:6px 12px;
    border-radius:var(--b-r-pill);
    background:var(--b-surface-2);
    color:var(--b-ink-soft);
    font-size:13px;
}

.cc-review{
    padding:14px 0;
    border-bottom:1px solid var(--b-line);
}

.cc-review:last-child{
    border-bottom:none;
    padding-bottom:0;
}

.cc-review-head{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:6px;
}

.cc-review-score{
    font-weight:700;
    color:var(--b-accent-text);
}

.cc-review-text{
    margin:0;
    color:var(--b-ink-soft);
    font-size:14px;
}

.cc-review-reply{
    margin-top:10px;
    padding:10px 14px;
    background:var(--b-surface-2);
    border-radius:var(--b-r-sm);
    font-size:14px;
}

.cc-note{
    border-radius:var(--b-r-sm);
    padding:12px 16px;
    margin-bottom:16px;
    font-size:14px;
    border:1px solid transparent;
}

.cc-note--ok{
    background:var(--b-teal-soft);
    border-color:#BFE0DC;
    color:#0B0F14;
}

.cc-note--error{
    background:#FBEDEB;
    border-color:#E9C9C4;
    color:#8C221A;
}

/* ------------------------------------------------------------------ запись */

.cc-booking{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:18px;
    align-items:start;
}

.cc-booking-form{
    display:grid;
    gap:14px;
}

.cc-booking-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:14px;
}

.cc-slots{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    min-height:44px;
}

.cc-slot{
    padding:8px 14px;
    border-radius:var(--b-r-pill);
    border:1px solid var(--b-line-strong);
    background:var(--b-surface);
    color:var(--b-ink);
    font-family:var(--b-font-num);
    font-size:15px;
    font-weight:600;
    cursor:pointer;
}

.cc-slot:hover{
    border-color:var(--b-accent);
    color:var(--b-accent-text);
}

.cc-slot.is-active{
    background:var(--b-accent);
    border-color:var(--b-accent);
    color:var(--b-on-accent);
}

.cc-slots-empty{
    color:var(--b-muted);
    font-size:14px;
}

.cc-summary{
    background:var(--b-surface-2);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
    padding:18px 20px;
    font-size:14px;
    position:sticky;
    top:16px;
}

.cc-summary b{
    display:block;
    margin-bottom:10px;
    font-family:var(--b-font-num);
    font-size:16px;
}

.cc-summary-row{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:6px 0;
    border-bottom:1px dashed var(--b-line-strong);
}

.cc-summary-row:last-child{
    border-bottom:none;
}

.cc-check{
    display:flex;
    gap:9px;
    align-items:flex-start;
    font-size:13px;
    color:var(--b-ink-soft);
}

.cc-error{
    margin:4px 0 0;
    color:#8C221A;
    font-size:12px;
}

/* Легаси-слой красит select внутри контента тёмной плашкой через boost-селекторы
   :not(#_):not(#__). Повторяем этот приём (как в brand.css), иначе поля каталога
   выглядят чужими на светлой странице. */
html body.spa-theme .site-content-shell .cc-wrap :is(select, input[type="text"], input[type="date"], input[type="time"], textarea):not(#_):not(#__):not(#___){
    -webkit-appearance:none;
    -moz-appearance:none;
    appearance:none;
    background-color:var(--b-surface) !important;
    background-image:none !important;
    color:var(--b-ink) !important;
    border:1px solid var(--b-line-strong) !important;
    border-radius:var(--b-r-sm) !important;
    box-shadow:none !important;
    padding:9px 12px !important;
    height:auto !important;
    min-height:40px;
    font-family:var(--b-font) !important;
    font-size:14px !important;
    font-weight:500 !important;
    line-height:1.4 !important;
}

/* Своя «галочка» у селектов: акцентная, как в остальном интерфейсе */
html body.spa-theme .site-content-shell .cc-wrap select:not(#_):not(#__):not(#___){
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5l5.5 5.5 5.5-5.5' stroke='%23C2730F' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:right 14px center !important;
    background-size:14px 9px !important;
    padding-right:36px !important;
}

html body.spa-theme .site-content-shell .cc-wrap :is(select, input, textarea):focus:not(#_):not(#__):not(#___){
    border-color:var(--b-accent) !important;
    box-shadow:0 0 0 3px rgba(143, 224, 31,.16) !important;
    outline:none;
}

@media (max-width:900px){
    .cc-filters form{
        grid-template-columns:1fr 1fr;
    }

    .cc-booking{
        grid-template-columns:1fr;
    }

    .cc-card{
        grid-template-columns:1fr;
    }

    .cc-side{
        justify-items:start;
        text-align:left;
    }
}

/* ==========================================================================
   Платформенные экраны v2: контейнер, крошки, выдача, карточки, профиль,
   запись, кабинет клиента. Только токены --b-*; брейкпоинты те же, что в
   brand.css (1024 / 768 / 480).
   ========================================================================== */

/* Текстовые ссылки: #3F7A00 на белом даёт 3.6:1 (ниже AA для 14px),
   #3F7A00 — 5.5:1 на белом и 5.2:1 на фоне страницы. Заливки не меняются. */
:root{ --b-link: #3F7A00; }

/* ---------------------------------------------------------- контейнер */
.cc-wrap{
    max-width:var(--b-container);
    margin:0 auto 56px;
    padding:20px 20px 0;
    box-sizing:border-box;
}
.cc-wrap--narrow{ max-width:720px; }
.cc-wrap--cabinet{ max-width:none; margin:0; padding:0; }
.cc-crumbs{ margin:0 0 14px; }

.cc-page-head h1{ font-family:var(--b-font); font-weight:800; letter-spacing:-.02em; font-size:clamp(24px,3vw,32px); }
.cc-page-head--row{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.cc-hint{ margin:12px 0 0; color:var(--b-muted); font-size:13.5px; }
.cc-optional{ font-weight:500; color:var(--b-muted); text-transform:none; letter-spacing:0; }
.cc-count{
    display:inline-grid; place-items:center; min-width:24px; height:22px; padding:0 7px; margin-left:6px;
    border-radius:var(--b-r-pill); background:var(--b-surface-2); color:var(--b-ink-soft);
    font:700 12px/1 var(--b-font); vertical-align:middle;
}
.cc-prose{ margin:0; color:var(--b-ink-soft); white-space:pre-line; line-height:1.6; }
.cc-error{ margin:6px 0 0; color:var(--b-danger); font-size:13px; font-weight:600; }
.cc-input.is-invalid{ border-color:var(--b-danger); }
.cc-note ul{ margin:6px 0 0; padding-left:18px; }

/* ---------------------------------------------------------- кнопки */
.cc-btn--sm{ min-height:40px; padding:8px 14px; font-size:13px; }
.cc-btn--lg{ min-height:52px; padding:12px 22px; font-size:15px; }
.cc-btn--block{ display:flex; width:100%; }
.cc-btn--danger{ background:var(--b-danger); color:#fff; }
.cc-btn--danger:hover{ background:#8C221A; color:#fff; }
.cc-btn--danger-ghost{ background:transparent; border-color:#E9C9C4; color:var(--b-danger); }
.cc-btn--danger-ghost:hover{ background:#FBEDEB; color:#8C221A; }
.cc-btn:focus-visible,
.cc-slot:focus-visible,
.cc-input:focus-visible,
.cc-select:focus-visible,
.cc-wrap a:focus-visible,
summary:focus-visible{
    outline:3px solid var(--b-accent);
    outline-offset:2px;
}

/* ---------------------------------------------------------- фильтры */
.cc-filters__form{
    display:grid;
    grid-template-columns:minmax(200px,2fr) repeat(3,minmax(140px,1fr)) auto;
    gap:10px 12px;
    align-items:end;
}
.cc-filters form.cc-filters__form{ grid-template-columns:minmax(200px,2fr) repeat(3,minmax(140px,1fr)) auto; }
.cc-field--submit .cc-btn{ width:100%; min-height:40px; }
.cc-filters__check{ grid-column:1 / -1; }
.cc-check{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--b-ink-soft); cursor:pointer; }
.cc-check input{ width:18px; height:18px; accent-color:var(--b-accent); margin:0; }
.cc-field__label{ display:block; margin-bottom:8px; font-size:12px; font-weight:600; color:var(--b-muted); letter-spacing:.02em; }
.cc-field__hint{ margin:4px 0 0; font-size:12px; color:var(--b-muted); }

.cc-toolbar{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 12px; }
.cc-toolbar__count{ margin:0; color:var(--b-muted); font-size:14px; }
.cc-toolbar__count b{ color:var(--b-ink); }
.cc-toolbar__reset{ font-size:14px; font-weight:600; color:var(--b-link); }

/* ---------------------------------------------------------- карточка компании */
.cc-card__title{ margin:0 0 6px; font:800 19px/1.3 var(--b-font); letter-spacing:-.01em; overflow-wrap:anywhere; }
.cc-card__title a{ color:var(--b-ink); text-decoration:none; }
.cc-card__title a:hover{ color:var(--b-accent-text); }
.cc-card .cc-card-text{ margin:8px 0 0; }
.cc-card__main{ min-width:0; }
.cc-card__side{ display:grid; gap:10px; align-content:space-between; justify-items:end; text-align:right; }
.cc-card__actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cc-rating__star{ color:var(--b-accent-text); margin-right:3px; }
.cc-list--grid{ grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); }
.cc-list--grid .cc-card{ grid-template-columns:1fr; }
.cc-list--grid .cc-card__side{ justify-items:start; text-align:left; grid-auto-flow:row; }
.cc-list--grid .cc-card__actions{ justify-content:flex-start; }

/* ---------------------------------------------------------- пагинация */
.cc-pager{ display:flex; flex-wrap:wrap; gap:6px; margin-top:22px; align-items:center; }
.cc-pager__item{
    min-width:40px; height:40px; padding:0 12px; display:inline-grid; place-items:center;
    border:1px solid var(--b-line); border-radius:var(--b-r-sm); background:var(--b-surface);
    color:var(--b-ink-soft); font:600 14px/1 var(--b-font); text-decoration:none;
}
.cc-pager__item:hover{ border-color:var(--b-accent); color:var(--b-ink); }
.cc-pager__item.is-current{ background:var(--b-ink); border-color:var(--b-ink); color:#fff; }
.cc-pager__gap{ color:var(--b-muted); padding:0 4px; }

/* ---------------------------------------------------------- пустые состояния */
.cc-empty__actions{ display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:16px; }
.cc-empty--inline{ padding:22px 18px; }

/* ---------------------------------------------------------- страница компании */
.cc-hero{ display:grid; gap:4px; }
.cc-hero h1{ font-family:var(--b-font); font-weight:800; letter-spacing:-.02em; font-size:clamp(24px,3.2vw,34px); overflow-wrap:anywhere; }
.cc-hero__meta{ margin-bottom:10px; align-items:center; }
.cc-hero__rating{ color:var(--b-ink); font-weight:700; }
.cc-hero__rating span{ color:var(--b-accent-text); }
.cc-hero--person{ grid-template-columns:auto minmax(0,1fr); gap:20px; align-items:start; }

.cc-layout{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.cc-layout__side{ position:sticky; top:calc(var(--b-head-h) + 56px); display:grid; gap:16px; }
.cc-layout__side .cc-section{ margin-bottom:0; }

.cc-group-title{ margin:18px 0 4px; font:700 13px/1.3 var(--b-font); color:var(--b-muted); text-transform:uppercase; letter-spacing:.06em; }
.cc-group-title:first-of-type{ margin-top:4px; }
.cc-row{ align-items:center; }
.cc-row-name b{ overflow-wrap:anywhere; }
.cc-row-end{ display:flex; align-items:center; gap:12px; flex-shrink:0; }

.cc-people{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.cc-person{
    display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 12px; align-items:start;
    padding:14px; border:1px solid var(--b-line); border-radius:var(--b-r-md); background:var(--b-bg);
}
.cc-person > .cc-btn{ grid-column:2; justify-self:start; }
.cc-person__avatar{
    width:44px; height:44px; border-radius:50%; display:grid; place-items:center;
    background:var(--b-accent-soft); color:var(--b-accent-text); font:800 18px/1 var(--b-font);
}
.cc-person__avatar--lg{ width:72px; height:72px; font-size:28px; }
.cc-person__body{ min-width:0; }
.cc-person h3{ margin:0 0 2px; font:700 15.5px/1.3 var(--b-font); }
.cc-person h3 a{ color:var(--b-ink); text-decoration:none; }
.cc-person h3 a:hover{ color:var(--b-accent-text); text-decoration:underline; }
.cc-person p{ margin:0; font-size:13px; color:var(--b-muted); }
.cc-person__rating{ color:var(--b-ink-soft) !important; font-weight:600; }
.cc-person__rating span{ color:var(--b-accent-text); }

.cc-review-score{ letter-spacing:1px; color:var(--b-accent-text); }
.cc-review-score__off{ color:var(--b-line-strong); }
.cc-review-reply b{ display:block; margin-bottom:2px; font-size:12px; color:var(--b-muted); text-transform:uppercase; letter-spacing:.04em; }
.cc-review-form{ display:grid; gap:12px; padding:14px 0; border-top:1px solid var(--b-line); }
.cc-review-form__visit{ margin:0; font-size:14px; color:var(--b-ink-soft); }

.cc-branch{ padding:12px 0; border-bottom:1px solid var(--b-line); }
.cc-branch:last-child{ border-bottom:0; padding-bottom:0; }
.cc-branch:first-of-type{ padding-top:0; }
.cc-branch__name{ display:block; font-weight:700; }
.cc-branch__addr{ margin:2px 0 6px; color:var(--b-ink-soft); font-size:14px; }
.cc-branch__phone{ font-weight:600; font-size:14px; color:var(--b-link); }
.cc-hours{ margin:10px 0 0; display:grid; gap:2px; font-size:13px; }
.cc-hours__row{ display:flex; justify-content:space-between; padding:3px 8px; border-radius:6px; color:var(--b-ink-soft); }
.cc-hours__row dt{ font-weight:600; }
.cc-hours__row dd{ margin:0; font-variant-numeric:tabular-nums; }
.cc-hours__row.is-today{ background:var(--b-accent-soft); color:var(--b-ink); font-weight:700; }

.cc-side-cta b{ display:block; font-size:16px; margin-bottom:4px; }
.cc-side-cta p{ margin:0 0 12px; font-size:13.5px; color:var(--b-muted); }

.cc-sticky-book{ display:none; }

/* ---------------------------------------------------------- запись */
.cc-steps{
    display:flex; gap:8px; flex-wrap:wrap; list-style:none; margin:0 0 18px; padding:0;
}
.cc-steps__item{
    display:inline-flex; align-items:center; gap:8px; padding:6px 14px 6px 6px;
    border-radius:var(--b-r-pill); background:var(--b-surface); border:1px solid var(--b-line);
    font-size:13px; font-weight:600; color:var(--b-muted);
}
.cc-steps__item span{
    width:24px; height:24px; border-radius:50%; display:grid; place-items:center;
    background:var(--b-surface-2); color:var(--b-ink-soft); font-size:12px;
}
.cc-steps__item.is-current{ border-color:var(--b-accent); color:var(--b-ink); }
.cc-steps__item.is-current span{ background:var(--b-accent); color:var(--b-on-accent); }
.cc-steps__item.is-done{ color:var(--b-ink-soft); }
.cc-steps__item.is-done span{ background:var(--b-teal-soft); color:#0B0F14; }
.cc-section--flush{ margin-bottom:0; }
.cc-section h2 .cc-step-num{
    display:inline-grid; place-items:center; width:26px; height:26px; margin-right:6px; border-radius:50%;
    background:var(--b-ink); color:#fff; font:700 13px/1 var(--b-font); vertical-align:2px;
}
.cc-field--slots{ margin-top:16px; }
.cc-slots{ display:grid; gap:14px; }
.cc-slot-group__title{ display:block; margin-bottom:6px; font-size:12px; font-weight:700; color:var(--b-muted); text-transform:uppercase; letter-spacing:.06em; }
.cc-slot-group__items{ display:flex; flex-wrap:wrap; gap:8px; }
.cc-slot{ min-width:72px; min-height:40px; }
.cc-slot--more{ border-style:dashed; color:var(--b-ink-soft); font-family:var(--b-font); font-size:13px; }
.cc-crumbs span[aria-current]{ font-weight:600; }
.cc-submit-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:16px; }
.cc-submit-row .cc-hint{ margin:0; }
.cc-summary{ position:sticky; top:calc(var(--b-head-h) + 56px); }
.cc-summary__note{ margin:14px 0 0; font-size:12px; color:var(--b-muted); }

.cc-done{ text-align:center; padding:32px 26px; }
.cc-done h1{ margin:10px 0 8px; font:800 28px/1.2 var(--b-font); }
.cc-done__icon{
    width:56px; height:56px; border-radius:50%; display:inline-grid; place-items:center;
    background:var(--b-teal-soft); color:var(--b-teal);
}
.cc-done__icon svg{ width:28px; height:28px; }
.cc-done__lead{ margin:0 auto 20px; max-width:52ch; color:var(--b-ink-soft); }
.cc-done .cc-hero-actions{ justify-content:center; }
.cc-summary-list{ margin:0 0 6px; text-align:left; border:1px solid var(--b-line); border-radius:var(--b-r-md); overflow:hidden; }
.cc-summary-list > div{ display:flex; justify-content:space-between; gap:16px; padding:10px 16px; border-bottom:1px solid var(--b-line); font-size:14px; }
.cc-summary-list > div:last-child{ border-bottom:0; }
.cc-summary-list dt{ color:var(--b-muted); }
.cc-summary-list dd{ margin:0; font-weight:600; text-align:right; overflow-wrap:anywhere; }

/* ---------------------------------------------------------- статусы записей */
.cc-status{
    display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:var(--b-r-pill);
    font:700 12px/1.4 var(--b-font); white-space:nowrap;
}
.cc-status::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.cc-status--ok{ background:var(--b-teal-soft); color:#0B0F14; }
.cc-status--wait{ background:#F8FAFC; color:#0B0F14; }
.cc-status--done{ background:var(--b-surface-2); color:var(--b-ink-soft); }
.cc-status--off{ background:#FBEDEB; color:#8C221A; }

/* ---------------------------------------------------------- кабинет клиента */
.cc-appt-group{ margin-bottom:22px; }
.cc-appt-group h2{ margin:0 0 10px; font:800 18px/1.3 var(--b-font); }
.cc-appt{
    display:grid; grid-template-columns:64px minmax(0,1fr); gap:16px;
    padding:16px; margin-bottom:10px; background:var(--b-surface);
    border:1px solid var(--b-line); border-radius:var(--b-r-md);
}
.cc-appt--cancelled{ opacity:.78; }
.cc-appt__date{
    display:grid; place-items:center; align-content:center; gap:0; height:64px; border-radius:var(--b-r-sm);
    background:var(--b-accent-soft); color:var(--b-ink); text-align:center;
}
.cc-appt--finished .cc-appt__date,
.cc-appt--cancelled .cc-appt__date{ background:var(--b-surface-2); }
.cc-appt__date b{ font:800 22px/1 var(--b-font-num); }
.cc-appt__date span{ font-size:12px; font-weight:700; }
.cc-appt__date small{ font-size:11px; color:var(--b-muted); }
.cc-appt__head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cc-appt__time{ font-size:15px; }
.cc-appt__title{ margin:4px 0 6px; font-weight:700; color:var(--b-ink); overflow-wrap:anywhere; }
.cc-appt__actions{ display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; margin-top:12px; }
.cc-appt__actions .cc-hint{ margin:6px 0 0; }
.cc-cancel > summary{ list-style:none; }
.cc-cancel > summary::-webkit-details-marker{ display:none; }
.cc-cancel[open] > summary{ background:#FBEDEB; }
.cc-cancel__form{
    display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; margin-top:10px; padding:12px;
    border:1px solid #E9C9C4; border-radius:var(--b-r-sm); background:#FFF9F8;
}
.cc-cancel__form .cc-field{ flex:1 1 220px; }

.cc-next{
    display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    padding:18px 20px; margin:0 0 20px; background:var(--b-surface);
    border:1px solid var(--b-line); border-left:4px solid var(--b-accent); border-radius:var(--b-r-md);
    font-family:var(--b-font);
}
.cc-next__body{ display:grid; gap:2px; min-width:0; }
.cc-next__body .cc-status{ justify-self:start; margin-top:6px; }
.cc-next__label{ font-size:12px; font-weight:700; color:var(--b-muted); text-transform:uppercase; letter-spacing:.06em; }
.cc-next__when{ font-size:18px; color:var(--b-ink); }
.cc-next__what{ font-size:14px; color:var(--b-ink-soft); }

.cabinet-nav .cabinet-nav-group{
    padding:14px 12px 4px; font:700 11px/1.2 var(--b-font); color:var(--b-muted);
    text-transform:uppercase; letter-spacing:.08em; list-style:none;
}

/* ---------------------------------------------------------- главная */
.home-hero h1{ max-width:16ch; }
.home-search{
    display:grid; grid-template-columns:minmax(0,1fr) 210px auto; gap:8px; margin-top:22px; max-width:760px;
    padding:6px; background:var(--b-surface); border:1px solid var(--b-line); border-radius:var(--b-r-pill);
    box-shadow:var(--b-shadow-sm);
}
.home-search__field{ position:relative; display:flex; align-items:center; margin:0; }
.home-search__field svg{ position:absolute; left:14px; width:18px; height:18px; color:var(--b-muted); pointer-events:none; }
.home-search input,
.home-search select{
    width:100%; height:46px; border:0; background:transparent; font:500 15px var(--b-font); color:var(--b-ink);
}
.home-search input{ padding:0 12px 0 42px; border-radius:var(--b-r-pill); }
.home-search select{ padding:0 12px; border-left:1px solid var(--b-line); }
.home-search input:focus,
.home-search select:focus{ outline:none; }
.home-search:focus-within{ border-color:var(--b-accent); box-shadow:0 0 0 3px rgba(143, 224, 31,.16); }
.home-search__city{ margin:0; }
.home-search .btn-brand{ height:46px; padding:0 26px; border-radius:var(--b-r-pill); }
.home-hero__links{ display:flex; flex-wrap:wrap; gap:8px 20px; margin:18px 0 0; font-size:14.5px; font-weight:600; }
.home-hero__links a{ color:var(--b-accent-text); }
.home-hero__links a + a{ color:var(--b-ink-soft); }

.home-cats{ display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; }
.home-cat{
    display:grid; gap:2px; padding:14px 16px; border:1px solid var(--b-line); border-radius:var(--b-r-md);
    background:var(--b-surface); text-decoration:none; transition:border-color .15s ease;
}
.home-cat:hover{ border-color:var(--b-accent); }
.home-cat__name{ font:700 15px/1.3 var(--b-font); color:var(--b-ink); }
.home-cat__meta{ font-size:13px; color:var(--b-muted); }

.home-steps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; list-style:none; margin:0; padding:0; counter-reset:step; }
.home-steps li{
    counter-increment:step; position:relative; padding:18px 18px 18px 18px; display:grid; gap:4px;
    border:1px solid var(--b-line); border-radius:var(--b-r-md); background:var(--b-surface);
}
.home-steps li::before{
    content:counter(step); width:30px; height:30px; margin-bottom:6px; border-radius:50%; display:grid; place-items:center;
    background:var(--b-ink); color:#fff; font:800 14px/1 var(--b-font);
}
.home-steps b{ font:700 15.5px/1.3 var(--b-font); color:var(--b-ink); }
.home-steps span{ font-size:14px; color:var(--b-ink-soft); line-height:1.5; }

/* ---------------------------------------------------------- адаптив */
@media (max-width:1024px){
    .cc-filters__form,
    .cc-filters form.cc-filters__form{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cc-field--grow{ grid-column:1 / -1; }
    .cc-layout{ grid-template-columns:1fr; }
    .cc-layout__side{ position:static; order:-1; }
    .cc-side-cta{ display:none; }
    .home-steps{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cc-summary{ position:static; }
}
@media (max-width:768px){
    .cc-wrap{ padding:14px 16px 0; }
    .cc-card{ grid-template-columns:1fr; padding:16px; }
    .cc-card__side{ display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:left; flex-wrap:wrap; }
    .cc-card__actions{ justify-content:flex-end; flex-wrap:nowrap; margin-left:auto; }
    .cc-card__actions .cc-btn{ padding:9px 14px; }
    .cc-filters{ padding:12px; }
    .cc-filters__form,
    .cc-filters form.cc-filters__form{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .cc-field--grow{ grid-column:1 / -1; }
    .cc-field--submit{ grid-column:1 / -1; order:10; }
    .cc-filters__check{ order:9; }
    .home-cats{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .home-cat{ padding:12px; }
    .cc-list--grid{ grid-template-columns:1fr; }
    .cc-hero{ padding:18px; }
    .cc-hero--person{ grid-template-columns:1fr; }
    .cc-hero-actions .cc-btn{ flex:1 1 auto; }
    .cc-row{ flex-wrap:wrap; }
    .cc-row-end{ width:100%; justify-content:space-between; }
    .cc-section{ padding:16px; }
    .cc-steps__item{ padding-right:10px; font-size:12px; }
    .cc-slot-group__items{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
    .cc-slot{ min-width:0; padding:8px 4px; font-size:14px; }
    .cc-appt{ grid-template-columns:52px minmax(0,1fr); gap:12px; padding:14px; }
    .cc-appt__date{ height:56px; }
    .cc-appt__actions .cc-btn{ flex:1 1 auto; }
    .cc-cancel{ flex:1 1 100%; }
    .cc-cancel > summary{ width:100%; }
    .cc-page-head--row .cc-btn{ width:100%; }

    /* Кнопка записи — внизу экрана, контент не перекрывает */
    .cc-sticky-book{
        display:block; position:fixed; left:0; right:0; bottom:0; z-index:60;
        padding:10px 16px calc(10px + env(safe-area-inset-bottom));
        background:rgba(245, 246, 232,.96); border-top:1px solid var(--b-line);
        box-shadow:0 -6px 20px rgba(11, 15, 20,.08);
    }
    .cc-wrap:has(.cc-sticky-book){ padding-bottom:84px; }

    .home-search{ grid-template-columns:1fr; border-radius:var(--b-r-md); padding:8px; }
    .home-search select{ border-left:0; border-top:1px solid var(--b-line); }
    .home-search .btn-brand{ width:100%; border-radius:var(--b-r-sm); }
    .home-steps{ grid-template-columns:1fr; }
}
@media (max-width:360px){
    .cc-filters__form,
    .cc-filters form.cc-filters__form{ grid-template-columns:1fr; }
    .cc-person{ grid-template-columns:auto minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce){
    .home-cat{ transition:none; }
}

/* ---------------------------------------------------------- защита от легаси
   Легаси-тема красит все ссылки внутри .page-content / .site-content-shell в
   золото с !important — кнопки-ссылки становились нечитаемыми (кабинет).
   Фиксируем цвета компонентов платформы с большей специфичностью. */
.cc-wrap a.cc-btn:not(.cc-btn--ghost):not(.cc-btn--danger-ghost),
.cc-next a.cc-btn:not(.cc-btn--ghost),
.page-shell a.cc-btn:not(.cc-btn--ghost){ color:var(--b-on-accent) !important; }
.cc-wrap a.cc-btn.cc-btn--ghost,
.page-shell a.cc-btn.cc-btn--ghost{ color:var(--b-ink-soft) !important; }
.cc-wrap a.cc-btn.cc-btn--ghost:hover,
.page-shell a.cc-btn.cc-btn--ghost:hover{ color:var(--b-ink) !important; }
.cc-wrap .cc-meta a,
.cc-wrap .cc-hint a,
.cc-wrap .cc-summary-list a,
.cc-wrap .cc-branch a{ color:var(--b-link) !important; }
.cc-wrap .crumbs a{ color:var(--b-muted) !important; }
.cc-wrap .cc-card__title a,
.page-shell .cc-card__title a,
.cc-wrap .cc-person h3 a{ color:var(--b-ink) !important; }
.cc-wrap .cc-card__title a:hover,
.page-shell .cc-card__title a:hover,
.cc-wrap .cc-person h3 a:hover{ color:var(--b-link) !important; }

/* ==========================================================================
   Карточка компании v3: обложка, логотип и цена «от».

   Клиент в каталоге выбирает глазами: список из одних текстовых строк
   одинаковой высоты плохо сканируется. Обложка 4:3 слева даёт «лицо»
   компании, логотип рядом с названием — узнаваемость, цена «от» — точку
   входа по бюджету. Без обложки карточка не ломается: остаётся подложка с
   первой буквой названия.

   Блок идёт последним в файле, поэтому его правила перекрывают базовую
   сетку .cc-card выше, а медиа-запросы ниже — перекрывают его самого.
   ========================================================================== */

.cc-card{
    grid-template-columns:168px minmax(0,1fr) auto;
    gap:16px 18px;
    padding:16px 20px 16px 16px;
    align-items:start;
}

.cc-card__media{
    display:block;
    overflow:hidden;
    border-radius:var(--b-r-sm);
    aspect-ratio:4 / 3;
    background:linear-gradient(135deg,var(--b-teal-soft) 0%,var(--b-surface-2) 100%);
}

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

.cc-card__media--empty{
    display:grid;
    place-items:center;
}

.cc-card__initial{
    font-family:var(--b-font-num);
    font-size:38px;
    font-weight:700;
    line-height:1;
    color:var(--b-teal);
    opacity:.75;
}

.cc-card__head{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.cc-card__head > div{
    min-width:0;
}

.cc-card__logo{
    flex:0 0 auto;
    width:44px;
    height:44px;
    border-radius:50%;
    object-fit:cover;
    background:var(--b-surface-2);
    border:1px solid var(--b-line);
}

.cc-badge--price{
    background:var(--b-accent-soft);
    color:var(--b-accent-text);
}

.cc-card .cc-badges{
    margin-top:12px;
}

/* Компактнее на планшете: обложка меньше, действия под текстом */
@media (max-width:1024px){
    .cc-card{
        grid-template-columns:132px minmax(0,1fr) auto;
        gap:14px;
    }

    .cc-card__initial{
        font-size:30px;
    }
}

/* Телефон: обложка сверху во всю ширину, затем название, затем действия */
@media (max-width:768px){
    .cc-card{
        grid-template-columns:minmax(0,1fr);
        padding:14px;
    }

    .cc-card__media{
        aspect-ratio:16 / 9;
    }

    .cc-card__initial{
        font-size:34px;
    }

    .cc-card__head{
        align-items:flex-start;
    }

    .cc-card__logo{
        width:38px;
        height:38px;
    }

    .cc-card__side{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        text-align:left;
        flex-wrap:wrap;
        margin-top:4px;
    }

    .cc-card__actions{
        justify-content:flex-end;
        flex-wrap:nowrap;
        margin-left:auto;
    }
}

/* Сетка карточек (если используется .cc-list--grid): обложка сверху */
.cc-list--grid .cc-card{
    grid-template-columns:minmax(0,1fr);
    gap:12px;
}

.cc-list--grid .cc-card__media{
    aspect-ratio:16 / 9;
    border-radius:var(--b-r-sm);
}

/* --------------------------------------------------- шапка карточки компании
   Обложка — широкая полоса над заголовком (21:9 на десктопе, 16:9 на
   телефоне). Логотип стоит в одной строке с названием и не ломает перенос
   длинных названий. */
.cc-hero-cover{
    overflow:hidden;
    border-radius:var(--b-r-md);
    margin-bottom:16px;
    background:var(--b-surface-2);
    aspect-ratio:21 / 9;
    /* На широком экране 21:9 даёт полосу выше 500px — шапка съедала бы
       первый экран, поэтому высоту ограничиваем. */
    max-height:380px;
}

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

.cc-hero__title{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}

.cc-hero__logo{
    flex:0 0 auto;
    width:64px;
    height:64px;
    border-radius:50%;
    object-fit:cover;
    background:var(--b-surface);
    border:1px solid var(--b-line);
    box-shadow:var(--b-shadow-sm);
}

.cc-hero__price{
    font-family:var(--b-font-num);
    font-weight:700;
    color:var(--b-ink);
}

@media (max-width:768px){
    .cc-hero-cover{
        aspect-ratio:16 / 9;
        margin-bottom:12px;
    }

    .cc-hero__logo{
        width:48px;
        height:48px;
    }
}

/* Карточка компании без обложки: иконка услуги на цветной подложке
   (те же темы, что на главной — App\Support\ServiceIcon) */
.cc-theme--rose{--t-bg:#FF5C8A;--t-ink:#FFFFFF}
.cc-theme--amber{--t-bg:#A8FF3B;--t-ink:#0B0F14}
.cc-theme--teal{--t-bg:#17BFA0;--t-ink:#FFFFFF}
.cc-theme--slate{--t-bg:#2E7BFF;--t-ink:#FFFFFF}
.cc-theme--sand{--t-bg:#8B5CF6;--t-ink:#FFFFFF}
.cc-theme--green{--t-bg:#22C55E;--t-ink:#FFFFFF}
.cc-theme--sunset{--t-bg:#FF7A3D;--t-ink:#0B0F14}
.cc-theme--neutral{--t-bg:#F8FAFC;--t-ink:#0B0F14}
.cc-card__media--empty[class*="cc-theme--"]{background:var(--t-bg) !important;color:var(--t-ink)}
.cc-card__icon{font-size:30px;color:var(--t-ink)}

/* ==========================================================================
   Единая выдача поиска (/search): одна карточка на компании и анкеты.
   Список тот же, что в каталоге компаний, но с пометкой способа связи,
   поэтому стили опираются на те же токены --b-*.
   ========================================================================== */

.sr-list{
    display:grid;
    gap:14px;
}

.sr-card{
    display:grid;
    grid-template-columns:150px minmax(0,1fr) auto;
    gap:16px 18px;
    padding:16px 20px 16px 16px;
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
    align-items:start;
}

.sr-card__media{
    display:block;
    overflow:hidden;
    border-radius:var(--b-r-sm);
    aspect-ratio:4 / 3;
    background:linear-gradient(135deg,var(--b-teal-soft) 0%,var(--b-surface-2) 100%);
}

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

.sr-card__media--empty{
    display:grid;
    place-items:center;
}

.sr-card__initial{
    font-family:var(--b-font-num);
    font-size:34px;
    font-weight:700;
    color:var(--b-teal);
    opacity:.75;
}

.sr-card__body{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:6px;
    align-items:flex-start;
}

.sr-badge{
    display:inline-block;
    padding:3px 10px;
    border-radius:var(--b-r-pill);
    font:700 11.5px/1.4 var(--b-font);
}

.sr-badge--online{
    background:var(--b-teal-soft);
    color:#0B0F14;
}

.sr-badge--phone{
    background:var(--b-surface-2);
    color:var(--b-muted);
}

.sr-card__title{
    margin:0;
    font:800 19px/1.3 var(--b-font);
    letter-spacing:-.01em;
    overflow-wrap:anywhere;
}

.sr-card__title a{
    color:var(--b-ink) !important;
    text-decoration:none;
}

.sr-card__title a:hover{
    color:var(--b-accent-strong) !important;
}

.sr-card__meta{
    margin:0;
    font-size:13px;
    color:var(--b-muted);
}

.sr-card__text{
    margin:4px 0 0;
    font-size:14px;
    line-height:1.5;
    color:var(--b-ink-soft);
}

.sr-card__side{
    display:grid;
    gap:8px;
    align-content:start;
    justify-items:end;
    text-align:right;
}

.sr-card__rating{
    font-family:var(--b-font-num);
    font-size:19px;
    font-weight:700;
    line-height:1;
}

.sr-card__rating span{
    color:var(--b-accent-text);
    margin-right:4px;
}

.sr-card__rating small{
    display:block;
    margin-top:4px;
    font-family:var(--b-font);
    font-size:12px;
    font-weight:500;
    color:var(--b-muted);
}

.sr-card__price{
    font-family:var(--b-font-num);
    font-size:16px;
    font-weight:700;
    color:var(--b-ink);
    white-space:nowrap;
}

.sr-card__actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

@media (max-width:1024px){
    .sr-card{
        grid-template-columns:120px minmax(0,1fr) auto;
        gap:14px;
    }
}

@media (max-width:768px){
    .sr-card{
        grid-template-columns:minmax(0,1fr);
        padding:14px;
    }

    .sr-card__media{
        aspect-ratio:16 / 9;
    }

    .sr-card__side{
        justify-items:start;
        text-align:left;
        grid-auto-flow:row;
        gap:10px;
    }

    .sr-card__actions{
        justify-content:flex-start;
    }
}

/* ==========================================================================
   Тарифы и выбор типа исполнителя (/pricing, /business/register).
   Те же токены --b-*, что и остальные платформенные экраны.
   ========================================================================== */

/* --- блок тарифов --- */
.price-block{
    margin-top:28px;
}

.price-block__head h2{
    margin:0 0 6px;
    font:800 clamp(22px, 2.4vw, 28px)/1.2 var(--b-font);
    letter-spacing:-.01em;
}

.price-block__head p{
    margin:0 0 16px;
    color:var(--b-muted);
    font-size:14.5px;
    line-height:1.5;
    max-width:70ch;
}

.price-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:14px;
}

.price-card{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:20px;
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
}

.price-card--accent{
    border-color:var(--b-accent);
    box-shadow:var(--b-shadow-sm);
}

.price-card__name{
    margin:0;
    font:700 15px/1.3 var(--b-font);
    color:var(--b-ink-soft);
}

.price-card__price{
    margin:0;
    font-family:var(--b-font-num);
    font-size:30px;
    font-weight:700;
    line-height:1;
    color:var(--b-ink);
}

.price-card__term{
    margin:0;
    font-size:12.5px;
    color:var(--b-muted);
}

.price-card__list{
    margin:6px 0 12px;
    padding-left:18px;
    display:grid;
    gap:6px;
    font-size:13.5px;
    line-height:1.45;
    color:var(--b-ink-soft);
}

.price-card .cc-btn{
    margin-top:auto;
}

.cc-faq{
    display:grid;
    gap:10px;
    max-width:80ch;
}

.cc-faq details{
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-sm);
    padding:12px 16px;
}

.cc-faq summary{
    cursor:pointer;
    font-weight:700;
    font-size:14.5px;
    color:var(--b-ink);
}

.cc-faq details p{
    margin:8px 0 0;
    font-size:14px;
    line-height:1.55;
    color:var(--b-ink-soft);
}

.cc-prose{
    max-width:80ch;
    font-size:14.5px;
    line-height:1.6;
    color:var(--b-ink-soft);
}

/* --- выбор типа исполнителя --- */
.bk-choices{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:16px;
}

.bk-choice{
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:22px;
    background:var(--b-surface);
    border:1px solid var(--b-line);
    border-radius:var(--b-r-md);
}

.bk-choice__icon{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--b-accent-soft);
    color:var(--b-accent-strong);
    font-size:18px;
}

.bk-choice__title{
    margin:0;
    font:800 19px/1.25 var(--b-font);
    letter-spacing:-.01em;
    color:var(--b-ink);
}

.bk-choice__text{
    margin:0;
    font-size:14px;
    line-height:1.5;
    color:var(--b-ink-soft);
}

.bk-choice__list{
    margin:0 0 6px;
    padding-left:18px;
    display:grid;
    gap:5px;
    font-size:13.5px;
    line-height:1.45;
    color:var(--b-muted);
}

.bk-choice .cc-btn{
    margin-top:auto;
}

/* --- метка платного размещения на странице анкеты --- */
.tier-tag{
    display:inline-flex;
    align-items:center;
    padding:4px 12px;
    border-radius:var(--b-r-pill);
    background:var(--b-accent-soft);
    color:var(--b-accent-strong);
    font:700 12px/1.4 var(--b-font);
}

/* Личная ссылка на запись (страница «Вы записаны») */
.cc-manage-link{ margin-top:20px; padding:16px; border:1px solid var(--b-line); border-radius:var(--b-r-md); background:var(--b-surface-2); text-align:left; }
.cc-manage-link p{ margin:4px 0 10px; color:var(--b-muted); font-size:14px; }
.cc-manage-link__row{ display:flex; gap:8px; }
.cc-manage-link__row .cc-input{ flex:1 1 auto; min-width:0; font-size:13px; }

/* Тарифы: строка про пробный период */
.price-trial{ margin:10px 0 0; padding:10px 14px; border-radius:var(--b-r-sm); background:var(--b-accent-soft); color:var(--b-ink); font-size:14px; line-height:1.5; }
.sr-badge--boost{ margin-left:6px; background:var(--b-accent-soft); color:var(--b-accent-text); }
/* Оффер запуска на странице тарифов: бесплатно до 3 записей + гарантия */
.price-offer{ margin:14px 0 0; padding:16px 18px; border-radius:var(--b-r-sm); border:1px solid var(--b-line); background:#fff; }
.price-offer__lead{ margin:0; font-size:15px; line-height:1.55; }
.price-offer__list{ margin:10px 0 0; padding-left:18px; display:grid; gap:6px; font-size:14px; line-height:1.5; }
.price-offer__list b{ font-weight:700; }
@media (max-width:420px){ .price-offer{ padding:14px; } .price-offer__lead{ font-size:14px; } }

/* Карта точек: филиалы компании и мастер (Leaflet + OpenStreetMap) */
.cc-map{ position:relative; margin:12px 0 10px; border-radius:var(--b-r-sm); overflow:hidden; border:1px solid var(--b-line); background:#EDEFE4; }
.cc-map__canvas{ width:100%; height:220px; }
.cc-map.is-active{ border-color:var(--b-accent); }
.cc-map__hint{ position:absolute; left:8px; bottom:8px; margin:0; padding:4px 8px; border-radius:999px; background:rgba(11,15,20,.74); color:#F8FAFC; font-size:11.5px; line-height:1.2; pointer-events:none; }
.cc-map .leaflet-control-attribution{ font-size:10px; }
.cc-map-routes{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.cc-map-routes__item{ display:grid; gap:4px; padding:10px 12px; border:1px solid var(--b-line); border-radius:var(--b-r-sm); background:#fff; }
.cc-map-routes__addr{ font-size:13px; color:var(--b-gray); }
.cc-map-routes__links{ display:flex; flex-wrap:wrap; gap:8px; margin-top:2px; }
@media (max-width:420px){
    .cc-map__canvas{ height:190px; }
    .cc-map-routes__links .cc-btn{ flex:1 1 auto; justify-content:center; }
}
