/**
 * Flavor Coleções — Frontend CSS
 * Layout fiel à referência visual (Coleção Riviera).
 *
 * 5 blocos:
 *  1. Topbar        (.fc-topbar)
 *  2. Hero          (.fc-hero)
 *  3. Produtos      (.fc-secao-produtos, .fc-carousel-wrap)
 *  4. CTA           (.fc-cta-wrap, .fc-btn-comprar-todos)
 *  5. Criador       (.fc-secao-criador)
 */

/* ==========================================================================
   TOKENS + RESET
   ========================================================================== */

.fc-page {
    --fc-creme:       #EAE4D3;
    --fc-verde:       #223829;
    --fc-verde-mid:   #3A7D4E;
    --fc-verde-pale:  #E3E8DE;
    --fc-bege-borda:  #BFBB9B;
    --fc-bege-card:   #F2EEE4;
    --fc-texto:       #223829;
    /* Verde da marca com alfa — o mesmo recurso que o resto do projeto usa para texto de
       apoio. Antes era #6B7A6E, um verde-cinza que não existe na paleta. O alfa é .75 e não
       menos: com .70 o contraste sobre o creme dava 4,38:1, abaixo dos 4,5 exigidos para
       texto pequeno. Com .75 fica 5,03:1 no creme e 5,27:1 no off-white. */
    --fc-muted:       rgba(34, 56, 41, .75);
    --fc-white:       #ffffff;
    --fc-danger:      #B35A32;

    --fc-radius:      0;
    --fc-radius-chip: 0;
    --fc-radius-card: 0;
    --fc-radius-pill: 0;
    --fc-transition:  .2s ease;

    --fc-font-display: "Poppins", "Helvetica Neue", Arial, sans-serif;
    --fc-font-body: "SFPRODISPLAY", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    font-family: var(--fc-font-body);
    background: var(--fc-creme);
    color: var(--fc-texto);
}

.fc-page *, .fc-page *::before, .fc-page *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.fc-page img    { display: block; }
.fc-page button { font-family: inherit; }
.fc-page a      { text-decoration: none; }

/* ==========================================================================
   BLOCO 1 — TOPBAR
   ========================================================================== */

.fc-topbar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 40px;
    background: var(--fc-white);
    border-bottom: 1px solid var(--fc-bege-borda);
    position: sticky;
    top: 0;
    z-index: 100;
}

.fc-topbar-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .78rem;
    font-weight: 500;
    color: var(--fc-muted);
    letter-spacing: .04em;
    transition: color var(--fc-transition);
}

.fc-topbar-link:hover { color: var(--fc-verde); }

.fc-topbar-arrow { font-size: 1rem; line-height: 1; }

.fc-topbar-sep { color: var(--fc-bege-borda); user-select: none; }

.fc-topbar-pill {
    font-family: var(--fc-font-display);
    display: inline-block;
    padding: 4px 14px;
    background: var(--fc-verde);
    color: var(--fc-white);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    border-radius: var(--fc-radius-pill);
}

/* ==========================================================================
   BLOCO 2 — HERO (split 50/50)
   ========================================================================== */

/* Briefing: topo mais alto (340 → 480px). Sem véu sobre a foto, como o manual pede. */
.fc-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 480px;
    background: var(--fc-creme);
    overflow: hidden;
}

.fc-hero.no-image { grid-template-columns: 1fr; }

/* Esquerda */
/* Briefing: título da coleção centralizado — a coluna de texto inteira centraliza junto. */
.fc-hero-left {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 56px 48px;
    gap: 18px;
}

.fc-hero-titulo-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.fc-hero-prefix {
    font-family: var(--fc-font-body);
    font-size: .9rem;
    font-weight: 400;
    letter-spacing: .22em;
    color: var(--fc-verde);
    text-transform: uppercase;
    line-height: 1;
    margin-bottom: -4px;
}

/* SF Pro Regular. Duas classes: o mu-plugin de tipografia força Poppins em `[class^="fc-"] h1`. */
.fc-hero .fc-hero-nome {
    font-family: var(--fc-font-body);
    font-size: clamp(2.6rem, 6vw, 4.2rem);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--fc-verde);
    line-height: 1;
}

.fc-hero-tagline {
    font-size: 1rem;
    color: var(--fc-muted);
    font-style: normal;
    letter-spacing: .03em;
    line-height: 1.5;
}

.fc-hero-badge {
    font-family: var(--fc-font-body);
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 8px 18px;
    border: 1px solid var(--fc-verde);
    border-radius: var(--fc-radius-chip);
    font-size: .72rem;
    font-weight: 400;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--fc-verde);
    background: transparent;
    line-height: 1;
}

.fc-hero-crumb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: .78rem;
    color: var(--fc-muted);
    letter-spacing: .04em;
}

.fc-hero-crumb-sep { opacity: .4; }

