/* Services */
.services {
    background-color: var(--background-secondary);
    transition: background-color var(--transition-speed);
}

.services .display-1 {
    max-width: 900px;
}

.services .cards {
    margin-top: 3rem;
    list-style-type: none;
}

.services .cards .card {
    display: flex;
    gap: 1rem;
}

.services .cards .card-icon {
    width: 3.5rem;
    min-width: 3.5rem;
    height: 3.5rem;
    min-height: 3.5rem;
    background-color: var(--accent);
    color: var(--palette-primary-500);
    display: flex;
    align-items: center;
    justify-content: center;
}

.services .cards .card-icon svg {
    width: 2rem;
    height: 2rem;
}

.services .cards .card-title {
    font-weight: 600;
    margin-bottom: .25rem;
    color: var(--content-primary);
    transition: color var(--transition-speed);
}

.services .cards .body-2 {
    margin-bottom: 0;
}

.services .card-title .icon-link {
    padding-top: .25rem;
    padding-bottom: .25rem;
    padding-left: 0;
    width: max-content;
}

.services .card-title .icon-link span {
    padding: .5rem 0;
}

@media screen and (min-width: 1000px) {
    .services .cards {
        gap: 3rem;
    }
}

/* About */
.about .cards {
    margin-top: 3rem;
    list-style-type: none;
}

.about .card {
    padding: 3rem 2rem;
    background-color: var(--background-secondary);
    transition: background-color var(--transition-speed);
}

.about .card-icon {
    display: flex;
    padding: 0.75rem;
    width: 3.5rem;
    height: 3.5rem;
    background-color: var(--accent);
    color: rgb(7, 41, 71);
    transition: background-color var(--transition-speed), color var(--transition-speed);
}

.about .card-icon svg {
    width: 2rem;
    height: 2rem;
}

.about .card-title {
    font-weight: 600;
    margin-top: 1em;
    margin-bottom: 0.5em;
    color: var(--content-primary);
    transition: color var(--transition-speed);
}

/* SBS */
#sell {
    background-color: var(--background-secondary);
    transition: background-color var(--transition-speed)
}

#sell .panel-image {
    object-fit: contain
}

/* Buy */
.buy .content>.body-2,
.buy .content>.display-1,
.buy .content>.topper {
    text-align: center;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto
}

.buy .categories {
    margin-top: 4rem;
}

.buy .category {
    position: relative;
    display: flex;
    background-color: var(--background-secondary);
    transition: background-color .3s;
    overflow: hidden
}

.buy .category .body-1 {
    margin: 0;
}

.buy .category:hover .category-image {
    transform: scale(1.05)
}

.buy .category-content {
    position: absolute;
    top: 0;
    left: 0;
    padding-top: 2rem;
    padding-left: 2rem
}

.buy .category-label {
    color: var(--content-primary);
    font-weight: 600;
    transition: color .3s
}

.buy .category-image {
    width: 100%;
    height: auto;
    transition: transform .3s;
    height: 320px;
    width: auto;
    margin-left: auto
}

@media screen and (min-width:600px) {
    .buy .category-image {
        width: 100%;
        height: auto
    }
}

/* Loans */
#loans {
    background-color: var(--background-secondary);
    transition: background-color var(--transition-speed)
}

@media screen and (min-width:1000px) {
    #loans .panel.copy {
        order: 1
    }
}

/* Reviews */
.reviews .content>.body-2,
.reviews .content>.display-1,
.reviews .content>.topper {
    text-align: center;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto
}

.reviews .glide {
    margin-top: 3rem
}

.reviews .glide__arrows {
    margin-top: 1rem;
}

.reviews .glide__arrow {
    background-color: var(--background-secondary);
    width: 3rem;
    height: 3rem;
    color: var(--content-primary);
    transition: color var(--transition-speed), background-color var(--transition-speed)
}

.reviews .glide__arrow--disabled {
    opacity: .5
}

.reviews .quote {
    position: relative;
    margin: 0;
    padding: 2rem;
    background-color: var(--background-secondary);
    color: var(--content-primary);
    overflow: hidden;
    transition: background-color .3s, color .3s
}

