/* ═══════════════════════════════════════════════════════════════════
   Cronac Give  ·  public_base.css
   Public-facing shell — header, footer, public nav.
   Requires: core/theme.css, core/reset.css, core/layout.css,
             core/utilities.css, components/*.css (loaded first).
   ═══════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════════
   SITE HEADER
   ══════════════════════════════════════════════════════════════════ */
.site-header {
  background:    var(--color-white);
  border-bottom: 1px solid var(--color-border);
  position:      sticky;
  top:           0;
  z-index:       var(--z-nav);
  box-shadow:    var(--shadow-xs);
}

.site-header__inner {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  height:          68px;
}

.site-header__brand {
  text-decoration: none;
  display:         inline-flex;
  align-items:     center;
}

.site-header__logo {
  height:    40px;
  width:     auto;
  object-fit: contain;
}

.site-header__wordmark {
  font-family:    var(--font-display);
  font-size:      var(--text-xl);
  font-weight:    var(--font-bold);
  color:          var(--org-secondary);
  letter-spacing: -0.02em;
}

.site-header__wordmark span {
  color: var(--org-primary);
}

/* Org logo for branded public pages */
.site-header__org-logo {
  height:           44px;
  width:            auto;
  max-width:        220px;
  object-fit:       contain;
  object-position:  left center;
}

/* ══════════════════════════════════════════════════════════════════
   SITE FOOTER
   ══════════════════════════════════════════════════════════════════ */
.site-footer {
  background:    var(--org-secondary);
  color:         rgba(255,255,255,0.65);
  padding-block: var(--space-8);
  margin-top:    auto;
}

.site-footer__inner {
  display:         flex;
  flex-wrap:       wrap;
  align-items:     center;
  justify-content: space-between;
  gap:             var(--space-4);
}

.site-footer__legal {
  font-size:   var(--text-sm);
  line-height: var(--leading-relaxed);
}

.site-footer__legal strong {
  color:       var(--color-white);
  font-weight: var(--font-semi);
}

.site-footer__links {
  display: flex;
  gap:     var(--space-5);
}

.site-footer__links a {
  color:           rgba(255,255,255,0.60);
  font-size:       var(--text-sm);
  text-decoration: none;
  transition:      color var(--transition-fast);
}

.site-footer__links a:hover           { color: var(--color-white); }
.site-footer__links a:focus-visible   { outline-color: rgba(255,255,255,0.8); }

.site-footer__link {
  color:           rgba(255,255,255,0.60);
  font-size:       var(--text-sm);
  text-decoration: none;
  transition:      color var(--transition-fast);
}

.site-footer__link:hover { color: var(--color-white); }

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  .site-footer__inner { flex-direction: column; align-items: flex-start; }
}

/* ══════════════════════════════════════════════════════════════════
   PRINT
   ══════════════════════════════════════════════════════════════════ */
@media print {
  .site-header,
  .site-footer,
  .btn,
  .messages-region { display: none !important; }
}

/* ── Org gradient surfaces (login-style polish) ───────────────── */
.org-gradient-soft {
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--org-primary) 14%, #ffffff) 0%,
      color-mix(in srgb, var(--org-secondary) 10%, #ffffff) 100%
    );
}

.org-gradient-soft-border {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

.org-gradient-soft::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(255,255,255,0.35),
      transparent 60%
    );
  pointer-events: none;
}