/* Direita */
.fc-hero-right {
    position: relative;
    overflow: hidden;
    background: var(--fc-bege-card);
}

.fc-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* ==========================================================================
   BLOCO 3 — NAVEGAÇÃO DE TAMANHOS
   ========================================================================== */

.fc-tamanho-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 20px 40px;
    background: var(--fc-white);
    border-bottom: 1px solid var(--fc-bege-borda);
    position: sticky;
    top: 57px;       /* abaixo da topbar (~57px) */
    z-index: 90;
}

.fc-tamanho-tab {
    font-family: var(--fc-font-display);
    display: inline-flex;
    align-items: center;
    padding: 7px 18px;
    border: 1.5px solid var(--fc-verde);
    border-radius: var(--fc-radius-pill);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fc-verde);
    background: transparent;
    text-decoration: none;
    transition: background var(--fc-transition), color var(--fc-transition);
}

.fc-tamanho-tab:hover,
.fc-tamanho-tab.active {
    background: var(--fc-verde);
    color: var(--fc-white);
}

/* ==========================================================================
   BLOCO 4 — SEÇÕES POR TAMANHO
   ========================================================================== */

.fc-tamanho-secao {
    padding: 56px 40px 48px;
    background: var(--fc-creme);
    border-bottom: 1px solid var(--fc-bege-borda);
    scroll-margin-top: 120px;   /* offset para sticky topbar + nav de tamanhos */
}

.fc-tamanho-secao:last-of-type { border-bottom: none; }

/* Cabeçalho do tamanho (multi-variante) */
.fc-tamanho-header {
    text-align: center;
    margin-bottom: 36px;
}

.fc-tamanho-titulo {
    font-family: var(--fc-font-display);
    font-size: 1.05rem;
    font-weight: 400;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--fc-texto);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
}

.fc-tamanho-titulo strong {
    font-weight: 700;
    color: var(--fc-verde);
}

.fc-tamanho-badge {
    font-family: var(--fc-font-display);
    display: inline-flex;
    align-items: center;
    padding: 4px 14px;
    background: var(--fc-verde);
    color: var(--fc-white);
    border-radius: var(--fc-radius-pill);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* Cabeçalho mono-variante */
.fc-secao-header {
    text-align: center;
    margin-bottom: 36px;
}

.fc-secao-titulo {
    font-family: var(--fc-font-display);
    font-size: 1.05rem;
    font-weight: 400;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--fc-texto);
}

.fc-secao-titulo strong {
    font-weight: 700;
    color: var(--fc-verde);
}

/* Wrapper do carrossel */
.fc-carousel-wrap {
    position: relative;
}

/* Track scrollável */
/* Briefing: mais espaço entre os itens da coleção (20 → 32px). */
.fc-carousel-track {
    display: flex;
    gap: 32px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.fc-carousel-track::-webkit-scrollbar { display: none; }

/* Card individual */
.fc-produto-card {
    flex: 0 0 220px;
    scroll-snap-align: start;
    background: var(--fc-white);
    border: 1px solid var(--fc-bege-borda);
    border-radius: var(--fc-radius-card);
    box-shadow: none;
    overflow: hidden;
    transition: box-shadow var(--fc-transition), transform var(--fc-transition);
    display: flex;
    flex-direction: column;
}

.fc-produto-card:hover {
    box-shadow: none;
    transform: translateY(-2px);
}

.fc-produto-card.esgotado { opacity: .65; }

/* Imagem: quadrado */
.fc-produto-img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: var(--fc-bege-card);
    overflow: hidden;
}

.fc-produto-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 12px;
    transition: transform .3s ease;
}

.fc-produto-card:hover .fc-produto-img-wrap img {
    transform: scale(1.05);
}

/* Badges */
.fc-badge {
    font-family: var(--fc-font-display);
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 3px 8px;
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    border-radius: var(--fc-radius-chip);
}

