/**
 * Ondacor — Archive CSS
 * Sub-fase G2 — header editorial (breadcrumb italic, título 64px, descrição respirada).
 */


/* ---------- Container ---------- */
.ondacor-archive {
    max-width: 1280px;
    margin: 0 auto;
    padding: 60px 32px 120px;
    color: var(--ond-ink);
    background: var(--ond-paper);
    font-family: var(--ond-sans);
}

/* ---------- Header ---------- */
.ondacor-archive-header {
    margin-bottom: 56px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--ond-rule);
}

/* G2 — Breadcrumb italic editorial */
.ondacor-archive-breadcrumb {
    font-family: var(--ond-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 15px;
    line-height: 1.4;
    color: var(--ond-muted);
    margin: 0 0 28px;
}

.ondacor-archive-breadcrumb a {
    color: var(--ond-muted);
    text-decoration: none;
    transition: color 0.25s ease;
}

.ondacor-archive-breadcrumb a:hover {
    color: var(--ond-accent);
}

.ondacor-archive-breadcrumb .breadcrumb-separator {
    display: inline-block;
    margin: 0 10px;
    opacity: 0.45;
    font-style: normal;
}

/* G2 — Título Cormorant 64px responsive */
.ondacor-archive-title {
    font-family: var(--ond-serif);
    font-weight: 300;
    font-size: 64px;
    line-height: 1.05;
    letter-spacing: -0.015em;
    margin: 0 0 24px;
    color: var(--ond-ink);
}

/* G2 — Descrição editorial respirada */
.ondacor-archive-description {
    font-family: var(--ond-sans);
    color: var(--ond-ink);
    font-size: 16px;
    line-height: 1.7;
    max-width: 620px;
    opacity: 0.82;
}

.ondacor-archive-description p { margin: 0 0 12px; }
.ondacor-archive-description p:last-child { margin-bottom: 0; }
.ondacor-archive-description strong { font-weight: 600; }

/* ---------- Chips de subcategorias (G3) ---------- */
.ondacor-archive-chips {
    margin: 0 0 56px;
}

.ondacor-archive-chips-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ondacor-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    font-family: var(--ond-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ond-ink);
    background: transparent;
    border: 1px solid var(--ond-rule);
    border-radius: 999px;
    text-decoration: none;
    line-height: 1;
    transition: border-color 0.25s ease, color 0.25s ease, background-color 0.25s ease;
}

.ondacor-chip:hover {
    border-color: var(--ond-accent);
    color: var(--ond-accent);
}

.ondacor-chip.is-current {
    background: var(--ond-ink);
    color: var(--ond-paper);
    border-color: var(--ond-ink);
}

.ondacor-chip.is-current:hover {
    background: var(--ond-accent);
    border-color: var(--ond-accent);
    color: var(--ond-paper);
}

.ondacor-chip-count {
    font-size: 10px;
    opacity: 0.6;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
}

/* ---------- Grid (G1) ---------- */
.ondacor-archive ul.products {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 24px;
    grid-auto-flow: row;
}

.ondacor-archive ul.products::before,
.ondacor-archive ul.products::after {
    display: none !important;
    content: none !important;
}

.ondacor-archive ul.products > *:not(.product),
.ondacor-archive ul.products > li:not(.product) {
    display: none !important;
}

.ondacor-archive ul.products > li.product {
    grid-column: auto !important;
    grid-row: auto !important;
}

/* ---------- Card (G1, refinements em G5) ---------- */
.ondacor-product-card {
    list-style: none;
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    clear: none !important;
}

.ondacor-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.ondacor-card-image {
    overflow: hidden;
    background: #f5f3ee;
}

.ondacor-card-image img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.6s ease;
}

.ondacor-card-link:hover .ondacor-card-image img {
    transform: scale(1.03);
}

.ondacor-card-info {
    padding-top: 16px;
}

.ondacor-card-title {
    font-family: var(--ond-serif);
    font-weight: 400;
    font-size: 20px;
    line-height: 1.3;
    margin: 0 0 8px;
}

.ondacor-card-price {
    font-family: var(--ond-sans);
    font-size: 14px;
    color: var(--ond-muted);
    margin-bottom: 8px;
}

