@charset "utf-8";
/* CSS Document */

@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");
@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
	--color-body: #616161;
	--color-dark: #191C1D;
	--color-clear: #ffffff;
  --color-main: #005596;
  --color-main-dark: #002B4C;
  --color-secondary: #DEEFFC;
  --color-red: #D00B0B;
  --color-green: #14d400;
	--color-link: #005596;
	--color-outline: #b3b3b3;
	--color-bg-gray: #f2f2f2;
	--color-bg-soft: #F0F8FE;
  --color-bg-light-gray: #F5F5F5;
  --font-body: 'Fira Sans', Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-headers: 'Fira Sans', Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --bs-border-radius-5: 1.6rem;
  --btn-radius: 50px;
	--btn-primary-hover-bg: #2970a7;
  --btn-active-bg: #005596;
  --space-1: 0rem;
  --space-2: 0.5rem;
  --space-3: 1rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4rem;
  --space-7: 5rem;
  --space-8: 6rem;
  --space-9: 7rem;
  --space-10: 8rem;
}

html {
  overflow-y: scroll;
  scroll-behavior: smooth;
}

body {
	color: var(--color-body);
	font-family: var(--font-body);
	font-weight: 400;
}

h1, h2, h3, h4, h5 {
    color: var(--color-dark);
    font-family: var(--font-headers);
}

h1 {
	font-size: clamp(2.25rem, 5vw, 3.6rem);
	font-weight: 600;
	line-height: 1.2em;
	margin-bottom: 1rem;
	letter-spacing: -0.01em;
}

h2 {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 600;
	margin-bottom: 1rem;
	letter-spacing: -0.01em;
}

h2.text-big {
	font-weight: 500;
	font-size: clamp(2rem, 4vw, 3rem);
	letter-spacing: -0.01em;
}

h3 {
	font-size: clamp(1.2rem, 2.5vw, 1.5rem);
	font-weight: 600;
	letter-spacing: -0.01em;
}

h3.text-big {
	font-size: clamp(1.75rem, 3vw, 2rem);
	font-weight: 600;
	letter-spacing: -0.01em;
}

h4 {
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.4em;
}

h5 {
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.4em;
}

p,
ul li {
    font-size: 1rem;
    font-weight: 400;
    color: var(--color-body);
}

p.text-big {
	font-size: clamp(1rem, 1.3vw, 1.4rem);
}

a,
a:visited {
  color: var(--color-link);
	text-decoration: none;
	border-bottom: 1px solid var(--color-main);
	padding-bottom: 1px;
	transition: border-color .25s ease;
}

a:hover {
	color: var(--color-link);
	border-bottom: 1px solid var(--color-clear);
	transition: border-color .25s ease;
}

.small, small {
    font-size: .775em;
    line-height: 1.4;
    display: inline-block;

}

/*HEADER*/

#pre_header {
    display: none;
    background-color: var(--color-bg-light-gray);
    padding: 12px 0;
}

header#header_nav {
	background-color: var(--color-clear);
  position: sticky;
	width: 100%;
	top: 0;
	z-index: 999;
	height: 63px;
    box-shadow:
    0 2px 6px rgba(60, 64, 67, 0.15),
    0 1px 2px rgba(60, 64, 67, 0.12);
}

header#header_nav a {
	text-decoration: none;
	border: none;
}

header#header_nav .logo {
	margin-left: 0px;
	margin-top: 9px;
	width: 60px;
}

header#header_nav .container, header#header_nav .container > .row {
	height: 100%;
}

.header-mobile-turnos {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 90px;
	z-index: 3;
	right: 60px;
	padding: 0;
}

.btn-search {
	padding: 0;
	border: 0;
	background: transparent;
	position: absolute;
	top: 50%;
	right: 74px;
	transform: translateY(-50%);
}

.btn-search img {
	display: block;
	width: 24px;
	height: 24px;
}

.btn-search:focus {
	outline: none;
	box-shadow: none;
}

/*NAV*/

nav.main {
	display: none;
	background-color: var(--color-clear);
	position: relative;
	top: 10px;
	padding-top: 10px;
	padding-bottom: 10px;
	box-shadow: 
  	0 2px 6px rgba(60, 64, 67, 0.15),
  	0 1px 2px rgba(60, 64, 67, 0.12),

  	inset 0 8px 6px -6px rgba(60, 64, 67, 0.15),
  	inset 0 2px 2px -2px rgba(60, 64, 67, 0.15);
}

