#navbar {
    opacity: 0;
    font-family: var(--font1)
}

.fade-in {
    animation: fadeIn 1s forwards;
}

.nav-link,
.navbar-brand {
    position: relative;
    color: var(--text-color);
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 25px;
    letter-spacing: -0.13px;
    text-decoration: none;
    margin-left: 1rem;
    transition: all 0.5s ease;
}

.nav-link:hover,
.navbar-brand:hover {
    color: var(--highlight);
}

.nav-link::after,
.navbar-brand::after {
    content: "";
    position: absolute;
    bottom: -0.3rem;
    left: 50%;
    width: 0;
    height: 0.15rem;
    transform: translateX(-50%);
    background-color: var(--highlight);
    transition: all 0.5s ease;
}

.nav-link:hover::after,
.navbar-brand:hover::after {
    width: 100%;
}

/* Animación navbar para cuando hacemos scroll */
.navbar-scroll-black {
    background-color: var(--text-color);
    transition: background-color 0.3s ease;
}


/* Esta es la clase que usamos para saber en que sección nos encontramos */
.section-active {
    color: var(--highlight);
}

@media only screen and (max-width: 991px) {
    header .navbar {
        padding: 1rem 2rem;
        margin: 0 auto;
    }

    header .navbar .wrapper {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        z-index: -1;
        opacity: 0;
        background: var(--background-color);
        background-size: 300% 300%;
        transition: all 0.5s ease;
    }

    header .navbar .wrapper .navbar-nav {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 25%;
        width: 100%;
        transform: translateY(-50%);
    }

    header .navbar .wrapper .nav-item {
        padding-bottom: 1rem;
        width: 100%;
        text-align: left;
    }

    header .navbar .wrapper .nav-item:nth-child(1) a {
        transition-delay: 0.2s;
    }

    header .navbar .wrapper .nav-item:nth-child(2) a {
        transition-delay: 0.3s;
    }

    header .navbar .wrapper .nav-item:nth-child(3) a {
        transition-delay: 0.4s;
    }

    header .navbar .wrapper .nav-item:nth-child(4) a {
        transition-delay: 0.5s;
    }

    header .navbar .wrapper .nav-item:not(:first-child) {
        margin-left: 0;
    }

    header .navbar .wrapper .nav-item a {
        padding: 1rem 2rem;
        opacity: 0;
        color: var(--text-color);
        font-size: 1rem;
        font-weight: 600;
        transform: translateX(-20px);
        transition: all 0.3s ease-in-out;
    }

    header .navbar .nav-toggle {
        display: block;
        position: fixed;
        right: 1rem;
        top: 1rem;
        width: 2.5rem;
        height: 2.5rem;
        cursor: pointer;
        z-index: 999;
    }

    header .navbar .nav-toggle span {
        display: block;
        width: 20px;
        height: 2px;
        background: var(--text-color);
        border-radius: 2px;
        margin-left: 14px;
    }

    header .navbar .nav-toggle span:nth-child(1) {
        margin-top: 16px;
    }

    header .navbar .nav-toggle span:nth-child(2) {
        margin-top: 4px;
        opacity: 1;
    }

    header .navbar .nav-toggle span:nth-child(3) {
        margin-top: 4px;
    }

    header .navbar #nav:checked+.nav-toggle {
        transform: rotate(45deg);
    }

    header .navbar #nav:checked+.nav-toggle span {
        background: var(--text-color);
        transition: transform 0.5s ease;
    }

    header .navbar #nav:checked+.nav-toggle span:nth-child(1) {
        transform: translateY(6px) rotate(180deg);
    }

    header .navbar #nav:checked+.nav-toggle span:nth-child(2) {
        opacity: 0;
    }

    header .navbar #nav:checked+.nav-toggle span:nth-child(3) {
        transform: translateY(-6px) rotate(90deg);
    }

    header .navbar #nav:checked~.wrapper {
        z-index: 99;
        opacity: 1;
    }

    header .navbar #nav:checked~.wrapper .nav-item a {
        opacity: 1;
        transform: translateX(0);
    }

    header .navbar #nav:not(:checked)+.nav-toggle span {
        /* Agrega estilos de animación cuando #nav deja de estar marcado */
        transition: transform 0.5s ease;
        transform: translateY(0) rotate(0);
        opacity: 1;
    }

    header .navbar #nav:not(:checked)~.wrapper {
        /* Agrega estilos de animación cuando #nav deja de estar marcado */
        z-index: -1;
        display: none;
        transition: all 0.5s ease;
    }

    header .navbar #nav:not(:checked)~.wrapper .nav-item a {
        /* Agrega estilos de animación cuando #nav deja de estar marcado */
        display: none;
        transform: translateX(-20px);
        transition: all 0.3s ease-in-out;
    }

}


