/* Accessibility and new case pages; keep the established typefaces and palette. */
html { overflow-x: clip; }
.text-button { display: inline-block; text-decoration: none; }
:focus-visible { outline: 2px solid #1B4A56; outline-offset: 4px; }
.site-header:focus-within { transform: none !important; }
.portfolio-header { max-width: 1200px; margin: auto; padding: 28px 24px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.portfolio-header img { width: 80px; height: auto; }
.portfolio-header nav { display: flex; flex-wrap: wrap; gap: 20px; font-weight: 600; }
.portfolio-detail { max-width: 1040px; margin: 28px auto 72px; padding: 0 24px; }
.portfolio-detail.portfolio-detail-compact { max-width: 860px; margin-top: 10px; }
.portfolio-detail-compact .breadcrumbs { font-size: 13px; margin-bottom: 22px; }
.portfolio-detail-compact > .eyebrow { font-size: 11px; margin: 0 0 10px; }
.portfolio-detail.portfolio-detail-compact h1 { font-size: clamp(2rem,3.4vw,2.8rem); margin: 10px 0 14px; }
.portfolio-detail.portfolio-detail-compact > .section-lead { font-size: 15px; line-height: 1.65; margin-bottom: 22px; }
.portfolio-detail-compact > .section-lead + p { font-size: 14px; line-height: 1.65; max-width: 76ch; margin: -6px 0 22px; color: #59534f; }
.portfolio-detail-compact > .portfolio-cover { display:block; width:auto; max-width:100%; height:auto; max-height: min(500px,65svh); margin:0 auto 28px; object-fit:contain; border-radius:8px; }
.portfolio-detail-compact figure img { object-fit:contain; height:auto; max-width:100%; }
.portfolio-detail h1 { font-family: var(--font-title); font-size: clamp(2.15rem,5vw,3.8rem); line-height: 1.1; margin: 20px 0; }
.portfolio-detail > .section-lead { font-size: 1rem; line-height: 1.6; font-weight: 500; max-width: 68ch; }
.portfolio-detail h2 { font-family: var(--font-title); font-size: 1.8rem; }
.portfolio-detail section { margin: 36px 0; max-width: 76ch; }
.portfolio-cover { width: 100%; height: auto; border-radius: 20px; margin: 28px 0; }
.breadcrumbs { font-size: .875rem; color: #59534f; margin-bottom: 24px; }
.project-next { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-top: 40px; }
.review-source { overflow-wrap: anywhere; }
.google-review-link { grid-column: 1 / -1; justify-self: end; }
.form-note { font-size: .875rem; color: #59534f; }
@media (max-width: 600px) { .portfolio-header { align-items: flex-start; } .portfolio-header nav { gap: 12px; font-size: .875rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
