/* https://www.joshwcomeau.com/animation/scroll-driven-animations/ */
/* Defaults */

h1,
h2,
h3,
h4 {
    color: var(--color-green);
    font-family: 'Signika', Arial, Helvetica, sans-serif;
    font-weight: 300;
    hyphens: manual;
}

h1 {
    font-size: clamp(2rem, calc(0.5rem + 4vw), 3.5rem);
}

h2 {
    font-size: clamp(2rem, calc(1.3rem + 2.8vw), 3.4rem);
}

h3 {
    font-size: clamp(1.5rem, calc(1.25rem + 1vw), 2rem);
}

h4 {
    font-size: clamp(1rem, calc(0.75rem + 1vw), 1.5rem);
    font-weight: bold;
}


body {
    font-family: 'Niramit', 'Fira Sans', Arial, Helvetica, sans-serif;
    font-weight: 400;
    hyphens: auto;
}

header {

    .logo {
        position: absolute;
        top: .6rem;
        left: 2rem;
        max-width: clamp(80px, 12vw, 400px);
    }
}

.hero {
    width: 100%;
    aspect-ratio: 1 / 1;

    @media (min-width: 768px) {
        aspect-ratio: auto;
    }

    img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    overflow-x: clip;

    .title {
        padding: 1rem 2rem;
        background-color: var(--color-lightgreen);

        h1 {
            margin: auto;
            max-width: 1100px;
            text-transform: uppercase;
            /* color: var(--color-green); */
            color: color-mix(in srgb, var(--color-green), var(--color-lightgreen) 40%);

            b {
                color: var(--color-green);
            }
        }

        margin-top: -5rem;
        margin-left: -1%;
        width: 102%;
        /* rotate: -4deg; */
        transform: rotate(-4deg) skew(-4deg);
    }
}

