/* Photo homepage: shared by the normal top page and comparison A. */
.photo-fv {
    background: #fff;
    padding-bottom: 22px;
    overflow: hidden
}

.photo-fv-ribbon {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 264px
}

.photo-fv-track {
    display: flex;
    width: max-content;
    animation: photo-ribbon 40s linear infinite
}

.photo-fv-group {
    display: flex;
    flex: none
}

.photo-fv-group img {
    display: block;
    flex: none;
    width: 264px;
    height: 264px;
    object-fit: cover
}

@keyframes photo-ribbon {
    to {
        transform: translateX(-50%)
    }
}

.photo-fv-brand {
    position: relative;
    z-index: 1;
    width: 540px;
    max-width: calc(100% - 32px);
    margin: -104px auto 0;
    padding: 0 20px;
    background: transparent;
    text-align: center;
    pointer-events: none
}

.photo-fv-brand h1 {
    margin: 0;
    line-height: 1
}

.photo-fv-brand h1 img {
    display: block;
    width: 330px;
    max-width: 100%;
    height: auto;
    margin: auto;
    filter: drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff)
}

.photo-fv-brand .client-brand-labels {
    font-size: 18px;
    gap: 8px;
    margin-top: 4px
}

.photo-fv-brand .client-brand-labels span {
    padding: 4px 18px
}

.photo-fv-brand .client-brand-tagline {
    font-size: 27px;
    line-height: 1.5;
    margin: 8px 0 0;
    letter-spacing: .04em
}

.photo-fv-contact {
    padding: 24px 20px 28px;
    background: var(--color-cta-bg);
    border: 0
}

.photo-fv-contact>div.relative {
    max-width: 820px;
    padding: 0
}

.photo-fv-contact .mb-4:empty {
    display: none
}

.photo-fv-contact p.text-center {
    font-size: 34px;
    line-height: 1.5;
    margin: 0 0 18px
}

.photo-fv-contact>div.relative>div.flex {
    flex-direction: row;
    align-items: stretch;
    gap: 20px
}

.photo-fv-contact .cta-phone,
.photo-fv-contact>div.relative>div.flex>div {
    flex: 1;
    width: 0;
    min-width: 0
}

.photo-fv-contact .cta-phone {
    padding: 12px 16px;
    border-radius: 10px;
    box-shadow: 0 5px 0 #0002
}

.photo-fv-contact .cta-phone .client-phone-icon {
    width: 30px;
    height: 30px
}

.photo-fv-contact .client-contact-line {
    width: 100%;
    padding: 12px 16px;
    gap: 10px;
    border-radius: 10px;
    font-size: 23px;
    box-shadow: 0 5px 0 #049b40
}

.photo-fv-contact .client-line-icon {
    width: 42px;
    height: 42px
}

.photo-fv-contact .text-xs {
    font-size: 13px
}

/* The top and final contact bands share their heading size and spacing. */
[data-home-layout="current"] section.bg-cta-bg {
    padding-top: 28px;
    padding-bottom: 32px
}

[data-home-layout="current"] section.bg-cta-bg p.text-center {
    font-size: 34px
}

@media(min-width:761px) and (max-width:1100px) {

    .photo-fv-ribbon,
    .photo-fv-group img {
        height: 240px
    }

    .photo-fv-group img {
        width: 240px
    }

    .photo-fv-brand {
        margin-top: -96px;
        width: 500px
    }

    .photo-fv-brand h1 img {
        width: 310px
    }

    .photo-fv-contact .client-contact-line {
        font-size: 22px
    }
}

@media(max-width:760px) {
    .photo-fv {
        padding-bottom: 18px
    }

    .photo-fv-ribbon,
    .photo-fv-group img {
        height: 166px
    }

    .photo-fv-group img {
        width: 166px
    }

    .photo-fv-brand {
        max-width: calc(100% - 28px);
        width: 400px;
        margin-top: -60px;
        padding: 0 10px
    }

    .photo-fv-brand h1 img {
        width: 250px
    }

    .photo-fv-brand .client-brand-labels {
        font-size: 15px;
        gap: 5px;
        margin-top: 4px
    }

    .photo-fv-brand .client-brand-labels span {
        padding: 3px 12px
    }

    .photo-fv-brand .client-brand-tagline {
        font-size: 23px;
        margin-top: 8px;
        letter-spacing: .02em
    }

    .photo-fv-contact {
        padding: 20px 16px 24px
    }

    .photo-fv-contact p.text-center {
        font-size: 21px;
        margin-bottom: 15px
    }

    .photo-fv-contact>div.relative>div.flex {
        flex-direction: column;
        gap: 12px
    }

    .photo-fv-contact .cta-phone,
    .photo-fv-contact>div.relative>div.flex>div {
        width: 100%;
        flex: auto
    }

    .photo-fv-contact .cta-phone {
        padding: 9px 12px
    }

    .photo-fv-contact .cta-phone>span.hidden {
        display: flex
    }

    .photo-fv-contact .cta-phone>span.sm\:hidden {
        display: none
    }

    .photo-fv-contact .client-contact-line {
        font-size: 21px;
        padding: 8px 14px
    }

    [data-home-layout="current"] section.bg-cta-bg {
        padding-top: 20px;
        padding-bottom: 24px
    }

    [data-home-layout="current"] section.bg-cta-bg p.text-center {
        font-size: 21px
    }
}

@media(max-width:360px) {
    .photo-fv-brand .client-brand-labels {
        gap: 4px;
        font-size: 14px
    }

    .photo-fv-brand .client-brand-labels span {
        padding: 3px 10px
    }

    .photo-fv-brand .client-brand-tagline {
        font-size: 21px
    }

    .photo-fv-contact p.text-center {
        font-size: 18px
    }

    [data-home-layout="current"] section.bg-cta-bg p.text-center {
        font-size: 18px
    }
}

@media(prefers-reduced-motion:reduce) {
    .photo-fv-track {
        animation: none
    }
}
