/* components.css — Crispframe components | Depends on tokens/base/layout
   .btn/--primary/secondary/ghost/--sm/lg | .site-header/__inner/__brand/__logo/__nav/__mobile + .nav/__list/__link/--active + .nav-toggle/__bar (.is-open)
   .hero/__content/__eyebrow/__title/__lead/__actions/__media + .hero-section .hero (canonical 2-col grid via themes.css); .hero__inner/--compact/--center are deprecated aliases
   .card/__media/__body/__eyebrow/__title/__text/__link/__action | .stats/__item/__value/__label (canonical; .stat alias deprecated)
   .logo-cloud/__item/__logo/__name + link reset | .testimonial (single definition: quote ::before + author border + avatar bg/border)
   .faq/__item/__question/__answer (details/summary) | .cta/__title/__text/__actions/--dark/--brand | .text-image/__content/__title/__lead/__media
   .process/__step/__number/__title/__text | .contact/__details/__list/__item/__label/__value/__note/__media/__image
   .intro__action + .prose--intro | .site-footer/__inner/__cols(=__grid)/__brand/__logo/__tagline/__heading/__nav/__list/__bottom(=__legal)/__socials/__social-link/__blurb/__address/__legal-links
   .icon alignment | .form/__field/__label/__input/__textarea/__select/__hint/__error/__actions/__row | .breadcrumb/__list/__item/__link/__current | .badge
   Canonical section variants: .section--default/subtle/dark/brand (templates emit these); .section--bg-* deprecated alias in layout.css */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:2.75rem;padding:.6rem 1.1rem;font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:1;text-decoration:none;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);user-select:none}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}