.cta-row {
    margin: auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    justify-items: center;
    align-items: center;
    gap: 3rem;

    text-align: center;

    a.cta {
        padding: .4rem 1.2rem .6rem;
        border-radius: .6rem;
        background-color: var(--color-orange);
        font-size: var(--medium-font);
        color: #fff;
        text-decoration: none;
        text-shadow: 1px 1px 2px brown;

        @media (min-width: 768px) { justify-self: end; }

        &:hover {
            background-color: var(--color-orange-hover);
        }
    }

    a.concept {
        
        /* Removed flex: 1 to allow content-based width */
        color: var(--color-green);
        @media (min-width: 768px) { justify-self: start; }
    }

    /* @media (min-width: 768px) {
        justify-content: center;
        gap: 2rem;
    } */
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.form-status {
    margin-top: 1rem;
    padding: .9rem 1rem;
    border-radius: .5rem;
    font-weight: 600;
}

.form-status.success {
    background: #e8f7ed;
    color: #1f6b3b;
    border: 1px solid #8fd19e;
}

.form-status.error {
    background: #fdeaea;
    color: #a33a3a;
    border: 1px solid #e7a1a1;
}

.form-status ul {
    margin: .4rem 0 0 1.2rem;
    padding: 0;
}

.appointment button:disabled,
.appointment button.is-submitted {
    opacity: .65;
    cursor: not-allowed;
}

.appointment[hidden] {
    display: none !important;
}

.intro {
    margin: 6rem 0;
    padding: 0 2rem;
    max-width: 1100px;
    margin-inline: auto;

    .intro-content {
        display: grid;
        gap: clamp(0.75rem, 0.5rem + 1.5vw, 4rem);
        font-style: italic;
        color: var(--color-green);
        grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
        place-items: center;

        ul {
            list-style: none;
            padding-left: 0;
            font-weight: 300;

            li {
                position: relative;
                margin-top: .4rem;
                margin-bottom: .4rem;
                padding-left: 1.5rem;

                &::before {
                    content: "";
                    position: absolute;
                    left: 0;
                    top: 0.2rem;
                    width: 0.9rem;
                    height: 0.9rem;
                    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='green' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center/contain;
                }

                strong {
                    color: var(--color-orange);
                }
            }
        }
    }

    hr {
        margin: 4rem auto;
        max-width: 800px;
        border: none;
        border-top: 1px solid var(--color-lightgreen);
    }
}




header hr {
    margin: 2rem auto;
    max-width: 800px;
}

.intro-closing {
    color: var(--color-green);
    animation: fadeIn 1000ms;
    animation-timeline: view();
}



/* Default and shared properties of all sections */
section {
    margin: 25vh auto;
    overflow-x: clip;

    p {
        margin: .6rem auto;
    }

    h2 {
        padding: 1rem 2rem;
        background-color: var(--color-green);
        color: #fff;
        transform: rotate(-4deg) skew(-4deg) translateY(-2rem);


        @media (min-width: 768px) {
            grid-column: 1;
            grid-row: 1;
            align-self: start;
            z-index: 1;
            padding-left: 6rem;
            max-width: 800px;
            text-transform: uppercase;
            rotate: -4deg;
            /* transform: rotate(-6deg) skew(-6deg); */
            transform-origin: bottom left;
        }
    }

    .section-content {
        /* border: 1px dashed rosybrown; */
        padding: 1rem 2rem;

        @media (min-width: 768px) {
            margin: 2rem auto;
            /* max-width: 1100px; */
            width: clamp(45ch, 100%, 80ch);
        }
    }

}



section.painpoints {

    display: grid;


    h2+div {
        grid-column: 1;
        grid-row: 1;
    }

    .section-image {
        display: grid;

        .section-image--image,
        .section-image--text {
            grid-column: 1;
            grid-row: 1;
        }

        .section-image--text {

            display: none;

            @media (min-width: 980px) {
                display: block;
                margin-right: 4vw;
                margin-bottom: 15vh;
                place-self: end end;
                z-index: 3;
                max-width: 25ch;
                font-size: smaller;
                font-style: italic;
                color: var(--color-green);
            }
        }
    }

    .section-image img {
        @media (min-width: 768px) {
            -webkit-mask-image:
                linear-gradient(to right, black 50%, transparent 100%),
                linear-gradient(to top, black 70%, transparent 100%);
            mask-image:
                linear-gradient(to right, black 50%, transparent 100%),
                linear-gradient(to top, black 70%, transparent 100%);
            /* Mask-Composite sorgt dafür, dass sich die Transparenz beider Verläufe addiert/schneidet */
            -webkit-mask-composite: source-in;
            mask-composite: intersect;
        }
    }

    .section-content {
        /* margin: 2rem auto;
        max-width: 800px; */
        /* border: 1px dashed rosybrown; */

        img {
            margin: auto;
            max-width: 16rem;
        }
        @media (min-width: 768px) {
            img {
                margin: 3rem 0 1rem 2rem;
                rotate: 4deg;
                transform-origin: bottom left;
                float: right;
                max-width: 14rem;
                /* box-shadow: 0 0 4px 0 #666; */
            }
        }
    }
}


section.plan {
    display: grid;
    grid-template-columns: 1fr;
    /* grid-template-rows: repeat(3, auto); */
    grid-template-rows: 1fr clamp(40px, 25vw, 250px) auto;

    .section-image {
        grid-column: 1;
        grid-row: 1 / 3;
    }

    .section-image img {
        @media (min-width: 768px) {
            -webkit-mask-image:
                linear-gradient(to right, black 50%, transparent 100%),
                linear-gradient(to top, black 70%, transparent 100%);
            mask-image:
                linear-gradient(to right, black 50%, transparent 100%),
                linear-gradient(to top, black 70%, transparent 100%);
            /* Mask-Composite sorgt dafür, dass sich die Transparenz beider Verläufe addiert/schneidet */
            -webkit-mask-composite: source-in;
            mask-composite: intersect;
        }
    }

    .section-content {

        width: 100%;

        h3 {
            text-align: center;
        }

        @media (min-width: 768px) {
            grid-column: 1;
            grid-row: 2 / 4;
            z-index: 1;
            /* background-color: color-mix(in oklch, var(--color-lightgreen) 70%, transparent); */
            background-color: rgba(255, 255, 255, .8);
        }
    }

    .training-pilars {
        margin: 2rem auto;
        display: grid;
        gap: 1rem;
        grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
        text-align: center;
        font-size: smaller;

        div {
            display: grid;
            align-items: end;
            background-color: var(--color-lightgreen);

            >:not(img) {
                padding: .2rem;
            }
        }
    }
}


section.training {

    display: grid;


    .section-image {
        grid-column: 1;
        grid-row: 1;

        display: grid;

        .section-image--image,
        .section-image--text {
            grid-column: 1;
            grid-row: 1;
        }

        .section-image--text {
            display: none;

            @media (min-width: 768px) {
                align-self: center;
                margin-left: 6rem;
                max-width: 400px;
                border: 2px dashed red;
            }
        }

        img {
            @media (min-width: 768px) {
                /* margin-left: auto; */
                -webkit-mask-image:
                    linear-gradient(to left, black 50%, transparent 100%),
                    linear-gradient(to top, black 70%, transparent 100%);
                mask-image:
                    linear-gradient(to left, black 50%, transparent 100%),
                    linear-gradient(to top, black 70%, transparent 100%);
                /* Mask-Composite sorgt dafür, dass sich die Transparenz beider Verläufe addiert/schneidet */
                -webkit-mask-composite: source-in;
                mask-composite: intersect;
            }
        }
    }

    .section-content {
        margin-top: 0;
        padding-bottom: 4rem;
        width: 100vw;

        grid-column: 1;
        grid-row: 2;

        background-color: var(--color-orange);
        color: #fff;

        @media (min-width: 767px) {
            padding: 2rem 6rem;
        }

        h3 {
            color: inherit;
        }

        .slider {
            margin: auto;
            /* max-width: clamp(10ch, 100%, 75ch); */
            max-width: 75ch;
        }

        dl {
            margin-top: 2rem;
            display: flex;
            flex-direction: row;
            gap: 1rem;

            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scroll-behavior: smooth;
            scrollbar-width: none;
            -ms-overflow-style: none;

            .slide {
                flex: 0 0 100%;
                scroll-snap-align: start;
                border-radius: 0.75rem;
                display: flex;
                flex-direction: column;
                align-items: flex-start;
            }


            dt {
                flex: 0 1 auto;
                align-self: flex-start;
                min-width: 0;
                max-width: 100%;
                font-size: var(--medium-font);
                font-weight: bold;
                position: relative;
                padding-left: 1.8rem;

                &::before {
                    content: "";
                    position: absolute;
                    left: 0;
                    top: 0.25rem;
                    width: 1.2rem;
                    height: 1.2rem;
                    background: url("../img/checkmark.svg") no-repeat center/contain;
                    filter: brightness(0) invert(1);
                }
            }

            dd {
                flex: 1 1 0;
                min-width: 0;
            }

            @media (min-width: 768px) {
                flex-direction: row;

                .slide {
                    flex-direction: row;
                }

                dt {
                    flex: 0 0 22ch;
                }
            }
        }

        .slider-nav {
            margin-top: 1rem;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.75rem;
        }

        .slider-dots {
            display: flex;
            justify-content: center;
            gap: 0.5rem;
        }

        .slider-dots button {
            width: 0.8rem;
            height: 0.8rem;
            padding: 0;
            border: 2px solid #111;
            border-radius: 999px;
            background: transparent;
            opacity: 0.45;
            cursor: pointer;
            transition: transform 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
        }

        .slider-dots button[aria-current="true"] {
            background: #111;
            opacity: .1;
            transform: scale(1.15);
        }

        .slider-dots button:focus-visible {
            outline: 2px solid #111;
            outline-offset: 3px;
        }

        .arrow {
            display: none;
            border: 1px solid #d0d0d0;
            background: #fff;
            color: #111;
            width: 2.25rem;
            height: 2.25rem;
            border-radius: 999px;
            cursor: pointer;
            font-size: 1rem;
            line-height: 1;
        }

        .arrow[disabled] {
            opacity: 0.4;
            cursor: default;
        }

        .arrow:focus-visible {
            outline: 2px solid #111;
            outline-offset: 3px;
        }

    }
}


section.steps {

    display: grid;


    .section-image {
        grid-column: 1;
        grid-row: 1;

        img {
            @media (min-width: 768px) {
                margin-left: auto;
                -webkit-mask-image: radial-gradient(circle, transparent 50%, black 90%);
                mask-image: radial-gradient(circle, transparent 50%, black 90%);
            }
        }
    }

    .section-content {

        @media (min-width: 768px) {
            grid-column: 1;
            grid-row: 1;
            place-self: center;
            z-index: 1;
        }
    }

    .sequence {
        display: flex;
        flex-direction: column;
        gap: 64px;
        /* Space between steps */

        .step {
            display: flex;
            align-items: center;
            position: relative;
            color: var(--color-green);

            &:not(:last-child)::before {
                content: '';
                position: absolute;
                left: 39px;
                top: 50%;
                width: 2px;
                height: calc(50% + 104px);
                background-color: var(--color-orange);
                z-index: 1;
            }

            .step-number {
                flex-shrink: 0;
                width: 80px;
                height: 80px;
                display: flex;
                justify-content: center;
                align-items: center;
                border: 2px solid var(--color-orange);
                background-color: var(--color-lightgreen);
                font-size: 2rem;
                position: relative;
                z-index: 2;
            }

            .step-description {
                padding: .4rem 2rem;
                /* margin: 0.8rem 0; */
                /* padding: 1rem 1rem; */
                flex: 1;
                background-color: color-mix(in oklch, var(--color-lightgreen) 90%, transparent);
            }
        }
    }

}


section.gallery {
    display: grid;


    .section-image {
        grid-column: 1;
        grid-row: 1;

        .section-image--image {
            display: none;
        }

        @media (min-width: 768px) {
            .section-image--image {
                display: block;
            }
        }
    }

    .section-content {

        width: 90%;

        @media (min-width: 768px) {
            grid-column: 1;
            grid-row: 1;
            place-self: center;
            z-index: 1;
            color: #fff;
        }
    }

    .gallery {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
        gap: 1rem;
        /* padding: 2rem; */

        @media (min-width: 768px) {
            grid-template-columns: repeat(3, 1fr);
            grid-template-rows: 220px 220px 220px;
        }

        figure {
            position: relative;
            overflow: hidden;
            border: 2px solid rgba(255, 255, 255, .1);

            img {
                width: 100%;
                height: 100%;
                object-fit: cover;
            }

            @media (min-width: 768px) {
                &:nth-child(5) {
                    grid-column: 2;
                    grid-row: 2 / span 2;
                }
            }

            figcaption {
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
                background-color: color-mix(in srgb, var(--color-green) 85%, transparent);
                color: var(--color-lightgreen);
                padding: .2rem .8rem;
                text-align: center;
                font-size: var(--small-font);
            }
        }
    }
}


section.pricing {
    display: grid;

    .section-image {
        grid-column: 1;
        grid-row: 1;


        @media (min-width: 768px) {
            img {
                max-width: 60%;
                margin-left: auto;
                -webkit-mask-image:
                    linear-gradient(to left, black 50%, transparent 100%),
                    linear-gradient(to bottom, transparent, black 30%, black 70%, transparent);
                mask-image:
                    linear-gradient(to left, black 50%, transparent 100%),
                    linear-gradient(to bottom, transparent, black 30%, black 70%, transparent);
                /* Mask-Composite sorgt dafür, dass sich die Transparenz beider Verläufe addiert/schneidet */
                -webkit-mask-composite: source-in;
                mask-composite: intersect;
            }
        }
    }

    .section-content {

        max-width: 1100px;

        @media (min-width: 768px) {
            .half {
                max-width: 45%;
            }
        }

        .values {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr));
            gap: 1rem;
            align-items: center;

            ul {
                list-style: none;
                padding-left: 0;
                font-weight: bold;
                color: var(--color-green);

                li {
                    position: relative;
                    padding-left: 1.5rem;
                    margin-top: 0.5rem;
                    margin-bottom: 0.5rem;

                    &::before {
                        content: "";
                        position: absolute;
                        left: 0;
                        top: 0.2rem;
                        width: 1rem;
                        height: 1rem;
                        background: url("../img/checkmark.svg") no-repeat center/contain;
                    }
                }
            }
        }

        .pricing-tiers {
            margin-top: 4rem;
            padding-top: 2rem;
            padding-bottom: 2rem;
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
            gap: 2rem;
            border-top: 1px solid var(--color-lightgreen);
            border-bottom: 1px solid var(--color-lightgreen);
            text-align: center;

            .tier-option {
                padding: .2rem .6rem;
                border-radius: .6rem;
                display: grid;
                gap: .6rem 0;
                transition: background-color .2s ease-out;
                outline: 1px solid red;
            }

            .tier-option:hover {
                background-color: color-mix(in srgb, var(--color-green) 15%, transparent);
            }


            .tier-title {
                display: grid;

                >* {
                    grid-area: 1 / 1;
                }

                .tier-title__label {
                    align-self: start;
                    justify-self: start;
                    margin-top: -.6rem;
                    margin-left: -.6rem;
                    z-index: 1;
                    padding: .2rem .6rem;
                    background-color: var(--color-orange);
                    border-radius: .6rem;
                    color: #fff;
                    font-weight: bold;
                    box-shadow: 0 0 10px rgba(0, 0, 0, .4);
                    border: 1px solid rgba(255, 255, 255, .4);
                }

                img {
                    aspect-ratio: 20 / 5;
                    overflow: clip;
                    display: block;
                    object-fit: cover;
                    object-position: center;
                    border-radius: .6rem;
                    box-shadow: 0 0 10px rgba(0, 0, 0, .3);
                    outline: 2px solid rgba(255, 255, 255, .4);
                }
            }

            .tier-info {
                font-size: smaller;
            }

            .tier-cta {
                padding-top: .4rem;
            }
        }

        .appointment {
            form {
                margin: auto;
                max-width: 35rem;
                display: grid;
                gap: .6rem;
                grid-template-columns: 4fr;
                
                input {
                    font-size: 16px;
                }

                button {
                    margin: auto;
                    padding: .4rem 1.2rem;
                    max-width: 12rem;
                }
            }
        }

        @media(min-width: 768px) {
            margin-top: 14rem;
            grid-column: 1;
            grid-row: 1;
            place-self: center;
            z-index: 1;
        }
    }
}


