/* ==========================================================================
   Interna do perfume: estrutura comum
   O bloco principal (pf-hero) recebe o visual de assets/css/produto/hero-N.css;
   o FAQ usa o padrão global do design-v2.css.
   ========================================================================== */

/* Bloco principal */
.pf-hero { padding-block: 32px 64px; }
.pf-hero .demo-notice { margin: 0 0 24px; padding: 14px 18px; border: 0; border-radius: 0; background: var(--ds-cream); color: var(--ds-ink); }
.pf-hero .demo-notice strong { color: var(--ds-bronze); font-family: var(--font-display); text-transform: uppercase; }
.pf-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: clamp(2rem, 5vw, 72px); }
.pf-hero-media { padding: clamp(16px, 3vw, 40px); background: var(--ds-cream); }
.pf-hero-media img { display: block; width: 100%; height: auto; background: var(--ds-white); }
.pf-hero-media img[src$=".svg"] { background: transparent; }
.pf-hero-media.is-placeholder { display: grid; place-items: center; min-height: 340px; }
.pf-hero-media.is-placeholder span { display: grid; place-items: center; width: min(100%, 360px); aspect-ratio: 1; border: 1px dashed var(--ds-bronze); color: var(--ds-bronze); background: var(--ds-white); font: 700 .9rem/1.3 var(--font-display); letter-spacing: .04em; text-align: center; }
.pf-brand { margin: 0 0 1rem; }
.pf-brand a { color: inherit; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
.pf-brand a:hover { text-decoration-color: currentColor; }
.pf-hero h1 { margin: 0; color: inherit; font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1; }
.pf-sub { margin: 14px 0 0; color: var(--ink-soft); font-size: 1.125rem; line-height: 1.45; }
.pf-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.pf-chips li { padding: 6px 12px; color: var(--ds-ink); background: var(--ds-cream); font-size: .8125rem; font-weight: 600; line-height: 1; letter-spacing: .04em; text-transform: uppercase; }
.pf-resumo { margin: 20px 0 0; color: var(--ink-soft); font-size: 1.0625rem; line-height: 1.6; }
.pf-buy { display: grid; gap: 18px; margin-top: 28px; }

.pf-best { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "label label label" "store price cta"; align-items: center; gap: 12px 18px; padding: 20px; border: 2px solid var(--ds-copper); background: var(--ds-white); }
.pf-best-label { grid-area: label; margin: 0; color: var(--ds-copper); font: 800 .75rem/1.3 var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.pf-best-store { grid-area: store; display: flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 700; }
.pf-best-store .market-logo { width: 44px; height: 44px; padding: 5px; border: 1px solid var(--line); border-radius: 6px; background: var(--ds-white); object-fit: contain; }
.pf-best-price { grid-area: price; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: 2px 8px; }
.pf-best-price del { color: var(--ds-gray-500); font-size: .85rem; }
.pf-best-price strong { color: var(--ds-ink); font: 700 1.6rem/1 var(--font-display); }
.pf-best-price small { flex-basis: 100%; color: var(--ds-copper); font-size: .8rem; font-weight: 700; text-align: right; }
.pf-best-cta { grid-area: cta; min-height: 48px; padding: 0 22px; border: 0; color: var(--ds-white); background: var(--ds-ink); font-size: .875rem; }
.pf-best-cta:hover { color: var(--ds-white); background: var(--ds-copper); }
.pf-best-vazio { display: block; }
.pf-best-vazio p:last-child { margin: 8px 0 0; color: var(--ink-soft); }

.pf-stores-title { margin: 0 0 8px; color: var(--ink-soft); font: 700 .8rem/1.3 var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
.pf-stores { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pf-store { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 10px 12px; background: var(--ds-cream); }
.pf-store-name { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 700 .95rem/1.2 var(--font-display); }
.pf-store-name .market-logo { width: 32px; height: 32px; padding: 3px; border-radius: 5px; background: var(--ds-white); object-fit: contain; }
.pf-tag { padding: 3px 6px; color: var(--ds-white); background: var(--ds-copper); font-size: .625rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pf-store-price { display: grid; justify-items: end; line-height: 1.2; }
.pf-store-price del { color: var(--ds-gray-500); font-size: .75rem; }
.pf-store-price strong { font: 700 1.05rem/1.2 var(--font-display); }
.pf-store-price small { color: var(--ds-copper); font-size: .72rem; font-weight: 700; }
.pf-store-cta { min-height: 40px; padding: 0 16px; border: 1px solid var(--ds-ink); color: var(--ds-ink); background: transparent; font-size: .8rem; }
.pf-store-cta:hover { color: var(--ds-white); background: var(--ds-ink); }

.pf-quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 20px 0 0; }
.pf-quick div { padding: 12px; border: 1px solid var(--line); }
.pf-quick dt { color: var(--ds-bronze); font: 700 .7rem/1.2 var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
.pf-quick dd { margin: 4px 0 0; font-size: .9rem; font-weight: 600; }
.pf-note { margin: 10px 0 0; color: var(--ds-gray-500); font-size: .8125rem; line-height: 18px; }
.pf-note a { color: inherit; }

/* Blocos de conteúdo */
.pf-sec { padding-block: clamp(48px, 6vw, 80px); }
.pf-sec h2 { font-size: clamp(1.75rem, 3vw, 2.1875rem); }
.pf-split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; gap: clamp(2rem, 6vw, 96px); }
.pf-split p:not(.eyebrow) { margin: 16px 0 0; color: var(--ink-soft); font-size: 1.0625rem; line-height: 26px; }
.pf-ficha { border-top: 1px solid var(--ds-ink); }
.pf-ficha-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 0; }
.pf-ficha-list div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.pf-ficha-list dt { color: var(--ds-bronze); font: 700 .8rem/1.4 var(--font-display); letter-spacing: .05em; text-transform: uppercase; }
.pf-ficha-list dd { margin: 0; font-weight: 600; }
.pf-sec .product-details { padding-top: 0; border-top: 0; }
.product-details .prose h3 { margin: 28px 0 8px; font-size: 1.15rem; text-transform: none; }
.pf-notes-intro { margin: 0 0 16px; color: var(--ink-soft); line-height: 1.6; }
.pf-notes-detail { margin: 14px 0 0; color: var(--ink-soft); line-height: 1.6; }
.pf-notes-detail strong { color: var(--ds-ink); }
.pf-note-items { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pf-note-items li { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid var(--line); background: var(--ds-white); }
.pf-note-items img { width: 32px; height: 32px; object-fit: contain; }

/* Notas em cartões horizontais; conteúdo editorial ligado por uma trilha. */
.pf-sobre { background: var(--ds-white); }
.pf-sobre .product-details { grid-template-columns: minmax(0, 1fr); gap: clamp(36px, 5vw, 64px); }
.pf-sobre .product-details > div { min-width: 0; }
.pf-sobre-notas { padding: clamp(24px, 3vw, 40px); border: 1px solid #eaded7; background: var(--ds-white); }
.pf-sobre .pf-sobre-notas h2 { margin: 0 0 12px; }
.pf-sobre .pf-notes-intro { max-width: 88ch; }
/* Pirâmide olfativa em escada alinhada à esquerda: Topo curto, Coração médio, Fundo longo; fase numa coluna à esquerda. */
.pf-sobre .pf-sobre-notas .notes-list { grid-template-columns: 1fr; gap: 6px; margin-top: 24px; }
.pf-sobre .pf-sobre-notas .notes-list div { display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: center; justify-self: start; gap: 16px; min-width: 0; padding: 18px 24px 20px; border: 0; border-left: 4px solid var(--fase-borda); background: var(--fase-camada); text-align: left; }
.pf-sobre .pf-sobre-notas .notes-list .is-topo { width: min(100%, 46%); }
.pf-sobre .pf-sobre-notas .notes-list .is-coracao { width: min(100%, 72%); }
.pf-sobre .pf-sobre-notas .notes-list .is-fundo { width: 100%; }
.pf-nota-fase.is-topo { --fase-camada: #fcfaf8; --fase-borda: #f2a46f; --fase-tinta: #9a4a1c; }
.pf-nota-fase.is-coracao { --fase-camada: #fcfaf8; --fase-borda: #e590ac; --fase-tinta: #93304f; }
.pf-nota-fase.is-fundo { --fase-camada: #fcfaf8; --fase-borda: #bf9469; --fase-tinta: #6b4426; }
.pf-sobre .pf-nota-fase dt { color: var(--fase-tinta); font: 700 .95rem/1.3 var(--font-display); letter-spacing: .05em; }
.pf-sobre .pf-nota-fase dd { width: 100%; margin: 0; }
/* Cada ingrediente em cor cheia, na cor do próprio ingrediente. Nota sem cor cadastrada usa o tom escuro da fase. */
.pf-sobre .pf-note-items li { --nota: var(--fase-tinta); --nota-texto: #fff; padding: 4px 14px 4px 4px; border: 0; border-radius: 0; color: var(--nota-texto); background: var(--nota); font-weight: 700; }
.pf-sobre .pf-note-items img { padding: 3px; background: #fff; }
.pf-note-items li[data-nota="pera"] { --nota: #a8c64a; --nota-texto: #2f3d05; }
.pf-note-items li[data-nota="cassis"] { --nota: #6b2d7e; }
.pf-note-items li[data-nota="iris"] { --nota: #8c7bd0; }
.pf-note-items li[data-nota="jasmim"] { --nota: #e6cf5c; --nota-texto: #4d3f06; }
.pf-note-items li[data-nota="flor-de-laranjeira"] { --nota: #f3a35a; --nota-texto: #5a2c08; }
.pf-note-items li[data-nota="patchouli"] { --nota: #6d7040; }
.pf-note-items li[data-nota="fava-tonka"] { --nota: #6f4528; }
.pf-note-items li[data-nota="baunilha"] { --nota: #dcbc78; --nota-texto: #4d3608; }
.pf-note-items li[data-nota="praline"] { --nota: #b5733a; }
.pf-sobre .pf-notes-detail { display: inline-block; margin: 18px 20px 0 0; }
.pf-sobre .pf-sobre-texto h2 { margin: 0 0 26px; }
.pf-sobre .pf-sobre-trilha { --trilha-gap: clamp(20px, 2vw, 32px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: var(--trilha-gap); }
.pf-sobre .pf-sobre-passo { position: relative; min-width: 0; padding: 34px 0 0; }
.pf-sobre .pf-sobre-passo::before { position: absolute; z-index: 2; top: 0; left: 0; width: 18px; height: 18px; border: 3px solid var(--ds-white); background: var(--ds-copper); outline: 1px solid var(--ds-copper); content: ''; }
.pf-sobre .pf-sobre-passo::after { position: absolute; top: 8px; left: 18px; width: calc(100% + var(--trilha-gap) - 18px); height: 2px; background: var(--ds-copper); content: ''; }
.pf-sobre .pf-sobre-passo:last-child::after { display: none; }
.pf-sobre .pf-sobre-passo h3 { margin: 0 0 12px; font-size: 1.05rem; text-transform: none; }
.pf-sobre .pf-sobre-passo h4 { margin: 14px 0 5px; color: var(--ds-bronze); font-size: .86rem; }
.pf-sobre .pf-sobre-passo p { margin: 0; color: var(--ink-soft); font-size: .93rem; line-height: 1.6; }

/* Adequação editorial por estação e período. */
.pf-adequacao { padding-block: clamp(28px, 4vw, 52px); background: var(--ds-cream); }
.pf-adequacao-panel, .pf-ocasioes-scores-panel { padding: clamp(24px, 4vw, 44px); border: 1px solid #eaded7; background: var(--ds-white); }
.pf-adequacao .section-heading { align-items: end; }
.pf-adequacao-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
/* Cada estação/período: anel com a porcentagem e, abaixo, ícone e nome juntos e centralizados. */
.pf-adequacao-item { display: grid; grid-template-columns: 1fr auto auto 1fr; grid-template-areas: "anel anel anel anel" ". icone nome ."; align-items: center; gap: 14px 6px; padding: 22px 10px 18px; color: var(--ds-ink); background: color-mix(in srgb, var(--score-from) 12%, #fff); text-align: center; }
.pf-adequacao-item.is-inverno { --score-from: #3fd0ff; --score-to: #1a73e8; }
.pf-adequacao-item.is-primavera { --score-from: #5fe07a; --score-to: #13a05a; }
.pf-adequacao-item.is-verao { --score-from: #ffb53a; --score-to: #ff4e2a; }
.pf-adequacao-item.is-outono { --score-from: #ee9241; --score-to: #a9461a; }
.pf-adequacao-item.is-dia { --score-from: #ffc81f; --score-to: #f08200; }
.pf-adequacao-item.is-noite { --score-from: #9a7bff; --score-to: #4930d1; }
.pf-adequacao-icon { grid-area: icone; width: 22px; height: 22px; color: var(--score-to); }
.pf-adequacao-label { grid-area: nome; color: #2a1f1c; font: 700 .88rem/1.3 var(--font-display); }
.pf-adequacao-track { display: block; width: 100%; height: 8px; overflow: hidden; border-radius: 999px; background: #ddd8d3; }
.pf-adequacao-fill { display: block; height: 100%; border-radius: inherit; background: var(--score-fill, var(--ds-copper)); }
/* O anel usa --v (porcentagem) vindo do template; a largura inline só vale para as barras simples. */
.pf-adequacao-item .pf-adequacao-track { grid-area: anel; width: 104px; height: 104px; justify-self: center; overflow: visible; border-radius: 50%; background: transparent; }
.pf-adequacao-item .pf-adequacao-fill { width: 100% !important; border-radius: 50%; background: conic-gradient(var(--score-from), var(--score-to) calc(var(--v) * 1%), #ece4de 0); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 12px), #000 calc(100% - 11px)); mask: radial-gradient(farthest-side, transparent calc(100% - 12px), #000 calc(100% - 11px)); }
.pf-adequacao-item strong { grid-area: anel; place-self: center; color: var(--score-to); font: 800 1.45rem/1 var(--font-display); }

/* Respostas curtas para leitura rápida e extração semântica. */
.pf-geo { border-block: 1px solid var(--line); }
.pf-geo-head { max-width: 760px; }
.pf-geo-head p:last-child { margin: 12px 0 0; color: var(--ink-soft); line-height: 1.6; }
.pf-geo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 26px 0 0; }
.pf-geo-grid div { padding: 22px; border-left: 3px solid var(--ds-copper); background: var(--ds-cream); }
.pf-geo-grid dt { margin-bottom: 8px; font: 700 1rem/1.3 var(--font-display); }
.pf-geo-grid dd { margin: 0; color: var(--ink-soft); line-height: 1.6; }
.pf-ocasioes-scores { padding-block: clamp(28px, 4vw, 52px); background: var(--ds-cream); }
.pf-ocasioes-scores-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 26px 0 0; padding: 0; list-style: none; }
.pf-ocasioes-scores-grid li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 14px; padding: 18px; background: #faf5f1; }
.pf-ocasioes-scores-grid li > span:first-child { font-weight: 700; }
.pf-ocasioes-scores-grid .pf-adequacao-track { grid-column: 1 / -1; grid-row: 2; }
.pf-ocasioes-scores-grid strong { color: var(--ds-copper); }

.pf-pontos { padding-top: 0; }
.pf-pontos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.pf-pontos-card { padding: 28px; background: var(--ds-cream); }
.pf-pontos-card h3 { margin: 0 0 16px; font-size: 1.15rem; text-transform: none; }
.pf-pontos-card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pf-pontos-card li { position: relative; padding-left: 30px; line-height: 1.5; }
.pf-pontos-card li::before { position: absolute; top: 1px; left: 0; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: var(--ds-white); background: var(--ds-copper); font-size: .7rem; font-weight: 800; content: "\2713"; }
.pf-pontos-card.is-warn li::before { background: var(--ds-ink); content: "!"; }
.pf-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Vitrine "Bom para": mesmos cards da Home, em quantas colunas couberem */
.pf-ocasioes-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.pf-ocasioes-grid .category-card:first-child { grid-row: auto; grid-column: auto; min-height: 290px; }
.pf-ocasioes-grid .category-card:first-child:not(.has-image) { color: var(--ds-white); background: var(--ds-ink); }
.pf-ocasioes-grid .category-card { color: var(--ds-white); }
.pf-ocasioes-grid .category-card .category-kicker { margin-bottom: 0; color: var(--ds-white); background: #141414; }
.pf-ocasioes-grid .category-card h3 { align-self: flex-start; margin-top: 0; padding: .35rem .6rem; color: var(--ds-white); background: #ff6d18; }
.pf-ocasioes-grid .category-card p, .pf-ocasioes-grid .pf-ocasiao-cta { color: var(--ds-white); }
.pf-ocasiao-cta { margin-top: 1rem; font: 700 .8rem/1 var(--font-display); letter-spacing: .06em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; }
.pf-marca-cta { margin-top: 2rem; text-align: center; }

/* Chamada final */
.pf-cta { padding-block: clamp(48px, 6vw, 72px); color: var(--ds-white); background: var(--ds-ink); }
.pf-cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.pf-cta h2 { max-width: 24ch; color: var(--ds-white); font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.pf-cta p:not(.eyebrow) { margin: 12px 0 0; color: #d0d0d0; }
.pf-compra-orientacao { flex-basis: 100%; max-width: 90ch; line-height: 1.7; }
.pf-cta-btn { min-height: 52px; padding: 0 28px; border: 0; color: var(--ds-white); background: linear-gradient(90deg, #ff6d18, #ffa128); }

@media (max-width: 980px) {
  .pf-hero-grid, .pf-split { grid-template-columns: 1fr; }
  .pf-sobre .pf-sobre-trilha { --trilha-gap: 22px; grid-template-columns: 1fr; }
  .pf-sobre .pf-sobre-passo { padding: 0 0 0 38px; }
  .pf-sobre .pf-sobre-passo::before { top: 2px; }
  .pf-sobre .pf-sobre-passo::after { top: 11px; left: 8px; width: 2px; height: calc(100% + var(--trilha-gap)); }
  .pf-ficha-list { grid-template-columns: 1fr; }
  .pf-adequacao-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pf-ocasioes-scores-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .pf-sobre-notas { padding: 22px; }
  .pf-sobre .pf-sobre-notas .notes-list div { grid-template-columns: 1fr; gap: 10px; width: 100% !important; }
  .pf-best { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "label label" "store price" "cta cta"; }
  .pf-best-cta { justify-content: center; width: 100%; }
  .pf-store { grid-template-columns: minmax(0, 1fr) auto; }
  .pf-store-cta { grid-column: 1 / -1; justify-content: center; }
  .pf-quick { grid-template-columns: 1fr; }
  .pf-ficha-list div { grid-template-columns: 1fr; gap: 4px; }
  .pf-adequacao-grid, .pf-geo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-ocasioes-scores-grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) { .pf-geo-grid { grid-template-columns: 1fr; } }
/* O tamanho comercial acompanha o preço da respectiva loja. */
.pf-best-price > .offer-volume, .pf-store-price > .offer-volume { display: block; font-size: .85rem; font-weight: 700; line-height: 1.4; }
