body {
    scrollbar-gutter: stable;
}
body > header {
    padding-inline: var(--space-2);
    padding-block: var(--space-4);
    border-bottom: 1px solid var(--border);
}

body > main {
    padding-inline: var(--space-2);
    padding-block: var(--space-4);
}

.purchase-cards {
    display: flex;
    flex-direction: row;
    
    gap: var(--space-4);
    margin-inline: var(--space-2);
    margin-block: var(--space-4);

    /* justify-content: center; */
}

.purchase-cards hr {
    margin-block: var(--space-4);
}

@media (max-width: 768px) {
    .purchase-cards {
        flex-direction: column;
    }
}

.purchase-cards > .card > main {
    flex: 1;
}

.purchase-cards > * {
    display: flex;
    flex-direction: column;
    flex: 1;
    max-width: 400px;
}

.purchase-cards .card li {
    white-space: nowrap;
}

.purchase-cards .price {
    font-weight: 500;
    font-size: var(--text-3);
}

.purchase-cards input[type='range'] {
    margin-block-end: var(--space-4);
    background: linear-gradient(to right, oklch(0.7902 0.1294 186.71) var(--progress, 0%), var(--muted) 0);
}

body {
    --container-width: 140ch;
}

body > main {
    max-width: var(--container-width);
    margin-inline: auto;
}

body > footer {
    padding-inline: var(--space-2);
    border-top: 1px solid var(--border);
}

body > footer > div {
    max-width: var(--container-width);
    margin-inline: auto;
}

body > header {
    position: sticky;
    top: 0;
    background-color: var(--background);
    z-index: 1;
}

body > header > nav {
    max-width: var(--container-width);
    margin-inline: auto;
}

svg {
    fill: currentColor;
    width: 1em;
    height: 1em;
    vertical-align: middle;
}

header nav a {
    text-decoration: none;
}

header nav a:hover:not(:has(img), :is(.button)) {
    text-decoration: underline;
}

header nav img {
    height: 2rem;
    vertical-align: middle;
    text-decoration: none;
}

header nav {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

header nav > *:first-child {
    flex: 1;
}

header nav a:first-child {
    font-size: clamp(1em, 1vw + 0.5em, 1.2em);
}

header nav a:first-child span {
    vertical-align: bottom;
    margin-inline-start: var(--space-1);
    white-space: nowrap;
}

header nav a:first-child svg {
    fill: var(--border);
}

body > footer nav {
    margin-block: var(--space-10);
}

body > footer nav {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    gap: var(--space-18);
}

body > footer nav h2 {
    font-size: 1.1rem;
}

body > footer nav a {
    display: block;
    text-decoration: none;
}

body > footer nav a:hover {
    text-decoration: underline;
}

.disabled {
    opacity: .5;
    cursor: not-allowed;
}