nav.main ul {
	padding-left: 0;
	padding-top: 20px;
	padding-bottom: 10px;
	margin-bottom: 0;
	margin-left: 9px;
}

nav.main ul li {
	font-size: 22px;
	color: var(--color-body);
	list-style-type: none;
	font-weight: 500;
	position: relative;
	display: block;
	height: auto;
	padding: 4px 0;
	border-bottom: 4px solid transparent;
}

/* ===== Submenú ===== */
nav.main ul li.has-submenu {
	position: relative;
}

/* el texto del padre */
nav.main ul li .nav-parent {
	display: inline-block;
	cursor: default; /* el padre no navega */
}

/* panel del submenú (BASE = mobile en flujo, SIN estilos desktop) */
nav.main ul li .submenu {
	position: static;
	width: 100%;
	max-height: 0;
	overflow: hidden;
	padding: 0;

	/* SACAMOS opacity y visibility */
	transition:
	max-height .35s ease,
	padding .35s ease;

	pointer-events: none;
}

/* lista dentro del panel */
nav.main ul li .submenu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

nav.main ul li .submenu ul li {
	font-size: 16px;
	font-weight: 400;
	padding: 0;
	border-bottom: 0;
}

nav.main ul li .submenu a {
	display: block;
	padding: 6px 24px;
	color: var(--color-body);
	text-decoration: none;
}

nav.main ul li .submenu a:hover {
	background: rgba(0,0,0,.04);
	text-decoration: none;
}

nav.main ul li.has-submenu::before {
	display: none;
}

nav.main ul li .submenu ul li::after {
	display: none;
}

/* submenú abierto (mobile) */
nav.main ul li.has-submenu.is-open > .submenu {
	max-height: 600px;
	padding: 12px 0;
	pointer-events: auto;
}

nav.main ul li.has-submenu .nav-parent {
   display: flex;
   align-items: center;
   justify-content: space-between;
}

