/*
 * Barber Pet — редизайн 2026 (макет Figma «barb», кадр page-home-desktop 1600).
 * Слой поверх старых css/style.css и css/shop.css; всё действует от body.bp26.
 *
 * 1. Токены          5. Подвал
 * 2. База            6. Главная
 * 3. Компоненты      7. Внутренние страницы
 * 4. Шапка и меню    8. Адаптив
 */

/* ---------- 1. Токены ---------- */

:root {
    --bp-bg: #E5E0DC;           /* фон страницы */
    --bp-panel: #F6F3F1;        /* светлые блоки r42 */
    --bp-ink: #1D1D1B;          /* заголовки */
    --bp-text: #4A4A49;         /* основной текст */
    --bp-muted: #6F6A65;        /* подписи */
    --bp-brown: #4C392B;        /* акцент, подвал */
    --bp-cream: #EBE4DC;        /* текст на коричневом */
    --bp-line: #CAC1BA;         /* рамки карточек */
    --bp-line-2: #D3C7BD;
    --bp-line-3: #DAD5CD;
    --bp-photo: #DED2C9;        /* подложка под фото */
    /* кнопки: светлый оранжевый — выбор заказчика 21.10.2026 (в макете было серое #B2ADA9).
       Меняется в «Тема → Редизайн 2026 → кнопки записи»; наведение — тот же цвет на 15 % темнее */
    --bp-btn: #E69369;
    --bp-btn-hover: #C47D59;
    --bp-glass: rgba(255, 255, 255, .42);
    --bp-glass-line: rgba(255, 255, 255, .42);
    --bp-blur: blur(21px);

    --bp-r-panel: 42px;
    --bp-r-card: 16px;
    --bp-r-img: 12px;

    --bp-serif: Lora, Georgia, 'Times New Roman', serif;
    --bp-sans: Inter, 'Helvetica Neue', Arial, sans-serif;
    --bp-body: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;

    --bp-gutter: clamp(20px, 6.25vw, 100px);
    --bp-section: 120px;
    --bp-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- 2. База ---------- */

/* clip, а не hidden: страница не ездит вбок на телефоне, если что-то шире экрана, и при этом
   не появляется своя прокрутка у body */
html:has(body.bp26) {
    height: auto;
    overflow-x: clip;
    background: var(--bp-bg);
}

body.bp26 {
    height: auto;
    overflow-x: clip;
    min-height: 100%;
    margin: 0;
    background: var(--bp-bg) none !important;
    color: var(--bp-text);
    font-family: var(--bp-body);
    font-size: 18px;
    line-height: 1.7778;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

.bp26 h1, .bp26 h2, .bp26 h3, .bp26 h4, .bp26 h5, .bp26 h6 {
    font-family: var(--bp-serif);
    color: var(--bp-ink);
    font-weight: 400;
}

.bp26 ::selection {
    background: rgba(76, 57, 43, .18);
}

.bp26 :focus-visible {
    outline: 2px solid var(--bp-brown) !important;
    outline-offset: 3px;
}

.bp26 img {
    max-width: 100%;
    height: auto;
}

.bp-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.bp-skip {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 2000;
    padding: 12px 20px;
    border-radius: 100px;
    background: var(--bp-ink);
    color: #fff !important;
    font: 700 14px/1 var(--bp-sans);
    transform: translateY(-200%);
    transition: transform .2s;
}

.bp-skip:focus {
    transform: none;
}

/* ---------- 3. Компоненты ---------- */

.bp-container {
    box-sizing: border-box;
    width: 100%;
    max-width: calc(1400px + 2 * var(--bp-gutter));
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--bp-gutter);
    padding-right: var(--bp-gutter);
}

.bp-section {
    position: relative;
    padding: var(--bp-section) 0;
}

/* светлый блок во всю ширину со скруглением 42 */
.bp-panel {
    background: var(--bp-panel);
    border-radius: var(--bp-r-panel);
}

.bp26 .bp-eyebrow {
    margin: 0;
    color: var(--bp-brown);
    font: 400 14px/1.2 var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
}

.bp26 .bp-h1 {
    margin: 0;
    color: var(--bp-ink);
    font: 400 56px/58px var(--bp-serif);
    letter-spacing: 0;
    text-wrap: balance;
}

.bp26 .bp-h2 {
    margin: 0;
    color: var(--bp-ink);
    font: 400 46px/58px var(--bp-serif);
    letter-spacing: 0;
    text-wrap: balance;
}

.bp26 .bp-text,
.bp26 .bp-text p {
    color: var(--bp-text);
    font: 400 18px/32px var(--bp-body);
}

.bp26 .bp-text p {
    margin: 0 0 16px;
}

.bp26 .bp-text p:last-child {
    margin-bottom: 0;
}

.bp-icon {
    display: block;
    flex: none;
    width: 1em;
    height: 1em;
}

/* кнопка-пилюля */
.bp26 .bp-btn {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 56px;
    margin: 0;
    padding: 16px 32px 16px 40px;
    border: 0;
    border-radius: 100px;
    font: 700 14px/1 var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .25s var(--bp-ease), color .25s var(--bp-ease), transform .25s var(--bp-ease);
}

.bp26 .bp-btn .bp-icon {
    width: 18px;
    height: 18px;
    transition: transform .25s var(--bp-ease);
}

.bp26 .bp-btn:hover .bp-icon {
    transform: translateX(3px);
}

.bp26 .bp-btn--primary,
.bp26 .bp-btn--primary:visited,
.bp26 .bp-btn--primary:focus {
    background: var(--bp-btn);
    color: #fff;
}

.bp26 .bp-btn--primary:hover,
.bp26 .bp-btn--primary:active {
    background: var(--bp-btn-hover);
    color: #fff;
    text-decoration: none;
}

.bp26 .bp-btn--lg {
    min-height: 64px;
}

.bp26 .bp-btn--lg .bp-icon {
    width: 24px;
    height: 24px;
}

/* тихая ссылка «MEHR LESEN →» */
.bp26 .bp-link,
.bp26 .bp-link:visited,
.bp26 .bp-link:focus {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--bp-ink);
    font: 700 14px/1.2 var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
}

.bp26 .bp-link .bp-icon {
    width: 16px;
    height: 16px;
    transition: transform .25s var(--bp-ease);
}

.bp26 .bp-link:hover {
    color: var(--bp-brown);
    text-decoration: none;
}

.bp26 .bp-link:hover .bp-icon {
    transform: translateX(3px);
}

/* круглая стеклянная кнопка (стрелки слайдера, бургер) */
.bp26 .bp-round {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 50%;
    background: rgba(255, 255, 255, .5);
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
    color: var(--bp-brown);
    cursor: pointer;
    transition: background-color .25s, opacity .25s;
}

.bp26 .bp-round .bp-icon {
    width: 20px;
    height: 20px;
}

.bp26 .bp-round:hover {
    background: #fff;
}

.bp26 .bp-round:disabled {
    opacity: .4;
    cursor: default;
}

/* стеклянная пилюля (телефон, язык) */
.bp-pill {
    box-sizing: border-box;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 56px;
    padding: 0 24px;
    border: 1px solid var(--bp-glass-line);
    border-radius: 100px;
    background: var(--bp-glass);
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
    color: var(--bp-ink);
}

.bp-pill__icon {
    display: inline-flex;
    color: var(--bp-ink);
}

.bp-pill__icon .bp-icon {
    width: 20px;
    height: 20px;
}

.bp26 .bp-pill__tel,
.bp26 .bp-pill__tel:visited {
    color: var(--bp-ink);
    font: 400 20px/24px var(--bp-sans);
    letter-spacing: 0;
    text-decoration: none;
}

.bp26 .bp-pill__tel:hover {
    color: var(--bp-brown);
    text-decoration: none;
}

/* иконка трубки стоит вне ссылки — красим её вместе с номером при наведении на номер */
.bp26 .bp-pill--phone:has(.bp-pill__tel:hover) .bp-pill__icon {
    color: var(--bp-brown);
}

/* выпадашка на <details> (без jQuery) */
.bp-drop {
    position: relative;
}

.bp-drop > summary {
    display: flex;
    align-items: center;
    gap: 6px;
    list-style: none;
    cursor: pointer;
}

.bp-drop > summary::-webkit-details-marker {
    display: none;
}

.bp-drop > summary .bp-icon {
    width: 20px;
    height: 20px;
    color: var(--bp-text);
    transition: transform .2s;
}

.bp-drop[open] > summary .bp-icon {
    transform: rotate(180deg);
}

.bp-drop__list {
    position: absolute;
    top: calc(100% + 12px);
    right: -8px;
    z-index: 30;
    min-width: 120px;
    padding: 8px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: #fff;
    box-shadow: 0 16px 40px rgba(29, 29, 27, .12);
}

.bp26 .bp-drop__list a {
    display: block;
    padding: 10px 14px;
    border-radius: 10px;
    color: var(--bp-ink);
    font: 400 16px/1.3 var(--bp-sans);
    text-decoration: none;
    white-space: nowrap;
}

.bp26 .bp-drop__list a:hover {
    background: var(--bp-panel);
    color: var(--bp-ink);
}

.bp-drop__list small {
    display: block;
    color: var(--bp-muted);
    font-size: 13px;
}

.bp-pill--lang {
    padding: 0 16px 0 20px;
}

.bp-pill--lang > summary {
    height: 100%;
    color: var(--bp-ink);
    font: 400 16px/1 var(--bp-sans);
    letter-spacing: 1px;
}

/* наведение — коричневым, как пункты меню и номер телефона */
.bp26 .bp-pill--lang > summary:hover,
.bp26 .bp-pill--lang > summary:hover .bp-icon {
    color: var(--bp-brown);
}

.bp-pill--lang .bp-drop__list {
    right: 0;
    min-width: 0;
}

/* круглые пилюли: адрес (булавка, маршрут в Google Maps) и звонок (трубка, только планшет и телефон) */
.bp26 .bp-pill--route,
.bp26 .bp-pill--route:visited,
.bp26 .bp-pill--call,
.bp26 .bp-pill--call:visited {
    justify-content: center;
    width: 56px;
    padding: 0;
    color: var(--bp-ink);
    text-decoration: none;
}

.bp-header__actions .bp-pill--call {
    display: none;
}

.bp-pill--route .bp-icon,
.bp-pill--call .bp-icon {
    width: 22px;
    height: 22px;
}

.bp26 .bp-pill--route:hover,
.bp26 .bp-pill--call:hover {
    color: var(--bp-brown);
}

/* подсказка с адресом — только там, где есть наведение (на телефоне сразу маршрут) */
.bp-route-tip {
    position: absolute;
    top: calc(100% + 14px);
    left: 50%;
    z-index: 30;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 18px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: #fff;
    box-shadow: 0 16px 40px rgba(29, 29, 27, .12);
    color: var(--bp-ink);
    font: 400 16px/1.3 var(--bp-sans);
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -4px);
    transition: opacity .2s var(--bp-ease), transform .2s var(--bp-ease), visibility .2s;
}