.fc-badge.esgotado-badge { background: var(--fc-danger); color: #fff; }
.fc-badge.sale-badge     { background: #904B2C; color: #fff; }

/* Info do produto */
.fc-produto-info {
    padding: 10px 12px 6px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}

/* Briefing (slide 11): nome do produto em SF Pro Regular, preço em Poppins Regular. Duas classes
   no nome: o mu-plugin de tipografia força Poppins em `[class^="fc-"] h3`. */
.fc-produto-card .fc-produto-nome {
    font-family: var(--fc-font-body);
    font-size: .78rem;
    font-weight: 400;
    line-height: 1.3;
    color: var(--fc-texto);
}

.fc-produto-nome a {
    color: inherit;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.fc-produto-nome a:hover { color: var(--fc-verde); }

.fc-produto-preco {
    font-family: var(--fc-font-display);
    font-size: .8rem;
    font-weight: 400;
    color: var(--fc-verde);
}

/* Ícones de ação */
.fc-produto-acoes {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px 10px;
    border-top: 1px solid var(--fc-bege-borda);
}

.fc-acao-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 0;
    border: 1.5px solid var(--fc-verde);
    background: transparent;
    color: var(--fc-verde);
    cursor: pointer;
    transition: background var(--fc-transition), color var(--fc-transition);
    padding: 0;
    flex-shrink: 0;
}

.fc-acao-btn svg {
    width: 13px;
    height: 13px;
    pointer-events: none;
}

.fc-acao-btn:hover {
    background: var(--fc-verde);
    color: var(--fc-white);
}

/* Ver produto: herda o verde do fc-acao-btn */
.fc-acao-ver { /* estilo herdado de .fc-acao-btn */ }

.fc-acao-btn.disabled {
    opacity: .35;
    cursor: not-allowed;
    pointer-events: none;
}

.fc-acao-cart.added {
    background: var(--fc-verde);
    color: var(--fc-white);
    animation: fc-pulse .3s ease;
}

/* Espelho do .added para a recusa do servidor (fora de estoque, produto variável).
   Antes o botão só voltava ao normal e a pessoa clicava de novo, sem nunca saber
   por quê — a mensagem vinha do servidor e morria no JS. */
.fc-acao-cart.erro {
    background: var(--fc-danger);
    color: var(--fc-white);
}

@keyframes fc-pulse {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.25); }
    100% { transform: scale(1); }
}

/* Botão de navegação › / ‹ */
.fc-carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border-radius: 0;
    background: var(--fc-white);
    border: 1.5px solid var(--fc-bege-borda);
    color: var(--fc-verde);
    cursor: pointer;
    box-shadow: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--fc-transition), border-color var(--fc-transition);
    z-index: 10;
}

.fc-carousel-nav svg {
    width: 18px;
    height: 18px;
    pointer-events: none;
}

.fc-carousel-nav:hover {
    background: var(--fc-verde);
    border-color: var(--fc-verde);
    color: var(--fc-white);
}

.fc-carousel-next { right: -16px; }
.fc-carousel-prev { left: -16px; }

/* ==========================================================================
   BLOCO 4 — CTA "COMPRAR TODOS OS ITENS"
   ========================================================================== */

.fc-cta-wrap {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.fc-btn-comprar-todos {
    font-family: var(--fc-font-display);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 48px;
    background: var(--fc-verde);
    color: var(--fc-white);
    border: none;
    border-radius: var(--fc-radius-pill);
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: none;
    transition: background var(--fc-transition), box-shadow var(--fc-transition), transform var(--fc-transition);
}

.fc-btn-comprar-todos:hover:not(:disabled) {
    background: var(--fc-verde-mid);
    box-shadow: none;
    transform: translateY(-1px);
}

.fc-btn-comprar-todos:disabled {
    background: #BFBB9B;
    box-shadow: none;
    cursor: not-allowed;
    transform: none;
}

.fc-btn-label {
    display: inline;
    line-height: inherit;
    letter-spacing: inherit;
}

.fc-btn-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: fc-spin .6s linear infinite;
    flex-shrink: 0;
}

@keyframes fc-spin { to { transform: rotate(360deg); } }

/* Feedback do carrinho */
.fc-cart-resultado {
    text-align: center;
    width: 100%;
    max-width: 500px;
    padding: 18px 24px;
    background: var(--fc-verde-pale);
    border: 1px solid var(--fc-verde);
    border-radius: var(--fc-radius);
}

.fc-cart-msg {
    font-family: var(--fc-font-display);
    font-weight: 700;
    color: var(--fc-verde);
    font-size: .9rem;
    margin-bottom: 14px;
}

.fc-cart-links {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}

.fc-link-cart,
.fc-link-checkout {
    font-family: var(--fc-font-display);
    display: inline-block;
    padding: 9px 22px;
    border-radius: var(--fc-radius-pill);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .06em;
    transition: background var(--fc-transition), color var(--fc-transition);
}

.fc-link-cart {
    background: var(--fc-white);
    color: var(--fc-verde);
    border: 1.5px solid var(--fc-verde);
}

.fc-link-cart:hover {
    background: var(--fc-verde);
    color: var(--fc-white);
}

.fc-link-checkout {
    background: var(--fc-verde);
    color: var(--fc-white);
    border: 1.5px solid var(--fc-verde);
}

.fc-link-checkout:hover { background: var(--fc-verde-mid); }

.fc-cart-skipped {
    margin-top: 10px;
    font-size: .75rem;
    color: #472617;
    background: #F5E9E3;
    border-radius: var(--fc-radius-chip);
    padding: 6px 10px;
}

.fc-sem-produtos {
    text-align: center;
    color: var(--fc-muted);
    font-style: italic;
    padding: 20px 0;
}

/* ==========================================================================
   BLOCO 5 — CRIADOR (foto + nome + descrição)
   ========================================================================== */