nav.main ul li.has-submenu .nav-parent::after {
  content: "";
  width: 32px;
  height: 32px;
  background-image: url("../img/ico_menu_mobile.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  margin-left: 10px;
  transition: transform .25s cubic-bezier(.22,.61,.36,1);
}

/* estado abierto */
nav.main ul li.has-submenu.is-open .nav-parent::after {
  transform: rotate(90deg);
}

/*FOOTER*/

footer {
	padding-top: 4rem;
	padding-bottom: 3rem;
}

footer p {
	font-size: 14px;
	color: var(--color-clear);
}

footer a, footer a:visited {
	color: var(--color-secondary);
}

footer a:hover {
	color: var(--color-clear);
}

footer ul {
	padding-left: 0;
}

footer ul li {
	color: var(--color-clear);
	list-style-type: none;
	font-size: 14px;
	line-height: 2.2rem;
}

footer .ico {
	padding-right: 10px;
	filter: brightness(0) invert(1);
}

footer .ico_rrss {
	margin-right: 20px;
	filter: brightness(0) invert(1);
}

footer .ico_rrss a, footer .ico_rrss a:visited {
	border-bottom: none;
	padding-bottom: 0;
}

footer .ico_rrss a:hover {
	border-bottom: none;
	padding-bottom: 0;
}

.footer-separator {
	color: var(--color-clear);
	margin: 20px 0 40px;
	opacity: 0.15;
}

/* MENU HAMBURGUESA */

.menu-transition {
	cursor: pointer;
	display: block;
}

.hamburger-lines {
	height: 18px;
	width: 24px;
	position: absolute;
	top: 23px;
	right: 20px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.hamburger-lines .line {
	display: block;
	height: 2px;
	width: 100%;
	background: var(--color-dark);
}

.hamburger-lines .line1 {
	transform-origin: 0% 0%;
	transition: transform 0.4s ease-in-out;
}

.hamburger-lines .line2 {
  transition: transform 0.2s ease-in-out;
}

.hamburger-lines .line3 {
  transform-origin: 0% 100%;
  transition: transform 0.4s ease-in-out;
}

.checkbox {
	display: none;
}

input[type="checkbox"]:checked ~ .hamburger-lines .line1 {
	transform: rotate(45deg);
  }

input[type="checkbox"]:checked ~ .hamburger-lines .line2 {
	transform: scaleY(0);
}

input[type="checkbox"]:checked ~ .hamburger-lines .line3 {
	transform: rotate(-45deg);
}

.hdr-small .hamburger-lines {
    top: 14px !important;
}

/* -- CONTENIDO -- */

.container {
	--bs-gutter-x: 3rem;
}

/* Defino los paddings segun las variantes de modulos */

section.section-padding, section.section-color {
	padding-top: var(--space-6);
	padding-bottom: var(--space-5);
}

section.section-padding + section.section-padding {
	padding-top: var(--space-2);
}

section.section-padding + section.section-padding.section-color,
section.section-color + section.section-padding,
section.section-color + section.section-color {
	padding-top: var(--space-6);
}

section.section-padding.section-hero {
	padding-top: var(--space-4);
}

section.section-padding.section-hero.section-hero-sticky {
	padding-bottom: 0;
}

strong, .strong {
	font-weight: 700;
}

/* HERO SPLIT */

.section-hero {
    padding-top: 1rem;
    padding-bottom: 5rem;
}

.hero-split-content {
	padding-left: 20px;
  padding-right: 20px;
}

.hero-split-content p {
	max-width: 500px;
}

.hero-split-media img {
    object-fit: cover;
}


/* -- MODULO ICONOS -- */

.mod-icons {
  display: grid;
  grid-template-columns: 1fr;   /* 1 columna en mobile */
  gap: 20px;
}

.mod-item {
	display: flex;
	gap: 12px;
	text-align: left;
	align-items: center;
}

.mod-icons .ico-lg {
  flex-shrink: 0;
}

.mod-item p {
	color: var(--color-dark);
  margin: 0;
  line-height: 1.35;
  font-weight: 500;
}

/* MODULO IMG TXT */

.mod-img-text .mod-img-text-row {
  margin-bottom: 50px;
}

.mod-img-text .mod-img-text-row:last-child {
  margin-bottom: 0;
}

/* MODULO TXT SPLIT */

.mod-content-split .mod-content-split-row {
  margin-bottom: 50px;
}

.mod-content-split .mod-content-split-row:last-child {
  margin-bottom: 0;
}

.mod-content-split-row:not(:last-child){
	border-bottom: 1px solid #dcdcdc;
	padding-bottom: 2.5rem;
	margin-bottom: 1.5rem;
}

/* =========================================
   MODULOS CARDS
========================================= */

.cards-wrapper {
	width: 100%;
}

.mod-cards {
	/* hook estructural del row */
}

/* PIEZAS INTERNAS DE CARD */

.card-header-custom {
	flex-grow: 1;
	padding-left: 20px;
	padding-right: 20px;
}

.card-media {
	margin-top: auto;
}

.card .btn {
	margin-top: 1rem;
}

.card-title {
	font-size: clamp(1.75rem, 3vw, 2rem);
	font-weight: 600;
	margin-bottom: 1rem;
}

.card h2.card-title.text-big, 
.card h3.card-title.text-big, 
.card.card-left p.text-big {
	font-weight: 500;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.card h2.card-title.text-sm, .card h3.card-title.text-sm {
	font-weight: 400;
	font-size: clamp(1rem, 1.2vw, 1.4rem);
}

.ico-xl {
	width: 72px;
}

.ico-lg {
	width: 40px;
}

.ico-md {
	width: 32px;
}

.ico-sm {
	width: 24px;
	vertical-align: top;
}

/* VARIANTES de CARDS */

.card-vertical {
	border: none;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.mod-cards-vertical .card-title {
	font-size: 1.4rem;
	font-weight: 500;
	margin-bottom: .5rem;
}

.card-split .card-title {
    max-width: 26rem;
}

.card-split-aside p {
    margin-bottom: 0;
}

/* centrada */
.card-centered .card-header-custom {
	text-align: center;
	align-items: center;
}

/* izquierda */
.card-left .card-header-custom {
	text-align: left;
	align-items: flex-start;
}

/* CARD ACCESS */

.card-access {
  min-height: 120px;
  transition: transform .25s ease;
}

.card-access .card-title, 
.card.bg-main .card-title,
.card.bg-main h3,
.card.bg-main-dark .card-title,
.card.bg-main-dark h3 {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
}

.card-access-cta {
  display: flex;
  justify-content: flex-end;
  margin-top: auto;
}

.card-access-cta a {
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background-color: var(--color-main);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: background-color .2s ease, transform .2s ease;
}

.card-access-cta a img {
  width: 24px;
  height: 24px;
  display: block;
}

.card-access:hover .card-access-cta a {
  background-color: var(--btn-primary-hover-bg);
}

.card-bottom {
	margin-top: auto;
}

.card-bottom p:last-child {
	margin-bottom: 0;
}

/* TEXTO GENERAL EN FONDOS OSCUROS */
.card.bg-main,
.card.bg-main-dark {
	color: var(--color-clear);
}

/* ELEMENTOS INTERNOS */
.card.bg-main .card-title,
.card.bg-main-dark .card-title,
.card.bg-main p,
.card.bg-main-dark p,
.card.bg-main .eyebrow,
.card.bg-main-dark .eyebrow,
.card.bg-main a,
.card.bg-main-dark a {
	color: var(--color-clear);
}

.card.bg-main .card-title,
.card.bg-main h3,
.card.bg-main-dark .card-title,
.card.bg-main-dark h3 {
	font-weight: 500;
}

.bg-main .btn-primary,
.bg-main .btn-primary:focus,
.bg-main .btn-primary:active,
.bg-main .btn-primary.active,
.bg-main .show > .btn-primary.dropdown-toggle {
	color: var(--color-main) !important;
	background-color: var(--color-bg-soft) !important;
	border-color: transparent !important;
	box-shadow: none !important;
	font-weight: 500;
}

.bg-main-dark .btn-primary,
.bg-main-dark .btn-primary:focus,
.bg-main-dark .btn-primary:active,
.bg-main-dark .btn-primary.active,
.bg-main-dark .show > .btn-primary.dropdown-toggle {
	color: var(--color-main-dark) !important;
	background-color: var(--color-bg-soft) !important;
	border-color: transparent !important;
	box-shadow: none !important;
	font-weight: 500;
}

.bg-main .btn-primary:hover {
	color: var(--color-main) !important;
	background-color: var(--color-clear) !important;
	border-color: transparent !important;
}

.bg-main-dark .btn-primary:hover {
	color: var(--color-main-dark) !important;
	background-color: var(--color-clear) !important;
	border-color: transparent !important;
}

.card.bg-main img,
.card.bg-main-dark img {
	filter: brightness(0) invert(1);
}

.card.bg-main .btn img, .card.bg-main-dark .btn img {
	filter: none;
}

/* =========================================
   ACORDION
========================================= */

.mod-accordion h2 .accordion-button {
	font-size: inherit;
	font-weight: 500;
}

.mod-accordion h2 {
	font-size: clamp(1.3rem, 3vw, 2rem);
}

.mod-accordion {
    --bs-accordion-btn-icon: url("../img/acc_arrow_down.svg");
    --bs-accordion-btn-active-icon: url("../img/acc_arrow_down.svg");
    --bs-accordion-btn-icon-transform: rotate(-180deg);
    --bs-accordion-active-bg: var(--color-bg-soft);
    --bs-accordion-btn-focus-box-shadow: none;
}

.accordion {
	--bs-accordion-btn-icon-width: 32px;
}

/* COLORES */

.color-clear {
	color: var(--color-clear);
}

/* FONDOS */

.bg-soft {
	background-color: var(--color-bg-soft);
}

.bg-light-gray {
	background-color: var(--color-bg-light-gray);
}

.bg-main {
	background-color: var(--color-main);
}

.bg-main-dark {
	background-color: var(--color-main-dark);
}

/* ALERTS */

.alert {
	--bs-alert-border-radius: 20px;
}

.alert-info {
	--bs-alert-bg: var(--color-bg-soft);
	border: none;
}

.alert-info p {
	color: var(--color-dark);
}

/* ============================ */
/* SPLIDE SLIDERS */
/* ============================ */

/* HERO SLIDER */

.slide {
  overflow: hidden;
  height: 240px;
}

.slide picture,
.slide img,
.slide video {
  display: block;
  width: 100%;
  height: 100%;
}

.slide img,
.slide video {
  object-fit: cover;
}

.slide-content {
	color: white;
	max-width: 600px;
}

.slide-1 {
	background: #0055a5;
}

.slide-2 {
	background: #008c8c;
}

.slide-3 {
	background: #6c3fc5;
}

.splide__arrow svg {
	display: none !important;
}

.splide .splide__arrow {
	background-color: transparent;
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	opacity: 1;
	transition: transform .4s cubic-bezier(.22,.61,.36,1), opacity .25s ease;
}

.splide .splide__arrow--prev {
	background-image: url("../img/arrow_left.svg") !important;
}

.splide .splide__arrow--next {
	background-image: url("../img/arrow_right.svg") !important;
}

.splide .splide__arrow--prev:hover {
	opacity: 0.9;
	transform: translateY(-50%) translateX(-4px);
}

.splide .splide__arrow--next:hover {
	opacity: 0.9;
	transform: translateY(-50%) translateX(4px);
}

.splide__arrow:focus {
	outline: none;
	box-shadow: none;
}

/* ============================ */
/* NAV STICKY */
/* ============================ */

.bloque-hero-prueba{
	position: relative;
	height: 520px;
	background: #cfd8df;
	display: flex;
	align-items: center;
	padding: 2rem 0 4rem;
}

.sticky-nav-wrap {
	position: sticky;
	top: 100px;
	z-index: 100;
	display: flex;
	justify-content: center;
	margin-top: -28px;
	pointer-events: none;
}

.sticky-nav {
	display: inline-flex;
	align-items: center;
	background: var(--color-clear);
	border-radius: 999px;
	box-shadow: 0 8px 20px rgba(0,0,0,.15);
	pointer-events: auto;
	overflow: hidden;
}

.sticky-nav-link {
	font-size: 0.9rem;
	border: none;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: var(--color-body);
	padding: 0.8rem 1rem;
	line-height: 1;
	cursor: pointer;
	transition: color .35s ease;
}

.sticky-nav-link:hover {
	border: none;
}

.sticky-nav-link.is-active {
	color: #0d5ea6;
	font-weight: 600;
}

.sticky-nav-link:not(:last-child)::after{
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 24px;
	background-color: #cfcfcf;
}

/* ============================ */
/* BUSCADOR */
/* ============================ */

.mod-search {
	padding-top: 2rem;
	padding-bottom: 4rem;
}

.search-box {
	padding: .65rem 1rem;
	gap: .5rem;
	display: flex;
	align-items: center;
	border: 1px solid var(--color-outline);
	border-radius: 999px;
	background: var(--color-clear);
	cursor: text;
}

.search-input {
	flex: 1;
	border: 0;
	background: transparent;
	padding: 0;
	font: inherit;
	font-size: .90rem;
	line-height: 1.2;
	color: var(--color-body);
	outline: none;
}

.search-input::placeholder {
	color: var(--color-outline);
	opacity: 1;
}

.search-submit {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	padding: 0;
	cursor: pointer;
}

.search-submit img {
	display: block;
	width: 20px;
	height: 20px;
}

.search-input::-webkit-search-decoration,
.search-input::-webkit-search-cancel-button,
.search-input::-webkit-search-results-button,
.search-input::-webkit-search-results-decoration {
	-webkit-appearance: none;
	appearance: none;
}

.search-input[type="search"] {
	appearance: textfield;
}

.search-box:focus-within {
	box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.12);
	transition: border-color .2s ease, box-shadow .2s ease;
}

/* MAPA */

.mapa {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #e9ecef;
}

.mapa iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ============================ */
/* MASONRY */
/* ============================ */

.mod-masonry-gallery{
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.mod-masonry-gallery-item{
	margin: 0;
	overflow: hidden;
	border-radius: 1.5rem;
	min-width: 0;
}

.mod-masonry-gallery-item img{
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* FORMS */

 input.form-control {
 	font-size: 1em;
 	color: var(--color-body);
 	background-color: var(--color-clear);
    border: 1px solid var(--color-bg-gray);
    border-radius: 5px;
    padding: .9rem .75rem;
    -webkit-transition: all 0.5s ease-in-out 0s;
	transition: all 0.5s ease-in-out 0s; 
 }

 input:-webkit-autofill {
    color: var(--color-body) !important; /* Color del texto */
    -webkit-text-fill-color: var(--color-body) !important; /* Hace que el texto sea blanco */
    background-color: var(--color-clear);
    transition: background-color 5000s ease-in-out 0s; /* Asegura que el color se mantenga */
    border: 1px solid var(--color-clear) !important;
}

textarea.form-control {
	font-size: 1em;
 	color: var(--color-body) !important;
 	background-color: var(--color-clear);
 	border: 1px solid var(--color-bg-gray);
 	border-radius: 5px;
 	padding: .775rem .75rem;
 	-webkit-transition: all 0.5s ease-in-out 0s;
	transition: all 0.5s ease-in-out 0s; 
 }

input.form-control:hover, textarea.form-control:hover {
	filter: brightness(0.96);
	-webkit-transition: all 0.5s ease-in-out 0s;
	transition: all 0.5s ease-in-out 0s; 
}

.form-control::placeholder {
  color: var(--color-body) !important;
  opacity: 1;
}

.msg-error {
	color: var(--color-red);
    font-size: 1em;
}

.msg-success {
	color: var(--color-main);
    font-size: 1em;
}

/* Contenedor del grupo de fecha */
.datepicker-wrapper {
    position: relative;
}

/* El input que el usuario ve */
.input-custom-style {
    color: var(--color-body) !important;
    background-color: var(--color-clear) !important;
    min-height: 45px; /* Para que sea fácil de tocar en móvil */
    padding-right: 2.5rem;
    cursor: pointer;
}

.datepicker-icon {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    pointer-events: none;
}

/* El input de fecha que está por detrás escondido */
.input-real-hidden {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
}

/* RESET BOTONES */

.btn {
	border: none;
	transition:
		background-color .45s ease,
		color .65s ease,
		border-color .65s ease,
		transform .25s cubic-bezier(.22,.61,.36,1) !important;
}

.btn:hover {
	border: none;
	transform: translateY(-2px);
}

.btn-primary,
.btn-secondary,
.btn-danger,
.btn-outline-primary,
.btn-info {
    border-radius: var(--btn-radius);
    --bs-btn-padding-x: 1.5rem;
}

.btn-primary,
.btn-primary:hover,
.btn-primary:focus {
    color: var(--color-clear) !important;
}

.btn-primary {
  --bs-btn-bg: var(--color-main);
  --bs-btn-color: var(--color-clear);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-bg: var(--btn-primary-hover-bg);
  --bs-btn-hover-color: var(--color-clear);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-bg: var(--btn-active-bg);
  --bs-btn-active-color: var(--color-clear);
  --bs-btn-active-border-color: transparent;
  --bs-btn-padding-x: 1.5rem;
  font-weight: 400;
}

.btn-primary img {
	vertical-align: top;
}

.btn-secondary {
	--bs-btn-bg: var(--color-secondary);
	--bs-btn-color: var(--color-main);
	--bs-btn-border-color: transparent;
	--bs-btn-hover-bg: var(--color-main);
	--bs-btn-hover-color: var(--color-clear);
	--bs-btn-hover-border-color: transparent;
	--bs-btn-active-bg: var(--color-main);
	--bs-btn-active-color: var(--color-clear);
	--bs-btn-active-border-color: transparent;
	font-weight: 500;
}

.btn-danger {
    background-color: var(--color-red);
    border: 0;
    color: var(--color-clear) !important;
    font-weight: 500;
}

.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: none !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}

.btn-group-sm>.btn, .btn-sm {
    --bs-btn-padding-y: 0.55rem;
    --bs-btn-font-size: 0.775rem;
    --bs-btn-padding-x: 1.5rem;
}

.btn-group-xs>.btn, .btn-xs {
    --bs-btn-padding-y: 0.45rem;
    --bs-btn-font-size: 0.665rem;
    --bs-btn-padding-x: 1.5rem;
}

.btn:focus-visible {
	outline: 2px solid var(--color-main) !important;
	outline-offset: 2px !important;
}


.btn-outline-primary {
	--bs-btn-color: var(--color-main);
	--bs-btn-border-color: var(--color-main);
	--bs-btn-hover-bg: var(--color-main);
	--bs-btn-hover-color: var(--color-clear);
	--bs-btn-hover-border-color: var(--color-main);
	--bs-btn-active-bg: var(--color-main);
	--bs-btn-active-color: var(--color-clear);
	--bs-btn-active-border-color: var(--color-main);
	border: 2px solid var(--color-main) !important;
	font-weight: 500;
}

.btn-outline-primary:hover,
.btn-outline-primary:active,
.btn-outline-primary.active,
.show > .btn-outline-primary.dropdown-toggle {
	border: 2px solid var(--color-main) !important;
}
/* Reset Glow Azul*/

.form-control:focus, .form-select:focus {
	color: var(--color-body);
	background-color: var(--color-clear) !important;
	border-color: var(--color-outline);
	box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.08);
}

.form-control:focus {
	background-color: var(--color-clear) !important;
	filter: none !important;
}

.transition {
	-webkit-transition: all 0.3s ease-in-out 0s;
	transition: all 0.3s ease-in-out 0s; 
}

.mt-6 {
    margin-top: var(--space-6) !important;
}

.eyebrow {
	color: var(--color-dark);
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    display:block;
    margin-bottom:.5rem;
}

/****************************/
/* MEDIA QUERIES */
/****************************/

/* 768 */
@media screen and (min-width: 768px) {

.mod-icons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}

.mod-item {
    flex: 0 0 calc((100% - (20px * 2)) / 3); /* 3 por fila */
    max-width: calc((100% - (20px * 2)) / 3);
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 2px;
}

.mod-icons .ico-lg {
  margin-bottom: 10px;
}

.slide {
   height: 500px;
}

.search-box {
	padding: 1rem 1.5rem;
	gap: .75rem;
}

.search-input {
	font-size: 1rem;
}

.search-submit img {
	width: 24px;
	height: 24px;
}

	.mod-masonry-gallery{
		grid-template-columns: 1fr 1fr;
		gap: 1.2rem;
	}

	.mod-masonry-gallery-item img{
		width: 100%;
		height: 100%;
	}

	.mod-masonry-gallery-item-wide{
		grid-column: 1 / -1;
		aspect-ratio: 1156 / 608;
	}

	.mod-masonry-gallery-item-small{
		grid-column: 2 / 3;
		aspect-ratio: 570 / 348;
	}

	.mod-masonry-gallery-item-tall{
		grid-column: 1 / 2;
		grid-row: span 2;
		aspect-ratio: 570 / 730;
	}

}

/* 992 */
@media screen and (min-width: 992px) {

.mod-img-text .media-text-img-left  { padding-left: 80px; }
.mod-img-text .media-text-img-right { padding-right: 80px; }

.mod-content-split .content-split-title {
  padding-right: 80px;
}

.cards-wrapper {
	max-width: 1100px;
	margin-inline: auto;
}

.mod-card-100 .card-title,
.mod-card-100 p {
    max-width: 540px;
    margin-inline: auto;
}

.card-access {
	min-height: 160px;
}

.accordion-button {
	position: relative;
	padding-right: 8rem;
	--bs-accordion-btn-padding-y: 1.4rem;
}

.accordion-button::after{
	position: absolute;
	right: 1.25rem;
	margin-left: 0;
}

.mod-h1 p {
    max-width: 640px;
    margin-inline: auto;
}

.accordion-body p,
.accordion-body ul {
	max-width: 700px;
}

}

/* 1024 */
@media screen and (min-width: 1025px) {

.sticky-nav-link {
	font-size: 1rem;
	padding: 1rem 2.5rem;
}

}

/* 1280 */
@media screen and (min-width: 1200px) {

.toggle-button {
	display: none;
}

#pre_header {
    display: block;
}

header#header_nav {
	height: 63px;
}

header#header_nav .logo {
	margin-left: 5px;
	margin-top: 7px;
	width: 68px;
}