.bp-route-tip::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    width: 10px;
    height: 10px;
    margin-left: -5px;
    border-top: 1px solid var(--bp-line);
    border-left: 1px solid var(--bp-line);
    background: #fff;
    transform: rotate(45deg);
}

.bp-route-tip small {
    color: var(--bp-muted);
    font: 500 12px/1 var(--bp-sans);
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

@media (hover: none) {
    .bp-route-tip { display: none; }
}

@media (hover: hover) {
    .bp-pill--route:hover .bp-route-tip,
    .bp-pill--route:focus-visible .bp-route-tip {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
    }
}

/* заголовки секций */
.bp-head {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 64px;
}

.bp-head--row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.bp-head--row > div {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bp-head--split {
    display: grid;
    grid-template-columns: 365px minmax(0, 1fr);
    align-items: start;
    gap: 0;
}

/* текст из редактора (страницы, записи) */
.bp26 .bp-prose {
    color: var(--bp-text);
    font: 400 18px/32px var(--bp-body);
}

.bp26 .bp-prose > :first-child {
    margin-top: 0;
}

/* «по ширине» из старого редактора (style="text-align: justify") в узкой колонке даёт дыры
   между словами — в макете весь текст по левому краю */
.bp26 .bp-prose [style*="text-align: justify" i],
.bp26 .bp-prose [style*="text-align:justify" i] {
    text-align: left !important;
}

.bp26 .bp-prose p,
.bp26 .bp-prose ul,
.bp26 .bp-prose ol,
.bp26 .bp-prose table,
.bp26 .bp-prose blockquote {
    margin: 0 0 24px;
}

.bp26 .bp-prose h2,
.bp26 .bp-prose h3,
.bp26 .bp-prose h4 {
    margin: 48px 0 16px;
    color: var(--bp-ink);
    font-family: var(--bp-serif);
    font-weight: 400;
}

.bp26 .bp-prose h2 { font-size: 34px; line-height: 44px; }
.bp26 .bp-prose h3 { font-size: 26px; line-height: 36px; }
.bp26 .bp-prose h4 { font-size: 21px; line-height: 30px; }

.bp26 .bp-prose strong,
.bp26 .bp-prose b {
    color: var(--bp-ink);
    font-weight: 600;
}

/* <h3><b>…</b></h3> из редактора: подзаголовок остаётся Lora 400, как остальные */
.bp26 .bp-prose :is(h2, h3, h4) :is(b, strong) {
    font-weight: inherit;
    color: inherit;
}

.bp26 .bp-prose a {
    color: var(--bp-brown);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.bp26 .bp-prose a:hover {
    color: var(--bp-ink);
}

/* старая кнопка Bootstrap в тексте (a.btn — «СКАЧАТЬ ДОГОВОР» на странице отеля) — наша пилюля
   вместо салатовой #DFFF9C с подчёркиванием */
.bp26 .bp-prose a.btn,
.bp26 .bp-prose a.btn:visited {
    padding: 21px 32px;
    border: 0;
    border-radius: 100px;
    background: var(--bp-btn);
    color: #fff;
    font: 700 14px/14px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
}

.bp26 .bp-prose a.btn:hover,
.bp26 .bp-prose a.btn:focus-visible {
    background: var(--bp-btn-hover);
    color: #fff;
}

.bp26 .bp-prose ul,
.bp26 .bp-prose ol {
    padding-left: 0;
    list-style: none;
}

.bp26 .bp-prose li {
    position: relative;
    margin: 0 0 8px;
    padding-left: 26px;
}

.bp26 .bp-prose ul > li::before {
    content: '';
    position: absolute;
    top: 13px;
    left: 4px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--bp-btn);
}

.bp26 .bp-prose ol {
    counter-reset: bp-ol;
}

.bp26 .bp-prose ol > li::before {
    counter-increment: bp-ol;
    content: counter(bp-ol) '.';
    position: absolute;
    left: 0;
    color: var(--bp-brown);
    font-weight: 600;
}

.bp26 .bp-prose img {
    border-radius: var(--bp-r-img);
}

.bp26 .bp-prose hr {
    margin: 40px 0;
    border: 0;
    border-top: 1px solid var(--bp-line);
}

/* цитата — стеклянная карточка с текстом Lora вместо серой полосы Bootstrap (5px #eee) */
.bp26 .bp-prose blockquote {
    padding: 32px 40px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
    color: var(--bp-ink);
    font: 400 24px/36px var(--bp-serif);
}

.bp26 .bp-prose blockquote p {
    margin: 0 0 12px;
    color: inherit;
    font: inherit;
}

.bp26 .bp-prose blockquote > :last-child {
    margin-bottom: 0;
}

/* таблица — строки как в прайсе (линия #CAC1BA под строкой); шапка — как подписи прайса.
   Таблицы из редактора без <th>: шапкой считаем первую строку */
.bp26 .bp-prose table {
    width: 100%;
    border-collapse: collapse;
    font: 400 16px/26px var(--bp-body);
}

.bp26 .bp-prose td,
.bp26 .bp-prose th {
    padding: 14px 24px 14px 0;
    border: 0;
    border-bottom: 1px solid var(--bp-line);
    background: none;
    color: var(--bp-ink);
    font-weight: 400;
    text-align: left;
    text-transform: none;
    vertical-align: top;
}

.bp26 .bp-prose td:last-child,
.bp26 .bp-prose th:last-child {
    padding-right: 0;
}

.bp26 .bp-prose th,
.bp26 .bp-prose thead td {
    color: var(--bp-brown);
    font: 400 14px/20px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
}

.bp26 .bp-prose table:not(:has(th, thead)) tr:first-child > td {
    color: var(--bp-brown);
    font: 400 14px/20px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* строки «• …», набранные отдельными абзацами, — плотным списком;
   висячий отступ на ширину «• »: перенесённая строка встаёт под текст, а не под точку */
.bp26 .bp-prose p.bp-bullet {
    margin-bottom: 0;
    padding-left: .64em;
    text-indent: -.64em;
}

.bp26 .bp-prose p:has(+ p.bp-bullet) {
    margin-bottom: 0;
}

.bp26 .bp-prose p.bp-bullet + :not(.bp-bullet) {
    margin-top: 24px;
}

/* призыв к записи */
.bp26 .bp-cta {
    margin: 40px 0 0;
}

.bp-cta-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    margin-top: 64px;
    padding: 48px 56px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
}

.bp26 .bp-cta-card__title {
    margin: 0 0 8px;
    color: var(--bp-ink);
    font: 400 34px/44px var(--bp-serif);
}

.bp26 .bp-cta-card p {
    margin: 0;
    color: var(--bp-text);
    font: 400 18px/32px var(--bp-body);
}

/* ---------- 4. Шапка и меню ---------- */

.bp-header {
    position: relative;
    z-index: 40;
    padding: 40px 0 0;
}

/* на главной шапка лежит на видео */
.bp-header--overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}

.admin-bar .bp-header--overlay {
    top: 32px;
}

.bp-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.bp-header__logo {
    display: block;
    flex: none;
    line-height: 0;
}

.bp26 .bp-header__logo img {
    display: block;
    width: 194px;
    height: 66px;
    max-width: none;
}

.bp-header__nav ul {
    display: flex;
    align-items: center;
    gap: 40px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp26 .bp-header__nav a,
.bp26 .bp-header__nav a:visited {
    position: relative;
    display: block;
    padding: 8px 0;
    color: var(--bp-ink);
    font: 400 14px/17px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
}

.bp26 .bp-header__nav a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 2px;
    bottom: 2px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s var(--bp-ease);
}

.bp26 .bp-header__nav a:hover,
.bp26 .bp-header__nav a[aria-current] {
    color: var(--bp-brown);
}

.bp26 .bp-header__nav a:hover::after,
.bp26 .bp-header__nav a[aria-current]::after {
    transform: scaleX(1);
}

.bp-header__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.bp26 .bp-header__book {
    padding-left: 40px;
    padding-right: 32px;
}

.bp26 .bp-header__burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 0 0 4px;
    padding: 0;
    border: 1px solid var(--bp-glass-line);
    border-radius: 50%;
    background: var(--bp-glass);
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
    color: var(--bp-ink);
    cursor: pointer;
}

.bp26 .bp-header__burger .bp-icon {
    width: 24px;
    height: 24px;
}

/* полноэкранное меню (планшет и телефон) */
.bp-menu {
    position: fixed;
    inset: 0;
    z-index: 1100;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    background: var(--bp-bg);
    opacity: 0;
    transition: opacity .25s var(--bp-ease);
}

.bp-menu[hidden] {
    display: none;
}

.bp-menu.is-open {
    opacity: 1;
}

html.bp-menu-open,
html.bp-menu-open body {
    overflow: hidden !important;
}

.bp-menu__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 40px;
}

.bp26 .bp-menu__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    padding: 0;
    border: 1px solid var(--bp-line);
    border-radius: 50%;
    background: var(--bp-panel);
    color: var(--bp-ink);
    cursor: pointer;
}

.bp26 .bp-menu__close .bp-icon {
    width: 24px;
    height: 24px;
}

.bp-menu__body {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-top: 40px;
    padding-bottom: 40px;
}

.bp-menu__nav {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--bp-line);
}

.bp-menu__nav li {
    border-bottom: 1px solid var(--bp-line);
}

.bp26 .bp-menu__nav a,
.bp26 .bp-menu__nav a:visited {
    display: block;
    padding: 16px 0;
    color: var(--bp-ink);
    font: 400 32px/40px var(--bp-serif);
    text-decoration: none;
}

.bp26 .bp-menu__nav a[aria-current] {
    color: var(--bp-brown);
}

.bp26 .bp-menu__book {
    align-self: stretch;
}