.fc-secao-criador {
    padding: 40px 40px 56px;
    background: var(--fc-white);
    border-top: 1px solid var(--fc-bege-borda);
}

.fc-criador-inner {
    display: flex;
    align-items: flex-start;
    gap: 28px;
    max-width: 680px;
}

.fc-criador-foto-wrap { flex-shrink: 0; }

.fc-criador-foto {
    width: 110px;
    height: 110px;
    border-radius: 0;
    object-fit: cover;
    object-position: top center;
    border: 3px solid var(--fc-bege-borda);
    background: var(--fc-bege-card);
    display: block;
}

.fc-criador-texto {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 4px;
}

.fc-criador-label {
    font-family: var(--fc-font-display);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--fc-muted);
    line-height: 1.4;
}

.fc-criador-nome {
    font-family: var(--fc-font-display);
    display: block;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--fc-texto);
    margin-top: 2px;
}

.fc-criador-descricao {
    font-size: .85rem;
    line-height: 1.7;
    color: var(--fc-muted);
    max-width: 520px;
}

/* ==========================================================================
   VITRINE [flavor_vitrine]
   ========================================================================== */

.fc-vitrine {
    --fc-creme:      #EAE4D3;
    --fc-verde:      #223829;
    --fc-verde-mid:  #3A7D4E;
    --fc-bege-borda: #BFBB9B;
    --fc-bege-card:  #F2EEE4;
    --fc-texto:      #223829;
    --fc-muted:      rgba(34, 56, 41, .75);
    --fc-white:      #ffffff;
    --fc-radius:     0;
    --fc-transition: .2s ease;

    /* Novos tokens editoriais */
    --fc-bege-medio:  #BFBB9B;
    --fc-taupe:       #D4C194;
    --fc-marrom:      #904B2C;
    /* Era #5E5246, fora da paleta, e carregava justamente o nome da coleção e os títulos de
       seção. A paleta define o verde institucional como a cor de "títulos sobre claro". */
    --fc-texto-suave: #223829;
    --fc-off-white:   #F2EEE4;

    --fc-radius-chip: 0;
    --fc-radius-card: 0;
    --fc-radius-pill: 0;

    --fc-font-display: "Poppins", "Helvetica Neue", Arial, sans-serif;
    --fc-font-body: "SFPRODISPLAY", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    font-family: var(--fc-font-body);
    background: var(--fc-creme);
    color: var(--fc-texto);
}

.fc-vitrine *, .fc-vitrine *::before, .fc-vitrine *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.fc-vitrine img    { display: block; }
.fc-vitrine button { font-family: inherit; cursor: pointer; }
.fc-vitrine a      { text-decoration: none; }

/*
 * O slider de cards da vitrine legada saiu na 1.7.0: eram ~140 linhas
 * (.fc-vitrine-banner, -titulo-wrap, -slider, -card e derivados) que NENHUMA view imprimia
 * desde antes da hierarquia. As setas e as bolinhas abaixo ficaram: o banner rotativo do hero
 * as reaproveita.
 */

/* Botões de navegação */
.fc-vitrine-nav {
    position: absolute;
    top: calc(50% - 30px);   /* centralizado no slider, excluindo área dos dots (60px) */
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 0;
    background: var(--fc-white);
    border: 1.5px solid var(--fc-bege-borda);
    color: var(--fc-verde);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    transition: background var(--fc-transition), border-color var(--fc-transition);
    z-index: 10;
}

.fc-vitrine-nav svg { width: 20px; height: 20px; pointer-events: none; }

.fc-vitrine-nav:hover {
    background: var(--fc-verde);
    border-color: var(--fc-verde);
    color: var(--fc-white);
}

.fc-vitrine-prev { left: 0; }
.fc-vitrine-next { right: 0; }

/* Dots */
.fc-vitrine-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 28px;
}

.fc-vitrine-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fc-bege-borda);
    border: none;
    padding: 0;
    transition: background var(--fc-transition), transform var(--fc-transition);
}

.fc-vitrine-dot.active,
.fc-vitrine-dot:hover {
    background: var(--fc-verde);
    transform: scale(1.25);
}

/* --- Hero rotativo [flavor_vitrine] --- */

/*
 * O hero é o contêiner do banner; quem tem as duas colunas agora é o SLIDE.
 *
 * Os slides ficam empilhados na mesma célula (`grid-area: 1 / 1`) em vez de posicionados de
 * forma absoluta: assim a altura do banner é a do slide mais alto, e não precisa ser fixada no
 * CSS nem medida por JavaScript. Trocar de slide nunca muda a altura da página.
 */
.fc-vitrine-hero {
    position: relative;
    display: grid;
    min-height: 380px;
    overflow: hidden;
}

.fc-hero-trilho {
    display: grid;
    min-height: inherit;
}