.reviews .quote>p {
    margin: 0;
    margin-bottom: 1.5rem;
    font-style: italic;
    color: var(--content-primary);
    transition: color .3s
}

.reviews .quote footer {
    position: relative;
    font-size: .875em;
    line-height: 1.375em
}

.reviews .quote footer b {
    display: block;
    font-weight: 600
}

.reviews .quote-icon {
    position: absolute;
    top: 0;
    right: 0;
    height: calc(100% + 2rem);
    fill: var(--background-tertiary);
    transition: fill var(--transition-speed);
    opacity: .75
}

.reviews .stars {
    margin-bottom: 1.5rem;
    display: flex;
    justify-content: center;
    color: var(--accent);
}

/* Call to action */
.final-cta {
    background-color: var(--background-tertiary);
    position: relative
}

.final-cta .background::before {
    content: "";
    display: block;
    background-image: url(/assets/images/rcm-bars.webp);
    background-size: cover;
    background-position: center center;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    filter: saturate(0)
}

.final-cta .background::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgb(7, 41, 71, .85);
    filter: saturate(1)
}

.final-cta .content {
    position: relative;
    z-index: 1
}

.final-cta .box {
    background-color: var(--background-primary);
    transition: background-color var(--transition-speed);
    padding: var(--section-padding) var(--page-margin)
}

.final-cta .content>.body-2,
.final-cta .content>.display-1,
.final-cta .content>.topper {
    text-align: center;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto
}

.final-cta .cta {
    margin-top: 2rem;
}

/* Reusable */
.sbs .panel.copy {
    text-align: center
}

.sbs .panel.graphic {
    min-height: 400px;
    border-radius: 1rem;
    position: relative
}

.sbs .panel-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover
}

.sbs .cta {
    margin-top: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem
}

.sbs .accordion {
    margin-top: 3rem;
    border-top: 1px solid var(--border);
    transition: border-color var(--transition-speed);
    text-align: left
}

.sbs .accordion .accordion-item {
    border-bottom: 1px solid var(--border);
    transition: border-color var(--transition-speed)
}

.sbs .accordion .accordion-trigger {
    display: flex;
    width: 100%;
    gap: 1rem;
    padding: 1rem;
    font-family: inherit;
    text-align: left;
    margin: 0
}

.sbs .accordion .accordion-label {
    color: var(--content-primary);
    width: 100%;
    font-weight: 600;
    transition: color var(--transition-speed)
}

.sbs .accordion .accordion-icon {
    display: flex;
    width: 24px;
    height: 24px;
    transform: rotate(90deg);
    color: var(--content-primary);
    transition: transform var(--transition-speed), color var(--transition-speed)
}

.sbs .accordion .accordion-item.open .accordion-icon {
    transform: rotate(270deg)
}

.sbs .accordion .accordion-content {
    padding-left: 1rem;
    padding-right: 2rem;
    display: grid;
    grid-template-rows: 0fr;
    visibility: hidden;
    transition: grid-template-rows var(--transition-speed) cubic-bezier(.25, .1, .25, 1), visibility 0s linear var(--transition-speed)
}

.sbs .accordion .accordion-item.open .accordion-content {
    grid-template-rows: 1fr;
    visibility: visible;
    transition: grid-template-rows var(--transition-speed) cubic-bezier(.25, .1, .25, 1);
    padding-bottom: 1rem
}

.sbs .accordion .accordion-item .accordion-content div {
    overflow: hidden
}

.sbs .accordion .accordion-item.open .accordion-content div {
    overflow: visible;
    animation: var(--transition-speed) accordion-overflow
}

@keyframes accordion-overflow {
    0% {
        overflow: hidden
    }

    100% {
        overflow: hidden
    }
}

@media screen and (min-width:600px) {
    .sbs .content {
        gap: 4rem
    }

    .sbs .cta {
        flex-direction: row
    }
}

@media screen and (min-width:1000px) {
    .sbs .panel.copy {
        text-align: left;
        padding: calc(var(--section-padding)/ 2) 0;
        order: -1
    }

    .sbs .cta {
        justify-content: flex-start
    }
}