/*
   =========================================================
   ZOOM PHOTO STUDIO
   SERVICE-PAGE.CSS v1.3
   =========================================================
*/


/*
   =========================================================
   SERVICE PAGE VARIABLES
   =========================================================
*/

.service_page {
    --service-gold: #b58b62;
    --service-cream: #fbf8f3;
    --service-soft: #f4eee7;
    --service-border: #e5ddd4;
    --service-border-dark: #ddd3c7;
    --service-text: #24211e;
    --service-muted: #655f59;

    background: #fbf8f4;
    color: var(--service-text);
}


/*
   =========================================================
   MATERNITY SERVICE MODIFIER
   =========================================================
*/

.service_page--maternity {
    --service-gold: #b58b62;
    --service-cream: #fbf8f3;
    --service-soft: #f4eee7;
    --service-border: #e5ddd4;
    --service-border-dark: #ddd3c7;
    --service-text: #24211e;
    --service-muted: #655f59;
}


/*
   =========================================================
   SHARED SERVICE PAGE STYLES
   =========================================================
*/

.service_page * {
    box-sizing: border-box;
}

.service_page img {
    display: block;
    width: 100%;
}

.service_page h1,
.service_page h2 {
    font-family: var(--zoom-serif);
    font-weight: 400;
}

.service_kicker {
    margin: 0 0 14px;
    font-size: var(--zoom-kicker-size);
    font-weight: 600;
    letter-spacing: 0.16em;
    text-align: center;
    text-transform: uppercase;
}

.service_kicker.left {
    text-align: left;
}

.service_section_title {
    margin: 0 0 42px;
    font-size: 2.5rem;
    line-height: 1.1;
    text-align: center;
}

