.page-heading {
    display:flex;
    flex-direction:column;
    gap:18px;
    max-width:850px;
    margin-bottom:48px
}

.page-heading h1,.text-page h1 {
    font-size:clamp(40px,5.4vw,74px);
    line-height:1.05;
    letter-spacing:-.04em
}

.page-heading p {
    font-size:18px;
    max-width:650px;
    color:var(--color-muted)
}

.filter-bar {
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:16px;
    padding:24px;
    background:#eeece8;
    border-radius:24px;
    margin-bottom:24px
}

.filter-bar label {
    display:flex;
    flex-direction:column;
    gap:8px;
    font-size:12px;
    font-weight:600;
    flex:1;
    min-width:180px
}

.filter-bar input,.filter-bar select {
    width:100%;
    height:50px;
    padding:0 18px;
    border:1px solid var(--color-border);
    border-radius:14px;
    background:#fff;
    color:#1f1f1f
}

.filter-bar .btn {
    min-height:50px
}

.results-count {
    font-size:13px;
    color:var(--color-muted);
    margin-bottom:24px
}

.breadcrumb {
    display:inline-block;
    margin-bottom:32px;
    font-size:14px
}

.product-detail {
    gap:clamp(28px,5vw,80px);
    align-items:center
}

.detail-photo {
    border-radius:36px;
    overflow:hidden;
    aspect-ratio:1;
    background:#ebe8e2
}

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

.detail-copy {
    display:flex;
    flex-direction:column;
    gap:24px
}

.detail-copy h1 {
    font-size:clamp(36px,4.3vw,60px);
    line-height:1.05
}

.detail-copy p {
    color:var(--color-muted)
}

.detail-summary {
    font-size:18px
}

.detail-copy dl {
    display:grid;
    grid-template-columns:1fr 2fr;
    gap:12px;
    padding:24px 0;
    border-block:1px solid var(--color-border)
}

.detail-copy dt {
    font-weight:600
}

.detail-copy dd {
    margin:0;
    color:var(--color-muted)
}

.store-card {
    padding:32px;
    background:#fff;
    border-radius:26px;
    display:flex;
    flex-direction:column;
    gap:18px
}

.store-card>i,.empty-state>i {
    font-size:32px
}

.store-card h2 {
    font-size:27px
}

.store-card p {
    color:var(--color-muted)
}

.store-card .btn {
    margin-top:auto
}

.retailer-callout {
    padding:40px;
    background:#eae7e1;
    border-radius:28px;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:22px;
    margin-top:40px
}

.retailer-callout h2 {
    font-size:28px;
    max-width:320px
}

.retailer-callout p {
    flex:1;
    min-width:200px;
    color:var(--color-muted)
}

.comparison-scroll {
    overflow-x:auto;
    border-radius:28px;
    background:#fff;
    border:1px solid var(--color-border)
}

.comparison {
    width:100%;
    min-width:780px;
    border-collapse:collapse;
    text-align:left
}

.comparison th,.comparison td {
    padding:26px;
    border-bottom:1px solid var(--color-border);
    vertical-align:top;
    font-size:14px;
    line-height:1.65
}

.comparison th[scope=row] {
    min-width:160px;
    background:#f0eeea
}

.comparison th[scope=col] {
    width:26%
}

.comparison th:first-child {
    width:22%;
    vertical-align:bottom
}

.comparison img {
    width:100%;
    height:170px;
    object-fit:cover;
    border-radius:18px;
    margin-bottom:20px
}

.comparison h2 {
    font-size:25px
}

.comparison .btn {
    font-size:13px;
    padding:13px 19px
}

.comparison tr:last-child>* {
    border-bottom:0
}

.comparison-note {
    font-size:12px;
    color:var(--color-muted);
    margin-top:20px
}

.text-page {
    max-width:850px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:25px;
    margin:auto
}

.text-page p,.prose {
    font-size:17px;
    color:#5f5f5f;
    line-height:1.9
}

.page-internal .about-section+.outer .benefits {
    margin-top:0
}

.page-internal .section:has(+.about-section) {
    padding-bottom:0
}

@media(max-width:659px) {
    .filter-bar {
        padding:20px
    }

    .filter-bar label {
        min-width:100%
    }

    .filter-bar button {
        width:100%
    }

    .page-heading {
        margin-bottom:32px
    }

    .retailer-callout {
        padding:28px
    }

    .product-detail dl {
        grid-template-columns:1fr 1fr
    }

}