.fc-hero-slide {
    grid-area: 1 / 1;
    display: grid;
    grid-template-columns: 40% 60%;
    min-height: inherit;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease;
}

.fc-hero-slide.is-ativo {
    opacity: 1;
    visibility: visible;
}

/* Botão do slide — contorno, como o "EXPLORAR COLEÇÃO" do bloco editorial. */
.fc-hero-btn {
    align-self: flex-start;
    margin-top: 22px;
    padding: 13px 30px;
    border: 1.5px solid var(--fc-marrom);
    border-radius: var(--fc-radius-pill);
    color: var(--fc-marrom);
    font-family: var(--fc-font-display);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background var(--fc-transition), color var(--fc-transition);
}

.fc-hero-btn:hover,
.fc-hero-btn:focus-visible {
    background: var(--fc-marrom);
    color: var(--fc-white);
}

/* Setas e bolinhas: posicionadas dentro do hero, reaproveitando o visual já existente. */
.fc-hero-seta {
    top: 50%;
    font-size: 26px;
    line-height: 1;
}

.fc-vitrine-hero .fc-vitrine-prev { left: 12px; }
.fc-vitrine-hero .fc-vitrine-next { right: 12px; }

.fc-hero-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 16px;
    margin-top: 0;
    z-index: 10;
}

.fc-vitrine-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 56px 48px;
}

.fc-vitrine-hero-label {
    font-family: var(--fc-font-display);
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--fc-verde);
    font-size: .9rem;
    font-weight: 700;
    margin-bottom: 8px;
}

.fc-vitrine-hero-nome {
    font-family: var(--fc-font-display);
    font-size: clamp(2.4rem, 5vw, 4rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--fc-texto-suave);
    line-height: 1;
}

.fc-vitrine-hero-tagline {
    font-size: 1rem;
    font-style: italic;
    color: var(--fc-muted);
    letter-spacing: .03em;
    margin-top: 16px;
    line-height: 1.55;
}

.fc-vitrine-hero-visual {
    position: relative;
    overflow: hidden;
    background: var(--fc-bege-medio);
}

.fc-vitrine-hero-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fc-vitrine-hero-shape {
    position: absolute;
    opacity: .6;
    pointer-events: none;
}

.fc-vitrine-hero-shape--a {
    top: -20px;
    right: -20px;
    width: 45%;
    height: 55%;
    background: var(--fc-bege-medio);
}

.fc-vitrine-hero-shape--b {
    bottom: -20px;
    left: 10%;
    width: 35%;
    height: 40%;
    background: var(--fc-verde);
    opacity: .15;
}

/* --- Faixa de transição --- */

.fc-vitrine-secao-titulo {
    text-align: center;
    padding: 52px 40px;
    background: var(--fc-off-white);
}

/* Briefing: "Conheça nossas coleções" em Poppins Regular, sem bold. */
.fc-vitrine-secao-titulo-texto {
    font-family: var(--fc-font-display);
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--fc-texto-suave);
    font-size: clamp(1.2rem, 3vw, 1.8rem);
    font-weight: 400;
}

/* --- Blocos editoriais --- */

.fc-vitrine-editorial {
    position: relative;
    padding: 60px 40px;
    border-bottom: 1px solid var(--fc-bege-medio);
}

.fc-vitrine-editorial-bg {
    position: absolute;
    background: var(--fc-bege-medio);
    z-index: 0;
    opacity: .45;
    pointer-events: none;
}

.fc-vitrine-editorial-bg--a {
    top: 0;
    left: 0;
    width: 55%;
    height: 60%;
}

.fc-vitrine-editorial-bg--b {
    bottom: 0;
    right: 0;
    width: 40%;
    height: 50%;
}

.fc-vitrine-editorial-card {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    background: var(--fc-off-white);
    padding: 40px;
}

.fc-vitrine-mosaico {
    display: grid;
    grid-template-columns: 2fr 1fr;
    /*
     * `grid-auto-rows` em vez de duas linhas fixas: o PHP manda até 3 fotos extras e só havia
     * 2 células livres, então a terceira criava uma linha implícita FORA da altura de 320px e a
     * imagem vazava 94px para dentro da seção de baixo. Assim 1, 3 ou 6 extras se distribuem
     * dentro da altura, sem estourar.
     */
    grid-auto-rows: 1fr;
    gap: 8px;
    height: 320px;
}

.fc-vitrine-mosaico img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--fc-radius-chip);
    display: block;
    /*
     * Piso zero. O padrao de um item de grade e `min-height: auto`, que usa o tamanho intrinseco
     * da imagem: uma foto quadrada numa coluna de 365px exigia 365px de altura e furava os 320px
     * do mosaico em 45px, entrando na secao de baixo. Com o piso em 0 a linha respeita a altura
     * e o object-fit corta.
     */
    min-height: 0;
    min-width: 0;
}

.fc-vitrine-mosaico-principal {
    grid-row: 1 / -1;
}