.bp-menu__contacts {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bp26 .bp-menu__phone,
.bp26 .bp-menu__phone:visited {
    color: var(--bp-ink);
    font: 400 32px/1.2 var(--bp-body);
    text-decoration: none;
}

.bp26 .bp-menu__email,
.bp26 .bp-menu__email:visited {
    color: var(--bp-ink);
    font: 400 18px/1.4 var(--bp-body);
    text-decoration: none;
}

.bp26 .bp-menu__meta {
    margin: 0;
    color: var(--bp-muted);
    font: 400 14px/1.5 var(--bp-sans);
    letter-spacing: .5px;
}

.bp-menu__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.bp-menu__langs {
    display: inline-flex;
    gap: 16px;
    font: 700 14px/1 var(--bp-sans);
    letter-spacing: 2px;
}

.bp26 .bp-menu__langs a,
.bp26 .bp-menu__langs a:visited {
    color: var(--bp-muted);
    text-decoration: none;
}

.bp-menu__langs [aria-current] {
    color: var(--bp-ink);
}

/* ---------- 5. Подвал и плавающая кнопка ---------- */

.bp-footer {
    position: relative;
    margin-top: 0;
    padding: 100px 0 32px;
    border-radius: var(--bp-r-panel) var(--bp-r-panel) 0 0;
    background: var(--bp-brown);
    color: var(--bp-cream);
}

.bp-footer__main {
    display: grid;
    grid-template-columns: minmax(0, 300px) minmax(0, 1fr) auto auto;
    column-gap: 187px;
    row-gap: 56px;
}

.bp-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.bp26 .bp-footer__logo,
.bp26 .bp-footer__logo:visited {
    display: inline-block;
    color: var(--bp-cream);
    line-height: 0;
}

.bp-logo-est {
    width: 232px;
    height: 43px;
}

/* свой логотип из «Тема → Редизайн 2026» (картинка) вписывается в рамку логотипа темы, не растягиваясь,
   и прижат влево, как логотип темы */
.bp26 .bp-header__logo img {
    object-fit: contain;
    object-position: left center;
}

/* в подвале та же рамка 232×43, что у SVG темы: .bp26 img сбрасывает высоту картинок на auto */
.bp26 img.bp-logo-est {
    width: 232px;
    height: 43px;
    object-fit: contain;
    object-position: left center;
}

.bp26 .bp-footer__tagline,
.bp26 .bp-footer__address {
    margin: 0;
    color: rgba(235, 228, 220, .7);
    font: 400 16px/28px var(--bp-body);
}

/* цвет — общий с подписью (.7, контраст 5.2:1); при .5 мелкий адрес давал 3.4:1, ниже WCAG AA */
.bp26 .bp-footer__address {
    margin-top: -12px;
    font-size: 14px;
    line-height: 22px;
}

/* адрес — ссылка на маршрут в навигаторе (подвал, меню, «Kontakt»): цвет текста вокруг,
   тонкое подчёркивание подсказывает, что адрес нажимается */
.bp26 a[data-bp-route]:not(.bp-link),
.bp26 a[data-bp-route]:not(.bp-link):visited,
.bp26 a[data-bp-route]:not(.bp-link):focus {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    text-decoration-color: currentColor;
    text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
    transition: text-decoration-color .25s var(--bp-ease);
}

.bp26 a[data-bp-route]:not(.bp-link):hover {
    color: inherit;
    text-decoration-color: currentColor;
}

.bp-footer__contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}

.bp26 .bp-footer__heading {
    margin: 0;
    color: rgba(235, 228, 220, .5);
    font: 700 14px/17px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* 1.362 — высота строки «Auto» у Open Sans, как в макете (76px при 56px) */
.bp26 .bp-footer__phone,
.bp26 .bp-footer__phone:visited {
    color: var(--bp-cream);
    /* было 56px как в макете — заказчик дважды попросил меньше (25.10.2026): чуть крупнее e-mail (24px) */
    font: 400 28px/1.362 var(--bp-body);
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
}

.bp26 .bp-footer__phone--more {
    margin-top: -16px;
    font-size: 22px;
}

.bp26 .bp-footer__email,
.bp26 .bp-footer__email:visited {
    color: var(--bp-cream);
    font: 400 24px/26px var(--bp-body);
    text-decoration: none;
}

.bp-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin: 0;
}

/* соцсети — отдельный подблок колонки «Kontakt»: свой заголовок, ссылка @имя обычным текстом, как пункты меню */
.bp-footer__social-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 16px;
}

.bp26 .bp-footer__social a,
.bp26 .bp-footer__social a:visited {
    color: var(--bp-cream);
    font: 400 18px/26px var(--bp-body);
    text-decoration: none;
}

.bp-footer__col ul {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}

/* строка 16/26, как в макете (шаг 46px); иначе li берёт 18/32 от body */
.bp26 .bp-footer__col li {
    font-size: 16px;
    line-height: 26px;
}

.bp26 .bp-footer__col a,
.bp26 .bp-footer__col a:visited {
    color: var(--bp-cream);
    font: 400 16px/26px var(--bp-body);
    text-decoration: none;
}

.bp26 .bp-footer a:hover {
    color: #fff;
    opacity: .75;
    text-decoration: none;
}

/* коричневое кольцо фокуса на коричневом подвале не видно — светлое */
.bp26 .bp-footer :focus-visible {
    outline-color: var(--bp-cream) !important;
}

.bp-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 32px;
    flex-wrap: wrap;
    margin-top: 100px;
    padding-top: 32px;
    border-top: 1px solid rgba(235, 228, 220, .18);
}

.bp26 .bp-footer__bottom p {
    margin: 0;
    color: rgba(235, 228, 220, .6);
    font: 400 14px/20px var(--bp-sans);
    letter-spacing: 1px;
}

.bp26 .bp-footer__bottom a,
.bp26 .bp-footer__bottom a:visited {
    color: rgba(235, 228, 220, .6);
    text-decoration: none;
}

/* ссылка не рвётся по дефису («Cookie-|Einstellungen») и пробелу («Legal|Notice»):
   на телефоне строка переносится между ссылками, по « · » */
.bp26 .bp-footer__legal a {
    white-space: nowrap;
}

/* ---------- 6. Главная ---------- */

/* кнопка записи в правом нижнем углу hero — только на телефоне (на компьютере она в шапке). Не плавающая:
   уезжает вместе с hero. Hero высотой 100lvh заходит под нижнюю панель браузера (Safari iOS 26 — плавающая
   панель поверх страницы), lvh − svh — её высота: кнопка встаёт на 24px выше видимого низа экрана */
.hero_scroll__book {
    display: none;
}

@media (max-width: 767px) {
    .bp26 .hero_scroll__book,
    .bp26 .hero_scroll__book:visited {
        position: absolute;
        right: var(--bp-gutter);
        bottom: 24px;
        bottom: calc(100lvh - 100svh + 24px);
        z-index: 6;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        height: 52px;
        padding: 0 28px;
        border-radius: 100px;
        background: var(--bp-btn);
        color: #fff;
        font: 700 14px/1 var(--bp-sans);
        letter-spacing: 2px;
        text-transform: uppercase;
        text-decoration: none;
        transition: background-color .25s var(--bp-ease);
    }

    .bp26 .hero_scroll__book:hover {
        background: var(--bp-btn-hover);
        color: #fff;
        text-decoration: none;
    }
}

/* о салоне; колонки в пропорции макета 518 : 802 — при фиксированных 518px на 1280–1360
   текстовая колонка сжималась до 522px и заголовок шёл в 4 строки */
.bp-about__grid {
    display: grid;
    grid-template-columns: minmax(0, 518fr) minmax(0, 802fr);
    align-items: center;
    gap: 80px;
}

/* isolation — чтобы скругление обрезало увеличенное фото и в Safari */
.bp-about__photo {
    margin: 0;
    aspect-ratio: 518 / 648;
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: var(--bp-photo);
    isolation: isolate;
}

/* кадр как в макете: фото 585×779 по центру окна 518×648, то есть на 12.9% крупнее, чем cover */
.bp26 .bp-about__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.129);
}

.bp-about__text .bp-eyebrow {
    margin-bottom: 24px;
}

.bp-about__text .bp-h1 {
    margin-bottom: 28px;
}

/* flex — чтобы абзац был высотой со ссылку (17px), а не со строку body 32px: отступ 40px, как в макете */
.bp26 .bp-about__more {
    display: flex;
    margin: 40px 0 0;
}

/* услуги */
.bp-service-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-service-cards > li {
    display: flex;
}

/* в макете p8 и обводка 2px внутрь: окно с иллюстрацией 319×230 стоит в 6px от обводки */
.bp26 .bp-service-card,
.bp26 .bp-service-card:visited {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 6px;
    border: 2px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
    color: inherit;
    text-decoration: none;
    transition: transform .35s var(--bp-ease), border-color .35s, box-shadow .35s;
}

.bp26 .bp-service-card:hover {
    border-color: var(--bp-btn);
    box-shadow: 0 18px 40px rgba(76, 57, 43, .08);
    transform: translateY(-4px);
    text-decoration: none;
}

.bp-service-card__art {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 319 / 230;
    border-radius: var(--bp-r-img);
    background: var(--bp-bg);
    overflow: hidden;
}

.bp26 .bp-service-card__art img {
    display: block;
    width: auto;
    height: 61%;
    max-width: 62%;
    object-fit: contain;
    transition: transform .5s var(--bp-ease);
}

.bp26 .bp-service-card:hover .bp-service-card__art img {
    transform: scale(1.04);
}

.bp-service-card__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 0;
    text-align: center;
}

.bp-service-card__title {
    color: var(--bp-ink);
    font: 600 24px/31px var(--bp-serif);
    text-wrap: balance;
}

.bp-service-card__text {
    color: var(--bp-muted);
    font: 400 14px/20px var(--bp-sans);
}

/* до / после (twentytwenty) */
.bp-ba__card {
    padding: 8px;
    border: 2px solid var(--bp-line-2);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
}

.bp26 .bp-ba__compare {
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: #F7F2EA;
    box-shadow: none;
}

.bp26 .bp-ba__compare img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    aspect-ratio: 1380 / 620;
    object-fit: cover;
}

/* портретные фото (класс ставит single-services.php) — не режем в полосу: карточка уже, по центру
   и целиком помещается в высоту окна */
.bp-ba--portrait .bp-ba__card {
    max-width: min(760px, 70vh);
    margin-left: auto;
    margin-right: auto;
}

.bp26 .bp-ba--portrait .bp-ba__compare img {
    aspect-ratio: 4 / 5;
    object-position: 50% 25%;
}

.bp26 .bp-ba .twentytwenty-overlay,
.bp26 .bp-ba .twentytwenty-overlay:hover {
    background: none;
    opacity: 1;
}

.bp26 .bp-ba .twentytwenty-before-label,
.bp26 .bp-ba .twentytwenty-after-label,
.bp26 .bp-ba .twentytwenty-overlay:hover .twentytwenty-before-label,
.bp26 .bp-ba .twentytwenty-overlay:hover .twentytwenty-after-label {
    opacity: 1;
}

.bp26 .bp-ba .twentytwenty-before-label::before,
.bp26 .bp-ba .twentytwenty-after-label::before {
    top: 20px;
    margin-top: 0;
    padding: 8px 16px;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 100px;
    background: rgba(255, 255, 255, .6);
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
    color: var(--bp-brown);
    font: 700 12px/15px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
}

.bp26 .bp-ba .twentytwenty-before-label::before { left: 20px; }
.bp26 .bp-ba .twentytwenty-after-label::before { right: 20px; }

/* низкий экран (телефон горизонтально): портретная карточка сужается по высоте окна до ~270px —
   подписи как на телефоне, иначе «Vorher» и «Nachher» сходятся у линии */
@media (max-height: 500px) {
    .bp26 .bp-ba--portrait .twentytwenty-before-label::before,
    .bp26 .bp-ba--portrait .twentytwenty-after-label::before { top: 12px; padding: 6px 12px; font-size: 11px; }
    .bp26 .bp-ba--portrait .twentytwenty-before-label::before { left: 12px; }
    .bp26 .bp-ba--portrait .twentytwenty-after-label::before { right: 12px; }
}

