/* Globales */
:root {
  --primary-color: #020618;
  --primary-color-text: #ffffff;
  --secondary-color-text: #cbd5e1;
  --text-gray: #94a3b8;

  /* Tamaños de fuente */
  --text-base: 1rem; /* 16px */
  --text-lg: 1.125rem; /* 18px */
  --text-xl: 1.25rem; /* 20px */
  --text-2xl: 1.5rem; /* 24px */
  --text-3xl: 1.875rem; /* 30px */
  --text-4xl: 2.25rem; /* 36px */
  --text-5xl: 3rem; /* 48px */
  --text-6xl: 3.75rem; /* 60px */
  --text-7xl: 4.5rem; /* 72px */

  /* Line Heights (Interlineado) */
  --text-base--line-height: 1.5rem;
  --text-lg--line-height: 1.75rem;
  --text-xl--line-height: 1.75rem;
  --text-2xl--line-height: 2rem;
  --text-3xl--line-height: 2.25rem;
  --text-4xl--line-height: 2.5rem;
  --text-5xl--line-height: 1;
  --text-6xl--line-height: 1;
  --text-7xl--line-height: 1;

  --font-weight-semibold: 600;
}

html {
  font-size: 16px;
}
body {
  background-color: var(--primary-color);
  font-size: 16px;
  color: var(--text-gray);
}

@media (min-width: 1440px) {
  .container {
    width: 1400px;
  }
}

.primary-color {
  color: var(--primary-color) !important;
}

.bg-primary-color {
  background-color: var(--primary-color) !important;
}

body div.body-page {
  background-color: var(--primary-color) !important;
}

.nav-tabs > li > a {
  color: var(--secondary-color) !important;
}

.secondary-color,
.text-light .secondary-color {
  color: var(--secondary-color) !important;
}

@media (min-width: 992px) {
  header.header-v1 .navigation .gva_menu > li > a {
    /* font-size: 1rem; */
  }

  header.header-v1 .navigation .gva_menu > li > a:before {
    content: "";
    width: auto;
    height: 2px;
    background: var(--primary-color);
    position: absolute;
    bottom: 24px;
    left: 12px;
    right: 12px;
    z-index: 11;
    opacity: 0;
    filter: alpha(opacity=0);
    -webkit-transition: all 0.35s;
    -o-transition: all 0.35s;
    transition: all 0.35s;
    -moz-transition: all 0.35s;
    -ms-transition: all 0.35s;
  }

  header.header-v1
    .navigation
    .gva_menu
    > li.menu-item--active-trail
    > a:before,
  header.header-v1 .navigation .gva_menu > li > a:hover:before,
  header.header-v1 .navigation .gva_menu > li > a:focus:before {
    opacity: 1;
    filter: alpha(opacity=100);
  }
  header.header-v1 .navigation .gva_menu > li > a:hover:before,
  header.header-v1 .navigation .gva_menu > li > a:focus:before,
  header.header-v1 .navigation .gva_menu > li:hover a:before,
  header.header-v1 .navigation .gva_menu > li:focus a:before {
    opacity: 1;
    filter: alpha(opacity=100);
  }
}

.text-dark h1,
.text-dark h2,
.text-dark h3,
.text-dark h4,
.text-dark h5,
.text-dark h6,
.widget.gsc-heading.text-dark .title {
  color: var(--primary-color);
}

.btn-golden {
  background: var(--secondary-color);
  color: var(--primary-color);
  border-color: var(--secondary-color);
}

.btn-golden:hover,
.btn-golden:focus,
.btn-golden:active {
  background: var(--secondary-color-80);
  color: var(--primary-color);
}

#header.header-v2 .stuck {
  background-color: var(--primary-color) !important;
}

@media (max-width: 991px) {
  #header.header-v2 {
    background-color: var(--primary-color) !important;
    margin-top: 0;
  }
}

.copyright {
  background: var(--primary-color);
}

.site-branding-logo img {
  max-height: 60px;
}

.widget.gsc-heading .heading-line {
  height: 4px;
}

.widget.gsc-call-to-action.button-bottom .title:after {
  height: 4px;
}

.btn:hover,
.btn:focus,
.btn:active,
.btn-white:hover,
.btn-white:focus,
.btn-white:active,
.btn-theme:hover,
.btn-theme:focus,
.btn-theme:active {
  /* color: #fff;
  background: var(--primary-color-60); */
}