/* Uma foto so: ocupa o mosaico inteiro, em vez de deixar a coluna estreita vazia. */
.fc-vitrine-mosaico--solo {
    grid-template-columns: 1fr;
}

/* Colecao sem nenhuma foto: o texto toma a largura do cartao, sem buraco ao lado. */
.fc-vitrine-editorial-card--sem-foto {
    grid-template-columns: 1fr;
}

.fc-vitrine-editorial-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: center;
}

/* Briefing: nome da coleção em SF Pro Regular, espaçado, centralizado no bloco e afastado do
   texto de baixo (o gap de 16px do bloco + 16px aqui). Duas classes de propósito: o mu-plugin de
   tipografia força Poppins em `[class^="fc-"] h3` (0,1,1), que venceria uma classe só. */
.fc-vitrine-editorial .fc-vitrine-editorial-nome {
    font-family: var(--fc-font-body);
    text-transform: uppercase;
    font-weight: 400;
    font-size: 1.6rem;
    letter-spacing: .2em;
    color: var(--fc-texto-suave);
    line-height: 1.1;
    text-align: center;
    margin-bottom: 16px;
}

/* Briefing: os textos do card em verde escuro sólido, não translúcido. */
.fc-vitrine-editorial-desc {
    font-size: .88rem;
    line-height: 1.7;
    color: var(--fc-texto);
}

.fc-vitrine-editorial-assinatura {
    font-family: var(--fc-font-display);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--fc-texto);
}

/* Briefing: "Explorar coleção" igual ao botão padrão da home — SF Pro Regular a .15em, borda
   fina, laranja, e no hover fundo laranja com texto creme. */
.fc-vitrine-editorial-btn {
    font-family: var(--inloft-btn-font, var(--fc-font-body));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--fc-marrom);
    color: var(--fc-marrom);
    padding: 10px 24px;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: var(--inloft-btn-tracking, .15em);
    font-weight: var(--inloft-btn-weight, 400);
    align-self: flex-start;
    transition: background var(--fc-transition), color var(--fc-transition);
}

.fc-vitrine-editorial-btn:hover {
    background: var(--fc-marrom);
    color: var(--inloft-btn-hover-color, #EAE4D3);
}

/* --- Seção arquitetos --- */

.fc-vitrine-arquitetos {
    padding: 60px 40px;
    background: var(--fc-off-white);
}

/* Briefing: "Arquitetos parceiros" em Poppins Regular, verde escuro, com o espaçamento de
   "Empreendimentos entregues" (.16em). */
.fc-vitrine-arquitetos-titulo {
    font-family: var(--fc-font-display);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--fc-texto);
    font-size: 1.1rem;
    font-weight: 400;
    margin-bottom: 40px;
}

.fc-vitrine-arquitetos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.fc-vitrine-arquiteto-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 28px 20px;
    background: var(--fc-white);
    border: 1px solid var(--fc-bege-medio);
    border-radius: var(--fc-radius-card);
    box-shadow: none;
}

.fc-vitrine-arquiteto-foto-wrap { flex-shrink: 0; }

/* Briefing: foto quadrada com contorno fino #BFBB9B. */
.fc-vitrine-arquiteto-foto {
    width: 96px;
    height: 96px;
    border-radius: 0;
    object-fit: cover;
    border: 1px solid var(--fc-bege-medio);
    background: var(--fc-bege-card);
    display: block;
}

.fc-vitrine-arquiteto-nome {
    font-family: var(--fc-font-display);
    text-transform: uppercase;
    font-weight: 400;
    letter-spacing: .1em;
    margin-top: 16px;
    text-align: center;
    font-size: .9rem;
    color: var(--fc-texto-suave);
}

/* Briefing: textos do card em verde escuro sólido. */
.fc-vitrine-arquiteto-cargo {
    font-size: .75rem;
    color: var(--fc-texto);
    text-align: center;
    margin-top: 4px;
}

.fc-vitrine-arquiteto-colecoes-titulo {
    font-family: var(--fc-font-display);
    font-size: .65rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--fc-texto);
    margin-top: 20px;
    text-align: center;
}

.fc-vitrine-arquiteto-miniaturas {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
}

/* O item flex é a figura (foto + nome), não mais a foto solta. */
.fc-vitrine-arquiteto-miniatura {
    margin: 0;
    width: 56px;
}

.fc-vitrine-arquiteto-miniaturas img {
    width: 56px;
    height: 44px;
    object-fit: cover;
    border-radius: var(--fc-radius-chip);
    border: 1px solid var(--fc-bege-medio);
    display: block;
}

.fc-vitrine-arquiteto-miniatura figcaption {
    margin-top: 4px;
    font-family: inherit;
    font-size: .625rem;
    font-weight: 400;
    line-height: 1.25;
    color: var(--fc-texto);
    text-align: center;
    /* Nome longo ("Minimal Essence") quebra em duas linhas em vez de alargar a coluna. */
    overflow-wrap: anywhere;
}

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */

