@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@200;300;400;500;600;700;800&display=swap");

/* Section imports */
@import url("sections/scroller.css");
@import url("sections/hero.css");
@import url("sections/work.css");
@import url("sections/about.css");
@import url("sections/contact.css");
@import url("sections/footer.css");
@import url("sections/projects.css");
@import url("sections/homepage.css");

/* Page imports */
@import url("pages/mywork.css");

/* CSS variables */
:root {
    --font: "Plus Jakarta Sans", sans-serif;

    --primary: #58A1EB;
    --secondary: #F0C36C;

    --alt1: #84D1E1;
    --alt2: #E86EC6;
    --alt3: #b6cea7;
    --alt4: #D9826A;

    --black-200: #020202;
    --black-300: #333333;
    --black-400: #1f1e31;
    --black-500: #555555;
    --gray-100: #888888;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

html {
    overflow-x: hidden;
}

body {
    margin: 0;
    font-family: var(--font);
    max-width: 100%;
    overflow-x: hidden;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

a {
    text-decoration: none;
    color: inherit;
}

/* Hide scrollbar */
body::-webkit-scrollbar {
    display: none;
}

body {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Flex utilities */
.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

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

.drop-shadow {
    box-shadow: 0 4px 10px 4px rgba(0, 0, 0, 0.2);
}

/* Containers */
.content-container {
    width: 80vw;
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

section.section {
    width: 100vw;
    padding: 42px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 42px;
}

.wrapper {
    width: 100vw;
    max-width: 840px;
    display: flex;
    flex-direction: column;
    gap: 58px;
    padding: 32px 42px;
    margin: 0 auto;
    min-height: 80vh;
}

.wrapper h1 {
    font-size: 46px;
}

.w-margin {
    margin-bottom: 32px;
}

/* Callouts */
.callout {
    background: #EFEFEF;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.callout p {
    line-height: 1.5rem;
}

/* Course styles */
.course__chapters {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.course__chapters a {
    color: var(--primary);
    font-weight: 700;
    display: block;
}

.course__chapters p {
    line-height: 2em;
    margin: 2px 0;
}

.course__header a {
    color: var(--primary);
    font-weight: 700;
    margin-bottom: 22px;
    display: block;
}

.link-wrapper {
    text-decoration: none;
    color: initial;
}

/* ============ Buttons ============ */
button {
    width: 112px;
    height: 48px;
    font-size: 16px;
    font-family: var(--font);
    border: none;
    margin: 0;
    cursor: pointer;
}

button.lg {
    width: 132px;
    height: 48px;
    font-size: 18px;
    font-weight: 500;
}

button.sm {
    height: 32px;
}

button.primary {
    background: var(--primary);
    color: #fff;
}

button.secondary {
    background: var(--secondary);
    color: #fff;
}

button:hover {
    transform: translateY(-2px);
    transition: .1s;
}

.price-buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
}

.price-buttons button {
    width: fit-content;
    padding: 0 12px;
}

.price-buttons button a {
    color: white;
    padding: 12px 0;
}

.throughline {
    text-decoration: line-through;
}

/* ============ Links ============ */
.read-more {
    text-decoration: none;
    color: var(--primary);
    border-radius: 3px;
    font-weight: 500;
}

.read-more:hover {
    text-decoration: underline;
    text-decoration-style: wavy;
    text-decoration-color: var(--alt2);
    text-decoration-thickness: 3px;
    color: #fff;
    background: var(--secondary);
}

/* ============ Typography ============ */
.gradient {
    background: -webkit-linear-gradient(0deg, var(--alt1) 0%, var(--alt2) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ============ Newsletter CTA ============ */
.newsletter {
    width: 100vw;
    padding: 64px 40px;
    background: var(--secondary);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 60px;
    box-sizing: border-box;
}

.newsletter__content {
    max-width: 380px;
    flex-shrink: 0;
}

.newsletter h2 {
    font-size: 28px;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 8px;
}

.newsletter__sub {
    font-size: 15px;
    color: rgba(0, 0, 0, 0.6);
    margin-bottom: 14px;
}

.newsletter__desc {
    font-size: 15px;
    color: rgba(0, 0, 0, 0.75);
    line-height: 1.6;
}

.newsletter__form {
    flex-shrink: 0;
    width: 480px;
    max-width: 100%;
}

.newsletter__form iframe {
    width: 100%;
    border: none;
    border-radius: 12px;
    background: white;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
}

/* ============ Utility ============ */
.hidden {
    display: none !important;
}

.project-img {
    width: 100%;
    margin: 10px 0;
}

.project-list li {
    margin: 15px;
}

div .default-link {
    display: inline;
}

.img-caption {
    text-align: center;
    font-style: italic;
    margin-top: -5px;
}

/* ============ Media queries ============ */
@media only screen and (max-width: 880px) {
    .hero {
        height: inherit;
        overflow: inherit;
    }

    .hero__nav {
        display: none;
    }

    .hero__content {
        flex-direction: column-reverse;
        align-items: center;
        width: 80vw;
        margin: 0 auto;
        gap: 16px;
        height: 100%;
    }

    .hero__content-about {
        width: 100%;
    }

    .hero__content h1 {
        font-size: 38px;
    }

    .hero__content-text {
        margin: inherit;
    }

    .hero__content-text p {
        width: 80vw;
        word-wrap: break-word;
    }

    .hero__content-about,
    .hero__content-image {
        flex: inherit;
    }

    .hero__content-image {
        width: 100%;
        padding: 24px 0;
    }

    .hero__content-image img {
        height: 320px;
        width: 100%;
        max-width: 450px;
        margin-left: auto;
    }

    .hero__overlay {
        height: 420px;
        top: 114px;
        width: 50vw;
    }

    .hero__nav.mobile {
        display: block;
        flex-direction: column;
        padding: 0;
        position: relative;
        align-items: flex-start;
    }

    .hero__nav.mobile .nav__logo {
        padding: 16px 0;
        width: 90vw;
        margin: 0 auto;
        justify-content: flex-start;
    }

    .hero__nav.mobile .nav__logo i {
        color: var(--black-300);
        position: relative;
        margin-left: auto;
    }

    .hero__nav.mobile .nav__links {
        flex-direction: column;
        background: var(--black-300);
        width: 100vw;
        gap: 16px;
        padding: 12px 0;
        display: block;
        top: 32px;
    }

    .hero__nav.mobile .nav__links a {
        height: 52px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .hero__nav.mobile .nav__links.hidden {
        display: none !important;
    }

    .hero__featured {
        width: 80vw;
        margin: 42px auto 16px;
    }

    .hero__featured img {
        width: 100%;
        max-width: 400px;
    }

    .hero__chips {
        gap: 6px;
    }

    .hero__chip {
        font-size: 12px;
        padding: 4px 12px;
    }

    .newsletter {
        flex-direction: column;
        padding: 48px 24px;
        gap: 32px;
        text-align: center;
    }

    .newsletter__content {
        max-width: 100%;
    }

    .newsletter__form {
        width: 100%;
    }
}