/* ===== Sticky Footer (layout base) ===== */
html, body {
  height: 100%;
}

body {
  margin: 0;
  display: flex;
  flex-direction: column;
}

/* El contenido ocupa el espacio disponible y empuja el footer abajo */
.txp-main {
  flex: 1 0 auto;
  /* IMPORTANTE: NO pongas otro .txp-main más abajo con min-height */
}

/* El footer siempre se queda al fondo si hay poco contenido */
.txp-footer {
  margin-top: auto;
}

/* ===== Variables y utilidades ===== */
:root { --txp-primary:#2563eb; --txp-text:#0b1220; }
* { box-sizing:border-box; }

/* Tipografía y resets ligeros */
.txp-menu{ list-style:none; margin:0; padding:0; display:flex; gap:18px; }
.txp-menu a{ text-decoration:none; padding:8px 6px; display:block; border-radius:10px; }
.txp-site-title{ font-weight:600; }
.widget{ margin:16px 0; }
.widget-title{ margin:0 0 8px; font-size:1.1rem; }

/* ===== Footer widgets (rejilla) ===== */
.txp-footer-widgets{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:24px;
  margin:18px 0;
}
.txp-footer-widgets .widget { margin: 0 0 12px; }
.txp-footer-widgets .widget-title { margin-bottom: 8px; font-size: 1rem; }

@media (max-width: 900px){
  .txp-footer-widgets{ grid-template-columns: 1fr; }
}


/* ===== Header layout limpio ===== */
.txp-header-inner{
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.txp-brand{ display:flex; align-items:center; gap:10px; }

/* Botón hamburguesa visible solo en móvil */
.txp-hamb{
  display:none;
  background:none;
  border:1px solid var(--txp-border, #e5e7eb);
  border-radius:10px;
  padding:8px 10px;
  cursor:pointer;
}
@media (max-width: 992px){
  .txp-nav{ display:none; }
  .txp-hamb{ display:flex; }
}

/* Offcanvas */
.txp-offcanvas{ position:fixed; inset:0 0 0 auto; width:min(86vw,360px); background:#fff; box-shadow:-12px 0 30px rgba(0,0,0,.16); transform:translateX(100%); transition:transform .22s ease; z-index:40; }
.txp-offcanvas.open{ transform:translateX(0); }
.txp-offcanvas-header{ display:flex; justify-content:flex-end; padding:10px; }
.txp-offcanvas-close{ background:none; border:none; font-size:22px; cursor:pointer; }

/* Accesibilidad */
.screen-reader-text{ position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.screen-reader-text:focus{ position:static; width:auto; height:auto; margin:8px; padding:6px 10px; background:#f1f5f9; border-radius:8px; }