@media (max-width: 1024px) {
    .fc-hero-left      { padding: 44px 32px; }
    .fc-produto-card   { flex: 0 0 195px; }

    /* Vitrine editorial — tablet */
    .fc-hero-slide                 { grid-template-columns: 45% 55%; }
    .fc-vitrine-editorial-card     { grid-template-columns: 1fr; gap: 28px; }
    .fc-vitrine-mosaico            { height: 240px; }
    .fc-vitrine-arquitetos-grid    { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .fc-topbar { padding: 12px 20px; }

    .fc-hero { grid-template-columns: 1fr; }
    .fc-hero-left  { padding: 32px 24px; gap: 14px; order: 2; }
    .fc-hero-right { order: 1; min-height: 200px; height: 220px; }
    /* Duas classes, como a regra base — senão esta perde e o nome não encolhe no celular. */
    .fc-hero .fc-hero-nome  { font-size: clamp(2rem, 10vw, 3rem); }

    .fc-tamanho-nav    { padding: 14px 20px; top: 48px; }
    .fc-tamanho-secao  { padding: 40px 24px 36px; scroll-margin-top: 100px; }

    .fc-produto-card          { flex: 0 0 160px; }
    .fc-produto-img-wrap img  { padding: 8px; }
    .fc-btn-comprar-todos     { padding: 14px 32px; font-size: .78rem; }

    .fc-secao-criador { padding: 32px 24px 40px; }
    .fc-criador-foto  { width: 80px; height: 80px; }

    .fc-vitrine-prev          { left: -8px; }
    .fc-vitrine-next          { right: -8px; }

    /* Vitrine editorial — mobile */
    .fc-hero-slide                 { grid-template-columns: 1fr; }
    .fc-vitrine-hero-visual        { order: -1; min-height: 220px; }
    .fc-vitrine-hero-copy          { padding: 32px 24px; }
    .fc-vitrine-editorial          { padding: 40px 20px; }
    .fc-vitrine-editorial-card     { padding: 24px 20px; gap: 20px; }
    .fc-vitrine-mosaico            { grid-template-columns: 1fr; grid-template-rows: 200px; height: 200px; }
    .fc-vitrine-mosaico > img:not(.fc-vitrine-mosaico-principal) { display: none; }
    .fc-vitrine-mosaico-principal  { grid-row: span 1; }
    .fc-vitrine-secao-titulo       { padding: 36px 24px; }
    .fc-vitrine-arquitetos         { padding: 40px 20px; }
    .fc-vitrine-arquitetos-grid    { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .fc-produto-card     { flex: 0 0 140px; }
    .fc-secao-titulo     { font-size: .9rem; letter-spacing: .12em; }
    .fc-tamanho-titulo   { font-size: .85rem; letter-spacing: .12em; }
    .fc-hero-badge       { font-size: .65rem; letter-spacing: .1em; }

    .fc-criador-inner    { flex-direction: column; align-items: center; text-align: center; }
    .fc-criador-descricao { max-width: 100%; }

}

/* ==========================================================================
   ACESSIBILIDADE
   ========================================================================== */

/* Suporte ao atributo `hidden` dentro do plugin */
.fc-page [hidden],
.fc-vitrine [hidden] { display: none !important; }

/* Estado de loading no botão individual */
.fc-acao-cart.loading {
    opacity: .55;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .fc-produto-card, .fc-produto-img-wrap img,
    .fc-btn-comprar-todos, .fc-carousel-track,
    .fc-hero-slide { transition: none; }
    .fc-btn-spinner { animation: none; opacity: .6; }
    .fc-acao-cart.added { animation: none; }
}

.fc-btn-comprar-todos:focus-visible,
.fc-acao-btn:focus-visible,
.fc-carousel-nav:focus-visible,
.fc-link-cart:focus-visible,
.fc-link-checkout:focus-visible,
.fc-vitrine-nav:focus-visible,
.fc-vitrine-dot:focus-visible,
.fc-tamanho-tab:focus-visible {
    outline: 2px solid var(--fc-verde);
    outline-offset: 3px;
}

/* ==========================================================================
   COLEÇÃO PRINCIPAL — blocos exclusivos da página que soma as vinculadas
   ========================================================================== */

/*
 * O texto explicativo é o primeiro campo de descrição que a coleção tem. Antes da hierarquia a
 * view lia uma coluna que nunca existiu, e a tagline saía sempre vazia.
 */
.fc-principal-descricao p {
    margin: 0 0 .75em;
}

.fc-principal-descricao p:last-child {
    margin-bottom: 0;
}

/* Faixa de ambientes: as fotos das vinculadas, somadas. */
.fc-principal-fotos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: clamp(8px, 1.2vw, 16px);
    /* Mesmo respiro lateral de .fc-tamanho-secao e .fc-topbar: sem isto a faixa sangra até a
       borda da janela, porque .fc-page não tem padding próprio. */
    padding: clamp(16px, 3vh, 32px) 40px;
}

.fc-principal-foto {
    margin: 0;
    overflow: hidden;
    border-radius: var(--fc-radius);
    line-height: 0;
}

.fc-principal-foto img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

/* ==========================================================================
   EMPREENDIMENTOS QUE USAM ESTA COLEÇÃO
   ========================================================================== */

.fc-principal-usos {
    padding: clamp(24px, 5vh, 56px) 40px clamp(16px, 3vh, 32px);
}

/*
 * O Kadence declara cor própria para h1-h6 e uma declaração no próprio elemento vence herança,
 * independente de especificidade. Por isso a cor vai aqui, explícita, e não no contêiner.
 */
.fc-principal-usos .fc-secao-titulo {
    color: var(--fc-texto);
}

.fc-usos-lista {
    list-style: none;
    margin: clamp(12px, 2vh, 24px) 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: clamp(12px, 1.6vw, 20px);
}

.fc-uso-card {
    margin: 0;
}

.fc-uso-link {
    display: flex;
    gap: 14px;
    align-items: center;
    height: 100%;
    padding: 12px;
    background: var(--fc-bege-card);
    border: 1px solid rgba(191, 187, 155, .55);
    border-radius: var(--fc-radius);
    text-decoration: none;
    color: var(--fc-texto);
    transition: border-color .18s ease, box-shadow .18s ease;
}

.fc-uso-link:hover,
.fc-uso-link:focus-visible {
    border-color: var(--fc-marrom, #904B2C);
    box-shadow: none;
}

.fc-uso-foto {
    flex: 0 0 auto;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border-radius: var(--fc-radius-chip);
    line-height: 0;
}

.fc-uso-foto img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fc-uso-texto {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.fc-uso-nome {
    font-family: 'Poppins', 'Helvetica Neue', Arial, sans-serif;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.25;
    color: var(--fc-texto);
}

.fc-uso-regiao,
.fc-uso-tamanhos,
.fc-uso-criador {
    font-size: .8125rem;
    line-height: 1.4;
    color: var(--fc-muted);
}

.fc-uso-criador {
    font-style: italic;
}

@media (max-width: 600px) {
    .fc-principal-fotos { padding: 24px; }
    .fc-principal-usos  { padding: 32px 24px 24px; }

    .fc-usos-lista {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   LARGURA DE CONTEÚDO — alinhada ao resto do site
   ==========================================================================
   As faixas continuam sangrando de ponta a ponta (é o desenho da p08); quem se contém é o
   CONTEÚDO de cada uma. Sem isto, numa janela de 2560px o cartão da coleção media 2545px e o
   texto ficava perdido no vazio. 1240px é o mesmo `--ihf-max` do cabeçalho e do rodapé.
   ========================================================================== */

.fc-vitrine,
.fc-page {
    --fc-max: 1240px;
}

.fc-vitrine-hero,
.fc-vitrine-editorial-card,
.fc-vitrine-arquitetos-grid,
.fc-page .fc-topbar,
.fc-page .fc-hero,
.fc-page .fc-tamanho-secao > *,
.fc-page .fc-principal-fotos,
.fc-page .fc-principal-usos > *,
.fc-page .fc-secao-criador {
    max-width: var(--fc-max);
    margin-inline: auto;
}

.fc-vitrine-secao-titulo-texto {
    max-width: var(--fc-max);
    margin-inline: auto;
}

/* ==========================================================================
   BLOCO EDITORIAL — acréscimos da p08
   ========================================================================== */

/* "DISPONÍVEL PARA OS EMPREENDIMENTOS: BONITA COPA E TESTE" */
.fc-vitrine-editorial-usos {
    margin: 0;
    font-family: var(--fc-font-display);
    font-size: .72rem;
    line-height: 1.6;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fc-texto);
}

.fc-vitrine-editorial-usos strong {
    display: block;
    color: var(--fc-texto);
    font-weight: 700;
}

/* "ASSINADO POR" com a foto redonda do mockup */
.fc-vitrine-editorial-assinatura {
    display: flex;
    align-items: center;
    gap: 12px;
}

.fc-vitrine-editorial-criador-foto {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 0;
    object-fit: cover;
    border: 2px solid var(--fc-bege-medio);
    background: var(--fc-bege-card);
}

/* ==========================================================================
   FOCO VISÍVEL — rede de segurança da marca
   ========================================================================== */

.fc-page a:focus-visible,
.fc-page button:focus-visible,
.fc-vitrine a:focus-visible,
.fc-vitrine button:focus-visible {
    outline: 2px solid var(--fc-marrom, #904B2C);
    outline-offset: 2px;
    border-radius: var(--fc-radius-chip);
}
