/* Text/CTA buttons; icon and media controls keep their own component styles. */
.button { display:inline-flex; align-items:center; gap:var(--space-3); min-height:48px; padding:var(--space-3) var(--space-4); border:1px solid var(--line); color:var(--button-ink,var(--muted)); font-family:inherit; font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.button span { color:var(--acid); font-size:15px; }
.button:hover { border-color:var(--acid); color:var(--button-ink,var(--ink)); }
.button:focus-visible,.button--text:focus-visible { outline:2px solid var(--acid); outline-offset:3px; }
.button--primary { --button-ink:var(--ink); border-color:var(--accent-border); background:linear-gradient(135deg,rgba(125,224,206,.18),rgba(125,224,206,.05)); box-shadow:0 8px 22px rgba(0,0,0,.18); }
.button--primary:hover { background:linear-gradient(135deg,rgba(125,224,206,.26),rgba(125,224,206,.1)); }
.button--secondary { background:transparent; }
.button--compact { --button-ink:var(--ink); gap:9px; min-height:42px; padding:10px 14px; border-color:var(--accent-border); background:var(--accent-wash); font-family:var(--font-heading); letter-spacing:.03em; transition:background .18s ease,transform .18s ease; }
.button--compact span { font-size:16px; font-weight:400; }
.button--compact:hover { border-color:var(--accent-border); background:rgba(125,224,206,.19); transform:translateY(-1px); }
.button--text { display:inline-block; padding-bottom:5px; border-bottom:1px solid currentColor; font-size:13px; font-weight:600; }
.page-followup { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3); margin-top:var(--space-6); }
.page-followup .button { max-width:100%; }

/* Shared footer stays in document flow, outside the page's main content. */
.site-footer { border-top:1px solid var(--line); background:var(--paper); }
.site-footer__inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr) auto; align-items:start; gap:var(--space-6); padding:var(--space-6) var(--page-gutter); }
.site-footer__brand { display:inline-flex; align-items:center; gap:4px; min-height:44px; font:600 18px/1.2 var(--font-heading); letter-spacing:-.04em; }
.site-footer__brand span,.site-footer__brand[aria-current] { color:var(--acid); }
.site-footer__navigation { display:flex; flex-wrap:wrap; gap:0 18px; }
.site-footer__link { display:inline-flex; align-items:center; min-height:44px; color:var(--muted); font-size:12px; font-weight:500; }
.site-footer__link:hover,.site-footer__link[aria-current] { color:var(--acid); }
.site-footer__contact { display:grid; justify-items:start; gap:var(--space-2); }
.site-footer__contact .button--text { display:inline-flex; align-items:center; min-height:44px; padding-block:8px; color:var(--muted); border-color:var(--line); font-size:12px; }
.site-footer__contact .button--text:hover { color:var(--acid); }
.site-footer .social-button { flex-basis:44px; width:44px; height:44px; }
.site-footer a:focus-visible { outline:2px solid var(--acid); outline-offset:3px; }
@media (max-width:900px) {
  .site-footer__inner { grid-template-columns:minmax(0,1fr) auto; gap:var(--space-3) var(--space-6); }
  .site-footer__navigation { grid-column:1; }
  .site-footer__contact { grid-column:2; grid-row:1/3; }
}
@media (max-width:600px) {
  .site-footer__inner { grid-template-columns:minmax(0,1fr); }
  .site-footer__navigation,.site-footer__contact { grid-column:1; grid-row:auto; }
  .site-footer__contact { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2) var(--space-6); }
}

.button--compact { min-height:44px; }
@media(prefers-reduced-motion:reduce) { .button--compact { transition:none; } .button--compact:hover { transform:none; } }
.site-footer__link { min-width:44px; }

.error-page { display:grid; grid-template-rows:auto 1fr; min-height:100dvh; padding:max(clamp(82px,10vw,120px),var(--header-clearance)) var(--page-gutter) clamp(24px,4vw,48px); }
.error-page__content { max-width:var(--page-width); width:100%; margin:var(--section-space) auto; }
@media(max-width:720px) { .error-page { display:block; min-height:0; padding-top:max(76px,var(--header-clearance)); padding-bottom:28px; } }