.footer {
  color: var(--primary-color-text);
  background: var(--primary-color);
}
.footer a,
.footer a:hover {
  color: var(--primary-color-text);
}
.footer ul.menu > li a:hover {
  color: var(--primary-color-text);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.footer ul.menu > li a:after,
.footer ul.menu > li a:hover:after {
  background: var(--primary-color-text);
}

ul.no-bullets {
  list-style: none;
}

/* Webform */

.webform-submission-form label {
  display: block;
  margin: 0.5rem 0;
}

.toa-phone input[type="tel"].webform-webform-telephone-international {
  padding-left: 50px;
}

.toa-phone .form-item--error-message {
  color: red;
  font-size: 1rem;
  margin: 8px 0;
}

.webform-button--submit {
  margin: 8px 0;
}
.webform-submission-form label.form-required:after,
.toa-phone label:after {
  content: "*";
  margin-inline-start: 1px;
}

.webform-submission-form .form-text,
.webform-submission-form .form-email,
.webform-submission-form .form-tel,
.webform-submission-form .form-textarea {
  border-radius: 12px;
  resize: none;
}

.webform-submission-form .js-form-type-checkbox label {
  display: inline-block;
  font-size: 0.725rem;
}

.webform-submission-form .js-form-type-checkbox label a {
  color: var(--primary-color-text);
}

input[disabled].webform-button--submit {
  background-color: grey !important;
  color: #fff;
}

/* Botones Flotantes */

.botones-flotantes {
  position: fixed;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 15px;
  z-index: 9999;
}
.boton-flotante {
  width: 96px;
  height: 96px;
  background-color: var(--primary-color);
  color: white !important;
  border-radius: 12px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: sans-serif;
  font-size: 10px;
  line-height: 16px;
  padding: 8px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease;
}
.boton-flotante:hover {
  transform: scale(1.05);
  color: white !important;
}
.boton-flotante:visited {
  color: white !important;
}
.boton-flotante .icon-container {
  margin-bottom: 8px;
}

@media (max-width: 768px) {
  .botones-flotantes {
    top: auto;
    bottom: 15px;
    left: auto;
    right: 15px;
    transform: translateY(0%);
  }
  .boton-flotante {
    font-size: 11px;
    padding: 16px;
    width: auto;
    height: auto;
  }
  .boton-flotante .icon-container {
    margin-bottom: 0px;
  }
  .botones-flotantes__text {
    display: none;
  }
}

.toa-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px;
}

.toa-chips .chip {
  border: 1px dashed var(--primary-color);
  border-radius: 999px;
  padding: 4px 12px;
  background: #fff;
  color: var(--primary-color);
}

