.site-footer{
  background:radial-gradient(circle at top,#EBF3EE 0,#F8F9FA 40%,#FFFFFF 100%);
  border-top:1px solid rgba(148,163,184,0.35);
  margin-top:var(--space-16);
}
.footer-main{
  display:grid;
  grid-template-columns: minmax(0,2fr) minmax(0,3fr);
  gap:var(--space-10);
  padding-top:var(--space-12);
  padding-bottom:var(--space-10);
}
.footer-brand{
  max-width:420px;
}
.footer-description{
  margin-top:var(--space-4);
}
.footer-cta{
  margin-top:var(--space-5);
}
.footer-links{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--space-8);
}
.footer-heading{
  font-size:var(--font-size-sm);
  text-transform:uppercase;
  letter-spacing:0.16em;
  color:var(--color-gray-500);
  margin-bottom:var(--space-4);
}
.footer-nav-list{
  list-style:none;
  margin:0;
  padding:0;
}
.footer-nav-list li+li{
  margin-top:0.4rem;
}
.footer-nav-list a{
  font-size:var(--font-size-sm);
  color:var(--color-text-muted);
}
.footer-nav-list a:hover{
  color:var(--color-primary);
}
.footer-bottom{
  border-top:1px solid rgba(148,163,184,0.25);
  background:rgba(248,249,250,0.98);
}
.footer-bottom-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-4);
  padding-top:var(--space-4);
  padding-bottom:var(--space-4);
}
.footer-copy{
  font-size:var(--font-size-xs);
  margin-bottom:0;
}
.footer-meta{
  display:flex;
  align-items:center;
  gap:var(--space-4);
}
.footer-rating{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  font-size:var(--font-size-xs);
  color:var(--color-text-muted);
}
.footer-rating .rating-stars svg{
  width:14px;
  height:14px;
}
.footer-rating-label{
  white-space:nowrap;
}
@media (max-width:960px){
  .footer-main{
    grid-template-columns:1fr;
  }
  .footer-links{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:720px){
  .footer-links{
    grid-template-columns:1fr;
  }
  .footer-bottom-inner{
    flex-direction:column;
    align-items:flex-start;
  }
  .footer-rating-label{
    white-space:normal;
  }
}
.cookie-banner{
  position:fixed;
  inset-inline:0;
  bottom:0;
  z-index:50;
  background:rgba(15,23,42,0.94);
  color:#F9FAFB;
  transform:translateY(100%);
  opacity:0;
  visibility:hidden;
  transition:transform var(--transition-slow),opacity var(--transition-slow),visibility var(--transition-base);
}
.cookie-banner.is-visible{
  transform:translateY(0);
  opacity:1;
  visibility:visible;
}
.cookie-banner-inner{
  max-width:var(--container-max);
  margin:0 auto;
  padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--space-5);
}
.cookie-banner-text h2{
  font-size:var(--font-size-base);
  color:#F9FAFB;
  margin-bottom:var(--space-2);
}
.cookie-banner-text p{
  margin-bottom:var(--space-2);
  color:rgba(249,250,251,0.82);
  font-size:var(--font-size-sm);
}
.cookie-link{
  font-size:var(--font-size-xs);
  color:#A7F3D0;
  text-decoration:underline;
}
.cookie-banner-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
  justify-content:flex-end;
}
.cookie-banner .btn{
  white-space:nowrap;
}
.cookie-banner .btn-outline{
  border-color:rgba(249,250,251,0.5);
  color:#E5E7EB;
}
.cookie-banner .btn-outline:hover{
  background:rgba(249,250,251,0.06);
}
.cookie-banner .btn-primary{
  box-shadow:none;
}
@media (max-width:720px){
  .cookie-banner-inner{
    flex-direction:column;
    align-items:stretch;
  }
  .cookie-banner-actions{
    justify-content:flex-start;
  }
  .cookie-banner .btn{
    flex:1 1 auto;
    justify-content:center;
  }
}
@media (prefers-reduced-motion:reduce){
  .cookie-banner{
    transition:none;
  }
}