.bp26 .bp-ba .twentytwenty-handle {
    width: 56px;
    height: 56px;
    margin-left: -28px;
    margin-top: -28px;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 50%;
    background: rgba(255, 255, 255, .7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath d='M9 8l-4 4 4 4M15 8l4 4-4 4' stroke='%234C392B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 24px no-repeat;
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
    box-shadow: none;
}

.bp26 .bp-ba .twentytwenty-handle::before,
.bp26 .bp-ba .twentytwenty-handle::after {
    width: 2px;
    margin-left: -1px;
    background: #fff;
    box-shadow: none;
}

.bp26 .bp-ba .twentytwenty-handle::before { margin-bottom: 28px; }
.bp26 .bp-ba .twentytwenty-handle::after { margin-top: 28px; }

.bp26 .bp-ba .twentytwenty-left-arrow,
.bp26 .bp-ba .twentytwenty-right-arrow {
    display: none;
}

/* отзывы и общий слайдер */
.bp-slider__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 3 * 20px) / 4);
    gap: 20px;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    list-style: none;
}

.bp-slider__track::-webkit-scrollbar {
    display: none;
}

.bp-slider__item {
    scroll-snap-align: start;
}

.bp-slider__nav {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 40px;
}

.bp-slider.is-static .bp-slider__nav {
    display: none;
}

.bp26 .bp-review-card,
.bp26 .bp-review-card:visited {
    display: block;
    padding: 8px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
    line-height: 0;
    transition: border-color .35s var(--bp-ease);
}

/* без подъёма и тени: дорожка слайдера (overflow) срезала верх рамки и тень ровным краем —
   при наведении меняется только цвет рамки, как у карточек услуг */
.bp26 .bp-review-card:hover {
    border-color: var(--bp-btn);
}

/* кольцо фокуса внутри карточки — снаружи его обрезает дорожка слайдера (overflow) */
.bp26 .bp-review-card:focus-visible {
    outline-offset: -4px;
}

.bp26 .bp-review-card img {
    display: block;
    width: 100%;
    aspect-ratio: 9 / 16;
    object-fit: cover;
    border-radius: var(--bp-r-img);
    background: var(--bp-photo);
}

/* видеоотзывы */
.bp-head--videos {
    display: grid;
    grid-template-columns: minmax(0, 799px) minmax(0, 481px);
    justify-content: space-between;
    align-items: end;
    gap: 32px 120px;
}

.bp-head--videos > div {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bp26 .bp-head__aside {
    margin: 0;
}

.bp-video-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* углы прямые — в макете у превью видео скругления нет */
.bp-video {
    position: relative;
    aspect-ratio: 692 / 434;
    overflow: hidden;
    border-radius: 0;
    background: #2a221c;
    isolation: isolate;
}

/* размытый кадр во всю карточку, по центру — вертикальный ролик. В hqdefault.jpg (4:3) кадр 9:16
   стоит между чёрными полосами; 240% ширины — полосы уходят за край, по бокам размытый кадр, как в макете */
.bp-video::before {
    content: '';
    position: absolute;
    inset: -40px;
    z-index: -1;
    background: var(--bp-video-bg) center / 240% auto no-repeat;
    filter: blur(28px) brightness(.62) saturate(.9);
}

.bp26 .bp-video__play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

/* кнопка во всю карточку с overflow: hidden — кольцо фокуса рисуем внутри, белым по тёмному фону */
.bp26 .bp-video__play:focus-visible {
    border-radius: inherit;
    outline-color: #fff !important;
    outline-offset: -4px;
}

.bp26 .bp-video__poster {
    display: block;
    width: auto;
    height: 100%;
    max-width: none;
    aspect-ratio: 9 / 16;
    object-fit: cover;
}

.bp-video__play .bp-icon--play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 68px;
    height: 48px;
    margin: -24px 0 0 -34px;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .3));
    transition: transform .25s var(--bp-ease);
}

.bp-video__play:hover .bp-icon--play {
    transform: scale(1.08);
}

.bp-video iframe {
    position: absolute;
    top: 0;
    left: 50%;
    height: 100%;
    width: auto;
    aspect-ratio: 9 / 16;
    transform: translateX(-50%);
    border: 0;
}

/* «Ist Barber Pet der richtige Ort für Sie?» */
.bp-philosophy .bp-h2 {
    max-width: 900px;
    margin-bottom: 64px;
}

/* текст во всю ширину контейнера (в макете 1400). Свёрнутый — ровно 9 строк (9 × 32px) с ровным
   обрезом без затухания, как в макете; абзацы через пустую строку (32px, на телефоне 28px),
   поэтому обрез всегда приходится между строками, а не по середине */
.bp-philosophy__body.is-collapsed {
    max-height: 288px;
    overflow: hidden;
}

.bp26 .bp-philosophy__body p {
    margin-bottom: 32px;
}

.bp26 .bp-philosophy__body p.bp-bullet + :not(.bp-bullet) {
    margin-top: 32px;
}

/* в макете весь текст обычным начертанием и одним цветом — без жирных слов из редактора */
.bp26 .bp-philosophy__body strong,
.bp26 .bp-philosophy__body b {
    color: inherit;
    font-weight: 400;
}

.bp26 .bp-philosophy__body h2 {
    margin-top: 40px;
    font-size: 30px;
    line-height: 40px;
}

.bp26 .bp-philosophy__toggle {
    margin-top: 64px;
}

.bp-philosophy__toggle[aria-expanded="true"] .bp-icon {
    transform: rotate(-90deg);
}

.bp26 .bp-philosophy__toggle[aria-expanded="true"]:hover .bp-icon {
    transform: rotate(-90deg) translateX(3px);
}

/* партнёры */
.bp-partners {
    padding-top: 64px;
}

.bp26 .bp-partners__title {
    margin-bottom: 38px;
    color: var(--bp-muted);
    font-size: 16px;
    text-align: center;
}

/* в макете плитки 260 через 25px (5 × 260 + 4 × 25 = 1400); 34 в слое — не отрисованный зазор */
.bp-partners__list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 25px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-partners__list li,
.bp-partners__list a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    border-radius: var(--bp-r-card);
}

.bp-partners__list li {
    border: 1px solid var(--bp-line-3);
    background: #fff;
}

.bp-partners__list a {
    width: 100%;
}

.bp26 .bp-partners__list img {
    display: block;
    width: auto;
    max-width: 60%;
    max-height: 90px;
}

/* ---------- 7. Внутренние страницы ---------- */

.bp-section--top0 {
    padding-top: 0;
}

.bp-section--bottom {
    padding-bottom: var(--bp-section);
}

.bp-section--photo {
    padding-bottom: 0;
}

/* верх страницы: подпись, H1, вводный текст, кнопка записи */
.bp-page-head {
    padding: 96px 0 64px;
}

.bp-page-head__inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px 64px;
}

.bp-page-head__text {
    max-width: 960px;
}

.bp-page-head .bp-eyebrow {
    margin-bottom: 24px;
}

.bp26 .bp-page-head__lead {
    max-width: 760px;
    margin-top: 24px;
}

.bp26 .bp-page-head__lead p {
    margin: 0 0 12px;
}

.bp26 .bp-page-head__cta {
    flex: none;
    margin: 0;
}

/* на компьютере и планшете в шапке уже есть кнопка записи — вторая прямо под ней лишняя (заказчик, 25.10.2026);
   на телефоне в шапке кнопки нет, там остаётся */
@media (min-width: 768px) {
    .bp26 .bp-page-head__cta { display: none; }
}

.bp-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px 40px;
}

/* светлый блок внутри сетки (а не во всю ширину) */
.bp-panel--card {
    padding: 64px;
    border-radius: var(--bp-r-panel);
    background: var(--bp-panel);
}

.bp26 .bp-prose--narrow {
    max-width: 880px;
}

.bp26 .bp-prose--cols {
    column-count: 2;
    column-gap: 80px;
}

.bp26 .bp-prose--cols > * {
    break-inside: avoid-column;
}

/* абзац может перейти в соседнюю колонку (не меньше 3 строк с каждой стороны): в EN «Our Approach»
   всего два абзаца, и целиком они давали колонки 64 и 256px */
.bp26 .bp-prose--cols > p {
    break-inside: auto;
    orphans: 3;
    widows: 3;
}

.bp-wide-photo {
    margin: 0;
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: var(--bp-photo);
}

.bp-wide-photo--top {
    margin-bottom: 24px;
}

.bp26 .bp-wide-photo img {
    display: block;
    width: 100%;
    max-height: 640px;
    object-fit: cover;
}

/* текст + фото («О нас») */
.bp-split--head {
    padding-top: 96px;
}

.bp-split__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
    align-items: start;
    gap: 96px;
}

.bp-split--reverse .bp-split__grid {
    grid-template-columns: minmax(0, 560px) minmax(0, 1fr);
}

.bp-split--reverse .bp-split__photo {
    order: -1;
}

.bp-split__text .bp-eyebrow {
    margin-bottom: 24px;
}

.bp-split__text .bp-h1,
.bp-split__text .bp-h2 {
    margin-bottom: 40px;
}

/* фото стоит на месте (без прилипания при прокрутке — просьба заказчика) */
.bp-split__photo {
    margin: 0;
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: var(--bp-photo);
}

.bp26 .bp-split__photo img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.bp-approach .bp-h2 {
    margin-bottom: 48px;
}

/* карточки услуг (все услуги, подуслуги) */
.bp-svc-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-svc-list > li {
    display: flex;
}

.bp26 .bp-svc,
.bp26 .bp-svc:visited {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 8px;
    border: 2px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
    color: inherit;
    text-decoration: none;
    transition: transform .35s var(--bp-ease), border-color .35s, box-shadow .35s;
}

.bp26 .bp-svc:hover {
    border-color: var(--bp-btn);
    box-shadow: 0 18px 40px rgba(76, 57, 43, .08);
    transform: translateY(-4px);
}

.bp-svc__photo {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: var(--bp-bg);
}

.bp26 .bp-svc__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--bp-ease);
}

.bp26 .bp-svc__photo--art img {
    width: auto;
    height: 70%;
    object-fit: contain;
}

.bp26 .bp-svc:hover .bp-svc__photo img {
    transform: scale(1.03);
}

.bp-svc__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 24px 16px 16px;
}

.bp-svc__title {
    color: var(--bp-ink);
    font: 600 28px/36px var(--bp-serif);
}

.bp-svc__text {
    margin-bottom: 8px;
    color: var(--bp-text);
    font: 400 16px/26px var(--bp-body);
}

.bp-svc__body .bp-link {
    margin-top: auto;
}

/* цены */
.bp-prices__list {
    display: grid;
    grid-template-columns: minmax(0, 1fr); /* длинная цена не раздвигает все карточки */
    gap: 24px;
}

.bp-price {
    display: grid;
    grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
    align-items: start;
    gap: 56px;
    padding: 48px;
    border-radius: var(--bp-r-panel);
    background: var(--bp-panel);
}