.text-light .toa-chips .chip {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.panel .panel-heading .panel-title > a:after {
  content: "\f077";
}

.panel .panel-heading .panel-title > a.collapsed:after {
  content: "\f078";
}

ul.feature-list.text-white {
  margin-bottom: 20px;
  color: rgba(255, 255, 255, 0.8) !important;
}
ul.feature-list.text-white > li {
  padding-left: 0;
  font-size: 14px;
  font-weight: 400;
}
ul.feature-list.text-white > li:after {
  color: #ffffff;
  content: "";
}
ul.feature-list.normal-text > li {
  font-size: 14px;
  font-weight: normal;
}
ul.feature-list > li:after {
  top: 0;
}

.footer .footer-center {
  padding: 10px 0;
}
.copyright .copyright-inner {
  padding-top: 0;
}

.no-bullets {
  list-style: none;
}
ul.menu.no-bullets > li a:after {
  content: none;
}

@media (max-width: 767px) {
  .gavias_sliderlayer .btn-slide-white {
    font-size: 8px !important;
  }
}

.rs-fullvideo-cover {
  display: none;
}

.is-mobile .rs-background-video-layer iframe {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Estilos comunes */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: var(--font-weight-semibold);
  --tw-leading: initial; /* Permite sobrescribir el interlineado si es necesario */
}

/* Base (Mobile First) */
h1 {
  font-size: var(--text-5xl);
  line-height: var(--tw-leading, var(--text-5xl--line-height));
}
h2 {
  font-size: var(--text-3xl);
  line-height: var(--tw-leading, var(--text-3xl--line-height));
}
h3 {
  font-size: var(--text-2xl);
  line-height: var(--tw-leading, var(--text-2xl--line-height));
}
h4 {
  font-size: var(--text-xl);
  line-height: var(--tw-leading, var(--text-xl--line-height));
}
h5 {
  font-size: var(--text-lg);
  line-height: var(--tw-leading, var(--text-lg--line-height));
}
h6 {
  font-size: var(--text-base);
  line-height: var(--tw-leading, var(--text-base--line-height));
}

/* Tablet (48rem = 768px) */
@media (min-width: 48rem) {
  h1 {
    font-size: var(--text-6xl);
    line-height: var(--tw-leading, var(--text-6xl--line-height));
  }
  h2 {
    font-size: var(--text-4xl);
    line-height: var(--tw-leading, var(--text-4xl--line-height));
  }
  h3 {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }
  h4 {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  h5 {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }
  h6 {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }
}

/* Desktop (64rem = 1024px) */
@media (min-width: 64rem) {
  h1 {
    font-size: var(--text-7xl);
    line-height: var(--tw-leading, var(--text-7xl--line-height));
  }
  h2 {
    font-size: var(--text-5xl);
    line-height: var(--tw-leading, var(--text-5xl--line-height));
  }
}

.text-gray {
  color: var(--text-gray) !important;
}

.text-highlight {
  color: var(--primary) !important;
}

.grayscale,
.grayscale img {
  --tw-grayscale: grayscale(100% 100%);
  filter: grayscale(100%);
}

/* Custom component gcs_card */
:root {
  --bg-dark: #161022;
  --primary: #3b82f6; /* Cambia esto al color de tu marca */
  --text-slate: #cbd5e1;
  --transition-speed: 500ms;
}

.discipline-card {
  position: relative;
  height: 500px;
  overflow: hidden;
  border-radius: 0.75rem;
  background-color: var(--bg-dark);
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: all var(--transition-speed) ease;
}

/* Media query para tablets/desktop (md:h-[600px]) */
@media (min-width: 768px) {
  .discipline-card {
    height: 600px;
  }
}

/* Imagen de fondo y efecto zoom */
.card-background {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 700ms ease;
}

.discipline-card:hover .card-background {
  transform: scale(1.1);
}

.discipline-card:hover .card-overlay {
  background-color: rgba(21, 93, 252, 0.3);
}
.discipline-card:hover .card-content {
  transform: translateY(-10px);
}

.card-overlay {
  position: absolute;
  inset: 0;
  transition: background-color var(--transition-speed) ease;
}

/* Contenido del card */
.card-content {
  position: absolute;
  inset: 0;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform var(--transition-speed) ease;
  z-index: 2;
}

.eyebrow {
  color: var(--primary-color-text);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}

.heading {
  color: var(--primary-color-text);
  font-weight: 700;
  margin: 0 0 1rem 0;
}

.card-description {
  color: var(--text-slate);
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.625;
  margin-bottom: 1.5rem;
  opacity: 0;
  transition: opacity var(--transition-speed) ease;
  transition-delay: 100ms;
}

.discipline-card:hover .card-description {
  opacity: 1;
}

/* Link / Botón */
.card-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--primary-color-text);
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

/* El pseudo-elemento para que todo el card sea clickeable si es <a> */
a.card-link:hover {
  color: var(--primary-color-text);
}
a.card-link::after {
  content: "";
  position: absolute;
  inset: 0;
}

.line {
  height: 3px;
  width: 2rem;
  background-color: var(--primary);
  transition: width 300ms ease;
}

.card-link:hover .line {
  width: 3rem;
}

.gsc-our-history-timeline.text-light .item .year {
  color: var(--secondary-color-text);
}

.widget.gsc-heading .sub-title {
  color: var(--primary-color-text);
}

.gsc-our-history-timeline .item:before {
  background: var(--primary);
}

.block .block-title,
.block .block-title > span {
  color: var(--primary-color-text);
}

.post-block {
  background-color: var(--primary-color);
}
.post-block .post-title a {
  color: var(--primary-color-text);
}
.post-block .post-categories a {
  color: var(--primary-color-text);
}
.post-block .post-title a:hover,
.post-block .post-title a:active,
.post-block .post-title a:before {
  color: var(--primary-color-text);
}

.post-title {
  color: var(--primary-color-text);
}
.post-meta .post-comment {
  display: none;
}

.node-detail .post-block h2 {
  font-size: 20px;
}
.node-detail .post-block h3 {
  font-size: 18px;
}
.node-detail .post-block h4 {
  font-size: 16px;
}
.node-detail .post-block h5 {
  font-size: 16px;
}
.node-detail .post-block h6 {
  font-size: 16px;
}

.border-radius-box {
  position: relative;
  -webkit-box-shadow: 0px 0px 26px 0px rgba(0, 0, 0, 0.3);
  box-shadow: 0px 0px 26px 0px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  overflow: hidden;
}

.body-page input[type="text"],
.body-page input[type="tel"],
.body-page input[type="password"],
.body-page input[type="email"],
.body-page textarea,
.body-page select,
.gva-body-page input[type="text"],
.gva-body-page input[type="tel"],
.gva-body-page input[type="password"],
.gva-body-page input[type="email"],
.gva-body-page textarea,
.gva-body-page select {
  width: 100%;
}

.bg-hero-gradient::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 65%,
    rgba(2, 6, 24, 1) 100%
  );
}

.gsc-image-content.skin-v2 .content {
  padding: 1rem;
}
.gsc-image-content .action a {
  color: var(--primary-color-text);
}

.navigation .gva_menu .sub-menu > li > a:hover,
.navigation .gva_menu .sub-menu > li.menu-item--active-trail > a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