.btn--primary:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover);color:#fff}
.btn--secondary{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border-strong)}
.btn--secondary:hover{background:var(--color-bg-subtle);border-color:var(--color-text-muted);color:var(--color-text)}
.btn--ghost{background:transparent;color:var(--color-text);border-color:transparent}
.btn--ghost:hover{background:var(--color-bg-subtle);color:var(--color-text)}
.section--dark .btn--secondary{background:transparent;color:var(--color-on-dark);border-color:rgba(255,255,255,.25)}
.section--brand .btn--secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.25)}
.section--dark .btn--secondary:hover,.section--brand .btn--secondary:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4)}
.section--dark .btn--ghost{color:var(--color-on-dark)}
.section--brand .btn--ghost{color:#fff}
.section--dark .btn--ghost:hover,.section--brand .btn--ghost:hover{background:rgba(255,255,255,.08)}
.btn--sm{min-height:2rem;padding:.35rem .75rem;font-size:var(--text-xs)}
.btn--lg{min-height:3rem;padding:.75rem 1.35rem;font-size:var(--text-base)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.site-header{position:sticky;top:0;z-index:var(--z-header);background:rgba(255,255,255,.9);backdrop-filter:saturate(1.2) blur(8px);border-block-end:1px solid var(--color-border)}
@supports not (backdrop-filter:blur(8px)){.site-header{background:var(--color-bg)}}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);min-height:var(--header-height);width:min(100% - 2*var(--container-gutter),var(--container-default));margin-inline:auto}
.site-header__brand{display:inline-flex;align-items:center;gap:var(--space-sm);text-decoration:none;color:var(--color-text);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:1}
.site-header__logomark{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-brand),var(--color-brand-ink));color:#fff;flex-shrink:0;transition:transform var(--transition-fast)}
.site-header__logomark .icon{width:1.25rem;height:1.25rem}
.site-header__logotype{font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);font-size:1.02rem;white-space:nowrap;line-height:1}
.site-header__brand:hover .site-header__logomark{transform:scale(1.04) rotate(-3deg)}
.site-header__brand:focus-visible .site-header__logomark{transform:scale(1.04) rotate(-3deg)}
.site-header__logo{width:2rem;height:2rem;border-radius:var(--radius-sm);background:var(--color-brand);color:#fff;display:inline-grid;place-items:center;font-size:var(--text-sm);font-weight:var(--font-weight-bold)}
img.site-header__logo{width:auto;height:2rem;background:none;border-radius:0;display:block;object-fit:contain}
.site-header__nav{display:flex;align-items:center;gap:var(--space-lg)}
.nav__list{display:flex;align-items:center;gap:var(--space-sm);list-style:none;padding:0;margin:0}
/* Reset global base.css li+li rhythm inside horizontal/grid component lists — otherwise 2nd+ item drops a line */
.nav__list>li+li,.site-nav__list>li+li,.site-footer__socials>li+li,.site-footer__legal-links>li+li,.cards>li+li,.logo-cloud>li+li,.process>li+li{margin-block-start:0}
.nav__link{display:inline-flex;align-items:center;position:relative;min-height:2.25rem;padding:.35rem .6rem;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}
.nav__link::after{content:"";position:absolute;left:.6rem;right:.6rem;bottom:3px;height:2px;background:var(--color-brand);border-radius:1px;transform:scaleX(0);transform-origin:center;transition:transform var(--transition-fast)}
.nav__link:hover{color:var(--color-text);background:var(--color-bg-subtle)}
.nav__link:hover::after{transform:scaleX(1)}
.nav__link:focus-visible{outline-offset:2px}
.nav__link--active{color:var(--color-brand);background:var(--color-bg-subtle)}
.nav__link--active::after{transform:scaleX(1)}
/* Parent with children gets chevron; underline moves to ::before to keep both effects */
.nav__item.has-children,.site-nav__item.has-children{position:relative}
.nav__item.has-children>.nav__link,.site-nav__item.has-children>.site-nav__link{padding-inline-end:1.35rem}
.nav__item.has-children>.nav__link::after,.site-nav__item.has-children>.site-nav__link::after{left:auto;right:.45rem;bottom:auto;top:50%;width:0;height:0;background:none;border-radius:0;transform:translateY(-35%) rotate(0);border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:.7;transition:transform var(--transition-fast),opacity var(--transition-fast)}
.nav__item.has-children>.nav__link::before,.site-nav__item.has-children>.site-nav__link::before{content:"";position:absolute;left:.6rem;right:1.2rem;bottom:3px;height:2px;background:var(--color-brand);border-radius:1px;transform:scaleX(0);transform-origin:center;transition:transform var(--transition-fast)}
.nav__item.has-children>.nav__link:hover::before,.site-nav__item.has-children>.site-nav__link:hover::before,.nav__item.has-children>.nav__link--active::before{transform:scaleX(1)}
.nav__item.has-children:hover>.nav__link::after,.site-nav__item.has-children:hover>.site-nav__link::after,.nav__item.has-children:focus-within>.nav__link::after,.site-nav__item.has-children:focus-within>.site-nav__link::after,.nav__item.has-children.is-open>.nav__link::after,.site-nav__item.has-children.is-open>.site-nav__link::after,.nav__item.has-children:has(> .nav__link[aria-expanded="true"])>.nav__link::after{transform:translateY(-35%) rotate(180deg);opacity:1}
@media (min-width:48rem){
  .nav__submenu,.site-nav__submenu{position:absolute;top:100%;left:0;min-width:13rem;display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);margin:var(--space-xs) 0 0;list-style:none;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity var(--transition-fast),transform var(--transition-fast),visibility var(--transition-fast);z-index:var(--z-overlay)}
  .nav__item.has-children:hover>.nav__submenu,.site-nav__item.has-children:hover>.site-nav__submenu,.nav__item.has-children:focus-within>.nav__submenu,.site-nav__item.has-children:focus-within>.site-nav__submenu,.nav__item.has-children.is-open>.nav__submenu,.site-nav__item.has-children.is-open>.site-nav__submenu,.nav__item.has-children:has(> .nav__link[aria-expanded="true"])>.nav__submenu{opacity:1;visibility:visible;transform:translateY(0)}
  .nav__submenu .nav__link,.site-nav__submenu .site-nav__link,.nav__submenu .nav__link,.site-nav__submenu .nav__link{display:flex;min-height:2.25rem;padding:.5rem var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-muted)}
  .nav__submenu .nav__link:hover,.site-nav__submenu .site-nav__link:hover{background:var(--color-bg-subtle);color:var(--color-text)}
  .nav__submenu .nav__link::after,.site-nav__submenu .site-nav__link::after{display:none}
  .nav__submenu .nav__link::before,.site-nav__submenu .site-nav__link::before{display:none}
}
@media (max-width:47.99rem){
  .nav__submenu,.site-nav__submenu{list-style:none;padding:0;margin:.35rem 0 0;padding-inline-start:var(--space-md);border-inline-start:1px solid var(--color-border);display:flex;flex-direction:column;gap:2px}
  .nav__submenu .nav__link,.site-nav__submenu .site-nav__link{min-height:2.5rem;padding:.5rem var(--space-sm)}
  .nav__submenu .nav__link::after,.site-nav__submenu .site-nav__link::after{display:none}
}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text)}
.nav-toggle:hover{background:var(--color-bg-subtle)}
.nav-toggle__bar,.nav-toggle__bar::before,.nav-toggle__bar::after{display:block;width:1rem;height:2px;background:currentColor;border-radius:1px;content:"";transition:transform var(--transition-base),opacity var(--transition-base)}
.nav-toggle__bar::before{transform:translateY(-5px)}
.nav-toggle__bar::after{transform:translateY(3px)}
.site-header.is-open .nav-toggle__bar{background:transparent}
.site-header.is-open .nav-toggle__bar::before{transform:translateY(1px) rotate(45deg)}
.site-header.is-open .nav-toggle__bar::after{transform:translateY(-1px) rotate(-45deg)}
@media (max-width:47.99rem){
  .site-header__nav{display:none !important} /* mobile: only .site-header__mobile when open — neutralized is-open nav rule */
  .site-header.is-open .site-header__nav{display:none !important}
  .nav__list{flex-direction:column;align-items:stretch}
  .nav__link{min-height:2.75rem;padding-inline:var(--space-sm)}
}
@media (min-width:48rem){.nav-toggle{display:none}}
.hero{padding-block:var(--space-3xl) var(--space-2xl);background:var(--color-bg)}
@media (min-width:48rem){.hero{padding-block:var(--space-4xl)}}
.hero--compact{padding-block:var(--space-2xl)}
.hero__inner{width:min(100% - 2*var(--container-gutter),var(--container-default));margin-inline:auto;display:grid;gap:var(--space-xl);align-items:center}
@media (min-width:64rem){
  .hero__inner{grid-template-columns:1.05fr .95fr;gap:var(--space-2xl)}
  .hero--center .hero__inner{grid-template-columns:1fr;max-width:42rem;margin-inline:auto;text-align:center}
  .hero--center .hero__content{align-items:center}
  .hero--center .hero__actions{justify-content:center}
}
.hero__content{display:flex;flex-direction:column;gap:var(--space-md);min-width:0}
.hero__eyebrow{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-brand)}
.hero__title{font-size:var(--text-h1);line-height:1.08;letter-spacing:var(--tracking-tight);max-width:18ch;text-wrap:balance}
.hero__lead{font-size:var(--text-md);line-height:var(--leading-normal);color:var(--color-text-muted);max-width:55ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-block-start:var(--space-sm)}
.hero__media{border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-muted);border:1px solid var(--color-border);aspect-ratio:4/3}
.hero__media img{width:100%;height:100%;object-fit:cover}
.card{display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow);overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}
.card:hover{border-color:var(--color-border-strong)}
.card__media{aspect-ratio:16/10;overflow:hidden;background:var(--color-bg-muted);border-block-end:1px solid var(--color-border)}
.card__media img{width:100%;height:100%;object-fit:cover}
.card__body{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);flex:1}
.card__eyebrow{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}
.card__title{font-size:1.05rem;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}
.card__title a{color:inherit;text-decoration:none}
.card__title a:hover{color:var(--color-brand)}
.card__text{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted)}
.card__link{margin-block-start:auto;padding-block-start:var(--space-sm);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-brand);text-decoration:none}
.card__link:hover{color:var(--color-brand-ink);text-decoration:underline;text-underline-offset:2px}
.card__action{margin-block-start:auto;padding-block-start:var(--space-sm);display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg);border-block:1px solid var(--color-border);padding-block:var(--space-xl)}
@media (min-width:48rem){.stats{grid-template-columns:repeat(4,1fr)}}
.stats__item,.stat{display:flex;flex-direction:column;gap:.2rem}
.stats__value,.stat__value{font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--font-weight-bold);line-height:1;letter-spacing:var(--tracking-tight);color:var(--color-text)}
.stats__label,.stat__label{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-snug)}
.section--dark .stats__value,.section--dark .stat__value{color:var(--color-on-dark)}
.section--brand .stats__value,.section--brand .stat__value{color:#fff}
.section--dark .stats__label,.section--dark .stat__label{color:var(--color-on-dark-muted)}
.section--brand .stats__label,.section--brand .stat__label{color:rgba(255,255,255,.82)}
.logo-cloud{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-lg) var(--space-xl);padding-block:var(--space-lg)}
.logo-cloud__item{filter:grayscale(1);opacity:.65;transition:opacity var(--transition-fast),filter var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);letter-spacing:.04em;color:var(--color-text-muted);white-space:nowrap}
.logo-cloud__item:hover{opacity:1;filter:grayscale(0)}
.logo-cloud__item img{max-height:1.75rem;width:auto;object-fit:contain;filter:grayscale(1);opacity:.7}
.logo-cloud a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-sm)}
.logo-cloud__logo{max-height:2rem;width:auto;object-fit:contain;display:block;filter:grayscale(1);opacity:.75}
.logo-cloud__logo:hover{filter:grayscale(0);opacity:1}
.testimonial{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:var(--shadow)}
.testimonial__figure{margin:0;display:flex;flex-direction:column;gap:var(--space-md);flex:1}
.testimonial__quote{font-size:var(--text-md);line-height:var(--leading-normal);color:var(--color-text);text-wrap:pretty}
.testimonial__quote::before{content:"\201C";color:var(--color-brand);font-weight:var(--font-weight-bold);margin-inline-end:.1em}
.testimonial__author{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-sm);align-items:center;margin-block-start:auto;padding-block-start:var(--space-sm);border-block-start:1px solid var(--color-border)}
.testimonial__avatar{grid-row:span 2;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-bg-muted);border:1px solid var(--color-border);overflow:hidden;flex-shrink:0;object-fit:cover}
.testimonial__avatar img{width:100%;height:100%;object-fit:cover}
.testimonial__name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:1.2}
.testimonial__role{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.3}
.faq{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg);color:var(--color-text)}
.faq__item{border-block-end:1px solid var(--color-border)}
.faq__item:last-child{border-block-end:0}
.faq__question{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:var(--leading-snug);cursor:pointer;user-select:none}
.faq__question::-webkit-details-marker{display:none}
.faq__question::after{content:"+";flex-shrink:0;width:1.5rem;height:1.5rem;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);transition:transform var(--transition-fast),background var(--transition-fast)}
.faq__item[open] .faq__question::after{content:"\2013";background:var(--color-bg-subtle)}
.faq__answer{padding:0 var(--space-lg) var(--space-lg);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted);max-width:var(--measure)}
.cta{border-radius:var(--radius-md);padding:var(--space-xl);background:var(--color-bg-subtle);color:var(--color-text);border:1px solid var(--color-border);text-align:center}
@media (min-width:48rem){.cta{padding:var(--space-2xl) var(--space-xl)}}
.cta__title{font-size:var(--text-h2);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}
.cta__text{margin-block-start:var(--space-sm);margin-inline:auto;max-width:50ch;font-size:var(--text-md);line-height:var(--leading-normal);color:var(--color-text-muted)}
.cta__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);margin-block-start:var(--space-lg)}
.cta--dark{background:var(--color-dark);color:var(--color-on-dark);border-color:transparent}
.cta--dark .cta__text{color:var(--color-on-dark-muted)}
.cta--brand{background:var(--color-brand);color:#fff;border-color:transparent}
.cta--brand .cta__text{color:rgba(255,255,255,.85)}
.cta--brand .btn--primary{background:#fff;color:var(--color-brand);border-color:#fff}
.cta--brand .btn--primary:hover{background:var(--color-bg-subtle)}
.cta--brand .btn--secondary,.cta--brand .btn--ghost{color:#fff;border-color:rgba(255,255,255,.35)}
.cta--brand .btn--secondary:hover,.cta--brand .btn--ghost:hover{background:rgba(255,255,255,.12)}
.site-footer{background:var(--color-dark);color:var(--color-on-dark);padding-block:var(--space-2xl) var(--space-xl)}
.site-footer a{color:var(--color-on-dark-muted);text-decoration:none}
.site-footer a:hover{color:var(--color-on-dark);text-decoration:underline;text-underline-offset:2px}
.site-footer__inner{width:min(100% - 2*var(--container-gutter),var(--container-default));margin-inline:auto}
.site-footer__cols,.site-footer__grid{display:grid;gap:var(--space-xl)}
@media (min-width:48rem){.site-footer__cols,.site-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.site-footer__brand{display:flex;flex-direction:column;gap:var(--space-sm)}
.site-footer__logo{font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-on-dark);text-decoration:none}
.site-footer__tagline{font-size:var(--text-sm);color:var(--color-on-dark-muted);line-height:var(--leading-normal);max-width:30ch}
.site-footer__heading{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-on-dark);margin-block-end:var(--space-sm)}
.site-footer__socials{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);list-style:none;padding:0;margin:var(--space-md) 0 0}
.site-footer__social-link{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:rgba(255,255,255,.08);color:var(--color-on-dark-muted);text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast)}
.site-footer__social-link:hover{background:rgba(255,255,255,.14);color:var(--color-on-dark);text-decoration:none}
.site-footer__blurb{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-on-dark-muted);max-width:32ch}
.site-footer__address{font-style:normal;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-on-dark-muted)}
.site-footer__address p{margin:0}
.site-footer__legal-links{display:flex;flex-wrap:wrap;gap:var(--space-md);list-style:none;padding:0;margin:0}
.site-footer__legal-links a{font-size:var(--text-xs)}
.site-footer__nav,.site-footer__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem}
.site-footer__nav a{font-size:var(--text-sm)}
.site-footer__bottom,.site-footer__legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);margin-block-start:var(--space-xl);padding-block-start:var(--space-lg);border-block-start:1px solid rgba(255,255,255,.1);font-size:var(--text-xs);color:var(--color-on-dark-muted)}
.form{display:flex;flex-direction:column;gap:var(--space-lg)}
.form__field{display:flex;flex-direction:column;gap:.35rem}
.form__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text);line-height:1.3}
.form__label--required::after{content:" *";color:#dc2626}
.form__input,.form__textarea,.form__select{width:100%;min-height:2.75rem;padding:.6rem .75rem;font-size:var(--text-sm);line-height:1.4;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);appearance:none}
.form__input::placeholder,.form__textarea::placeholder{color:var(--color-text-faint)}
.form__input:hover,.form__textarea:hover,.form__select:hover{border-color:var(--color-text-muted)}
.form__input:focus,.form__textarea:focus,.form__select:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px rgba(26,86,219,.15)}
.form__input[aria-invalid="true"],.form__textarea[aria-invalid="true"],.form__select[aria-invalid="true"]{border-color:#dc2626}
.form__input[aria-invalid="true"]:focus,.form__textarea[aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(220,38,38,.15)}
.form__textarea{min-height:6rem;resize:vertical}
.form__select{background-image:linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position:calc(100% - 1rem) calc(50% - 2px),calc(100% - .7rem) calc(50% - 2px);background-size:6px 6px;background-repeat:no-repeat;padding-inline-end:2rem}
.form__hint{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-snug)}
.form__error{font-size:var(--text-xs);color:#dc2626;line-height:var(--leading-snug)}
.form__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}
.form__row{display:grid;gap:var(--space-md)}
@media (min-width:48rem){.form__row--2{grid-template-columns:1fr 1fr}}
.breadcrumb{font-size:var(--text-xs);color:var(--color-text-muted);padding-block:var(--space-sm)}
.breadcrumb__list{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;list-style:none;padding:0;margin:0;overflow-x:auto;white-space:nowrap}
.breadcrumb__item{display:inline-flex;flex:none;align-items:center;gap:.35rem;margin:0;max-width:none}
.breadcrumb__sep{color:var(--color-text-muted)}
.breadcrumb__link{color:var(--color-text-muted);text-decoration:none}
.breadcrumb__link:hover{color:var(--color-text);text-decoration:underline;text-underline-offset:2px}
.breadcrumb__current{color:var(--color-text);font-weight:var(--font-weight-medium)}
.badge{display:inline-flex;align-items:center;padding:.15rem .45rem;font-size:var(--text-xs);font-weight:var(--font-weight-medium);letter-spacing:.02em;color:var(--color-brand);background:#eff6ff;border:1px solid #dbeafe;border-radius:var(--radius-pill);white-space:nowrap}
.icon{display:inline-block;vertical-align:middle;flex-shrink:0;fill:currentColor}
.site-nav__list{list-style:none;padding:0;margin:0}
.site-nav__link{color:var(--color-text-muted);text-decoration:none}
/* aliases .site-footer__grid/__legal resolved above; .site-footer__list grouped with .site-footer__nav above */
.site-footer__link{color:var(--color-on-dark-muted);text-decoration:none}
.site-footer__link:hover{color:var(--color-on-dark)}
.site-header__mobile{position:fixed;inset:var(--header-height) 0 0 auto;width:min(22rem,88vw);background:var(--color-bg);border-inline-start:1px solid var(--color-border);border-block-end:1px solid var(--color-border);box-shadow:var(--shadow);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);transform:translateX(100%);transition:transform var(--transition-base);overflow-y:auto;z-index:var(--z-overlay)}
.site-header__mobile[hidden]{display:none;transform:translateX(100%)}
.site-header__mobile:not([hidden]){display:flex;transform:translateX(0)}
.site-header__mobile .nav__list,.site-header__mobile .site-nav__list{flex-direction:column;align-items:stretch;gap:2px}
.site-header__mobile .nav__link,.site-header__mobile .site-nav__link{min-height:2.75rem;padding:.6rem var(--space-sm);font-size:var(--text-base);border-radius:var(--radius-sm)}
.site-header__mobile .nav__link::after,.site-header__mobile .site-nav__link::after{display:none}
.site-header__mobile .nav__link::before,.site-header__mobile .site-nav__link::before{display:none}
.site-header__actions{display:flex;align-items:center;gap:var(--space-sm)}
/* stats canonical defined above with .stats__* + .stat alias — single definition */
.project-card{display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}
.project-card__media{aspect-ratio:16/10;overflow:hidden;background:var(--color-bg-muted)}
.project-card__media img{width:100%;height:100%;object-fit:cover}
.project-card__body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}
.project-card__category{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}
.person-card{display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}
.person-card__media{aspect-ratio:1/1;overflow:hidden;background:var(--color-bg-muted)}
.person-card__media img{width:100%;height:100%;object-fit:cover}
.person-card__body{padding:var(--space-lg)}
.person-card__role{font-size:var(--text-sm);color:var(--color-text-muted)}
/* testimonial single definition is above (95-102) — preserves box-shadow, quote ::before, author border, avatar bg/border */