section.faq {
    margin: auto inherit;
    max-width: 1080px;

    .faq {
        display: grid;
        gap: .8rem;
    }

    .faq details {
        border-bottom: 1px solid var(--color-lightgreen);
        overflow: hidden;

        &:hover {
            background-color: var(--color-lightgreen);
        }
    }

    .faq summary {
        list-style: none;
        cursor: pointer;
        padding: 1rem 1.25rem;
        font-weight: 700;
        color: var(--color-green);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 2rem;
    }

    .faq summary::-webkit-details-marker {
        display: none;
    }

    .faq summary::after {
        content: "+";
        font-size: 1.4rem;
        line-height: 1;
        color: var(--color-orange);
    }

    .faq details[open] summary::after {
        content: "–";
    }

    .faq__content {
        padding: 0 1.25rem 1.1rem;
        color: var(--color-green);
    }

    .medifitteam {
        margin: 4rem auto;
        max-width: 20rem;
    }

}


footer {
    background-color: var(--color-green);
    background-image: radial-gradient(circle at 80% 50%, color-mix(in srgb, var(--color-green) 85%, var(--color-lightgreen)) 0%, transparent 70%);
    color: #fff;

    padding: 1rem 2rem;

    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;

    @media(min-width: 768px) {
        grid-template-columns: repeat(2, 1fr);
    }

    >a {
        margin-top: -2rem;
        padding: .3rem;
        grid-column: 1 / -1;
        justify-self: center;
        width: 32px;
        height: auto;
        border-radius: .2rem;
        background-color: var(--color-green);
        box-shadow: 1px 1px 6px #102421;
    }

    .footer-links {
        list-style: none;
        padding: 0;
        margin: 4rem 0;
        display: flex;
        flex-direction: row;
        /* align-items: center; */
        /* justify-content: center; */
        gap: 1.5rem;

        li {
            display: inline;
        }

        a {
            color: #fff;
            text-decoration: none;
        }
    }

    .legal {
        p {
            margin-block: 1rem;
        }
    }

    .legal > div {
        display: none;
    }

    .legal > div.visible {
        display: block;
    }
}



