:root {
    --ccp-primary: #af231c; --ccp-primary-hover: #8d1813; --ccp-primary-bright: #d1392f;
    --ccp-primary-soft: #f1c7c3; --ccp-primary-pale: #fff3f1; --ccp-ink: #212721;
    --ccp-ink-soft: #3d433e; --ccp-muted: #656b65; --ccp-paper: #f8f5ee;
    --ccp-paper-warm: #eee9dd; --ccp-surface: #fff; --ccp-line: #d8d3c7;
    --ccp-line-strong: #bcb5a8; --ccp-gold: #e9ad3f; --ccp-radius-sm: .15rem;
    --ccp-radius: .25rem; --ccp-radius-lg: .4rem; --ccp-shadow-sm: 0 12px 30px rgba(33,39,33,.08);
    --ccp-shadow: 0 28px 80px rgba(33,39,33,.16); --ccp-font-display: "Barlow Condensed", sans-serif;
    --ccp-font-body: "Source Sans 3", sans-serif; --bs-primary: #af231c; --bs-primary-rgb: 175,35,28;
    --bs-body-color: #212721; --bs-body-bg: #f8f5ee; --bs-font-sans-serif: var(--ccp-font-body);
}

body { font-family: var(--ccp-font-body); }
h1, h2, h3, h4, h5, h6, .navbar-brand { font-family: var(--ccp-font-display); letter-spacing: -.035em; text-transform: uppercase; }
.eyebrow { letter-spacing: .18em; }
.btn { border-radius: .1rem; letter-spacing: .1em; }