.bp-price--no-photo {
    grid-template-columns: minmax(0, 1fr);
}

/* фото стоит на месте (без прилипания при прокрутке — просьба заказчика) */
.bp-price__photo {
    margin: 0;
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: var(--bp-photo);
}

/* фото услуг горизонтальные, собака обычно справа — портретный кадр резал морды */
.bp26 .bp-price__photo img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    object-position: 50% 30%;
}

.bp26 .bp-price__title {
    margin: 0;
    color: var(--bp-ink);
    font: 400 40px/48px var(--bp-serif);
}

.bp26 .bp-price__intro {
    margin-top: 16px;
    font-size: 16px;
    line-height: 28px;
}

.bp-price__tables {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 48px;
    margin-top: 32px;
}

.bp-price__table.is-full {
    grid-column: 1 / -1;
}

.bp26 .bp-price__sub {
    margin: 0 0 8px;
    color: var(--bp-brown);
    font: 400 14px/20px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
}

.bp-price__rows {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-price__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 24px;
    padding: 14px 0;
    border-bottom: 1px solid var(--bp-line);
}

.bp-price__name {
    color: var(--bp-ink);
    font: 400 17px/26px var(--bp-body);
}

.bp-price__value {
    color: var(--bp-ink);
    font: 600 16px/26px var(--bp-sans);
    text-align: right;
    white-space: nowrap;
}

.bp-price__desc {
    grid-column: 1 / -1;
    color: var(--bp-muted);
    font: 400 14px/21px var(--bp-sans);
}

/* метка строки цены («Most popular») — поле «Метка» в строке цен */
.bp-price__badge {
    display: inline-block;
    margin-left: 6px;
    padding: 3px 10px;
    border-radius: 100px;
    background: var(--bp-btn);
    color: #fff;
    font: 600 11px/16px var(--bp-sans);
    letter-spacing: 1px;
    text-transform: uppercase;
    vertical-align: 2px;
    white-space: nowrap;
}

.bp26 .bp-price__note {
    margin-top: 28px;
    font-size: 16px;
    line-height: 28px;
}

.bp-price .bp-cta {
    margin-top: 32px;
}

.bp-notes .bp-cta-card {
    margin-top: 56px;
}

/* пояснения под ценами — светлый блок во всю ширину: открываются заголовком блока (как .bp-h2),
   а не мелким h3 текста */
.bp26 .bp-notes .bp-prose > :is(h2, h3):first-child {
    margin: 0 0 40px;
    font: 400 46px/58px var(--bp-serif);
    text-wrap: balance;
}

/* страница услуги */
/* отступы заголовков секций — с .bp26, иначе их обнуляет .bp26 .bp-h2 { margin: 0 } */
.bp26 .bp-service-body__title {
    margin: 64px 0 32px;
}

.bp-feature-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-feature {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 32px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
}

.bp26 .bp-feature__title {
    margin: 0;
    color: var(--bp-ink);
    font: 600 22px/30px var(--bp-serif);
}

.bp26 .bp-feature__text {
    font-size: 16px;
    line-height: 26px;
}

.bp26 .bp-feature__text p:last-child {
    margin-bottom: 0;
}

/* контакты */
.bp-contact-cards {
    display: grid;
    /* телефон, адрес, часы, e-mail, соцсети */
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-contact-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 32px 28px;
    border: 2px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
}

.bp26 .bp-contact-card__title {
    margin: 0 0 8px;
    color: var(--bp-brown);
    font: 400 14px/20px var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
}

.bp26 .bp-contact-card__big,
.bp26 .bp-contact-card__big:visited {
    color: var(--bp-ink);
    font: 400 30px/1.2 var(--bp-body);
    text-decoration: none;
    white-space: nowrap;
}

/* пять карточек в ряд (от 1280px) узкие: международный номер (+41786151797) при 30px и «ÖFFNUNGSZEITEN»
   не влезали — кегль номера от ширины окна, у заголовка и полей карточки чуть меньше запас */
@media (min-width: 1280px) {
    .bp26 .bp-contact-card__big { font-size: clamp(22px, 1.7vw, 30px); }
}

@media (min-width: 1280px) and (max-width: 1439px) {
    .bp-contact-card { padding-left: 24px; padding-right: 24px; }
    .bp26 .bp-contact-card__title { letter-spacing: 1.5px; }
}

.bp26 .bp-contact-card__text,
.bp26 .bp-contact-card__text:visited {
    margin: 0;
    color: var(--bp-ink);
    font: 400 18px/28px var(--bp-body);
    text-decoration: none;
    word-break: break-word;
}

/* часы по услугам: «GROOMING & BOUTIQUE» над «Di–Sa: 08:00–18:00» (заказчик, 27.10.2026) */
.bp26 .bp-hours__label {
    display: block;
    color: var(--bp-ink);
    font: 600 13px/20px var(--bp-sans);
    letter-spacing: 1px;
    text-transform: uppercase;
}

.bp26 .bp-hours + .bp-hours {
    margin-top: 8px;
}

.bp26 .bp-hours__time {
    white-space: nowrap;
}

/* в пяти карточках на 1280–1439 «hello@barberpet.ch» в 18px рвался на «…barberpet.c / h» */
@media (min-width: 1280px) and (max-width: 1439px) {
    .bp26 a.bp-contact-card__text[href^="mailto:"] { font-size: 16px; }
}

.bp26 .bp-contact-card__note {
    margin: 0;
    color: var(--bp-muted);
    font: 400 14px/20px var(--bp-sans);
}

.bp26 .bp-contact-card .bp-link {
    margin-top: 8px;
}

/* подпись шире карточки (DE «In Google Maps öffnen» на 1280–1599) переносится, а стрелка остаётся
   за последним словом, не у края карточки. Перед svg браузер всегда может перенести строку, поэтому
   стрелка — фон в конце подписи: отступ справа от последнего слова не отрывается */
.bp26 .bp-contact-card .bp-link {
    display: block;
}

.bp26 .bp-contact-card .bp-link .bp-icon {
    display: none;
}

.bp26 .bp-contact-card .bp-link > span {
    padding-right: 31px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.333 8h9.334M8.667 12l4-4-4-4' stroke='%231D1D1B' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 3px center / 16px;
    transition: background-position .25s var(--bp-ease);
}

.bp26 .bp-contact-card .bp-link:hover > span {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.333 8h9.334M8.667 12l4-4-4-4' stroke='%234C392B' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: right 0 center;
}

.bp-contact-form .bp-h2 {
    margin-bottom: 40px;
}

.bp-form__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.bp-field {
    display: block;
    margin: 0;
    font-weight: 400;
}

.bp-field--wide {
    grid-column: 1 / -1;
}

.bp26 .bp-field input,
.bp26 .bp-field textarea,
.bp26 .bp-cf7 input[type="text"],
.bp26 .bp-cf7 input[type="email"],
.bp26 .bp-cf7 input[type="tel"],
.bp26 .bp-cf7 input[type="date"],
.bp26 .bp-cf7 select,
.bp26 .bp-cf7 textarea {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: 56px;
    padding: 0 20px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-img);
    background: #fff;
    box-shadow: none;
    color: var(--bp-ink);
    font: 400 16px/24px var(--bp-body);
    transition: border-color .2s;
}

.bp26 .bp-field textarea,
.bp26 .bp-cf7 textarea {
    height: auto;
    min-height: 160px;
    padding: 16px 20px;
    resize: vertical;
}

.bp26 .bp-field input::placeholder,
.bp26 .bp-field textarea::placeholder {
    color: var(--bp-muted);
}

.bp26 .bp-field input:focus,
.bp26 .bp-field textarea:focus,
.bp26 .bp-cf7 input:focus,
.bp26 .bp-cf7 textarea:focus {
    border-color: var(--bp-brown);
    outline: none;
}

/* в форме согласия (CF7 1171) кнопка — голый <button type="submit"> без класса */
.bp26 .bp-cf7 input[type="submit"],
.bp26 .bp-cf7 .wpcf7-submit,
.bp26 .bp-cf7 button[type="submit"] {
    height: 56px;
    padding: 0 40px;
    border: 0;
    border-radius: 100px;
    background: var(--bp-btn);
    color: #fff;
    font: 700 14px/1 var(--bp-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .25s var(--bp-ease);
}

.bp26 .bp-cf7 input[type="submit"]:hover,
.bp26 .bp-cf7 input[type="submit"]:active,
.bp26 .bp-cf7 .wpcf7-submit:hover,
.bp26 .bp-cf7 .wpcf7-submit:active,
.bp26 .bp-cf7 button[type="submit"]:hover,
.bp26 .bp-cf7 button[type="submit"]:active {
    background: var(--bp-btn-hover);
    color: #fff;
}

/* галочка согласия: обычный вес подписи и цвет акцента вместо старых стилей формы */
.bp26 .bp-cf7 .wpcf7-acceptance .wpcf7-list-item {
    margin: 16px 0 0;
}

.bp26 .bp-cf7 .wpcf7-acceptance label {
    display: inline-flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    color: var(--bp-text);
    font: 400 16px/26px var(--bp-body);
    cursor: pointer;
}

.bp26 .bp-cf7 .wpcf7-acceptance input[type="checkbox"] {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 3px 0 0;
    accent-color: var(--bp-brown);
}

.bp26 .bp-cf7 .wpcf7-acceptance a {
    color: var(--bp-brown);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ответы CF7 (ошибка у поля, итог отправки) — в стиле формы вместо жёлтой рамки и красных 18px плагина;
   тёмно-красный #A1362A — 6.8:1 на белом */
.bp26 .bp-cf7 .wpcf7-not-valid-tip {
    margin-top: 6px;
    color: #A1362A;
    font: 400 14px/20px var(--bp-sans);
}

.bp26 .bp-cf7 .wpcf7-form-control.wpcf7-not-valid {
    border-color: #A1362A;
}

.bp26 .bp-cf7 form .wpcf7-response-output {
    margin: 24px 0 0;
    padding: 16px 20px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-img);
    background: #fff;
    color: var(--bp-ink);
    font: 400 16px/24px var(--bp-body);
}

.bp26 .bp-cf7 form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam) .wpcf7-response-output {
    border-color: #A1362A;
}

.bp26 .bp-cf7 form.sent .wpcf7-response-output {
    border-color: var(--bp-brown);
}

.bp-map {
    overflow: hidden;
    border-radius: var(--bp-r-panel);
}

.bp26 .bp-map iframe {
    display: block;
    width: 100%;
    height: 480px;
    border: 0;
}

/* отзывы */
.bp-quote-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.bp-quote {
    padding: 56px 56px 48px;
    border: 1px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
}

.bp26 .bp-quote__text {
    margin: 0 0 32px;
    padding: 0;
    border: 0;
    color: var(--bp-ink);
    font: 400 26px/40px var(--bp-serif);
}

.bp26 .bp-quote__name {
    margin: 0 0 6px;
    color: var(--bp-ink);
    font: 600 24px/32px var(--bp-serif);
}

