html {
  scroll-behavior: smooth;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

#site-content,
.site-header,
.site-footer {
  box-sizing: border-box;
}

#site-content *,
#site-content *::before,
#site-content *::after,
.site-header *,
.site-header *::before,
.site-header *::after,
.site-footer *,
.site-footer *::before,
.site-footer *::after {
  box-sizing: inherit;
}

img {
  max-width: 100%;
  height: auto;
}

/* Thank-you template shared utilities */
.thankyou-hero-overlay { background: linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,255,255,0.6)); }
.thankyou-hero { padding-top: 6rem; padding-bottom: 4rem; }
.section-card { border-radius: 0.75rem; padding: 1.5rem; box-shadow: 0 8px 20px rgba(2,6,23,0.06); }
.bg-brand-green { background-color: #1a4731; }
.text-brand-green { color: #1a4731; }
.muted-on-dark { color: rgba(255,255,255,0.75); }

/* Hero overlay common to hero and thank-you components */
.hero-bg-overlay,
.thankyou-hero-overlay { position:absolute; inset:0; background: linear-gradient(180deg, rgba(3,54,36,0.36), rgba(255,255,255,0.92)); pointer-events:none; }

/* Card grid helpers */
.resource-card { border-radius: 0.75rem; overflow:hidden; background:#ffffff; border:1px solid #eef2f0; transform:translateY(0); transition:transform .28s ease, box-shadow .28s ease; }
.resource-card:hover { transform:translateY(-6px); box-shadow:0 18px 40px rgba(2,6,23,0.08); }
.resource-card .card-content { padding:1.25rem; }

/* Stats band */
.stats-band { background-image: url('../images/stats-bg.jpg'); background-size:cover; background-position:center; color: #fff; }

/* Smooth hero -> content blend: create a soft curve and overlapping card */
.hero-to-content { position:relative; }
.hero-to-content::after { content:''; display:block; height:120px; width:100%; background:linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1)); margin-top:-1px; pointer-events:none; }
.content-overlap { margin-top:-80px; }

/* Accessibility helpers */
.focus-outline:focus { outline:3px solid rgba(26,71,49,0.18); outline-offset:3px; }

/* Trust logo sizing */
.trust-logo { height:40px; width:auto; display:block; object-fit:contain; max-width:160px; }
.trust-logos { display:flex; gap:0.75rem; align-items:center; justify-content:flex-start; flex-wrap:nowrap; }
.trust-logos img { flex: 0 0 auto; }
.trust-logos--compact { max-width:420px; }

#site-content img[loading="lazy"] {
  content-visibility: auto;
}

.site-header ul,
.site-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-header a,
.site-footer a,
#site-content a {
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.site-header :where(.menu, .sub-menu) {
  display: flex;
  gap: 1rem;
  align-items: center;
}

@media (max-width: 768px) {
  .site-header :where(.menu, .sub-menu) {
    flex-wrap: wrap;
    justify-content: center;
  }
}
