/* P2.2: shared catalogue components. Original site.css is immutable. */
.catalog-main { padding: 28px 0 72px; }
.breadcrumbs { color: var(--muted); font-size: 14px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li + li::before { content: '/'; margin-right: 10px; }
.breadcrumbs a:hover { color: var(--text); }
.catalog-heading { max-width: 980px; padding: 36px 0 44px; }
.catalog-heading h1 { margin: 12px 0 20px; font-size: clamp(34px, 4.5vw, 64px); line-height: 1.08; letter-spacing: -1.6px; }
.catalog-heading .lead { max-width: 760px; }
.catalog-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 26px; }
.catalog-main h2 { margin: 0 0 24px; }
.catalog-services { margin-bottom: 32px; }
.catalog-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.catalog-detail { padding: 28px; border: 1px solid var(--line); border-radius: 24px; background: var(--panel); }
.catalog-detail h3 { margin: 0 0 16px; font-size: 24px; }
.catalog-detail p, .catalog-detail li { line-height: 1.65; }
.catalog-detail ul { padding-left: 20px; }
.catalog-detail li + li { margin-top: 8px; }
.catalog-note { color: var(--muted); }
.catalog-room { margin-top: 44px; }
.catalog-bottom { margin-top: 36px; }
.header a[aria-current="page"] { color: var(--blue); }
@media (max-width: 680px) {
  .catalog-main { padding: 20px 0 40px; }
  .catalog-heading { padding: 28px 0 32px; }
  .catalog-heading h1 { letter-spacing: -1px; }
  .catalog-details { grid-template-columns: 1fr; }
  .catalog-detail { padding: 22px; }
  .catalog-actions { align-items: stretch; }
  .catalog-actions > a { text-align: center; }
}
