/* =========================================================
   CATEGORY PAGE
   ========================================================= */
/* Fixed category MV/lead markup compatibility
   HTML structure is supplied by the existing system and cannot be changed. */
.cp-mv { position: relative; height: 300px; overflow: hidden; background: var(--color-fg); }
@media (min-width: 768px) { .cp-mv { height: 380px; } }
.cps-mv_inner { position: relative; width: 100%; height: 100%; }
.cps-mv_figure { position: absolute; inset: 0; margin: 0; overflow: hidden; }
.cps-mv_figure svg { display: block; width: 100%; height: 100%; }
.cps-mv_figure image { width: 100%; height: 100%; }
.cp-mv::after { content: ''; position: absolute; inset: 0; background: rgba(10,22,40,.3); pointer-events: none; }
.cps-mv_text { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; text-align: center; padding: 1.5rem; }
.cps-mv_textInner { margin: 0; font-family: var(--font-display); font-size: clamp(2.5rem, 6vw, 4rem); font-weight: 500; line-height: 1.2; letter-spacing: .15em; color: #fff; text-transform: capitalize; }
/*.cps-mv_textInner::before { content: 'Category'; display: block; margin: 0 0 .75rem; font-family: var(--font-mono); font-size: 10px; font-weight: 400; line-height: 1.4; letter-spacing: .5em; color: rgba(255,255,255,.7); text-transform: uppercase; }*/
.c-hide { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.cp-lead { padding: 3.5rem 0 4rem; background: #fff; }
.cps-lead_inner { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 4rem; max-width: 1280px; margin: 0 auto; padding: 0 3rem; }
.cps-lead_headline h2 { margin: 0; font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; line-height: 1.4; }
.cps-lead_text { min-width: 0; }
.cps-lead_textSummary {font-family: var(--font-display); margin: 0 0 1rem; font-size: 16px; font-weight: 500; line-height: 1.8; letter-spacing: .05em; color: var(--color-fg); }
.cps-lead_text > p:not(.cps-lead_textSummary) { margin: 0; font-size: 13px; line-height: 2.1; letter-spacing: .05em; color: var(--color-muted); }
@media (max-width: 768px) {
  .cps-mv_textInner { font-size: clamp(2rem, 11vw, 3rem); letter-spacing: .1em; }
  .cp-lead { padding: 3rem 0 3.5rem; }
  .cps-lead_inner { grid-template-columns: 1fr; gap: 1.5rem; padding: 0 1.5rem; }
}

.cat-hero { position: relative; height: 300px; overflow: hidden; }
@media (min-width: 768px) { .cat-hero { height: 380px; } }
.cat-hero img { width: 100%; height: 100%; object-fit: cover; }
.cat-hero-ov { position: absolute; inset: 0; background: rgba(10,22,40,.3); }
.cat-hero-txt { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.cat-hero-lbl { font-family: var(--font-mono); font-size: 10px; letter-spacing: .5em; color: rgba(255,255,255,.7); text-transform: uppercase; margin-bottom: .75rem; }
.cat-hero-h1 { font-family: var(--font-display); font-size: clamp(2.5rem, 6vw, 4rem); font-weight: 500; letter-spacing: .15em; color: #fff; }

.cat-intro { padding: 3.5rem 0 4rem; }
.cat-intro-grid { display: grid; grid-template-columns: 220px 1fr; gap: 4rem; }
@media (max-width: 768px) { .cat-intro-grid { grid-template-columns: 1fr; gap: 1.5rem; } }
.cat-intro-h2 { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; line-height: 1.4; }
.cat-intro-body { font-size: 13px; line-height: 2.1; letter-spacing: .05em; color: var(--color-muted); }
