.site-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:1000;
  background:rgba(22, 60, 47, 0.94);
  backdrop-filter: blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transform:translateY(0);
  transition:transform .28s ease, background .28s ease;
}
.site-header.is-hidden{ transform:translateY(-100%); }

.header-inner{
  min-height:var(--header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.brand{
  display:flex;
  align-items:center;
  gap:.9rem;
  min-width:0;
}
.brand img{
  width:58px;
  height:58px;
  object-fit:contain;
  background:#fff;
  border-radius:50%;
  padding:.35rem;
}
.brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.brand-text strong{
  font-size:1rem;
  letter-spacing:-0.02em;
}
.brand-text strong{
  color:var(--header-footer-text);
}

.brand-text small{
  color:var(--header-footer-muted);
}

.site-nav{
  display:flex;
  align-items:center;
  gap:1.2rem;
}
.site-nav a{
  font-weight:600;
  color:var(--header-footer-muted);
}
.site-nav a.is-active,
.site-nav a:hover{
  color:var(--header-footer-text);
}

.nav-toggle{
  display:none;
  background:none;
  border:0;
  padding:0;
}
.nav-toggle span{
  display:block;
  width:24px;
  height:2px;
  background:var(--header-footer-text);
  margin:5px 0;
  border-radius:999px;
}

.site-footer h3{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px;
  margin-bottom:1rem;
}
.footer-brand-row strong,
.footer-brand-row p{
  color:#fff;
}
.footer-list a:hover,
.footer-link-button:hover{
  color:var(--accent);
}

.site-footer{
  background:var(--header-footer-bg);
  color:var(--header-footer-text);
  padding:3rem 0 1rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:2rem;
}
.footer-brand-row{
  display:flex;
  align-items:flex-start;
  gap:1rem;
}
.footer-brand-row img{
  width:72px;
  height:72px;
  background:#fff;
  border-radius:50%;
  padding:.35rem;
}
.footer-list{
  list-style:none;
  padding:0;
}
.footer-list li + li{ margin-top:.65rem; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:2rem;
  padding-top:1rem;
}
.footer-link-button{
  background:none;
  border:0;
  color:inherit;
  padding:0;
  cursor:pointer;
  font:inherit;
}

.hero-grid,
.split-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;
  align-items:center;
}

.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  align-items:stretch;
}

.cards-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.25rem;
}

.section-heading{
  max-width:760px;
  margin-bottom:2rem;
}

@media (max-width: 980px){
  .cards-grid{ grid-template-columns:repeat(2, 1fr); }
  .split-grid,
  .hero-grid,
  .contact-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }
  .site-nav{
  position:absolute;
  top:calc(var(--header-height) - 1px);
  right:1rem;
  left:1rem;
  display:none;
  flex-direction:column;
  align-items:flex-start;
  padding:1rem;
  background:var(--header-footer-bg);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  box-shadow:var(--shadow);
  }
  .site-nav.is-open{ display:flex; }
  .nav-toggle{ display:block; }
}

@media (max-width: 640px){
  .cards-grid{ grid-template-columns:1fr; }
  :root{ --header-height: 82px; }
  .brand img{ width:50px; height:50px; }
  .brand-text strong{ font-size:.95rem; }
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.footer-bottom p {
    margin: 0;
}

.footer-social-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: inherit;
    text-decoration: none;
    line-height: 1;
}

.footer-social-icon {
    width: 18px;
    height: 18px;
    display: block;
    flex-shrink: 0;
    transition: transform 0.25s ease;
    transform-origin: center;
}

.footer-social-link:hover .footer-social-icon,
.footer-social-link:focus-visible .footer-social-icon {
    transform: scale(1.18) rotate(8deg);
}

.footer-social-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 6px;
}

.contact-social-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: inherit;
    text-decoration: none;
    margin-top: 0.2rem;
}

.contact-social-icon {
    width: 18px;
    height: 18px;
    display: block;
    flex-shrink: 0;
    transition: transform 0.25s ease;
    transform-origin: center;
}

.contact-social-link:hover .contact-social-icon,
.contact-social-link:focus-visible .contact-social-icon {
    transform: scale(1.18) rotate(8deg);
}

.contact-social-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 6px;
}

.contact-social-button {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 0.45rem;
    padding: 0.75rem 1rem;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 999px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    font-weight: 600;
    line-height: 1;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease,
        background-color 0.25s ease;
}

.contact-social-button:hover,
.contact-social-button:focus-visible {
    transform: translateY(-1px);
    background: rgba(245, 247, 243, 0.88);
    border-color: rgba(0, 0, 0, 0.2);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}

.contact-social-icon {
    width: 18px;
    height: 18px;
    display: block;
    flex-shrink: 0;
    transition: transform 0.25s ease;
    transform-origin: center;
}

.contact-social-button:hover .contact-social-icon,
.contact-social-button:focus-visible .contact-social-icon {
    transform: scale(1.18) rotate(8deg);
}

.contact-social-button:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}