/******************************************/
/** General                              **/
/******************************************/

:root {
   --primary: #0F2A3A;
   --secondary: #6DB1CF;
   --tertiary: #F2A900;
   --texto: #0F2A3A99;
   --texto-secondary: #F2F6F899;
   --black: #000000;
   --gray: #555555;
   --light: #f7fafb;
   --white: #ffffff;
   --scroll-button: #0F2A3A;
}

*, *::before, *::after {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

html, body {
   min-height: 100vh;
   min-height: 100dvh;
   color: var(--texto);
   background-color: var(--white);
   font-family: "Montserrat", sans-serif;
   font-optical-sizing: auto;
   font-weight: 400;
   font-style: normal;
}

/******************************************/
/** Helpers                              **/
/******************************************/

/* Colors */

.text-primary {color: var(--primary) !important;}
.text-secondary {color: var(--secondary) !important;}
.text-tertiary {color: var(--tertiary) !important;}
.text-texto {color: var(--texto) !important;}
.text-texto-secondary {color: var(--texto-secondary) !important;}

.hover\:text-primary:hover {color: var(--primary) !important;}

.bg-primary {background-color: var(--primary) !important;}
.bg-light {background-color: var(--light) !important;}

.hover\:bg-primary:hover {background-color: var(--primary) !important;}

/* Fonts */

.fs-7 {font-size: .95rem;}
.fs-8 {font-size: .8rem;}
.fs-9 {font-size: .7rem;}
.fs-hero {font-size: clamp(1.5rem, 3.6vw, 4rem) !important;}

.fw-extrabold {font-weight: 800 !important;}

/* Sizes */

.button {padding: 15px 25px;}

.w-fit {width: fit-content;}
.w-screen {width: 100vw; width: 100dvw;}
.h-screen {height: 100vh; height: 100dvh;}

/* Components */

.icon-md {
   width: 30px;
   height: 30px;
   min-width: 30px;
   min-height: 30px;
}

.icon-lg {
   width: 40px;
   height: 40px;
   min-width: 40px;
   min-height: 40px;
}

.rounded-15 {
   border-radius: 15px !important;
}

/* Animations */

.transition-03 {
   transition: all linear .3s;
   -o-transition: all linear .3s;
   -moz-transition: all linear .3s;
   -webkit-transition: all linear .3s;
}

.hover-zoom {
   transition: transform 0.4s ease;
}
.hover-zoom:hover {
   transform: scale(1.07);
}

/* scroll button */

#scroll-button {
   opacity: 0;
   transform: translateY(50px);
   right: 30px;
   bottom: 20px;
   z-index: 1101;
   transition: all 0.5s ease-out;
   border: 3px solid var(--white);
}

#scroll-button.show {
   opacity: 1;
   transform: translateY(0);
}

.rounded-badge{
   border-radius: 15px !important;
}

/******************************************/
/** Navbar                               **/
/******************************************/
.navbar.shrink {
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.navbar-nav .nav-link {
   font-size: 0.9rem;
   letter-spacing: 0.1em;
}



/******************************************/
/** Buttons                              **/
/******************************************/

.btn-primary{
   background-color: var(--primary);
   border-color: var(--primary);
   color: var(--light);
   border-radius: 8px;
   padding: 16px 32px;
   font-weight: 800;
   transition: all 0.3s ease;
   overflow: hidden;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
   background-color: var(--primary) !important;
   border-color: var(--primary) !important;
   color: var(--light) !important;
   opacity: 0.9;
}

.btn-tertiary{
   background-color: var(--tertiary);
   border-color: var(--tertiary);
   color: var(--white);
   border: none !important;
   border-radius: 8px;
   padding: 16px 32px;
   font-weight: 800;
   transition: all 0.3s ease;
   position:relative;
   overflow: hidden;
}
.btn-primary:before, .btn-tertiary:before{
   content: "";
   position: absolute;
   z-index: 1;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background-color: var(--secondary);
   border-radius: 16px;
   padding: 16px 32px;
   transition: all 0.3s ease;
}

.btn-primary:hover::before, .btn-primary:focus::before, .btn-primary:active::before,
.btn-tertiary:hover::before, .btn-tertiary:focus::before, .btn-tertiary:active::before {
   left: 0 !important;
}

.nav-link-primary {
   color: var(--gray) !important;
   text-transform: uppercase;
   transition: all 0.3s ease;
}

.nav-link-primary:hover, .nav-link-primary:active {
   color: var(--secondary) !important;
}

.nav-link-primary.active {
   color: var(--secondary) !important;
}

@media (min-width: 992px) {
   .columns-2{
      column-count: 2;
      column-gap: 2rem;
   }
}
@media (max-width: 991.98px) {
   .columns-2{
      column-count: 1;
   }
}

@media (max-width: 991.98px) {
   footer {
      background-color: var(--light);
   }
}


/* HOME
---------------*/
.hero{
   height: 70vh
}
.gradiant-overlay{
   background: linear-gradient(266.88deg, rgba(242, 246, 248, 0) 36.5%, rgba(242, 246, 248, 0.579204) 49.35%, #F2F6F8 64.55%);
}
@media (max-width: 991.98px) {
   .gradiant-overlay{
      background: linear-gradient(0deg, rgba(242, 246, 248, 0.4) 100%);
   }
}
.imgBorder-5{
   border-width: 10px !important;
}
.imgBorder-5.rounded-4{
   border-radius: 24px !important;
}

/* end ---*/



/******************************************/
/** Forms                                **/
/******************************************/

.form-select,
.form-control,
.input-group {
   border-radius: 15px;
   border: 1px solid #0F2A3A4D;
   padding: 12px 16px;
}

.input-group:active,
.input-group:focus,
.input-group:focus-within,
.form-select:active,
.form-select:focus,
.form-control:active,
.form-control:focus {
   box-shadow: none;
   border-color: var(--primary);
   background-color: transparent;
}

.input-group.disabled,
.form-control:disabled,
.form-select:disabled {
   border-color: #D9D9D9 !important;
   background-color: #D9D9D9 !important;
}

.form-check-input {
   min-width: 1em !important;
   min-height: 1em !important;
}

.form-check-input:checked {
   border-color: var(--primary) !important;
   background-color: var(--primary) !important;
}

.form-check-input:focus {
   box-shadow: none;
   border-color: #D9D9D9 !important;
}

::placeholder {
   opacity: 1;
   color: var(--gray) !important;
}
::-ms-input-placeholder {color: var(--gray) !important;}
