/* Business Directory. Loaded after style/custom-red.css and style/modern.css. */
:root {
  --catalog-navy: var(--color-navy, #3d566e);
  --catalog-accent: var(--color-accent, #e74c3c);
  --catalog-text: var(--color-text, #33475b);
  --catalog-muted: var(--color-muted, #6b7785);
  --catalog-line: var(--color-line, #e8edf1);
  --catalog-border: var(--catalog-line);
  --catalog-surface: var(--color-surface, #fff);
  --catalog-radius: var(--radius, 6px);
}

.catalog-page,
.catalog-sidebar { color: var(--catalog-text); }
@media (min-width:992px) {
  html.catalog-wide .site-main,
  body.catalog-wide .site-main { width:100% !important; }
  html.catalog-wide .right-sec,
  body.catalog-wide .right-sec { display:none !important; }
}
.catalog-page *, .catalog-sidebar * { box-sizing: border-box; }
.catalog-page a, .catalog-sidebar a { color: #1c5dce; }
.catalog-page a:hover, .catalog-sidebar a:hover { color: var(--catalog-accent); text-decoration: none; }
.catalog-page h1, .catalog-page h2, .catalog-page h3, .catalog-sidebar h2 { color: var(--catalog-navy); font-family: "Open Sans", Arial, sans-serif; font-weight: 800; }
.catalog-page h1 { margin: 0; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.2; text-transform: uppercase; }
.catalog-page h2, .catalog-sidebar h2 { margin: 0; font-size: 18px; line-height: 1.3; text-transform: uppercase; }
.catalog-page__heading, .catalog-section__head { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.catalog-page__heading { margin-bottom: 14px; }
.catalog-page__hint { margin: 10px 0 24px; color: var(--catalog-muted); }
.catalog-button { display:inline-flex; min-height:42px; align-items:center; justify-content:center; gap:7px; padding:9px 17px; border:1px solid #d9e0e6; border-radius:4px; background:#fff; color:var(--catalog-navy) !important; font-weight:700; line-height:1.2; text-decoration:none; white-space:nowrap; }
.catalog-button:hover, .catalog-button:focus { border-color:var(--catalog-accent); background:#fff7f5; }
.catalog-button--primary { border-color:var(--catalog-accent); background:var(--catalog-accent); color:#fff !important; }
.catalog-button--primary:hover, .catalog-button--primary:focus { background:#d94133; color:#fff !important; }

.catalog-search { display:grid; grid-template-columns:minmax(0,1fr) minmax(160px,.55fr) minmax(180px,.65fr) 130px; gap:9px; padding:0; }
.catalog-search input, .catalog-search select { min-width:0; height:44px; padding:0 14px; border:1px solid #dce2e7; border-radius:4px; background:#fff; color:var(--catalog-text); }
.catalog-search input:focus, .catalog-search select:focus { border-color:var(--catalog-accent); outline:2px solid rgba(231,76,60,.15); }
.catalog-search button { min-height:44px; padding:0 18px; border:0; border-radius:3px; background:var(--catalog-accent); color:#fff; font-weight:800; text-transform:uppercase; }
.catalog-search button:hover { background:#d94133; }
.catalog-search--category { margin-top:22px; grid-template-columns:minmax(0,1fr) minmax(180px,.45fr) 130px; }

.catalog-section { margin-top:28px; }
.catalog-section__head { min-height:36px; margin-bottom:12px; border-bottom:1px solid var(--catalog-line); }
.catalog-section__head h2, .catalog-side-block > h2 { position:relative; padding:8px 12px; background:var(--catalog-navy); color:#ffff99; font-size:16px; }
.catalog-section__head h2::before, .catalog-side-block > h2::before { position:absolute; top:0; bottom:0; left:-5px; width:3px; background:var(--catalog-accent); content:""; }
.catalog-section__more { font-size:13px; font-weight:700; white-space:nowrap; }
.catalog-section__more span { font-size:22px; vertical-align:-1px; }

.catalog-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.catalog-category { display:flex; min-height:118px; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:14px 10px; border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); background:#fff; color:var(--catalog-navy) !important; font-size:14px; font-weight:700; text-align:center; text-decoration:none; transition:border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.catalog-category:hover { border-color:var(--catalog-accent); box-shadow:0 5px 16px rgba(61,86,110,.11); transform:translateY(-2px); }
.catalog-category i { color:var(--catalog-navy); font-size:35px; line-height:1; }
.catalog-category b { color:var(--catalog-accent); font-size:14px; }
.catalog-category-grid--types { grid-template-columns:repeat(5,minmax(0,1fr)); }

.catalog-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.catalog-card-grid--vip { grid-template-columns:repeat(4,minmax(0,1fr)); }
.catalog-card { position:relative; overflow:hidden; border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); background:#fff; }
.catalog-card.is-vip { border-color:#e3b340; box-shadow:0 6px 22px rgba(197,145,24,.18); }
.catalog-card__image { display:block; overflow:hidden; aspect-ratio:1.5/1; background:#edf1f4; }
.catalog-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .2s ease; }
.catalog-card:hover .catalog-card__image img { transform:scale(1.035); }
.catalog-card__body { padding:11px; }
.catalog-card h3 { min-height:40px; margin:0 0 4px; font-size:15px; line-height:1.35; }
.catalog-card h3 a { color:var(--catalog-navy); }
.catalog-card__vip, .catalog-profile__vip { position:absolute; z-index:2; top:8px; left:8px; padding:3px 7px; border-radius:3px; background:var(--catalog-accent); color:#fff; font-size:12px; font-weight:800; }
.catalog-card__rating, .catalog-profile__rating { color:#ff9e00; font-weight:800; }
.catalog-card__rating small { color:var(--catalog-muted); font-weight:400; }
.catalog-card__open { margin-top:7px; color:#13954e; font-size:12px; font-weight:700; }
.catalog-card__address { overflow:hidden; margin-top:5px; color:var(--catalog-muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.business-full__video { position:relative; overflow:hidden; padding-top:56.25%; border-radius:var(--catalog-radius); background:#101820; }
.business-full__video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.catalog-empty { margin:0; padding:18px; border:1px dashed #d9e0e6; border-radius:var(--catalog-radius); color:var(--catalog-muted); text-align:center; }

.catalog-map { overflow:hidden; min-height:var(--catalog-map-height); border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); background:#ecf0f2; }
.catalog-map__canvas { width:100%; height:var(--catalog-map-height); }
.catalog-map .leaflet-control-attribution { font-size:10px; }
.catalog-map .leaflet-popup-content-wrapper { border-radius:5px; box-shadow:0 4px 20px rgba(27,46,65,.22); }
.catalog-map-popup { display:grid; min-width:220px; grid-template-columns:64px minmax(0,1fr); gap:10px; font-family:"Open Sans",Arial,sans-serif; }
.catalog-map-popup > img { width:64px; height:64px; border-radius:4px; object-fit:cover; }
.catalog-map-popup > div:first-child:last-child { grid-column:1/-1; }
.catalog-map-popup b { display:block; margin-bottom:3px; color:var(--catalog-navy); }
.catalog-map-popup small { display:block; margin-bottom:3px; color:var(--catalog-muted); }
.catalog-map-popup span { display:block; color:#ff9e00; font-weight:700; }
.catalog-map-popup p { margin:4px 0 0; color:var(--catalog-muted); font-size:12px; }
.catalog-map-popup .catalog-map-popup__hours { color:#15964f; font-weight:700; }
.catalog-map-popup a { display:inline-block; margin-top:6px; font-weight:700; }
.catalog-map-icon { background:transparent!important; border:0!important; }
.catalog-map-marker { display:flex; width:40px; height:40px; align-items:center; justify-content:center; border:3px solid #fff; border-radius:4px; background:var(--marker-color,#1f6ed4)!important; box-shadow:0 3px 9px rgba(0,0,0,.35); color:#fff; font-size:17px; font-weight:800; transform:rotate(45deg); }
.catalog-map-marker > i,.catalog-map-marker > strong { transform:rotate(-45deg); }
.catalog-map-marker > strong { font-size:10px; letter-spacing:-.03em; }
.catalog-map-marker > img { width:30px; height:30px; border:2px solid #fff; border-radius:50%; object-fit:cover; transform:rotate(-45deg); }
.catalog-map-marker.is-vip { --marker-color:var(--catalog-accent)!important; }

.catalog-native-head { margin:0 0 22px; }
.catalog-native-head__title { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 14px; }
.catalog-native-head__title h1 { margin:0; color:var(--catalog-navy); font-size:26px; line-height:1.2; }
.catalog-native-head__title p { margin:5px 0 0; color:var(--catalog-muted); }
.catalog-native-head__eyebrow,.business-full__eyebrow { display:block; margin-bottom:4px; color:var(--catalog-accent); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.catalog-search--hero { grid-template-columns:minmax(0,1fr) minmax(190px,260px) 130px; margin-bottom:14px; padding:12px; border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); background:#f7f9fa; }
.catalog-home-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.catalog-category-tile { display:flex; min-height:104px; flex-direction:column; align-items:center; justify-content:center; gap:8px; border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); background:#fff; color:var(--catalog-navy)!important; text-align:center; }
.catalog-category-tile:hover { border-color:var(--catalog-accent); color:var(--catalog-accent)!important; }
.catalog-category-tile i { font-size:30px; line-height:1; }
.catalog-category-tile strong { font-size:13px; line-height:1.3; }
.catalog-category-tile span { color:var(--catalog-accent); font-size:12px; font-weight:800; }
.catalog-native-filter { display:grid; grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto; gap:10px; margin-top:12px; }
.catalog-native-filter input,.catalog-native-filter select { min-height:42px; border:1px solid var(--catalog-border); background:#fff; padding:9px 12px; color:var(--catalog-text); }
.catalog-category-tile.is-active { border-color:var(--catalog-accent); box-shadow:inset 0 0 0 1px var(--catalog-accent); }
.business-full__contacts { display:flex; flex-wrap:wrap; gap:10px; margin:14px 0; }
.business-full__contacts a { display:inline-flex; min-height:40px; align-items:center; justify-content:center; border:1px solid var(--catalog-border); padding:8px 18px; color:var(--catalog-navy); font-weight:700; }
.business-full__contacts .business-full__primary { border-color:var(--catalog-accent); background:var(--catalog-accent); color:#fff; }
.business-full__amenity { display:inline-flex; align-items:center; gap:6px; margin:0 8px 8px 0; border:1px solid var(--catalog-border); padding:8px 10px; background:#fff; }
.business-full { color:var(--catalog-text); }
.business-full__hero { display:grid; grid-template-columns:220px minmax(0,1fr); gap:22px; margin-bottom:16px; }
.business-full__logo { overflow:hidden; min-height:160px; border:1px solid var(--catalog-border); background:#edf1f4; }
.business-full__logo img { width:100%; height:100%; object-fit:cover; }
.business-full__logo-placeholder { display:grid; min-height:160px; place-items:center; color:#90a0ad; font-size:62px; }
.business-full__intro h1 { margin:4px 0 7px; color:var(--catalog-navy); font-size:28px; }
.business-full__rating { color:#f4a900; }
.business-full__rating a { color:#1762c5; }
.business-full__open { color:#15964f; font-weight:700; }
.business-full__nav { display:flex; overflow:auto; margin:0 0 14px; background:var(--catalog-navy); }
.business-full__nav a { flex:1 0 auto; border-bottom:3px solid transparent; padding:11px 18px; color:#fff; font-weight:700; text-align:center; }
.business-full__nav a:hover { border-bottom-color:#ffff80; color:#fff; }
.business-full__layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(270px,1fr); gap:14px; align-items:start; }
.business-full__layout main,.business-full__layout aside { display:grid; gap:14px; }
.business-full__panel { border:1px solid var(--catalog-border); background:#fff; padding:16px; }
.business-full__panel h2 { margin:0 0 12px; color:var(--catalog-navy); font-size:18px; }
.business-full__story { line-height:1.65; }
.business-full__service-summary { margin-top:14px; padding:13px 15px; border-left:4px solid var(--catalog-accent); background:#fff7f5; line-height:1.55; }
.business-full__gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.business-full__gallery a { display:block; overflow:hidden; aspect-ratio:1.35/1; background:#edf1f4; }
.business-full__gallery img { width:100%; height:100%; object-fit:cover; }
.business-gallery-slider { position:relative; }
.business-gallery-slider .business-full__gallery { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.business-gallery-slider .business-full__gallery::-webkit-scrollbar { display:none; }
.business-gallery-slider .business-full__gallery a { min-width:min(72%,620px); scroll-snap-align:start; }
.business-gallery-slider__prev,.business-gallery-slider__next { position:absolute; z-index:2; top:50%; width:44px; height:44px; border:0; border-radius:50%; background:rgba(34,56,77,.82); color:#fff; font-size:30px; line-height:1; transform:translateY(-50%); cursor:pointer; }
.business-gallery-slider__prev { left:10px; }.business-gallery-slider__next { right:10px; }
.catalog-card-row,.catalog-offer-row { margin-right:-8px; margin-left:-8px; }
.catalog-card-column,.catalog-offer-column { padding:0 8px 16px; }
.catalog-card-column .catalog-card,.catalog-offer-column article { height:100%; }
.business-full__details { display:grid; gap:10px; }
.business-full__details p { display:grid; grid-template-columns:24px minmax(0,1fr); gap:7px; align-items:start; margin:0; overflow-wrap:anywhere; }
.business-full__details i { color:var(--catalog-accent); font-size:19px; text-align:center; }
.business-full__qr { display:grid; grid-template-columns:50px minmax(0,1fr); gap:12px; align-items:start; }
.business-full__qr > i { color:var(--catalog-navy); font-size:44px; }
.business-full__qr h2 { margin-top:2px; }
.business-full__offers { display:grid; gap:10px; }
.catalog-native-card__summary { margin:8px 0 0; color:var(--catalog-muted); font-size:12px; line-height:1.45; }
.catalog-service-card,.catalog-sale-card { position:relative; display:grid; grid-template-columns:150px minmax(0,1fr); gap:14px; border:1px solid var(--catalog-border); background:#fff; padding:10px; }
.catalog-service-card img,.catalog-sale-card img { width:150px; height:112px; object-fit:cover; }
.catalog-service-card h3,.catalog-sale-card h3 { margin:0 0 6px; font-size:16px; }
.catalog-service-card strong { color:var(--catalog-accent); }
.catalog-service-card span { display:block; color:var(--catalog-muted); font-size:12px; }
.catalog-sale-card__badge { position:absolute; top:7px; left:7px; border-radius:50%; background:var(--catalog-accent); padding:10px 6px; color:#fff; }
.catalog-sale-card__timer { color:#7b4b00; font-size:12px; }
.business-offer-full { border:1px solid var(--catalog-border); background:#fff; padding:18px; line-height:1.6; }
.business-offer-full > header { position:relative; margin:16px 0; padding:20px; border-radius:var(--catalog-radius); background:#f4f7f9; }
.business-offer-full h1 { margin:2px 0 8px; color:var(--catalog-navy); }
.business-offer-full__back { font-weight:700; }
.business-offer-full__image { width:100%; max-height:430px; object-fit:cover; }
.business-offer-full__story { margin:18px 0; }
.business-offer-full__price { display:flex; align-items:baseline; gap:7px; color:var(--catalog-accent); }
.business-offer-full__price strong { font-size:24px; }
.business-offer-full__terms { margin:18px 0; padding:16px; border-left:4px solid var(--catalog-accent); background:#fff7f5; }
.business-offer-full__terms h2 { margin:0 0 7px; color:var(--catalog-navy); font-size:18px; }
.business-offer-full__actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
.business-offer-full__discount { color:var(--catalog-accent); font-size:24px; font-weight:800; }

.catalog-breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; color:#5878ae; font-size:14px; }
.catalog-breadcrumbs span { color:#97a4b2; }
.catalog-category-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:20px; align-items:start; }
.catalog-category-page__map-head { position:relative; z-index:2; display:flex; width:max-content; max-width:calc(100% - 22px); align-items:center; gap:12px; margin:0 0 -50px 13px; padding:11px 15px; border-radius:3px; background:rgba(255,255,255,.94); box-shadow:0 1px 6px rgba(0,0,0,.12); }
.catalog-category-page__map-head h1 { font-size:16px; }
.catalog-category-page__map-head span { color:#718096; font-size:13px; white-space:nowrap; }
.catalog-section--amenities { margin-top:22px; }
.catalog-amenity-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.catalog-amenity { display:flex; min-height:94px; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:9px 4px; border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); color:var(--catalog-navy); cursor:pointer; text-align:center; }
.catalog-amenity:hover { border-color:var(--catalog-accent); }
.catalog-amenity input { position:absolute; opacity:0; }
.catalog-amenity input:checked + i { color:var(--catalog-accent); }
.catalog-amenity:has(input:checked) { border-color:var(--catalog-accent); background:#fff8f6; box-shadow:0 0 0 1px var(--catalog-accent); }
.catalog-amenity i { font-size:29px; }
.catalog-amenity span { font-size:12px; font-weight:700; }
.catalog-filter-submit { margin-top:12px; }
.catalog-tabs { display:flex; align-self:end; gap:16px; }
.catalog-tabs a { padding:8px 0; border-bottom:2px solid transparent; color:var(--catalog-muted); font-size:12px; }
.catalog-tabs a.is-active { border-color:var(--catalog-accent); color:var(--catalog-accent); font-weight:800; }

.catalog-sidebar { display:flex; flex-direction:column; gap:18px; }
.catalog-side-block { overflow:hidden; border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); background:#fff; }
.catalog-side-block > h2 { margin:0; }
.catalog-side-block > :not(h2) { margin-right:12px; margin-left:12px; }
.catalog-side-block > .catalog-empty { margin-top:12px; margin-bottom:12px; }
.catalog-side-cards { display:grid; grid-template-columns:1fr; gap:8px; padding:12px; }
.catalog-side-cards .catalog-card { display:grid; grid-template-columns:80px 1fr; border:0; border-bottom:1px solid var(--catalog-line); border-radius:0; }
.catalog-side-cards .catalog-card:last-child { border-bottom:0; }
.catalog-side-cards .catalog-card__image { align-self:start; aspect-ratio:1; }
.catalog-side-cards .catalog-card__body { padding:0 0 8px 9px; }
.catalog-side-cards .catalog-card h3 { min-height:0; font-size:13px; }
.catalog-side-reviews { padding:12px; }
.catalog-side-block .business-full__offers { padding:12px; }
.catalog-side-block .catalog-service-card,.catalog-side-block .catalog-sale-card { grid-template-columns:70px minmax(0,1fr); border-width:0 0 1px; padding:8px 0; }
.catalog-side-block .catalog-service-card img,.catalog-side-block .catalog-sale-card img { width:70px; height:64px; }

.catalog-profile { display:grid; grid-template-columns:215px minmax(0,1fr); gap:20px; margin-bottom:14px; }
.catalog-profile__image { position:relative; overflow:hidden; border-radius:var(--catalog-radius); aspect-ratio:1.32/1; background:#edf1f4; }
.catalog-profile__image img { width:100%; height:100%; object-fit:cover; }
.catalog-profile__intro { padding-top:4px; }
.catalog-profile__intro > p { margin:4px 0; color:var(--catalog-muted); }
.catalog-profile__rating { margin:8px 0; font-size:16px; }
.catalog-profile__rating a { margin-left:8px; font-size:14px; font-weight:600; }
.catalog-profile__hours { color:#15964f !important; font-weight:700; }
.catalog-profile__actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:13px; }
.catalog-profile-nav { display:flex; overflow:auto; margin-bottom:12px; border-radius:4px; background:var(--catalog-navy); }
.catalog-profile-nav a { flex:1 0 auto; padding:10px 17px; border-bottom:3px solid transparent; color:#fff; font-weight:700; text-align:center; }
.catalog-profile-nav a:hover, .catalog-profile-nav a:focus { border-color:#ffff99; background:rgba(255,255,255,.06); color:#fff; }
.catalog-company-layout { display:grid; grid-template-columns:minmax(0,1fr) 36%; gap:14px; align-items:start; }
.catalog-company-layout__main { display:flex; flex-direction:column; gap:14px; }
.catalog-content-block { padding:17px; border:1px solid var(--catalog-line); border-radius:var(--catalog-radius); background:#fff; }
.catalog-content-block h2 { margin:0 0 13px; font-size:17px; }
.catalog-company-description { color:var(--catalog-text); line-height:1.65; }
.catalog-details { margin:12px; }
.catalog-details dt { margin-top:10px; color:var(--catalog-muted); font-size:12px; font-weight:700; text-transform:uppercase; }
.catalog-details dd { margin:2px 0 0; color:var(--catalog-text); }
.catalog-amenities-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; padding:0; list-style:none; }
.catalog-amenities-list li { display:flex; min-height:72px; flex-direction:column; align-items:center; justify-content:center; gap:6px; border-right:1px solid var(--catalog-line); border-bottom:1px solid var(--catalog-line); text-align:center; font-size:12px; }
.catalog-amenities-list i { color:var(--catalog-navy); font-size:25px; }
.catalog-items__group + .catalog-items__group { margin-top:20px; }
.catalog-items__group h3 { margin:0 0 7px; font-size:16px; }
.catalog-items__list { border-top:1px solid var(--catalog-line); }
.catalog-item { display:grid; grid-template-columns:68px minmax(0,1fr) auto; gap:11px; align-items:center; padding:10px 0; border-bottom:1px solid var(--catalog-line); }
.catalog-item img { width:68px; height:58px; border-radius:3px; object-fit:cover; }
.catalog-item h4 { margin:0 0 3px; color:var(--catalog-navy); font-size:14px; font-weight:800; }
.catalog-item p { display:-webkit-box; overflow:hidden; margin:0; color:var(--catalog-muted); font-size:12px; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.catalog-item small { color:var(--catalog-muted); }
.catalog-item__price { display:flex; min-width:92px; flex-direction:column; align-items:end; color:var(--catalog-accent); white-space:nowrap; }
.catalog-item__price del { color:#98a4af; font-size:12px; }
.catalog-item__unavailable { display:inline-block; margin-top:4px; color:#a86f00; font-size:11px; font-weight:700; }
.catalog-reviews { display:grid; gap:12px; }
.catalog-review { padding-bottom:10px; border-bottom:1px solid var(--catalog-line); }
.catalog-review:last-child { padding-bottom:0; border-bottom:0; }
.catalog-review time { float:right; color:var(--catalog-muted); font-size:12px; }
.catalog-review p { margin:5px 0 0; font-size:13px; }
.catalog-review__reply { margin-top:8px; padding:10px; border-left:3px solid #2f9e68; background:#f3faf6; }
.catalog-review-form { margin-top:18px; padding-top:16px; border-top:1px solid var(--catalog-line); }
.catalog-review-form__row { display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:10px; }
.catalog-review-form input,.catalog-review-form select,.catalog-review-form textarea { width:100%; margin-bottom:10px; padding:10px 12px; border:1px solid #dce2e7; border-radius:4px; background:#fff; }
.catalog-review-form small { display:block; margin-top:8px; color:var(--catalog-muted); }
.catalog-hp { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; opacity:0!important; }
.catalog-notice { margin-bottom:12px; padding:11px 13px; border-left:4px solid #2f9e68; background:#f1faf5; color:#24774f; }
.catalog-notice--error { border-left-color:var(--catalog-accent); background:#fff3f1; color:#a72e24; }
.catalog-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.catalog-gallery__item { display:block; overflow:hidden; aspect-ratio:1.35/1; border-radius:4px; background:#edf1f4; }
.catalog-gallery__item img { width:100%; height:100%; object-fit:cover; }
.catalog-promotion { display:grid; grid-template-columns:90px minmax(0,1fr); gap:10px; margin:12px; padding-bottom:12px; border-bottom:1px solid var(--catalog-line); }
.catalog-promotion:last-child { border-bottom:0; }
.catalog-promotion img { width:90px; height:74px; object-fit:cover; border-radius:4px; }
.catalog-promotion h3 { margin:0 0 4px; font-size:13px; }
.catalog-promotion p { margin:0 0 5px; font-size:12px; line-height:1.45; }
.catalog-promotion small { color:var(--catalog-muted); }

.catalog-home-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:22px; align-items:start; }
.catalog-home-layout > main { min-width:0; }
.catalog-home-sidebar { position:sticky; top:12px; }
.catalog-side-add { display:flex; min-height:82px; align-items:center; gap:13px; padding:15px; border-radius:var(--catalog-radius); background:var(--catalog-accent); color:#fff!important; }
.catalog-side-add i { font-size:34px; }
.catalog-side-add span { display:grid; }
.catalog-side-add small { color:#fff; opacity:.82; }
.catalog-side-actions { display:grid; gap:0; padding:8px 0; }
.catalog-side-actions a { display:block; padding:10px 12px; border-bottom:1px solid var(--catalog-line); color:var(--catalog-navy); font-weight:700; }
.catalog-side-actions a:last-child { border-bottom:0; }
.catalog-side-ad { display:grid; min-height:170px; place-items:center; align-content:center; gap:8px; padding:20px; background:linear-gradient(145deg,#263b50,#43627d); color:#fff; text-align:center; }
.catalog-side-ad span { color:#c5d0da; font-size:11px; text-transform:uppercase; }
.catalog-side-ad b { font-size:22px; }
.catalog-side-ad a { border-bottom:1px solid #fff; color:#fff; }
.catalog-vip-showcase { border-top:4px solid var(--catalog-accent); }
.catalog-offer-index__hero { position:relative; margin-bottom:20px; padding:28px; background:linear-gradient(120deg,var(--catalog-navy),#486783); color:#fff; }
.catalog-offer-index__hero h1 { margin:4px 0 8px; color:#fff; }
.catalog-offer-index__hero p { max-width:720px; }
.catalog-native-offer-card { display:grid; grid-template-columns:58px minmax(0,1fr); gap:12px; margin-bottom:12px; padding:14px; border:1px solid var(--catalog-line); background:#fff; }
.catalog-native-offer-card__icon { display:grid; width:58px; height:58px; place-items:center; background:#eef3f6; color:var(--catalog-navy); font-size:25px; }
.catalog-native-offer-card h3 { margin:0 0 5px; }
.catalog-native-offer-card p { margin:0 0 7px; color:var(--catalog-muted); }
.catalog-native-offer-card__more { font-weight:800; }

.business-showcase { margin-bottom:12px; }
.business-showcase__media { position:relative; overflow:hidden; min-height:430px; border-radius:var(--catalog-radius); background:#263b50; }
.business-showcase__media > img,.business-showcase__media > .business-full__logo-placeholder { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.business-showcase__media > .business-full__logo-placeholder { display:grid; place-items:center; color:#fff; font-size:100px; }
.business-showcase__shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,26,39,.05) 35%,rgba(12,26,39,.88) 100%); }
.business-showcase__intro { position:absolute; z-index:2; right:28px; bottom:26px; left:28px; color:#fff; }
.business-showcase__intro > span { display:inline-block; margin-bottom:7px; padding:5px 10px; background:var(--catalog-accent); font-size:12px; font-weight:800; }
.business-showcase__intro h1 { margin:0 0 6px; color:#fff; font-size:34px; }
.business-showcase__intro .business-full__rating a { color:#fff; }
.business-showcase__vip { position:absolute; z-index:3; top:18px; left:18px; padding:8px 12px; background:#f4b400; color:#24394d; font-weight:900; }
.business-showcase__promo { display:flex; min-height:74px; align-items:center; gap:14px; margin-bottom:14px; padding:13px 18px; background:var(--catalog-accent); color:#fff; }
.business-showcase__promo i { font-size:32px; }
.business-showcase__promo div { display:grid; flex:1; }
.business-showcase__promo span { opacity:.86; }
.business-showcase__promo a { padding:9px 14px; border:1px solid rgba(255,255,255,.75); color:#fff; font-weight:800; }
.business-full__cta .business-full__contacts { display:grid; }
.business-full__cta .business-full__contacts a { width:100%; }
.business-offer-full__qr { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:22px 0; padding:20px; border:2px solid #008c99; border-radius:8px; background:#f1fbfc; }
.business-offer-full__qr strong { display:block; color:#008c99; font-size:42px; }
.business-offer-full__qr img { width:180px; height:180px; object-fit:contain; background:#fff; }
.business-offer-full__notice { padding:12px 15px; border-left:4px solid #e5a42c; background:#fff8e8; color:#604812; }
.business-offer-full__notice i { margin-right:7px; }

@media (max-width:1199px) {
  .catalog-home-layout { grid-template-columns:minmax(0,1fr) 270px; }
  .catalog-category-layout { grid-template-columns:minmax(0,1fr) 270px; }
  .catalog-amenity-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .catalog-card-grid--vip { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:991px) {
  .catalog-home-layout { grid-template-columns:1fr; }
  .catalog-home-sidebar { position:static; }
  .business-full__layout { grid-template-columns:1fr; }
  .catalog-category-layout, .catalog-company-layout { grid-template-columns:1fr; }
  .catalog-sidebar { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
  .catalog-card-grid, .catalog-card-grid--vip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .catalog-home-columns { grid-template-columns:1fr; }
}
@media (max-width:767px) {
  .business-offer-full__qr { align-items:flex-start; flex-direction:column; }
  .business-offer-full__qr img { width:min(100%,260px); height:auto; align-self:center; }
  .business-showcase__media { min-height:330px; }
  .business-showcase__intro { right:18px; bottom:18px; left:18px; }
  .business-showcase__intro h1 { font-size:25px; }
  .business-showcase__promo { align-items:flex-start; flex-wrap:wrap; }
  .business-full__hero { grid-template-columns:110px minmax(0,1fr); gap:12px; }
  .business-full__intro h1 { font-size:22px; }
  .business-full__gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-service-card,.catalog-sale-card { grid-template-columns:96px minmax(0,1fr); }
  .catalog-service-card img,.catalog-sale-card img { width:96px; height:84px; }
  .catalog-native-head__title { align-items:flex-start; flex-direction:column; }
  .catalog-native-filter { grid-template-columns:1fr; }
  .catalog-page__heading { align-items:flex-start; flex-direction:column; }
  .catalog-search, .catalog-search--category, .catalog-search--hero { grid-template-columns:1fr; }
  .catalog-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-review-form__row { grid-template-columns:1fr; }
  .catalog-search button { width:100%; }
  .catalog-category-grid, .catalog-category-grid--types { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-card-grid, .catalog-card-grid--vip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-amenity-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .catalog-sidebar { grid-template-columns:1fr; }
  .catalog-profile { grid-template-columns:120px minmax(0,1fr); gap:12px; }
  .catalog-profile__actions .catalog-button { flex:1 1 auto; }
  .catalog-section__head { align-items:flex-start; flex-direction:column; }
  .catalog-tabs { align-self:stretch; gap:13px; overflow:auto; }
}
@media (max-width:420px) {
  .catalog-page h1 { font-size:21px; }
  .catalog-card-grid, .catalog-card-grid--vip { grid-template-columns:1fr; }
  .catalog-card { display:grid; grid-template-columns:118px minmax(0,1fr); }
  .catalog-card__image { aspect-ratio:auto; min-height:118px; }
  .catalog-card__body { padding:10px; }
  .catalog-card h3 { min-height:0; }
  .catalog-profile { grid-template-columns:1fr; }
  .catalog-profile__image { max-width:240px; }
  .catalog-item { grid-template-columns:54px minmax(0,1fr); }
  .catalog-item img { width:54px; height:48px; }
  .catalog-item__price { grid-column:2; align-items:start; }
  .catalog-amenity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
