/* Small static-site behaviours layered over the original, compiled styling. */
[hidden] { display: none !important; }
html { scroll-padding-top: 112px; }
section[id] { scroll-margin-top: 0; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
summary svg { transition: transform .2s; }
details[open] > summary svg { transform: rotate(180deg); }
.services-menu > div::before { content: ''; position: absolute; height: 12px; top: -12px; left: 0; right: 0; }
#mobile-menu { max-height: calc(100dvh - 112px); overflow-y: auto; }
header.is-scrolled { box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); }
a.static-link:not(.inline-flex) { display: block; }
a.static-link.inline-flex { display: inline-flex; }
:focus-visible { outline: 3px solid #9bc64b; outline-offset: 4px; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 100; padding: 12px 20px; color: #fff; background: #175e1b; }
.skip-link:focus { top: 12px; }
#form-status:empty { display: none; }
#form-status { padding: 12px 16px; border-radius: 8px; background: #eef6e8; color: #175e1b; }
#form-status[data-error] { color: #991b1b; background: #fef2f2; }
input, textarea, select { max-width: 100%; }
a[href^="mailto:"] { overflow-wrap: anywhere; }
@media (max-width: 767px) {
 #about .grid-cols-2 { gap: 16px; }
 #about .grid-cols-2 > div { padding: 20px 12px; }
 #home { background-attachment: scroll !important; }
}
@media (prefers-reduced-motion: no-preference) {
 [data-reveal].revealing { animation: reveal .6s ease both; }
 @keyframes reveal { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
nav[aria-label="Main navigation"] > a[aria-current="page"] { text-decoration: underline; text-decoration-color: hsl(var(--accent)); text-underline-offset: 7px; text-decoration-thickness: 2px; }
@media (max-width: 767px) {
 main .mt-20 a.inline-flex { max-width: 100%; white-space: normal; height: auto; min-height: 48px; text-align: center; }
 main .mt-20 a.inline-flex.px-10 { padding: 16px 24px; }
}
/* Privacy and website terms use the existing brand palette. */
.legal-page { padding-top: 112px; flex: 1; background: #fff; }
.legal-wrap { width: min(100% - 40px, 860px); margin-inline: auto; }
.legal-intro { padding: 64px 0 48px; background: hsl(var(--muted)); }
.legal-eyebrow { color: hsl(var(--muted-foreground)); font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 12px; }
.legal-intro h1 { font-size: clamp(36px, 5vw, 56px); font-weight: 700; line-height: 1.1; color: hsl(var(--primary)); margin-bottom: 20px; }
.legal-intro p:last-child { color: hsl(var(--muted-foreground)); }
.legal-copy { padding-block: 48px 80px; font-size: 17px; line-height: 1.8; color: hsl(var(--foreground)); }
.legal-copy h2 { margin: 32px 0 12px; font-size: 24px; line-height: 1.3; font-weight: 700; color: hsl(var(--primary)); }
.legal-copy p { margin-bottom: 18px; }
.legal-copy a, .quote-privacy-note a { text-decoration: underline; text-underline-offset: 3px; color: hsl(var(--primary)); overflow-wrap: anywhere; }
.legal-copy a:hover, .quote-privacy-note a:hover { color: hsl(var(--muted-foreground)); }
.quote-privacy-note { color: hsl(var(--muted-foreground)); font-size: 14px; line-height: 1.6; }
@media (max-width: 767px) { .legal-intro { padding-block: 40px 32px; } .legal-copy { padding-block: 32px 56px; font-size: 16px; } }
