.landing-container {
    display: flex;
    justify-content: center;
    flex-direction: column;
    gap: 55px;

    height: fit-content;
}

.landing-header {
    text-align: center;

    display: flex;
    gap: 16px;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    padding: 0 clamp(12px, -134.1536px + 29.2308vw, 240px);

    & h2 { font-size: clamp(36px, 32.2704px + 0.9945vw, 45px); letter-spacing: -1px; line-height: 1; }
    & p { color: var(--default); }
}

/* Offset anchored sections so fixed nav doesn't overlap */
section[id] { scroll-margin-top: 64px; }

/* ====================NAVBAR==================== */

nav {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);

    width: 100%;
    max-width: var(--lockedvw);

    z-index: 1000;
    padding: 0 var(--sidepadding);

    border-bottom: 1px solid hsl(from var(--muted) h s l / 0.5);
    background-color: hsl(from var(--raised) h s l / .64);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

nav a:active { scale: .98; }

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

    padding: 16px 0;
}

.nav-left, .nav-right { display: flex; align-items: center; }
.nav-left { gap: 18px; }
.nav-right { gap: clamp(12px, 6.7056px + 0.8824vw, 18px); white-space: nowrap;}
.nav-left a:not(:first-child) { display: none; }
@media (min-width: 600px) { .nav-left a:not(:first-child) { display: block; } }

.nav-left a, .nav-right a {
    transition: color .2s ease;
    color: var(--default);
}

.nav-left a:first-child {
    font-size: 18px;
    font-weight: 600;
    color: initial;

    margin-left: -6px;
}

.nav-left a:not(:first-child):hover,
.nav-right a:first-child:hover {
    color: var(--hover);
}

#nav-get-started {
    background-color: var(--accent);
    color: var(--base);

    padding: 5px 10px;
    border-radius: 5px;

    transition: opacity .2s ease;
    &:hover { opacity: .8; }
}

.nav-left a { padding: 6px 12px; }

.nav-left .hover {
    border-radius: 6px;

    transition: background-color .3s ease;
    &:hover { background-color: hsl(from var(--muted) h s l / 0.24); }
}

/* ====================HERO==================== */

.hero {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 120px var(--sidepadding) 64px;

    & .hero-tagline { font-size: clamp(19px, 18.1712px + 0.221vw, 21px); color: var(--default); padding-bottom: 8px; font-weight: 600; letter-spacing: -.3px; }
    & h1 { font-size: clamp(48px, 45.5136px + 0.663vw, 54px); line-height: 1; }
}

.hero-container { 
    padding-right: clamp(0px, -346.1536px + 69.2308vw, 540px);

    display: flex;
    flex-direction: column;
    gap: 48px;
}

.hero-cta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.hero-cta a:first-of-type {
    background-color: var(--strong);
    color: var(--base);
    
    padding: 10px 20px;
    border-radius: 50vw;

    transition: background-color .2s ease;
}

.hero-cta a:first-of-type:hover {
    background-color: var(--hover); 
}

/* ====================EXAMPLE==================== */

.example {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 50px var(--sidepadding);
}

@media (max-width: 320px) { .example { display: none; } }

.example .landing-container { padding: 0 clamp(12px, -168px + 30vw, 120px); }
@media (min-width: 960px) { .example .landing-container { padding: 0 clamp(12px, -40.9408px + 8.8235vw, 72px); } }

.code-window {
    border: 1px solid hsl(from var(--muted) h s l / 0.64);
    border-radius: 5px;

    box-shadow: 0 5px 18px hsl(from var(--default) h s l / 0.2);
    
    transform: translateY(24px);
    opacity: 0;

    animation: slideUp .6s ease-out forwards;

    & p {
        pointer-events: none;
        -webkit-user-select: none;
        -ms-user-select: none; 
        user-select: none;
        -webkit-tap-highlight-color: transparent;
        -webkit-touch-callout: none;      
    }
}

@keyframes slideUp {
    to { transform: translateY(0); opacity: 1; }
}

.code-window-header {
    position: relative;

    display: flex;
    align-items: center;

    padding: 16px;

    background-color: hsl(from var(--muted) h s l / 0.36);
    border-bottom: 1px solid hsl(from var(--muted) h s l / 0.64);
}

@media (max-width: 768px) { .code-window-header .one { display: none; } }
@media (max-width: 600px) { .code-window-header .two { display: none; } }
@media (max-width: 480px) { .code-window-header .three { display: none; } }

.code-window-header > div {
    display: flex;
    gap: 6px;
}

.code-window-header p {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    text-align: center;
}

.window-control  {
    background-color: var(--red);

    width: 12px;
    height: 12px;
    aspect-ratio: 1 / 1;

    border-radius: 50vw;
}

.code-container {
    display: flex;
    flex-direction: column;
    width: 100%;
}

@media (min-width: 960px) { .code-container { flex-direction: row; } }