.bp26 .bp-quote__meta {
    margin: 0;
    color: var(--bp-muted);
    font: 400 14px/20px var(--bp-sans);
    letter-spacing: 1px;
    text-transform: uppercase;
}

.bp26 .bp-gallery__title {
    margin-bottom: 48px;
}

.bp-gallery__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp26 .hidden-gallery {
    display: none;
}

.bp26 .bp-gallery__name {
    margin: 12px 4px 0;
    color: var(--bp-muted);
    font: 400 14px/20px var(--bp-sans);
}

.bp26 .bp-gallery__more {
    margin: 40px 0 0;
    text-align: center;
}

/* просмотр фото отзыва (fancybox 2.1.5; его стиль грузится после этого файла, поэтому всё с .bp26):
   окно со скруглением 12, круглые стеклянные кнопки как .bp-round, тёмный фон в тон текста */
.bp26 .fancybox-overlay {
    background: rgba(29, 29, 27, .8);
}

.bp26 .fancybox-type-image .fancybox-skin,
.bp26 .fancybox-opened.fancybox-type-image .fancybox-skin {
    border-radius: var(--bp-r-img);
    background: none;
    box-shadow: none;
}

.bp26 .fancybox-type-image .fancybox-inner,
.bp26 .fancybox-image {
    border-radius: var(--bp-r-img);
}

.bp26 .fancybox-close,
.bp26 .fancybox-nav span {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 50%;
    background: rgba(255, 255, 255, .5) no-repeat center / 20px;
    -webkit-backdrop-filter: var(--bp-blur);
    backdrop-filter: var(--bp-blur);
    transition: background-color .25s;
}

.bp26 .fancybox-close {
    top: 12px;
    right: 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 6l12 12M18 6L6 18' stroke='%234C392B' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
}

.bp26 .fancybox-nav span {
    margin-top: -24px;
}

.bp26 .fancybox-prev span {
    left: 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M15.833 10H4.167M9.167 15l-5-5 5-5' stroke='%234C392B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.bp26 .fancybox-next span {
    right: 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M4.167 10h11.666M10.833 15l5-5-5-5' stroke='%234C392B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.bp26 .fancybox-close:hover,
.bp26 .fancybox-nav:hover span {
    background-color: #fff;
}

/* блог */
.bp-post-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-post-list > li {
    display: flex;
}

.bp26 .bp-post-card,
.bp26 .bp-post-card:visited {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 8px;
    border: 2px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
    color: inherit;
    text-decoration: none;
    transition: transform .35s var(--bp-ease), border-color .35s;
}

.bp26 .bp-post-card:hover {
    border-color: var(--bp-btn);
    transform: translateY(-4px);
}

.bp-post-card__photo {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: var(--bp-bg);
}

.bp26 .bp-post-card__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bp26 .bp-post-card__photo img.is-art {
    width: auto;
    height: 64%;
    object-fit: contain;
}

.bp-post-card__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px 12px 12px;
}

.bp-post-card__date {
    color: var(--bp-muted);
    font: 400 13px/18px var(--bp-sans);
    letter-spacing: 1px;
}

.bp-post-card__title {
    color: var(--bp-ink);
    font: 600 22px/30px var(--bp-serif);
}

.bp-post-card__text {
    color: var(--bp-text);
    font: 400 15px/24px var(--bp-body);
}

.bp-pagination {
    margin-top: 48px;
}

/* wp_pagenavi() проходит через фильтр ik_pagination (include/theme-settings.php):
   вместо div.wp-pagenavi выводится ul.paginat > li > a|span — перекрываем и старые стили .paginat */
.bp26 .bp-pagination .wp-pagenavi,
.bp26 .bp-pagination .paginat {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp26 .bp-pagination .paginat > li {
    display: block;
    margin: 0;
}

.bp26 .bp-pagination .wp-pagenavi a,
.bp26 .bp-pagination .wp-pagenavi span,
.bp26 .bp-pagination .paginat > li > a,
.bp26 .bp-pagination .paginat > li > span {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 44px;
    height: 44px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid var(--bp-line);
    border-radius: 100px;
    background: var(--bp-glass);
    color: var(--bp-ink);
    font: 400 14px/1 var(--bp-sans);
    text-decoration: none;
    transition: background-color .25s, border-color .25s;
}

.bp26 .bp-pagination .wp-pagenavi a:hover,
.bp26 .bp-pagination .paginat > li > a:hover {
    border-color: var(--bp-btn);
    background: #fff;
    color: var(--bp-ink);
}

.bp26 .bp-pagination .wp-pagenavi span.current,
.bp26 .bp-pagination .paginat > li.active > span {
    border-color: var(--bp-btn);
    background: var(--bp-btn);
    color: #fff;
}

.bp26 .bp-pagination .wp-pagenavi .pages,
.bp26 .bp-pagination .wp-pagenavi .extend,
.bp26 .bp-pagination .paginat > li > .pages,
.bp26 .bp-pagination .paginat > li > .extend {
    border: 0;
    background: none;
    color: var(--bp-muted);
}

.bp26 .bp-similar__title {
    margin-bottom: 48px;
}

/* команда */
.bp-team__intro {
    margin-bottom: 24px;
}

.bp-team + .bp-team {
    margin-top: 80px;
}

.bp26 .bp-team__title {
    margin: 40px 0 32px;
}

.bp-team__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-member {
    display: flex;
    flex-direction: column;
    padding: 8px 8px 24px;
    border: 2px solid var(--bp-line);
    border-radius: var(--bp-r-card);
    background: var(--bp-glass);
}

.bp-member__photo {
    display: block;
    aspect-ratio: 546 / 766;
    overflow: hidden;
    border-radius: var(--bp-r-img);
    background: var(--bp-bg);
}

.bp26 .bp-member__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 15%;
}

/* длинная фамилия или должность, которой не хватило ширины карточки, переносится, а не вылезает */
.bp-member__name {
    margin: 20px 12px 4px;
    color: var(--bp-ink);
    font: 600 22px/30px var(--bp-serif);
    overflow-wrap: anywhere;
}

.bp-member__role {
    margin: 0 12px;
    color: var(--bp-muted);
    font: 400 13px/18px var(--bp-sans);
    letter-spacing: 1px;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

/* кнопка записи и Instagram: если не помещаются в строку, Instagram уходит вниз, а не сжимается */
.bp-member__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 20px 12px 0;
}

.bp26 .bp-btn--sm {
    min-height: 44px;
    padding: 12px 22px;
    font-size: 12px;
}

/* кнопка в карточке уже обычной --sm, чтобы Instagram чаще помещался рядом (DE — с 870px);
   длинная подпись (EN «Book an appointment») переносится внутри карточки, строки не слипаются */
.bp26 .bp-member .bp-btn--sm {
    padding-left: 16px;
    padding-right: 16px;
    letter-spacing: 1px;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
}

.bp26 .bp-round--sm {
    flex: none;
    width: 44px;
    height: 44px;
    border-color: var(--bp-line);
    font-size: 18px;
    text-decoration: none;
}

.bp26 .bp-cond__title {
    margin-bottom: 40px;
}

/* адаптив внутренних страниц */
@media (max-width: 1279px) {
    .bp-split__grid,
    .bp-split--reverse .bp-split__grid { gap: 56px; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); }
    .bp-split--reverse .bp-split__grid { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); }
    .bp-price { grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 40px; }
    .bp-contact-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bp-gallery__list,
    .bp-team__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bp-feature-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* заголовок пояснений под ценами — как .bp-h2 на этой ширине */
    .bp26 .bp-notes .bp-prose > :is(h2, h3):first-child { font-size: 38px; line-height: 48px; }
}

/* 992–1099: колонка цен узкая, и длинная цена («+ CHF 100 zu Komplettpflege / Hygienepflege»)
   сжимала название до 75px — оно вылезало под цену. Если название и цена не помещаются в строку,
   цена целиком уходит на следующую строку (по правому краю), а не сжимает название */
@media (min-width: 992px) and (max-width: 1099px) {
    .bp-price__row { display: flex; flex-wrap: wrap; }
    .bp-price__name { flex: 1 1 auto; }
    .bp-price__value { margin-left: auto; }
    .bp-price__desc { flex-basis: 100%; }
}

@media (max-width: 991px) {
    .bp-page-head { padding: 72px 0 48px; }
    .bp-page-head__inner { flex-direction: column; align-items: flex-start; }
    .bp-split--head { padding-top: 72px; }
    .bp-split__grid,
    .bp-split--reverse .bp-split__grid { grid-template-columns: 1fr; gap: 40px; }
    .bp-split--reverse .bp-split__photo { order: 0; }
    .bp-split__photo { position: static; max-width: 560px; }
    .bp26 .bp-prose--cols { column-count: 1; }
    .bp-price { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 40px; }
    .bp-price__photo { position: static; }
    .bp26 .bp-price__photo img { aspect-ratio: 16 / 9; }
    .bp-price__tables { grid-template-columns: 1fr; }
    .bp-svc-list,
    .bp-quote-list { grid-template-columns: 1fr; }
    .bp-post-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bp-form__grid { grid-template-columns: 1fr; }
    .bp-panel--card { padding: 48px 40px; }
}

