@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@100..800&display=swap");

:root{
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --text-color: #111;
  --muted: #666;
  --link: #1a73e8;
  --link-hover: #0b5bd3;
  --lh-tight: 1.16;
}

body{
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 1rem;
  line-height: var(--lh-tight);
  color: var(--text-color);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}

 *{ box-sizing: border-box; }

html{ font-size: 16px; }

.uppercase{ text-transform: uppercase; }
.italic{ font-style: italic; }
strong, .bold{ font-weight: 600 !important; }
.bolder{ font-weight: 700; }
.text-max strong{ font-weight: 600 !important; }

.text-tip,
.text-tip a{
  font-size: 0.7rem;
  color: #888;
  font-weight: 400;
}

/* Tamaños utilitarios (alias incluidos) */
.text-xxs, .font-mini, .fs-7 { font-size: 0.6875rem; }   /* 11px */
.text-xs,  .fs-6           { font-size: 0.79375rem; }    /* 12.7px */
.text-sm,  .fs-5           { font-size: 0.84375rem; }    /* 13.5px */
.text-md,  .fs-4           { font-size: 1.0875rem; }     /* 17.4px */
.text-4                    { font-size: 1.125rem !important; } /* 18px */
.text-3                    { font-size: 1.3125rem !important; }/* 21px */
.text-2                    { font-size: 1.5625rem !important; }/* 25px */
.text-1                    { font-size: 1.8125rem !important; }/* 29px */

.text-lg, .text-max{
  font-size: 3rem;
  letter-spacing: -0.09rem;
}
.text-xxl{ 
  font-size: 3.4rem !important;
  letter-spacing: -0.09rem;
}

/* ===== Títulos y párrafos ===== */
h1, h2, h3, h4, h5, h6, p{
  margin: 0 0 1.1rem 0;
  line-height: var(--lh-tight);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, .font-max{
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 2.3rem;
  letter-spacing: -0.04rem;
}

h2{
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.7rem;
}
h3{
  font-family: var(--font-display);
  font-size: 1.5rem;
}
h4{ font-size: 1.4rem; }
h5{ font-size: 1.2rem; }
h6{ font-size: 1.1rem; }

p, li{
  font-size: 0.9375rem; /* 15px */
}

.font { font-family: var(--font-display);}
/* ===== Variantes de título ===== */
.text-title{
  font-size: 2.5em !important;
  letter-spacing: -0.10rem;
  font-weight: 400;
}
.text-subtitle{
  font-size: 1.2em !important;
  letter-spacing: -0.01rem !important;
  font-weight: 200 !important;
}

/* ===== Texto lector y links ===== */
.text-lector,
.text-link,
.text-link a:visited{
  font-family: var(--font-sans) !important;
  font-size: 0.8875rem !important; /* 14.2px */
}
.text-lector{
  font-weight: 400 !important;
  color: var(--text-color) !important;
}

a{
  color: var(--link);
  text-decoration: none;
  font-size: inherit;
}
a:hover,
a:focus{
  text-decoration: underline;
  color: var(--link-hover);
}

/* Enlaces por tema */
.LinkBlanco a,
.linkBlanco a{ color: #fff; text-decoration: none; }
.LinkBlanco a:hover,
.linkBlanco a:hover{ text-decoration: underline; }

.LinkNegro a,
.linkNegro a{ color: #000; text-decoration: none; }
.LinkNegro a:hover,
.linkNegro a:hover{ text-decoration: underline; }

.LinkColor a{ color: #337ab7; text-decoration: underline; }
.LinkColor a:hover{ text-decoration: underline; }

/* “Nu” = sin subrayado forzado */
.Nu a,
.nu a{ text-decoration: none; }
.Nu a:hover,
.nu a:hover{ text-decoration: none; }

/* Evitar el !important global que anulaba todo comportamiento */
a, a:link, a:visited, a:active{
  /* sin !important aquí para permitir variaciones de tema */
}

/* ===== Navegación ===== */
.nav-link,
.navbar-nav .nav-item a,
.navbar-nav-lg .nav-item a{
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
}
.navbar-nav .nav-item a{ font-size: 14px !important; }
.navbar-nav-lg .nav-item a{ font-size: 0.9rem !important; }

.sidebar li{
  font-size: 14px !important;
  font-weight: 600 !important;
}

/* ===== Formularios ===== */
input, textarea, select{
  font-family: var(--font-sans) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
}
label{
  font-family: var(--font-sans) !important;
  font-weight: 400 !important;
  font-size: 12px;
  padding-top: 9px;
  color: #222 !important;
}

/* ===== Botones ===== */
.btn{
  font-family: var(--font-sans) !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  padding: 8px 16px !important;
  -webkit-font-smoothing: antialiased !important;
}

/* ===== Tablas ===== */
.td-title{
  font-size: 1.1rem;
  font-weight: 600;
}
td{
  font-size: 1rem;
  font-weight: 400;
}

/* ===== Utilidades de alineación y sombras ===== */
.fontShadowWhite{ text-shadow: 0.7px 0.7px 0.7px rgba(255,255,255,.8); }
.fontShadowBlack{ text-shadow: 0.7px 0.7px 0.7px rgba(0,0,0,.6); }

.fontCenter, .center{ text-align: center; }
.fontLeft{ text-align: left; }
.fontRight{ text-align: right; }

/* ===== Correcciones menores ===== */
/* Quitar justificaciones globales en body que no aplican aquí */
body{
  justify-content: initial;
  align-content: initial;
}