:root{
    /* COLORS */
    --white: #ffffff;
    --cultured: hsl(225, 20%, 96%);
	--gray-white: #F2F2F2;
	--gray: #333333;
	--gray-medium: #999999;
	--black: #000000;
    --white-a20: hsla(0, 0%, 100%, 0.2);
    --purple: #8D57AB;
    --dark-purple: #673D7E;
    --full-gray: #222224;
    --nocturnal-plum: #120925;
    --coal: #282828;

    /* BORDER */
    --border-1: 22px;
    --border-3: 6px;

    /* FONT SIZES */
    --fs-1: 4.349rem;
    --fs-2: 2.892rem;
    --fs-3: 1.158rem;
    --fs-4: 1rem;
    --fs-5: 0.867rem;
    --fs-major: 3.559rem;

    /* MARGINS */
    --margin-section: 100px;
    --margin-3: 50px;
    --margin-4: 25px;
    --margin-5: 8px;

    /* LINE HEIGHTS */
    --lh-1: 2esm;

    /* FONTS */
    --ff-vietnam: "Be Vietnam Pro", sans-serif;
    --ff-cabin: "Cabin", sans-serif;

    --fw-600: 600;
    --fw-500: 500;

    /* SHADOWS */
    --shadow-1: 1px 1px 2px 1px rgba(255, 255, 255, 0.2);
    --shadow-2: 1px 1px 4px 1px rgba(0, 0, 0, 0.1);
}

/* Using Fonts */
/*@font-face {
    font-family: "Be Vietnam Pro";
    src: url("/static/fonts/Be_Vietnam_Pro/BeVietnamPro-Light.ttf");
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "Cabin";
    src: url("/static/fonts/Cabin/static/Cabin-Regular.ttf");
    font-weight: var(--fw-500);
    font-style: normal;
}*/

/* WEB STYLES */
::-webkit-scrollbar{
	width: 10px;
}

::-webkit-scrollbar-thumb{
	background-color: var(--gray);
}

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

html{
	font-family: var(--ff-cabin);
	scroll-behavior: smooth;
}

body{
    background-color: var(--full-gray);
}

a{
    text-decoration: none;
    color: var(--onyx);
}

ul{
    list-style: none;
}

/* HEADER */

.header{
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--full-gray);
    z-index: 10;
    box-shadow: var(--shadow-2);
}

.nav, .dropdown{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-inline: auto;
    max-width: 1150px;
}

.navegation{
    display: flex;
    gap: 32px;
}

.--button-default-hover:hover{
    transition: .1s ease-in-out;
    background-color: var(--purple);
    cursor: pointer;
}

/* DROPDOWN */
.dropcont{
	display: flex;
	flex-direction: column;
}

.dropmain{
	display: flex;
	justify-content: space-between;
	align-items: center;

	padding-inline: 25px;
}

.dropcont{
	display: none;
}

.dropicon-block > span{
    font-size: 32px;
    color: var(--gray-white);
}

.dropdown{
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;

	overflow: hidden;
	position: absolute;
	width: 100%;
	height: 0px;
	right: 0;
	top: 75px;
	color: white;
	transition: height .2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	background-color: var(--gray);
}

.dropdown.open{
	height: 460px;
}

