.category-page { overflow: auto; height: auto; background: #f8f5ef; }
.category-page .category-heading { position: relative; padding: 26px 6% 24px; color: #294542; max-width: 1440px; margin: 0 auto; }
.category-heading .category-icon { width: 28px; height: 28px; display: block; margin-bottom: 10px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.category-page .category-heading h1 { margin: 0; font: 500 clamp(36px, 4vw, 56px)/1.1 'Playfair Display', Georgia, serif; }
.category-page .category-heading p { margin: 10px 0 0; color: #797166; font: 13px/1.5 'Plus Jakarta Sans', sans-serif; letter-spacing: .035em; }
.category-page .hero { height: 38vh; width: 100%; margin: 0; max-width: none; border-radius: 0; background-position: center; }
.category-page .hero { display: block; padding: 0; min-height: 320px; position: relative; }
.category-page .hero .site-header { position: relative; z-index: 5; background: transparent; }
.category-page .hero .category-heading { position: absolute; top: 110px; left: 6%; right: 6%; padding: 0; margin: 0; z-index: 2; color: #fffaf2; text-shadow: 0 2px 12px rgba(0,0,0,.45); }
.category-page .hero .category-heading h1, .category-page .hero .category-heading p { color: inherit; }
.category-page .hero::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(248,245,239,.35),transparent 32%),linear-gradient(90deg,rgba(15,35,32,.35),transparent 65%); }
.category-page:not(.category-events) .places { height: auto; margin: -16px auto 0; padding: 30px 3% 36px; max-width: none; border-radius: 20px 20px 0 0; }
.category-page .cards { height: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; gap: 30px 24px; }
.category-page .card { height: auto; min-width: 0; }
.category-page .card > img { height: auto; aspect-ratio: 2.35; object-fit: cover; border-radius: 14px; flex: none; }
.category-page .card-image-link { display: block; overflow: hidden; border-radius: 14px; }
.category-page .card-image-link img { display: block; width: 100%; height: auto; aspect-ratio: 2.35; object-fit: cover; transition: transform .2s; }
.category-page .card-image-link:hover img { transform: scale(1.025); }
.category-page .card-title-link { color: inherit; text-decoration: none; }
.category-page .card-title-link:hover { color: #476957; }
.category-page .category-switcher { position: relative; z-index: 6; display: flex; justify-content: center; align-items: center; gap: 18px; width: 100%; max-width: none; height: 52px; margin: -16px 0 0; padding: 8px 20px; border-radius: 20px 20px 0 0; background: #f8f5ef; }
.category-switcher a { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #c9bca9; border-radius: 50%; color: #294542; text-decoration: none; font: 23px/1 Arial, sans-serif; }
.category-switcher a:hover { background: #294542; color: #fffaf2; border-color: #294542; }
.category-switcher a:focus-visible { outline: 2px solid #294542; outline-offset: 3px; }
.category-switcher-label { color: #797166; font: 12px/1.4 'Plus Jakarta Sans', sans-serif; }
.category-page .category-switcher { justify-content: space-between; height: auto; min-height: 70px; padding: 10px 3% 8px; }
.category-switcher a { display: flex; flex-direction: column; gap: 5px; width: auto; height: auto; border: 0; border-radius: 0; background: transparent; }
.category-switcher a > span[aria-hidden] { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #c9bca9; border-radius: 50%; }
.category-switcher-name { color: #797166; font: 11px/1.3 'Plus Jakarta Sans', sans-serif; }
.category-switcher a:hover { background: transparent; color: #294542; }
.category-switcher a:hover > span[aria-hidden] { background: #294542; color: #fffaf2; }
.category-page:not(.category-events) .category-switcher + .places { margin-top: 0; padding-top: 10px; border-radius: 0; }
.category-divider { position: relative; z-index: 6; display: grid; place-items: center; min-height: 70px; margin-top: -16px; background: #f8f5ef; border-radius: 20px 20px 0 0; }
.category-divider svg { width: min(52%, 360px); height: 60px; fill: none; stroke: #a79273; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; opacity: .75; }
.category-page:not(.category-events) .category-divider + .places { margin-top: 0; padding-top: 10px; border-radius: 0; }
.category-divider { height: clamp(105px, 14vw, 170px); min-height: 0; overflow: hidden; padding: 0 4%; }
.category-divider img { display: block; width: min(72vw, 660px); height: auto; max-width: 100%; opacity: .86; object-fit: contain; align-self: center; -webkit-mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); }
.category-divider--relax img { width: min(78vw, 700px); }
.category-divider--culture img { width: min(68vw, 590px); opacity: .78; }
.category-divider--empty { height: 28px; min-height: 28px; padding: 0; }
@media (max-width: 560px) { .category-divider img, .category-divider--relax img, .category-divider--culture img { width: 90vw; } }
.category-page .card-info { align-items: center; gap: 12px; padding: 7px 6px 0; }
.category-page .card-info h2 { margin: 0 0 6px; font: 500 18px/1.25 'Playfair Display', Georgia, serif; }
.category-page .card-info p { margin: 0; color: #797166; font: 11px/1.6 'Plus Jakarta Sans', sans-serif; }
.category-page .card-info a.arrow { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 1px solid #c9bca9; border-radius: 50%; text-decoration: none; background: transparent; color: #294542; font: 23px/1 Arial, sans-serif; transition: background .18s, color .18s; }
.category-page .card-info a.arrow:hover { color: #fffaf2; background: #294542; border-color: #294542; }
.category-page .card-info a.arrow:focus-visible { outline: 2px solid #294542; outline-offset: 4px; }
.category-events .hero::before { background: linear-gradient(90deg,rgba(248,245,239,.2),transparent); }
.category-events .discover { margin-top: 30px; }
.category-events .place-arrow { border: 1px solid #c9bca9; border-radius: 50%; }
@media (min-width: 701px) { .category-page .cards { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px clamp(24px,5vw,70px); } }
@media (min-width: 561px) and (max-width: 700px) { .category-page .cards { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) {
 .category-page .category-heading { padding: 22px 6%; }
 .category-page .cards { grid-template-columns: 1fr; gap: 26px; }
 .category-page .hero { height: 38vh; }
 .category-page .card-info h2 { font-size: 18px; }
}
