/*
 * Shared product-detail production system.
 *
 * Product families keep their own copy and process media, but the customer
 * should always meet the same rail, typography, step rhythm and policy rows.
 */
:where(#pdp-production, body.pdp-video-unified-page, html.fb-detail-renewal) {
    --production-rail: 1000px;
    --production-ink: #181817;
    --production-muted: #6f6c67;
    --production-line: #dedbd5;
    --production-soft: #f7f6f4;
    --production-heading-size: 28px;
    --production-subheading-size: 20px;
    --production-body-size: 16px;
}

/* Shared section heading */
#pdp-production,
body.pdp-video-unified-page .pdp-video-production,
html.fb-detail-renewal #tab-schedule {
    color: var(--production-ink);
}

#pdp-production > .pdp-section-heading,
body.pdp-video-unified-page .pdp-video-section-title h2,
html.fb-detail-renewal #tab-schedule .pressb-lower-heading h2 {
    color: var(--production-ink);
    font-size: var(--production-heading-size);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.035em;
    word-break: keep-all;
}

body.pdp-modern-page:not(.pdp-unified-product-detail) #pdp-production > .pdp-section-heading {
    width: min(var(--production-rail), calc(100% - 40px));
    margin-right: auto;
    margin-left: auto;
}

body.pdp-video-unified-page .pdp-video-section-title h2,
html.fb-detail-renewal #tab-schedule .pressb-lower-heading h2 {
    margin: 0;
}

body.pdp-video-unified-page .pdp-video-section-title p,
html.fb-detail-renewal #tab-schedule .pressb-lower-heading > p:last-child {
    margin-top: 8px;
}

.pdp-unified-production-section > .pdp-section-description,
#pdp-production > .pdp-section-description,
body.pdp-video-unified-page .pdp-video-section-title p,
html.fb-detail-renewal #tab-schedule .pressb-lower-heading > p:last-child {
    margin-top: 10px;
    color: var(--production-muted);
    font-size: var(--production-body-size);
    line-height: 24px;
    letter-spacing: -.015em;
    word-break: keep-all;
}

body.pdp-modern-page:not(.pdp-unified-product-detail) #pdp-production > .pdp-section-description {
    width: min(var(--production-rail), calc(100% - 40px));
    margin: 0 auto 32px;
}

/* Summary facts use one ruled four-column grammar. */
.pdp-frame-production .pdp-production-summary,
.pdp-message-card-production .pdp-production-summary {
    display: grid;
    margin: 0;
    padding: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--production-line);
    border-bottom: 1px solid var(--production-line);
}

.pdp-frame-production .pdp-production-summary > div,
.pdp-message-card-production .pdp-production-summary > div {
    min-width: 0;
    padding: 24px 20px;
    border-left: 1px solid var(--production-line);
    box-sizing: border-box;
}

.pdp-frame-production .pdp-production-summary > div:first-child,
.pdp-message-card-production .pdp-production-summary > div:first-child {
    padding-left: 0;
    border-left: 0;
}

.pdp-frame-production .pdp-production-summary span,
.pdp-message-card-production .pdp-production-summary dt {
    display: block;
    margin: 0;
    color: var(--production-muted);
    font-size: 13px;
    font-weight: 500;
    line-height: 19px;
}

.pdp-frame-production .pdp-production-summary strong,
.pdp-message-card-production .pdp-production-summary dd {
    display: block;
    margin: 5px 0 0;
    color: var(--production-ink);
    font-size: 15px;
    font-weight: 650;
    line-height: 23px;
    word-break: keep-all;
}

/* Physical-product variants retain the linear order journey. */
.pdp-frame-production .pdp-production-journey {
    margin-top: 56px;
}

#pdp-production .pdp-production-journey__header h3,
.pdp-frame-production .pdp-production-journey > h3 {
    margin: 0;
    color: var(--production-ink);
    font-size: var(--production-subheading-size) !important;
    font-weight: 700 !important;
    line-height: 28px !important;
    letter-spacing: -.02em;
}

