/******************************************/
/** General                              **/
/******************************************/

:root {
   --primary: #02216E;
   --secondary: #DAAA00;
   --textos:#3f444d;
	--black: #000000;
   --gray: #555555;
   --light: #f2f2f2;
	--white: #fff;
   --background-cool:  #D5DCF63B;    
   --background-muted: #F5F5F5;
   --background-warm:  #FFFAF2BA;
   --primary-light: #334585;
}

*, *::before, *::after {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

html, body {
   min-height: 100vh;
   min-height: 100dvh;
   color: var(--gray);
   font-size: 1rem !important;
   line-height: 1.8rem !important;
   background-color: var(--white);
   font-family: "National Park", sans-serif;
}

/* Sidebar */

.sidebar {
         height: 100%;
         position: fixed;
         z-index: 1100;
         width: 100px;
         right: 2%;
         top: 30%;
         transition: all 0.4s ease;
         pointer-events: none;
         display: flex;
         flex-direction: column; 
         align-items: end;
         justify-content: start;
         gap: 12px;
      }

      .sidebar.hidden {
         opacity: 0;
         visibility: hidden;
      }

      .sidebar-btn {
         overflow: hidden;
         display: flex;
         align-items: center;
         justify-content: flex-end;
         min-width: 40px;
         height: 40px;
         transform-origin: right center;
         transition: all 0.3s ease;
         pointer-events: auto;
         width: 40px;
         position: relative;
      }

      .sidebar-btn svg {
         width: 17px;
         height: 17px;
         transition: all 0.3s ease;
         flex-shrink: 0;
         position: absolute;
         right: 11px;
      }

      .sidebar-btn:hover {
         width: 130px;
         gap: 8px;
      }

      .sidebar-btn .sidebar-text {
         opacity: 0;
         white-space: nowrap;
         transition: all 0.3s ease;
         max-width: 0;
         display: inline-block;
         overflow: hidden;
         transform: translateX(20px);
      }

      .sidebar-btn:hover .sidebar-text {
         opacity: 1;
         max-width: 100px;
         transform: translateX(0);
         transition: opacity 0.3s ease 0.1s, max-width 0.3s ease 0.1s, transform 0.3s ease 0.1s;
      }
/* .sidebar-btn {
   transition: all 0.4s ease;
   position: relative;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
   min-width: 40px;
   width: auto;
   overflow: visible;
   padding: 12px;
   display: flex;
   align-items: center;
   justify-content: center;
   pointer-events: auto;
}

.sidebar-btn .sidebar-text {
   opacity: 0;
   width: 0;
   transition: all 0.4s ease;
   white-space: nowrap;
   font-weight: 500;
   letter-spacing: 0.5px;
   overflow: hidden;
   margin: 0;
   padding: 0;
   gap: 0;
}

.sidebar-btn:hover {
   padding: 12 20px;
   gap: 10px;
}

.sidebar-btn:hover .sidebar-text {
   opacity: 1;
   width: auto;
   margin-right: 10px;
}
/* Navbar */

#mainNav a{
   position: relative;
   font-family: "National Park", sans-serif;
   color: var(--white);
   padding-bottom: 0;
} */



/* linha inicial (quando ativo) */
#mainNav a::after {
   content: "";
   position: absolute;
   left: 7px;
   bottom: -4px;
   width: 100%;
   height: 2px;
   background: white;
   transform: scaleX(0);
   transform-origin: left;
   transition: transform 0.3s ease;
}

/* ativo (linha já visível) */
#mainNav .nav-item a.active::after {
   transform: scaleX(0.3);
}

/* animação no hover */
#mainNav .nav-item a:hover::after {
   transform: scaleX(1);
}

#mainNav.navbar-shrink{
   background-color: var(--primary) !important;
   box-shadow: 0 0 10px 0 rgba(0,0,0,0.2);
   transition:ease all 0.3s;
}