nav.main {
    position: relative;
    top: 0;
    background: transparent;
    display: block !important;
    /*overflow: hidden;*/
    padding-top: unset;
    padding-bottom: unset;
    box-shadow: none;
}

nav.main ul {
    margin-left: 0;
    padding-top: 16px;
    padding-bottom: 0;
}

nav.main ul li {
	font-size: 16px;
	font-weight: 400;
	padding: 4px 20px;
	height: unset;
}

nav.main ul li::after {
    content: '';
    position: absolute;
    bottom: -16px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 2px;
    background-color: var(--color-link);
    transition: width 0.3s ease;
}

nav.main ul li.active::after, nav.main ul li:hover::after {
    width: 100%; /* Ajusta este valor (ej: 50%, 70%, etc.) */
}

nav.main ul li.active {
    color: var(--color-link);
}

nav.main ul li.has-submenu .nav-parent {
   display: inline-block; /* vuelve a como estaba en desktop */
}

nav.main ul li.has-submenu .nav-parent::after {
   content: none; /* elimina completamente la flecha */
}

/* panel del submenú (DESKTOP) */
nav.main ul li .submenu {
  	background-color: var(--color-bg-light-gray);
	border-radius: 0 0 10px 10px;
    position: absolute;
    top: calc(100% + 16px);
    left: 0;
    min-width: 360px;
    width: 100%;
    padding: 18px 0;
    box-shadow: 0 2px 6px rgba(60,64,67,.15),
                0 1px 2px rgba(60,64,67,.12);
    max-height: none;   /* reset mobile */
    overflow: visible;  /* reset mobile */
                
    /* animación desktop */
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
 }

