*{
    box-sizing: border-box;
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-smooth: always;
    text-shadow: rgba(0,0,0,.01) 0 0 1px;

    /* outline: 1px solid red; */
}
html{
    font-size: 10px;
}
body{
    color: var(--color-text);
    print-color-adjust: exact;
}
:root{
    --color-aside-border: #dcddde;
    --color-title-border: #7e8083;
    --color-text: #525252;
    --color-text-title: #232323;
    
    --font-weight-regular: 400;
    --font-weight-semi-bold: 550;
    --font-weight-bold: 650;

    --font-size-h1: 6rem;
    --font-size-h2: 2.4rem;
    --font-size-h3: 1.8rem;
    --font-size-subtitle: 1.4rem;
    --font-size-default: 1.4rem;
    --font-size-aside: 1.4rem;
}
main{
    width: 105rem;
    margin: 0 auto;
    /* margin-top: 5rem; */
    display: flex;
}
aside{
    width: 36rem;
    flex: 0 0 36rem;
    border-right: 1px solid var(--color-aside-border);
    padding: 1.6rem;
    display: flex;
    align-items: center;
    padding-top: 3.2rem;
    flex-direction: column;
    gap: 6.4rem;
}
aside section{
    width: 70%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
aside .seperator{
    width: 100%;
    height: 2rem;
    flex: 0 0 2rem;
}
.content{
    padding: 3.2rem;
}
.content > section{
    margin-bottom: 6.4rem;
    display: flex;
    flex-direction: column;
}
.content > section:last-child{
    margin-bottom: 0;
}
.content > section > section{
    padding-top: 3.2rem;
    padding-left: 3.2rem;
    position: relative;
    margin-left: .4rem;
}
.content > section > section.breakpoint:after{
    content: "";
    position: absolute;
    top: 4.2rem;
    left: 0;
    width: .8rem;
    height: .8rem;
    border-radius: 100%;
    background-color: var(--color-text-title);
    transform: translate(-50%, -50%);
}
.content > section > section:before{
    content: "";
    position: absolute;
    top: 1.2rem;
    left: 0;
    width: 1px;
    height: 100%;
    background-color: var(--color-aside-border);
}
.content > section > section:nth-child(2){
    margin-top: 3.2rem;
    padding-top: 0;
}
.content > section > section:nth-child(2):after{
    top: 1rem;
}
.content > section > section:last-child p{
    padding-bottom: 0;
}
.content > section > section h3{
    margin-bottom: .4rem;
}
.content > section > section p{
    margin-bottom: 0;
}
h1{
    font-weight: var(--font-weight-regular);
    font-size: var(--font-size-h1);
    margin: 0;
    padding: 0;
    word-break: normal;
    text-align: center;
    color: var(--color-text-title);
    text-transform: uppercase;
    animation: zoom-in .3s forwards;
}
h2{
    letter-spacing: .15rem;
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-h2);
    margin: 0;
    padding: 0;
    color: var(--color-text-title);
    text-transform: uppercase;
    display: flex;
}
h3{
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-h3);
    letter-spacing: .15rem;
    margin: 0;
    padding: 0;
    color: var(--color-text-title);
    text-transform: uppercase;
    
}
aside h2{
    text-align: center;
    /* border-bottom: 2px solid var(--color-title-border); */
    padding: 0 2rem 1.2rem 2rem;
    flex-direction: column;
}
aside h2::after{
    content: "";
    border-bottom: 2px solid var(--color-title-border);
    margin-top: 1.2rem;
    width: calc(100% + 4rem);
    height: 1px;
    flex: 0 0 1px;
    margin-left: -2rem;
    animation: expand-width .3s forwards;
}
.content h2{
    gap: 3.2rem;
}
.content h2::after{
    content: "";
    border-bottom: 2px solid var(--color-title-border);
    margin: auto;
    flex: 1;
    transform-origin: left;
    transform: scaleX(0);
    animation: expand-width .3s forwards;
}
.content ul{
    padding: 1.6rem;
    margin: 0;
}
p, ul{
    font-size: var(--font-size-default);
    line-height: 2;
    word-spacing: .25rem;
}
.subtitle{
    font-size: var(--font-size-subtitle);
    font-weight: var(--font-weight-semi-bold);
    letter-spacing: .15rem;
    color: var(--color-text);
}
ul a{
    text-decoration: none;
    color: var(--color-text);
    font-size: var(--font-size-aside);
    position: relative;
    display: inline-flex;
    flex-direction: column;
}
ul a:after{
    content: "";
    height: 1px;
    width: 0;
    background-color: var(--color-text);
    margin-top: -.4rem;
    transition: width .3s;
}
ul a:hover:after{
    width: 100%;
    transition: width .3s;
}
aside ul{
    display: flex;
    gap: 1rem;
    flex-direction: column;
    font-size: var(--font-size-aside);
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    margin-top: .8rem;
    text-align: center;
    font-weight: var(--font-weight-semi-bold);
}

@media print{
    html{
        font-size: 8px;
    }
    main{
        width: 100%;
        margin: 0;
        box-shadow: none;
        padding: 32px;
    }
    aside{
        position: fixed;
        padding-left: 0;
        left: 24px;
    }
    .content{
        margin-left: 34rem;
        padding-right: 0;
    }
    .print-break{
        page-break-before: always;
        margin-top: 32px;
    }
    @page {
        size: 210mm 297mm; 
        /* Chrome sets own margins, we change these printer settings */
        margin: 27mm 16mm 27mm 16mm; 
    }
}

@media only screen and (max-width: 600px) {
    main{
        flex-direction: column;
        width: 100%;
    }
    aside{
        width: 100%;
        border-right: none;
        padding: 3.2rem;
        padding-top: 3.2rem;
    }
    aside h2{
        flex-direction: row;
        gap: 2.4rem;
        text-align: left;
        padding: 0;
    }
    aside h2::after{
        content: "";
        border-bottom: 2px solid var(--color-title-border);
        margin: auto;
        flex: 1;
        transform-origin: left;
        transform: scaleX(0);
        animation: expand-width .3s forwards;
    }
    aside section{
        width: 100%;
        align-items: stretch;
    }
    aside ul{
        text-align: left;
    }
    .content h2{
        gap: 2.4rem;
    }
}

@keyframes expand-width{
    from{
        transform: scaleX(0);
    }
    to{
        transform: scaleX(1);
    }
}

@keyframes zoom-in{
    from{
        transform: scale(0);
    }
    to{
        transform: scale(1);
    }
}