.ondacor-card-cta {
    display: inline-block;
    font-family: var(--ond-sans);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ond-accent);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.ondacor-card-link:hover .ondacor-card-cta {
    opacity: 1;
    transform: translateX(0);
}

/* ---------- Sentinel + Loader (G1.1) ---------- */
.ondacor-archive-sentinel {
    min-height: 80px;
    margin-top: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ondacor-archive-loader {
    font-family: var(--ond-sans);
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ond-muted);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.ondacor-archive-loader.is-loading {
    opacity: 1;
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
    .ondacor-archive-title { font-size: 48px; }
    .ondacor-archive-header { margin-bottom: 48px; padding-bottom: 32px; }
}

@media (max-width: 768px) {
    .ondacor-archive {
        padding: 32px 16px 80px;
    }
    .ondacor-archive-breadcrumb {
        font-size: 13px;
        margin-bottom: 20px;
    }
    .ondacor-archive-breadcrumb .breadcrumb-separator {
        margin: 0 6px;
    }
    .ondacor-archive-title { font-size: 36px; }
    .ondacor-archive-description { font-size: 15px; }

    .ondacor-archive-chips {
        margin-bottom: 32px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .ondacor-archive-chips-list {
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }
    .ondacor-chip {
        flex-shrink: 0;
        font-size: 10px;
        padding: 8px 14px;
    }

    .ondacor-archive ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 16px;
    }
}

/* ---------- G2.1 — breadcrumb refinements (override Elementor) ---------- */
.ondacor-archive .ondacor-archive-breadcrumb {
    margin: 0 0 48px; /* mais respiro até ao título */
}

.ondacor-archive .ondacor-archive-breadcrumb,
.ondacor-archive .ondacor-archive-breadcrumb a,
.ondacor-archive .ondacor-archive-breadcrumb a:visited {
    color: var(--ond-muted) !important;
    text-decoration: none !important;
}

.ondacor-archive .ondacor-archive-breadcrumb a:hover,
.ondacor-archive .ondacor-archive-breadcrumb a:focus {
    color: var(--ond-accent) !important;
    text-decoration: none !important;
}

.ondacor-archive .ondacor-archive-breadcrumb .breadcrumb-current {
    color: var(--ond-ink) !important;
    font-style: italic;
}

.ondacor-archive .ondacor-archive-breadcrumb .breadcrumb-separator {
    color: var(--ond-muted) !important;
    opacity: 0.4;
    margin: 0 10px;
    font-style: normal;
}

@media (max-width: 768px) {
    .ondacor-archive .ondacor-archive-breadcrumb {
        margin-bottom: 32px;
    }
    .ondacor-archive .ondacor-archive-breadcrumb .breadcrumb-separator {
        margin: 0 6px;
    }
}

/* ============================================================
 * G5 — Cards editorial refinement
 * Hover lift, aspect-ratio 1:1, CTA visível, accent line subtil.
 * ============================================================ */

/* Container — lift no hover */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-product-card {
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-product-card:hover {
    transform: translateY(-6px);
}

/* Imagem — aspect-ratio uniforme, contain mantém proporções */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-image {
    aspect-ratio: 1 / 1;
    position: relative;
    background: #f7f5ef;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

/* Linha dourada que cresce sob a imagem em hover */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-image::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1.5px;
    background: var(--ond-accent);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:hover .ondacor-card-image::after {
    transform: scaleX(1);
}

/* Info area com mais respiro */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-info {
    padding-top: 20px;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-title {
    font-size: 22px;
    line-height: 1.25;
    margin: 0 0 6px;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-price {
    font-size: 13px;
    margin: 0 0 12px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-price .woocommerce-Price-amount {
    font-weight: 500;
}

/* CTA "Personalizar →" — visível com fade, ganha presença em hover */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-cta {
    opacity: 0.55;
    transform: translateX(0);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:hover .ondacor-card-cta {
    opacity: 1;
    transform: translateX(3px);
}

/* Mobile — sem lift (touch não tem hover) e cards mais compactos */
@media (max-width: 768px) {
    :is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-product-card:hover {
        transform: none;
    }
    :is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-title {
        font-size: 17px;
    }
    :is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-info {
        padding-top: 14px;
    }
    :is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-image::after {
        display: none; /* hover irrelevante em touch, omitir o ornament */
    }
}

/* ============================================================
 * G7.1 — força CTA "Personalizar →" visível por defeito
 * !important para imbatível face a qualquer override
 * ============================================================ */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-cta {
    opacity: 0.65 !important;
    transform: translateX(0) !important;
    transition: opacity 0.3s ease, transform 0.3s ease !important;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:hover .ondacor-card-cta {
    opacity: 1 !important;
    transform: translateX(3px) !important;
}

/* G7 — uniformiza altura dos cards quando títulos têm comprimentos diferentes */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-title {
    min-height: 2.5em;
}
/* ============================================================
 * G7 — Mobile chips wrap (em vez de scroll horizontal)
 * ============================================================ */
@media (max-width: 768px) {
    .ondacor-archive .ondacor-archive-chips {
        overflow-x: visible !important;
    }
    .ondacor-archive .ondacor-archive-chips-list {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
    .ondacor-archive .ondacor-chip {
        flex-shrink: 1 !important;
    }
}

/* ============================================================
 * G7 — Cards com flex-column: price/CTA sempre no bottom
 * Resolve o desalinhamento quando títulos têm 1, 2 ou 3+ linhas.
 * ============================================================ */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-product-card {
    display: flex !important;
    flex-direction: column !important;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
    height: 100% !important;
}

:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-info {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}

/* Anula o min-height anterior — flex-grow trata da uniformidade */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-title {
    min-height: 0 !important;
}

/* Empurra price + CTA para o fundo */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-price {
    margin-top: auto !important;
}

/* ============================================================
 * G8.2 — Override do reset.css que aplica a:hover { color: #336 }
 * em links de cards. Força a card-link a manter cor inherited
 * em TODOS os estados (default, hover, active, focus, visited).
 * ============================================================ */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link,
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:hover,
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:active,
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:focus,
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:visited {
    color: inherit !important;
    text-decoration: none !important;
}

/* Cinto-e-suspensórios: força o título a ser warm brown
   independentemente de qualquer cascade externa */
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-title,
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:hover .ondacor-card-title,
:is(.ondacor-archive, body.single-product .related, body.single-product .upsells) .ondacor-card-link:active .ondacor-card-title {
    color: var(--ond-ink) !important;
}


/* ============================================================
 * K-fix — Fallback explícito para related/upsells
 * 
 * As regras :is() acima não estão a aplicar o hover lift e
 * o gold ::after line no contexto single-related/upsells.
 * Estas regras explícitas (sem :is()) garantem paridade visual.
 * ============================================================ */

/* Hover lift */
body.single-product .related .ondacor-product-card,
body.single-product .upsells .ondacor-product-card {
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

body.single-product .related .ondacor-product-card:hover,
body.single-product .upsells .ondacor-product-card:hover {
    transform: translateY(-6px) !important;
}

/* Image container — position relative para suportar ::after */
body.single-product .related .ondacor-card-image,
body.single-product .upsells .ondacor-card-image {
    position: relative !important;
}

/* Gold accent line under image */
body.single-product .related .ondacor-card-image::after,
body.single-product .upsells .ondacor-card-image::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 1.5px !important;
    background: var(--ond-accent) !important;
    transform: scaleX(0) !important;
    transform-origin: left center !important;
    transition: transform 0.45s cubic-bezier(0.65, 0, 0.35, 1) !important;
}

body.single-product .related .ondacor-card-link:hover .ondacor-card-image::after,
body.single-product .upsells .ondacor-card-link:hover .ondacor-card-image::after {
    transform: scaleX(1) !important;
}

/* Mobile — match archive behaviour (sem lift, sem accent line) */
@media (max-width: 768px) {
    body.single-product .related .ondacor-product-card:hover,
    body.single-product .upsells .ondacor-product-card:hover {
        transform: none !important;
    }
    body.single-product .related .ondacor-card-image::after,
    body.single-product .upsells .ondacor-card-image::after {
        display: none !important;
    }
}