.pdp-frame-production .pdp-production-journey > p {
    margin: 8px 0 0;
    color: var(--production-muted);
    font-size: var(--production-body-size);
    line-height: 26px;
    letter-spacing: -.02em;
}

.pdp-frame-production .pdp-production-journey > ol {
    margin: 32px 0 0;
    padding: 0;
    border-top: 1px solid var(--production-line);
    list-style: none;
}

.pdp-frame-production .pdp-production-journey__step {
    display: grid;
    min-height: 0;
    padding: 30px 0;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    border-bottom: 1px solid var(--production-line);
    background: transparent;
    box-sizing: border-box;
}

.pdp-frame-production .pdp-production-journey__step > span {
    padding-top: 2px;
    color: var(--production-muted);
    font-size: 16px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: .02em;
}

.pdp-frame-production .pdp-production-journey__step strong {
    color: var(--production-ink);
    font-size: var(--production-subheading-size);
    font-weight: 700;
    line-height: 28px;
    letter-spacing: -.02em;
}

.pdp-frame-production .pdp-production-journey__step p {
    margin-top: 8px;
    color: var(--production-muted);
    font-size: var(--production-body-size);
    line-height: 26px;
    letter-spacing: -.02em;
    word-break: keep-all;
}

/* Video is digital delivery: one answer, one compact process rail, then policy. */
body.pdp-video-unified-page .pdp-video-production-process {
    margin-top: 48px;
}

body.pdp-video-unified-page .pdp-video-production-process > h3,
body.pdp-video-unified-page .pdp-video-production-policies > h3 {
    margin: 0;
    color: var(--production-ink);
    font-size: var(--production-subheading-size);
    font-weight: 700;
    line-height: 30px;
    letter-spacing: -.025em;
}

body.pdp-video-unified-page .pdp-video-production-process > ol {
    display: grid;
    margin: 20px 0 0;
    padding: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--production-line);
    border-bottom: 1px solid var(--production-line);
    list-style: none;
}

body.pdp-video-unified-page .pdp-video-production-process li {
    min-width: 0;
    padding: 26px 24px 28px;
    border-left: 1px solid var(--production-line);
}

body.pdp-video-unified-page .pdp-video-production-process li:first-child {
    padding-left: 0;
    border-left: 0;
}

body.pdp-video-unified-page .pdp-video-production-process li > span {
    display: block;
    margin-bottom: 18px;
    color: var(--production-muted);
    font-size: 14px;
    font-weight: 700;
    line-height: 21px;
    letter-spacing: .04em;
}

body.pdp-video-unified-page .pdp-video-production-process strong {
    display: block;
    color: var(--production-ink);
    font-size: var(--production-subheading-size);
    font-weight: 600;
    line-height: 30px;
    letter-spacing: -.025em;
    word-break: keep-all;
}

body.pdp-video-unified-page .pdp-video-production-process p {
    margin: 10px 0 0;
    color: var(--production-muted);
    font-size: var(--production-body-size);
    line-height: 25.6px;
    letter-spacing: -.02em;
    word-break: keep-all;
}

body.pdp-video-unified-page .pdp-video-production-policies {
    margin-top: 52px;
}

body.pdp-video-unified-page .pdp-video-production-policy-list {
    margin-top: 20px;
    border-top: 1px solid var(--production-line);
}

/* One disclosure treatment: ruled rows and a quiet chevron. */
body.pdp-video-unified-page .pdp-video-production details,
html.fb-detail-renewal .pressb-policy-list details {
    margin: 0;
    border-top: 0;
    border-bottom: 1px solid var(--production-line);
    background: transparent;
}

html.fb-detail-renewal .pressb-policy-list {
    margin-top: 0;
    border-top: 0;
}

