.public-projects-page { background: #f8f5f1; color: #352a29; }
.pp-hero { padding: 3.4rem 0; background: radial-gradient(circle at 82% 12%, #934e3769, transparent 28%), linear-gradient(125deg, #4a1110, #69201c); color: #fff; }
.pp-eyebrow, .pp-kicker, .pp-number { display: block; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pp-eyebrow { color: #eac49b; }
.pp-kicker, .pp-number { color: #a46335; }
.pp-hero h1 { max-width: 900px; margin: .7rem 0; font-family: Georgia, serif; font-size: clamp(2.1rem, 5vw, 3.5rem); line-height: 1.1; overflow-wrap: anywhere; }
.pp-hero p { max-width: 740px; margin: 0; color: #f2ded6; }
.pp-hero-back { display: inline-block; margin-bottom: 1rem; color: #f2ded6; font-size: .85rem; font-weight: 700; text-decoration: none; }
.pp-hero-back:hover { color: #fff; text-decoration: underline; }
.pp-hero-back i { margin-right: .35rem; }
.pp-main { min-width: 0; padding-top: 2.5rem; padding-bottom: 5rem; }
.pp-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.3rem; }
.pp-section-heading h2 { margin: .25rem 0 0; color: #421614; font-family: Georgia, serif; font-size: clamp(1.55rem, 3vw, 2rem); }
.pp-count { margin: 0; color: #766a63; font-size: .86rem; font-weight: 700; white-space: nowrap; }
.pp-search { margin-bottom: 1.4rem; padding: 1.15rem; border: 1px solid #e7dcd4; border-radius: 14px; background: #fff; }
.pp-search label { display: block; margin-bottom: .55rem; color: #421614; font-size: .84rem; font-weight: 800; }
.pp-search-controls { display: flex; align-items: center; gap: .7rem; }
.pp-search input { flex: 1; min-width: 0; padding: .75rem .9rem; border: 1px solid #cdbab0; border-radius: 9px; background: #fcfaf8; color: #352a29; }
.pp-search input:focus-visible, .pp-search button:focus-visible, .pp-search a:focus-visible, .pp-pagination a:focus-visible { outline: 3px solid #c99645; outline-offset: 2px; }
.pp-search button { flex: none; padding: .75rem 1.05rem; border: 0; border-radius: 9px; background: #65151d; color: #fff; font-weight: 800; }
.pp-search button:hover { background: #4a1110; }
.pp-search a { flex: none; color: #71302a; font-size: .85rem; font-weight: 700; }
.pp-results-note { margin: -.45rem 0 1rem; color: #766a63; font-size: .86rem; }
.pp-pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 2rem; color: #766a63; font-size: .86rem; }
.pp-pagination a { padding: .55rem .8rem; border: 1px solid #cdbab0; border-radius: 8px; background: #fff; color: #71302a; font-weight: 700; text-decoration: none; }
.pp-pagination a:hover { border-color: #71302a; }
.pp-institute-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.pp-institute-card { display: flex; gap: 1rem; align-items: center; min-width: 0; min-height: 130px; padding: 1.25rem; border: 1px solid #e7dcd4; border-radius: 15px; background: #fff; color: #421614; text-decoration: none; box-shadow: 0 10px 28px #4a111008; }
.pp-institute-card:hover, .pp-project-row:hover, .pp-file-row:hover { border-color: #a57959; box-shadow: 0 14px 30px #4a111011; color: #421614; }
.pp-institute-icon, .pp-file-icon { display: inline-grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 12px; background: #f4e8df; color: #7a2f27; }
.pp-institute-copy, .pp-project-copy, .pp-file-copy { display: block; min-width: 0; flex: 1; }
.pp-institute-copy strong, .pp-project-copy strong, .pp-file-copy strong { display: block; overflow-wrap: anywhere; }
.pp-file-copy small { overflow-wrap: anywhere; }
.pp-institute-copy strong { font-family: Georgia, serif; font-size: 1.2rem; }
.pp-institute-copy small, .pp-project-copy small, .pp-file-copy small { display: block; margin-top: .4rem; color: #766a63; font-size: .82rem; }
.pp-card-arrow { flex: none; color: #9f6845; }
.pp-list { display: grid; gap: .75rem; }
.pp-project-row, .pp-file-row { display: flex; align-items: center; gap: 1rem; min-width: 0; padding: 1rem 1.2rem; border: 1px solid #e7dcd4; border-radius: 12px; background: #fff; color: #421614; text-decoration: none; }
.pp-project-index { display: inline-grid; place-items: center; flex: none; min-width: 3.5rem; height: 2.35rem; padding: 0 .5rem; border-radius: 8px; background: #f4e8df; color: #7a2f27; font-weight: 800; }
.pp-project-row > i { flex: none; color: #9f6845; }
.pp-empty { padding: 3rem 1.5rem; border: 1px dashed #cdbab0; border-radius: 15px; background: #fff; text-align: center; }
.pp-empty > i { color: #9f6845; font-size: 2rem; }
.pp-empty h2, .pp-empty h3 { margin: .85rem 0 .4rem; color: #421614; font-family: Georgia, serif; font-size: 1.45rem; }
.pp-empty p { max-width: 560px; margin: 0 auto; color: #766a63; }
.pp-detail-main { width: 100%; max-width: 1000px; padding-top: 2.3rem; padding-bottom: 5rem; }
.pp-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-bottom: 1.35rem; color: #766a63; font-size: .83rem; }
.pp-breadcrumb a { color: #71302a; text-decoration: none; }
.pp-breadcrumb a:hover { text-decoration: underline; }
.pp-breadcrumb i { color: #ae9e92; font-size: .6rem; }
.pp-detail { min-width: 0; padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid #e7dcd4; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px #4a11100d; }
.pp-detail h1 { margin: .6rem 0 1.7rem; color: #421614; font-family: Georgia, serif; font-size: clamp(1.7rem, 4vw, 2.6rem); line-height: 1.25; overflow-wrap: anywhere; }
.pp-detail-responsible { padding-top: 1.1rem; border-top: 1px solid #eee6e0; }
.pp-detail-responsible span { color: #766a63; font-size: .84rem; }
.pp-detail-responsible p { margin: .2rem 0 0; font-size: 1.08rem; font-weight: 700; overflow-wrap: anywhere; }
.pp-evidence-section { margin-top: 2.3rem; }
.pp-file-row { min-height: 78px; }
.pp-video-card { min-width: 0; padding: 1.2rem; border: 1px solid #e7dcd4; border-radius: 12px; background: #fff; }
.pp-video-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.pp-video-card video { display: block; width: 100%; max-height: 560px; border-radius: 8px; background: #1d1717; }
.pp-external-note { margin: -.45rem 0 1.2rem; color: #766a63; font-size: .86rem; }
.pp-file-action { flex: none; color: #71302a; font-size: .82rem; font-weight: 700; white-space: nowrap; }
.pp-file-action i { margin-left: .35rem; }
.pp-institute-card:focus-visible, .pp-project-row:focus-visible, .pp-file-row:focus-visible, .pp-breadcrumb a:focus-visible { outline: 3px solid #c99645; outline-offset: 3px; }
@media (max-width: 991px) { .pp-institute-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .pp-institute-grid { grid-template-columns: 1fr; } .pp-hero { padding: 2.7rem 0; } .pp-file-action { font-size: 0; } .pp-file-action i { font-size: .9rem; } .pp-section-heading { align-items: start; } .pp-search-controls { flex-wrap: wrap; } .pp-search input { flex-basis: 100%; } }