/* puente anti-parpadeo (DESKTOP) */
nav.main ul li.has-submenu::before {
    display: block;
    content:"";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 18px;
 }

nav.main ul li.has-submenu:hover > .submenu{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

nav.main ul li .submenu a {
	padding: 14px 24px;
}

.container {
	--bs-gutter-x: 1.5rem;
}

.btn-primary,
.btn-secondary,
.btn-danger,
.btn-outline-primary,
.btn-info {
    --bs-btn-padding-y: 0.58rem;
}

/* Lupa */
.btn-search {
	position: static;
	transform: none;
}

.mod-icons {
  display: grid;
  grid-template-columns: repeat(5, 1fr); /* 5 columnas que ocupan todo el ancho */
  gap: 20px;
  align-items: start;
}

.mod-item {
  max-width: 220px;
  justify-self: center;
}

/* VARIANTE 4: pisa el grid */
  .mod-icons.mod-icons--4{
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 20px;
    row-gap: 60px;
    text-align: center;
    grid-template-columns: unset;
    align-items: unset;
  }

.mod-icons.mod-icons--4 .mod-item {
  flex: 0 0 220px;
  max-width: 220px;
}

.hover-lift {
  transition: transform .3s cubic-bezier(.22,.61,.36,1);
}

.hover-lift:hover {
  transform: translateY(-4px);
}

.hover-zoom-out {
	transition: transform .3s cubic-bezier(.22,.61,.36,1);
}

.hover-zoom-out:hover {
	transform: scale(0.9);
}

.hover-zoom-in {
	transition: transform .3s cubic-bezier(.22,.61,.36,1);
}

.hover-zoom-in:hover {
	transform: scale(1.2);
}

.card-header-custom {
	padding-left: 40px;
	padding-right: 40px;
}

.hero-split-content {
	padding-left: 100px;
  padding-right: 100px;
}

	.mod-masonry-gallery-item-small{
		grid-column: 2 / 3;
		aspect-ratio: 570 / 355;
	}

}

