.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(0.75rem, -8.3846rem + 29.2308vw, 15rem);

    & h1 { font-size: clamp(2.25rem, 2.0169rem + 0.9945vw, 2.8125rem); letter-spacing: -1px; line-height: 1; }
    & p { color: var(--text-default); }
}

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

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

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

    & h2 { font-size: clamp(1.1875rem, 1.1357rem + 0.221vw, 1.3125rem); color: var(--text-default); padding-bottom: 8px; }
    & h1 { font-size: clamp(3rem, 2.8446rem + 0.663vw, 3.375rem); line-height: 1; }
}

.hero-container { 
    padding-right: clamp(0rem, -21.6346rem + 69.2308vw, 33.75rem);

    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(--text-strong);
    color: var(--surface-base);
    
    padding: 10px 20px;
    border-radius: 50vw;

    transition: background-color .2s ease;
}

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

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

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

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

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

.example .landing-container { padding: 0 clamp(0.75rem, -10.5rem + 30vw, 7.5rem); }

@media (min-width: 960px) { .example .landing-container { padding: 0 clamp(0.75rem, -2.5588rem + 8.8235vw, 4.5rem); } }

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

    box-shadow: 0 5px 18px hsl(from var(--text-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(--text-muted) h s l / 0.36);
    border-bottom: 1px solid hsl(from var(--text-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(--status-danger);

    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(1.25rem, 0.6762rem + 2.623vw, 2.25rem);
    padding-bottom: 40px;

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

    background-color: hsl(from var(--text-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(--text-muted) h s l / 0.5); border-right: none; color: #007e34; }

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

.actual-code { font-size: clamp(0.875rem, 0.8033rem + 0.3279vw, 1rem); }

/* ====================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(--text-muted) h s l / 0.24);
    border-radius: 5px;

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

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

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

.overage-request-policy-container {
    display: flex;
    flex-direction: column;
    gap: clamp(2.25rem, -1.125rem + 7.0313vw, 4.5rem);
    padding-right: clamp(0rem, -16.9521rem + 49.3151vw, 22.5rem);
}

@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;

    & h1 { font-size: 48px; color: var(--text-muted); }
    & h2 { 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(0.75rem, -2.5rem + 8.125vw, 4rem);
}

.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(--text-default) h s l / 0.3);
    border-color: var(--text-default);

    &:hover { background-color: hsl(from var(--text-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(--text-default); }
.competitor-table th:last-of-type { color: var(--text-strong); }

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

/* ====================STATS==================== */

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

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

.stats-container {
    display: grid;
    justify-content: center;
    align-items: center;
    gap: 18px;

    position: relative;

    grid-template-columns: 1fr;
}

@media (min-width: 640px) { .stats-container { grid-template-columns: repeat(2, minmax(300px, 1fr)); } }
@media (min-width: 1280px) { .stats-container { grid-template-columns: repeat(4, 1fr); } }

.stat {
    border-radius: 8px;

    min-width: 300px;
    min-height: 150px;

    border: 1px solid hsl(from var(--text-muted) h s l / 0.5);
    background-color: var(--surface-base);

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;

    box-sizing: border-box;

    & h1 { font-size: 40px; font-weight: 640; }
}

/* ====================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: #f0c0c0;
    border: 2px solid var(--surface-raised);

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

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

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

    & p { color: var(--text-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(--text-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(--text-muted) h s l / 0.24);
    }

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

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

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

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

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

.faq-wrapper {
    padding: 0 clamp(0.5rem, -12.3082rem + 37.2603vw, 17.5rem);

    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: 4px 0;

        color: var(--text-strong);
        font-weight: 500;

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

.faq-wrapper .answer {
    padding: 0 3px;
    padding-bottom: 14px;

    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);
}

.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(0rem, 0rem + 71.1111vw, 20rem); }} }

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

    color: var(--text-default);
}

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

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

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

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

.footer-container {
    display: flex;
    flex-direction: column;
    gap: 24px;

    & hr { display: initial; }
}

@media (min-width: 768px) { .footer-container { gap: clamp(3rem, -15rem + 37.5vw, 15rem); flex-direction: row; & hr { display: none; } } }

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

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

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

.footer-email a:hover { text-decoration: underline; }

.footer-links {
    display: flex;
    gap: 120px;

    & ul { display: flex; flex-direction: column; gap: 12px; }

    & li {
        list-style-type: none;
        padding: 0;
        margin: 0;
    }
}

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

    gap: 6px;

    font-size: 15px;
    color: var(--text-default);

    & a { text-decoration: underline; }
}

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