/* Small additions to the existing white, black, gold and crimson identity. */
[hidden], dialog:not([open]) { display: none !important; }
html { scroll-padding-top: 6rem; }
body { overflow-x: visible; }
body:has(dialog[open]) { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { touch-action: manipulation; }
button { cursor: pointer; }
button, .hero-actions a { min-height: 44px; }
:focus-visible { outline: 3px solid #9f2015; outline-offset: 5px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline-offset: 3px; }
h1:focus, main:focus { outline: none; }
.text-brand-crimson { color: var(--brand-crimson-true); }
.eyebrow { color: #666; }
.hover\:bg-brand-crimson:hover { background-color: var(--brand-crimson-true); }
.hover\:bg-brand-gold:hover { background-color: var(--brand-gold); }
.hover\:text-brand-crimson:hover { color: var(--brand-crimson-true); }
.nav-link[aria-current="page"]::after { width: 100%; }
.skip-link { position: fixed; top: -6rem; left: 1rem; z-index: 100; padding: 1rem; color: #fff; background: #111; }
.skip-link:focus { top: 1rem; }
.no-script-note { padding: 1.5rem; background: #faf5e9; }
.hero-actions a { text-align: center; display: inline-flex; align-items: center; justify-content: center; }
.directory-group { margin-top: 3.5rem; }
.directory-group > h2 { font-size: 1.5rem; font-weight: 700; }
.directory-intro { color: #595959; margin: .65rem 0 1.5rem; }
.project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.project-card { min-width: 0; padding: 1.75rem; border: 1px solid #dedede; display: flex; flex-direction: column; align-items: flex-start; transition: border-color .2s ease, box-shadow .2s ease; }
.project-card:hover, .project-card:focus-within { border-color: #bfa5a2; box-shadow: 0 4px 16px #22222208; }
.project-mark { display: flex; align-items: center; justify-content: center; width: 100%; height: 144px; padding: 1rem; margin-bottom: 1.75rem; border: 1px solid #ededed; background: #fff; }
.project-mark--dark { background: #202326; border-color: #202326; }
.project-mark img { width: 100%; height: 100%; object-fit: contain; filter: none; opacity: 1; }
.project-card h3 { font-size: 1.2rem; font-weight: 700; margin: .75rem 0; overflow-wrap: anywhere; }
.project-status { font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; color: #772017; font-weight: 700; }
.project-card > p:not(.project-status) { color: #595959; font-size: .9rem; line-height: 1.6; padding-bottom: 1rem; }
.project-link { margin-top: auto; padding-top: 1rem; font-size: .85rem; }
.project-link { text-decoration: underline; text-underline-offset: 4px; min-height: 44px; font-weight: 700; }
.project-link:hover { color: #9f2015; }
.field-label { display: block; font-size: .75rem; text-transform: uppercase; font-weight: 700; letter-spacing: .08em; color: #555; }
.contact-notice { font-size: .9rem; line-height: 1.6; border-left: 3px solid #d4af37; padding: 1rem; background: #faf8f1; margin-bottom: 2rem; }
.contact-notice a { text-decoration: underline; text-underline-offset: 3px; }
#contactForm input, #contactForm textarea, #contactForm select { min-width: 0; max-width: 100%; }
#contactForm textarea { resize: vertical; }
#contactStatus { color: #772017; line-height: 1.6; }
.footer-links a, .footer-links button { display: inline-flex; align-items: center; min-height: 44px; text-align: center; }
dialog { color: #111; border: 0; background: white; margin: auto; padding: 2rem; width: calc(100% - 2rem); max-width: 36rem; max-height: calc(100svh - 2rem); overflow: auto; box-shadow: 0 20px 70px #0003; }
dialog::backdrop { background: #0009; }
#cookieModal { padding: 2rem; }
#cookieClose, #menuClose { flex-shrink: 0; width: 44px; height: 44px; }
#analyticsCookies { width: 22px; height: 22px; flex-shrink: 0; accent-color: #9f2015; }
#mobile-menu { width: 100%; max-width: none; height: 100%; max-height: 100svh; }
#menuClose { position: absolute; right: 1.5rem; top: 1.25rem; font-size: 2rem; }
.mobile-links { min-height: calc(100svh - 4rem); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2rem; }
.mobile-links a { min-height: 44px; }
#cookieBanner { max-height: 70svh; overflow-y: auto; }
#cookieBanner :focus-visible { outline-color: #d4af37; }
@media (max-width: 1023px) { .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) {
    .project-grid { grid-template-columns: minmax(0, 1fr); }
    #home h1 { font-size: clamp(2.25rem, 11.5vw, 3rem); }
    .hero-actions a { flex: 1 1 12rem; }
    #connect > div > div.bg-white { padding: 1.5rem; }
    #cookieModal { padding: 1.25rem; }
    #cookieTitle { font-size: 1.2rem; }
    .consent-actions { flex-direction: row; flex-wrap: wrap; }
    .consent-actions button { flex: 1 1 8rem; padding: .65rem; font-size: .65rem; }
    footer > div > p { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .reflect-text { background: none; -webkit-text-fill-color: #111; color: #111; }
    .glass-card:hover, .branch-card:hover, .logo-card:hover { transform: none; }
}