.service_button {
    display: inline-flex;
    min-height: 48px;
    padding: 12px 24px;
    align-items: center;
    justify-content: center;
    font-size: 0.5625rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.service_button_dark {
    background: #211f1c;
    color: #ffffff;
}

.service_text_link {
    display: inline-block;
    color: #211f1c;
    font-size: 0.5625rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}


/*
   =========================================================
   HEADER / HERO
   =========================================================
*/

.service_hero {
    display: grid;
    grid-template-columns: 41% 59%;
    min-height: 690px;
    background: var(--service-cream);
}

.service_hero_copy {
    display: flex;
    padding: 58px clamp(34px, 5vw, 78px);
    flex-direction: column;
    justify-content: center;
}

.service_eyebrow {
    margin: 0;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.service_hero h1 {
    margin: 18px 0 0;
    font-size: clamp(3.25rem, 5.2vw, 4.875rem);
    line-height: 1.01;
}

.service_script {
    margin: 17px 0 0;
    font-family: var(--zoom-serif);
    font-size: 1.625rem;
    font-style: italic;
    line-height: 1.25;
}

.service_lead {
    max-width: 520px;
    margin: 25px 0 0;
    color: var(--service-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.8;
}

.service_actions {
    display: flex;
    gap: 24px;
    align-items: center;
    margin-top: 27px;
}

.service_award {
    display: flex;
    margin-top: 35px;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: var(--zoom-body-size);
    letter-spacing: 0.07em;
    text-align: center;
    text-transform: uppercase;
}

.service_hero_image {
    min-height: 690px;
    overflow: hidden;
}

.service_hero_image img {
    height: 100%;
    object-fit: cover;
}


/*
   =========================================================
   JOURNEY
   =========================================================
*/

.service_journey {
    padding: 55px 0;
    background: #ffffff;
}

.service_icon_grid {
    display: grid;
}

.service_icon_grid_six {
    grid-template-columns: repeat(6, 1fr);
}

.service_icon_grid_four {
    grid-template-columns: repeat(4, 1fr);
}

.service_icon_grid article {
    text-align: center;
}

.service_journey article {
    padding: 0 18px;
    border-right: 1px solid var(--service-border);
}

.service_journey article:last-child {
    border-right: 0;
}

.service_line_icon {
    display: grid;
    width: 42px;
    height: 42px;
    margin: 0 auto 14px;
    place-items: center;
    color: var(--service-gold);
    font-family: Georgia, serif;
    font-size: 1.5625rem;
    font-weight: 400;
}

.service_icon_grid h3 {
    margin: 0 0 8px;
    font-size: var(--zoom-feature-title-size);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.service_icon_grid p {
    margin: 0;
    color: var(--service-muted);
    font-size: var(--zoom-card-copy-size);
    line-height: 1.65;
}


/*
   =========================================================
   ELEGANT
   =========================================================
*/

.service_elegant {
    padding: 62px 0;
    background: var(--service-cream);
}

.service_elegant_grid {
    display: grid;
    grid-template-columns: 0.8fr 2fr;
    gap: 42px;
    align-items: center;
}

.service_elegant_copy {
    padding-left: clamp(32px, 4vw, 70px);
}

.service_elegant_copy h2 {
    margin: 0;
    font-size: 2.5rem;
    line-height: 1.08;
}

.service_elegant_copy p {
    color: var(--service-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.8;
}

.service_elegant_images {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.service_elegant_images figure {
    height: 420px;
    margin: 0;
    overflow: hidden;
}

.service_elegant_images img {
    height: 100%;
    object-fit: cover;
}


/*
   =========================================================
   DRESSES
   =========================================================
*/

.service_dresses {
    display: grid;
    grid-template-columns: 1fr 0.92fr 0.72fr;
    background: #ffffff;
}

.service_dress_image {
    min-height: 475px;
    overflow: hidden;
}

.service_dress_image img {
    height: 100%;
    object-fit: cover;
}

.service_dress_copy {
    display: flex;
    padding: 52px;
    flex-direction: column;
    justify-content: center;
}

.service_dress_copy h2 {
    margin: 0;
    font-size: 2.5rem;
    line-height: 1.08;
}

.service_dress_copy p {
    color: var(--service-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.8;
}


/*
   =========================================================
   MEMORIES
   =========================================================
*/

.service_memories {
    padding: 38px 0;
    background: var(--service-soft);
}

.service_memories article {
    padding: 5px 25px;
    border-right: 1px solid var(--service-border);
}

.service_memories article:last-child {
    border-right: 0;
}


/*
   =========================================================
   LIFESTYLE
   =========================================================
*/

.service_lifestyle {
    background: #ffffff;
}

.service_lifestyle_grid {
    display: grid;
    grid-template-columns: 31% 34.5% 34.5%;
    align-items: stretch;
    gap: 1px;
    max-width: none;
    padding: 0;
    background: #ffffff;
}

.service_lifestyle_copy {
    display: flex;
    padding: 70px 60px;
    flex-direction: column;
    justify-content: center;
}

.service_lifestyle_copy .service_kicker {
    margin-bottom: 18px;
}

.service_lifestyle_copy h2 {
    margin: 0 0 14px;
    font-size: 2.5rem;
    line-height: 1.08;
}

.service_lifestyle_copy p {
    margin: 0 0 8px;
    color: var(--service-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.8;
}

.service_lifestyle_copy .service_text_link {
    margin-top: 2px;
}

.service_lifestyle_grid figure {
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.service_lifestyle_grid figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/*
   STUDIO
*/

.service_studio {
    position: relative;
    max-height: none;
    padding-top: 22px;
    padding-bottom: 22px;
    background: var(--service-cream);
    border-top: 1px solid var(--service-gold);
    border-bottom: 1px solid var(--service-gold);
}

.service_studio img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}


/*
   =========================================================
   TIMING
   =========================================================
*/

.service_timing {
    padding: 55px 32px;
    background: #ffffff;
}

.service_timing_grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
    max-width: none;
    margin: 0 auto;
    padding: 0;
    align-items: stretch;
}

/*
   The existing timing card contains:
   1. Timing copy
   2. Portrait image

   Turn those into two equal columns.
*/

.service_timing_card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    min-height: 0;
    overflow: visible;
    background: transparent;
    border: 0;
}

/*
   TIMING COPY CARD
*/

.service_timing_copy {
    display: flex;
    min-height: 520px;
    padding: 48px;
    flex-direction: column;
    justify-content: center;
    background: var(--service-cream);
    border: 1px solid var(--service-gold);
}

.service_timing_copy .service_kicker {
    margin-bottom: 18px;
}

.service_timing h2 {
    margin: 0;
    font-size: 2.5rem;
    line-height: 1.08;
}

.service_timing p {
    color: var(--service-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.8;
}

.service_timing_copy p + p {
    margin-top: 12px;
}

.service_timing_copy .service_text_link {
    margin-top: 2px;
}


/*
   TIMING IMAGE CARD
*/

.service_timing_card > img {
    display: block;
    width: 100%;
    height: 520px;
    min-height: 0;
    border: 1px solid var(--service-gold);
    object-fit: cover;
    object-position: center center;
}


/*
   WHAT'S INCLUDED CARD
*/

.service_included {
    display: flex;
    min-height: 520px;
    padding: 48px;
    flex-direction: column;
    justify-content: center;
    background: var(--service-cream);
    border: 1px solid var(--service-gold);
}

.service_included .service_kicker {
    margin-bottom: 22px;
}

.service_included ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.service_included li {
    position: relative;
    margin: 0 0 17px;
    padding-left: 25px;
    font-size: var(--zoom-body-size);
    line-height: 1.6;
}

.service_included li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--service-gold);
    font-weight: 700;
}


/*
   =========================================================
   REVIEWS
   =========================================================
*/

.service_reviews {
    padding: 55px 0;
    background: var(--service-cream);
}

.service_reviews .service_kicker {
    margin: 0 0 28px;
    font-family: var(--zoom-serif);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0;
    text-align: center;
    text-transform: none;
}

.service_review_strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.service_review_strip blockquote {
    position: relative;
    margin: 0;
    padding: 32px;
    background: #ffffff;
    border: 1px solid var(--service-border-dark);
    font-size: var(--zoom-body-size);
    line-height: 1.75;
}

.service_review_strip blockquote p {
    margin: 0;
    color: var(--service-muted);
}

.service_quote {
    display: block;
    margin-bottom: 8px;
    color: var(--service-gold);
    font-family: Georgia, serif;
    font-size: 1.875rem;
    line-height: 1;
}

.service_review_strip cite {
    display: block;
    margin-top: 20px;
    font-size: var(--zoom-body-size);
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}


/*
   =========================================================
   FAQS
   =========================================================
*/

.service_faq {
    padding: 52px 0;
    background: var(--service-cream);
}

.service_faq_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}

.service_faq_image {
    order: 1;
    overflow: hidden;
}

.service_faq_list {
    order: 2;
    padding: 38px;
    background: #ffffff;
}

.service_faq_list > .service_kicker {
    margin: 0 0 24px;
    font-family: var(--zoom-serif);
    font-size: var(--zoom-faq-title-size);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
}

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

.service_faq_list details {
    border-bottom: 1px solid var(--service-border);
}

.service_faq_list summary {
    position: relative;
    padding: 15px 30px 15px 0;
    cursor: pointer;
    font-size: var(--zoom-faq-size);
    list-style: none;
}

.service_faq_list summary::-webkit-details-marker {
    display: none;
}

.service_faq_list summary::after {
    content: "+";
    position: absolute;
    right: 3px;
    color: var(--service-gold);
    font-size: 1.0625rem;
}

.service_faq_list details[open] summary::after {
    content: "−";
}

.service_faq_list details p {
    color: var(--service-muted);
    font-size: var(--zoom-faq-size);
    line-height: 1.7;
}

.service_faq_link {
    margin-top: 24px;
}


/*
   =========================================================
   CONSULTATION
   =========================================================
*/

.service_consultation {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    min-height: 285px;
    background: #eee3d8;
}

.service_consultation_image {
    overflow: hidden;
}

.service_consultation_image img {
    height: 100%;
    object-fit: cover;
}

.service_consultation_copy {
    display: flex;
    padding: 42px 55px;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.service_consultation_copy h2 {
    margin: 0 0 24px;
    font-size: 2.125rem;
    line-height: 1.15;
}


/*
   =========================================================
   GENERAL INFO
   =========================================================
*/

.service_general_info {
    padding: 30px 0;
    background: var(--service-cream);
}

.service_general_info article {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 10px;
    padding: 8px 22px;
    text-align: left;
    border-right: 1px solid var(--service-border);
}

.service_general_info article:last-child {
    border-right: 0;
}

.service_general_info .service_line_icon {
    margin: 0;
}

.service_general_info h3 {
    margin: 2px 0 5px;
}

.service_general_info p {
    font-size: var(--zoom-card-copy-size);
}


/*
   =========================================================
   TABLET
   =========================================================
*/


/*
   =========================================================
   HERO BUTTONS - HOMEPAGE STANDARD
   =========================================================
*/

.service_actions .service_button,
.service_actions .button {
    display: inline-flex;
    min-height: 48px;
    padding: 12px 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--zoom-charcoal);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.service_actions .service_button_dark,
.service_actions .button_dark {
    background: var(--zoom-charcoal);
    border-color: var(--zoom-charcoal);
    color: #ffffff;
}

.service_actions .service_button_outline,
.service_actions .button_outline {
    background: transparent;
    border-color: var(--zoom-charcoal);
    color: var(--zoom-charcoal);
}

.service_actions .service_button_dark:hover,
.service_actions .service_button_outline:hover,
.service_actions .button_dark:hover,
.service_actions .button_outline:hover {
    background: var(--zoom-bronze);
    border-color: var(--zoom-bronze);
    color: #ffffff;
}


@media (max-width: 1000px) {

    /*
       HEADER / HERO
       =========================================================
    */

    .service_hero {
        grid-template-columns: 1fr;
}

    .service_hero_copy {
        order: 2;
}

    .service_hero_image {
        min-height: 62vw;
}


    /*
       JOURNEY
       =========================================================
    */

    .service_icon_grid_six {
        grid-template-columns: repeat(3, 1fr);
        row-gap: 30px;
}

    .service_journey article:nth-child(3) {
        border-right: 0;
}


    /*
       ELEGANT
       =========================================================
    */

    .service_elegant_grid {
        grid-template-columns: 1fr;
}

    .service_elegant_copy {
        padding-right: clamp(32px, 4vw, 70px);
}


    /*
       DRESSES
       =========================================================
    */

    .service_dresses {
        grid-template-columns: 1fr 1fr;
}

    .service_dress_copy {
        grid-column: 1 / -1;
        order: -1;
}


    /*
       MEMORIES
       =========================================================
    */

    .service_icon_grid_four {
        grid-template-columns: repeat(2, 1fr);
        row-gap: 24px;
}

    .service_memories article:nth-child(2) {
        border-right: 0;
}


    /*
       LIFESTYLE
       =========================================================
    */

    .service_lifestyle_grid {
        grid-template-columns: 1fr 1fr;
        gap: 18px;
        padding: 0 28px 28px;
        background: #ffffff;
}

    .service_lifestyle_copy {
        grid-column: 1 / -1;
        padding: 55px 45px;
}

    .service_lifestyle_grid figure {
        width: 100%;
        margin: 0;
        padding: 0;
        overflow: hidden;
        border: 1px solid var(--service-gold);
        background: #ffffff;
}

    .service_lifestyle_grid figure img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: cover;
}


    /*
       STUDIO
       =========================================================
    */

    .service_studio {
        max-height: none;
        padding: 18px 0;
}

    .service_studio img {
        width: 100%;
        height: auto;
        border-top: 0px solid var(--service-gold);
        border-bottom: 0px solid var(--service-gold);
        object-fit: cover;
}


    /*
       TIMING
       =========================================================
    */

    .service_timing {
        background: #ffffff;
}

    .service_timing_grid {
        grid-template-columns: 1fr;
}

    .service_timing_card {
        grid-template-columns: 1.1fr 0.9fr;
        min-height: 500px;
        background: var(--service-cream);
        border: 1px solid var(--service-gold);
}

    .service_timing_copy {
        min-height: 500px;
        padding: 42px;
        background: var(--service-cream);
}

    .service_timing_card > img {
        min-height: 500px;
}

    .service_included {
        min-height: 0;
        padding: 42px;
        background: var(--service-cream);
        border: 1px solid var(--service-gold);
}


    /*
       REVIEWS
       =========================================================
    */

    .service_reviews {
        padding: 48px 0;
}

    .service_review_strip {
        gap: 14px;
}

    .service_review_strip blockquote {
        padding: 28px 24px;
}


    /*
       FAQS
       =========================================================
    */

    .service_faq_grid {
        grid-template-columns: 1fr 1fr;
}

    .service_faq_image {
        order: 1;
}

    .service_faq_list {
        order: 2;
}


    /*
       CONSULTATION
       =========================================================
    */

    .service_consultation {
        grid-template-columns: 1.3fr 1fr;
}


    /*
       GENERAL INFO
       =========================================================
    */

    .service_general_info article:nth-child(2) {
        border-right: 0;
}

}


/*
   =========================================================
   MOBILE
   =========================================================
*/

@media (max-width: 700px) {

    /*
       HEADER / HERO
       =========================================================
    */

    .service_hero_image {
        min-height: 92vw;
}

    .service_hero_copy {
        padding: 42px 24px;
}

    .service_hero h1 {
        font-size: 3.125rem;
}

    .service_script {
        font-size: 1.5rem;
}

    .service_actions {
        flex-direction: column;
        align-items: stretch;
}


    /*
       SHARED
       =========================================================
    */

    .service_section_title {
        font-size: 2rem;
}


    /*
       JOURNEY
       =========================================================
    */

    .service_journey {
        padding: 42px 28px;
}

    .service_journey .service_icon_grid_six {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0;
        padding: 0;
        overflow: visible;
        scroll-snap-type: none;
}

    .service_journey .service_icon_grid_six article {
        display: block;
        width: auto;
        padding: 22px 16px;
        border-right: 1px solid var(--service-border);
        border-bottom: 1px solid var(--service-border);
}

    .service_journey .service_icon_grid_six article:nth-child(2n) {
        border-right: 0;
}

    .service_journey .service_icon_grid_six article:nth-last-child(-n + 2) {
        border-bottom: 0;
}


    /*
       ELEGANT
       =========================================================
    */

    .service_elegant {
        padding: 45px 0;
}

    .service_elegant_grid {
        gap: 25px;
}

    .service_elegant_copy {
        padding: 0 24px;
}

    .service_elegant_copy h2 {
        font-size: 2.125rem;
}

    .service_elegant_images {
        display: flex;
        overflow-x: auto;
        padding-right: 50px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
}

    .service_elegant_images::-webkit-scrollbar {
        display: none;
}

    .service_elegant_images figure {
        flex: 0 0 74%;
        height: 112vw;
        scroll-snap-align: start;
}


    /*
       DRESSES
       =========================================================
    */

    .service_dresses {
        display: flex;
        padding: 0;
        flex-direction: column;
        background: #ffffff;
}

    .service_dress_copy {
        order: 1;
        padding: 45px 28px;
}

    .service_dress_copy h2 {
        font-size: 2.125rem;
}

    .service_dress_image {
        order: 2;
        width: auto;
        min-height: 0;
        margin: 0 28px 28px;
        padding: 0;
        overflow: hidden;
        border: 1px solid var(--service-gold);
        background: #ffffff;
}

    .service_dress_image:last-child {
        margin-bottom: 28px;
}

    .service_dress_image img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: initial;
}


    /*
       MEMORIES
       =========================================================
    */

    .service_icon_grid_four {
        grid-template-columns: 1fr 1fr;
}

    .service_memories article {
        padding: 12px;
        border-right: 0;
}


    /*
       LIFESTYLE
       =========================================================
    */

    .service_lifestyle {
        background: #ffffff;
}

    .service_lifestyle_grid {
        display: block;
        padding: 0 0 28px;
        background: #ffffff;
}

    .service_lifestyle_copy {
        padding: 45px 28px;
}

    .service_lifestyle_copy h2 {
        font-size: 2.125rem;
}

    .service_lifestyle_grid figure {
        width: auto;
        margin: 0 28px 28px;
        padding: 0;
        overflow: hidden;
        border: 1px solid var(--service-gold);
        background: #ffffff;
}

    .service_lifestyle_grid figure:last-child {
        margin-bottom: 0;
}

    .service_lifestyle_grid figure img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: initial;
}


    /*
       STUDIO
       =========================================================
    */

    .service_studio {
        max-height: none;
        margin: 0;
        padding: 12px 0;
        border-top: 1px solid var(--service-border-dark);
        border-bottom: 1px solid var(--service-border-dark);
        background: var(--service-cream);
}

    .service_studio img {
        display: block;
        width: 100%;
        height: auto;
        min-height: 70vw;
        border-top: 0px solid var(--service-gold);
        border-bottom: 0px solid var(--service-gold);
        object-fit: cover;
}


    /*
       TIMING
       =========================================================
    */

    .service_timing {
        padding: 40px 28px;
        background: #ffffff;
}

    .service_timing_grid {
        display: flex;
        width: 100%;
        padding: 0;
        flex-direction: column;
        gap: 28px;
}

    .service_timing_card {
        display: grid;
        grid-template-columns: 1fr;
        min-height: 0;
        gap: 28px;
        overflow: visible;
        background: transparent;
        border: 0;
}

    .service_timing_copy {
        display: block;
        width: 100%;
        min-height: 0;
        padding: 32px 28px;
        background: var(--service-cream);
        border: 1px solid var(--service-gold);
}

    .service_timing_copy h2 {
        font-size: 1.875rem;
        line-height: 1.12;
}

    .service_timing_card > img {
        display: block;
        width: 100%;
        height: auto;
        min-height: 0;
        border: 1px solid var(--service-gold);
        object-fit: initial;
}

    .service_included {
        display: block;
        width: 100%;
        min-height: 0;
        padding: 32px 28px;
        background: var(--service-cream);
        border: 1px solid var(--service-gold);
}


    /*
       REVIEWS
       =========================================================
    */

    .service_reviews {
        padding: 40px 28px;
        background: var(--service-cream);
}

    .service_reviews .zoom_container {
        padding: 0;
}

    .service_reviews .service_kicker {
        margin-bottom: 24px;
        font-size: 2.125rem;
}

    .service_review_strip {
        display: flex;
        overflow-x: auto;
        padding-right: 16%;
        gap: 16px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
}

    .service_review_strip::-webkit-scrollbar {
        display: none;
}

    .service_review_strip blockquote {
        flex: 0 0 84%;
        padding: 28px;
        scroll-snap-align: start;
        background: #ffffff;
        border: 1px solid var(--service-border-dark);
}


    /*
       FAQS
       =========================================================
    */

    .service_faq {
        padding: 40px 0;
        background: var(--service-cream);
}

    .service_faq_grid {
        display: flex;
        flex-direction: column;
}

    .service_faq_image {
        order: 1;
        width: auto;
        min-height: 0;
        margin: 0 28px 28px;
        overflow: hidden;
        border: 1px solid var(--service-gold);
        background: #ffffff;
}

    .service_faq_image img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: initial;
}

    .service_faq_list {
        order: 2;
        margin: 0 28px;
        padding: 32px 28px;
        background: #ffffff;
        border: 1px solid var(--service-border);
}

    .service_faq_list > .service_kicker {
        margin-bottom: 22px;
        font-size: 2.125rem;
}


    /*
       CONSULTATION
       =========================================================
    */

    .service_consultation {
        grid-template-columns: 1fr;
}

    .service_consultation_image {
        min-height: 45vw;
}

    .service_consultation_copy {
        padding: 36px 24px;
}

    .service_consultation_copy h2 {
        font-size: 1.875rem;
}


    /*
       GENERAL INFO
       =========================================================
    */

    .service_general_info .service_icon_grid_four {
        grid-template-columns: 1fr;
}

    .service_general_info article {
        padding: 12px;
        border-right: 0;
        border-bottom: 1px solid var(--service-border);
}

}


/*
   =========================================================
   SERVICE AWARDS
   =========================================================
*/

.service_awards {
    padding: 42px 0 52px;
    background: var(--zoom-warm-white);
}

.service_awards_kicker_rule {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
    max-width: 500px;
    margin: 0 auto 34px;
}

.service_awards_kicker_rule > span {
    height: 1px;
    background: var(--zoom-line);
}

.service_awards_kicker_rule p {
    margin: 0;
    color: var(--zoom-charcoal);
    font-size: 0.7188rem;
    font-weight: 700;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.service_awards_grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 3vw, 46px);
    max-width: 980px;
    margin: 0 auto;
}

