/*
 * Full-bleed product photography for the shared Product Template V1.
 * Product images retain their proportions and fill the visual card.
 */
body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-visual.gptv1-product-visual-media {
    display: block;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    aspect-ratio: 1 / 1;
}

body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-visual.gptv1-product-visual-media .gptv1-product-media-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center center;
}

/* Hide labels injected by the superseded 1.0.1 script if a visitor has stale markup. */
body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-visual.gptv1-product-visual-media .gptv1-product-media-stack {
    display: none !important;
}

/*
 * V1.0.4 keeps one document-status DOM block. Desktop uses independent
 * left and right Hero stacks: document availability follows the copy while
 * the actions follow Product Identity. Tablet and mobile retain the reading
 * order copy, actions, Product Identity, then document availability. The
 * detailed lower-page document section is not styled or moved here.
 */
body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-hero-side-stack {
    min-width: 0;
}

body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-hero .gptv1-hero-actions {
    margin-top: 0 !important;
}

@media (min-width: 1101px) {
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-hero-layout {
        grid-template-columns: minmax(0, 1.05fr) minmax(360px, .72fr);
        grid-template-areas:
            "copy side"
            "document side";
        grid-template-rows: auto auto;
        column-gap: clamp(34px, 4vw, 54px);
        row-gap: 18px;
        align-items: start;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-hero-copy {
        grid-area: copy;
        min-width: 0;
        align-self: start;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-hero-side-stack {
        grid-area: side;
        display: flex;
        flex-direction: column;
        gap: 18px;
        min-width: 0;
        align-self: stretch;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-hero-panel {
        order: 1;
        min-width: 0;
        align-self: stretch;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-hero .gptv1-hero-actions {
        order: 2;
        display: flex;
        flex-wrap: nowrap !important;
        width: 100%;
        min-width: 0;
        align-self: start;
        gap: 10px !important;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-hero .gptv1-hero-actions .grecho-v1-btn,
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-hero .gptv1-hero-actions .grecho-v1-btn-primary,
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-hero .gptv1-hero-actions .grecho-v1-btn-secondary,
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-hero .gptv1-hero-actions .gptv1-btn {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        padding: 0 clamp(10px, 1.3vw, 16px) !important;
        font-size: clamp(12px, 1.05vw, 14px) !important;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-product-visual.gptv1-product-visual-media {
        aspect-ratio: 5 / 4;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini {
        display: grid;
        grid-area: document;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-flow: row;
        grid-auto-rows: max-content;
        column-gap: 12px;
        row-gap: 6px;
        align-content: start;
        align-self: start;
        margin-top: 0;
        padding: 14px 16px;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini h3,
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-shared-status,
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-note {
        grid-column: 1 / -1;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini h3 {
        order: 0;
        margin: 0;
        font-size: 15px;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini .gptv1-document-mini-item {
        order: 2;
        display: block;
        min-width: 0;
        padding: 0;
        border-top: 0;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini .gptv1-document-mini-item span {
        color: rgba(255, 255, 255, .78);
        font-size: 11px;
        letter-spacing: 0;
        text-transform: none;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini .gptv1-document-mini-item-status {
        display: block;
        margin-top: 4px;
        color: rgba(255, 255, 255, .84);
        font-size: 11px;
        font-weight: 600;
        line-height: 1.35;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini.has-shared-status .gptv1-document-mini-item-status {
        display: none;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-shared-status {
        order: 1;
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 3px 8px;
        margin: 0;
        color: rgba(255, 255, 255, .9);
        font-size: 13px;
        line-height: 1.35;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-shared-status-label {
        color: rgba(255, 255, 255, .7);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .05em;
        text-transform: uppercase;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-shared-status-value {
        color: rgba(255, 255, 255, .94);
        font-size: 13px;
        font-weight: 700;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-note {
        order: 3;
        margin: 2px 0 0;
        color: rgba(255, 255, 255, .66);
        font-size: 11px;
        line-height: 1.45;
    }
}

@media (max-width: 1100px) {
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-hero-side-stack {
        display: flex;
        flex-direction: column;
        gap: 28px;
        min-width: 0;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini.has-shared-status .gptv1-document-mini-item-status {
        display: block;
    }

    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-shared-status,
    body.grecho-product-template-v1-body .grecho-global-page-v1.grecho-product-template-v1 .gptv1-document-mini-note {
        display: none;
    }
}