.code-left, .code-right { 
    width: 100%; 
    padding: 21px clamp(20px, 10.8192px + 2.623vw, 36px);
    padding-bottom: 48px;

    display: flex;
    flex-direction: column;
    gap: 18px;

    background-color: hsl(from var(--muted) h s l / 0.24);

    overflow: hidden;
}

@media (min-width: 960px) { .code-left, .code-right { width: 50%; } }

.code-left { border-bottom: 1px solid hsl(from var(--muted) h s l / 0.5); border-right: none; color: #007e34; }

@media (min-width: 960px) { .code-left { border-right: 1px solid hsl(from var(--muted) h s l / 0.5); border-bottom: none; } }

.actual-code { font-size: clamp(13.5px, 12.8528px + 0.3279vw, 16px); }

/* ====================ABOUT==================== */

.about {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 32px var(--sidepadding);
}

.example-pading { padding: 0 clamp(12px, -168px + 30vw, 120px); }
@media (min-width: 960px) { .example-padding { padding: 0 clamp(12px, -40.9408px + 8.8235vw, 72px); } }

.about-container {
    text-align: center;
    padding: 0 calc(clamp(0rem, -14.0224rem + 44.8718vw, 21.875rem) + 6px);

    & p { color: var(--default); }
    & h2 { font-size: 22px; font-weight: 550; }
}

/* ====================FEATURES==================== */

.features {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 72px var(--sidepadding);
}

.features-container {
    display: flex;
    flex-direction: column;
    gap: 36px;
}

.features-boxes-wrapper {
    display: grid;
    grid-template-columns: 1fr;

    gap: 5px;
}

@media (min-width: 550px) { .features-boxes-wrapper { grid-template-columns: 1fr 1fr; } }
@media (min-width: 768px) { .features-boxes-wrapper { grid-template-columns: 1fr 1fr 1fr; } }

.feature-box {
    padding: 24px;

    background-color: hsl(from var(--muted) h s l / 0.24);
    border-radius: 5px;

    & p { color: var(--default); }
    & h3 { padding-bottom: 8px; font-size: 16px; }
}

.overage-request-policy {
    display: flex;
    flex-direction: column;
    gap: 24px;

    & p { color: var(--default); }
    & h3 { padding-bottom: 5px; }
}

.overage-request-policy-container {
    display: flex;
    flex-direction: column;
    gap: clamp(36px, -18px + 7.0313vw, 72px);
    padding-right: clamp(0px, -271.2336px + 49.3151vw, 360px);
}

@media (min-width: 768px) { .overage-request-policy-container { flex-direction: row; } }

/* ====================HOW IT WORKS==================== */

.how-it-works {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 72px var(--sidepadding) 120px;
}

.how-it-works-steps-wrapper {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: 1fr 1fr 1fr 1fr;

    padding: 0 12px;
    gap: 48px;
}

@media (min-width: 768px) { .how-it-works-steps-wrapper { grid-template-rows: 1fr 1fr; } }
@media (min-width: 1024px) { .how-it-works-steps-wrapper { grid-template-rows: 1fr; } }

.how-it-works-step {
    display: flex;
    flex-direction: column;
    gap: 12px;

    & .step-number { font-size: 48px; color: var(--muted); font-weight: 600; letter-spacing: -.3px; }
    & h3 { font-size: 16px; font-weight: 500; }
}

/* ====================COMPETITOR==================== */

.competitors {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 72px var(--sidepadding);
}

.competitors-content {
    display: flex;
    flex-direction: column-reverse;
    gap: clamp(12px, -40px + 8.125vw, 64px);
}

.competitors-content > * { min-width: 0; }

@media (min-width: 1024px) { .competitors-content { flex-direction: row; } }

.competitors-graph {
    display: flex;
    justify-content: center;
    flex-direction: column;
    gap: 5px;

    width: 100%;

    & p {
        line-height: 1;

        pointer-events: none;
        -webkit-user-select: none;
        -ms-user-select: none; 
        user-select: none;
        -webkit-tap-highlight-color: transparent;
        -webkit-touch-callout: none; 
    }
}

.competitors-graph {
    width: 100%;
    padding: 0 16px;

    height: 400px;
}

@media (min-width: 1024px) { .competitors-graph { width: 260px; height: auto; } }

.competitor-bar {
    background-color: hsl(from var(--default) h s l / 0.3);
    border-color: var(--default);

    &:hover { background-color: hsl(from var(--default) h s l / 0.6); }
}

.competitor-table {
    width: 100%;
    height: 100%;

    border-collapse: collapse;

    font-size: 15px;
    line-height: 1.5;

    border-radius: 10px;
    overflow: hidden;

    flex: 1;
    min-width: 0; /* VERY important for flex overflow */
}

.competitor-table th {
    padding: 0 16px;

    text-align: left;

    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.3px;
}

.competitor-table th:first-of-type { font-weight: 500; color: var(--default); }
.competitor-table th:last-of-type { color: var(--strong); }

.competitor-table td { padding: 14px 18px; border-bottom: 1px solid var(--muted); max-width: 500px; }
.competitor-table td:last-child { font-weight: 500; }

/* ====================PRICING==================== */

.pricing {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 72px var(--sidepadding);   
}

.pricing-trusted-by {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.pricing-trusted-by-icons { display: flex; padding-left: 8px; }

.pricing-trusted-by-icons .icon {
    margin: 0;
    padding: 0;
    box-sizing: border-box;

    min-width: 37px;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: 50vw;

    font-size: 14px;
    font-weight: 600;

    display: flex;
    justify-content: center;
    align-items: center;

    margin-left: -10px;

    background-color: var(--muted);
    border: 2px solid var(--raised);

    & p {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-weight: 550;
    }
}

.pricing-overage { 
    width: 100%; 
    padding: 0 clamp(0px, -210px + 32.8125vw, 210px);

    display: flex;
    flex-direction: column;
    gap: 24px;

    & p { color: var(--default); text-align: center; }
}

.pricing-overage table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;

    font-size: 16px;

    & tr { padding: 0; }

    & th {
        text-transform: uppercase;
        text-align: left;

        font-weight: 400;
        color: var(--default);
        font-size: 13px;

        padding: 12px 0;
    }

    & td { padding: 10px 0; }

    & td, th { width: 25%; padding-left: 3px; padding-right: 3px; }

    & tr {
        text-align: left;

        border-bottom: 1px solid hsl(from var(--muted) h s l / 0.24);
    }

    & tr:first-of-type { border-bottom: 1px solid hsl(from var(--muted) h s l / 0.48); }

    & tr td:first-of-type { color: var(--strong); }
}

/* ====================FAQ==================== */

.faq {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 72px var(--sidepadding);      
}

.faq-wrapper {
    padding: 0 clamp(8px, -196.9312px + 37.2603vw, 280px);

    display: flex;
    flex-direction: column;
    gap: 24px;
}

.faq-wrapper .question {
    width: 100%;

    display: flex;
    flex-direction: column;
    gap: 2px;

    & button {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 16px;

        padding: 8px 0;
        padding-bottom: 8px;
        
        text-align: left;
        color: var(--strong);
        font-weight: 500;

        & svg { width: 19px; fill: var(--strong);}
    } 
}

.faq-wrapper .answer {
    padding-bottom: 20px;

    line-height: 1.3;

    height: 0;
    overflow: hidden;
    opacity: 0;
    transition: height 0.45s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.3s ease;
    transform: translateY(-1px);

    & a {
        text-decoration: underline;
        transition: color .2s ease;

        &:hover { 
            text-decoration: underline;
            color: var(--default);
        }
    }
}

.faq-wrapper .question.active .answer { max-height: 200px; opacity: 1; transform: translateY(0); }
.faq-wrapper .question button svg { transition: transform 0.5s ease; }
.faq-wrapper .question.active button svg { transform: rotate(180deg); }

/* ====================FINAL CTA==================== */

.final-cta {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 72px var(--sidepadding);     
}

.final-cta .landing-container { gap: 48px; }

.final-cta-buttons {
    justify-content: center;
    
    & a { padding: 16px 32px; font-size: 15px; transition: opacity 0.2s ease; }
    & a:first-of-type:hover { opacity: .8; }
}

.final-cta-buttons { display: flex; flex-direction: column; text-align: center; }
@media (min-width: 450px) { .final-cta-buttons { flex-direction: row; } }
@media (max-width: 450px) { .final-cta-buttons { align-items: center; & a { width: clamp(0px, 0px + 71.1111vw, 320px); }} }

.final-cta-assurances {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 36px;

    color: var(--default);
}

/* ====================FOOTER==================== */

footer {
    width: 100%;
    max-width: var(--lockedvw);
    margin: 0 auto;

    padding: 120px var(--sidepadding);   
    
    display: flex;
    flex-direction: column;
    gap: 36px;

    & a { color: var(--default); font-weight: 400; transition: color .2s ease; }
    & a:hover { color: var(--hover); }
}

.footer-container {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-end;
    justify-content: space-between;
}

@media (min-width: 550px) {
    .footer-container {
        gap: clamp(48px, -240px + 37.5vw, 240px);
        flex-direction: row;
        align-items: flex-start;
        justify-content: flex-start;
    }
    .footer-container hr { display: none; }
}

.footer-runo-info {
    max-width: 360px;

    display: flex;
    flex-direction: column;
    gap: 18px;

    text-align: right;
    color: var(--default);

    margin-left: auto;

    & h2 { font-size: 18px; }
    & svg { width: 24px; }
}

@media (min-width: 550px) {
    .footer-runo-info { margin-left: unset; }
}

.footer-email a { color: var(--strong); transition: color .3s ease; }
.footer-email a:hover { text-decoration: underline; color: var(--hover) !important; }

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 9px;

    margin-right: auto;
}

.footer-legal {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-start;

    gap: 6px;
    margin-top: -12px;

    font-size: 15px;
    & a { color: var(--strong); text-decoration: underline; }
}

@media (min-width: 768px) { .footer-legal { flex-direction: row; justify-content: space-between; align-items: center; } }