body.pdp-video-unified-page .pdp-video-production summary,
html.fb-detail-renewal .pressb-policy-list summary {
    position: relative;
    display: flex;
    min-height: 68px;
    margin: 0;
    padding: 20px 44px 20px 0;
    align-items: center;
    color: var(--production-ink);
    font-size: 18px;
    font-weight: 650;
    line-height: 27px;
    letter-spacing: -.02em;
    list-style: none;
    cursor: pointer;
    box-sizing: border-box;
}

body.pdp-video-unified-page .pdp-video-production summary {
    min-height: 64px;
    padding-top: 18px;
    padding-bottom: 18px;
    font-size: 16px;
    line-height: 25.6px;
}

body.pdp-video-unified-page .pdp-video-production summary::-webkit-details-marker,
html.fb-detail-renewal .pressb-policy-list summary::-webkit-details-marker {
    display: none;
}

body.pdp-video-unified-page .pdp-video-production summary::after,
html.fb-detail-renewal .pressb-policy-list summary::after {
    position: absolute;
    top: 50%;
    right: 4px;
    width: 9px;
    height: 9px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    color: var(--production-muted);
    content: '';
    transform: translateY(-65%) rotate(45deg);
}

body.pdp-video-unified-page .pdp-video-production details[open] summary::after,
html.fb-detail-renewal .pressb-policy-list details[open] summary::after {
    content: '';
    transform: translateY(-35%) rotate(225deg);
}

body.pdp-video-unified-page .pdp-video-production details > div,
html.fb-detail-renewal .pressb-policy-list details > div {
    max-width: 820px;
    margin: 0;
    padding: 0 0 32px;
    color: var(--production-muted);
    font-size: 15px;
    line-height: 24px;
    letter-spacing: -.02em;
    word-break: keep-all;
}

body.pdp-video-unified-page .pdp-video-production-policy-list details:last-child {
    border-bottom: 0;
}

/*
 * Wedding invitation is the production-section sizing reference.  Keep this
 * contract in the shared layer so family styles cannot drift independently.
 */
body.pdp-unified-product-detail #pdp-production .pdp-production-journey__header h3,
body.pdp-unified-product-detail #pdp-production .pdp-production-process > header h3,
html.fb-detail-renewal #tab-schedule .pressb-process-head strong {
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 28px !important;
    letter-spacing: -.02em;
}

body.pdp-unified-product-detail #pdp-production .pdp-production-journey__copy h4,
body.pdp-unified-product-detail #pdp-production .pdp-production-process h4,
html.fb-detail-renewal #tab-schedule .pressb-process-copy h3 {
    font-size: 20px !important;
    font-weight: 600 !important;
    line-height: 30px !important;
    letter-spacing: -.02em;
}

body.pdp-unified-product-detail #pdp-production :is(
    .pdp-production-journey__header p,
    .pdp-production-journey__copy > p,
    .pdp-production-process > header p,
    .pdp-production-process li p
),
html.fb-detail-renewal #tab-schedule :is(
    .pressb-process-head p,
    .pressb-process-copy p
) {
    font-size: 16px !important;
    line-height: 25.6px !important;
    letter-spacing: -.02em;
}

body.pdp-unified-product-detail #pdp-production .pdp-production-policy > summary,
body.pdp-unified-product-detail #pdp-production .pdp-production-accordion > summary,
html.fb-detail-renewal #tab-schedule .pressb-policy-list details > summary {
    min-height: 60px;
    margin: 0;
    padding: 0 42px 0 0;
    color: var(--production-ink);
    font-size: 15px;
    font-weight: 600;
    line-height: 24px;
    letter-spacing: -.02em;
    box-sizing: border-box;
}

body.pdp-unified-product-detail #pdp-production .pdp-production-policy__content,
body.pdp-unified-product-detail #pdp-production .pdp-production-policy__content :is(p, li),
body.pdp-unified-product-detail #pdp-production .pdp-production-accordion > div,
body.pdp-unified-product-detail #pdp-production .pdp-production-accordion :is(p, li),
body.pdp-video-unified-page #pdp-production details > div,
body.pdp-video-unified-page #pdp-production details > div p,
html.fb-detail-renewal #tab-schedule .pressb-policy-list details > div,
html.fb-detail-renewal #tab-schedule .pressb-policy-list details > div p {
    color: var(--production-muted);
    font-size: 16px;
    line-height: 25.6px;
    letter-spacing: -.02em;
}

