/******************************************/
/** General                              **/
/******************************************/

:root {
   --primary: #3A3A3A;
   --secondary: #0095FF;
   --texto: #3A3A3A99;
   --black: #000000;
   --gray: #555555;
   --light: #F8F9FA;
   --white: #ffffff;
   --scroll-button: #3A3A3A99;
}

*, *::before, *::after {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

html, body {
   min-height: 100vh;
   min-height: 100dvh;
   background-color: var(--light);
   font-family: 'Clash Display', sans-serif;
}

/******************************************/
/** Helpers                              **/
/******************************************/

/* Colors */

.text-primary {color: var(--primary) !important;}
.text-texto {color: var(--texto) !important;}

.hover\:text-primary:hover {color: var(--primary) !important;}

.bg-primary {background-color: var(--primary) !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;}

/* Sizes */

.button {padding: 15px 25px;}

.w-fit {width: fit-content;}
.w-screen {width: 100vw; width: 100dvw;}
.h-screen {height: 100vh; height: 100dvh;}


/******************************************/
/** Navbar                               **/
/******************************************/

.navbar-nav .nav-item .nav-link {
   color: var(--primary);
}

.navbar-grid {
   padding-top: 20px;
   display: grid;
   grid-template-columns: repeat(12, 1fr);
   width: 100%;
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   z-index: 1030;
   background: transparent;
   transition: all 0.3s ease;
}

.navbar-grid .navbar-content {
   grid-column: 2 / span 10;
   width: 100%;
}

@media (max-width: 768px) {
   .navbar-grid .navbar-content {
      grid-column: 1 / span 12;
      padding: 0 1rem;
   }
   
   .navbar-brand img {
      width: 200px;
   }
}

@media (max-width: 576px) {
   .navbar-grid .navbar-content {
      grid-column: 1 / span 12;
      padding: 0 0.75rem;
   }
}

.navbar-grid.navbar-shrink {
   background-color: var(--light);
   box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/******************************************/
/** Footer                               **/
/******************************************/

.footer{
   background-color: #D9D9D9;
   color: var(--primary);
   display: grid;
   grid-template-columns: repeat(24, 1fr);
}

.footer-container {
   grid-column: 1 / span 24;
}

.footer a {
   color: var(--primary);
}

.footer-row-divider {
   border-bottom: 0.5px solid #3A3A3A99;
}

.footer-pt-25 {
   padding-top: 25px;
}

.footer-pb-100 {
   padding-bottom: 100px;
}

/******************************************/
/** Grid                                 **/
/******************************************/

.section-grid{
   display: grid;
   grid-template-columns: repeat(24, 1fr);
   width: 100%;
   max-width: 1920px;
   margin: 0 auto;
}

.section-grid .section-content {
   grid-column: 3 / span 20;
   min-width: 0;
}
.section-grid .section-content-full {
   grid-column: 1 / span 24;
   min-width: 0;
}

@media (max-width: 767.98px) {
   .section-grid .section-content {
      grid-column: 1 / span 24 !important;
      padding: 0 1rem;
   }
}


/******************************************/
/** Components                           **/
/******************************************/

.section-title {
   font-size: clamp(1.5rem, 3vw, 64px);
   color: var(--primary);
   font-weight: 500;
}
.section-kicker {
   display: inline-block;
   color: var(--primary);
   text-transform: uppercase;
   letter-spacing: 1px;
   word-spacing: 1.5rem;
}
.section-link {
   color: var(--primary);
   text-decoration: none;
   display: flex-inline;
   border-bottom: 1px solid var(--primary);
}
.section-link-white {
   color: var(--white);
   text-decoration: none;
   display: flex-inline;
   border-bottom: 1px solid var(--white);
}

/******************************************/
/** Buttons                              **/
/******************************************/

.banner-btn {
   min-width: clamp(90px, 20vw, 130px);
   background: rgba(255, 255, 255, 0.9);
   color: var(--primary);
   border: 0;
   padding: clamp(0.45rem, 1vw, 0.55rem) clamp(0.75rem, 2vw, 1rem);
   text-transform: uppercase;
   text-decoration: underline;
   text-underline-offset: 3px;
   text-decoration-thickness: 1px;
   text-align: center;
   font-size: clamp(0.85rem, 2.5vw, 1.1rem);
   transition: background 0.3s ease;
}
.banner-btn:hover {
   background: rgba(255, 255, 255, 0.5);
}

@media (max-width: 575.98px) {
   .banner-btn {
      min-width: auto;
      padding: 0.4rem 0.6rem;
      font-size: 0.75rem;
   }
}

.icon-md {
	width: 30px;
	height: 30px;
	min-width: 30px;
	min-height: 30px;
}

.icon-lg {
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
}

/* Animations */

.transition-03 {
   transition: all linear .3s;
   -o-transition: all linear .3s;
   -moz-transition: all linear .3s;
   -webkit-transition: all linear .3s;
}

.reveal-on-scroll {
   opacity: 0;
   transform: translateY(var(--reveal-offset, 30px));
}

.reveal-on-scroll.reveal-visible {
   opacity: 1;
   transform: translateY(0);
   transition: opacity var(--reveal-duration, 0.6s) cubic-bezier(0.4, 0, 0.2, 1), transform var(--reveal-duration, 0.6s) cubic-bezier(0.4, 0, 0.2, 1);
   transition-delay: var(--reveal-delay, 0s);
}

@media (prefers-reduced-motion: reduce) {
   .reveal-on-scroll,
   .reveal-on-scroll.reveal-visible {
      opacity: 1;
      transform: none;
      transition: none;
   }
}

/* 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);
}

/******************************************/
/** Forms                                **/
/******************************************/

.form-select,
.form-control,
.input-group {
   border-radius: 0px;
   border: 1px solid #ffffff99;
   color: var(--white) !important;
   background-color: transparent;
}


.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: #fff;
   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: #ffffff99 !important;
}
::-ms-input-placeholder {color: #ffffff99 !important;}


/******************************************/
/** Animations                           **/
/******************************************/

/* Hover underline animation for all links */
.hover-underline {
   position: relative;
   text-decoration: none;
   transition: color 0.3s ease;
}

.hover-underline::after {
   content: '';
   position: absolute;
   width: 0;
   height: 1px;
   bottom: -2px;
   left: 0;
   background-color: currentColor;
   transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.hover-underline:hover::after {
   width: 100%;
}

.hover-underline:hover {
   opacity: 0.8;
}

.opacity-50.hover-underline:hover {
   opacity: 0.7;
}

.text-decoration-underline.hover-underline {
   text-decoration: none;
}


.btn-pagination {
   border: none;
   color: var(--primary);
   background-color: transparent;
}

.btn-pagination.active {
   font-weight: bold;
}