:root {
    --nrl-public-body-size: clamp(1.5rem, .18vw + 1.44rem, 1.7rem);
    --nrl-public-h1-size: clamp(3.8rem, 4.8vw, 6rem);
    --nrl-public-h2-size: clamp(3rem, 3.2vw, 4.5rem);
    --nrl-public-h3-size: clamp(2rem, 1.55vw, 2.6rem);
    --nrl-public-h4-size: clamp(1.7rem, 1.05vw, 2.1rem);
    --nrl-public-copy-line-height: 1.72;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    max-width: 100%;
    overflow-x: clip;
}

body {
    font-size: var(--nrl-public-body-size);
    line-height: var(--nrl-public-copy-line-height);
    max-width: 100%;
    overflow-x: clip;
}

#wrap,
main {
    width: 100%;
    min-width: 0;
}

main img,
footer img {
    max-width: 100%;
}

body #wrap h1,
body #wrap h2,
body #wrap h3,
body #wrap h4 {
    font-family: Arial, Helvetica, sans-serif;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

body #wrap h1 {
    font-size: var(--nrl-public-h1-size) !important;
    letter-spacing: -.035em !important;
    line-height: 1.08 !important;
}

body #wrap h2 {
    font-size: var(--nrl-public-h2-size) !important;
    letter-spacing: -.025em !important;
    line-height: 1.14 !important;
}

@media (min-width: 992px) {
    body #wrap .nrl-home .nrl-highlight-content h2 {
        font-size: clamp(22px, 1.8vw, 26px) !important;
        font-weight: 600;
        letter-spacing: -.01em !important;
        line-height: 1.3 !important;
    }
}

body #wrap h3 {
    font-size: var(--nrl-public-h3-size) !important;
    letter-spacing: -.012em !important;
    line-height: 1.25 !important;
}

body #wrap h4 {
    font-size: var(--nrl-public-h4-size) !important;
    letter-spacing: -.006em !important;
    line-height: 1.32 !important;
}

body #wrap p {
    font-size: var(--nrl-public-body-size) !important;
    line-height: var(--nrl-public-copy-line-height) !important;
}

/* Accessible product-catalog pagination. */
.nrl-product-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin: 1rem 0 5rem;
}

.nrl-product-pagination__pages {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
}

.nrl-product-pagination__page,
.nrl-product-pagination__arrow {
    display: inline-flex;
    min-width: 4.4rem;
    min-height: 4.4rem;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    padding: .75rem 1.2rem;
    border: 1px solid #cbd5e1;
    border-radius: .8rem;
    background: #fff;
    color: #071f39;
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    transition: transform .2s ease, border-color .2s ease, background-color .2s ease, color .2s ease;
}

.nrl-product-pagination__arrow {
    min-width: 11rem;
}

.nrl-product-pagination__page:hover,
.nrl-product-pagination__arrow:hover,
.nrl-product-pagination__page.is-current {
    border-color: #0d8a55;
    background: #0d8a55;
    color: #fff;
    text-decoration: none;
    transform: translateY(-2px);
}

.nrl-product-pagination__arrow.is-disabled {
    cursor: not-allowed;
    opacity: .45;
}

.nrl-product-pagination__ellipsis {
    min-width: 2rem;
    color: #64748b;
    font-size: 1.6rem;
    text-align: center;
}

/* Homepage service media: preserve every edge of the CMS-selected artwork. */
.nrl-home .nrl-process-media {
    display: flex;
    width: min(100%, 34rem);
    aspect-ratio: 3 / 4;
    align-items: center;
    justify-content: center;
    margin-inline: auto;
    background: #fff;
}

.nrl-home .nrl-process-media > img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
}

/* Homepage product media: large, uncropped product art with a predictable card height. */
.nrl-home .nrl-aqua-product__image {
    min-height: 0;
    aspect-ratio: 6 / 5;
    padding: .65rem;
    background: #fff;
}

.nrl-home .nrl-aqua-product__image img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    object-position: center;
}

@media (max-width: 640px) {
    :root {
        --nrl-public-body-size: 1.55rem;
        --nrl-public-h1-size: clamp(3.2rem, 10vw, 4.2rem);
        --nrl-public-h2-size: clamp(2.6rem, 8vw, 3.5rem);
        --nrl-public-h3-size: clamp(1.9rem, 5.8vw, 2.4rem);
        --nrl-public-h4-size: clamp(1.65rem, 4.8vw, 2rem);
    }

    .nrl-home .nrl-process-media {
        width: min(100%, 28rem);
    }

    .nrl-home .nrl-aqua-product__image {
        aspect-ratio: 6 / 5;
    }

    main .container,
    main .container-fluid {
        padding-right: 20px;
        padding-left: 20px;
    }

    .nrl-product-pagination {
        align-items: stretch;
        gap: .65rem;
    }

    .nrl-product-pagination__arrow {
        min-width: 4.4rem;
        padding-inline: .9rem;
    }

    .nrl-product-pagination__arrow span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@supports not (text-wrap: balance) {
    body #wrap h1,
    body #wrap h2,
    body #wrap h3,
    body #wrap h4 {
        text-wrap: wrap;
    }
}
