body.category-page { background: var(--bg); }

.category-page .btn.btn--primary {
  background: var(--brand-green, #0f644b);
  color: #f8f6f1;
  border-color: var(--brand-green, #0f644b);
}
.category-page .btn.btn--primary:hover {
  background: #0b543f;
  border-color: #0b543f;
}

.category-hero {
  height: auto !important;
  min-height: 100svh !important;
  display: flex;
  align-items: flex-end;
  padding: calc(var(--nav) + 72px) 0 88px !important;
}

.category-hero > .wrap,
.category-gallery > .wrap,
.category-contact > .wrap {
  height: auto !important;
}

.category-hero > .wrap { display: block !important; }
.category-back { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 48px; color: var(--muted); text-decoration: none; }
.category-back:hover { color: var(--action); }
.category-hero h1 { max-width: 11ch; font-size: clamp(58px, 9vw, 132px); line-height: .94; }
.category-hero__lead { max-width: 54ch; margin-top: 30px; color: var(--muted); font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; }
.category-hero .btn-row { margin-top: 34px; }

.category-gallery {
  height: auto !important;
  min-height: 0 !important;
  padding: 96px 0 !important;
}

.category-gallery > .wrap { display: block !important; }
.category-gallery__head { margin-bottom: 48px; }
.category-gallery__head h2 { max-width: 16ch; }
.category-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 254px; gap: 14px; }
.category-gallery__item { grid-column: span 5; margin: 0; overflow: hidden; border-radius: var(--r-lg); background: var(--surface); }
.category-gallery__item:first-child { grid-column: span 7; grid-row: span 2; }
.category-gallery__item:only-child { grid-column: 1 / -1; grid-row: span 2; }
.category-gallery__grid--single-landscape,
.category-gallery__grid--single-portrait { grid-auto-rows: auto; }
.category-gallery__grid--single-landscape .category-gallery__item { grid-column: 2 / -2; grid-row: auto; aspect-ratio: 16 / 9; }
.category-gallery__grid--single-portrait .category-gallery__item { grid-column: 4 / 10; grid-row: auto; aspect-ratio: 4 / 5; }
.category-gallery__grid--two .category-gallery__item,
.category-gallery__grid--two .category-gallery__item:first-child { grid-column: span 6; grid-row: span 2; }
.category-gallery__empty { grid-column: 1 / -1; min-height: 280px; display: grid; place-items: center; padding: 44px; border: 1px dashed var(--line); border-radius: var(--r-lg); color: var(--muted); text-align: center; }
.category-gallery__item > img { width: 100%; height: 100%; object-fit: cover; transition: transform 180ms ease-out; }
.category-gallery__item:hover > img { transform: scale(1.025); }

.category-contact {
  height: auto !important;
  min-height: 0 !important;
  padding: 96px 0 !important;
  color: var(--ink);
}

.category-contact > .wrap { display: block !important; }
.category-contact__row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.category-contact .eyebrow--light { color: #f0b7b5; }
.category-contact h2 { grid-column: span 7; max-width: 12ch; color: var(--ink); }
.category-contact__details { grid-column: 9 / -1; }
.category-contact__phone { display: inline-block; color: var(--ink); font: var(--display-weight) clamp(30px, 3vw, 48px)/1 var(--font-display); text-decoration: none; }
.category-contact__details p { max-width: 36ch; margin-top: 18px; color: var(--muted); }
.category-contact__details .btn { margin-top: 28px; }
.category-page .category-contact .btn.btn--primary {
  background: var(--p-inv-action);
  color: var(--p-inv-action-ink);
  border-color: var(--p-inv-action);
}
.category-page .category-contact .btn.btn--primary:hover {
  background: #fff;
  border-color: #fff;
}

.category-footer { padding: 36px 0 calc(36px + env(safe-area-inset-bottom)); }
.category-footer__row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 28px; border-top: 1px solid rgba(248,246,241,.18); }
.category-footer__row > a:not(.brand) { min-height: 44px; display: inline-flex; align-items: center; color: var(--muted); }

@media (max-width: 1023px) {
  .category-gallery__grid { grid-auto-rows: 210px; }
  .category-contact h2 { grid-column: span 7; }
  .category-contact__details { grid-column: 8 / -1; }
}

@media (max-width: 639px) {
  .category-hero { min-height: 100svh !important; align-items: center; padding: calc(var(--nav) + 54px) 0 58px !important; }
  .category-back { margin-bottom: 34px; }
  .category-hero h1 { font-size: clamp(50px, 15vw, 68px); }
  .category-hero__lead { margin-top: 24px; font-size: 18px; }
  .category-hero .btn-row { margin-top: 28px; }
  .category-gallery { padding: 64px 0 !important; }
  .category-gallery__head { margin-bottom: 32px; }
  .category-gallery__grid { grid-template-columns: 1fr; grid-auto-rows: auto; gap: 12px; }
  .category-gallery__item,
  .category-gallery__item:first-child,
  .category-gallery__item:only-child,
  .category-gallery__grid--single-landscape .category-gallery__item,
  .category-gallery__grid--single-portrait .category-gallery__item,
  .category-gallery__grid--two .category-gallery__item,
  .category-gallery__grid--two .category-gallery__item:first-child { grid-column: 1; grid-row: auto; aspect-ratio: 1; }
  .category-gallery__item--portrait,
  .category-gallery__grid--single-portrait .category-gallery__item { aspect-ratio: 4 / 5; }
  .category-gallery__item--landscape,
  .category-gallery__grid--single-landscape .category-gallery__item { aspect-ratio: 16 / 9; }
  .category-contact { padding: 64px 0 !important; }
  .category-contact__row { display: block; }
  .category-contact h2 { margin-bottom: 38px; }
  .category-contact__details .btn { width: 100%; justify-content: center; }
  .category-footer__row { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .category-gallery__item > img { transition: none; }
}
