:root{
    --fw-reg: 400;
    --fw-bold: 700;
    --clr-accent: #0dcaf0;
    
    --fs-h1: 3rem;
    --fs-h3: 1.25rem;
    --bs: 0.25em 0.25em 0.75em rgba(0,0,0,.25),
          0.125em 0.125em 0.25em rgba(0,0,0,.15);
}

@media (min-width: 768px) {
    :root {
        --fs-h1: 4.5rem;
    }
}

section.intro{
    padding: 5em 2em;
    position: relative;
}

img.intro__img{
    display: block;
    max-width: 100%;
    box-shadow: var(--bs);
}

h1.section__title{
    line-height: 1;
    margin: 0;
    font-size: var(--fs-h1);
    margin-bottom: .25em;
    font-weight: var(--fw-reg);
}

.section__title strong {
    font-weight: var(--fw-bold);
    display: block;
}

.section__subtitle {
    margin: 0;
    font-size: var(--fs-h3);
    background: var(--clr-accent);
    padding: .25em 1em;
    font-family: var(--ff-secondary);
    margin-bottom: 1em;
    display: inline-block;
    color: black;
}

@media (min-width: 576px) {
    section.intro {
        display: grid;
        width: min-content;
        margin: 0 auto;
        grid-column-gap: 1em;
        grid-template-areas: 
            "img title"
            "img subtitle";
        grid-template-columns: min-content max-content;
    }
    
    img.intro__img {
        grid-area: img;
        min-width: 250px;
        position: relative;
        z-index: 2;
    }    
    
    .section__subtitle {
        align-self: start;
        grid-column: -1 / 1;
        grid-row: 2;
        text-align: right;
        position: relative;
        left: -1.5em;
        width: calc(100% + 1.5em);
    }
}