.service_award_item {
    position: relative;
    display: grid;
    min-height: 175px;
    text-align: center;
    place-items: center;
}

.service_award_laurel {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(100%, 290px);
    height: auto;
    transform: translate(-50%, -50%);
    pointer-events: none;
    user-select: none;
}

.service_award_content {
    position: relative;
    z-index: 1;
    display: flex;
    width: 138px;
    padding: 10px 0 4px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.service_award_item strong {
    color: var(--zoom-charcoal);
    font-size: var(--zoom-body-size);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.service_award_item small {
    margin-top: 4px;
    color: var(--zoom-charcoal);
    font-size: var(--zoom-body-size);
    font-weight: 600;
    line-height: 1.4;
}

@media (max-width: 900px) {

    .service_awards_grid {
        gap: 12px;
    }

    .service_award_item {
        min-height: 155px;
    }

    .service_award_laurel {
        width: min(100%, 230px);
    }

    .service_award_content {
        width: 130px;
    }

}

@media (max-width: 720px) {

    .service_awards {
        padding: 38px 0 46px;
    }

    .service_awards_kicker_rule {
        gap: 18px;
        max-width: calc(100% - 40px);
        margin-bottom: 34px;
    }

    .service_awards_kicker_rule p {
        font-size: 0.75rem;
        white-space: nowrap;
    }

    .service_awards_grid {
        grid-template-columns: 1fr;
        gap: 24px;
        max-width: 240px;
        margin: 0 auto;
    }

    .service_award_item {
        min-height: 150px;
    }

    .service_award_laurel {
        width: 180px;
    }

    .service_award_content {
        width: 108px;
        padding: 4px 0 0;
    }

    .service_award_item strong {
        font-size: 0.8125rem;
        font-weight: 700;
        line-height: 1.45;
        letter-spacing: 0.02em;
    }

    .service_award_item small {
        margin-top: 3px;
        font-size: 0.8125rem;
        font-weight: 600;
        line-height: 1.3;
    }

}

@media (max-width: 390px) {

    .service_awards_kicker_rule {
        gap: 12px;
        max-width: calc(100% - 30px);
    }

    .service_awards_kicker_rule p {
        font-size: 0.6875rem;
        letter-spacing: 0.13em;
    }

    .service_awards_grid {
        gap: 22px;
    }

    .service_award_item {
        min-height: 140px;
    }

    .service_award_laurel {
        width: 170px;
    }

    .service_award_content {
        width: 102px;
    }

    .service_award_item strong,
    .service_award_item small {
        font-size: 0.75rem;
    }

}


/* ============================================================
ZOOM PHOTO STUDIO
service-page-mother-and-me-additions.css
Version 1.0
============================================================ */

.service_page--mother-and-me {
--service-mm-gold:var(--zoom-bronze);
--service-mm-cream:var(--zoom-ivory);
--service-mm-border:var(--zoom-line);
--service-mm-text:var(--zoom-charcoal);
--service-mm-muted:var(--zoom-muted);
background:var(--zoom-warm-white);
color:var(--service-mm-text);
}

.service_page--mother-and-me img {display:block;width:100%;}
.service_page--mother-and-me h1,
.service_page--mother-and-me h2 {font-family:var(--zoom-serif);font-weight:400;}
.service_mm_kicker_left{text-align:left;}
.service_mm_gold_rule{display:block;width:2.75rem;height:1px;margin:1.25rem 0 1.75rem;background:var(--service-mm-gold);}
.service_mm_emphasis{color:var(--service-mm-text);font-weight:600;letter-spacing:.01em;text-transform:uppercase;}
.service_mm_line_icon{display:inline-flex;width:2.8rem;height:2.8rem;align-items:center;justify-content:center;color:var(--service-mm-gold);}
.service_mm_line_icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}

.service_mm_hero{display:grid;grid-template-columns:44% 56%;min-height:44rem;background:var(--service-mm-cream);border-bottom:1px solid var(--service-mm-border);}
.service_mm_hero_copy{display:flex;padding:clamp(4rem,6vw,7rem) clamp(2.5rem,5vw,6rem);flex-direction:column;justify-content:center;align-items:flex-start;}
.service_mm_hero h1{max-width:9.5em;margin:1.1rem 0 0;font-size:clamp(3.2rem,4.8vw,5.5rem);line-height:.98;}
.service_mm_hero_script{margin:1.2rem 0 0;font-family:var(--zoom-serif);font-size:clamp(1.65rem,2.2vw,2.4rem);font-style:italic;line-height:1.2;}
.service_mm_hero_text{max-width:34rem;margin:1.8rem 0 0;color:var(--service-mm-muted);font-size:var(--zoom-body-size);line-height:var(--zoom-body-line);}
.service_mm_hero_text p{margin:0;}
.service_mm_hero_actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem;}
.service_mm_hero_image{min-height:44rem;margin:0;overflow:hidden;}
.service_mm_hero_image img{height:100%;object-fit:cover;object-position:center;}

.service_mm_benefits{padding:2.6rem 0;background:#fff;border-bottom:1px solid var(--service-mm-border);}
.service_mm_benefits_grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));}
.service_mm_benefit{padding:.5rem 1.4rem;text-align:center;border-right:1px solid var(--service-mm-border);}
.service_mm_benefit:last-child{border-right:0;}
.service_mm_benefit .service_mm_line_icon{width:2.35rem;height:2.35rem;margin-bottom:.7rem;}
.service_mm_benefit h2{margin:0;font-family:var(--zoom-sans);font-size:.75rem;font-weight:700;letter-spacing:.04em;line-height:1.45;text-transform:uppercase;}
.service_mm_benefit p{margin:.7rem auto 0;color:var(--service-mm-muted);font-size:.875rem;line-height:1.65;}

.service_mm_together{padding:4.8rem 0;background:var(--zoom-warm-white);}
.service_mm_together_grid{display:grid;grid-template-columns:.9fr 1.7fr;gap:clamp(2.5rem,5vw,5.5rem);align-items:center;}
.service_mm_together_copy{padding-left:1rem;}
.service_mm_together_copy h2{max-width:8em;margin:0;font-size:clamp(2.8rem,4vw,4.5rem);line-height:1;}
.service_mm_together_copy p{color:var(--service-mm-muted);line-height:var(--zoom-body-line);}
.service_mm_together_copy .service_mm_emphasis{color:var(--service-mm-text);}
.service_mm_together_copy .button{margin-top:1.2rem;}
.service_mm_together_images{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;}
.service_mm_together_images figure{min-height:31rem;margin:0;overflow:hidden;border:1px solid var(--service-mm-gold);box-shadow:0 .55rem 1.6rem rgba(40,32,27,.08);}
.service_mm_together_images img{height:100%;object-fit:cover;}

.service_mm_portrait{padding:4.8rem 0;background:var(--service-mm-cream);border-top:1px solid var(--service-mm-border);border-bottom:1px solid var(--service-mm-border);}
.service_mm_portrait_grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr) minmax(240px,.42fr);gap:clamp(1.5rem,2.5vw,2.8rem);align-items:stretch;}
.service_mm_portrait_main{height:46rem;margin:0;overflow:hidden;border:1px solid var(--service-mm-gold);}
.service_mm_portrait_main img{height:100%;object-fit:cover;}
.service_mm_portrait_copy{display:flex;padding:2rem 1.5rem;flex-direction:column;justify-content:center;align-items:flex-start;}
.service_mm_portrait_copy h2{max-width:8em;margin:0;font-size:clamp(2.8rem,4vw,4.3rem);line-height:1;}
.service_mm_portrait_copy p{max-width:36rem;color:var(--service-mm-muted);line-height:var(--zoom-body-line);}
.service_mm_portrait_copy .service_mm_emphasis{color:var(--service-mm-text);}
.service_mm_portrait_copy .button{margin-top:1.25rem;}
.service_mm_portrait_thumbs{display:grid;height:46rem;grid-template-rows:repeat(2,minmax(0,1fr));gap:1rem;}
.service_mm_portrait_thumbs figure{margin:0;overflow:hidden;border:1px solid var(--service-mm-gold);}
.service_mm_portrait_thumbs img{height:100%;object-fit:cover;}