/* Light/Dark Mode */
:root {
	--sun-clr: #f3d05e;
	--dark-clr: gold;
	/* --dark-clr: hsl(246, 23%, 16%); */
	/* --light-clr: hsl(240, 100%, 98%); */
	--light-clr: gold;
	--clr-foreground: var(--dark-clr); /*hsl(0 0% 0%);*/
	--clr-background: var(--light-clr);
}
@media (prefers-color-scheme: dark) {
	:root {
		--clr-background: var(--dark-clr);
		--clr-foreground: var(--light-clr);
	}
}
.light-theme {
	--clr-foreground: var(--dark-clr);
	--clr-background: var(--light-clr);
}

.dark-theme {
	--clr-background: var(--dark-clr);
	--clr-foreground: var(--light-clr);
}
*,
*::before,
*::after {
	box-sizing: border-box;
	padding: 0;
	margin: 0;
}

svg {
    width: 1.7rem;
    height: 1.7rem;
    margin-bottom: 5px;
}

#switch-theme {
	cursor: pointer;
	background: 0;
	border: 0;
	opacity: 0.8;
	padding: 0.2rem;
	border-radius: 50%;
	position: relative;
	isolation: isolate;
}

#switch-theme svg {
	fill: var(--clr-foreground);
}

#switch-theme::before {
	content: "";
	position: absolute;
	inset: 0;
	background: hsl(0 0% 50% / 0.2);
	border-radius: inherit;
	transform: scale(0);
	opacity: 0;
	z-index: -1;
}

.light-theme #switch-theme::before {
	animation: pulseToLight 650ms ease-out;
}

.dark-theme #switch-theme::before {
	animation: pulseToDark 650ms ease-out;
}

#switch-theme::after {
	content: attr(aria-label);
	position: absolute;
	color: var(--clr-background);
	background: var(--clr-foreground);
	width: max-content;
	font-size: 0.8rem;
	right: 95%;
	top: calc(50% - 1rem);
	margin: 0 auto;
	padding: 0.5em 1em;
	border-radius: 0.125em;
	opacity: 0;
	transform: scale(0);
	transform-origin: top;
	transition: transform 0ms linear 100ms, opacity 100ms linear;
}

#switch-theme:hover,
#switch-theme:focus {
	outline: 0;
	opacity: 1;
	background: hsl(0 0% 50% / 0.15);
}

.toggle-circle {
	transition: transform 500ms ease-out;
}

.light-theme .toggle-circle {
	transform: translateX(-15%);
}

.toggle-sun {
	transform-origin: center center;
	transition: transform 750ms cubic-bezier(0.11, 0.14, 0.29, 1.32);
}

.dark-theme .sun-core {
	transform: rotate(-40deg);
}
.dark-theme .sun-rays {
	transform: rotate(-180deg);
	opacity: 0;
}
@keyframes pulseToLight {
	0% {
		transform: scale(0);
		opacity: 0.5;
	}
	10% {
		transform: scale(1);
	}
	75% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: scale(1);
	}
}

@keyframes pulseToDark {
	0% {
		transform: scale(0);
		opacity: 0.5;
	}
	10% {
		transform: scale(1);
	}
	75% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: scale(1);
	}
}
.light-theme .toggle-sun {
	transform: rotate(0.5turn);
}
.light-theme .img .toggle-sun {
	transform: rotate(0.5turn);
}
.light-theme .sun-rays,
.light-theme .sun-core {
	color: var(--sun-clr);
	fill: var(--sun-clr);
}