body.pdp-unified-product-detail #pdp-production .pdp-production-policy__content,
body.pdp-unified-product-detail #pdp-production .pdp-production-accordion > div,
body.pdp-video-unified-page #pdp-production details > div,
html.fb-detail-renewal #tab-schedule .pressb-policy-list details > div {
    padding-top: 0;
    padding-bottom: 24px;
}

body.pdp-video-unified-page .pdp-video-production details p,
html.fb-detail-renewal .pressb-policy-list details p {
    margin: 0;
}

body.pdp-video-unified-page .pdp-video-production details p + p {
    margin-top: 8px;
}

/* PRESS B keeps its media, but follows the same rail and information rhythm. */
html.fb-detail-renewal #tab-schedule {
    width: min(var(--production-rail), 100%);
    margin-right: auto;
    margin-left: auto;
}

html.fb-detail-renewal #tab-schedule .pressb-lower-heading {
    margin-bottom: 32px;
}

html.fb-detail-renewal .pressb-production-summary {
    padding: 22px 0;
    border: 0;
    border-top: 1px solid var(--production-line);
    border-bottom: 1px solid var(--production-line);
    border-radius: 0;
    background: transparent;
}

html.fb-detail-renewal .pressb-process-block {
    margin-top: 56px;
}

html.fb-detail-renewal .pressb-policy-list {
    display: block;
    overflow: visible;
    margin: 32px 0 0;
    padding: 0;
    border-bottom: 0;
}

html.fb-detail-renewal .pressb-policy-list details > div {
    padding-right: 0;
}