.site-header { border-bottom: 1px solid rgba(33,39,33,.14); background: rgba(255,255,255,.98); backdrop-filter: blur(18px); }
.site-header.is-scrolled { background: rgba(255,255,255,.98); box-shadow: 0 10px 36px rgba(33,39,33,.12); }
.utility-bar { min-height: 2.35rem; display: flex; align-items: center; color: #fff; background: var(--ccp-primary); font-size: .8rem; font-weight: 600; letter-spacing: .025em; }
.utility-bar a { display: inline-flex; align-items: center; gap: .4rem; color: #fff; text-decoration: none; }
.utility-bar a:hover { color: #fff; text-decoration: underline; }
.utility-bar .material-symbols-outlined { font-size: 1rem; }
.utility-location strong { margin-right: .25rem; text-transform: uppercase; }
.utility-phone { white-space: nowrap; }
.site-header .navbar { min-height: 5.35rem; }
.navbar-brand { width: clamp(13.5rem,23vw,17.5rem); padding: .4rem 0; }
.navbar-brand img { display: block; width: 100%; height: auto; }
.navbar-nav .nav-link { color: var(--ccp-ink); font-size: .78rem; letter-spacing: .055em; text-transform: uppercase; }
.navbar-toggler { border-color: rgba(175,35,28,.25); border-radius: .15rem; }
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(175,35,28,.14); }

.documents-hero { position: relative; min-height: 40rem; display: flex; align-items: center; overflow: hidden; color: #fff; background: var(--ccp-ink); isolation: isolate; }
.documents-hero::before { position: absolute; inset: 0; z-index: -2; content: ""; background: radial-gradient(circle at 10% 18%,rgba(175,35,28,.32),transparent 31rem),linear-gradient(130deg,#171b17 0%,#242a24 70%,#151815 100%); }
.documents-hero-lines { position: absolute; inset: 0; z-index: -1; opacity: .2; background-image: repeating-linear-gradient(115deg,transparent 0,transparent 84px,rgba(255,255,255,.07) 85px,rgba(255,255,255,.07) 86px); mask-image: linear-gradient(90deg,#000,transparent 80%); }
.documents-breadcrumb { position: absolute; top: 2rem; left: 1.5rem; z-index: 2; display: flex; gap: .65rem; color: rgba(255,255,255,.48); font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.documents-breadcrumb a { color: rgba(255,255,255,.72); text-decoration: none; }
.documents-breadcrumb a:hover { color: #fff; }
.documents-hero-layout { min-height: 40rem; display: grid; grid-template-columns: minmax(0,1fr) minmax(21rem,.58fr); gap: clamp(3rem,8vw,8rem); align-items: center; padding: 6.5rem 0 4.5rem; }
.documents-hero-layout > * { min-width: 0; }
.documents-hero-content { position: relative; z-index: 2; animation: hero-in .7s cubic-bezier(.2,.8,.2,1) both; }
@keyframes hero-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.hero-kicker { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: 1.2rem; color: #f2b5b0; font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero-kicker span { color: rgba(255,255,255,.3); }
.documents-hero h1 { margin: 0 0 1.25rem; color: #fff; font-size: clamp(5rem,10vw,9.5rem); font-weight: 800; line-height: .76; }
.documents-hero-content > p { max-width: 45rem; margin-bottom: 2.25rem; color: rgba(255,255,255,.74); font-size: clamp(1.08rem,2vw,1.24rem); line-height: 1.55; }
.document-index-card { position: relative; z-index: 1; min-height: 24rem; display: grid; align-content: center; padding: clamp(2rem,5vw,3.5rem); border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04); box-shadow: 1.2rem 1.2rem 0 var(--ccp-primary); transform: rotate(2deg); animation: index-in .8s .12s cubic-bezier(.2,.8,.2,1) both; }
@keyframes index-in { from { opacity: 0; transform: rotate(2deg) translateX(30px); } to { opacity: 1; transform: rotate(2deg); } }
.document-index-label,.document-index-caption { color: #f2b5b0; font-size: .67rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.document-index-card > strong { color: #fff; font-family: var(--ccp-font-display); font-size: clamp(7rem,12vw,10rem); line-height: .7; }
.document-index-categories { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 2rem; }
.document-index-categories span { padding: .3rem .5rem; color: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.16); font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.documents-hero-word { position: absolute; right: -1rem; bottom: -2.2rem; z-index: -1; color: transparent; font-family: var(--ccp-font-display); font-size: clamp(8rem,19vw,18rem); font-weight: 800; line-height: .72; -webkit-text-stroke: 1px rgba(255,255,255,.055); }

.document-contact-strip { border-bottom: 1px solid var(--ccp-line); background: #fff; }
.document-contact-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.document-contact-grid > a { min-height: 6.5rem; display: flex; align-items: center; gap: 1rem; padding: 1rem 1.5rem; color: var(--ccp-ink); border-right: 1px solid var(--ccp-line); text-decoration: none; }
.document-contact-grid > a:first-child { border-left: 1px solid var(--ccp-line); }
.document-contact-grid > a:hover { color: var(--ccp-primary); background: var(--ccp-primary-pale); }
.document-contact-grid .material-symbols-outlined { width: 2.8rem; height: 2.8rem; color: #fff; background: var(--ccp-primary); }
.document-contact-grid small,.document-contact-grid strong { display: block; }
.document-contact-grid small { color: var(--ccp-muted); font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.document-contact-grid strong { font-family: var(--ccp-font-display); font-size: 1.3rem; line-height: 1; text-transform: uppercase; }

.library-section { background: var(--ccp-paper-warm); }
.library-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,31rem); gap: 4rem; align-items: end; margin-bottom: 3.5rem; }
.library-heading h2 { margin: 0; font-size: clamp(3.5rem,6vw,6rem); line-height: .86; }
.library-heading > p { margin: 0 0 .35rem; color: var(--ccp-muted); font-size: 1.08rem; }
.document-hub-layout { display: grid; grid-template-columns: minmax(17rem,.35fr) minmax(0,1fr); gap: clamp(2rem,5vw,4rem); align-items: start; }
.document-sidebar { position: sticky; top: 9rem; padding: 1.6rem; border: 1px solid var(--ccp-line); background: #fff; box-shadow: var(--ccp-shadow-sm); }
.document-sidebar > label { display: block; margin-bottom: .65rem; color: var(--ccp-ink); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.search-wrap { position: relative; }
.search-wrap .material-symbols-outlined { position: absolute; top: 50%; left: .9rem; z-index: 1; color: var(--ccp-primary); transform: translateY(-50%); }
.search-wrap input { width: 100%; padding: .9rem .9rem .9rem 3rem; color: var(--ccp-ink); border: 1px solid var(--ccp-line-strong); border-radius: 0; background: var(--ccp-paper); }
.search-wrap input:focus { border-color: var(--ccp-primary); box-shadow: 0 0 0 .18rem rgba(175,35,28,.11); outline: none; }
.filter-bar { display: grid; gap: .45rem; margin: 1.25rem 0; }
.filter-button { padding: .65rem .8rem; color: var(--ccp-ink-soft); border: 1px solid var(--ccp-line); border-radius: 0; background: #fff; font: inherit; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.filter-button:hover,.filter-button.is-active { color: #fff; border-color: var(--ccp-primary); background: var(--ccp-primary); }
#documentStatus { margin: 0; color: var(--ccp-muted); font-size: .8rem; }
.document-results { min-width: 0; }
.document-group { margin-bottom: 3.5rem; }
.document-group:last-of-type { margin-bottom: 0; }
.document-group-heading { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: end; margin-bottom: 1rem; padding-bottom: .8rem; border-bottom: 2px solid var(--ccp-primary); }
.document-group-heading > span { color: var(--ccp-primary-soft); font-family: var(--ccp-font-display); font-size: 3.5rem; font-weight: 800; line-height: .75; }
.document-group-heading small { display: block; color: var(--ccp-primary); font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.document-group-heading h3 { margin: 0; font-size: 2rem; line-height: 1; }
.document-list { display: grid; gap: .65rem; padding: 0; list-style: none; }
.document-link { min-height: 6.6rem; display: grid; grid-template-columns: auto 1fr auto; gap: 1.1rem; align-items: center; padding: 1.15rem 1.3rem; color: var(--ccp-ink); border: 1px solid var(--ccp-line); border-radius: 0; background: #fff; text-decoration: none; transition: color .2s,border-color .2s,transform .2s,box-shadow .2s; }
.document-link:hover { color: var(--ccp-primary); border-color: var(--ccp-primary); box-shadow: var(--ccp-shadow-sm); transform: translateX(5px); }
.document-link > .material-symbols-outlined { width: 3rem; height: 3rem; color: var(--ccp-primary); background: var(--ccp-primary-pale); }
.document-link small,.document-link strong { display: block; }
.document-link small { margin-bottom: .15rem; color: var(--ccp-muted); font-size: .64rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.document-link strong { font-family: var(--ccp-font-display); font-size: 1.4rem; line-height: 1.05; text-transform: uppercase; }
.empty-state { padding: 4rem 2rem; color: var(--ccp-muted); border: 1px dashed var(--ccp-line-strong); background: rgba(255,255,255,.5); text-align: center; }
.empty-state .material-symbols-outlined { color: var(--ccp-primary); font-size: 3rem; }
.empty-state h3 { margin-top: 1rem; color: var(--ccp-ink); font-size: 2rem; }

.records-section { background: #fff; }
.records-panel { position: relative; min-height: 25rem; display: grid; grid-template-columns: auto minmax(0,1fr) minmax(17rem,.55fr); gap: clamp(2rem,5vw,5rem); align-items: center; padding: clamp(2.5rem,6vw,5.5rem); overflow: hidden; color: #fff; background: var(--ccp-ink); box-shadow: 1rem 1rem 0 var(--ccp-primary); }
.records-panel::after { position: absolute; width: 28rem; height: 28rem; right: -16rem; bottom: -19rem; content: ""; border: 5rem solid rgba(175,35,28,.25); border-radius: 50%; }
.records-panel > * { position: relative; z-index: 1; }
.records-icon { width: clamp(7rem,11vw,9rem); aspect-ratio: 1; display: grid; place-items: center; border: 2px solid rgba(255,255,255,.28); border-radius: 50%; }
.records-icon span { font-size: 4rem; }
.records-panel .eyebrow { color: #f2b5b0; }
.records-panel h2 { max-width: 40rem; margin-bottom: .7rem; color: #fff; font-size: clamp(3rem,5.4vw,5.1rem); line-height: .88; }
.records-panel p { max-width: 38rem; margin: 0; color: rgba(255,255,255,.7); font-size: 1.08rem; }
.records-contact { display: grid; gap: 1rem; }
.records-contact a { display: grid; overflow-wrap: anywhere; color: #fff; font-family: var(--ccp-font-display); font-size: 1.25rem; font-weight: 700; line-height: 1.05; text-decoration: none; text-transform: uppercase; }
.records-contact a span { margin-bottom: .3rem; color: #f2b5b0; font-family: var(--ccp-font-body); font-size: .64rem; letter-spacing: .15em; }
.records-contact a:hover { text-decoration: underline; }

.document-cta-section { background: var(--ccp-paper); }
.document-cta { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3rem; align-items: center; padding: clamp(2.5rem,6vw,5rem); color: #fff; background: var(--ccp-primary); }
.document-cta .eyebrow { color: rgba(255,255,255,.65); }
.document-cta h2 { max-width: 50rem; margin-bottom: .7rem; color: #fff; font-size: clamp(3rem,5.5vw,5.2rem); line-height: .88; }
.document-cta p { max-width: 42rem; margin: 0; color: rgba(255,255,255,.74); font-size: 1.08rem; }

.site-footer { color: #cfd3cf; background: #171b17; }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-top p { max-width: 28rem; margin: 0; color: #aeb4ae; font-size: 1.05rem; text-align: right; }
.footer-logo { display: inline-flex; max-width: 19rem; padding: .8rem 1rem; background: #fff; }
.footer-logo img { width: 100%; height: auto; }
.footer-heading { color: #f1a29d; }
.footer-fax { display: block; margin-top: .25rem; color: #959c95; font-size: .9rem; }
.footer-bottom { color: #8f968f; }

@media (max-width:1199.98px) { .navbar-brand { width: 15rem; } }
@media (max-width:991.98px) {
    .documents-hero-layout { grid-template-columns: minmax(0,1fr) minmax(17rem,.45fr); gap: 3rem; }
    .document-index-card { min-height: 20rem; }
    .records-panel { grid-template-columns: auto 1fr; }
    .records-contact { grid-column: 2; }
}
@media (max-width:767.98px) {
    .utility-location span:last-child { max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .documents-hero-layout { grid-template-columns: 1fr; padding-bottom: 5.5rem; }
    .document-index-card { margin-right: 1.2rem; animation: none; transform: none; }
    .document-contact-grid { grid-template-columns: 1fr; }
    .document-contact-grid > a,.document-contact-grid > a:first-child { min-height: 5.5rem; border-right: 1px solid var(--ccp-line); border-bottom: 1px solid var(--ccp-line); border-left: 1px solid var(--ccp-line); }
    .library-heading,.document-hub-layout { grid-template-columns: 1fr; gap: 2rem; }
    .document-sidebar { position: static; }
    .filter-bar { grid-template-columns: repeat(2,1fr); }
    .records-panel { grid-template-columns: 1fr; box-shadow: .65rem .65rem 0 var(--ccp-primary); }
    .records-contact { grid-column: 1; }
    .records-icon { width: 7rem; }
    .document-cta { grid-template-columns: 1fr; gap: 2rem; }
    .footer-top { align-items: flex-start; flex-direction: column; }
    .footer-top p { text-align: left; }
}
@media (max-width:575.98px) {
    .utility-bar { min-height: 2.6rem; }
    .utility-location span:last-child { max-width: 10.5rem; }
    .utility-phone .material-symbols-outlined { display: none; }
    .navbar-brand { width: 12.5rem; }
    .documents-hero h1 { font-size: clamp(3.6rem,15.5vw,5rem); }
    .documents-hero .btn,.document-cta .btn { width: 100%; }
    .filter-bar { grid-template-columns: 1fr; }
    .document-link { grid-template-columns: auto 1fr; padding: 1rem; }
    .document-link > :last-child { display: none; }
    .document-link strong { font-size: 1.2rem; }
    .document-group-heading > span { display: none; }
    .document-group-heading { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion:reduce) { .documents-hero-content,.document-index-card { animation: none; } }