/* 1366 */
@media screen and (min-width: 1360px) {

section.section-padding {
	padding-top: var(--space-8);
	padding-bottom: var(--space-9);
}

section.section-color {
	padding-top: var(--space-9);
	padding-bottom: var(--space-10);
}

section.section-padding + section.section-padding {
	padding-top: var(--space-1);
}

section.section-padding + section.section-padding.section-color,
section.section-color + section.section-padding,
section.section-color + section.section-color {
	padding-top: var(--space-10);
}

.rounded-lg-5 {
	border-radius: var(--bs-border-radius-5) !important;
}

.mod-masonry-gallery-item-small{
	grid-column: 2 / 3;
	aspect-ratio: 570 / 355;
}

}

/* 1440 */
@media screen and (min-width: 1400px) {

.mod-img-text .mod-img-text-row {
	margin-bottom: 80px;
}

.mod-content-split .mod-content-split-row {
  margin-bottom: 80px;
}

.mod-img-text .media-text-img-left  { padding-left: 142px; }
.mod-img-text .media-text-img-right { padding-right: 142px; }

.mod-content-split .content-split-title {
  padding-right: 180px;
}

	.mod-masonry-gallery{
		gap: 1.4rem;
	}

	.mod-masonry-gallery-item-wide{
		aspect-ratio: 1156 / 608;
	}

	.mod-masonry-gallery-item-small{
		aspect-ratio: 570 / 300;
	}

	.mod-masonry-gallery-item-tall{
		aspect-ratio: 570 / 620;
	}

}

/* 1680 */
@media screen and (min-width: 1680px) {

}
