/* Postais sobre papel, com a mesma luz e paleta da loja. */
.postcard-stack {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    isolation: isolate;
}

.postcard-sheet {
    position: absolute;
    display: block;
    width: 56%;
    aspect-ratio: 1.4;
    padding: clamp(5px, .7vw, 10px);
    background: #fffdf4;
    border: 1px solid rgba(109, 94, 60, .13);
    box-shadow: 0 3px 4px rgba(54, 42, 18, .12), 0 15px 23px rgba(54, 42, 18, .17);
    transform-origin: 50% 75%;
    transition: transform .45s ease, box-shadow .45s ease;
}

.postcard-sheet--left { left: 0; bottom: 15%; transform: rotate(-17deg); z-index: 1; }
.postcard-sheet--right { right: 0; bottom: 11%; transform: rotate(15deg); z-index: 2; }
.postcard-sheet--center { left: 50%; bottom: 7%; width: 38%; aspect-ratio: .7; transform: translateX(-50%) rotate(-1deg); z-index: 3; }

.postcard-stack .postcard-sheet img,
.store-catalog-editorial .product-card--postcards .prod-ph .postcard-sheet img {
    display: block;
    position: static;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    padding: 0;
    background: transparent;
    box-shadow: none;
    filter: none;
    transform: none;
}

.store-catalog-editorial .product-card--postcards .postcard-card-media {
    padding: 0;
    overflow: visible;
}

.store-catalog-editorial .product-card--postcards {
    grid-column: span 8;
}
.store-catalog-editorial .product-card--postcards .postcard-stack {
    width: min(440px, 90%);
    margin: 0 auto;
}
.store-catalog-editorial .product-card--postcards .postcard-card-media {
    height: clamp(290px, 27vw, 340px);
}
.postcard-product .postcard-stack {
    width: 88%;
    margin: 0 auto;
    transform: translateY(-10%);
}

.postcard-card-media:hover .postcard-sheet--left,
.postcard-card-media:focus-visible .postcard-sheet--left { transform: translateX(-3px) rotate(-19deg); }
.postcard-card-media:hover .postcard-sheet--right,
.postcard-card-media:focus-visible .postcard-sheet--right { transform: translateX(3px) rotate(17deg); }
.postcard-card-note {
    position: absolute;
    top: calc(100% + 9px);
    width: 100%;
    color: var(--nav-muted);
    font: 500 .6rem/1.6 var(--font-sans);
    letter-spacing: .035em;
}
.store-catalog-editorial .product-card--postcards .prod-meta { position: relative; }