@media (max-width: 768px) {
    :where(#pdp-production, body.pdp-video-unified-page, html.fb-detail-renewal) {
        --production-heading-size: 24px;
        --production-subheading-size: 18px;
        --production-body-size: 16px;
    }

    body.pdp-modern-page:not(.pdp-unified-product-detail) #pdp-production > .pdp-section-heading {
        width: auto;
        margin-right: var(--pdp-page-gutter, 16px);
        margin-left: var(--pdp-page-gutter, 16px);
    }

    #pdp-production > .pdp-section-heading {
        padding-top: 56px;
    }

    body.pdp-modern-page:not(.pdp-unified-product-detail) #pdp-production > .pdp-section-description {
        width: auto;
        margin: 0 var(--pdp-page-gutter, 16px) 28px;
    }

    body.pdp-unified-product-detail #pdp-production > .pdp-section-description {
        margin: 0 16px 28px;
    }

    .pdp-unified-production-section > .pdp-section-description,
    #pdp-production > .pdp-section-description,
    body.pdp-video-unified-page .pdp-video-section-title p,
    html.fb-detail-renewal #tab-schedule .pressb-lower-heading > p:last-child {
        line-height: 25.6px;
    }

    #pdp-production .pdp-production-journey__header h3,
    .pdp-frame-production .pdp-production-journey > h3 {
        font-size: 20px !important;
        line-height: 30px !important;
    }

    body.pdp-unified-product-detail #pdp-production .pdp-production-journey__header h3,
    body.pdp-unified-product-detail #pdp-production .pdp-production-process > header h3,
    html.fb-detail-renewal #tab-schedule .pressb-process-head strong {
        font-size: 20px !important;
        line-height: 30px !important;
    }

    .pdp-frame-production .pdp-production-summary,
    .pdp-message-card-production .pdp-production-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pdp-frame-production .pdp-production-summary > div,
    .pdp-message-card-production .pdp-production-summary > div {
        padding: 18px 14px;
    }

    .pdp-frame-production .pdp-production-summary > div:nth-child(odd),
    .pdp-message-card-production .pdp-production-summary > div:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }

    .pdp-frame-production .pdp-production-summary > div:nth-child(n + 3),
    .pdp-message-card-production .pdp-production-summary > div:nth-child(n + 3) {
        border-top: 1px solid var(--production-line);
    }

    .pdp-frame-production .pdp-production-journey,
    html.fb-detail-renewal .pressb-process-block {
        margin-top: 40px;
    }

    .pdp-frame-production .pdp-production-journey__step {
        padding: 24px 0;
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 14px;
    }

    .pdp-frame-production .pdp-production-journey__step strong {
        font-size: 20px;
        line-height: 30px;
    }

    .pdp-frame-production .pdp-production-journey__step p {
        font-size: 16px;
        line-height: 25.6px;
    }

    body.pdp-unified-product-detail #pdp-production .pdp-production-journey__copy h4,
    body.pdp-unified-product-detail #pdp-production .pdp-production-process h4,
    html.fb-detail-renewal #tab-schedule .pressb-process-copy h3 {
        font-size: 20px !important;
        line-height: 30px !important;
    }

    body.pdp-unified-product-detail #pdp-production .pdp-production-policy > summary,
    body.pdp-unified-product-detail #pdp-production .pdp-production-accordion > summary,
    body.pdp-video-unified-page #pdp-production details > summary,
    html.fb-detail-renewal #tab-schedule .pressb-policy-list details > summary {
        min-height: 60px;
        padding-top: 0;
        padding-bottom: 0;
        font-size: 16px;
        line-height: 25.6px;
    }

    body.pdp-unified-product-detail #pdp-production .pdp-production-policy__content,
    body.pdp-unified-product-detail #pdp-production .pdp-production-policy__content :is(p, li),
    body.pdp-unified-product-detail #pdp-production .pdp-production-accordion > div,
    body.pdp-unified-product-detail #pdp-production .pdp-production-accordion :is(p, li),
    body.pdp-video-unified-page #pdp-production details > div,
    body.pdp-video-unified-page #pdp-production details > div p,
    html.fb-detail-renewal #tab-schedule .pressb-policy-list details > div,
    html.fb-detail-renewal #tab-schedule .pressb-policy-list details > div p {
        font-size: 16px;
        line-height: 25.6px;
    }

    html.fb-detail-renewal #tab-schedule {
        width: auto;
        margin-right: 0;
        margin-left: 0;
    }

    html.fb-detail-renewal .pressb-production-summary {
        padding: 20px 0;
    }

    html.fb-detail-renewal .pressb-policy-list {
        display: block;
        overflow: visible;
        margin: 24px 0 0;
        padding: 0;
    }
}

@media (max-width: 768px) {
    body.pdp-video-unified-page .pdp-video-production-process {
        margin-top: 40px;
    }

    body.pdp-video-unified-page .pdp-video-production-process > ol {
        display: block;
        margin-top: 18px;
        border-bottom: 0;
    }

    body.pdp-video-unified-page .pdp-video-production-process li,
    body.pdp-video-unified-page .pdp-video-production-process li:first-child {
        display: grid;
        padding: 22px 0;
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 14px;
        border-left: 0;
        border-bottom: 1px solid var(--production-line);
    }

    body.pdp-video-unified-page .pdp-video-production-process li > span {
        margin: 2px 0 0;
        font-size: 15px;
        line-height: 24px;
    }

    body.pdp-video-unified-page .pdp-video-production-process > h3,
    body.pdp-video-unified-page .pdp-video-production-policies > h3,
    body.pdp-video-unified-page .pdp-video-production-process strong {
        font-size: 20px;
        line-height: 30px;
    }

    body.pdp-video-unified-page .pdp-video-production-policies {
        margin-top: 40px;
    }

    body.pdp-video-unified-page .pdp-video-production-policy-list {
        margin-top: 18px;
    }

    body.pdp-video-unified-page .pdp-video-production summary {
        min-height: 60px;
        padding-top: 16px;
        padding-bottom: 16px;
    }
}