@media (max-width: 767px) {
    .bp-page-head { padding: 48px 0 32px; }
    .bp-split--head { padding-top: 48px; }
    .bp-split__text .bp-h1,
    .bp-split__text .bp-h2 { margin-bottom: 24px; }
    .bp-panel--card { padding: 32px 20px; border-radius: var(--bp-r-panel); }
    .bp-price { padding: 24px 20px; gap: 24px; }
    .bp26 .bp-price__title { font-size: 30px; line-height: 38px; }
    /* длинное немецкое слово («Zusatzbehandlungen», «Handelsregistereintrag») не помещалось в строку
       на 320–390 и раздвигало страницу: переносим по слогам (язык страницы de-CH), а без словаря — в любом месте */
    .bp26 .bp-price__title,
    .bp26 .bp-page-head .bp-h1,
    .bp26 .bp-prices .bp-head .bp-h2,
    .bp26.bp-inner .bp-prose h2,
    .bp26.bp-inner .bp-prose h3,
    .bp26.bp-inner .bp-prose h4 { -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 10 4 4; overflow-wrap: anywhere; }
    /* заголовки в тексте меньше H1 страницы (34/40), с шагом между уровнями
       (только внутренние страницы: текст «Ist Barber Pet…» на главной размечен отдельно) */
    .bp26.bp-inner .bp-prose h2 { font-size: 26px; line-height: 34px; }
    .bp26.bp-inner .bp-prose h3 { font-size: 22px; line-height: 30px; }
    .bp26.bp-inner .bp-prose h4 { font-size: 19px; line-height: 28px; }
    .bp26 .bp-notes .bp-prose > :is(h2, h3):first-child { margin-bottom: 32px; font-size: 30px; line-height: 38px; }
    .bp26 .bp-prose blockquote { padding: 24px; font-size: 20px; line-height: 30px; }
    /* кнопка в тексте («СКАЧАТЬ ДОГОВОР» на странице отеля, в редакторе width: 280px) не шире колонки:
       на 320–360 вылезала за карточку. Высота 52px, как у пилюль на телефоне; не влезет — перенос внутри */
    .bp26 .bp-prose a.btn { max-width: 100%; padding: 17px 20px; line-height: 18px; white-space: normal; text-align: center; }
    .bp26 .bp-prose table { font-size: 14px; line-height: 22px; }
    /* шапка с разрядкой 2px не давала таблице сжаться уже 330px: мельче и плотнее (слова шапки целые
       до 320px), а слишком длинное слово в ячейке переносится, а не раздвигает страницу */
    .bp26 .bp-prose td,
    .bp26 .bp-prose th { padding: 12px 12px 12px 0; overflow-wrap: anywhere; }
    .bp26 .bp-prose th,
    .bp26 .bp-prose thead td { font-size: 12px; line-height: 18px; letter-spacing: .5px; overflow-wrap: normal; }
    .bp26 .bp-prose table:not(:has(th, thead)) tr:first-child > td { font-size: 12px; line-height: 18px; letter-spacing: .5px; overflow-wrap: normal; }
    .bp-price__name { font-size: 16px; line-height: 24px; }
    /* метка под названием, а не переносом с отступом */
    .bp-price__badge { display: block; width: fit-content; margin: 6px 0 2px; }
    /* строка цены в столбик: название, под ним цена — длинные цены переносятся, а не наезжают */
    .bp-price__row { grid-template-columns: minmax(0, 1fr); }
    .bp-price__value { text-align: left; white-space: normal; }
    .bp-contact-cards,
    .bp-feature-list,
    .bp-post-list { grid-template-columns: 1fr; }
    .bp-gallery__list,
    .bp-team__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .bp-quote { padding: 32px 24px; }
    .bp26 .bp-quote__text { font-size: 21px; line-height: 32px; }
    .bp-svc__body { padding: 20px 12px 12px; }
    .bp-svc__title { font-size: 24px; line-height: 32px; }
    .bp-feature { padding: 24px; }
    .bp26 .bp-map iframe { height: 360px; }
    /* имя и должность уменьшаются вместе с карточкой: самые длинные слова («Добровольская»,
       «Администратор») целиком помещаются от 320px */
    .bp-member__name { font-size: clamp(13px, 4.1vw, 18px); line-height: 1.33; margin: 14px 6px 4px; }
    .bp-member__role { margin: 0 6px; font-size: clamp(10px, 3.1vw, 11px); letter-spacing: .5px; }
    .bp-member__actions { margin: 14px 6px 0; flex-wrap: wrap; }
    /* «JETZT BUCHEN» / «BOOK NOW» (template/team.php) в одну строку от 360px, EN — и на 320; без nowrap —
       подпись, которая не влезает (DE на 320), переносится внутри кнопки, а не вылезает */
    .bp26 .bp-member .bp-btn--sm { width: 100%; min-height: 44px; padding: 10px 8px; font-size: 11px; letter-spacing: .5px; }
}

/* ---------- Daycare: живая вёрстка текста услуги (template-parts/bp-daycare-body.php) ----------
   Вступление с рисунком и ценами-бирками (бирки чуть повёрнуты — единственный игривый акцент), первые шаги
   с ценой, между ними следы лап, списки карточками. Цвета и шрифты — те же токены сайта. */

.bp26 .bp-service-body--daycare {
    padding-top: 24px;
}

.bp-dc {
    display: flex;
    flex-direction: column;
    gap: 72px;
}

.bp-dc__intro {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 64px;
    align-items: center;
}

.bp26 .bp-dc__lead .bp-h2 {
    margin: 0 0 24px;
}

.bp26 .bp-dc__text {
    max-width: 640px;
}

.bp-dc__visual {
    position: relative;
    padding: 40px 40px 56px;
    border-radius: var(--bp-r-panel);
    background: var(--bp-panel);
}

.bp-dc__visual.has-tags {
    margin-bottom: 40px;
}

.bp26 .bp-dc__art {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
    margin: 0 auto;
}

.bp-dc__tags {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: -40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-dc__tag {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 22px;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(76, 57, 43, .12);
    transform: rotate(-3deg);
}

/* вторая бирка — цветом кнопок, текст тёмный: белый на светлом оранжевом не читается */
.bp-dc__tag:nth-child(2n) {
    background: var(--bp-btn);
    transform: rotate(2.5deg);
}

.bp-dc__tag-value {
    color: var(--bp-ink);
    font: 500 28px/1.15 var(--bp-serif);
    white-space: nowrap;
}

.bp-dc__tag-label {
    color: var(--bp-muted);
    font: 500 13px/1.3 var(--bp-sans);
}

.bp-dc__tag:nth-child(2n) .bp-dc__tag-label {
    color: var(--bp-ink);
}

/* первые шаги: карточки в ряд, между ними следы лап */
.bp-dc__steps {
    display: grid;
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
    gap: 88px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-dc__step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 40px;
    border-radius: 28px;
    background: #fff;
}

.bp-dc__steps.is-path .bp-dc__step + .bp-dc__step::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -84px;
    width: 80px;
    height: 40px;
    margin-top: -20px;
    background: var(--bp-btn);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32'%3E%3Cg fill='%23000'%3E%3Cg transform='translate(2 14) rotate(-12 9 8) scale(.7)'%3E%3Cellipse cx='5.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cellipse cx='9.8' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.4' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cpath d='M12.1 11.4c-2.7 0-5.6 3.6-5.6 6.1 0 1.6 1.2 2.5 2.7 2.5 1.2 0 2-.6 2.9-.6s1.7.6 2.9.6c1.5 0 2.7-.9 2.7-2.5 0-2.5-2.9-6.1-5.6-6.1z'/%3E%3C/g%3E%3Cg transform='translate(24 2) rotate(10 9 8) scale(.7)'%3E%3Cellipse cx='5.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cellipse cx='9.8' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.4' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cpath d='M12.1 11.4c-2.7 0-5.6 3.6-5.6 6.1 0 1.6 1.2 2.5 2.7 2.5 1.2 0 2-.6 2.9-.6s1.7.6 2.9.6c1.5 0 2.7-.9 2.7-2.5 0-2.5-2.9-6.1-5.6-6.1z'/%3E%3C/g%3E%3Cg transform='translate(44 14) rotate(-12 9 8) scale(.7)'%3E%3Cellipse cx='5.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cellipse cx='9.8' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.4' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cpath d='M12.1 11.4c-2.7 0-5.6 3.6-5.6 6.1 0 1.6 1.2 2.5 2.7 2.5 1.2 0 2-.6 2.9-.6s1.7.6 2.9.6c1.5 0 2.7-.9 2.7-2.5 0-2.5-2.9-6.1-5.6-6.1z'/%3E%3C/g%3E%3C/g%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 64 32'%3E%3Cg fill='%23000'%3E%3Cg transform='translate(2 14) rotate(-12 9 8) scale(.7)'%3E%3Cellipse cx='5.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cellipse cx='9.8' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.4' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cpath d='M12.1 11.4c-2.7 0-5.6 3.6-5.6 6.1 0 1.6 1.2 2.5 2.7 2.5 1.2 0 2-.6 2.9-.6s1.7.6 2.9.6c1.5 0 2.7-.9 2.7-2.5 0-2.5-2.9-6.1-5.6-6.1z'/%3E%3C/g%3E%3Cg transform='translate(24 2) rotate(10 9 8) scale(.7)'%3E%3Cellipse cx='5.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cellipse cx='9.8' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.4' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cpath d='M12.1 11.4c-2.7 0-5.6 3.6-5.6 6.1 0 1.6 1.2 2.5 2.7 2.5 1.2 0 2-.6 2.9-.6s1.7.6 2.9.6c1.5 0 2.7-.9 2.7-2.5 0-2.5-2.9-6.1-5.6-6.1z'/%3E%3C/g%3E%3Cg transform='translate(44 14) rotate(-12 9 8) scale(.7)'%3E%3Cellipse cx='5.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cellipse cx='9.8' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.4' cy='5.9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.6' cy='10.2' rx='2.2' ry='2.8'/%3E%3Cpath d='M12.1 11.4c-2.7 0-5.6 3.6-5.6 6.1 0 1.6 1.2 2.5 2.7 2.5 1.2 0 2-.6 2.9-.6s1.7.6 2.9.6c1.5 0 2.7-.9 2.7-2.5 0-2.5-2.9-6.1-5.6-6.1z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}

.bp-dc__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--bp-panel);
    color: var(--bp-brown);
    font: 500 24px/1 var(--bp-serif);
}

.bp26 .bp-dc__step-title {
    margin: 4px 0 0;
    color: var(--bp-ink);
    font: 400 32px/1.2 var(--bp-serif);
}

.bp26 .bp-dc__price {
    margin: 0;
    padding: 7px 16px;
    border-radius: 100px;
    background: var(--bp-btn);
    color: var(--bp-ink);
    font: 600 15px/1.3 var(--bp-sans);
}

.bp26 .bp-dc__step-text p {
    margin: 0;
    color: var(--bp-text);
    font: 400 16px/1.7 var(--bp-body);
}

/* списки карточками */
.bp-dc__lists {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: start;
}

.bp-dc__card {
    padding: 36px 32px;
    border-radius: 28px;
    background: var(--bp-panel);
}

.bp-dc__card--check,
.bp-dc__card--prices {
    background: #fff;
}

.bp26 .bp-dc__card-title {
    margin: 0 0 20px;
    color: var(--bp-ink);
    font: 400 26px/1.25 var(--bp-serif);
}

.bp-dc__list,
.bp-dc__price-list {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bp-dc__list {
    gap: 14px;
}

.bp26 .bp-dc__list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    padding: 0;
    color: var(--bp-text);
    font: 400 16px/24px var(--bp-body);
}

.bp26 .bp-dc__list li::before {
    content: none;
}

.bp-dc__list .bp-icon {
    flex: none;
    width: 24px;
    height: 24px;
    color: var(--bp-btn);
}

/* галочка — в кружке, как отмеченный пункт */
.bp-dc__card--check .bp-icon {
    padding: 3px;
    border-radius: 50%;
    background: var(--bp-btn);
    color: var(--bp-ink);
}

.bp26 .bp-dc__price-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin: 0;
    padding: 12px 0;
    border-bottom: 1px dashed var(--bp-line);
}

.bp26 .bp-dc__price-list li:last-child {
    border-bottom: 0;
}

.bp-dc__item {
    color: var(--bp-ink);
    font: 400 16px/24px var(--bp-body);
}