#mainNav.navbar-shrink img#navLogo{
   width: 170px !important;
   transition: ease all 0.3s;
}

@media (max-width: 1024px) {
   #mainNav a, #mainNav .dropdown{
      color: var(--primary)!important;
   }
   
}

.padding-nav{
   padding-top:170px;
}
@media(max-width:768px){
   .padding-nav{
      padding-top:70px !important;
   }
}

/* Footer */

#top {
   z-index: 1;
   background-color: var(--white);
}

.back-top {
   left: 50%;
   width: 40px;
   height: 35px;
   transform: translateX(-50%);
   border-bottom-left-radius: 50px;
   border-bottom-right-radius: 50px;
}


.back-top:hover {height: 45px;}
/******************************************/
/** Helpers                              **/
/******************************************/


@media (min-width: 768px) { /* md */
   .position-md-absolute {
      position: absolute;
   }
}

/* Colors */

.text-primary {color: var(--primary) !important;}
.text-secondary {color: var(--secondary) !important;}
.text-textos {color: var(--textos) !important;}

.hover\:text-primary:hover {color: var(--primary) !important;}

.bg-primary {background-color: var(--primary) !important;}
.bg-secondary {background-color: var(--secondary) !important;}

.bg-muted{background-color: var(--background-muted) !important;}
.bg-warm{background-color: var(--background-warm) !important;}
.bg-cool{background-color: var(--background-cool) !important;}
.bg-primary-light{background-color: var(--primary-light) !important;}


.hover\:bg-primary:hover {background-color: var(--primary) !important;}

/* Fonts */

.fm-national{
   font-family: "National Park", sans-serif !important;
}
.fm-playfair{
   font-family: "Playfair Display", serif !important;
}

.fs-7 {font-size: .95rem;}
.fs-8 {font-size: .8rem;}
.fs-9 {font-size: .7rem;}
.fs-banner {
   font-size: clamp(2rem, 7vw, 8rem);
   line-height: 1.1;
   letter-spacing: 0.11em;
}

/* 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;
}

/* Buttons */

.btn-primary{
   --bs-btn-color: var(--white) !important;
   --bs-btn-bg: var(--primary);
   --bs-btn-border-color: var(--primary);
   --bs-btn-hover-color: var(--white) !important;
   --bs-btn-hover-bg: var(--primary)!important;
   --bs-btn-hover-border-color: var(--primary);
   --bs-btn-active-color: var(--white) !important;
   --bs-btn-active-bg: var(--primary);
   --bs-btn-active-border-color: var(--primary);
   --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
   --bs-btn-disabled-color: var(--white);
   --bs-btn-disabled-bg: var(--white);
   --bs-btn-disabled-border-color: var(--white);
}

.btn-outline-primary{
   --bs-btn-color: var(--primary) !important;
   --bs-btn-bg: 'transparent';
   --bs-btn-border-color: var(--primary);
   --bs-btn-hover-color: var(--white) !important;
   --bs-btn-hover-bg: var(--primary)!important;
   --bs-btn-hover-border-color: var(--primary);
   --bs-btn-active-color: var(--white) !important;
   --bs-btn-active-bg: var(--primary);
   --bs-btn-active-border-color: var(--primary);
   --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
   --bs-btn-disabled-color: 'transparent';
   --bs-btn-disabled-bg: 'transparent';
   --bs-btn-disabled-border-color: 'transparent';
}

.btn-transparent{
   --bs-btn-hover-border-color: transparent !important;
   --bs-btn-active-border-color: transparent !important;
}

/* Animations */

.transition-03 {
   transition: all linear .3s;
   -o-transition: all linear .3s;
   -moz-transition: all linear .3s;
   -webkit-transition: all linear .3s;
}

/******************************************/
/** Forms                                **/
/******************************************/

.form-select,
.form-control,
.input-group {
   border-radius: 8px;
   border: 1px solid #D9D9D9;
}

.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;}