/* Utilities */
.mt-large {
    margin-top: 6rem;
}

.mt-medium {
    margin-top: 4rem;
}

.mt-small {
    margin-top: 2rem;
}

.container-small {
    padding: 1rem 2rem;
    margin-left: auto;
    margin-right: auto;
    max-width: clamp(25ch, 100%, 60ch);
}

.container-wide {
    margin: auto inherit;
    max-width: 1080px;
}

.lead {
    font-size: var(--medium-font);
    font-weight: 300;
}

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


/* Utility classes */
.text-xs {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-xs);
}

.text-s {
  font-size: var(--font-size-s);
  line-height: var(--line-height-s);
}

.text-r {
  font-size: var(--font-size-r);
  line-height: var(--line-height-r);
}

.text-m {
  font-size: var(--font-size-m);
  line-height: var(--line-height-m);
}

.text-l {
  font-size: var(--font-size-l);
  line-height: var(--line-height-l);
}

.text-xl {
  font-size: var(--font-size-xl);
  line-height: var(--line-height-xl);
}

.text-2xl {
  font-size: var(--font-size-2xl);
  line-height: var(--line-height-2xl);
}







/* CSS Variables */
:root {
    /* 1. Markenfarben (Brand Colors) */
    --color-orange: #ED694B;
    /* z.B. das Fitnessstudio-Blau */
    --color-orange-hover: #a14632;
    --color-blue: #4C7AED;
    --color-blue-hover: #ff6b6b;
    --color-green: #004B58;
    --color-green-hover: #ff6b6b;
    --color-lightgreen: #E6F4F2;
    --color-lightgreen-hover: #ff6b6b;


    --large-font: 3rem;
    --medium-font: clamp(1.1rem, calc(1rem + 0.5vw), 1.8rem);
    --small-font: 0.9rem;


    /* Base font size */
    --font-size-base: 16px;

    /* Type scale tokens */
    --font-size-xs: clamp(0.375rem, 0.179rem + 0.87vw, 0.875rem);
    --line-height-xs: 1.6;
    --font-size-s: clamp(0.5rem, 0.255rem + 1.087vw, 1.125rem);
    --line-height-s: 1.6;
    --font-size-r: clamp(0.688rem, 0.443rem + 1.087vw, 1.313rem);
    --line-height-r: 1.6;
    --font-size-m: clamp(0.75rem, 0.359rem + 1.739vw, 1.75rem);
    --line-height-m: 1.55;
    --font-size-l: clamp(0.938rem, 0.448rem + 2.174vw, 2.188rem);
    --line-height-l: 1.49;
    --font-size-xl: clamp(1.188rem, 0.576rem + 2.717vw, 2.75rem);
    --line-height-xl: 1.41;
    --font-size-2xl: clamp(1.438rem, 0.655rem + 3.478vw, 3.438rem);
    --line-height-2xl: 1.36;
}













