/* Карта и вопросы общего каталога видов массажа. */
.types-catalog-locations,
.types-catalog-faq,
.types-catalog-booking { padding: clamp(52px, 6vw, 94px) 0; }
.types-catalog-locations { background: #f8f9f5; }
.types-catalog-locations__head,
.types-catalog-faq__head { max-width: 940px; margin-bottom: 34px; }
.types-catalog-locations__eyebrow {
    margin: 0 0 12px; color: #788661;
    font-size: 13px; font-weight: 650; letter-spacing: .055em;
}
.types-catalog-locations__head .h2,
.types-catalog-faq__head .h2 { margin: 0 0 16px; }
.types-catalog-locations__lead {
    margin: 0; max-width: 870px; line-height: 1.6;
    color: #555a51; font-size: clamp(15px, 1.5vw, 18px);
}
.types-catalog-locations__controls {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    margin: 0 0 22px;
}
.types-catalog-locations__controls label {
    font-size: 15px; color: #353c32; font-weight: 600;
}
.types-catalog-locations__controls select {
    flex: 1 1 340px; max-width: 500px; min-width: 0;
    box-sizing: border-box; height: 56px; padding: 0 46px 0 18px;
    border: 0; border-radius: 12px; background-color: #f0f3ea; color: #343a32;
    appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23667457' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 18px center; background-size: 12px 7px;
    font: inherit; cursor: pointer;
}
.types-catalog-locations__controls select:focus,
.types-catalog-locations__controls select:focus-visible,
.types-catalog-locations__choice-actions select:focus,
.types-catalog-locations__choice-actions select:focus-visible {
    outline: none !important; box-shadow: none !important;
    background-color: #e9eedf;
}
.types-catalog-locations__count {
    margin: 0 0 0 auto; color: #657057; font-size: 14px;
}
.types-catalog-locations__map {
    position: relative; width: 100%; height: clamp(320px, 43vw, 470px);
    overflow: hidden; border-radius: 18px; background: #e5ebdc;
}
.types-catalog-locations__map .map__canvas {
    width: 100%; height: 100%; position: absolute; inset: 0;
}
.types-catalog-locations__choice {
    margin-top: 18px; padding: clamp(20px, 3vw, 30px);
    border: 1px solid #dce4d3; border-radius: 18px;
    background: #fff; box-shadow: 0 12px 32px rgba(50, 65, 41, .07);
}
.types-catalog-locations__choice[hidden] { display: none !important; }
.types-catalog-locations__choice-head {
    display: flex; justify-content: space-between; gap: 18px; align-items: flex-start;
    margin-bottom: 20px;
}
.types-catalog-locations__choice-eyebrow {
    margin: 0 0 6px; color: #768561;
    font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.types-catalog-locations__choice-head h3 {
    margin: 0; font-size: clamp(21px, 2.4vw, 27px);
    font-weight: 500; line-height: 1.2; color: #303a2e;
}
.types-catalog-locations__choice-metro {
    margin: 6px 0 0; color: #67705f; font-size: 14px;
}
.types-catalog-locations__choice-metro:empty { display: none; }
.types-catalog-locations__choice-close {
    display: grid; place-items: center; flex: 0 0 32px;
    width: 32px; height: 32px; border: 0; border-radius: 50%;
    background: #f1f4eb; color: #58644d; font-size: 24px;
    cursor: pointer;
}
.types-catalog-locations__choice-actions {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, auto);
    align-items: end; gap: 10px 16px;
}
.types-catalog-locations__choice-actions label {
    grid-column: 1 / -1; font-size: 14px; font-weight: 600; color: #394238;
}
.types-catalog-locations__choice-actions select {
    box-sizing: border-box; width: 100%; min-width: 0; height: 56px;
    padding: 0 46px 0 18px; border-radius: 12px; border: 0;
    background-color: #f0f3ea;
    appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23667457' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 18px center; background-size: 12px 7px;
    color: #303a2e; font: inherit; cursor: pointer;
}
.types-catalog-locations__choice-actions button[data-types-choice-book] {
    box-sizing: border-box; display: flex; align-items: center; justify-content: center;
    height: 56px; min-height: 56px; padding: 0 24px; border: 0; border-radius: 12px;
    color: #fff; background: #89966f; font: inherit; font-weight: 600;
    line-height: 1.2; white-space: nowrap; cursor: pointer;
    transition: background-color .2s ease;
}
.types-catalog-locations__choice-actions button[data-types-choice-book]:hover:not(:disabled) {
    background: #708052;
}
.types-catalog-locations__choice-actions button[data-types-choice-book]:disabled {
    background: #c3cabc; cursor: not-allowed;
}
.types-catalog-locations__choice button:focus-visible {
    outline: 2px solid #708052; outline-offset: 3px;
}
.types-catalog-locations__list[hidden] { display: none !important; }
.types-catalog-locations__room {
    display: flex; flex-direction: column; gap: 5px; width: 100%;
    min-height: 102px; padding: 17px 18px;
    background: #fff; border: 1px solid #e0e5da;
    border-radius: 12px; color: #2f382b;
    text-align: left; font: inherit; cursor: pointer;
    text-decoration: none; transition: border-color .2s, background-color .2s;
}
.types-catalog-locations__room:hover,
.types-catalog-locations__room:focus-visible,
.types-catalog-locations__room.is-selected {
    border-color: #89966f; background: #f1f4eb; color: #2f382b;
    text-decoration: none;
}
.types-catalog-locations__room[hidden] { display: none !important; }
.types-catalog-locations__room-name { font-size: 16px; font-weight: 600; }
.types-catalog-locations__room-metro { font-size: 13px; color: #646e5e; }
.types-catalog-locations__room-link {
    font-size: 12px; color: #667a4e; margin-top: auto;
}
.types-catalog-locations__empty {
    margin: 18px 0 0; color: #5d6657; line-height: 1.45;
}
.types-catalog-locations__empty[hidden] { display: none; }
.types-catalog-faq__items {
    max-width: 1100px; border-top: 1px solid #2f2f2f1a;
}
.types-catalog-faq__items .faq_question {
    border-bottom: 1px solid #2f2f2f1a;
}
.types-catalog-faq__items summary.faq_title {
    align-items: center; list-style: none;
    color: #2f2f2f; cursor: pointer;
}
.types-catalog-faq__items summary.faq_title::marker { content: ''; }
.types-catalog-faq__items summary.faq_title::-webkit-details-marker { display: none; }
.types-catalog-faq__items summary.faq_title::after { flex: 0 0 24px; }
.types-catalog-faq__items details[open] summary.faq_title::after {
    transform: rotate(180deg);
}
.types-catalog-faq__items .faq_answer {
    max-height: none; overflow: visible; padding: 0; transition: none;
}
.types-catalog-faq__items details[open] .faq_answer { padding-top: 20px; }
.types-catalog-faq__items .faq_answer p {
    max-width: 940px; margin: 0; color: #595f57; line-height: 1.65;
}
.types-catalog-faq__items a { color: #697f4e; text-underline-offset: 3px; }
.types-catalog-booking { padding-top: 20px; }
.types-catalog-booking__inner {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; gap: 28px; padding: clamp(28px, 5vw, 56px);
    background: #f0f4eb; border-radius: 20px;
}
.types-catalog-booking .h2 { margin: 0 0 12px; }
.types-catalog-booking p { margin: 0; color: #565e4f; line-height: 1.55; }
.types-catalog-booking__button {
    display: block; min-width: 238px; padding: 17px 24px;
    background: #89966f; border-radius: 12px; color: #fff;
    font-size: 16px; font-weight: 600; text-align: center;
    text-decoration: none; transition: background-color .2s;
}
.types-catalog-booking__button:hover,
.types-catalog-booking__button:focus-visible {
    background: #6f8054; color: #fff; text-decoration: none;
}
@media (max-width: 850px) {
    .types-catalog-locations__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .types-catalog-booking__inner { grid-template-columns: 1fr; }
    .types-catalog-booking__button { min-width: 0; justify-self: start; }
}
@media (max-width: 600px) {
    .types-catalog-locations__choice { padding: 18px; border-radius: 12px; }
    .types-catalog-locations__choice-actions { grid-template-columns: 1fr; }
    .types-catalog-locations__choice-actions button[data-types-choice-book] { width: 100%; }
    .types-catalog-locations__choice-actions select,
    .types-catalog-locations__choice-actions button[data-types-choice-book] { height: 52px; min-height: 52px; }
    .types-catalog-locations__choice-actions { gap: 12px; }
    .types-catalog-locations__controls { flex-direction: column; align-items: stretch; gap: 9px; }
    .types-catalog-locations__controls select { flex: 0 0 auto; width: 100%; max-width: none; height: 52px; }
    .types-catalog-locations__count { margin: 3px 0 0; }
    .types-catalog-locations__list { grid-template-columns: 1fr; }
    .types-catalog-locations__map { height: 340px; border-radius: 12px; }
    .types-catalog-booking__inner { border-radius: 14px; }
    .types-catalog-booking__button { width: 100%; }
    .types-catalog-faq__items details p { padding-right: 8px; font-size: 15px; }
}

