/* 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-surface: var(--color-surface, #fff);
  --catalog-radius: var(--radius, 6px);
}

.catalog-page,
.catalog-sidebar { color: var(--catalog-text); }
.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(180px,.7fr) 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) 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__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; }
.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 { min-width:150px; font-family:"Open Sans",Arial,sans-serif; }
.catalog-map-popup b { display:block; margin-bottom:3px; color:var(--catalog-navy); }
.catalog-map-popup span { color:#ff9e00; font-weight:700; }
.catalog-map-marker { display:flex; width:30px; height:39px; align-items:center; justify-content:center; border:3px solid #fff; border-radius:50% 50% 50% 0; background:#1f6ed4; box-shadow:0 2px 6px rgba(0,0,0,.3); color:#fff; font-size:12px; font-weight:800; transform:rotate(-45deg); }
.catalog-map-marker > span { transform:rotate(45deg); }
.catalog-map-marker.is-vip { background:var(--catalog-accent); }

.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 i { font-size:29px; }
.catalog-amenity span { font-size:12px; font-weight:700; }
.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-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; }

@media (max-width:1199px) {
  .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-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)); }
}
@media (max-width:767px) {
  .catalog-page__heading { align-items:flex-start; flex-direction:column; }
  .catalog-search { 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)); }
}
