/* Shared filter and photographic preset presentation. */
/* Category links are shared by city pages, shop pages and AJAX category blocks. */
.fl-city-section-link { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; gap:9px; flex:none; max-width:100%; min-height:25px; padding:0 0 2px; border:0; border-bottom:1px solid #a4c994; border-radius:0; background:transparent; color:var(--sf-shell-green,#67b346); font:500 15px/1.5 Onest,Arial,sans-serif; text-decoration:none; cursor:pointer; transition:color .18s ease,border-color .18s ease; }
.fl-city-section-link:hover { color:var(--sf-shell-green,#67b346); border-color:var(--sf-shell-green,#67b346); }
.fl-city-section-link .icon { width:18px; height:18px; }
.catalog .sf-category-head { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.catalog .sf-category-head > :is(h1,h2,h3) { min-width:0; }
.catalog .sf-category-head > .fl-city-section-link { margin-left:auto; }
.catalog .sf-category-head--shop { align-items:baseline; margin-bottom:24px; }
.catalog .content_filter + .sf-category-head--shop { margin-top:16px; }
.catalog .sf-category-head--shop > :is(h1,h2,h3) { margin:0; padding:0 !important; line-height:1.25; }
@media(max-width:760px) {
  .fl-city-section-link { font-size:14px; text-align:right; }
  .catalog .sf-category-head { gap:10px; }
}
@media(max-width:640px) {
  .fl-city-section-link { align-self:flex-start; justify-content:flex-start; min-height:36px; text-align:left; }
  .catalog .sf-category-head { flex-direction:column; align-items:stretch; }
  .catalog .sf-category-head > .fl-city-section-link { margin-left:0; }
}
.catalog .catalog_head.sf-catalog-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 16px; margin-bottom:26px; }
.catalog .catalog_head.sf-catalog-heading .head_main_h_first { display:block; padding:0 !important; margin:0; color:#474646; font-family:Onest,Arial,sans-serif; font-size:36px; font-weight:500; line-height:1.2; }
.catalog .catalog_head.sf-catalog-heading .sf-catalog-count { margin:0; color:#777676; font-family:Onest,Arial,sans-serif; font-size:14px; line-height:1.4; }
@media(max-width:1120px) {
  #container .catalog .content_padding { padding-inline:24px; }
  .catalog .catalog_head.sf-catalog-heading .head_main_h_first { font-size:32px; }
}
@media(max-width:700px) {
  #container .catalog .content_padding { padding-inline:16px; }
}
@media(max-width:760px) {
  .catalog .catalog_head.sf-catalog-heading { gap:4px; margin-bottom:20px; }
  .catalog .catalog_head.sf-catalog-heading .head_main_h_first { width:100%; padding:0 !important; font-size:28px !important; letter-spacing:-.6px; }
}
.fl-filter-bar, .fl-categories, #filter, .sf-preset-collection {
  --fl-brand:#67b346; --fl-ink:#474646; --fl-muted:#777676;
  --fl-border:#e7e7e7; --fl-canvas:#f9f9f9;
  --fl-control-height:44px; --fl-control-radius:12px; --fl-motion:180ms;
  font-family:Onest,Arial,sans-serif;
}
.fl-filter-bar { display:flex; align-items:center; gap:10px; position:relative; z-index:12; }
.fl-filter { position:relative; }
.fl-filter[open] { z-index:2; }
.fl-filter-trigger, .fl-quick-filter, .fl-all-filters { min-height:var(--fl-control-height); display:flex; align-items:center; justify-content:center; gap:10px; padding:0 17px; background:white; border:1px solid var(--fl-border); border-radius:var(--fl-control-radius); color:var(--fl-ink); font:inherit; font-size:15px; cursor:pointer; white-space:nowrap; list-style:none; }
summary::-webkit-details-marker { display:none; }
.fl-filter-trigger .icon { width:15px; height:15px; color:#888; }
.fl-filter[open]>.fl-filter-trigger>.icon:last-child, .fl-filter-trigger[aria-expanded=true]>.icon:last-child { transform:rotate(180deg); }
.fl-quick-filter[aria-pressed=true] { border-color:var(--fl-brand); }
.fl-filter-trigger:hover, .fl-quick-filter:hover, .fl-all-filters:hover { border-color:#b9b9b9; }
.fl-filter-trigger:focus-visible { outline:2px solid var(--fl-brand); outline-offset:2px; }
.fl-quick-filter .icon, .fl-all-filters .icon { width:18px; height:18px; color:var(--fl-brand); }
.fl-all-filters { margin-left:auto; background:transparent; }
.fl-filter-panel { position:absolute; left:var(--fl-panel-left,0px); top:calc(100% + 8px); width:min(300px,calc(100vw - 32px)); padding:16px; border:1px solid var(--fl-border); border-radius:16px; background:white; }
.fl-filter-panel-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; gap:12px; }
.fl-filter-title { display:block; font-size:16px; font-weight:500; }
.fl-filter-close { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; }
.fl-filter-close:hover { background:var(--fl-canvas); }
.fl-filter-close .icon { width:18px; height:18px; }
/* Полные списки с сайта. Длинный список прокручивается внутри белой панели. */
.fl-filter-options { max-height:252px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.fl-filter-option { display:flex; align-items:center; gap:12px; min-height:42px; padding:7px 5px; border-radius:6px; font-size:15px; line-height:1.4; cursor:pointer; }
.fl-filter-option:hover { background:var(--fl-canvas); }
.fl-filter-panel input[type=radio], .fl-filter-panel input[type=checkbox], .fl-check input { flex:none; width:18px; height:18px; margin:0; accent-color:var(--sf-shell-green,#67b346); }
.fl-filter-panel input[type=checkbox] { appearance:none; box-sizing:border-box; border:1.5px solid #aeb9aa; border-radius:4px; background:#fff; cursor:pointer; }
.fl-filter-panel input[type=checkbox]:checked { border-color:var(--sf-shell-green,#67b346); background:var(--sf-shell-green,#67b346) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-9' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px 16px no-repeat; }
.fl-filter-panel input[type=checkbox]:focus-visible { outline:2px solid var(--sf-shell-green,#67b346); outline-offset:2px; }
.fl-filter-search { display:flex; align-items:center; gap:10px; min-height:46px; margin-bottom:14px; padding:0 13px; border:1px solid #dfe7dc; border-radius:12px; background:#f8faf7; transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease; }
.fl-filter-search:focus-within { border-color:var(--fl-brand); background:#fff; box-shadow:0 0 0 3px rgb(103 179 70 / 14%); }
.fl-filter-search .icon { width:19px; height:19px; flex:none; color:#79a968; }
.fl-filter-search input { box-sizing:border-box; min-width:0; width:100%; height:44px; margin:0; border:0; border-radius:0; padding:0; outline:0; background:transparent; color:var(--fl-ink); font:inherit; font-size:15px; line-height:normal; }
.fl-filter-search input::placeholder { color:#929992; opacity:1; }
.fl-filter-search input::-webkit-search-cancel-button { cursor:pointer; }
.fl-options-empty { padding:16px 5px; color:var(--fl-muted); font-size:15px; }
.fl-filter-actions { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:14px; margin-top:12px; border-top:1px solid var(--fl-border); }
.fl-filter-actions>button:first-child { min-height:44px; padding:0 4px; font-size:14px; color:var(--fl-muted); }
.fl-filter-actions>button:first-child:hover { color:var(--fl-ink); }
.fl-filter-actions .fl-button { padding:0 18px; font-size:15px; }
.fl-filter-count { display:grid; place-items:center; background:var(--fl-brand); color:white; width:21px; height:21px; border-radius:50%; font-size:12px; }
.fl-price-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:18px; }
.fl-price-fields label { font-size:14px; }
.fl-price-fields input { display:block; width:100%; height:44px; border:1px solid var(--fl-border); border-radius:9px; padding:0 10px; margin-top:7px; background:white; font-size:16px; }
.fl-categories { display:flex; align-items:start; justify-content:flex-start; gap:18px; padding:27px 0 25px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
.fl-categories::-webkit-scrollbar { display:none; }
.fl-category { display:flex; flex-direction:column; align-items:center; gap:9px; flex:0 0 100px; min-width:0; padding:0; color:var(--fl-ink); font-size:14px; line-height:1.4; }
.fl-category-frame { flex:none; box-sizing:border-box; padding:4px; border:1px solid #e1e5df; border-radius:17px; width:100px; height:100px; background:#fff; transition:border-color var(--fl-motion),background-color var(--fl-motion); }
.fl-preset-photo { display:block; width:100%; height:100%; object-fit:cover; border-radius:12px; filter:saturate(.58) contrast(.78) brightness(1.14); }
.fl-preset-label { display:block; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.fl-preset-skeleton-photo { display:block; width:100%; height:100%; border-radius:12px; background:#e8ebe7; }
.fl-preset-skeleton-label { display:block; flex:none; width:72%; height:10px; margin:5px 0; border-radius:5px; background:#e8ebe7; }
.fl-category[aria-pressed=true] { font-weight:500; }
.fl-category[aria-pressed=true] .fl-category-frame { border-color:var(--fl-brand); }
.fl-category:hover .fl-category-frame { border-color:#a8c69a; background:#f7faf5; }
.fl-category[aria-pressed=true]:hover .fl-category-frame { border-color:var(--fl-brand); }

/* Full catalogs use the same filter controls and panels as city landings.
   Existing inputs and URL handlers remain inside the panel. */
#filter { display:block; height:auto; border:0; background:transparent; }
#filter .filter_block { display:block; width:100%; height:auto; border:0; background:transparent; }
#filter .filter_block .filter_type.fl-filter-bar { display:flex; flex-wrap:wrap; align-items:center; overflow:visible; gap:10px; width:100%; margin:12px 0 18px; }
#filter .filter_block_type.fl-filter { position:relative; order:1; }
#filter .filter_block_type.sf-sort-control { order:2; margin-left:0; }
#filter .filter_block_type.sf-filter-reset-control { order:3; }
#filter .filter_block_type .filter_block_type_click.fl-filter-trigger { display:flex; align-items:center; justify-content:center; gap:9px; width:auto; height:44px; min-height:44px; padding:0 15px; border:1px solid var(--fl-border); border-radius:var(--fl-control-radius); background:#fff; box-shadow:none; color:var(--fl-ink); font:inherit; font-size:15px; white-space:nowrap; cursor:pointer; }
#filter .filter_block_type .filter_block_type_click.fl-filter-trigger > span { height:auto; padding:0; color:inherit; font:inherit; line-height:1.3; }
#filter .filter_block_type .filter_block_type_click.fl-filter-trigger > .icon { flex:none; width:15px; height:15px; color:#888; }
#filter .filter_block_type .filter_block_type_click.fl-filter-trigger:hover { border-color:#b9b9b9; background:#fff; }
#filter .filter_block_type .filter_block_type_click.fl-filter-trigger.active { border-color:transparent; background:#f5f5f5; color:var(--fl-ink); }
#filter .filter_block .filter_type .filter_block_type_click.fl-filter-trigger.active span { color:inherit; }
#filter .filter_block .filter_type .filter_block_type .block_list_button_clear_all.fl-filter-reset { display:inline-flex; align-items:center; width:auto; height:44px; padding:0 4px; border:0; border-radius:0; background:transparent; color:var(--sf-shell-green,#67b346); font:inherit; font-size:14px; text-decoration:underline; text-underline-offset:3px; }
#filter .filter_block .filter_type .filter_block_type .block_list_button_clear_all.fl-filter-reset:hover { color:var(--sf-shell-green,#67b346); background:transparent; }
#filter .filter_block_type .filter_block_list.fl-filter-panel { position:absolute; top:calc(100% + 8px); left:0; z-index:30; box-sizing:border-box; width:min(300px,calc(100vw - 32px)); min-width:0; max-width:none; margin:0; padding:16px; overflow:hidden; border:1px solid var(--fl-border); border-radius:16px; background:#fff; box-shadow:none; animation:none; color:var(--fl-ink); }
#filter .filter_block_list .modal_block_list { width:100%; }
#filter .filter_block_list .fl-filter-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
#filter .filter_block_list .fl-filter-title { font-size:16px; font-weight:500; }
#filter .filter_block_list .fl-filter-close { flex:none; display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--fl-ink); cursor:pointer; }
#filter .filter_block_list .fl-filter-close:hover { background:var(--fl-canvas); }
#filter .filter_block_list .fl-filter-close .icon { width:18px; height:18px; }
#filter .filter_block_list .block_list { max-height:252px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
#filter .filter_block_list .block_list .list_item { display:flex; align-items:center; gap:12px; height:auto; min-height:42px; padding:7px 5px; border-radius:6px; font:inherit; font-size:15px; }
#filter .filter_block_list .block_list .list_item:hover { background:var(--fl-canvas); }
#filter .filter_block_list .block_list .list_item a { flex:1; color:var(--fl-ink); font:inherit; font-size:15px; line-height:1.4; text-decoration:none; }
#filter .filter_block .filter_type .filter_block_list .block_list .list_item input.select_item.checkbox,
#filter .filter_block .filter_type .filter_block_list .block_list .list_item input.select_item.radio { flex:none; appearance:none; box-sizing:border-box; width:18px; height:18px; margin:0; border:1.5px solid #aeb9aa; border-radius:4px; background:#fff; cursor:pointer; }
#filter .filter_block .filter_type .filter_block_list .block_list .list_item input.select_item:checked { border-color:var(--sf-shell-green,#67b346); background:var(--sf-shell-green,#67b346) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-9' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px 16px no-repeat; }
#filter .filter_block .filter_type .filter_block_list .block_list .list_item input.select_item:focus-visible { outline:2px solid var(--sf-shell-green,#67b346); outline-offset:2px; }
#filter .filter_block .filter_type .filter_block_list .block_list .list_item input.select_item::after { content:none !important; }
#filter .filter_block .filter_type .filter_block_list .block_list_search { padding:0; margin:0; border-radius:0; background:#fff; }
#filter .filter_block_list .block_list_search .fl-filter-search { margin:0 0 14px; }
#filter .filter_block .filter_type .filter_block_list .block_list_search .fl-filter-search input.filter_search { position:static !important; flex:1 1 auto; width:100%; height:44px; margin:0; padding:0; border:0 !important; border-radius:0; outline:0 !important; background:transparent !important; box-shadow:none; color:var(--fl-ink); font:inherit; font-size:15px; line-height:normal; }
#filter .filter_block .filter_type .filter_block_list .block_list_search .fl-filter-search input.filter_search::placeholder { color:#929992; font:inherit; opacity:1; }
.fl-filter-panel > .filter_more_price_box,
#filter .filter_block .filter_type .filter_block_list .filter_more_price_box { box-sizing:border-box; display:flex; flex:none; gap:10px; width:100%; margin:0 0 14px; padding:0; border-radius:0; background:transparent; }
.fl-filter-panel > .filter_more_price_box input,
#filter .filter_block .filter_type .filter_block_list .filter_more_price_box input { box-sizing:border-box; flex:1 1 0; min-width:0; width:50%; height:46px; margin:0; padding:0 13px; border:1px solid #dfe7dc; border-radius:12px; outline:0; background:#f8faf7; color:var(--fl-ink); font:inherit; font-size:15px; line-height:normal; transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease; }
.fl-filter-panel > .filter_more_price_box input:focus,
#filter .filter_block .filter_type .filter_block_list .filter_more_price_box input:focus { border-color:var(--fl-brand); background:#fff; box-shadow:0 0 0 3px rgb(103 179 70 / 14%); }
.fl-filter-panel > .filter_more_price_box input::placeholder,
#filter .filter_block .filter_type .filter_block_list .filter_more_price_box input::placeholder { color:#929992; font:inherit; opacity:1; }
.fl-filter-panel .filter_more_price_box input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
.fl-filter-panel .filter_more_price_box input::-webkit-inner-spin-button,
.fl-filter-panel .filter_more_price_box input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
#filter .filter_block .filter_type .filter_block_list .block_list_button { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0 0; margin:12px 0 0; border-top:1px solid var(--fl-border); border-radius:0; background:#fff; }
#filter .filter_block .filter_type .filter_block_list .block_list_button input.filter_view { order:2; flex:0 0 auto; min-width:110px; height:44px; margin-left:auto; padding:0 16px; border:1px solid var(--fl-brand); border-radius:var(--fl-control-radius); background:var(--fl-brand); color:#fff; font:inherit; font-size:15px; cursor:pointer; }
#filter .filter_block .filter_type .filter_block_list .block_list_button input.filter_view:hover { background:var(--sf-shell-green,#67b346); color:#fff; }
#filter .filter_block .filter_type .filter_block_list .block_list_button .block_list_button_clear { order:1; padding:0; border:0; border-radius:0; background:transparent; color:var(--fl-muted); font:inherit; font-size:14px; cursor:pointer; }
#filter .filter_block .filter_type .filter_block_list .block_list_button .block_list_button_clear:hover { background:transparent; color:var(--fl-ink); }
#filter .filter_block_type .filter_block_all { display:none; }
.fl-filter-control { position:relative; display:inline-flex; align-items:center; }
.fl-filter-control:has(.fl-filter[open]) { z-index:3; }
.fl-filter-control .fl-filter-trigger { border-color:var(--fl-border); background:#fff; }
.fl-filter-control .fl-filter[open] > .fl-filter-trigger { border-color:var(--fl-border); }
.fl-filter-control .fl-filter-trigger:hover { border-color:#c9d8c3; background:#fff; }
.fl-filter-control .fl-filter-trigger.has-selection,
.fl-filter-control .fl-filter-trigger.has-selection:hover { padding-right:42px; border-color:#474646; background:#474646; color:#fff; }
.fl-filter-control .fl-filter[open] > .fl-filter-trigger.has-selection { border-color:#474646; }
.fl-filter-control .fl-filter-trigger.has-selection > .icon { display:none; }
.fl-filter-selected-count { font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; color:inherit; }
.fl-filter-control .fl-filter-trigger.has-selection .fl-filter-selected-count { color:rgb(255 255 255 / 68%); }
.fl-filter-selected-count[hidden], .fl-filter-clear[hidden], .fl-filter-status[hidden] { display:none !important; }
.fl-filter-control > .fl-filter-clear { position:absolute; z-index:2; top:7px; right:7px; bottom:auto; display:grid; place-items:center; box-sizing:border-box; width:30px; height:30px; min-height:0; margin:0; padding:0; transform:none; border:0; border-radius:8px; background:transparent; color:#fff; line-height:1; cursor:pointer; }
.fl-filter-control > .fl-filter-clear:hover { background:rgb(255 255 255 / 15%); }
.fl-filter-control > .fl-filter-clear:focus-visible { outline:2px solid #fff; outline-offset:-3px; }
.fl-filter-control > .fl-filter-clear .icon { width:16px; height:16px; }
#filter .filter_block_type.fl-filter-control { position:relative; display:inline-flex; }
#filter .filter_block .filter_type .filter_block_type.fl-filter-control .filter_block_type_click.fl-filter-trigger { border-color:var(--fl-border); background:#fff; color:var(--fl-ink); }
#filter .filter_block .filter_type .filter_block_type.fl-filter-control .filter_block_type_click.fl-filter-trigger:hover { border-color:#c9d8c3; background:#fff; }
#filter .filter_block .filter_type .filter_block_type.fl-filter-control .filter_block_type_click.fl-filter-trigger.has-selection,
#filter .filter_block .filter_type .filter_block_type.fl-filter-control .filter_block_type_click.fl-filter-trigger.has-selection:hover { padding-right:42px; border-color:#474646; background:#474646; color:#fff; }
#filter .filter_block .filter_type .filter_block_type.fl-filter-control .filter_block_type_click.fl-filter-trigger.has-selection .fl-filter-trigger-label { color:#fff; }
#filter .filter_block .filter_type .filter_block_type.fl-filter-control .filter_block_type_click.fl-filter-trigger.has-selection .fl-filter-selected-count { color:rgb(255 255 255 / 68%); font-size:12px; font-weight:700; line-height:1; }
#filter .filter_block .filter_type .filter_block_type.fl-filter-control .filter_block_type_click.fl-filter-trigger.has-selection > .icon { display:none; }
.fl-filter-status { display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; min-height:36px; margin:0 0 12px; font-size:14px; }
.fl-filter-status .fl-filter-reset { display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:0; border:0; background:transparent; color:var(--fl-ink); font:inherit; font-weight:500; text-decoration:none; cursor:pointer; }
.fl-filter-status .fl-filter-reset .icon { flex:none; width:15px; height:15px; color:#888; }
.fl-filter-status .fl-filter-reset:hover { color:var(--sf-shell-green,#67b346); text-decoration:none; }
.fl-filter-status .fl-filter-reset:hover .icon { color:inherit; }
.fl-filter-status .fl-filter-reset:focus-visible { outline:2px solid var(--fl-brand); outline-offset:3px; border-radius:3px; }
#filter .fl-filter-status .sf-sort-control { position:relative; order:0; margin:0; }
#filter .fl-filter-status .fl-filter-reset { order:1; }
#filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger { display:inline-flex; gap:7px; min-height:36px; height:36px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--fl-ink); font:inherit; font-size:14px; font-weight:500; }
#filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger:hover { border:0; background:transparent; color:var(--sf-shell-green,#67b346); }
#filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger .fl-filter-trigger-label { color:inherit; text-decoration:none; }
#filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger .sf-sort-prefix { color:var(--fl-muted); font-weight:400; }
#filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger > .icon:first-child { width:18px; height:18px; color:var(--fl-brand); }
#filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger > .icon:last-child { width:14px; height:14px; color:var(--fl-muted); }
#filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger:focus-visible { outline:2px solid var(--fl-brand); outline-offset:3px; border-radius:3px; }
#filter .fl-filter-status .sf-sort-control .fl-filter-trigger > span { height:auto; color:inherit; font:inherit; line-height:1.3; }
#filter .fl-filter-status .sf-sort-control .fl-filter-panel { position:absolute; top:calc(100% + 8px); left:0; z-index:30; box-sizing:border-box; width:min(300px,calc(100vw - 32px)); min-width:0; padding:16px; border:1px solid var(--fl-border); border-radius:16px; background:#fff; }
#filter .fl-filter-status .sf-sort-control .fl-filter-panel .block_list { max-height:252px; padding:0; margin:0; overflow-y:auto; }
#filter .fl-filter-status .sf-sort-control .fl-filter-panel-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
#filter .fl-filter-status .sf-sort-control .fl-filter-close { display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; }
#filter .fl-filter-status .sf-sort-control .fl-filter-close .icon { width:18px; height:18px; }
#filter .fl-filter-status .sf-sort-control .list_item { display:flex; align-items:stretch; min-height:0; padding:0; border-radius:6px; font-size:15px; }
#filter .fl-filter-status .sf-sort-control .list_item a { display:flex; flex:1; flex-direction:row; align-items:center; gap:10px; box-sizing:border-box; width:100%; min-height:56px; padding:7px 5px; border-radius:inherit; color:var(--fl-ink); font:inherit; text-decoration:none; }
#filter .fl-filter-status .sf-sort-control .list_item a .icon { flex:none; width:17px; height:17px; color:var(--fl-muted); }
#filter .fl-filter-status .sf-sort-control .list_item a:has(.active) .icon,
#filter .fl-filter-status .sf-sort-control .list_item a:hover .icon { color:var(--fl-brand); }
#filter .fl-filter-status .sf-sort-control .list_item:hover { background:var(--fl-canvas); }
@media(max-width:540px) {
  #filter .fl-filter-status { gap:8px; }
  #filter .fl-filter-status .sf-sort-prefix { display:none; }
  #filter .fl-filter-status .sf-sort-control .filter_block_type_click.fl-filter-trigger { gap:5px; }
}
@media(max-width:760px) {
  #filter .filter_block .filter_type.fl-filter-bar { gap:8px; margin:0 !important; }
  #filter .filter_block_type .filter_block_type_click.fl-filter-trigger { height:42px; min-height:42px; padding:0 12px; font-size:14px; }
  #filter .filter_block_type.sf-sort-control { margin-left:0; }
  #filter .filter_block_type .filter_block_list.fl-filter-panel { box-sizing:border-box; width:min(300px,calc(100vw - 20px)); padding:16px; border:1px solid var(--fl-border); background:#fff; overflow:hidden; }
  #filter .filter_block .filter_type .filter_block_list .modal_block_list_bg { position:static; inset:auto; z-index:auto; width:100%; overflow:visible; background:transparent; }
  #filter .filter_block .filter_type .filter_block_list .modal_block_list { position:static; inset:auto; z-index:auto; box-sizing:border-box; width:100%; max-width:none; margin:0; padding:0; border-radius:0; background:transparent; animation:none; }
  #filter .filter_block .filter_type .filter_block_list .modal_block_list .block_list { padding:0; margin:0; }
  #filter .filter_block .filter_type .filter_block_list .block_list_search { padding:0; margin:0; border-radius:0; background:#fff; }
  #filter .filter_block .filter_type .filter_block_list .block_list_button { margin:12px 0 0; padding:14px 0 0; border-radius:0; }
}
.sf-preset-collection { padding:0; }
.sf-preset-collection .fl-categories { width:100%; margin:0; justify-content:flex-start; }
.catalog .sf-preset-collection .fl-category { color:var(--fl-ink); text-decoration:none; }
.catalog .sf-preset-collection .fl-category:hover { color:var(--sf-shell-green,#67b346); }

/* City and category catalogues share one rhythm around presets and filters. */
.fl-catalog > .collection_filters,
.catalog .content_padding > :is(.collection_filters, .sf-preset-collection) { margin-bottom:24px; }
.fl-catalog > .collection_filters .fl-categories,
.catalog .content_padding > :is(.collection_filters, .sf-preset-collection) .fl-categories { padding-top:0; padding-bottom:0; }
.collection_filters:not(:has(*)) { display:none; }
.fl-catalog > .fl-filter-bar { margin-bottom:28px; }
.catalog .content_padding > .content_filter #filter .filter_block .filter_type.fl-filter-bar { margin:0; }
.catalog .content_padding > .content_filter .fl-filter-status { margin:8px 0 0; }
.catalog .content_padding > :is(.catalog_block_products, .sf-catalog-results) .catalog_grid { margin-top:28px; }
@media(max-width:760px) {
  .fl-catalog > .collection_filters,
  .catalog .content_padding > :is(.collection_filters, .sf-preset-collection) { margin-bottom:20px; }
  .fl-catalog > .fl-filter-bar { margin-bottom:24px; }
  .catalog .content_padding > :is(.catalog_block_products, .sf-catalog-results) .catalog_grid { margin-top:24px; }
}
.fl-catalog .fl-filter-bar > .fl-filter-control:nth-last-child(-n+3) .fl-filter-panel { left:auto; right:0; }
@media(max-width:900px) {
  .fl-filter-bar { flex-wrap:wrap; gap:8px; }
  .fl-filter-trigger { padding-inline:11px; }
  .fl-catalog .fl-filter-bar > .fl-filter-control,
  .fl-catalog .fl-filter-bar > .fl-filter-control > .fl-filter { position:static; }
  .fl-catalog .fl-filter-bar > .fl-filter-control .fl-filter-panel { left:0; right:auto; }
  .fl-catalog .fl-filter-bar > .fl-filter-control:nth-last-child(-n+3) .fl-filter-panel { left:auto; right:0; }
}
@media(max-width:760px) {
  .fl-filter-trigger { min-height:42px; height:42px; padding:0 12px; font-size:14px; }
  .fl-categories { justify-content:flex-start; gap:14px; padding:20px 0 22px; }
  .fl-category { flex-basis:90px; gap:8px; }
  .fl-category-frame { width:90px; height:90px; }
  .fl-preset-label { font-size:12px; line-height:1.25; text-align:center; }
}
@media(max-width:540px) {
  .fl-categories { gap:8px; }
  .fl-category { flex-basis:82px; }
  .fl-category-frame { width:82px; height:82px; }
}
@media(max-width:430px) {
  .fl-category { flex-basis:76px; }
  .fl-category-frame { width:76px; height:76px; }
}

/* Filter controls form one scrollable rail on every catalogue page. Panels use
   viewport positioning so the rail never cuts off an open filter. */
.fl-filter-bar,
#filter .filter_block .filter_type.fl-filter-bar {
  box-sizing:border-box;
  flex-wrap:nowrap;
  min-width:0;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:8px;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:#c8cfca transparent;
}
.fl-filter-bar > .fl-filter-control,
#filter .filter_block .filter_type.fl-filter-bar > .fl-filter-control { flex:none; }
.fl-filter-bar:has(.fl-filter[open]),
#filter .fl-filter-bar:has(.fl-filter-panel:not(.hide)) { z-index:1000; }
.fl-filter-control .fl-filter-panel,
#filter .filter_block_type .filter_block_list.fl-filter-panel {
  position:fixed;
  top:var(--fl-panel-screen-top,72px);
  left:var(--fl-panel-screen-left,16px) !important;
  right:auto !important;
  z-index:1001;
  display:flex;
  flex-direction:column;
  max-height:min(560px,calc(100dvh - 24px));
  overflow-y:auto;
}
.fl-filter-control .fl-filter-panel.hide,
#filter .filter_block_type .filter_block_list.fl-filter-panel.hide { display:none; }
.fl-filter-panel > .fl-filter-panel-heading,
.fl-filter-panel > .fl-filter-search,
.fl-filter-panel > .fl-filter-actions { flex:none; }
.fl-filter-panel > .fl-filter-options { flex:0 1 auto; min-height:0; }
.fl-filter-panel [hidden] { display:none !important; }
.fl-filter-panel .filter_mode_switch { flex:none; padding:0 0 14px; }
.fl-filter-panel .filter_mode_switch_label { margin-bottom:7px; color:var(--fl-muted); font-size:14px; line-height:1.4; }
.fl-filter-panel .filter_mode_switch_buttons { display:flex; overflow:hidden; border:1px solid #dfe7dc; border-radius:9px; }
.fl-filter-panel .filter_mode_btn { flex:1; min-width:0; padding:9px 6px; border:0; background:#fff; color:var(--fl-ink); font:inherit; font-size:14px; text-align:center; cursor:pointer; }
.fl-filter-panel .filter_mode_btn + .filter_mode_btn { border-left:1px solid #dfe7dc; }
.fl-filter-panel .filter_mode_btn.active { background:#f0f7eb; color:var(--sf-shell-green,#67b346); }
.fl-filter-option[hidden] { display:none !important; }

@media(max-width:760px) {
  body.sf-filter-modal-open { overflow:hidden; }
  /* A scroll-container scrollbar can paint over its fixed child panel.
     Hide only the rail scrollbar while the mobile modal is open; keep its position. */
  body.sf-filter-modal-open .fl-filter-bar { scrollbar-width:none; }
  body.sf-filter-modal-open .fl-filter-bar::-webkit-scrollbar { display:none; width:0; height:0; }
  .fl-filter-control .fl-filter-panel,
  #filter .filter_block_type .filter_block_list.fl-filter-panel {
    position:fixed;
    inset:0;
    left:0 !important;
    right:0 !important;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    width:100vw;
    max-width:none;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    padding:18px 16px max(16px,env(safe-area-inset-bottom));
    overflow:hidden;
    border:0;
    border-radius:0;
    background:#fff;
  }
  #filter .filter_block_type .filter_block_list.fl-filter-panel.hide { display:none; }
  .fl-filter-control .fl-filter-panel > .fl-filter-options,
  #filter .filter_block .filter_type .filter_block_list .modal_block_list .block_list { flex:1 1 0; height:auto; max-height:none; min-height:0; overflow-y:auto; }
  #filter .fl-filter-status .sf-sort-control .fl-filter-panel .block_list { flex:1 1 auto; max-height:none; min-height:0; }
  .fl-filter-panel .fl-filter-actions,
  #filter .filter_block .filter_type .filter_block_list .block_list_button { flex:none; margin-top:auto; }
  #filter .filter_block .filter_type .filter_block_list .modal_block_list_bg {
    position:static;
    display:flex;
    flex:1 1 auto;
    width:100%;
    min-height:0;
    overflow:visible;
    background:none;
  }
  #filter .filter_block .filter_type .filter_block_list .modal_block_list {
    position:static;
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    width:100%;
    max-width:none;
    min-height:0;
    margin:0;
    padding:0;
    border-radius:0;
    background:none;
  }
  #filter .filter_block .filter_type .filter_block_list .modal_block_list > :not(.block_list),
  .fl-filter-panel > :not(.fl-filter-options) { flex-shrink:0; }
  .fl-filter-control > .fl-filter-clear { top:6px; }
}
.catalog .catalog_grid > .city-promo { grid-column: 1 / -1; width: 100%; margin: 4px 0; }
.page_content_group--compact .page_content_text { display:block; height:auto; min-height:0; padding:16px 20px; }
.page_content_group--compact .page_content_text .text { height:auto; margin:0; overflow:visible; }
.page_content_group--compact .page_content_text .text p { margin:0; }
@media (max-width:700px) { .page_content_group--compact .page_content_text { padding:14px 16px; } }