.postcard-product {
    width: min(1240px, calc(100% - clamp(42px, 8vw, 120px)));
    margin: 0 auto;
    padding: 44px 0 100px;
}
.postcard-back {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--nav-earth);
    font: 600 .62rem/1.5 var(--font-sans);
    text-transform: uppercase;
    letter-spacing: .16em;
}
.postcard-back span { font-size: 1.5rem; }
.postcard-back:focus-visible { outline: 2px solid var(--nav-gold); outline-offset: 6px; }
.postcard-product-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    grid-template-areas: "media copy" "media purchase";
    align-items: start;
    column-gap: clamp(35px, 6vw, 85px);
    margin-top: 38px;
}
.postcard-product-media { grid-area: media; align-self: center; min-width: 0; }
.postcard-product-purchase { grid-area: purchase; min-width: 0; }
.postcard-fan-preview { width: 100%; aspect-ratio: 1.05; }
.postcard-selected {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin: 0;
    min-height: 480px;
}
.postcard-selected img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 470px;
    padding: 12px;
    background: #fffdf4;
    box-shadow: 0 4px 5px rgba(54, 42, 18, .12), 0 20px 32px rgba(54, 42, 18, .18);
    object-fit: contain;
}
.postcard-selected figcaption { color: var(--nav-muted); font: 500 .65rem/1.5 var(--font-sans); letter-spacing: .08em; }
.postcard-fan-preview[hidden], .postcard-selected[hidden] { display: none; }
.postcard-product-copy { grid-area: copy; min-width: 0; }
.postcard-eyebrow { margin: 0 0 18px; color: var(--nav-earth); font: 600 .6rem/1.6 var(--font-sans); letter-spacing: .17em; text-transform: uppercase; }
.postcard-product-copy h1 { margin: 0; color: var(--nav-ink); font: 500 clamp(3.1rem, 5vw, 4.7rem)/.96 var(--font-serif); letter-spacing: -.04em; }
.postcard-product-price { display: flex; align-items: baseline; gap: 12px; margin: 25px 0 0; color: var(--nav-earth); }
.postcard-product-price strong { font: 600 .85rem/1.5 var(--font-sans); letter-spacing: .13em; }
.postcard-product-price span { color: var(--nav-muted); font: 500 .65rem/1.5 var(--font-sans); }
.postcard-intro { margin: 24px 0 30px; color: var(--nav-ink); font: 400 1.25rem/1.45 var(--font-serif); }
.postcard-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; border: 0; }
.postcard-choices legend { margin-bottom: 13px; padding: 0; color: var(--nav-earth); font: 600 .65rem/1.5 var(--font-sans); letter-spacing: .09em; }
.postcard-choice { position: relative; min-width: 0; cursor: pointer; }
.postcard-choice input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.postcard-choice-content { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 10px 7px 12px; border: 1px solid var(--nav-line); border-radius: 3px; background: rgba(255, 253, 244, .4); transition: background .2s ease, border-color .2s ease; }
.postcard-choice-image { display: flex; align-items: center; justify-content: center; height: 84px; width: 100%; }
.postcard-choice-image img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.postcard-choice-name { color: var(--nav-ink); font: 600 .6rem/1.4 var(--font-sans); letter-spacing: .055em; }
.postcard-choice input:checked + .postcard-choice-content { border-color: var(--nav-earth); background: var(--nav-parchment); box-shadow: inset 0 0 0 1px var(--nav-earth); }
.postcard-choice input:focus-visible + .postcard-choice-content { outline: 2px solid var(--nav-gold); outline-offset: 3px; }
.postcard-choice:hover .postcard-choice-content { border-color: var(--nav-earth); }
.postcard-choice.is-unavailable { cursor: default; opacity: .6; }
.postcard-choice small { color: var(--nav-earth); font: 500 .55rem/1.4 var(--font-sans); }
.postcard-selection { min-height: 2.8em; margin: 15px 0 10px; color: var(--nav-muted); font: 500 .65rem/1.4 var(--font-sans); }
.postcard-buy { width: 100%; min-height: 48px; padding: 12px 20px; border: 1px solid var(--nav-earth); border-radius: 999px; background: var(--nav-earth); color: var(--nav-cream); font: 600 .65rem/1.5 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.postcard-buy:hover { background: #704615; }
.postcard-buy:focus-visible { outline: 2px solid var(--nav-gold); outline-offset: 4px; }
.postcard-buy:disabled { opacity: .5; cursor: default; }
.postcard-purchase-note { margin: 14px 0 0; color: var(--nav-muted); font: 500 .6rem/1.5 var(--font-sans); text-align: center; }
.postcard-details { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--nav-line); color: var(--nav-ink); }
.postcard-details[hidden], .postcard-details [hidden], [data-postcard-price-unit][hidden] { display: none; }
.postcard-details h2 { margin: 0 0 12px; font: 500 1.6rem/1.15 var(--font-serif); }
.postcard-details p { margin: 12px 0; white-space: pre-line; overflow-wrap: anywhere; font: 400 .78rem/1.7 var(--font-sans); }
.postcard-product-copy .postcard-detail-lead { margin:24px 0 28px; color:var(--nav-ink); font:400 1.18rem/1.5 var(--font-serif); white-space:pre-line; }
.postcard-details [data-postcard-detail="availability"] { color: var(--nav-earth); font-weight: 600; }
.postcard-details dl { margin: 20px 0; display: grid; gap: 10px; }
.postcard-details dl > div { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(0, 1.5fr); gap: 12px; font: 400 .7rem/1.5 var(--font-sans); }
.postcard-details dt { color: var(--nav-muted); }
.postcard-details dd { margin: 0; overflow-wrap: anywhere; }

/* No computador, os postais completam a fila ao lado de Voo em Azul. */
@media (min-width: 901px) {
    /* A imagem escolhida acompanha o topo do título, independentemente da descrição. */
    .postcard-product-media:has(.postcard-selected:not([hidden])) {
        align-self: start;
    }
    .postcard-selected {
        min-height: 0;
        justify-content: flex-start;
        padding-top: clamp(22px, 3.4vw, 56px);
    }
    .store-catalog-editorial .product-card--postcards {
        grid-column: span 4;
    }
    .store-catalog-editorial .product-card--postcards .postcard-card-media {
        height: clamp(250px, 23.7vw, 305px);
    }
    .store-catalog-editorial .product-card--postcards .postcard-stack {
        height: 100%;
        aspect-ratio: auto;
    }
    .store-catalog-editorial .product-card--postcards .postcard-sheet--center {
        width: 58%;
    }
    .store-catalog-editorial .product-card--postcards .postcard-sheet--left,
    .store-catalog-editorial .product-card--postcards .postcard-sheet--right {
        width: 64%;
    }
    .store-catalog-editorial .product-card--postcards .postcard-sheet--left {
        left: -7%;
    }
    .store-catalog-editorial .product-card--postcards .postcard-sheet--right {
        right: -7%;
    }
}

@media (max-width: 900px) {
    /* On tablets the fan spans the row; phones use the paired layout below. */
    .store-catalog-editorial .product-grid > .product-card--postcards {
        grid-column: 1 / -1;
        width: 100%;
        justify-self: stretch;
    }
    .store-catalog-editorial .product-grid .product-card--postcards .postcard-card-media {
        display: block;
        height: auto;
        padding: 0;
    }
    .store-catalog-editorial .product-card--postcards .postcard-stack {
        height: auto;
        aspect-ratio: 1.45;
    }
    /* A escolha do modelo precisa de espaço também nos tablets estreitos. */
    .postcard-product { width: calc(100% - 42px); padding: 25px 0 65px; }
    .postcard-product-layout {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "copy" "media" "purchase";
        gap: 24px;
        margin-top: 24px;
    }
    /* A pré-visualização e os modelos ficam juntos, sem saltos ao escolher. */
    .postcard-product-media {
        width: min(390px, 100%);
        height: 300px;
        height: clamp(240px, 42svh, 340px);
        margin: 0 auto;
    }
    .postcard-fan-preview { height: 100%; aspect-ratio: auto; }
    .postcard-product-copy,
    .postcard-product-purchase { width: min(420px, 100%); margin: 0 auto; }
    .postcard-product-copy h1 { font-size: 3.45rem; }
    .postcard-intro { margin-bottom: 0; }
    .postcard-selected { height: 100%; min-height: 0; gap: 12px; }
    .postcard-selected img { max-height: calc(100% - 32px); }
    .postcard-choice-image { height: 82px; }
}

@media (max-width: 560px) {
    .store-catalog-editorial .product-grid > .product-card--postcards {
        grid-column: auto;
    }
    .store-catalog-editorial .product-grid .product-card--postcards .postcard-card-media {
        display: flex;
        height: clamp(160px, 51vw, 260px);
    }
    .store-catalog-editorial .product-card--postcards .postcard-stack {
        height: 100%;
        aspect-ratio: auto;
    }
    .store-catalog-editorial .product-card--postcards .postcard-sheet--center {
        width: 56%;
        bottom: 0;
    }
    .store-catalog-editorial .product-card--postcards .postcard-sheet--left,
    .store-catalog-editorial .product-card--postcards .postcard-sheet--right {
        width: 62%;
    }
    .store-catalog-editorial .product-card--postcards .postcard-card-note {
        position: static;
    }
}

@media (prefers-reduced-motion: reduce) {
    .postcard-sheet, .postcard-choice-content { transition: none; }
}

.postcard-collections {
    width: min(1120px, calc(100% - clamp(42px, 8vw, 120px)));
    margin: 0 auto;
    padding: 42px 0 90px;
}
.postcard-collections-heading { margin: 40px 0 35px; text-align: center; }
.postcard-collections-heading .postcard-eyebrow { margin-bottom: 15px; }
.postcard-collections-heading h1 {
    margin: 0;
    color: var(--nav-ink);
    font: 500 clamp(3.4rem, 6vw, 5rem)/.95 var(--font-serif);
    letter-spacing: -.04em;
}
.postcard-collections-heading h1 em { color: var(--nav-earth); font-weight: 400; }
.postcard-collections-heading > p:last-child { margin: 19px 0 0; color: var(--nav-muted); font: 400 1.2rem/1.45 var(--font-serif); }
.postcard-collection-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.postcard-collection-card { overflow: hidden; border: 1px solid var(--nav-line); border-radius: 6px; background: rgba(255, 253, 244, .42); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.postcard-collection-card:hover { border-color: var(--nav-earth); box-shadow: 0 10px 25px rgba(75, 64, 35, .06); }
.postcard-collection-card:focus-visible { outline: 2px solid var(--nav-gold); outline-offset: 5px; }
.postcard-collection-art { height: 300px; padding: 25px 20px 0; }
.postcard-collection-art .postcard-stack { width: 85%; height: 100%; margin: auto; }
.postcard-collection-art .postcard-sheet--center { width: 48%; }
.postcard-collection-art .postcard-sheet--left,
.postcard-collection-art .postcard-sheet--right { width: 65%; }
.postcard-collection-caption { padding: 30px; }
.postcard-collection-count { color: var(--nav-earth); font: 500 .62rem/1.5 var(--font-sans); letter-spacing: .04em; }
.postcard-collection-caption h2 { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; margin: 10px 0 0; color: var(--nav-ink); font: 500 2.5rem/1.05 var(--font-serif); letter-spacing: -.025em; }
.postcard-collection-caption h2 span { color: var(--nav-earth); font: 400 1.2rem/1 var(--font-sans); }
.postcard-collection-caption p { margin: 13px 0 0; color: var(--nav-muted); font: 400 1.1rem/1.4 var(--font-serif); }
.postcard-topline { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.postcard-change-collection { color: var(--nav-earth); font: 500 .65rem/1.4 var(--font-sans); text-underline-offset: 4px; }
.postcard-series-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 27px; }
.postcard-series-nav a { padding: 10px 16px; border: 1px solid var(--nav-line); border-radius: 999px; color: var(--nav-earth); font: 500 .66rem/1.35 var(--font-sans); text-decoration: none; }
.postcard-series-nav a[aria-current] { border-color: var(--nav-earth); background: var(--nav-earth); color: var(--nav-cream); }
.postcard-series-nav a:focus-visible { outline: 2px solid var(--nav-gold); outline-offset: 3px; }
.postcard-choose-intro { margin: 20px 0 8px; color: var(--nav-muted); font: 400 1.12rem/1.45 var(--font-serif); }
.postcard-product-purchase .postcard-details { margin: 14px 0 22px; padding-top: 18px; }
.postcard-product-purchase .postcard-buy { margin-top: 20px; }

@media (max-width: 560px) {
    .postcard-collections { width: calc(100% - 42px); padding: 25px 0 60px; }
    .postcard-collections-heading { margin: 28px 0 27px; }
    .postcard-collections-heading h1 { font-size: 3.4rem; }
    .postcard-collections-heading > p:last-child { max-width: 28ch; margin: 16px auto 0; font-size: 1.08rem; }
    .postcard-collection-grid { gap: 12px; }
    .postcard-collection-art { height: 160px; padding: 13px 4px 0; }
    .postcard-collection-art .postcard-stack { width: 91%; }
    .postcard-collection-art .postcard-sheet { padding: 3px; }
    .postcard-collection-art .postcard-sheet--center { width: 56%; bottom: 0; }
    .postcard-collection-art .postcard-sheet--left,
    .postcard-collection-art .postcard-sheet--right { width: 69%; }
    .postcard-collection-caption { padding: 20px 12px 18px; }
    .postcard-collection-count { display: block; min-height: 27px; font-size: .55rem; }
    .postcard-collection-caption h2 { min-height: 2.05em; margin-top: 7px; font-size: 1.65rem; }
    .postcard-collection-caption h2 span { font-size: .85rem; }
    .postcard-collection-caption p { font-size: .96rem; }
    .postcard-back { font-size: .52rem; letter-spacing: .11em; }
    .postcard-change-collection { font-size: .59rem; }
    .postcard-series-nav { margin-top: 20px; }
    .postcard-series-nav a { padding: 9px 14px; font-size: .64rem; }
    .postcard-choices--porto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .postcard-choices--porto .postcard-choice-image { height: 92px; }
    .postcard-product-copy h1 { font-size: 3.15rem; }
}
