/* ============================================================
   BASE.CSS — Estilos globales compartidos por todas las páginas
   Reset, variables, body, header, footer, layout.
   ============================================================ */

/* ---------- VARIABLES ---------- */
:root {
  --primary-blue:   #1e3a5f;
  --secondary-blue: #2c5f8d;
  --accent-blue:    #4a90c5;
  --light-blue:     #e8f1f8;
  --bg:             #f8f9fc;
  --white:          #ffffff;
  --text-dark:      #1a2332;
  --text-light:     #5a6c7d;
  --shadow:         rgba(30, 58, 95, 0.15);
  --shadow-hover:   rgba(30, 58, 95, 0.25);
}

/* ---------- RESET ---------- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  overflow-x: hidden;
}

/* ---------- BODY ---------- */
body {
  background:    var(--bg);
  color:         var(--text-dark);
  font-family:   'Inter', sans-serif;
  min-height:    100vh;
  min-width:     350px;
  display:       flex;
  flex-direction: column;
  overflow-x:    hidden;
  width:         100%;
}

/* ---------- HEADER ---------- */
header {
  background:      linear-gradient(135deg, var(--primary-blue) 0%, var(--secondary-blue) 100%);
  min-height:      100px;
  height:          100px;
  padding:         0 1rem;
  display:         flex;
  align-items:     center;
  justify-content: center;
  text-align:      center;
  box-shadow:      0 4px 12px var(--shadow);
  width:           100%;
}

header h1 {
  color:          var(--white);
  font-family:    'Montserrat', sans-serif;
  font-size:      2.5rem;
  font-weight:    700;
  letter-spacing: -0.5px;
  line-height:    1.2;
  margin:         0;
}

/* ---------- LAYOUT PRINCIPAL ---------- */
.main-container {
  flex:     1;
  display:  grid;
  padding:  3rem 0;
  gap:      1rem;
  width:    100%;
  grid-template-columns: 1fr minmax(auto, 1000px) 1fr;
}

.center-column {
  display:         flex;
  justify-content: center;
  padding:         0 1rem;
  width:           100%;
}

/* ---------- FOOTER ---------- */
footer {
  background: var(--primary-blue);
  color:      var(--white);
  padding:    2rem 1rem;
  margin-top: auto;
  width:      100%;
}

.footer-content {
  display:         flex;
  justify-content: center;
  align-items:     center;
  gap:             1.5rem;
  flex-wrap:       wrap;
}

.footer-link {
  color:           var(--white);
  text-decoration: none;
  font-size:       0.95rem;
  transition:      all 0.3s ease;
  display:         flex;
  align-items:     center;
  gap:             0.5rem;
}

.footer-link:hover {
  color:     var(--accent-blue);
  transform: translateY(-2px);
}

.footer-link i {
  font-size: 1.1rem;
}

.separator {
  color:       var(--light-blue);
  opacity:     0.5;
  font-weight: 300;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 839px) {
  header h1 { font-size: 2.2rem; }
}

@media (max-width: 670px) {
  header h1 { font-size: 2rem; }
}

@media (max-width: 470px) {
  header h1   { font-size: 1.75rem; }
  header      { padding: 2rem 0.5rem; }

  .footer-content {
    flex-direction: column;
    gap: 1rem;
  }

  .separator { display: none; }
}