/* --------------------------------- */
/* Reset styles */
/* --------------------------------- */

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

html,
body {
    margin: 0;
    padding: 0;
    -moz-text-size-adjust: none;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
    scroll-behavior: smooth;
    scroll-padding-top: 2rem;
}

:target {
    scroll-margin-top: 2rem;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
    margin: 0;
    margin-block-end: 0;
}

a {
    color: inherit;
}



/* Fonts */

/* signika-300 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Signika';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/signika-v29-latin-300.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* signika-regular - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Signika';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/signika-v29-latin-regular.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/* fira-sans-300 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Fira Sans';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/fira-sans-v18-latin-300.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* fira-sans-300italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Fira Sans';
    font-style: italic;
    font-weight: 300;
    src: url('../fonts/fira-sans-v18-latin-300italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* fira-sans-regular - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Fira Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/fira-sans-v18-latin-regular.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* fira-sans-italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Fira Sans';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/fira-sans-v18-latin-italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* fira-sans-700 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Fira Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/fira-sans-v18-latin-700.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* fira-sans-700italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Fira Sans';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/fira-sans-v18-latin-700italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/* TODO: Remove PT Sans? */


/* pt-sans-regular - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'PT Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/pt-sans-v18-latin-regular.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* pt-sans-italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'PT Sans';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/pt-sans-v18-latin-italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* pt-sans-700 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'PT Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/pt-sans-v18-latin-700.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* pt-sans-700italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'PT Sans';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/pt-sans-v18-latin-700italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/* overpass-300 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Overpass';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/overpass-v19-latin-300.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* overpass-300italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Overpass';
    font-style: italic;
    font-weight: 300;
    src: url('../fonts/overpass-v19-latin-300italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* overpass-regular - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Overpass';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/overpass-v19-latin-regular.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* overpass-italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Overpass';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/overpass-v19-latin-italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* overpass-700 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Overpass';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/overpass-v19-latin-700.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* overpass-700italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Overpass';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/overpass-v19-latin-700italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}



/* niramit-300 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Niramit';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/niramit-v12-latin-300.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* niramit-300italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Niramit';
    font-style: italic;
    font-weight: 300;
    src: url('../fonts/niramit-v12-latin-300italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* niramit-regular - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Niramit';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/niramit-v12-latin-regular.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* niramit-italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Niramit';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/niramit-v12-latin-italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* niramit-700 - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Niramit';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/niramit-v12-latin-700.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* niramit-700italic - latin */
@font-face {
    font-display: swap;
    /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Niramit';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/niramit-v12-latin-700italic.woff2') format('woff2');
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}