.compare-main {
    width: 100%;
    max-width: 56rem;
    margin: 0 auto;
    padding: 6rem 4rem 7rem;
    color: #0e3a2c;
}

.compare-main > section + section {
    margin-top: 6rem;
}

.compare-main h1,
.compare-main h2 {
    margin: 0;
    padding: 0;
    font-weight: 700;
    line-height: 1.35;
    text-wrap: balance;
}

.compare-main h1 {
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    letter-spacing: -0.035em;
}

.compare-main h2 {
    margin-bottom: 1.5rem;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    letter-spacing: -0.025em;
}

.compare-main p,
.compare-main li {
    color: #43574c;
    line-height: 1.85;
    text-wrap: pretty;
}

.compare-main p + p {
    margin-top: 1.5rem;
}

.compare-main .compare-eyebrow {
    margin: 0 0 1.5rem;
    color: #1a6546;
    font-size: 0.8125rem;
    font-weight: 600;
}

.compare-main .compare-lead {
    margin-top: 1.75rem;
    color: #194d3a;
    font-size: 1.125rem;
    line-height: 1.8;
}

.compare-main .compare-notes {
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid #dcebe2;
    font-size: 0.75rem;
    line-height: 1.7;
}

.compare-notes ol {
    margin: 0;
    padding-left: 1.25rem;
    list-style: decimal;
}

.compare-notes li {
    line-height: 1.7;
    scroll-margin-top: 1.5rem;
}

.compare-notes li + li {
    margin-top: 0.75rem;
}

.compare-notes p {
    margin-top: 1.25rem;
    line-height: 1.7;
}

.compare-source-ref {
    margin-left: 0.2em;
    font-weight: 600;
}

.compare-main a {
    color: #1a6546;
    text-decoration: underline;
    text-decoration-color: #b7d8c6;
    text-underline-offset: 4px;
}

.compare-main a:hover {
    text-decoration-color: currentColor;
}

.compare-main a:focus-visible {
    border-radius: 3px;
    outline: 2px solid #1a6546;
    outline-offset: 4px;
}

.compare-table {
    width: 100%;
    margin-top: 3.5rem;
    border-collapse: collapse;
    text-align: left;
}

.compare-table caption {
    padding-bottom: 1rem;
    color: #43574c;
    font-size: 0.875rem;
    line-height: 1.6;
    text-align: left;
}

.compare-table th,
.compare-table td {
    padding: 1.125rem 1rem;
    border-bottom: 1px solid #dcebe2;
    vertical-align: top;
    line-height: 1.6;
}

.compare-table thead th {
    padding-top: 0.875rem;
    padding-bottom: 0.875rem;
    border-bottom: 2px solid #b7e8cf;
    color: #0e3a2c;
    font-size: 1.125rem;
}

.compare-table tbody th {
    width: 28%;
    padding-left: 0;
    color: #0e3a2c;
    font-weight: 600;
}

.compare-table td {
    color: #43574c;
}

/* Highlight the twonly column. */
.compare-table thead th:nth-child(2),
.compare-table td:nth-child(2) {
    background: #eff8f2;
    color: #194d3a;
}

.compare-table thead th:nth-child(2) {
    border-radius: 0.75rem 0.75rem 0 0;
}

.compare-list {
    margin: 0;
    padding-left: 1.25rem;
    list-style: disc;
}

.compare-list li + li {
    margin-top: 0.5rem;
}

.compare-list li::marker {
    color: #1a6546;
}

.compare-steps {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: step;
}

.compare-steps li {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    counter-increment: step;
}

.compare-steps li + li {
    margin-top: 1.25rem;
}

.compare-steps li::before {
    content: counter(step);
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: #e1f9eb;
    color: #0e3a2c;
    font-weight: 700;
    line-height: 1;
}

.compare-steps strong {
    color: #0e3a2c;
}

.compare-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    margin-top: 2rem;
}

.compare-main .compare-links a {
    font-size: 0.9375rem;
    font-weight: 600;
}

/* Match the closing trust section and download area on the landing page. */
.compare-trust {
    padding: 4rem 0;
    background: #eff8f2;
    color: #0e3a2c;
}

.compare-trust__inner {
    width: calc(100% - 3rem);
    max-width: 64rem;
    margin: 0 auto;
}

.compare-trust__heading {
    max-width: 42rem;
    margin: 0 auto 3.5rem;
    text-align: center;
}

.compare-trust h2,
.compare-trust h3 {
    padding: 0;
    font-weight: 700;
    line-height: 1.4;
}

.compare-trust h2 {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.compare-trust__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
    text-align: left;
}

.compare-trust h3 {
    margin: 0 0 1rem;
    font-size: 1.0625rem;
}

.compare-trust p {
    margin: 0;
    color: #43574c;
    line-height: 1.8;
    text-wrap: pretty;
}

.compare-trust a {
    color: #1a6546;
    text-decoration: underline;
    text-decoration-color: #b7d8c6;
    text-underline-offset: 4px;
}

.compare-trust a:hover {
    text-decoration-color: currentColor;
}

.compare-trust a:focus-visible {
    border-radius: 2px;
    outline: 2px solid #1a6546;
    outline-offset: 4px;
}

.compare-trust .compare-text-link {
    display: inline-block;
    margin-top: 1rem;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.7;
}

.compare-text-link span {
    display: inline-block;
    margin-left: 0.25rem;
}

.compare-page + div {
    padding: 3.5rem 1.5rem !important;
    background: #eff8f2;
}

.compare-page + div h2 {
    padding: 0;
    color: #0e3a2c;
    font-size: 2rem;
    font-weight: 700;
}

.compare-page + div .my-5 {
    margin: 0 !important;
}

.compare-page + div .my-5 > div {
    flex-wrap: wrap;
    gap: 1rem !important;
}

.compare-page + div a {
    width: 10.5rem;
}

.compare-page + div img {
    width: 100%;
    height: auto;
}

@media (max-width: 800px) {
    .compare-main {
        padding: 5rem 2.5rem 6rem;
    }

    .compare-main > section + section {
        margin-top: 5rem;
    }

    .compare-trust__grid {
        gap: 1.5rem;
    }
}

@media (max-width: 640px) {
    .compare-main {
        padding: 4rem 1.5rem 5rem;
    }

    .compare-main > section + section {
        margin-top: 4rem;
    }

    .compare-trust {
        padding: 3.5rem 0;
    }

    .compare-trust__heading {
        margin-bottom: 2.75rem;
    }

    .compare-trust__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    /* Each row becomes a heading with the two answers side by side. */
    .compare-table tr {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .compare-table thead td {
        display: none;
    }

    .compare-table tbody th {
        grid-column: 1 / -1;
        width: auto;
        padding: 1.5rem 0 0.5rem;
        border-bottom: 0;
    }

    .compare-table th,
    .compare-table td {
        padding-right: 0.75rem;
        padding-left: 0.75rem;
        font-size: 0.9375rem;
    }
}
