/*
 * Silk Avia 2026: шапка с мегаменю, главная, подвал — по макету Figma «главная страница» / «навбар».
 * Внутренние страницы остаются на вёрстке старого сайта (legacy/css); этот файл подключается последним.
 */
:root {
    --sa-red: #e4002b;
    --sa-text: #222a37;
    --sa-text-2: #505f79;
    --sa-text-3: #7a869a;
    --sa-grey: #54585a;
    --sa-line: #d5dbe1;
    --sa-bg-soft: #e9edf3;
    --sa-bg-chip: #eceff5;
    --sa-content: 1008px;
    --sa-wide: 1324px;
}

.sa-container { width: 100%; max-width: calc(var(--sa-content) + 40px); margin: 0 auto; padding: 0 20px; }
.sa-container--wide { max-width: calc(var(--sa-wide) + 40px); }
.sa-section { margin-top: 80px; }
.sa-title { margin: 0; font-size: 32px; line-height: 40px; font-weight: 600; color: var(--sa-text); }
.sa-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.sa-more { display: inline-flex; align-items: center; gap: 8px; font-size: 13.6px; line-height: 20px; font-weight: 600; color: var(--sa-text-2); white-space: nowrap; }
.sa-more:hover { color: var(--sa-red); }
.sa-more__icon { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 24px; background: var(--sa-bg-chip); }
.sa-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 12px 20px 14px; border-radius: 100px; background: var(--sa-red); color: #fff; font-size: 17px; line-height: 27px; border: 0; cursor: pointer; transition: background .2s; }
.sa-btn:hover { background: #c40025; color: #fff; }
.sa-btn img { width: 24px; height: 24px; }

/* ---------------------------------------------------------------- Шапка */
/* Шапка закреплена при прокрутке; тень — когда страница прокручена (sa.js, is-scrolled) */
.sa-header { position: sticky; top: 0; z-index: 120; background: #fff; border-bottom: 1px solid #e5e6e7; transition: box-shadow .2s; }
.sa-header.is-scrolled { box-shadow: 0 4px 20px rgba(33, 43, 54, .08); }
/* Якоря (#sa-top, #booking…) не уходят под закреплённую шапку */
html { scroll-padding-top: 96px; }
.sa-header__inner { max-width: 1440px; height: 80px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; }
.sa-header__left { display: flex; align-items: center; min-width: 0; height: 100%; }
.sa-logo { display: block; width: 213px; flex-shrink: 0; font-size: 46px; line-height: 20px; font-weight: 700; color: var(--sa-red); letter-spacing: -.5px; }
.sa-logo:hover { color: var(--sa-red); }
.sa-nav { display: flex; align-items: stretch; height: 80px; margin: 0; padding: 0 0 0 80px; list-style: none; }
.sa-nav__item { position: relative; display: flex; align-items: center; padding-right: 28px; }
.sa-nav__link { position: relative; display: flex; align-items: center; height: 100%; padding: 0; border: 0; background: none; font: inherit; font-size: 13.7px; line-height: 20px; color: var(--sa-text); white-space: nowrap; cursor: pointer; }
.sa-nav__link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 2px; background: var(--sa-red); opacity: 0; transition: opacity .2s; }
.sa-nav__link:hover, .sa-nav__item.is-open .sa-nav__link, .sa-nav__link.is-active { color: var(--sa-text); }
.sa-nav__item.is-open .sa-nav__link::after, .sa-nav__link.is-active::after, .sa-nav__link:hover::after { opacity: 1; }
.sa-pill { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 0 20px; border-radius: 100px; background: #434343; color: #fff; font-size: 13.7px; line-height: 27px; white-space: nowrap; }
.sa-pill:hover { background: #222; color: #fff; }
.sa-header__right { display: flex; align-items: center; height: 100%; }
.sa-header__search { position: relative; display: flex; align-items: center; padding: 0 12px; }
.sa-header__search::after { content: ''; position: absolute; right: 0; top: 50%; width: 1px; height: 28px; margin-top: -14px; background: #dde3ed; }
.sa-header__search a { display: flex; padding: 1px 6px; }
.sa-burger { display: none; width: 40px; height: 40px; margin-left: 8px; border: 0; background: none; cursor: pointer; padding: 10px 8px; }
.sa-burger span { display: block; height: 2px; margin: 4px 0; border-radius: 2px; background: var(--sa-text); transition: transform .2s, opacity .2s; }
.sa-header.is-mobile-open .sa-burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.sa-header.is-mobile-open .sa-burger span:nth-child(2) { opacity: 0; }
.sa-header.is-mobile-open .sa-burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Язык: флаг, по клику — остальные языки */
.sa-lang { position: relative; padding-left: 12px; }
.sa-lang__btn { display: flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; cursor: pointer; font-size: 13px; color: var(--sa-text-2); }
.sa-lang__btn img, .sa-lang__list img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }
.sa-lang__list { position: absolute; z-index: 5; right: 0; top: calc(100% + 18px); display: none; min-width: 110px; margin: 0; padding: 8px; list-style: none; background: #fff; border-radius: 12px; box-shadow: 0 2px 16px rgba(33, 43, 54, .12); }
.sa-lang.is-open .sa-lang__list { display: block; }
.sa-lang__list a { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; font-size: 13.7px; color: var(--sa-text); }
.sa-lang__list a:hover { background: var(--sa-bg-chip); }

/* Мегаменю: панель под шапкой, страница затемняется */
.sa-mega { position: absolute; left: 0; right: 0; top: 100%; display: none; padding: 42px 45px; background: #fff; border-radius: 0 0 16px 16px; }
.sa-mega.is-open { display: block; }
.sa-mega__links { display: flex; flex-wrap: wrap; width: var(--sa-content); max-width: 100%; margin: 0 auto; }
.sa-mega__group { width: 252px; padding: 8px; }
.sa-mega__heading { margin: 0 0 17px; font-size: 15.6px; line-height: 24px; font-weight: 600; color: var(--sa-text); }
.sa-mega__list { margin: 0; padding: 0; list-style: none; }
.sa-mega__list a { display: block; padding: 7px 0; font-size: 13.7px; line-height: 20px; color: #27344b; }
.sa-mega__list a:hover { color: var(--sa-red); }
.sa-mega__close { display: flex; margin: 42px auto 0; padding: 0; border: 0; background: none; cursor: pointer; }
.sa-overlay { position: fixed; inset: 0; z-index: 110; display: none; background: rgba(34, 42, 55, .45); }
.sa-overlay.is-open { display: block; }

/* Мобильное меню */
.sa-mobile { display: none; }

/* ---------------------------------------------------------------- Слайдер */
.sa-hero { position: relative; height: 380px; overflow: hidden; background: #b8bec5; }
.sa-hero__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; background: #b8bec5; }
.sa-hero__slide.is-active { opacity: 1; visibility: visible; }
.sa-hero__image { position: absolute; top: 0; left: calc(50% + 77px); height: 349px; width: auto; max-width: none; }
.sa-hero__info { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; height: 264px; margin-top: 20px; padding-right: 496px; }
.sa-hero__title { max-height: 112px; margin: 0; overflow: hidden; font-size: 44px; line-height: 56px; font-weight: 600; color: #fff; }
.sa-hero__text { max-height: 56px; margin: 16px 0 0; overflow: hidden; font-size: 17px; line-height: 28px; color: #fff; }
.sa-hero__bottom { position: absolute; z-index: 2; left: 0; right: 0; bottom: 78px; }
.sa-hero__bottom .sa-container { display: flex; align-items: center; gap: 10px; }
.sa-hero__dots { display: flex; gap: 10px; margin-right: 102px; padding-left: 8px; }
.sa-hero__dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 6px; background: rgba(255, 255, 255, .6); cursor: pointer; }
.sa-hero__dot.is-active { background: var(--sa-red); }
.sa-hero__arrow { position: absolute; z-index: 3; top: 0; bottom: 0; width: 80px; display: flex; align-items: center; justify-content: center; border: 0; background: rgba(0, 0, 0, .43); opacity: .5; cursor: pointer; transition: opacity .2s; }
.sa-hero__arrow:hover { opacity: .7; }
.sa-hero__arrow--prev { left: 0; }
.sa-hero__arrow--prev img { transform: rotate(180deg); }
.sa-hero__arrow--next { right: 0; }

/* ---------------------------------------------------------------- Виджет поиска (Hitit) */
.sa-book { position: relative; z-index: 5; width: var(--sa-content); max-width: calc(100% - 40px); margin: 0 auto; border-radius: 12px; background: #fff; box-shadow: 0 2px 16px rgba(33, 43, 54, .08); }
.sa-book__tabs { display: flex; height: 54px; margin: 0; padding: 0; list-style: none; background: var(--sa-bg-soft); border-radius: 12px 12px 0 0; }
.sa-book__tab { position: relative; flex: 1 1 0; display: flex; align-items: center; justify-content: center; padding: 0 12px; border: 0; background: none; font: inherit; font-size: 15.5px; font-weight: 600; color: rgba(0, 0, 0, .54); white-space: nowrap; cursor: pointer; border-radius: 12px 12px 0 0; }
.sa-book__tab:first-child { flex: 0 0 196px; }
.sa-book__tab + .sa-book__tab::before { content: ''; position: absolute; left: 0; top: 11px; width: 1px; height: 32px; background: rgba(0, 0, 0, .12); }
.sa-book__tab.is-active { background: #fff; color: var(--sa-text); }
.sa-book__tab.is-active::before, .sa-book__tab.is-active + .sa-book__tab::before { display: none; }
.sa-book__panel { display: none; padding: 24px 24px 22px; }
.sa-book__panel.is-active { display: block; }
.sa-book__chip { display: inline-block; height: 28px; padding: 0 12px; border-radius: 18px; background: var(--sa-bg-soft); font-size: 13.8px; line-height: 28px; font-weight: 600; color: var(--sa-text); }
.sa-book__row { display: flex; align-items: stretch; height: 56px; margin-top: 16px; }
.sa-field { position: relative; display: flex; align-items: center; min-width: 0; background: #fff; border: 1px solid #d0d6e1; border-left-width: 0; }
.sa-field:first-child { border-left-width: 1px; border-radius: 8px 0 0 8px; }
.sa-field input { width: 100%; height: 100%; min-width: 0; padding: 0 16px; border: 0; background: transparent; font: inherit; font-size: 15.5px; color: var(--sa-text); outline: none; }
.sa-field input::placeholder { color: var(--sa-text-3); opacity: 1; }
.sa-field__code { padding-right: 16px; font-size: 13.9px; line-height: 20px; font-weight: 600; color: var(--sa-text-3); }
.sa-field__icon { flex-shrink: 0; width: 20px; height: 20px; margin: 0 18px 0 10px; pointer-events: none; }
.sa-field--city { flex: 0 0 216.5px; border-color: var(--sa-line); }
.sa-field--to { flex: 1 1 215.5px; }
.sa-field--date { flex: 0 0 143.5px; }
/* Дата целиком (дд.мм.гггг) влезает рядом с иконкой и кнопкой очистки */
.sa-field--date input { padding-right: 0; }
.sa-field--date .sa-field__icon { margin: 0 16px 0 6px; }
.sa-field--pax { flex: 0 0 auto; min-width: 152px; cursor: pointer; }
.sa-field--pax .sa-field__value { flex: 1; padding-left: 16px; font-size: 15.4px; color: #101112; white-space: nowrap; }
.sa-field--pax .sa-field__icon { margin-left: 20px; }
.sa-field.is-error { box-shadow: inset 0 0 0 1px var(--sa-red); }
.sa-swap { position: relative; flex: 0 0 40px; display: flex; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--sa-line); border-width: 1px 0; background: #fff; cursor: pointer; }
.sa-swap::before, .sa-swap::after { content: ''; position: absolute; top: 12px; bottom: 12px; width: 1px; background: var(--sa-line); }
.sa-swap::before { left: 0; }
.sa-swap::after { right: 0; }
.sa-book__submit { flex: 1 0 56px; display: flex; align-items: center; justify-content: center; min-width: 56px; padding: 0 12px; border: 0; border-radius: 0 8px 8px 0; background: var(--sa-red); cursor: pointer; }
.sa-book__submit:hover { background: #c40025; }
.sa-book__bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; margin-top: 14px; font-size: 13.7px; line-height: 20px; color: var(--sa-text-2); }
.sa-book__bottom label { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 600; }
.sa-book__bottom select { height: 32px; padding: 0 8px; border: 1px solid var(--sa-line); border-radius: 8px; background: #fff; font: inherit; color: var(--sa-text); }
.sa-book__error { color: var(--sa-red); font-weight: 600; }
.sa-book__form-row { display: flex; gap: 16px; margin-top: 16px; }
.sa-book__form-row .sa-field { flex: 1; border-left-width: 1px; border-radius: 8px; height: 56px; }
.sa-book__form-row .sa-btn { flex: 0 0 auto; border-radius: 8px; padding: 0 32px; font-size: 15.5px; font-weight: 600; }
.sa-book__note { margin: 14px 0 0; font-size: 13.7px; line-height: 20px; color: var(--sa-text-2); }

/* Выпадающие списки виджета: города, пассажиры */
.sa-drop { position: absolute; z-index: 20; top: calc(100% + 6px); left: -1px; display: none; min-width: 100%; max-height: 320px; overflow-y: auto; padding: 8px; background: #fff; border-radius: 12px; box-shadow: 0 2px 16px rgba(33, 43, 54, .16); }
.sa-drop.is-open { display: block; }
.sa-drop__city { display: flex; justify-content: space-between; gap: 16px; padding: 8px 10px; border-radius: 8px; font-size: 15px; color: var(--sa-text); cursor: pointer; white-space: nowrap; }
.sa-drop__city span { color: var(--sa-text-3); font-weight: 600; font-size: 13.9px; }
.sa-drop__city:hover, .sa-drop__city.is-focus { background: var(--sa-bg-chip); }
.sa-drop__empty { padding: 8px 10px; color: var(--sa-text-3); }
.sa-drop--pax { left: auto; right: -1px; width: 280px; padding: 16px; }
.sa-pax { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; }
.sa-pax__label { font-size: 15px; color: var(--sa-text); }
.sa-pax__label small { display: block; font-size: 12.5px; color: var(--sa-text-3); }
.sa-pax__counter { display: flex; align-items: center; gap: 12px; }
.sa-pax__counter button { width: 32px; height: 32px; padding: 0; border: 1px solid var(--sa-line); border-radius: 50%; background: #fff; font-size: 18px; line-height: 1; color: var(--sa-text); cursor: pointer; }
.sa-pax__counter button:disabled { opacity: .35; cursor: default; }
.sa-pax__counter output { min-width: 16px; text-align: center; font-weight: 600; }

/* Очистка даты «Обратно» (поиск в одну сторону) */
.sa-field__clear { position: relative; flex-shrink: 0; width: 24px; height: 24px; margin-right: 12px; padding: 0; border: 0; border-radius: 50%; background: var(--sa-bg-chip); cursor: pointer; }
.sa-field__clear[hidden] { display: none; }
.sa-field__clear::before, .sa-field__clear::after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 1.5px; margin: -.75px 0 0 -5px; background: var(--sa-text-2); transform: rotate(45deg); }
.sa-field__clear::after { transform: rotate(-45deg); }
.sa-field__clear:hover { background: var(--sa-line); }

/* Календарь виджета: jQuery UI datepicker с классом sa-dp (sa.js). Перекрывает оформление старого сайта
   (legacy/css/main.css, местами с !important), поэтому селекторы через #ui-datepicker-div. */
#ui-datepicker-div.sa-dp { z-index: 90 !important; width: auto !important; min-width: 0; max-width: none; margin: 0; padding: 20px 24px 16px; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 8px 32px rgba(33, 43, 54, .18); font-family: inherit; color: var(--sa-text); }
#ui-datepicker-div.sa-dp .ui-datepicker-group { float: left; width: 296px; padding: 0; }
/* Шапка календаря виджета: заголовок, «Только туда / Туда и обратно», закрыть (sa.js, renderHead) */
#ui-datepicker-div.sa-dp .sa-dp__head { display: flex; align-items: center; gap: 12px; margin: -4px 0 16px; padding-bottom: 16px; border-bottom: 1px solid #eef0f4; }
#ui-datepicker-div.sa-dp .sa-dp__title { flex: 1 1 auto; margin-right: 8px; font-size: 18px; line-height: 24px; font-weight: 700; color: var(--sa-text); white-space: nowrap; }
#ui-datepicker-div.sa-dp .sa-dp__trip { display: flex; gap: 8px; }
#ui-datepicker-div.sa-dp .sa-dp__trip button { height: 40px; padding: 0 18px; border: 1px solid var(--sa-line); border-radius: 10px; background: #eef1f6; font: inherit; font-size: 14.5px; font-weight: 500; color: var(--sa-text-2); white-space: nowrap; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
#ui-datepicker-div.sa-dp .sa-dp__trip button:hover { border-color: #9aa5b4; color: var(--sa-text); }
#ui-datepicker-div.sa-dp .sa-dp__trip button.is-active { border-color: var(--sa-red); background: var(--sa-red); color: #fff; }
#ui-datepicker-div.sa-dp .sa-dp__close { position: relative; flex-shrink: 0; width: 36px; height: 36px; margin-right: -8px; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; }
#ui-datepicker-div.sa-dp .sa-dp__close:hover { background: var(--sa-bg-chip); }
#ui-datepicker-div.sa-dp .sa-dp__close::before, #ui-datepicker-div.sa-dp .sa-dp__close::after { content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 2px; margin: -1px 0 0 -9px; border-radius: 1px; background: var(--sa-text-2); transform: rotate(45deg); }
#ui-datepicker-div.sa-dp .sa-dp__close::after { transform: rotate(-45deg); }
#ui-datepicker-div.sa-dp:not(.ui-datepicker-multi) { width: 344px !important; }
#ui-datepicker-div.sa-dp .ui-datepicker-group + .ui-datepicker-group { margin-left: 32px; }
#ui-datepicker-div.sa-dp .ui-datepicker-row-break { clear: both; }
#ui-datepicker-div.sa-dp .ui-widget-header { position: relative; height: 36px; margin: 0 0 8px; padding: 0; border: 0; background: none; }
#ui-datepicker-div.sa-dp .ui-datepicker-title span, #ui-datepicker-div.sa-dp .ui-datepicker-title .ui-datepicker-month { margin: 0 !important; padding: 0; }
#ui-datepicker-div.sa-dp .ui-datepicker-title select { width: auto; height: 32px; margin: 0 2px; padding: 0 8px; border: 1px solid var(--sa-line); border-radius: 8px; background: #fff; font: inherit; font-size: 15px; font-weight: 600; color: var(--sa-text); vertical-align: middle; cursor: pointer; }
#ui-datepicker-div.sa-dp .ui-datepicker-title { display: block; height: 36px; text-align: center; margin: 0; padding: 0; font-size: 16px; line-height: 36px; font-weight: 600; color: var(--sa-text); }
#ui-datepicker-div.sa-dp .ui-datepicker-prev, #ui-datepicker-div.sa-dp .ui-datepicker-next { position: absolute; top: 0 !important; width: 36px; height: 36px; border: 0; border-radius: 50% !important; background: var(--sa-bg-chip); transform: none; cursor: pointer; }
#ui-datepicker-div.sa-dp .ui-datepicker-prev { left: 0 !important; right: auto !important; }
#ui-datepicker-div.sa-dp .ui-datepicker-next { right: 0 !important; left: auto !important; }
#ui-datepicker-div.sa-dp .ui-datepicker-prev:hover, #ui-datepicker-div.sa-dp .ui-datepicker-next:hover { background: var(--sa-line); }
#ui-datepicker-div.sa-dp .ui-datepicker-prev.ui-state-disabled, #ui-datepicker-div.sa-dp .ui-datepicker-next.ui-state-disabled { display: none; }
#ui-datepicker-div.sa-dp .ui-datepicker-prev .ui-icon, #ui-datepicker-div.sa-dp .ui-datepicker-next .ui-icon { display: none; }
#ui-datepicker-div.sa-dp .ui-datepicker-prev::before, #ui-datepicker-div.sa-dp .ui-datepicker-next::before { content: ""; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border: solid var(--sa-text); border-width: 0 2px 2px 0; }
#ui-datepicker-div.sa-dp .ui-datepicker-prev::before { margin: -4px 0 0 -2px; transform: rotate(135deg); }
#ui-datepicker-div.sa-dp .ui-datepicker-next::before { margin: -4px 0 0 -6px; transform: rotate(-45deg); }
#ui-datepicker-div.sa-dp table { display: table; width: 100%; margin: 0; border-collapse: separate; border-spacing: 0 2px; font-size: 15px; table-layout: fixed; }
#ui-datepicker-div.sa-dp thead { display: table-header-group; }
#ui-datepicker-div.sa-dp tbody { display: table-row-group; }
#ui-datepicker-div.sa-dp tr { display: table-row; background: none; }
/* position: static — у таблиц старого сайта th «липкие» (sticky, top: 0): при прокрутке строка дней недели съезжала на числа */
#ui-datepicker-div.sa-dp th { position: static; z-index: auto; display: table-cell; padding: 0 0 6px; border: 0; background: none; font-size: 12.5px; line-height: 16px; font-weight: 500; color: var(--sa-text-3); text-align: center; }
#ui-datepicker-div.sa-dp th:nth-child(6), #ui-datepicker-div.sa-dp th:nth-child(7) { color: var(--sa-red); }
#ui-datepicker-div.sa-dp td { display: table-cell; padding: 0; border: 0; border-radius: 0; background: none; }
#ui-datepicker-div.sa-dp td a, #ui-datepicker-div.sa-dp td span { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0 auto; padding: 0; border: 0; border-radius: 50%; background: none; font-size: 15px; line-height: 1; font-weight: 500; color: var(--sa-text); text-align: center; transition: background .15s, color .15s; }
#ui-datepicker-div.sa-dp td a:hover, #ui-datepicker-div.sa-dp td a.ui-state-hover { border: 0; background: var(--sa-bg-chip); color: var(--sa-text); }
#ui-datepicker-div.sa-dp td.ui-state-disabled { opacity: 1; }
#ui-datepicker-div.sa-dp td.ui-state-disabled span { color: #c1c7d0; font-weight: 400; }
#ui-datepicker-div.sa-dp td.ui-datepicker-today a { box-shadow: inset 0 0 0 1px var(--sa-line); font-weight: 700; }
#ui-datepicker-div.sa-dp td.ui-datepicker-today.ui-state-disabled span { box-shadow: none; }
#ui-datepicker-div.sa-dp td.sa-dp-range, #ui-datepicker-div.sa-dp td.sa-dp-preview { background: #fdecef; }
#ui-datepicker-div.sa-dp td.sa-dp-start.sa-dp-has-end { background: linear-gradient(to right, transparent 50%, #fdecef 50%); }
#ui-datepicker-div.sa-dp td.sa-dp-end { background: linear-gradient(to left, transparent 50%, #fdecef 50%); }
#ui-datepicker-div.sa-dp td.sa-dp-start a, #ui-datepicker-div.sa-dp td.sa-dp-end a, #ui-datepicker-div.sa-dp td a.ui-state-active { background: var(--sa-red); color: #fff; font-weight: 600; box-shadow: none; }

/* ---------------------------------------------------------------- Популярные направления */
.sa-popular { position: relative; }
.sa-popular .sa-title-row { padding-left: 72px; }
.sa-popular .sa-title { font-size: 30px; line-height: 38.4px; font-weight: 700; color: var(--sa-grey); }
.sa-carousel { position: relative; padding: 0 72px; }
.sa-carousel__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; margin: 0 -14px; }
.sa-carousel__track::-webkit-scrollbar { display: none; }
.sa-carousel__item { flex: 0 0 25%; padding: 0 14px 32px; scroll-snap-align: start; }
.sa-carousel__arrow { position: absolute; z-index: 2; top: calc(50% - 14px); width: 52px; height: 52px; margin-top: -26px; display: flex; align-items: center; justify-content: center; padding: 0; border: 1px solid #e5e5e5; border-radius: 26px; background: #fff; filter: drop-shadow(4px 9px 14px rgba(0, 0, 0, .1)); cursor: pointer; }
.sa-carousel__arrow--prev { left: 0; }
.sa-carousel__arrow--next { right: 0; }
.sa-carousel__arrow[disabled] { opacity: .4; cursor: default; }
.sa-carousel__dots { display: flex; justify-content: center; gap: 10px; height: 8px; }
.sa-carousel__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 4px; background: #e5e5e5; cursor: pointer; }
.sa-carousel__dots button.is-active { background: #999; }
.sa-dest { position: relative; display: block; height: 340px; overflow: hidden; border-radius: 16px; background: #b8bec5; }
.sa-dest img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.sa-dest:hover img { transform: scale(1.04); }
.sa-dest::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 43.75%, rgba(0, 0, 0, .55) 62%); }
.sa-dest__info { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 24px 10px 25px 24px; color: #fff; }
.sa-dest__city { display: block; font-size: 21.6px; line-height: 27.6px; font-weight: 700; }
.sa-dest__price { display: block; padding-top: 14px; font-size: 21px; line-height: 35px; }

/* ---------------------------------------------------------------- Store */
.sa-store__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sa-product { position: relative; display: block; color: var(--sa-text); }
.sa-product:hover { color: var(--sa-text); }
.sa-product__image { height: 200px; overflow: hidden; border-radius: 16px; background: #b8bec5; }
.sa-product__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.sa-product:hover .sa-product__image img { transform: scale(1.04); }
.sa-product__price { margin-top: 20px; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--sa-red); }
.sa-product__title { margin-top: 12px; font-size: 17.9px; line-height: 24px; font-weight: 600; }
.sa-product__buy { margin-top: 16px; padding: 8px 20px 10px; font-size: 17px; opacity: 0; transform: translateY(-6px); transition: opacity .2s, transform .2s; }
.sa-product:hover .sa-product__buy, .sa-product:focus-visible .sa-product__buy { opacity: 1; transform: none; }

/* ---------------------------------------------------------------- Новости */
.sa-news .sa-title-row { max-width: 859px; margin-left: auto; margin-right: auto; }
.sa-news__more { font-size: 17px; line-height: 25.2px; font-weight: 500; color: #999; text-decoration: underline; }
.sa-news__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; padding-bottom: 28px; }
.sa-news-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 30px; background: #fff; box-shadow: 5px 8px 25px rgba(0, 0, 0, .09); }
.sa-news-card__image { display: block; height: 210px; overflow: hidden; background: var(--sa-bg-chip); }
.sa-news-card__image img { width: 100%; height: 100%; object-fit: cover; }
.sa-news-card__info { flex: 1; padding: 15px 32px 53px; }
.sa-news-card__date { font-size: 16.6px; line-height: 25.2px; color: #999; }
.sa-news-card__title { display: block; margin-top: 12px; font-size: 20.8px; line-height: 30.8px; font-weight: 700; color: var(--sa-grey); text-decoration: underline; }
.sa-news-card__title:hover { color: var(--sa-red); }

/* ---------------------------------------------------------------- Справочный центр */
.sa-faq { display: flex; justify-content: space-between; padding-top: 68px; }
.sa-faq__aside { flex: 0 0 344px; padding-right: 40px; }
.sa-faq__title { margin: 0; font-size: 32px; line-height: 40px; font-weight: 600; color: var(--sa-text); }
.sa-faq__image { display: block; width: 248px; height: 270px; object-fit: cover; object-position: 100% 50%; }
.sa-faq__list { flex: 1; display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.sa-faq__q { display: block; font-size: 18.9px; line-height: 28px; font-weight: 600; color: var(--sa-text); }
.sa-faq__q::after { content: ' →'; color: var(--sa-red); }
.sa-faq__q:hover { color: var(--sa-red); }
.sa-faq__answer { display: none; margin-top: 8px; font-size: 15px; line-height: 24px; color: var(--sa-text-2); }
.sa-faq__item.is-open .sa-faq__answer { display: block; }
.sa-faq .sa-more { padding-top: 10px; }

/* ---------------------------------------------------------------- Подвал */
.sa-footer { margin-top: 120px; background: #f2f2f2; color: var(--sa-grey); }
.sa-footer a { color: var(--sa-grey); }
.sa-footer a:hover { color: var(--sa-red); }
.sa-footer__inner { max-width: 1290px; margin: 0 auto; padding: 0 20px; }
.sa-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 40px 0 33px; border-bottom: 1px solid #ccc; }
.sa-footer__support { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 80px; }
.sa-footer__support-item { display: flex; align-items: center; gap: 16px; font-size: 15px; line-height: 19px; }
.sa-footer__icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 24px; background: var(--sa-red); }
.sa-footer__phone { margin-left: 0; padding-left: 17px; border-left: 1px solid #ccc; font-size: 14.6px; line-height: 20px; }
.sa-footer__social { display: flex; align-items: center; gap: 12px; font-size: 14.8px; font-weight: 500; }
.sa-footer__social span { margin-right: 8px; }
.sa-footer__social a { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid rgba(228, 0, 43, .1); border-radius: 24px; background: #fff; }
.sa-footer__social img { width: 20px; height: 20px; }
.sa-footer__nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding: 32px 0 33px; border-bottom: 1px solid #ccc; }
.sa-footer__nav-title { margin: 0 0 20px; font-size: 18.9px; line-height: 30px; font-weight: 400; }
.sa-footer__nav ul { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; font-size: 15px; line-height: 21px; }
.sa-footer__nav .sa-pill { margin-top: 20px; font-weight: 700; }
.sa-footer .sa-pill, .sa-footer .sa-pill:hover { color: #fff; }
.sa-footer__btm { padding: 32px 0 40px; }
.sa-app { position: relative; height: 220px; overflow: hidden; border-radius: 8px; background: #fff; }
.sa-app__phone-left { position: absolute; left: -15px; bottom: -2px; width: 341px; height: 220px; object-fit: cover; object-position: 0 0; }
.sa-app__body { position: absolute; z-index: 1; left: 540px; top: 40px; }
.sa-app__title { margin: 0 0 16px; white-space: nowrap; font-size: 20px; line-height: 28px; font-weight: 600; color: #27344b; }
.sa-app__stores { display: flex; gap: 16px; }
.sa-app__store { display: flex; align-items: center; justify-content: center; width: 72px; height: 75px; border-radius: 16px; background: var(--sa-text); }
.sa-app__store img { width: 56px; height: 56px; }
.sa-app__qa { position: absolute; right: 115px; top: 50%; width: 98px; height: 98px; margin-top: -49px; }
.sa-app__phone-right { position: absolute; left: 766px; top: 17px; width: 375px; height: 197px; object-fit: cover; }
.sa-app__sep { position: absolute; right: 273px; top: 61px; bottom: 61px; border-left: 1px solid rgba(149, 160, 179, .2); }
.sa-footer__copy { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 12px; padding-top: 37px; border-top: 1px solid #ccc; font-size: 13.1px; line-height: 18px; }
.sa-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* ---------------------------------------------------------------- Поиск по сайту */
/* Поле поиска: страница результатов и панель в шапке */
.sa-search-box { display: flex; align-items: center; gap: 4px; max-width: 820px; height: 64px; padding: 0 8px 0 20px; background: #fff; border: 1px solid var(--sa-line); border-radius: 16px; box-shadow: 0 4px 24px rgba(33, 43, 54, .06); transition: border-color .2s, box-shadow .2s; }
.sa-search-box:focus-within { border-color: #9aa5b4; box-shadow: 0 0 0 4px rgba(228, 0, 43, .08), 0 4px 24px rgba(33, 43, 54, .06); }
.sa-search-box__icon { flex-shrink: 0; width: 20px; height: 20px; opacity: .7; }
.sa-search-box__input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0 10px; border: 0; background: transparent; font: inherit; font-size: 17px; color: var(--sa-text); outline: none; -webkit-appearance: none; appearance: none; }
.sa-search-box__input::placeholder { color: var(--sa-text-3); opacity: 1; }
.sa-search-box__input::-webkit-search-cancel-button, .sa-search-box__input::-webkit-search-decoration { -webkit-appearance: none; display: none; }
.sa-search-box__clear { position: relative; flex-shrink: 0; width: 28px; height: 28px; margin-right: 6px; padding: 0; border: 0; border-radius: 50%; background: var(--sa-bg-chip); cursor: pointer; }
.sa-search-box__clear[hidden] { display: none; }
.sa-search-box__clear::before, .sa-search-box__clear::after { content: ""; position: absolute; top: 50%; left: 50%; width: 11px; height: 1.5px; margin: -.75px 0 0 -5.5px; background: var(--sa-text-2); transform: rotate(45deg); }
.sa-search-box__clear::after { transform: rotate(-45deg); }
.sa-search-box__clear:hover { background: var(--sa-line); }
.sa-search-box__submit { flex-shrink: 0; height: 48px; padding: 0 28px; font-size: 16px; line-height: 1; border-radius: 12px; }

.sa-chip { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border: 1px solid var(--sa-line); border-radius: 100px; background: #fff; font-size: 14px; color: var(--sa-text); white-space: nowrap; transition: border-color .2s, color .2s; }
.sa-chip:hover { border-color: var(--sa-red); color: var(--sa-red); }
.sa-search__chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 20px; }
.sa-search__chips[hidden] { display: none; }
.sa-search__chips-label { flex-shrink: 0; margin-right: 4px; font-size: 14px; color: var(--sa-text-3); white-space: nowrap; }

/* Страница результатов */
.sa-search__hero { padding: 48px 0 40px; background: linear-gradient(180deg, #eef1f6 0%, rgba(238, 241, 246, 0) 100%); }
.sa-search__title { margin: 0 0 24px; font-size: 40px; line-height: 48px; font-weight: 600; color: var(--sa-text); }
.sa-search__body { padding-bottom: 24px; }
.sa-search__summary { margin: 0 0 16px; font-size: 15px; color: var(--sa-text-2); }
.sa-search__summary b { color: var(--sa-text); }
.sa-search__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.sa-filter { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border: 1px solid var(--sa-line); border-radius: 100px; background: #fff; font: inherit; font-size: 14px; font-weight: 600; color: var(--sa-text-2); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.sa-filter span { font-weight: 500; color: var(--sa-text-3); }
.sa-filter:hover { border-color: #9aa5b4; color: var(--sa-text); }
.sa-filter.is-active { border-color: var(--sa-text); background: var(--sa-text); color: #fff; }
.sa-filter.is-active span { color: rgba(255, 255, 255, .7); }
.sa-results { margin: 0; padding: 0; list-style: none; background: #fff; border-radius: 16px; overflow: hidden; }
.sa-result { position: relative; padding: 20px 24px; border-top: 1px solid #eef0f4; transition: background .15s; }
.sa-result:first-child { border-top: 0; }
.sa-result[hidden] { display: none; }
.sa-result:hover { background: #fafbfc; }
.sa-result__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-bottom: 6px; font-size: 13px; line-height: 18px; color: var(--sa-text-3); }
.sa-result__tag { padding: 2px 8px; border-radius: 6px; background: var(--sa-bg-chip); font-size: 12px; font-weight: 600; color: var(--sa-text-2); }
.sa-result__tag--page { background: #fdecef; color: var(--sa-red); }
.sa-result__tag--news { background: #e8f0fc; color: #24539e; }
.sa-result__title { font-size: 18px; line-height: 26px; font-weight: 600; color: var(--sa-text); }
/* Вся строка результата кликабельна */
.sa-result__title::after { content: ""; position: absolute; inset: 0; }
.sa-result:hover .sa-result__title { color: var(--sa-red); }
.sa-result__snippet { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 6px 0 0; font-size: 14.5px; line-height: 22px; color: var(--sa-text-2); }
.sa-result mark, .sa-suggest mark { padding: 0 2px; border-radius: 3px; background: rgba(228, 0, 43, .1); color: inherit; }
.sa-result__title mark, .sa-suggest__title mark { padding: 0; background: none; color: var(--sa-red); }
.sa-search__more { display: block; height: 44px; margin: 24px auto 0; padding: 0 28px; border: 1px solid var(--sa-line); border-radius: 100px; background: #fff; font: inherit; font-size: 15px; font-weight: 600; color: var(--sa-text); cursor: pointer; }
.sa-search__more:hover { border-color: var(--sa-text); }
.sa-search__more[hidden] { display: none; }
.sa-search__empty { padding: 32px; background: #fff; border-radius: 16px; }
.sa-search__empty h2 { margin: 0 0 12px; font-size: 22px; line-height: 30px; font-weight: 600; color: var(--sa-text); }
.sa-search__empty ul { margin: 0; padding-left: 20px; font-size: 15px; line-height: 26px; color: var(--sa-text-2); }
.sa-search__empty a { color: var(--sa-red); white-space: nowrap; }
.sa-search__subtitle { margin: 40px 0 16px; font-size: 22px; line-height: 30px; font-weight: 600; color: var(--sa-text); }
.sa-quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.sa-quick__card { display: flex; flex-direction: column; gap: 4px; padding: 20px; border: 1px solid transparent; border-radius: 16px; background: #fff; color: var(--sa-text); transition: border-color .2s, box-shadow .2s; }
.sa-quick__card:hover { border-color: var(--sa-line); box-shadow: 0 4px 24px rgba(33, 43, 54, .08); color: var(--sa-text); }
.sa-quick__icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 10px; border-radius: 50%; background: var(--sa-red); }
/* Иконки сайта бывают красные и белые — в красном кружке все белые */
.sa-quick__icon img { width: 22px; height: 22px; filter: brightness(0) invert(1); }
.sa-quick__card b { font-size: 16px; line-height: 22px; font-weight: 600; }
.sa-quick__card span:last-child { font-size: 14px; line-height: 20px; color: var(--sa-text-3); }

/* Панель поиска в шапке */
.sa-searchbar { position: absolute; left: 0; right: 0; top: 100%; display: none; padding: 32px 20px 24px; background: #fff; border-radius: 0 0 16px 16px; }
.sa-searchbar.is-open { display: block; }
.sa-searchbar__inner { max-width: 820px; margin: 0 auto; }
.sa-search-box--bar { box-shadow: none; }
.sa-suggest:empty { display: none; }
.sa-suggest { margin-top: 12px; }
.sa-suggest__item { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border-radius: 10px; color: var(--sa-text); }
.sa-suggest__item:hover, .sa-suggest__item.is-active { background: var(--sa-bg-chip); color: var(--sa-text); }
.sa-suggest__title { font-size: 15.5px; line-height: 22px; font-weight: 500; }
.sa-suggest__path { font-size: 13px; line-height: 18px; color: var(--sa-text-3); }
.sa-suggest__all { display: inline-block; margin: 8px 14px 0; font-size: 14px; font-weight: 600; color: var(--sa-red); }
.sa-suggest__empty { margin: 0; padding: 10px 14px; font-size: 14.5px; color: var(--sa-text-3); }
.sa-searchbar__close { display: flex; margin: 24px auto 0; padding: 0; border: 0; background: none; cursor: pointer; }

/* ---------------------------------------------------------------- Поделиться (modules/share.tpl) */
.sa-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 32px; padding-top: 24px; border-top: 1px solid #e5e8ee; }
.sa-share__label { margin-right: 4px; font-size: 15px; color: var(--sa-text-2); }
.sa-share__btn { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--sa-line); border-radius: 50%; background: #fff; color: var(--sa-text-2); cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.sa-share__btn:hover { transform: translateY(-2px); color: #fff; }
.sa-share__btn--tg:hover { border-color: #229ed9; background: #229ed9; }
.sa-share__btn--wa:hover { border-color: #25d366; background: #25d366; }
.sa-share__btn--fb:hover { border-color: #1877f2; background: #1877f2; }
.sa-share__btn--copy:hover, .sa-share__btn--copy.is-done { border-color: var(--sa-text); background: var(--sa-text); color: #fff; }
.sa-share__status { font-size: 14px; color: #2f6b0f; }
.sa-share__status:empty { display: none; }

/* ---------------------------------------------------------------- Формы услуг (form/sa-form.tpl) */
/* Загрузка файла: зона вместо кнопки браузера (sa.js [data-upload]) */
.sa-upload { position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sa-upload__label { font-size: 13px; line-height: 18px; color: #596579; }
.sa-upload__drop { display: flex; align-items: center; gap: 14px; min-height: 60px; margin: 0; padding: 10px 48px 10px 16px; border: 1px dashed #b9c3d3; border-radius: 8px; background: #fff; cursor: pointer; transition: border-color .2s, background .2s; }
.sa-upload__drop:hover, .sa-upload.is-drag .sa-upload__drop { border-color: var(--sa-red); background: #fff7f8; }
.sa-upload__input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); border: 0; }
.sa-upload__input:focus-visible + .sa-upload__icon { box-shadow: 0 0 0 3px rgba(228, 0, 43, .25); }
.sa-upload__icon { display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: #fdecef; color: var(--sa-red); }
.sa-upload__text { display: flex; flex-direction: column; min-width: 0; }
.sa-upload__text b { overflow: hidden; font-size: 15px; line-height: 20px; font-weight: 600; color: var(--sa-text); text-overflow: ellipsis; white-space: nowrap; }
.sa-upload__text small { font-size: 12.5px; line-height: 17px; color: var(--sa-text-3); }
/* Перетаскивать на сенсорных экранах нечем — там только форматы */
@media (hover: none) { .sa-upload__hint { display: none; } }
.sa-upload.has-file .sa-upload__drop { border-style: solid; border-color: #9aa5b4; }
.sa-upload.has-file .sa-upload__icon { background: var(--sa-red); color: #fff; }
.sa-upload.is-invalid .sa-upload__drop { border-color: #e2403a; background: #fff7f6; }
.sa-upload__remove { position: absolute; right: 12px; bottom: 16px; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: var(--sa-bg-chip); cursor: pointer; }
.sa-upload__remove[hidden] { display: none; }
.sa-upload__remove::before, .sa-upload__remove::after { content: ""; position: absolute; top: 50%; left: 50%; width: 11px; height: 1.5px; margin: -.75px 0 0 -5.5px; background: var(--sa-text-2); transform: rotate(45deg); }
.sa-upload__remove::after { transform: rotate(-45deg); }
.sa-upload__remove:hover { background: var(--sa-line); }

/* Форма во всплывающем окне (отклик на вакансию): компактно, две колонки, согласие перед кнопкой */
.article-modal .article-modal-wrapper:has(.sa-form--modal) { width: 640px; max-width: calc(100vw - 32px); padding: 40px 44px 36px; }
.sa-form--modal .sa-form__title { margin: 0 0 6px; font-size: 28px; line-height: 36px; font-weight: 700; color: var(--sa-text); }
.sa-form--modal .sa-form__lead { margin: 0 0 4px; font-size: 15px; line-height: 22px; color: var(--sa-text-2); }
.sa-form--modal .sa-form__lead b { font-weight: 600; color: var(--sa-text); }
.sa-form--modal .custom-form { margin-top: 20px; padding: 0; }
.sa-form--modal .custom-form__content-full { display: flex; flex-direction: column; gap: 16px; }
.sa-form--modal .custom-form__content-item { padding: 0; background: none; }
.sa-form--modal .custom-form__content-item-cards-th { grid-template-columns: 1fr 1fr; grid-gap: 12px; }
.sa-form--modal [data-field="fullName"], .sa-form--modal [data-field="message"], .sa-form--modal .sa-upload { grid-column: 1 / -1; }
.sa-form--modal textarea.form-control { min-height: 112px; padding-top: 26px; resize: vertical; }
.sa-form--modal textarea.form-control ~ .placeholder { top: 18px; }
.sa-form--modal .iagree { order: 1; margin: 0 !important; font-size: 13.5px; line-height: 19px; }
.sa-form--modal .iagree label { align-items: center; }
.sa-form--modal .btn-def { order: 2; }
.sa-form--modal .btn-def button { width: 100%; max-width: none; }
.sa-form--modal .form__message { order: 3; margin: 0 !important; }

/* ---------------------------------------------------------------- Адаптив */
@media (max-width: 1240px) {
    .sa-nav { padding-left: 32px; }
    .sa-logo { width: auto; margin-right: 0; }
    .sa-app__phone-right, .sa-app__qa, .sa-app__sep { display: none; }
    .sa-app__body { left: auto; right: 40px; }
}

@media (max-width: 1100px) {
    .sa-nav { display: none; }
    .sa-header__search { padding: 0 8px; }
    .sa-header__search::after { display: none; }
    .sa-burger { display: block; }
    .sa-logo { font-size: 36px; }
    .sa-mega { display: none !important; }
    .sa-quick { grid-template-columns: repeat(2, 1fr); }
    .sa-mobile { position: absolute; left: 0; right: 0; top: 100%; display: none; max-height: calc(100vh - 80px); overflow-y: auto; padding: 16px 20px 32px; background: #fff; border-radius: 0 0 16px 16px; }
    .sa-header.is-mobile-open .sa-mobile { display: block; }
    .sa-mobile__group { padding: 12px 0; border-bottom: 1px solid var(--sa-bg-chip); }
    .sa-mobile__heading { margin: 0 0 4px; font-size: 15.6px; line-height: 24px; font-weight: 600; color: var(--sa-text); }
    .sa-mobile__group ul { margin: 0; padding: 0; list-style: none; }
    .sa-mobile__group a { display: block; padding: 7px 0; font-size: 15px; color: #27344b; }
    .sa-mobile .sa-pill { margin-top: 16px; }

    .sa-hero { height: auto; min-height: 380px; }
    .sa-hero__image { left: auto; right: -120px; opacity: .9; }
    .sa-hero__info { padding-right: 0; max-width: 520px; }
    .sa-hero__arrow { display: none; }

    .sa-book__row { flex-wrap: wrap; height: auto; gap: 8px; }
    .sa-field, .sa-field:first-child { flex: 1 1 calc(50% - 4px); height: 56px; border-left-width: 1px; border-radius: 8px; }
    .sa-swap { display: none; }
    .sa-book__submit { flex: 1 1 100%; height: 56px; border-radius: 8px; }
    .sa-book__tab:first-child { flex: 1 1 0; }

    .sa-carousel { padding: 0; }
    .sa-carousel__arrow { display: none; }
    .sa-carousel__item { flex-basis: 40%; }
    .sa-popular .sa-title-row { padding-left: 0; }

    .sa-store__grid, .sa-news__grid { grid-template-columns: repeat(2, 1fr); }
    .sa-product__buy { opacity: 1; transform: none; }
    .sa-footer__nav { grid-template-columns: repeat(2, 1fr); }
    .sa-footer__top { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 767px) {
    .sa-section { margin-top: 56px; }
    .sa-title, .sa-faq__title { font-size: 24px; line-height: 32px; }
    .sa-popular .sa-title { font-size: 24px; line-height: 32px; }
    .sa-hero__image { height: 220px; top: auto; bottom: 0; right: -140px; }
    .sa-hero__info { height: auto; min-height: 220px; margin-top: 24px; justify-content: flex-start; }
    .sa-hero__title { font-size: 30px; line-height: 38px; }
    .sa-hero__bottom { bottom: 24px; }
    .sa-hero__dots { margin-right: 24px; }
    .sa-book { max-width: calc(100% - 32px); margin-top: -24px; }
    .sa-book__tabs { overflow-x: auto; scrollbar-width: none; }
    .sa-book__tab { flex: 0 0 auto; padding: 0 16px; font-size: 14px; }
    .sa-book__tab:first-child { flex: 0 0 auto; }
    .sa-book__panel { padding: 16px; }
    .sa-field, .sa-field:first-child { flex-basis: 100%; }
    .sa-field--date { flex-basis: calc(50% - 4px); }
    .sa-search__hero { padding: 28px 0 24px; }
    .sa-search__title { margin-bottom: 16px; font-size: 28px; line-height: 36px; }
    .sa-search-box { height: 56px; padding: 0 6px 0 14px; border-radius: 14px; }
    .sa-search-box__input { font-size: 16px; padding: 0 8px; }
    .sa-search-box__submit { height: 44px; padding: 0 16px; font-size: 15px; }
    .sa-search__chips { flex-wrap: nowrap; overflow-x: auto; margin-right: -20px; padding-right: 20px; scrollbar-width: none; }
    .sa-search__filters { flex-wrap: nowrap; overflow-x: auto; margin-right: -20px; padding-right: 20px; scrollbar-width: none; }
    .sa-filter { flex-shrink: 0; }
    .sa-result { padding: 16px; }
    .sa-result__title { font-size: 16.5px; line-height: 24px; }
    .sa-search__empty { padding: 24px 20px; }
    .sa-quick { grid-template-columns: 1fr; gap: 10px; }
    .sa-quick__card { display: grid; grid-template-columns: 44px 1fr; align-items: center; gap: 2px 14px; padding: 16px; }
    .sa-quick__icon { grid-row: span 2; margin: 0; }
    .sa-searchbar { padding: 16px 16px 20px; }
    .article-modal .article-modal-wrapper:has(.sa-form--modal) { padding: 28px 20px 24px; }
    .sa-form--modal .sa-form__title { padding-right: 32px; font-size: 22px; line-height: 28px; }
    .sa-form--modal .custom-form__content-item-cards-th { grid-template-columns: 1fr; }
    #ui-datepicker-div.sa-dp, #ui-datepicker-div.sa-dp:not(.ui-datepicker-multi) { width: calc(100vw - 32px) !important; padding: 16px; }
    #ui-datepicker-div.sa-dp .ui-datepicker-group { width: 100%; }
    #ui-datepicker-div.sa-dp .sa-dp__head { flex-wrap: wrap; gap: 12px 8px; margin-top: 0; padding-bottom: 14px; }
    #ui-datepicker-div.sa-dp .sa-dp__title { margin: 0; font-size: 16px; }
    #ui-datepicker-div.sa-dp .sa-dp__trip { order: 3; flex: 1 1 100%; }
    #ui-datepicker-div.sa-dp .sa-dp__trip button { flex: 1 1 0; padding: 0 8px; }
    #ui-datepicker-div.sa-dp td a, #ui-datepicker-div.sa-dp td span { width: 38px; height: 38px; }
    .sa-book__form-row { flex-direction: column; }
    .sa-book__form-row .sa-btn { height: 56px; }
    .sa-carousel__item { flex-basis: 75%; }
    .sa-store__grid, .sa-news__grid { grid-template-columns: 1fr; }
    .sa-faq { flex-direction: column; padding-top: 0; }
    .sa-faq__aside { flex-basis: auto; padding: 0 0 16px; display: flex; align-items: center; gap: 16px; }
    .sa-faq__image { width: 96px; height: 104px; }
    .sa-faq__q { font-size: 16px; line-height: 24px; }
    .sa-footer { margin-top: 72px; }
    .sa-footer__nav { grid-template-columns: 1fr; }
    .sa-footer__support { gap: 16px; }
    .sa-app { height: auto; padding: 24px 24px 24px 200px; min-height: 180px; }
    .sa-app__phone-left { width: 220px; height: 180px; left: -40px; }
    .sa-app__body { position: static; }
}
