:root{--c1:#2a4d6a;--c2:#6a3a2a;--c3:#3a5a3a}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;display:flex}button,input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.hd{padding:var(--space-5) var(--space-16);flex:none;justify-content:space-between;align-items:center;width:100%;max-width:1440px;margin:0 auto;display:flex}.mark{font-family:var(--font-serif);font-weight:var(--fw-regular);font-size:var(--fs-lg);letter-spacing:-.01em;color:var(--color-muted);align-items:baseline;gap:var(--space-2);display:flex}.mark .sep{color:var(--color-muted);margin:0 var(--space-1)}.mark .url{color:var(--color-muted);font-weight:var(--fw-regular)}.nav{gap:var(--space-1);font-size:var(--fs-sm);align-items:center;display:flex}.nav a{color:var(--color-ink-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm)}.nav a:hover{color:var(--color-ink);background:color-mix(in srgb, var(--color-ink) 4%, transparent)}.nav .cta{background:var(--color-ink);color:var(--color-bg);padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);font-weight:var(--fw-medium);margin-left:var(--space-2)}.nav .cta:hover{background:var(--c2)}.intro{padding:var(--space-8) var(--space-16) var(--space-6);border-bottom:1px solid var(--color-rule);flex:none;width:100%;max-width:1440px;margin:0 auto;display:block}.intro h1{font-family:var(--font-serif);font-weight:var(--fw-medium);font-size:var(--fs-5xl);letter-spacing:-.025em;text-wrap:balance;margin:0;line-height:1}.intro h1 .em{font-style:italic;font-weight:var(--fw-regular);color:var(--color-muted)}.intro .right{font-size:var(--fs-sm);color:var(--color-ink-2);text-align:right;max-width:38ch;padding-bottom:var(--space-2);line-height:var(--lh-body)}.intro .right .lbl{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);font-weight:var(--fw-medium);margin-bottom:var(--space-2);display:block}.intro .right strong{color:var(--color-ink);font-weight:var(--fw-medium)}.cards{padding:var(--space-6) var(--space-16) var(--space-10);gap:var(--space-5);grid-template-columns:repeat(3,1fr);width:100%;max-width:1440px;margin:0 auto;display:grid}.card{background:var(--color-surface);border-radius:var(--radius-sm);padding:var(--space-8) var(--space-10) var(--space-8);border:1px solid var(--color-rule);cursor:pointer;flex-direction:column;min-height:300px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.card:before{content:"";height:10px;position:absolute;top:0;left:0;right:0}.card.c1:before{background:var(--c1)}.card.c2:before{background:var(--c2)}.card.c3:before{background:var(--c3)}.card:hover{box-shadow:0 18px 40px color-mix(in srgb, var(--color-ink) 8%, transparent);transform:translateY(-4px)}.card-tb{margin-bottom:var(--space-5);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);font-weight:var(--fw-medium);justify-content:space-between;align-items:baseline;display:flex}.card.c1 .card-tb .accent{color:var(--c1)}.card.c2 .card-tb .accent{color:var(--c2)}.card.c3 .card-tb .accent{color:var(--c3)}.card-num{font-family:var(--font-serif);font-style:italic;font-weight:var(--fw-regular);font-size:var(--fs-lg);color:var(--color-muted)}.card h2{font-family:var(--font-serif);font-weight:var(--fw-medium);font-size:var(--fs-3xl);line-height:var(--lh-tight);letter-spacing:-.02em;margin:0 0 var(--space-4);text-wrap:balance}.card h2 .em{font-style:italic;font-weight:var(--fw-regular);color:var(--color-muted)}.card p{font-size:var(--fs-sm);color:var(--color-ink-2);line-height:var(--lh-body);margin:0 0 var(--space-8);text-wrap:pretty}.card .cta{margin-top:auto}.cards .card .cta{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:var(--lh-snug);min-height:var(--tap);width:100%;transition:filter .15s,box-shadow .15s;display:inline-flex}.cards .card.c1 .cta{background:var(--c1);color:var(--color-accent-ink)}.cards .card.c2 .cta{background:var(--c2);color:var(--color-accent-ink)}.cards .card.c3 .cta{background:var(--c3);color:var(--color-accent-ink)}.cards .card:hover .cta{filter:brightness(.88);box-shadow:0 4px 14px color-mix(in srgb, var(--color-ink) 18%, transparent)}.card .cta .ar{font-size:var(--fs-lg);flex-shrink:0;transition:transform .2s}.card:hover .cta .ar{transform:translate(4px)}.contact-options{padding:0 var(--space-16) var(--space-12);gap:var(--space-8);grid-template-columns:.8fr 1.2fr;align-items:stretch;width:100%;max-width:1440px;margin:0 auto;display:grid}.contact-copy{border-top:1px solid var(--color-rule);padding-top:var(--space-6)}.contact-copy .lbl{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);font-weight:var(--fw-medium);margin-bottom:var(--space-2);display:block}.contact-copy h2{font-family:var(--font-serif);font-weight:var(--fw-medium);font-size:var(--fs-4xl);line-height:var(--lh-tight);letter-spacing:-.02em;margin:0 0 var(--space-3)}.contact-copy p{color:var(--color-ink-2);max-width:48ch;margin:0}.contact-links{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.contact-link{background:var(--color-surface);border:1px solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-6);gap:var(--space-2);flex-direction:column;min-height:180px;transition:transform .2s,box-shadow .2s;display:flex}.contact-link:hover{box-shadow:0 14px 30px color-mix(in srgb, var(--color-ink) 8%, transparent);transform:translateY(-2px)}.contact-link span{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);font-weight:var(--fw-medium)}.contact-link strong{font-family:var(--font-serif);font-weight:var(--fw-medium);font-size:var(--fs-2xl);line-height:var(--lh-tight);color:var(--color-ink)}.contact-link em{color:var(--color-ink-2);font-style:normal;font-size:var(--fs-sm);line-height:var(--lh-snug);margin-top:auto}.software-link strong{color:var(--c1)}.trade-link strong{color:var(--c2)}.press-link strong{color:var(--c3)}.home-contact{width:100%;max-width:1440px;padding:var(--space-6) var(--space-16) var(--space-10);text-align:center;margin:0 auto}.home-intro{font-family:var(--font-serif);font-size:var(--fs-xl);line-height:var(--lh-body);color:var(--color-ink-2);margin:0 auto var(--space-5);text-wrap:balance}.home-intro strong{color:var(--color-ink);font-weight:var(--fw-medium)}.home-reach{gap:var(--space-2) var(--space-5);font-size:var(--fs-md);flex-wrap:wrap;justify-content:center;align-items:baseline;display:flex}.home-reach .hr-lbl{color:var(--color-muted)}.home-reach .hr-phone{color:var(--color-ink);font-weight:var(--fw-semibold)}.home-reach .hr-phone:hover{color:var(--c2)}.home-reach .hr-loc{color:var(--color-ink-2)}.foot{padding:var(--space-5) var(--space-16) var(--space-8);width:100%;max-width:1440px;font-size:var(--fs-xs);color:var(--color-muted);border-top:1px solid var(--color-rule);flex:none;justify-content:space-between;margin:auto auto 0;display:flex}.foot a:hover{color:var(--color-ink)}@media (min-width:1200px){.mark{font-size:var(--fs-xl)}.intro h1{font-size:var(--fs-6xl)}.cards{gap:var(--space-8);padding-bottom:var(--space-12)}.card{padding:var(--space-8);grid-template-rows:subgrid;grid-row:span 4;row-gap:0;min-height:340px;display:grid}.card h2{font-size:var(--fs-4xl)}.card p{font-size:var(--fs-md);margin-bottom:var(--space-8)}.cards .card .cta{font-size:var(--fs-md);padding:var(--space-4) var(--space-6)}.home-intro{font-size:var(--fs-2xl)}}@media (max-width:1199px){.mark{min-height:var(--tap);align-items:center}.home-reach .hr-phone{min-height:var(--tap);align-items:center;display:inline-flex}.hd{padding:var(--space-5) var(--space-6);align-items:flex-start;gap:var(--space-4)}.nav{flex-wrap:wrap;justify-content:flex-end}.intro{padding:var(--space-8) var(--space-6);gap:var(--space-5);grid-template-columns:1fr}.intro .right{text-align:left}.cards{padding:var(--space-8) var(--space-6) var(--space-10);grid-template-columns:1fr}.card{min-height:auto;padding:var(--space-6)}.contact-options{padding:0 var(--space-6) var(--space-8);grid-template-columns:1fr}.contact-links{grid-template-columns:1fr}.home-contact{padding:var(--space-5) var(--space-6) var(--space-8)}.home-intro{font-size:var(--fs-lg)}.foot{padding:var(--space-5) var(--space-6) var(--space-8)}}main{flex:1}.cards .card{min-width:0}@media (min-width:720px) and (max-width:1199px){.cards{gap:var(--space-4)}.card-tb,.card h2{margin-bottom:var(--space-3)}.card p{margin-bottom:var(--space-5)}.cards .card .cta{align-self:flex-start;width:auto;min-width:320px}}@media (max-width:719px){.mark{font-size:var(--fs-md);gap:var(--space-1);flex-wrap:wrap}.mark .sep{margin-inline:2px}.intro{padding-top:var(--space-4);padding-bottom:var(--space-6)}.intro h1{font-size:clamp(var(--fs-4xl), 8vw, var(--fs-5xl))}.cards{padding-top:var(--space-5);gap:var(--space-4)}.card{padding:var(--space-6) var(--space-5) var(--space-5)}.card-tb{margin-bottom:var(--space-3);letter-spacing:.1em}.card h2{margin-bottom:var(--space-3)}.card p{margin-bottom:var(--space-4)}.cards .card .cta{padding:var(--space-3) var(--space-4)}}@media (prefers-reduced-motion:reduce){.card,.card .cta,.card .cta .ar{transition:none}.card:hover,.card:hover .cta .ar{transform:none}}.directory{width:100%;max-width:1440px;padding:var(--space-2) var(--space-16) var(--space-12);border-top:1px solid var(--color-rule);margin:0 auto}.dir-head{padding:var(--space-8) 0 var(--space-5)}.dir-head h2{font-family:var(--font-serif);font-weight:var(--fw-medium);font-size:var(--fs-2xl);line-height:var(--lh-snug);letter-spacing:-.02em;margin:0 0 var(--space-2);color:var(--color-ink)}.dir-head p{color:var(--color-muted);font-size:var(--fs-sm);margin:0}.dir-cols{gap:var(--space-8);grid-template-columns:repeat(4,1fr);display:grid}.dir-group+.dir-group{margin-top:var(--space-6)}.dir-group summary{cursor:default;pointer-events:none;list-style:none}.dir-group summary::-webkit-details-marker{display:none}.dir-group h3{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);font-weight:var(--fw-medium);margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-rule)}.dir-group ul{margin:0;padding:0;list-style:none}.dir-group li{margin:0 0 2px}.dir-group a{padding:var(--space-1) 0;font-size:var(--fs-sm);line-height:var(--lh-snug);color:var(--color-ink-2);text-wrap:pretty;display:block}.dir-group a:hover{color:var(--color-ink);text-underline-offset:3px;text-decoration:underline}@media (max-width:1199px){.directory{padding:var(--space-2) var(--space-6) var(--space-10)}.dir-cols{gap:var(--space-6);grid-template-columns:repeat(2,1fr)}.dir-group a{min-height:var(--tap);align-items:center;padding:0;display:flex}}@media (max-width:719px){.directory{padding:var(--space-1) var(--space-6) var(--space-8)}.dir-cols{grid-template-columns:1fr;gap:0}.dir-head{padding:var(--space-6) 0 var(--space-4)}.dir-head h2{font-size:var(--fs-xl)}.dir-group+.dir-group{margin-top:var(--space-6)}}@media (max-width:639px){.dir-group+.dir-group{margin-top:0}.dir-group{border-bottom:1px solid var(--color-rule)}.dir-group summary{min-height:var(--tap);cursor:pointer;pointer-events:auto;justify-content:space-between;align-items:center;display:flex}.dir-group summary:after{content:"+";font-size:var(--fs-xl);color:var(--color-muted)}.dir-group[open] summary:after{content:"−"}.dir-group h3{border-bottom:0;margin:0;padding:0}.dir-group ul{padding-bottom:var(--space-3)}}