.dropdown li{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.dropdown__link{
	font-family: var(--ff-consola);
	font-size: 1.7rem;
	color: var(--gray-white);
	margin-bottom: var(--margin-4);
}

span.exit-icon{
	margin-top: var(--margin-3);
    color: var(--gray-white);
    font-size: var(--fs-2);
}

/* Default clases */
.link{
    font-size: var(--fs-4);
    color: var(--white);
}

.--button{
    position: relative;
    background: var(--gray);
    color: var(--white);
    padding: 15px 25px 15px 25px;
    border-radius: var(--border-3);
    width: fit-content;
}

.--button-full-size{
    text-align: center;
    width: 100%;
}

.--section{
    padding-block: var(--margin-section);
}

.--self-centered{
    margin-inline: auto;
}

.--clickable{
    cursor: pointer;
}

.--inline-container{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-inline: 16px;
}

.--text-centered{
    text-align: center;
}

.--no-between{
    justify-content: initial;
}

/* MAIN */
.main{
    padding-block: var(--margin-3);
}

.front-page{
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 15px;
}

.title{
    text-align: center;
    font-size: var(--fs-1);
    line-height: var(--lh-1);
    color: var(--white);
}

.desc{
    font-size: var(--fs-3);
    text-align: center;
    max-width: 575px;
    color: var(--white);
    padding-inline: 10px;
}

.join{
    font-size: var(--fs-3);
    border-radius: var(--border-1);
    margin-top: var(--margin-4);
    background: var(--purple);
    background-size: 100% 100%;
    animation: linear-gradient 3s ease infinite;
}

@keyframes linear-gradient{
    0%{
        background-color: var(--gray);
    }

    50%{
        background-color: var(--purple);
    }

    100%{
        background-color: var(--gray);
    }
}

.cards{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 75px;
    margin-block: var(--margin-3);
    margin-block-end: var(--margin-section);
}

.card-info{
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 240px;
    gap: 10px;
    padding: 40px 25px 40px 25px;
    box-shadow: var(--shadow-1);
    border-radius: var(--border-3);
    color: var(--white);
    background-color: var(--gray);
}

span.card-icon{
    font-size: 36px;
}

.card-title{
    font-size: var(--fs-3);
}

.card-desc{
    font-size: var(--fs-4);
    text-align: center;
    line-height: 1.2rem;
}

/* ABOUT US */
.about-us{
    display: flex;
    justify-content: center;
    max-width: 1250px;
    margin-inline: auto;
    gap: 200px;
}

.subtitle{
    font-size: var(--fs-2);
    color: var(--white);
}

.technologies{
    display: flex;
    flex-direction: column;
    gap: 45px;
}

.tech-icons{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 50px;
}

.logo-icon{
    position: relative;
    font-size: 40px;
    padding: 20px;
    color: var(--white);  
    border-radius: var(--border-3);
    background-color: var(--gray);
    transition: .2s ease-in-out;
}

.logo-icon::before{
    position: absolute;
    content: "";
    top: -100px;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--purple);
    z-index: -1;
}

.logo-icon:hover::before{
    top: 0;
}

.logo-icon:hover, .logo-icon::before{
    transition: .2s ease-in-out;  
}

.teach-us{
    display: flex;
    align-items: center;
    gap: 50px;
}

.description-us{
    display: flex;
    flex-direction: column;
    gap: 25px;
    max-width: 345px;
    color: var(--white);
}

.social-media{
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.social-media_icon{
    font-size: 26px;
    padding: 10px;
    background-color: var(--gray-medium);
    color: var(--gray);
    border-radius: var(--border-1);
}

.social-media_icon, .social-media_icon:hover{
    transition: .2s ease-in-out;
}

.social-media_icon:hover{
    background-color: var(--white);
    color: var(--gray);
}

/* Courses */
#courses{
    display: flex;
    justify-content: center;
    max-width: 100%;
    gap: 60px;
}

div.course-card{
    display: flex;
    flex-direction: row;
    gap: 20px;
}

