body {
    background-color: var(--page-bg);
    font-family: var(--font-body);
}

.jumbotron {
    background-color: var(--surface);
    color: var(--text);
}

.portfolio-hero { background-image: var(--portfolio-banner-image); }

.portfolio-category-header {
    background-image: linear-gradient(90deg, #525667, #707384);
}

.portfolio-category-tile {
    background-color: var(--category-accent, #777);
}

.carousel-caption { background: rgba(0,0,0,0.5); }
.categCellTitle { background-color: #000; color: #fff; }
.readmorelink, .skill-details-toggle, .skill-details-section-toggle { color: var(--accent); font-weight: bold; }
.readmorelink { cursor: pointer; }
.skill-details-toggle:hover, .skill-details-toggle:focus, .skill-details-section-toggle:hover, .skill-details-section-toggle:focus { color: var(--accent-hover); text-decoration: none; }
.skill-details-heading { margin: 0 0 7px; font-size: 15px; font-weight: bold; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); }
.skill-position-label { color: rgba(255,255,255,.94); font-size: 16px; }
.skill-team-total { padding: 3px 8px; border: 1px solid rgba(255,255,255,.22); border-radius: 3px; background: rgba(255,255,255,.04); color: rgba(255,255,255,.76); font-size: 13px; }
.skill-team-total strong { color: #fff; font-size: 16px; }
.portfolio-filter-link:focus { outline: 2px solid var(--focus-ring); outline-offset: 2px; text-decoration-color: currentColor; }
.skill-role-pill { padding: 3px 8px; border: 1px solid rgba(138,167,255,.48); border-radius: 12px; background: transparent; color: rgba(220,228,255,.92); font-size: 13px; }
.skill-role-pill:hover, .skill-role-pill:focus { border-color: #aec1ff; background: rgba(138,167,255,.12); color: #fff; }
.skill-contributor-pill { padding: 4px 9px; border: 1px solid rgba(255,255,255,.28); border-radius: 3px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.9); font-size: 13px; }
.skill-relationship-legend { font-size: 12px; color: rgba(255,255,255,.58); }
.relationship-paid { border-color: rgba(108,190,157,.6); color: #a8d8c4; }
.relationship-volunteer { border-color: rgba(127,169,238,.65); color: #aec8f4; }
.relationship-partner { border-color: rgba(183,139,225,.65); color: #d0b3ef; }
.relationship-contractor { border-color: rgba(223,170,103,.65); color: #edc58e; }
.relationship-employee { border-color: rgba(110,196,199,.65); color: #a8dbdc; }
.skill-details-section { border-top: 1px solid rgba(255,255,255,.16); }
.skill-details-section-toggle, .skill-details-title { font-size: 17px; }
.skill-details-title { font-weight: bold; }

.overlay { background-color: rgb(0,0,0); background-color: rgba(0,0,0,.9); }
.overlay a { color: #818181; }
.overlay a:hover, .overlay a:focus { color: #f1f1f1; }

.portfolio-about-section { padding-top: 10px; padding-bottom: 10px; }

.portfolio-footer { background-color: var(--surface); color: #fff; }
.portfolio-footer .footer-copyright { background-color: var(--surface-alt); padding-top: 3px; padding-bottom: 3px; text-align: center; }
.portfolio-footer .footer-copyright p { margin: 10px; color: #ccc; }
.portfolio-footer ul { list-style-type: none; padding-left: 0; line-height: 1.7; }
.portfolio-footer h5 { font-size: 18px; color: #fff; font-weight: bold; margin-top: 30px; }
.portfolio-footer a { color: #d2d1d1; text-decoration: none; }
.portfolio-footer a:hover, .portfolio-footer a:focus { text-decoration: none; color: #fff; }
.portfolio-footer .myCols { text-align: center; }
.portfolio-footer .social-networks { text-align: center; padding-top: 30px; padding-bottom: 38px; }
.portfolio-footer .social-networks a { font-size: 32px; margin-right: 5px; margin-left: 5px; color: #f9f9f9; padding: 10px; transition: .2s; }
.portfolio-footer .social-networks a:hover { text-decoration: none; }
.portfolio-footer .facebook:hover { color: #0077e2; }
.portfolio-footer .google:hover { color: #ef1a1a; }
.portfolio-footer .twitter:hover { color: #00aced; }

.navbar-search-button { background: transparent; color: #9d9d9d; }
.navbar-search-button:hover, .navbar-search-button:focus { color: #fff; outline: 2px solid var(--focus-ring); outline-offset: -3px; }
.search-results-header h2 { color: #292c36; }
.search-result-count { color: #5b606c; }
.search-page-input-icon { color: #666d7a; }
.search-page-loading { color: #596273; }
.search-filters-panel { border-color: #d5d8df; border-radius: 5px; background: #fff; box-shadow: 0 2px 7px rgba(35,38,47,.06); }
.search-filter-label { color: #414550; font-weight: 700; }
.search-facet-popover { border-color: #bfc3cc; border-radius: 4px; background: #fff; box-shadow: 0 8px 24px rgba(29,32,40,.2); }
.search-facet-empty { color: #666c78; }
.search-facet-option { border-radius: 3px; background: transparent; color: #292d37; }
.search-facet-option:hover, .search-facet-option:focus { background: #edf1ff; color: #1e376f; outline: 2px solid #5879d8; outline-offset: -2px; }
.search-facet-option-count { color: #6d7280; }
.search-range-inputs label { color: #555a65; font-weight: 400; }
.search-filter-chip { border-color: #687fc1; border-radius: 16px; background: #eef2ff; color: #263e78; }
.search-filter-chip:hover, .search-filter-chip:focus { background: #dfe7ff; outline: 2px solid #405fae; outline-offset: 1px; }
.search-result-card { border-color: var(--border); border-left-color: #525f86; border-radius: 5px; background: #fff; box-shadow: 0 2px 8px rgba(30,34,44,.07); }
.search-result-title { background: transparent; color: #2d55b1; font-weight: 600; }
.search-result-title:hover { text-decoration: underline; }
.search-result-title:focus { outline: 3px solid #6d8ce4; outline-offset: 3px; }
.search-result-context { color: #616774; }
.search-result-context-filter { color: #4b5f91; font-weight: 600; }
.search-result-meta-item { border-radius: 12px; background: #edf0f6; color: #454b58; }
.search-result-meta-item:hover, .search-result-meta-item:focus { background: #dfe7ff; color: #263e78; }
.search-match-heading { color: #4c515c; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.search-match-item { color: #333842; }
.search-match-label, .search-match-section { font-weight: 700; }
.search-match-section { color: #4f5663; }
.search-match-alias { color: #676d79; }
.search-match-item mark { background: #ffed9c; color: inherit; }
.search-empty-state, .search-error-state { border-color: #d2d5dd; border-radius: 5px; background: #fff; }

/* Banner description stays available on tablets and phones (shared header no longer hides it). */
@media (max-width: 991px) {
    .portfolio-hero p { margin: 0 0 14px; font-size: 16px; line-height: 1.5; text-shadow: 0 1px 3px rgba(0,0,0,.75); }
    .portfolio-hero h1 { text-shadow: 0 1px 4px rgba(0,0,0,.6); }
}
@media (max-width: 767px) {
    .portfolio-hero h1 { font-size: 34px; }
    .portfolio-hero p { font-size: 15px; }
}

/* Preserve Jamie's desktop thumbnail rail; image count does not dictate layout. */
.portfolio-featured-supporting-column{float:left;width:25%}
.portfolio-featured-supporting-column>.portfolio-featured-supporting{width:100%}
#featuredSupporting{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin:0}
#featuredSupporting::before,#featuredSupporting::after{display:none}
#featuredSupporting>.col-md-12{float:none;width:auto;min-width:0;padding:0}
#featuredSupporting .thumbnail{margin:0}
#featuredSupporting .portfolio-featured-supporting-image{width:100%;height:auto;object-fit:contain}
.portfolio-featured .carousel-inner>.item>img{width:100%;height:auto;object-fit:contain}
@media(max-width:991px){.portfolio-featured-supporting-column{float:none;width:100%}.portfolio-featured-supporting-column>.portfolio-featured-supporting{float:none;padding:0}.portfolio-featured-layout>.col-md-9{width:100%;float:none}#featuredSupporting{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}}