.bp-dc__item-price {
    flex: none;
    color: var(--bp-brown);
    font: 600 15px/24px var(--bp-sans);
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 1279px) {
    .bp-dc__lists { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bp-dc__card--prices { grid-column: 1 / -1; }
}

@media (max-width: 991px) {
    .bp-dc { gap: 56px; }
    .bp-dc__intro { grid-template-columns: 1fr; gap: 40px; }
    .bp-dc__visual { max-width: 560px; }
    /* шаги друг под другом, следы лап — между ними, повёрнуты вниз */
    .bp-dc__steps { grid-auto-flow: row; gap: 72px; }
    .bp-dc__steps.is-path .bp-dc__step + .bp-dc__step::before { top: -56px; left: 50%; margin: 0 0 0 -40px; transform: rotate(90deg); }
}

@media (max-width: 767px) {
    .bp26 .bp-service-body--daycare { padding-top: 8px; }
    .bp-dc__visual { padding: 28px 20px 48px; border-radius: 28px; }
    .bp-dc__tag { padding: 12px 16px; }
    .bp-dc__tag-value { font-size: 22px; }
    .bp-dc__step { padding: 28px 24px; border-radius: 22px; }
    .bp26 .bp-dc__step-title { font-size: 26px; }
    .bp-dc__lists { grid-template-columns: 1fr; }
    .bp-dc__card { padding: 28px 24px; border-radius: 22px; }
    .bp26 .bp-dc__card-title { font-size: 24px; }
    /* длинная цена допа («15 min · CHF 25») — под названием, а не в одну строку с ним */
    .bp26 .bp-dc__price-list li { flex-direction: column; gap: 2px; }
    .bp-dc__item-price { text-align: left; white-space: normal; }
}

/* ---------- 8. Адаптив ---------- */

@media (max-width: 1579px) {
    /* ручной перенос в заголовке «О салоне» — только на ширине макета, ниже переносит balance */
    .bp-about__text .bp-h1 br { display: none; }

    /* заголовок видеоотзывов в две колонки сжимался до 5–8 строк (в макете 4, это от 1575px) —
       в одну колонку, как на планшете */
    .bp-head--videos { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* 1280–1535: карточки услуг уже, и при 24px «Hygiene / Bad & Pflege», «Individuelle Leistungen»
   шли в 2 строки — описания в ряду разъезжались; кегль плавно от 20px (1280) до 24px (1536) */
@media (min-width: 1280px) and (max-width: 1535px) {
    .bp-service-card__title { font-size: 1.5625vw; line-height: 1.3; }
}

/* булавка адреса и кнопка записи в шапке: до 1600 тесно — меню плотнее, кнопка записи уже */
@media (max-width: 1599px) {
    .bp-header__nav ul { gap: 24px; }
    .bp26 .bp-header__book { padding-left: 32px; padding-right: 28px; }
}

@media (max-width: 1439px) {
    .bp-footer__main { column-gap: 96px; }
}

/* меню в шапке помещается в строку только от 1440px (с кнопкой записи и булавкой DE «Über uns» переносился),
   ниже — бургер; та же граница в js/bp-redesign.js (matchMedia) */
@media (max-width: 1439px) {
    .bp-header__nav { display: none; }
    .bp26 .bp-header__burger { display: inline-flex; }
}

@media (max-width: 1279px) {
    :root { --bp-section: 96px; }

    .bp26 .bp-h1 { font-size: 46px; line-height: 52px; }
    .bp26 .bp-h2 { font-size: 38px; line-height: 48px; }

    .bp-about__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; }

    .bp-service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .bp-slider__track { grid-auto-columns: calc((100% - 2 * 20px) / 3); }

    .bp-head--split { grid-template-columns: 1fr; gap: 16px; }

    .bp-partners__list { gap: 16px; }

    .bp-footer__main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 56px; }
}

/* с кнопкой записи в шапке язык на планшете не помещался (на 992 DE заходил на поле) — он в меню
   (DE · EN внизу), как на телефоне */
@media (max-width: 1023px) {
    .bp-header__actions .bp-pill--lang { display: none; }
}

@media (max-width: 991px) {
    /* контакты: 2 в ряд на планшете; на телефоне (≤767, ниже) — одна колонка */
    .bp-contact-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bp-header__actions .bp-pill--phone { display: none; }
    .bp-header__actions .bp-pill--call { display: inline-flex; }

    .bp-about__grid { grid-template-columns: 1fr; gap: 40px; }
    .bp-about__photo { max-width: 520px; aspect-ratio: 4 / 5; }

    .bp-slider__track { grid-auto-columns: calc((100% - 20px) / 2); }

    .bp-video-list { grid-template-columns: 1fr; }

    /* 5 плиток: 3 + 2 по центру (в сетке на 3 колонки справа во втором ряду оставалась дыра) */
    .bp-partners__list { display: flex; flex-wrap: wrap; justify-content: center; }
    .bp-partners__list > li { flex: 0 0 calc((100% - 32px) / 3); }

    .bp-cta-card { flex-direction: column; align-items: flex-start; padding: 40px; }
}

@media (max-width: 767px) {
    /* контакты на телефоне — одна колонка (правило «2 в ряд» для планшета стоит выше и иначе перебивало это) */
    .bp-contact-cards { grid-template-columns: 1fr; }
    :root { --bp-section: 64px; --bp-r-panel: 28px; }

    body.bp26 { font-size: 16px; line-height: 1.75; }

    .bp-header { padding-top: 16px; }
    .bp26 .bp-header__logo img { width: 141px; height: 48px; }
    .bp-header__actions .bp-pill--lang,
    .bp-header__actions .bp-header__book { display: none; }
    .bp26 .bp-header__burger { width: 48px; height: 48px; }
    .bp26 .bp-pill--route,
    .bp26 .bp-pill--call { width: 48px; height: 48px; }
    .bp-menu__top { padding-top: 16px; }
    .bp26 .bp-menu__close { width: 48px; height: 48px; }

    .bp26 .bp-h1 { font-size: 34px; line-height: 40px; }
    .bp26 .bp-h2 { font-size: 30px; line-height: 38px; }
    /* длинные заголовки отзывов и видео при 30px шли в 7–8 строк с одиноким словом в конце
       (balance в Chrome не действует дальше 6 строк) — мельче, в 5–6 строк; нижняя граница 22px —
       при 24px на 320 немецкий заголовок видео шёл в 7 строк с одним «ungeschnitten» в конце */
    .bp26 .bp-reviews .bp-h2,
    .bp26 .bp-videos .bp-h2 { font-size: clamp(22px, 6.67vw, 30px); line-height: 1.3; }
    .bp26 .bp-text,
    .bp26 .bp-text p,
    .bp26 .bp-prose { font-size: 16px; line-height: 28px; }

    .bp-head { margin-bottom: 40px; }
    .bp-head--row { flex-direction: column; align-items: flex-start; }

    .bp26 .bp-btn { min-height: 52px; padding: 14px 24px 14px 28px; }

    .bp-about__photo { max-width: none; }

    .bp-service-cards { grid-template-columns: 1fr; gap: 12px; }
    .bp26 .bp-service-card { flex-direction: row; align-items: center; gap: 16px; padding: 8px; }
    .bp-service-card__art { flex: 0 0 112px; aspect-ratio: 1; }
    .bp26 .bp-service-card__art img { height: 78%; max-width: 86%; }
    .bp-service-card__body { padding: 4px 8px 4px 0; text-align: left; }
    .bp-service-card__title { font-size: 20px; line-height: 26px; }

    .bp-ba__card { padding: 6px; }
    .bp26 .bp-ba__compare img { aspect-ratio: 4 / 3; }
    .bp26 .bp-ba .twentytwenty-before-label::before,
    .bp26 .bp-ba .twentytwenty-after-label::before { top: 12px; padding: 6px 12px; font-size: 11px; }
    .bp26 .bp-ba .twentytwenty-before-label::before { left: 12px; }
    .bp26 .bp-ba .twentytwenty-after-label::before { right: 12px; }
    .bp26 .bp-ba .twentytwenty-handle { width: 44px; height: 44px; margin-left: -22px; margin-top: -22px; }
    .bp26 .bp-ba .twentytwenty-handle::before { margin-bottom: 22px; }
    .bp26 .bp-ba .twentytwenty-handle::after { margin-top: 22px; }

    .bp-slider__track { grid-auto-columns: 78%; gap: 12px; }
    .bp-slider__nav { margin-top: 24px; }

    .bp-video { aspect-ratio: 4 / 5; }

    .bp-philosophy .bp-h2 { margin-bottom: 32px; }
    /* 9 строк по 28px; абзацы тоже через 28px — обрез между строками */
    .bp-philosophy__body.is-collapsed { max-height: 252px; }
    .bp26 .bp-philosophy__body p { margin-bottom: 28px; }
    .bp26 .bp-philosophy__body p.bp-bullet + :not(.bp-bullet) { margin-top: 28px; }
    .bp26 .bp-philosophy__toggle { margin-top: 40px; }

    /* по 2 в ряд, пятая — той же ширины по центру (логотип не крупнее остальных) */
    .bp-partners { padding-top: 32px; }
    .bp-partners__list { gap: 12px; }
    .bp-partners__list > li { flex-basis: calc((100% - 12px) / 2); }
    .bp-partners__list li,
    .bp-partners__list a { height: 96px; }

    .bp-cta-card { margin-top: 40px; padding: 32px 24px; }
    .bp26 .bp-cta-card__title { font-size: 26px; line-height: 34px; }
    /* EN «Book an appointment» (294px) выходила за карточку уже 395px и раздвигала страницу на 320:
       кнопка компактнее (в строку — от 360px), а уже этого подпись переносится внутри кнопки */
    .bp26 .bp-cta-card .bp-btn { max-width: 100%; padding-left: 20px; padding-right: 20px; letter-spacing: 1px; line-height: 1.3; white-space: normal; text-align: center; }

    .bp-footer { padding: 64px 0 calc(32px + env(safe-area-inset-bottom)); }
    .bp-footer__main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 24px; row-gap: 48px; }
    .bp-footer__brand,
    .bp-footer__contact { grid-column: 1 / -1; }
    .bp26 .bp-footer__phone { font-size: 24px; }
    .bp26 .bp-footer__email { font-size: 20px; }
    .bp-footer__bottom { margin-top: 56px; padding-right: 0; flex-direction: column; align-items: flex-start; }
}

/* узкие телефоны: логотип + булавка + звонок + бургер не влезали в строку (уже 390 — заходили на поля,
   на 320 бургер уходил за край экрана) — всё чуть меньше */
@media (max-width: 389px) {
    .bp-header__inner { gap: 16px; }
    .bp26 .bp-header__logo img { width: 128px; height: 44px; }
    .bp-header__actions { gap: 6px; }
    .bp26 .bp-header__burger,
    .bp26 .bp-pill--route,
    .bp26 .bp-pill--call { width: 44px; height: 44px; margin: 0; }
}

@media (max-width: 359px) {
    .bp26 .bp-header__logo img { width: 112px; height: 38px; }
    .bp-header__actions { gap: 4px; }
    .bp26 .bp-header__burger,
    .bp26 .bp-pill--route,
    .bp26 .bp-pill--call { width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
    .bp26 *,
    .bp26 *::before,
    .bp26 *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
