/**
 * Estabilidad global: footer visible (Safari/visitante), menú, layout página.
 */

html {
  -webkit-text-size-adjust: 100%;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
  overflow-x: hidden;
}

.site-main,
main#content {
  flex: 1 0 auto;
  width: 100%;
  min-width: 0;
}

/* Footer siempre visible */
footer,
.site-footer,
.cgc-premium-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 5 !important;
  width: 100% !important;
  overflow: visible !important;
  flex-shrink: 0;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

body.cgc-page-panel .page-content--panel,
body.cgc-page-panel .page-content--panel-full {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.cgc-page-panel .site-shell.page-content--panel {
  width: 100% !important;
  max-width: 100% !important;
}

/* Footer visible para visitantes, Safari y panel (sin ocultar por rol) */
body:not(.logged-in) .cgc-premium-footer,
body.cgc-page-panel .cgc-premium-footer,
_::-webkit-full-page-media,
_:future,
:root .cgc-premium-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Menú: overlay suave, no teñir panel */
@media (max-width: 900px) {
  html.cgc-nav-open::before {
    background: rgba(15, 61, 46, 0.28) !important;
    pointer-events: auto !important;
  }

  body.menu-open::before {
    display: none !important;
  }
}

/* Recursos: legal en cards claras */
body.cgc-page-recursos .card.legal p,
body.cgc-static-recursos .card.legal p,
body.cgc-page-recursos .card.legal .action,
body.cgc-static-recursos .card.legal .action {
  color: #4f5f58 !important;
}

body.cgc-page-recursos .card.legal h2,
body.cgc-static-recursos .card.legal h2 {
  color: #10231a !important;
}
