/* Site chrome (topbar, header, nav, footer) and layout primitives.
   Each breakpoint block sits directly after the rules it overrides. */

/* Topbar */
.topbar{background:var(--navy);color:#eaf1f7;font-size:.92rem}.topbar .container{display:flex;justify-content:space-between;gap:16px;padding:8px 0;flex-wrap:wrap}
@media(max-width:580px){.topbar .container{display:block}.topbar .container span{display:block;margin:3px 0}}

/* Header and primary nav */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid #e5eaf0}
.nav{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:.02em}.brand img{width:56px;height:56px}.brand span small{display:block;font-size:.68rem;color:var(--muted);font-weight:800;letter-spacing:.17em}
.navlinks{display:flex;gap:22px;align-items:center;font-weight:750}.navlinks a:hover,.navlinks a[aria-current="page"]{color:var(--blue)}
.menu{display:none;border:1px solid #d9e1e8;background:#fff;border-radius:10px;padding:8px 11px;font-size:1.25rem}
@media(max-width:860px){
  .menu{display:block}.navlinks{display:none;position:absolute;top:82px;left:0;right:0;background:#fff;padding:18px;box-shadow:0 16px 30px rgba(0,0,0,.1);flex-direction:column;align-items:stretch}.navlinks.open{display:flex}.navlinks .btn{width:100%}
}
@media(max-width:580px){.brand span{font-size:.88rem}}

/* Sections */
.section{padding:86px 0}.section.alt{background:var(--soft)}.section-head{max-width:730px;margin-bottom:35px}.section h2{font-size:clamp(2rem,4vw,3.25rem);line-height:1.12;margin:.2em 0}
@media(max-width:580px){.section{padding:65px 0}}

/* Grid primitives */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
@media(max-width:860px){.two-col{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}}

/* Footer */
footer{background:#061522;color:#cbd6df;padding:52px 0 24px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:34px}.footer-brand{display:flex;gap:12px;align-items:center;color:#fff;font-weight:900}.footer-brand img{width:54px}.footer-links{display:grid;gap:8px}.footer-links a:hover{color:#fff}.copyright{border-top:1px solid #203443;margin-top:35px;padding-top:20px;font-size:.9rem}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}

/* Collapses .grid-3 and .footer-grid to one column. Kept as a single rule and
   placed last so it still wins over both 860px overrides above. */
@media(max-width:580px){.grid-3,.footer-grid{grid-template-columns:1fr}}