.service_mm_gallery{padding:4.8rem 0;background:#fff;}
.service_mm_gallery_grid{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:.8rem;align-items:stretch;}
.service_mm_gallery_quote{display:flex;margin:0;padding:clamp(2rem,4vw,4.2rem);flex-direction:column;justify-content:center;background:var(--service-mm-cream);border:1px solid var(--service-mm-border);}
.service_mm_quote_mark{color:var(--service-mm-gold);font-family:var(--zoom-serif);font-size:4rem;line-height:.7;}
.service_mm_gallery_quote p{margin:1.3rem 0 0;font-family:var(--zoom-serif);font-size:clamp(2rem,2.7vw,3.2rem);line-height:1.03;}
.service_mm_gallery_image{min-height:33rem;margin:0;overflow:hidden;border:1px solid var(--service-mm-gold);}
.service_mm_gallery_image img{height:100%;object-fit:cover;}

.service_mm_faq{padding:4.8rem 0;background:var(--service-mm-cream);}
.service_mm_faq_grid{display:block;overflow:hidden;background:#fff;border:1px solid var(--service-mm-border);}
.service_mm_faq_panel{display:flex;max-width:72rem;margin:0 auto;padding:clamp(2.5rem,4.5vw,5rem);flex-direction:column;justify-content:center;background:#fff;}
.service_mm_faq_panel h2{margin:0 0 2rem;font-size:var(--zoom-heading-small);line-height:1.05;}
.service_mm_faq_link{margin-top:2rem;}

.service_mm_memories{padding:0 0 4.8rem;background:var(--service-mm-cream);}
.service_mm_memories_grid{display:grid;grid-template-columns:.82fr 1.18fr;min-height:25rem;background:#fff;border:1px solid var(--service-mm-border);}
.service_mm_memories_copy{display:flex;padding:clamp(2.5rem,5vw,5rem);flex-direction:column;justify-content:center;align-items:flex-start;}
.service_mm_memories_copy h2{margin:0;font-size:clamp(2.3rem,3.2vw,3.6rem);line-height:1.02;}
.service_mm_memories_copy p{color:var(--service-mm-muted);line-height:var(--zoom-body-line);}
.service_mm_memories_image{min-height:25rem;margin:0;overflow:hidden;}
.service_mm_memories_image img{height:100%;object-fit:cover;}

.service_mm_consultation{display:grid;grid-template-columns:1.15fr .95fr .65fr;min-height:20rem;background:#eee3d8;border-top:1px solid var(--service-mm-border);border-bottom:1px solid var(--service-mm-border);}
.service_mm_consultation_image{margin:0;overflow:hidden;}
.service_mm_consultation_image img{height:100%;object-fit:cover;}
.service_mm_consultation_copy{display:flex;padding:clamp(2.2rem,4vw,4.2rem);flex-direction:column;justify-content:center;align-items:flex-start;}
.service_mm_consultation_copy h2{margin:0;font-size:clamp(2.2rem,3vw,3.35rem);line-height:1.05;}
.service_mm_consultation_copy p{color:var(--service-mm-muted);line-height:var(--zoom-body-line);}
.service_mm_consultation_copy .button{margin-top:1rem;}
.service_mm_limited{display:flex;gap:1.25rem;padding:clamp(2rem,3vw,3.2rem);align-items:center;background:rgba(255,255,255,.42);border-left:1px solid var(--service-mm-border);}
.service_mm_limited h2{margin:0;font-family:var(--zoom-sans);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.service_mm_limited p{margin:.8rem 0 0;color:var(--service-mm-muted);font-size:.875rem;line-height:1.65;}

.service_mm_general_info{padding:2rem 0;background:#fff;}
.service_mm_general_grid{display:grid;grid-template-columns:repeat(4,1fr);}
.service_mm_general_grid article{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;padding:.4rem 1.5rem;border-right:1px solid var(--service-mm-border);}
.service_mm_general_grid article:last-child{border-right:0;}
.service_mm_general_grid .service_mm_line_icon{width:2.2rem;height:2.2rem;}
.service_mm_general_grid h2{margin:0;font-family:var(--zoom-sans);font-size:.75rem;font-weight:700;letter-spacing:.04em;line-height:1.4;text-transform:uppercase;}
.service_mm_general_grid p{margin:.45rem 0 0;color:var(--service-mm-muted);font-size:.875rem;line-height:1.6;}

@media(max-width:64rem){
.service_mm_hero{grid-template-columns:1fr;min-height:0;}
.service_mm_hero_image{min-height:62vw;}
.service_mm_hero_copy{order:2;padding:3.5rem var(--zoom-pad) 4rem;}
.service_mm_benefits_grid{grid-template-columns:repeat(3,1fr);row-gap:2rem;}
.service_mm_benefit:nth-child(3){border-right:0;}
.service_mm_together_grid{grid-template-columns:1fr;}
.service_mm_together_copy{width:100%;max-width:42rem;margin:0 auto;padding:0;}
.service_mm_together_images{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
.service_mm_together_images figure{flex:0 0 calc(50% - .5rem);min-height:54vw;scroll-snap-align:start;}
.service_mm_portrait_grid{grid-template-columns:1fr 1fr;}
.service_mm_portrait_main{height:auto;min-height:52rem;}
.service_mm_portrait_thumbs{height:auto;grid-column:1/-1;grid-template-columns:repeat(2,1fr);grid-template-rows:none;}
.service_mm_portrait_thumbs figure{aspect-ratio:1.35/1;}
.service_mm_gallery_grid{grid-template-columns:1fr 1fr;}
.service_mm_gallery_quote{grid-column:1/-1;}
.service_mm_memories_grid{grid-template-columns:1fr 1fr;}
.service_mm_consultation{grid-template-columns:1fr 1fr;}
.service_mm_limited{grid-column:1/-1;border-top:1px solid var(--service-mm-border);border-left:0;}
.service_mm_general_grid{grid-template-columns:repeat(2,1fr);row-gap:2rem;}
.service_mm_general_grid article:nth-child(2){border-right:0;}
}

@media(max-width:45rem){
.service_page--mother-and-me .zoom_container{width:calc(100% - 2rem);max-width:none;margin-left:auto;margin-right:auto;}
.service_mm_hero{display:flex;flex-direction:column;}
.service_mm_hero_image{order:1;width:100%;min-height:88vw;}
.service_mm_hero_image img{min-height:88vw;object-fit:cover;}
.service_mm_hero_copy{order:2;width:100%;padding:2.8rem 1.5rem 3.2rem;}
.service_mm_hero h1{max-width:100%;font-size:clamp(2.75rem,11vw,4rem);}
.service_mm_hero_actions{width:100%;flex-direction:column;}
.service_mm_hero_actions .button{width:100%;text-align:center;}
.service_mm_benefits{padding:2.8rem 0;}
.service_mm_benefits_grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;}
.service_mm_benefit{padding:1.4rem .8rem;border-right:1px solid var(--service-mm-border);border-bottom:1px solid var(--service-mm-border);}
.service_mm_benefit:nth-child(even){border-right:0;}
.service_mm_benefit:nth-child(5){grid-column:1/-1;width:50%;margin:0 auto;border-right:0;border-bottom:0;}
.service_mm_together{padding:3.4rem 0;}
.service_mm_together_grid{display:block;}
.service_mm_together_copy{margin:0 0 2.2rem;padding:.25rem .35rem;}
.service_mm_together_copy h2,.service_mm_portrait_copy h2{max-width:100%;font-size:clamp(2.5rem,10.5vw,3.5rem);}
.service_mm_together_copy .button,.service_mm_portrait_copy .button{width:100%;text-align:center;}
.service_mm_together_images figure{flex:0 0 88%;min-height:0;aspect-ratio:.74/1;scroll-snap-align:center;}
.service_mm_portrait{padding:3.4rem 0;}
.service_mm_portrait_grid{grid-template-columns:1fr;gap:1.25rem;}
.service_mm_portrait_main{height:auto;min-height:0;aspect-ratio:.72/1;}
.service_mm_portrait_copy{padding:1.75rem 1rem;}
.service_mm_portrait_thumbs{height:auto;grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:1rem;}
.service_mm_portrait_thumbs figure{aspect-ratio:.82/1;}
.service_mm_gallery{padding:3.4rem 0;}
.service_mm_gallery_grid{grid-template-columns:1fr;gap:1rem;}
.service_mm_gallery_quote{grid-column:auto;padding:2.25rem 1.5rem;}
.service_mm_gallery_quote p{font-size:clamp(2rem,8vw,2.8rem);}
.service_mm_gallery_image{min-height:0;aspect-ratio:.78/1;}
.service_mm_faq{padding:3.4rem 0;}
.service_mm_faq_panel{padding:2rem 1.35rem 2.25rem;}
.service_mm_memories{padding:0 0 3.4rem;}
.service_mm_memories_grid{grid-template-columns:1fr;}
.service_mm_memories_copy{padding:2rem 1.35rem 2.2rem;}
.service_mm_memories_copy h2{font-size:clamp(2.5rem,10vw,3.4rem);}
.service_mm_memories_image{min-height:0;aspect-ratio:.77/1;}
.service_mm_consultation{width:calc(100% - 2rem);grid-template-columns:1fr;margin:0 auto 3.4rem;overflow:hidden;border:1px solid var(--service-mm-border);}
.service_mm_consultation_image{aspect-ratio:1.2/1;}
.service_mm_consultation_copy{padding:2.2rem 1.35rem;}
.service_mm_consultation_copy h2{font-size:clamp(2.3rem,9vw,3.25rem);}
.service_mm_consultation_copy .button{width:100%;text-align:center;}
.service_mm_limited{display:grid;grid-template-columns:3rem 1fr;grid-column:auto;gap:1rem;padding:1.8rem 1.35rem;align-items:start;border-top:1px solid var(--service-mm-border);border-left:0;}
.service_mm_general_grid{grid-template-columns:1fr;}
.service_mm_general_grid article{border-right:0;border-bottom:1px solid var(--service-mm-border);}
.service_mm_general_grid article:last-child{border-bottom:0;}
}


/*
   =========================================================
   CHILDREN & FAMILY COMPONENTS
   Migrated from children-and-family.css v1.4
   Now part of the single shared service-page.css
   =========================================================
*/

.caf_page {
    --caf-gold: #b98750;
    --caf-cream: #faf6f0;
    --caf-soft: #f3ece4;
    --caf-border: #e4d8cb;
    background: var(--zoom-warm-white);
}

.caf_page img {
    display: block;
    width: 100%;
}

.caf_section_kicker {
    margin: 0 0 26px;
    color: var(--zoom-charcoal);
    font-size: var(--zoom-kicker-size);
    font-weight: 700;
    letter-spacing: .14em;
    text-align: center;
    text-transform: uppercase;
}

.caf_section_kicker.left {
    text-align: left;
}

.caf_button {
    display: inline-flex;
    min-height: 52px;
    padding: 13px 27px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--zoom-charcoal);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.caf_button_primary,
.caf_button_dark {
    background: var(--zoom-charcoal);
    color: #fff;
}

.caf_button_outline {
    background: transparent;
    color: var(--zoom-charcoal);
}

.caf_button:hover {
    background: var(--caf-gold);
    border-color: var(--caf-gold);
    color: #fff;
}

.caf_text_link {
    display: inline-block;
    margin-top: 18px;
    color: var(--zoom-charcoal);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}


/*
   =========================================================
   HERO
   =========================================================
*/

.caf_hero {
    display: grid;
    grid-template-columns: minmax(380px, 42%) minmax(0, 58%);
    min-height: 700px;
    background: var(--caf-cream);
}

.caf_hero_copy {
    display: flex;
    padding: clamp(55px, 7vw, 105px);
    flex-direction: column;
    justify-content: center;
}

.caf_eyebrow {
    margin: 0;
    color: var(--zoom-charcoal);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.caf_hero h1 {
    margin: 22px 0 0;
    color: var(--zoom-charcoal);
    font-family: var(--zoom-serif);
    font-size: clamp(3.625rem, 6vw, 5.5rem);
    font-weight: 400;
    line-height: .98;
}

.caf_script {
    margin: 13px 0 0;
    color: var(--zoom-charcoal);
    font-family: var(--zoom-serif);
    font-size: clamp(1.75rem, 3vw, 2.625rem);
    font-style: italic;
    line-height: 1.1;
}

.caf_lead {
    max-width: 500px;
    margin: 30px 0 0;
    color: var(--zoom-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.8;
}

.caf_hero_actions {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 30px;
}

.caf_hero_image {
    min-height: 700px;
    overflow: hidden;
}

.caf_hero_image img {
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/*
   =========================================================
   JOURNEY
   =========================================================
*/

.caf_journey {
    padding: 42px 0 48px;
    background: var(--zoom-warm-white);
    border-bottom: 1px solid var(--caf-border);
}

.caf_journey_grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
}

.caf_journey_grid article {
    padding: 0 18px;
    border-right: 1px solid var(--caf-border);
    text-align: center;
}

.caf_journey_grid article:last-child {
    border-right: 0;
}

.caf_icon {
    min-height: 44px;
    color: var(--caf-gold);
    font-family: var(--zoom-serif);
    font-size: 2.125rem;
    line-height: 1;
}

.caf_journey_grid h2 {
    margin: 12px 0 0;
    font-size: var(--zoom-feature-title-size);
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.5;
    text-transform: uppercase;
}

.caf_journey_grid p {
    margin: 8px 0 0;
    color: var(--zoom-muted);
    font-size: var(--zoom-card-copy-size);
    line-height: 1.65;
}


/*
   =========================================================
   EXPERIENCE / MOMENTS
   =========================================================
*/

.caf_experience,
.caf_moments {
    padding: clamp(55px, 7vw, 90px) 0;
    background: var(--caf-cream);
}

.caf_experience_grid,
.caf_moments_grid {
    display: grid;
    grid-template-columns: .85fr 2fr;
    gap: clamp(35px, 5vw, 75px);
    align-items: center;
}

.caf_experience_copy h2,
.caf_moments_copy h2,
.caf_birthday_copy h2,
.caf_memories_copy h2 {
    margin: 0;
    color: var(--zoom-charcoal);
    font-family: var(--zoom-serif);
    font-size: clamp(2.375rem, 4vw, 3.625rem);
    font-weight: 400;
    line-height: 1.04;
}

.caf_experience_copy p,
.caf_moments_copy p,
.caf_birthday_copy p,
.caf_memories_copy p {
    margin: 18px 0 0;
    color: var(--zoom-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.8;
}


/*
   EXPERIENCE GALLERY - 4 IMAGES
*/

.caf_experience_gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}


/*
   LITTLE MOMENTS GALLERY - 3 WIDER IMAGES
*/

.caf_moments_gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.caf_experience_gallery figure,
.caf_moments_gallery figure {
    margin: 0;
    height: 430px;
    overflow: hidden;
}

.caf_moments_gallery figure {
    height: 465px;
}

.caf_experience_gallery img,
.caf_moments_gallery img {
    height: 100%;
    object-fit: cover;
}


/*
   =========================================================
   BIRTHDAY
   =========================================================
*/

.caf_birthday {
    padding: clamp(55px, 7vw, 90px) 0;
    background: var(--zoom-warm-white);
    border-top: 1px solid var(--caf-border);
    border-bottom: 1px solid var(--caf-border);
}

.caf_birthday_grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr .4fr;
    gap: clamp(25px, 4vw, 55px);
    align-items: stretch;
}

.caf_birthday_main_image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

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

.caf_birthday_copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.caf_birthday_strip {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    gap: 9px;
    min-height: 0;
}

.caf_birthday_strip img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}


/*
   =========================================================
   FAQ
   =========================================================
*/

.caf_info {
    padding: clamp(55px, 7vw, 90px) 0;
    background: var(--zoom-warm-white);
    border-top: 1px solid var(--caf-border);
}

.caf_info_grid {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 24px;
}

.caf_faq,
.caf_info_image {
    background: var(--caf-soft);
}

.caf_faq {
    padding: clamp(28px, 4vw, 50px);
}

.caf_faq_list details {
    border-bottom: 1px solid var(--caf-border);
}

.caf_faq_list summary {
    position: relative;
    padding: 16px 34px 16px 0;
    cursor: pointer;
    color: var(--zoom-charcoal);
    font-size: var(--zoom-faq-size);
    list-style: none;
}

.caf_faq_list summary::-webkit-details-marker {
    display: none;
}

.caf_faq_list summary::after {
    content: "+";
    position: absolute;
    right: 0;
    color: var(--caf-gold);
    font-size: 1.125rem;
}

.caf_faq_list details[open] summary::after {
    content: "−";
}

.caf_faq_list details p {
    margin: 0;
    padding: 0 30px 16px 0;
    color: var(--zoom-muted);
    font-size: var(--zoom-faq-size);
    line-height: 1.7;
}

.caf_info_image {
    min-height: 410px;
    overflow: hidden;
}

.caf_info_image img {
    height: 100%;
    object-fit: cover;
}


/*
   =========================================================
   MEMORIES
   =========================================================
*/

.caf_memories {
    background: var(--caf-soft);
}

.caf_memories_grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    min-height: 420px;
}

.caf_memories_copy {
    display: flex;
    padding: clamp(40px, 6vw, 75px);
    flex-direction: column;
    justify-content: center;
}

.caf_memories_image {
    overflow: hidden;
}

.caf_memories_image img {
    height: 100%;
    object-fit: cover;
}


/*
   =========================================================
   CTA
   =========================================================
*/

.caf_cta {
    display: grid;
    grid-template-columns: 1fr 1.2fr .75fr;
    min-height: 330px;
    background: var(--zoom-warm-white);
    border-top: 1px solid var(--caf-border);
    border-bottom: 1px solid var(--caf-border);
}

.caf_cta_image {
    overflow: hidden;
}

.caf_cta_image img {
    height: 100%;
    object-fit: cover;
}

.caf_cta_copy,
.caf_cta_note {
    display: flex;
    padding: clamp(35px, 5vw, 65px);
    flex-direction: column;
    justify-content: center;
}

.caf_cta_copy h2 {
    margin: 0;
    color: var(--zoom-charcoal);
    font-family: var(--zoom-serif);
    font-size: clamp(2.125rem, 3.5vw, 3.125rem);
    font-weight: 400;
    line-height: 1.08;
}

.caf_cta_copy p {
    margin: 15px 0 24px;
    color: var(--zoom-muted);
    font-family: var(--zoom-serif);
    font-size: 1.375rem;
    line-height: 1.35;
}

.caf_cta_copy .caf_button {
    align-self: flex-start;
}

.caf_cta_note {
    border-left: 1px solid var(--caf-border);
}

.caf_cta_note_icon {
    margin-bottom: 16px;
    color: var(--caf-gold);
    font-size: 1.875rem;
}

.caf_cta_note strong {
    font-size: var(--zoom-body-size);
}

.caf_cta_note p {
    margin: 9px 0 15px;
    color: var(--zoom-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.7;
}

.caf_cta_note a {
    font-size: var(--zoom-body-size);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}


/*
   =========================================================
   TRUST
   =========================================================
*/

.caf_trust {
    padding: 28px 0;
    background: var(--caf-cream);
}

.caf_trust_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.caf_trust_grid article {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 12px;
    padding: 12px 22px;
    border-right: 1px solid var(--caf-border);
}

.caf_trust_grid article:last-child {
    border-right: 0;
}

.caf_trust_icon {
    color: var(--caf-gold);
    font-family: var(--zoom-serif);
    font-size: 1.875rem;
}

.caf_trust h2 {
    margin: 0;
    font-size: var(--zoom-feature-title-size);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.caf_trust p {
    margin: 6px 0 0;
    color: var(--zoom-muted);
    font-size: var(--zoom-card-copy-size);
    line-height: 1.55;
}


/*
   =========================================================
   TABLET
   =========================================================
*/


/*
   =========================================================
   HERO BUTTONS - HOMEPAGE STANDARD
   =========================================================
*/

.caf_hero_actions .caf_button {
    display: inline-flex;
    min-height: 48px;
    padding: 12px 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--zoom-charcoal);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.caf_hero_actions .caf_button_primary,
.caf_hero_actions .caf_button_dark {
    background: var(--zoom-charcoal);
    border-color: var(--zoom-charcoal);
    color: #ffffff;
}

.caf_hero_actions .caf_button_outline {
    background: transparent;
    border-color: var(--zoom-charcoal);
    color: var(--zoom-charcoal);
}

.caf_hero_actions .caf_button_primary:hover,
.caf_hero_actions .caf_button_dark:hover,
.caf_hero_actions .caf_button_outline:hover {
    background: var(--zoom-bronze);
    border-color: var(--zoom-bronze);
    color: #ffffff;
}


@media (max-width: 1000px) {

    .caf_hero {
        grid-template-columns: 1fr;
}

    .caf_hero_copy {
        order: 2;
}

    .caf_hero_image {
        min-height: 58vw;
}

    .caf_journey_grid {
        grid-template-columns: repeat(3, 1fr);
        row-gap: 34px;
}

    .caf_experience_grid,
    .caf_moments_grid {
        grid-template-columns: 1fr;
}

    /*
       BIRTHDAY TABLET
    */

    .caf_birthday_grid {
        grid-template-columns: 1.35fr 1fr;
        align-items: center;
}

    .caf_birthday_main_image {
        aspect-ratio: 1 / 1;
}

    .caf_birthday_strip {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: none;
        gap: 9px;
}

    .caf_birthday_strip img {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
}

    .caf_cta {
        grid-template-columns: 1fr 1fr;
}

    .caf_cta_note {
        grid-column: 1 / -1;
        border-left: 0;
        border-top: 1px solid var(--caf-border);
}

}


/*
   =========================================================
   MOBILE
   =========================================================
*/

@media (max-width: 700px) {

    .caf_hero_image {
        min-height: 82vw;
}

    .caf_hero_copy {
        padding: 44px 24px 50px;
}

    .caf_hero h1 {
        font-size: clamp(3rem, 14vw, 4.125rem);
}

    .caf_script {
        font-size: 1.8125rem;
}

    .caf_hero_actions {
        flex-direction: column;
        width: 100%;
}

    .caf_hero_actions .caf_button {
        width: 100%;
}


    /*
       JOURNEY SWIPE
    */

    .caf_journey_grid {
        display: flex;
        position: relative;
        overflow-x: auto;
        padding-right: 48px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
}

    .caf_journey_grid::-webkit-scrollbar {
        display: none;
}

    .caf_journey_grid article {
        flex: 0 0 72%;
        border-right: 1px solid var(--caf-border);
        scroll-snap-align: start;
}


    /*
       EXPERIENCE / MOMENTS SWIPE
    */

    .caf_experience_gallery,
    .caf_moments_gallery {
        display: flex;
        position: relative;
        gap: 8px;
        overflow-x: auto;
        padding-right: 52px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
}

    .caf_experience_gallery::-webkit-scrollbar,
    .caf_moments_gallery::-webkit-scrollbar {
        display: none;
}

    .caf_experience_gallery figure,
    .caf_moments_gallery figure {
        flex: 0 0 74%;
        height: 108vw;
        scroll-snap-align: start;
}


    /*
       BIRTHDAY MOBILE
    */

    .caf_birthday_grid {
        grid-template-columns: 1fr;
        gap: 30px;
}

    .caf_birthday_main_image {
        min-height: 0;
        aspect-ratio: 1 / 1;
}

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

    .caf_birthday_strip {
        display: flex;
        position: relative;
        grid-column: auto;
        gap: 8px;
        overflow-x: auto;
        padding-right: 52px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
}

    .caf_birthday_strip::-webkit-scrollbar {
        display: none;
}

    .caf_birthday_strip img {
        flex: 0 0 70%;
        width: auto;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        scroll-snap-align: start;
}


    /*
       NEXT ITEM ARROW
    */

    .caf_experience_gallery::after,
    .caf_moments_gallery::after,
    .caf_birthday_strip::after {
        content: "›";
        position: sticky;
        right: 10px;
        top: 50%;
        z-index: 6;
        display: grid;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        margin-left: -54px;
        place-items: center;
        align-self: center;
        border: 1px solid rgba(185, 135, 80, .28);
        border-radius: 50%;
        background: rgba(255, 255, 255, .92);
        color: var(--caf-gold);
        box-shadow: 0 5px 18px rgba(0, 0, 0, .16);
        font-family: Arial, Helvetica, sans-serif;
        font-size: 2.25rem;
        font-weight: 300;
        line-height: 1;
        pointer-events: none;
}


    /*
       NEXT JOURNEY CARD ARROW
    */

    .caf_journey_grid::after {
        content: "›";
        position: sticky;
        right: 10px;
        top: 50%;
        z-index: 6;
        display: grid;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        margin-left: -54px;
        place-items: center;
        align-self: center;
        border: 1px solid rgba(185, 135, 80, .28);
        border-radius: 50%;
        background: rgba(255, 255, 255, .92);
        color: var(--caf-gold);
        box-shadow: 0 5px 18px rgba(0, 0, 0, .16);
        font-family: Arial, Helvetica, sans-serif;
        font-size: 2.25rem;
        font-weight: 300;
        line-height: 1;
        pointer-events: none;
}


    /*
       STACKED SECTIONS
    */

    .caf_info_grid,
    .caf_memories_grid,
    .caf_cta {
        grid-template-columns: 1fr;
}

    .caf_info_image {
        min-height: 85vw;
}

    .caf_memories_image {
        min-height: 82vw;
}

    .caf_cta_image {
        min-height: 75vw;
}

    .caf_cta_note {
        grid-column: auto;
}

    .caf_cta_copy .caf_button {
        width: 100%;
}

    .caf_trust_grid {
        grid-template-columns: 1fr;
}

    .caf_trust_grid article {
        border-right: 0;
        border-bottom: 1px solid var(--caf-border);
}

}


/* =========================================================
   WEDDING PHOTOGRAPHY COMPONENTS
   Migrated from wedding.css v2.3
   Now part of the single shared service-page.css
   ========================================================= */


/*
   =========================================================
   BASE
   =========================================================
*/

.wed_page {
    --wed-gold: var(--zoom-bronze);
    --wed-cream: var(--zoom-ivory);
    --wed-soft: var(--zoom-cream);
    --wed-line: var(--zoom-line);
    --wed-text: var(--zoom-charcoal);
    --wed-muted: var(--zoom-muted);

    background: var(--zoom-warm-white);
    color: var(--wed-text);
}

.wed_page img {
    display: block;
    width: 100%;
}

.wed_page h1,
.wed_page h2 {
    font-family: var(--zoom-serif);
    font-weight: 400;
}

.wed_kicker {
    margin: 0 0 1rem;
    font-size: var(--zoom-kicker-size);
    font-weight: 700;
    letter-spacing: 0.15em;
    line-height: 1.5;
    text-align: center;
    text-transform: uppercase;
}

.wed_kicker_left {
    text-align: left;
}

.wed_section_heading {
    width: 100%;
    max-width: 58rem;
    margin-bottom: 2.7rem;
}

.wed_section_heading_center {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.wed_section_heading h2 {
    margin: 0;
    font-size: clamp(2.5rem, 4vw, 4rem);
    line-height: 1.03;
}

.wed_text_link {
    display: inline-flex;
    margin-top: 1.8rem;
    color: var(--wed-text);
    font-size: var(--zoom-link-size);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}


/*
   =========================================================
   HERO
   =========================================================
*/

.wed_hero {
    display: grid;
    grid-template-columns: 42% 58%;
    min-height: 45rem;
    background: var(--wed-cream);
    border-bottom: 1px solid var(--wed-line);
}

.wed_hero_copy {
    display: flex;
    padding: clamp(4rem, 6vw, 7rem) clamp(2.5rem, 5vw, 6rem);
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.wed_hero h1 {
    max-width: 8em;
    margin: 0.8rem 0 0;
    font-size: clamp(3.5rem, 5vw, 5.6rem);
    line-height: 0.98;
}

.wed_hero_script {
    margin: 1.4rem 0 0;
    font-family: var(--zoom-serif);
    font-size: clamp(1.7rem, 2.2vw, 2.5rem);
    font-style: italic;
    line-height: 1.25;
}

.wed_hero_text {
    max-width: 35rem;
    margin: 1.7rem 0 0;
    color: var(--wed-muted);
    font-size: var(--zoom-body-size);
    line-height: var(--zoom-body-line);
}

.wed_actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 2rem;
}

.wed_hero_image {
    min-height: 45rem;
    margin: 0;
    overflow: hidden;
}

.wed_hero_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/*
   =========================================================
   AWARDS
   =========================================================
*/

.wed_awards {
    padding: 4.8rem 0 5.4rem;
    background: #ffffff;
}

.wed_awards .wed_section_heading {
    margin-bottom: 2.5rem;
}

.wed_award_grid {
    display: grid;
    width: min(100%, 61rem);
    margin: 0 auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.5rem, 3vw, 3rem);
}

.wed_award_item {
    position: relative;
    display: grid;
    min-height: 12rem;
    place-items: center;
    text-align: center;
}

.wed_award_laurel {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(100%, 15.5rem);
    height: auto;
    transform: translate(-50%, -50%);
    pointer-events: none;
    user-select: none;
}

.wed_award_content {
    position: relative;
    z-index: 1;
    display: flex;
    width: 8.6rem;
    padding: 0.6rem 0 0.2rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.wed_award_content strong {
    color: var(--wed-text);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.035em;
    line-height: 1.55;
    text-transform: uppercase;
}

.wed_award_content small {
    margin-top: 0.3rem;
    color: var(--wed-text);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.4;
}


/*
   =========================================================
   FOR YOU
   =========================================================
*/

.wed_for_you {
    padding: 4.8rem 0;
    background: var(--wed-cream);
    border-top: 1px solid var(--wed-line);
    border-bottom: 1px solid var(--wed-line);
}

.wed_feature_grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.wed_feature {
    padding: 1.2rem 2.2rem;
    text-align: center;
    border-right: 1px solid var(--wed-line);
}

.wed_feature:last-child {
    border-right: 0;
}

.wed_feature_icon {
    display: block;
    margin-bottom: 1rem;
    color: var(--wed-gold);
    font-family: var(--zoom-serif);
    font-size: 2.4rem;
    line-height: 1;
}

.wed_feature h3 {
    margin: 0;
    font-size: var(--zoom-feature-title-size);
    letter-spacing: 0.06em;
    line-height: 1.4;
    text-transform: uppercase;
}

.wed_feature p {
    margin: 0.9rem auto 0;
    color: var(--wed-muted);
    font-size: var(--zoom-card-copy-size);
    line-height: 1.7;
}


/*
   =========================================================
   GALLERY
   =========================================================
*/

.wed_gallery {
    padding: 5rem 0;
    background: #ffffff;
}

.wed_gallery_container {
    width: min(calc(100% - 4rem), 88rem);
    margin-right: auto;
    margin-left: auto;
}

.wed_gallery .wed_section_heading {
    width: min(100%, 58rem);
    margin-right: auto;
    margin-bottom: 2.8rem;
    margin-left: auto;
    text-align: center;
}

.wed_gallery .wed_kicker {
    text-align: center;
}

.wed_gallery_grid {
    display: grid;
    width: 100%;
    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(0, 0.92fr)
        minmax(0, 0.92fr);

    grid-template-rows:
        20rem
        24rem;

    gap: 0.7rem;
}

.wed_gallery_item {
    min-width: 0;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    background: var(--wed-cream);
    border: 1px solid var(--wed-gold);
}

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

.wed_gallery_item_01 {
    grid-column: 1;
    grid-row: 1 / 3;
}

.wed_gallery_item_02 {
    grid-column: 2;
    grid-row: 1;
}

.wed_gallery_item_03 {
    grid-column: 3;
    grid-row: 1;
}

.wed_gallery_item_04 {
    grid-column: 2;
    grid-row: 2;
}

.wed_gallery_item_05 {
    grid-column: 3;
    grid-row: 2;
}


/*
   =========================================================
   STORY
   =========================================================
*/

.wed_story {
    padding: 0 0 5rem;
    background: #ffffff;
}

.wed_story_grid {
    display: grid;
    grid-template-columns: 0.82fr 1.18fr;
    min-height: 38rem;
    background: var(--wed-cream);
    border: 1px solid var(--wed-line);
}

.wed_story_copy {
    display: flex;
    padding: clamp(2.8rem, 5vw, 5.4rem);
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.wed_story_copy h2 {
    margin: 0;
    font-size: clamp(2.8rem, 4vw, 4.4rem);
    line-height: 1;
}

.wed_story_copy p {
    max-width: 34rem;
    color: var(--wed-muted);
    line-height: var(--zoom-body-line);
}

.wed_story_script {
    margin-bottom: 0;
    color: var(--wed-text) !important;
    font-family: var(--zoom-serif);
    font-size: clamp(1.5rem, 2vw, 2.1rem);
    font-style: italic;
    line-height: 1.35 !important;
}

.wed_story_image {
    min-height: 38rem;
    margin: 0;
    overflow: hidden;
}

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


/*
   =========================================================
   EXPERIENCE
   =========================================================
*/

.wed_experience {
    padding: 5rem 0;
    background: var(--wed-cream);
    border-top: 1px solid var(--wed-line);
    border-bottom: 1px solid var(--wed-line);
}

.wed_steps {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.wed_steps article {
    padding: 0.5rem 1.4rem;
    text-align: center;
    border-right: 1px solid var(--wed-line);
}

.wed_steps article:last-child {
    border-right: 0;
}

.wed_step_number {
    display: block;
    margin-bottom: 1rem;
    color: var(--wed-gold);
    font-family: var(--zoom-serif);
    font-size: 2rem;
    line-height: 1;
}

.wed_steps h3 {
    margin: 0;
    font-size: var(--zoom-feature-title-size);
    letter-spacing: 0.05em;
    line-height: 1.4;
    text-transform: uppercase;
}

.wed_steps p {
    margin: 0.8rem 0 0;
    color: var(--wed-muted);
    font-size: var(--zoom-card-copy-size);
    line-height: 1.7;
}


/*
   =========================================================
   CONTENT CREATION
   =========================================================
*/

.wed_content {
    padding: 5rem 0;
    background: #ffffff;
}

.wed_content_grid {
    display: grid;
    grid-template-columns: 1.06fr 0.94fr;
    min-height: 40rem;
    overflow: hidden;
    background: var(--wed-cream);
    border: 1px solid var(--wed-line);
}

.wed_content_image {
    min-height: 40rem;
    margin: 0;
    overflow: hidden;
}

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

.wed_content_copy {
    display: flex;
    padding: clamp(2.8rem, 5vw, 5rem);
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.wed_content_copy h2 {
    margin: 0;
    font-size: clamp(2.8rem, 4vw, 4.3rem);
    line-height: 1;
}

.wed_content_copy p {
    color: var(--wed-muted);
    line-height: var(--zoom-body-line);
}

.wed_content_copy ul {
    margin: 0.7rem 0 1.8rem;
    padding-left: 1.3rem;
    color: var(--wed-muted);
    font-size: var(--zoom-body-size);
    line-height: 1.9;
}


/*
   =========================================================
   REVIEWS
   =========================================================
*/

.wed_reviews {
    padding: 5rem 0;
    background: var(--wed-cream);
    border-top: 1px solid var(--wed-line);
    border-bottom: 1px solid var(--wed-line);
}

.wed_review_strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.wed_review_strip blockquote {
    margin: 0;
    padding: 2rem;
    background: #ffffff;
    border: 1px solid var(--wed-line);
}

.wed_quote_mark {
    display: block;
    color: var(--wed-gold);
    font-family: var(--zoom-serif);
    font-size: 3.5rem;
    line-height: 0.7;
}

.wed_review_strip p {
    margin: 1.2rem 0 0;
    color: var(--wed-muted);
    font-size: var(--zoom-body-size);
    line-height: var(--zoom-body-line);
}

.wed_review_strip cite {
    display: block;
    margin-top: 1.7rem;
    font-size: var(--zoom-feature-title-size);
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}


/*
   =========================================================
   INVESTMENT
   =========================================================
*/

.wed_investment {
    padding: 5rem 0;
    background: #ffffff;
}

.wed_invest_grid {
    display: grid;
    grid-template-columns: 0.88fr 1.12fr;
    min-height: 38rem;
    overflow: hidden;
    background: #eee3d8;
    border: 1px solid var(--wed-line);
}

.wed_invest_copy {
    display: flex;
    padding: clamp(2.8rem, 5vw, 5rem);
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.wed_invest_copy h2 {
    margin: 0;
    font-size: clamp(2.8rem, 4vw, 4.3rem);
    line-height: 1;
}

.wed_invest_copy p {
    max-width: 34rem;
    color: var(--wed-muted);
    line-height: var(--zoom-body-line);
}

.wed_invest_price {
    margin: 1.5rem 0 0.5rem;
    color: var(--wed-text) !important;
    font-family: var(--zoom-serif);
    font-size: clamp(1.7rem, 2.3vw, 2.5rem);
    font-style: italic;
}

.wed_invest_image {
    min-height: 38rem;
    margin: 0;
    overflow: hidden;
}

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


/*
=========================================================
WEDDING FAQ — DESKTOP BALANCED VERSION
=========================================================
*/

.wed_faq {
    padding: 5rem 0;
    background: var(--wed-cream);
    border-top: 1px solid var(--wed-line);
}

.wed_faq_grid {
    display: grid;
    grid-template-columns: 44% 56%;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--wed-line);
}

.wed_faq_image {
    width: 100%;
    margin: 0;
    overflow: hidden;
    align-self: center;
}

.wed_faq_image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center 35%;
}

.wed_faq_panel {
    width: 100%;
    padding: clamp(3rem, 5vw, 5.5rem);
}

.wed_faq_panel h2 {
    margin: 0 0 2rem;
    font-size: var(--zoom-heading-small);
    line-height: 1.05;
}


/*
=========================================================
WEDDING FAQ — TABLET / MOBILE
=========================================================
*/


/*
   =========================================================
   HERO BUTTONS - HOMEPAGE STANDARD
   =========================================================
*/

.wed_actions .button {
    display: inline-flex;
    min-height: 48px;
    padding: 12px 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--zoom-charcoal);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.wed_actions .button_dark {
    background: var(--zoom-charcoal);
    border-color: var(--zoom-charcoal);
    color: #ffffff;
}

.wed_actions .button_outline {
    background: transparent;
    border-color: var(--zoom-charcoal);
    color: var(--zoom-charcoal);
}

.wed_actions .button_dark:hover,
.wed_actions .button_outline:hover {
    background: var(--zoom-bronze);
    border-color: var(--zoom-bronze);
    color: #ffffff;
}


@media (max-width: 900px) {

    .wed_faq {
        padding: 3rem 0;
    }

    .wed_faq_grid {
        display: block;
    }

    .wed_faq_image {
        width: 100%;
    }

    .wed_faq_image img {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        object-position: center 35%;
    }

    .wed_faq_panel {
        padding: 2.5rem 1.5rem;
    }
}


/*
   =========================================================
   ABOUT
   =========================================================
*/

.wed_about {
    padding: 0 0 5rem;
    background: var(--wed-cream);
}

.wed_about_grid {
    display: grid;
    grid-template-columns: 0.82fr 1.18fr;
    min-height: 32rem;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid var(--wed-line);
}

.wed_about_image {
    min-height: 32rem;
    margin: 0;
    overflow: hidden;
}

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

.wed_about_copy {
    display: flex;
    padding: clamp(2.8rem, 5vw, 5rem);
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.wed_about_copy h2 {
    margin: 0;
    font-size: clamp(2.8rem, 4vw, 4.2rem);
    line-height: 1;
}

.wed_about_copy p {
    max-width: 35rem;
    color: var(--wed-muted);
    line-height: var(--zoom-body-line);
}

.wed_about_script {
    margin: 1.3rem 0 0;
    color: var(--wed-text) !important;
    font-family: var(--zoom-serif);
    font-size: clamp(1.5rem, 2vw, 2rem);
    font-style: italic;
    line-height: 1.3 !important;
}


/*
   =========================================================
   CTA
   =========================================================
*/

.wed_cta {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    min-height: 28rem;
    background: #eee3d8;
    border-top: 1px solid var(--wed-line);
    border-bottom: 1px solid var(--wed-line);
}

.wed_cta_image {
    min-height: 28rem;
    margin: 0;
    overflow: hidden;
}

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

.wed_cta_overlay {
    display: flex;
    padding: clamp(2.8rem, 5vw, 5rem);
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.wed_cta_overlay h2 {
    margin: 0;
    font-family: var(--zoom-serif);
    font-size: clamp(2.5rem, 3.6vw, 3.8rem);
    font-weight: 400;
    line-height: 1.02;
}

.wed_cta_overlay p:not(.wed_kicker) {
    color: var(--wed-muted);
    line-height: var(--zoom-body-line);
}


/*
   =========================================================
   TRUST
   =========================================================
*/

.wed_trust {
    padding: 2.5rem 0;
    background: #ffffff;
}

.wed_trust_grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.wed_trust article {
    display: grid;
    grid-template-columns: 2.5rem 1fr;
    gap: 1rem;
    padding: 0.5rem 1.5rem;
    border-right: 1px solid var(--wed-line);
}

.wed_trust article:last-child {
    border-right: 0;
}

.wed_trust_icon {
    color: var(--wed-gold);
    font-family: var(--zoom-serif);
    font-size: 2rem;
}

.wed_trust h3 {
    margin: 0;
    font-size: var(--zoom-feature-title-size);
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: uppercase;
}

.wed_trust p {
    margin: 0.45rem 0 0;
    color: var(--wed-muted);
    font-size: var(--zoom-card-copy-size);
    line-height: 1.65;
}


/*
   =========================================================
   TABLET
   =========================================================
*/

@media (max-width: 64rem) {

    /*
       HERO
    */

    .wed_hero {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .wed_hero_image {
        order: 1;
        min-height: 62vw;
    }

    .wed_hero_copy {
        order: 2;
        padding: 3.5rem var(--zoom-pad) 4rem;
    }


    /*
       AWARDS
    */

    .wed_award_grid {
        width: min(100%, 48rem);
        gap: 1rem;
    }

    .wed_award_item {
        min-height: 10.5rem;
    }

    .wed_award_laurel {
        width: min(100%, 13.5rem);
    }

    .wed_award_content {
        width: 7.7rem;
    }


    /*
       FOR YOU
    */

    .wed_feature_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 2.5rem;
    }

    .wed_feature:nth-child(2) {
        border-right: 0;
    }


    /*
       GALLERY
    */

    .wed_gallery_container {
        width: min(calc(100% - 2rem), 58rem);
    }

    .wed_gallery_grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows:
            28rem
            20rem
            20rem;
    }

    .wed_gallery_item_01 {
        grid-column: 1;
        grid-row: 1 / 3;
    }

    .wed_gallery_item_02 {
        grid-column: 2;
        grid-row: 1;
    }

    .wed_gallery_item_03 {
        grid-column: 2;
        grid-row: 2;
    }

    .wed_gallery_item_04 {
        grid-column: 1;
        grid-row: 3;
    }

    .wed_gallery_item_05 {
        grid-column: 2;
        grid-row: 3;
    }


    /*
       EXPERIENCE
    */

    .wed_steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: 2.5rem;
    }

    .wed_steps article:nth-child(3) {
        border-right: 0;
    }


    /*
       CONTENT
    */

    .wed_content_grid {
        grid-template-columns: 1fr 1fr;
    }


    /*
       FAQ
    */

    .wed_faq_grid {
        grid-template-columns: 0.9fr 1.1fr;
    }


    /*
       TRUST
    */

    .wed_trust_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 2rem;
    }

    .wed_trust article:nth-child(2) {
        border-right: 0;
    }

}


/*
   =========================================================
   MOBILE
   =========================================================
*/

@media (max-width: 45rem) {

    /*
       GLOBAL
    */

    .wed_page .zoom_container {
        width: calc(100% - 2rem);
        max-width: none;
        margin-right: auto;
        margin-left: auto;
    }

    .wed_page figure {
        margin-right: 0;
        margin-left: 0;
    }

    .wed_section_heading {
        margin-bottom: 2rem;
    }

    .wed_section_heading h2 {
        font-size: clamp(2.35rem, 9vw, 3.25rem);
    }


    /*
       HERO
    */

    .wed_hero {
        display: flex;
        flex-direction: column;
    }

    .wed_hero_image {
        order: 1;
        width: 100%;
        min-height: 82vw;
    }

    .wed_hero_image img {
        min-height: 82vw;
    }

    .wed_hero_copy {
        order: 2;
        width: 100%;
        padding: 2.8rem 1.5rem 3.2rem;
    }

    .wed_hero h1 {
        max-width: 100%;
        font-size: clamp(3rem, 12vw, 4.2rem);
    }

    .wed_hero_text {
        max-width: 100%;
    }

    .wed_actions {
        width: 100%;
        flex-direction: column;
    }

    .wed_actions .button {
        width: 100%;
        text-align: center;
    }


    /*
       AWARDS
    */

    .wed_awards {
        padding: 3.5rem 0 4rem;
    }

    .wed_award_grid {
        width: 100%;
        max-width: 17rem;
        grid-template-columns: 1fr;
        gap: 1.9rem;
    }

    .wed_award_item {
        min-height: 7.8rem;
    }

    .wed_award_laurel {
        width: 12rem;
    }

    .wed_award_content {
        width: 7rem;
        padding: 0.3rem 0 0.1rem;
    }

    .wed_award_content strong {
        font-size: 0.62rem;
        line-height: 1.5;
    }

    .wed_award_content small {
        margin-top: 0.2rem;
        font-size: 0.62rem;
    }


    /*
       FOR YOU
    */

    .wed_for_you {
        padding: 3.5rem 0;
    }

    .wed_feature_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 0;
    }

    .wed_feature {
        padding: 1.5rem 0.8rem;
        border-right: 1px solid var(--wed-line);
        border-bottom: 1px solid var(--wed-line);
    }

    .wed_feature:nth-child(even) {
        border-right: 0;
    }

    .wed_feature:nth-child(3),
    .wed_feature:nth-child(4) {
        border-bottom: 0;
    }


    /*
       GALLERY SWIPE
    */

    .wed_gallery {
        padding: 3.5rem 0;
    }

    .wed_gallery_container {
        width: calc(100% - 2rem);
        margin-right: auto;
        margin-left: auto;
    }

    .wed_gallery .wed_section_heading {
        width: 100%;
        margin-bottom: 2rem;
        padding-right: 0.5rem;
        padding-left: 0.5rem;
    }

    .wed_gallery .wed_section_heading h2 br {
        display: none;
    }

    .wed_gallery_grid {
        display: flex;
        width: 100%;
        gap: 1rem;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .wed_gallery_grid::-webkit-scrollbar {
        display: none;
    }

    .wed_gallery_item,
    .wed_gallery_item_01,
    .wed_gallery_item_02,
    .wed_gallery_item_03,
    .wed_gallery_item_04,
    .wed_gallery_item_05 {
        flex: 0 0 84%;
        grid-column: auto;
        grid-row: auto;
        min-height: 0;
        aspect-ratio: 0.76 / 1;
        scroll-snap-align: center;
    }


    /*
       STORY
    */

    .wed_story {
        padding: 0 0 3.5rem;
    }

    .wed_story_grid {
        display: grid;
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        min-height: 0;
        margin: 0 auto;
    }

    .wed_story_copy {
        padding: 2.2rem 1.35rem;
    }

    .wed_story_copy h2 {
        font-size: clamp(2.5rem, 10vw, 3.5rem);
    }

    .wed_story_image {
        min-height: 0;
        aspect-ratio: 1.18 / 1;
    }


    /*
       EXPERIENCE
    */

    .wed_experience {
        padding: 3.5rem 0;
    }

    .wed_steps {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 0;
    }

    .wed_steps article {
        padding: 1.5rem 0.8rem;
        border-right: 1px solid var(--wed-line);
        border-bottom: 1px solid var(--wed-line);
    }

    .wed_steps article:nth-child(even) {
        border-right: 0;
    }

    .wed_steps article:nth-child(5),
    .wed_steps article:nth-child(6) {
        border-bottom: 0;
    }


    /*
       CONTENT
    */

    .wed_content {
        padding: 3.5rem 0;
    }

    .wed_content_grid {
        display: grid;
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        min-height: 0;
        margin: 0 auto;
    }

    .wed_content_image {
        min-height: 0;
        aspect-ratio: 0.82 / 1;
        border-bottom: 1px solid var(--wed-gold);
    }

    .wed_content_copy {
        padding: 2.2rem 1.35rem;
    }

    .wed_content_copy h2 {
        font-size: clamp(2.5rem, 10vw, 3.4rem);
    }

    .wed_content_copy .button {
        width: 100%;
        text-align: center;
    }


    /*
       REVIEWS
    */

    .wed_reviews {
        padding: 3.5rem 0;
    }

    .wed_review_strip {
        display: flex;
        width: 100%;
        gap: 1rem;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .wed_review_strip::-webkit-scrollbar {
        display: none;
    }

    .wed_review_strip blockquote {
        flex: 0 0 88%;
        scroll-snap-align: center;
    }


    /*
       INVESTMENT
    */

    .wed_investment {
        padding: 3.5rem 0;
    }

    .wed_invest_grid {
        display: grid;
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        min-height: 0;
        margin: 0 auto;
    }

    .wed_invest_copy {
        order: 2;
        padding: 2.2rem 1.35rem;
    }

    .wed_invest_copy h2 {
        font-size: clamp(2.5rem, 10vw, 3.4rem);
    }

    .wed_invest_copy .button {
        width: 100%;
        text-align: center;
    }

    .wed_invest_image {
        order: 1;
        min-height: 0;
        aspect-ratio: 0.84 / 1;
        border-bottom: 1px solid var(--wed-gold);
    }


    /*
       FAQ
    */

    .wed_faq {
        padding: 3.5rem 0;
    }

    .wed_faq_grid {
        display: grid;
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        min-height: 0;
        margin: 0 auto;
    }

    .wed_faq_image {
        min-height: 0;
        aspect-ratio: 1.1 / 1;
        border-right: 0;
        border-bottom: 1px solid var(--wed-gold);
    }

    .wed_faq_panel {
        padding: 2.2rem 1.35rem;
    }


    /*
       ABOUT
    */

    .wed_about {
        padding: 0 0 3.5rem;
    }

    .wed_about_grid {
        display: grid;
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        min-height: 0;
        margin: 0 auto;
    }

    .wed_about_image {
        min-height: 0;
        aspect-ratio: 0.9 / 1;
        border-bottom: 1px solid var(--wed-gold);
    }

    .wed_about_copy {
        padding: 2.2rem 1.35rem;
    }

    .wed_about_copy h2 {
        font-size: clamp(2.5rem, 10vw, 3.4rem);
    }

    .wed_about_copy .button {
        width: 100%;
        text-align: center;
    }


    /*
       CTA
    */

    .wed_cta {
        display: grid;
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        min-height: 0;
        margin: 0 auto 3.5rem;
        border: 1px solid var(--wed-line);
    }

    .wed_cta_image {
        min-height: 0;
        aspect-ratio: 1.2 / 1;
        border-bottom: 1px solid var(--wed-gold);
    }

    .wed_cta_overlay {
        padding: 2.2rem 1.35rem;
    }

    .wed_cta_overlay h2 {
        font-size: clamp(2.4rem, 9vw, 3.3rem);
    }

    .wed_cta_overlay .button {
        width: 100%;
        text-align: center;
    }


    /*
       TRUST
    */

    .wed_trust {
        padding: 2.5rem 0;
    }

    .wed_trust_grid {
        grid-template-columns: 1fr;
        gap: 0;
        border-top: 1px solid var(--wed-line);
        border-bottom: 1px solid var(--wed-line);
    }

    .wed_trust article {
        padding: 1.35rem 0.5rem;
        border-right: 0;
        border-bottom: 1px solid var(--wed-line);
    }

    .wed_trust article:last-child {
        border-bottom: 0;
    }

}


/*
   =========================================================
   SMALL MOBILE
   =========================================================
*/

@media (max-width: 24rem) {

    .wed_page .zoom_container,
    .wed_story_grid,
    .wed_content_grid,
    .wed_invest_grid,
    .wed_faq_grid,
    .wed_about_grid,
    .wed_cta {
        width: calc(100% - 1.5rem);
    }

    .wed_hero_copy,
    .wed_story_copy,
    .wed_content_copy,
    .wed_invest_copy,
    .wed_faq_panel,
    .wed_about_copy,
    .wed_cta_overlay {
        padding-right: 1.15rem;
        padding-left: 1.15rem;
    }

    .wed_gallery_container {
        width: calc(100% - 1.5rem);
    }

    .wed_gallery_item {
        flex-basis: 90%;
    }

    .wed_review_strip blockquote {
        flex-basis: 91%;
    }

    .wed_award_grid {
        gap: 1.5rem;
    }

    .wed_award_item {
        min-height: 7.2rem;
    }

    .wed_award_laurel {
        width: 11.25rem;
    }

    .wed_award_content {
        width: 6.8rem;
    }

    .wed_award_content strong,
    .wed_award_content small {
        font-size: 0.58rem;
    }

}