@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');

/* root */
:root {
    --clr-Purple-100: #dacffc;
    --clr-Purple-500: #7650dc;

    --clr-Yellow-100: #f9eee1;
    --clr-Yellow-500: #ffcb6b;

    --clr-White: #ffffff;
    --clr-Black: #121212;

    --ff-main: "DM Sans", serif;
    --fs-body: 1.125rem;
    --fs-heading: 1.75rem;

    --fw-400: 400;
    --fw-500: 500;
}

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

img {
    max-width: 80%;
    display: block;
}

body {
    font-family: var(--ff-main);
    font-size: var(--fs-body);
    font-weight: var(--fs-400);
    line-height: 1.1;
    color: var(--clr-Black);
    background: #f9f9f9;
    padding: 1rem;
    min-width: 320px;
}


/* helper classes */
.highlight {
    color: #ffcb6b;
}

.grid {
    display: grid;
    gap: 1rem;
}

/* text style */
h1 {
    font-size: 2.75rem;
    font-weight: var(--fw-500);
}

h2 {
    font-size: var(--fs-heading);
    font-weight: var(--fw-500);
    line-height: .9;
}

small {
    font-size: var(--fs-body);
}


/* layout styles */
.bento-grid-container {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    grid-template-rows: repeat(3, minmax(200px, auto));
    grid-template-areas: 
    'column1 column2 column3'
    'column1 column2 column3'
    'column1 column4 column4';
    gap: 1rem;
    max-width: 1440px;
    margin-inline: auto;
    padding: 1rem;
}


.bento-grid-container > *, .inside-element {
    display: grid;
    gap: 1rem;
}

.bento-grid-item--element {
    border-radius: .5rem;
    padding: 1rem;
}

.inside-element {
    grid-template-columns: 1fr 1fr;
}

.inside-element:nth-child(1) {
    grid-template-columns: .95fr 2fr;
}

.column-one {
    grid-area: column1;
}

.column-two {
    grid-area: column2;
}

.column-three {
    grid-area: column3;
}

.column-four {
    grid-area: column4;
}

/* ui component */
.create {
    place-content: center;
    padding: 2rem;
    background-color: var(--clr-Yellow-100);
}

.content {
    place-content: center;
    padding: 1.5rem;
    background-color: var(--clr-Yellow-500);
}

.media {
    place-content: center;
    color: var(--clr-White);
    text-align: center;
    background-color: var(--clr-Purple-500);
}

.media img {
    max-width: 10rem;
    margin-inline: auto;
}

.manage {
    position: relative;
    overflow-x: hidden;
    background-color: var(--clr-White);
}

.manage img {
    position: relative;
    right: -2rem;
    max-width: 100%;
    margin-bottom: 1rem;
}

.posting {
    position: relative;
    overflow: hidden;
    background-color: var(--clr-Yellow-500);
}

.posting img {
    position: absolute;
    bottom: -6rem;
    left: 1.4rem;
}

.schedule {
    place-content: center;
    padding-left: 1.5rem;
    overflow: hidden;
    background-color: var(--clr-Purple-100);
}

.schedule img {
    position: relative;
    right: -1.5rem;
    max-width: 100%;
}

.audience {
    place-content: center;
    background-color: var(--clr-White);
}

.followers {
    grid-template-columns: 1fr 1fr;
    color: var(--clr-White);
    place-items: center;
    background-color: var(--clr-Purple-500);
}

/* media query */
@media screen and (max-width: 1024px) {
    .bento-grid-container {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(4, minmax(200px, auto));
        grid-template-areas: 
        'column2 column3'
        'column2 column3'
        'column4 column4'
        'column1 column1';
        gap: 1rem;
        padding: 1rem;
    }

    .column-one {
        grid-template-columns: 1fr;
    }
    
    h1 {
        font-size: 2.25rem;
    }
    
    h2 {
        font-size: 1.5rem;
    }
}


@media screen and (max-width: 768px) {
    .bento-grid-container {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, minmax(200px, auto));
        grid-template-areas: 
        'column2'
        'column3'
        'column4'
        'column1';
        gap: 1rem;
        padding: 1rem;
    }

    .column-one {
        grid-template-columns: 1fr;
    }

    .inside-element, .inside-element:nth-child(1), .column-one {
        grid-template-columns: 1fr;
    }

    .manage img {
        position: relative;
        max-width: 80%;
        margin-bottom: 1rem;
    }
    
    .posting img {
        position: static;
        max-width: 100%;
        margin-top: 1rem;
    }

    .followers {
        text-align: center;
        grid-template-columns: 1fr;
        padding: 1rem;
    }
    
    h1 {
        font-size: 2rem;
    }
    
    h2 {
        font-size: 1.25rem;
    }
}

@media screen and (max-width: 480px) {
    body {
        padding: 0.5rem;
    }
    
    .bento-grid-container {
        padding: 0.5rem;
        gap: 0.5rem;
    }
    
    h1 {
        font-size: 1.75rem;
    }
    
    h2 {
        font-size: 1.1rem;
    }
}