.course-info{
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.course-img{
    border-radius: var(--border-3);
}

.course-title{
    font-size: var(--fs-3);
}

.course-description{
    font-size: var(--fs-5);
    width: 200px;
}

.course-time, .course-plan{
    font-size: var(--fs-5);
}

.--micro-gap{
    gap: 6px;
}

.--no-inline-pad{
    padding-inline: 0;
}

/* PRICING */
.pricing-info{
    display: flex;
    flex-direction: column;
    align-items: center;
}

.pricing{
    display: flex;
    justify-content: center;
    gap: 60px;
}

.card{
    display: flex;
    align-items: center;
    flex-direction: column;
    padding-block: 50px;
    padding-inline: 25px;
    gap: 25px;
    box-shadow: var(--shadow-1);
    border-radius: var(--border-3);
    min-width: 350px;
    max-width: fit-content;
    color: var(--white);
    background-color: var(--full-gray);
}

.pricing-title{
    font-size: var(--fs-major);
    color: var(--white);
}

.month-cont{
    font-size: var(--fs-4);
}

.pricing-list{
    display: grid;
    place-items: baseline;
    max-width: 250px;
    gap: 10px;
}

.pricing-list > li{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.check-icon{
    filter: invert(46%) sepia(7%) saturate(3556%) hue-rotate(235deg) brightness(87%) contrast(99%);
}

.price{
    font-size: var(--fs-3);
}

/* FOOTER */
.footer{
    background-color: var(--coal);
    padding: 125px 75px 25px;
}

.content-footer{
    display: flex;
    flex-direction: column;
    max-width: 1155px;
    margin-inline: auto;
    gap: 75px;
}

.contact{
    display: flex;
    align-items: center;
    gap: 125px;
    margin-inline: auto;
    background-color: var(--full-gray);
    padding: 8px 22px;
    border-radius: var(--border-3);
}

.contact-section{
    display: flex;
    align-items: center;
    gap: 75px;
}

.contact-info > ul{
    display: flex;
    align-items: center;
    gap: 15px;
    font-family: var(--ff-vietnam);
}

.contact-info > ul > li{
    color: var(--gray-white);
}

span.contact-icon{
    font-size: var(--fs-2);
}

.footer-main{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    margin-inline: auto;
    max-width: 1155px;
    gap: 55px;
}

.footer-div{
    display: flex;
    flex-direction: column;
    font-family: var(--ff-vietnam);
    max-width: 225px;
    gap: 15px;
}

.footer-title{
    font-size: var(--fs-3);
    font-weight: var(--fw-600);
    color: var(--gray-white);
}

.footer-text{
    color: var(--gray-white);
}

.link-listing{
    display: grid;
    font-family: var(--ff-cabin);
    gap: 12px;
}

.subscription{
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.email-input{
    padding: 8px 20px;
    border: 1px solid var(--white-a20);
    border-radius: var(--border-3);
    font-size: var(--fs-3);
}

.email-input:focus{
    outline: none;
}

.send-form{
    border: none;
    padding: 12px 36px;
    font-size: var(--fs-3);
    font-weight: var(--fw-600);
    border-radius: var(--border-3);
    background: var(--gray);
    color: var(--white);
}

.copyright{
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1155px;
    border-block-start: 1px solid var(--white-a20);
    padding-block: 32px;
}

.copy-text{
    font-size: var(--fs-4);
    font-weight: var(--fw-500);
    font-family: var(--ff-vietnam);
    color: var(--white);
}

.footer-social{
    display: flex;
    gap: 8px;
}

.footer-icon{
    background-color: var(--gray);
    color: var(--white);
}

@media (max-width: 1155px){
    .nav{
        max-width: 755px;
    }

    .cards{
        grid-template-columns: 1fr 1fr;
    }

    .technologies{
        width: 525px;
        margin-inline: auto;
        gap: 35px;
    }

    .about-us{
        flex-direction: column;
    }

    .about-us{
        gap: 125px;
    }

    .teach-us{
        margin-inline: auto;
        align-items: baseline;
    }

    #courses{
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-items: center;
    }

    .course-card{
        scale: 0.88;
    }

    .pricing{
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-inline: auto;
        gap: 35px;
    }

    .pricing-card{
        margin-inline: auto;
    }
}

@media (max-width: 786px){
    .nav{
        display: none;
        max-width: 555px;
    }

    .dropdown{
        display: flex;
    }

    .dropcont{
        display: block;
    }

    .title{
        font-size: var(--fs-2);
    }

    .cards{
        grid-template-columns: 1fr;
    }

    .technologies{
        width: 325px;
        margin-inline: auto;
        gap: 25px;
    }

    .tech-icons{
        grid-template-columns: 1fr 1fr;
        width: fit-content;
    }

    .about-us, .teach-us{
        flex-direction: column;
    }

    .about-us{
        gap: 125px;
    }

    .teach-us{
        margin-inline: auto;
        align-items: baseline;
        max-width: 325px;
        gap: 20px;
    }

    .social-media{
        flex-direction: row;
    }

    #courses{
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .pricing{
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 35px;
    }

    .pricing-card{
        margin-inline: auto;
    }

    .footer{
        padding: 62px 25px;
        padding-block-end: 0;
    }

    .contact{
        margin-inline: initial;
        align-items: start;
        gap: 15px;
        padding: 32px;
        flex-direction: column;
    }

    .contact-section{
        flex-direction: column;
        gap: 25px;
    }

    .footer-main{
        grid-template-columns: 1fr;
        padding: 12px;
        padding-block: initial;
        gap: 32px;
        margin-inline: initial;
    }

    .footer-div{
        max-width: initial;
    }

    .copyright{
        flex-direction: column;
        align-items: initial;
        gap: 12px;
    }
}

