/* VerdeWeb Salsicharia (tema). Creme, madeira e o verde da marca, com o logótipo, os ramos e o porco do site antigo. */
@font-face { font-family: "Cormorant"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(fonts/cormorant-garamond-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(fonts/cormorant-garamond-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant"; font-style: italic; font-weight: 300 700; font-display: swap; src: url(fonts/cormorant-garamond-italic-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant"; font-style: italic; font-weight: 300 700; font-display: swap; src: url(fonts/cormorant-garamond-italic-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 200 800; font-display: swap; src: url(fonts/manrope-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 200 800; font-display: swap; src: url(fonts/manrope-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }

:root {
	--papel: #f6f0e5;
	--papel-2: #ece3d3;
	--branco: #fffdf8;
	--tinta: #2a2019;
	--tinta-2: #5a4a3d;
	--linha: #d9ccb6;
	--verde: #23452e;
	--verde-2: #1a3523;
	--verde-claro: #dfe8d2;
	--vermelho: #9a2f1e;
	--madeira: #2e2118;
	--madeira-2: #3d2c20;
	--sobre-escuro: #f3ead9;
	--sobre-escuro-2: #cdbfa8;
	--raio: 14px;
	--raio-s: 8px;
	--largura: 1200px;
	--gutter: clamp(16px, 4vw, 40px);
	--titulos: "Cormorant", Georgia, "Times New Roman", serif;
	--texto: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
	--sombra: 0 1px 2px rgb(46 33 24 / 6%), 0 8px 24px rgb(46 33 24 / 8%);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--papel); color: var(--tinta); font: 400 17px/1.65 var(--texto); }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--verde); text-underline-offset: 3px; }
a:hover { color: var(--vermelho); }
:focus-visible { outline: 3px solid var(--vermelho); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { font-family: var(--titulos); font-weight: 600; line-height: 1.05; letter-spacing: -0.01em; margin: 0 0 0.4em; text-wrap: balance; }
h1 { font-size: clamp(2.7rem, 6.4vw, 5.2rem); }
h2 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); }
h3 { font-size: clamp(1.45rem, 2.2vw, 1.75rem); }
h1 em, h2 em { font-style: italic; font-weight: 500; color: var(--vermelho); }
p { margin: 0 0 1em; }
.so-leitor { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--verde); color: #fff; padding: 10px 16px; border-radius: var(--raio-s); }
.saltar:focus { top: 12px; color: #fff; }
.envolve { width: min(100% - 2 * var(--gutter), var(--largura)); margin-inline: auto; }
.secao { padding-block: clamp(56px, 9vw, 112px); }
.secao--clara { background: var(--branco); }
.secao--papel2 { background: var(--papel-2); }
.secao--escura { background: var(--madeira); color: var(--sobre-escuro); }
.secao--escura a { color: var(--sobre-escuro); }
.secao--verde { background: var(--verde); color: #f4f1e8; }
.secao--verde a { color: #f4f1e8; }
.sobretitulo { display: inline-block; margin: 0 0 14px; font: 700 0.78rem/1.2 var(--texto); letter-spacing: 0.16em; text-transform: uppercase; color: var(--vermelho); }
.secao--escura .sobretitulo, .secao--verde .sobretitulo { color: #e9c58b; }
.secao--escura h2 em, .secao--escura h3 em, .rodape .marca__pequeno { color: #e9c58b; }
.entrada { font-size: clamp(1.05rem, 1.6vw, 1.2rem); color: var(--tinta-2); max-width: 62ch; }
.secao--escura .entrada { color: var(--sobre-escuro-2); }
.secao--verde .entrada { color: #d6e0cc; }
.cabeca-secao { max-width: 760px; margin-bottom: clamp(28px, 4vw, 48px); }
.cabeca-secao--centro { margin-inline: auto; text-align: center; }
.nota { font-size: 0.86rem; color: var(--tinta-2); }

/* ---- Botões ---------------------------------------------------------------- */
.botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 24px; border-radius: 999px; border: 2px solid var(--verde); background: var(--verde); color: #fff; font: 700 0.98rem/1.2 var(--texto); text-decoration: none; cursor: pointer; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.botao:hover { background: var(--verde-2); border-color: var(--verde-2); color: #fff; }
.botao--contorno { background: transparent; color: var(--verde); }
.botao--contorno:hover { background: var(--verde); color: #fff; }
.secao--escura .botao--contorno, .secao--verde .botao--contorno { border-color: var(--sobre-escuro); color: var(--sobre-escuro); }
.secao--escura .botao--contorno:hover, .secao--verde .botao--contorno:hover { background: var(--sobre-escuro); color: var(--madeira); }
.secao--verde .botao:not(.botao--contorno) { background: #f4f1e8; border-color: #f4f1e8; color: var(--verde); }
.ligacao { font-weight: 700; text-decoration: none; border-bottom: 2px solid currentColor; padding-bottom: 2px; }

/* ---- Faixa da proposta e cabeçalho ------------------------------------------ */
.faixa-proposta { background: var(--verde-claro); color: var(--verde-2); text-align: center; font-size: 0.82rem; padding: 7px var(--gutter); }
.faixa-proposta strong { font-weight: 700; }
.cab { position: sticky; top: 0; z-index: 40; background: rgb(246 240 229 / 94%); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; transition: border-color 0.2s, box-shadow 0.2s; }
.cab.is-solido { border-color: var(--linha); box-shadow: 0 2px 16px rgb(46 33 24 / 6%); }
.cab__dentro { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.marca { display: flex; flex-direction: column; text-decoration: none; color: var(--tinta); line-height: 1; margin-right: auto; }
.marca__pequeno { font: 700 0.66rem/1 var(--texto); letter-spacing: 0.32em; text-transform: uppercase; color: var(--vermelho); }
.marca__nome { font: 600 1.7rem/1 var(--titulos); color: var(--verde); margin-top: 4px; }
.marca__desde { font: 500 0.72rem/1 var(--texto); color: var(--tinta-2); margin-top: 5px; letter-spacing: 0.06em; }
.marca--logo { flex-direction: row; align-items: center; gap: 12px; padding-block: 6px; }
.marca--logo img { width: 150px; height: auto; }
.marca--logo .marca__desde { margin: 0; line-height: 1.35; padding-left: 12px; border-left: 1px solid var(--linha); }
@media (max-width: 420px) { .marca--logo img { width: 112px; } .marca--logo .marca__desde { display: none; } }
.cab__nav ul { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.cab__nav a { display: block; padding: 10px 16px; border-radius: 999px; color: var(--tinta); text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.cab__nav a:hover { background: var(--papel-2); color: var(--tinta); }
.cab__nav a[aria-current="page"], .cab__nav a[aria-current="page"]:hover { background: var(--verde); color: #fff; }
.cab__acao { min-height: 44px; padding: 10px 20px; }
.cab__menu { display: none; min-height: 44px; min-width: 44px; border: 2px solid var(--verde); border-radius: 999px; background: transparent; color: var(--verde); font: 700 0.92rem var(--texto); padding: 8px 16px; cursor: pointer; }
@media (max-width: 980px) {
	.cab__menu { display: inline-flex; align-items: center; gap: 8px; }
	.cab__acao { display: none; }
	.cab__nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--papel); border-bottom: 1px solid var(--linha); box-shadow: 0 12px 24px rgb(46 33 24 / 10%); display: none; }
	.cab.is-aberto .cab__nav { display: block; }
	.cab__nav ul { flex-direction: column; padding: 12px var(--gutter) 20px; gap: 2px; }
	.cab__nav a { padding: 14px 8px; border-radius: var(--raio-s); font-size: 1.05rem; }
	.cab__nav a[aria-current="page"] { padding-inline: 16px; }
	.cab__nav .so-menu { display: block; }
}
.so-menu { display: none; }

/* ---- Abertura ------------------------------------------------------------- */
.abertura { padding-block: clamp(32px, 6vw, 72px) clamp(48px, 8vw, 96px); }
.abertura__grelha { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.abertura__texto .entrada { margin-bottom: 28px; }
.abertura__fotos { display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: auto auto; gap: 14px; }
.abertura__fotos figure { margin: 0; border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); background: var(--papel-2); }
.abertura__fotos img { width: 100%; height: 100%; object-fit: cover; }
.abertura__fotos figure:first-child { grid-row: span 2; aspect-ratio: 3 / 4; }
.abertura__fotos figure:not(:first-child) { aspect-ratio: 4 / 3; }
.selos { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--linha); font-size: 0.9rem; color: var(--tinta-2); }
.selos strong { display: block; font: 600 1.6rem/1 var(--titulos); color: var(--verde); }
@media (max-width: 860px) {
	.abertura__grelha { grid-template-columns: 1fr; }
	.abertura__fotos { order: -1; grid-template-columns: 1.4fr 1fr; }
	.abertura__fotos figure:first-child { aspect-ratio: 1 / 1; }
}

/* ---- Citação ---------------------------------------------------------------- */
.citacao { text-align: center; max-width: 900px; margin-inline: auto; }
.citacao blockquote { margin: 0; font: italic 500 clamp(1.6rem, 3.4vw, 2.5rem)/1.25 var(--titulos); }
.citacao figcaption { margin-top: 18px; font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; color: #e9c58b; }

/* ---- Famílias --------------------------------------------------------------- */
.familias { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.familia { position: relative; display: flex; flex-direction: column; border-radius: var(--raio); overflow: hidden; background: var(--branco); box-shadow: var(--sombra); text-decoration: none; color: var(--tinta); transition: transform 0.25s; }
.familia:hover { transform: translateY(-4px); color: var(--tinta); }
.familia img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.familia__texto { padding: 18px 20px 22px; }
.familia h3 { margin-bottom: 6px; }
.familia p { margin: 0; font-size: 0.92rem; color: var(--tinta-2); }
.familia__conta { display: inline-block; margin-top: 12px; font-weight: 700; font-size: 0.86rem; color: var(--verde); }
@media (max-width: 980px) { .familias { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .familias { grid-template-columns: 1fr; } .familia { flex-direction: row; align-items: flex-start; } .familia img { flex: none; width: 36%; height: auto; aspect-ratio: 1 / 1; contain-intrinsic-size: none; } .familia__texto { padding: 14px 16px; } }

/* ---- Duas colunas (texto e foto) ---------------------------------------- */
.duas { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 6vw, 80px); align-items: center; }
.duas--inversa > :first-child { order: 2; }
.moldura { margin: 0; border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }
.moldura img { width: 100%; }
.moldura figcaption { padding: 10px 14px; font-size: 0.82rem; color: var(--tinta-2); background: var(--branco); }
@media (max-width: 860px) { .duas { grid-template-columns: 1fr; } .duas--inversa > :first-child { order: 0; } }

/* ---- Cronologia ------------------------------------------------------------- */
.cronologia { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); row-gap: 28px; gap: 0; position: relative; }
.cronologia li { position: relative; padding: 34px 18px 0 0; }
.cronologia li::before { content: ""; position: absolute; top: 9px; left: 0; right: 0; height: 2px; background: var(--linha); }
.cronologia li::after { content: ""; position: absolute; top: 3px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--vermelho); box-shadow: 0 0 0 4px var(--papel); }
.secao--clara .cronologia li::after { box-shadow: 0 0 0 4px var(--branco); }
.cronologia .ano { font: 600 2rem/1 var(--titulos); color: var(--verde); display: block; margin-bottom: 8px; }
.cronologia p { font-size: 0.94rem; color: var(--tinta-2); }
@media (max-width: 900px) {
	.cronologia { grid-template-columns: 1fr; }
	.cronologia li { padding: 0 0 22px 34px; }
	.cronologia li::before { top: 0; bottom: 0; left: 6px; right: auto; width: 2px; height: auto; }
	.cronologia li::after { top: 6px; }
}

/* ---- Cartões de passos / razões ------------------------------------------- */
.cartoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; list-style: none; margin: 0; padding: 0; }
.cartao { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 26px 24px; }
.secao--clara .cartao { background: var(--papel); }
.secao--escura .cartao { background: var(--madeira-2); border-color: #4a382a; }
.cartao__num { font: italic 600 2.2rem/1 var(--titulos); color: var(--vermelho); display: block; margin-bottom: 10px; }
.secao--escura .cartao__num { color: #e9c58b; }
.cartao p { margin: 0; color: var(--tinta-2); font-size: 0.96rem; }
.secao--escura .cartao p { color: var(--sobre-escuro-2); }
@media (max-width: 860px) { .cartoes { grid-template-columns: 1fr; } }

/* ---- Receitas ----------------------------------------------------------------- */
.receitas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.receita { background: var(--madeira-2); border-radius: var(--raio); overflow: hidden; display: flex; flex-direction: column; }
.receita img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.receita__texto { padding: 20px 22px 24px; }
.receita p { color: var(--sobre-escuro-2); font-size: 0.95rem; }
.receita ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.receita li a { display: inline-block; padding: 4px 10px; border: 1px solid #6b5543; border-radius: 999px; font-size: 0.82rem; text-decoration: none; }
.receita li a:hover { background: var(--sobre-escuro); color: var(--madeira); }
@media (max-width: 900px) { .receitas { grid-template-columns: 1fr; } }

/* ---- Locais (talho e fábrica) ---------------------------------------------- */
.locais { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.local { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 26px 26px 22px; display: flex; flex-direction: column; gap: 10px; }
.local h3 { margin: 0; }
.local__tipo { font: 700 0.74rem/1 var(--texto); letter-spacing: 0.16em; text-transform: uppercase; color: var(--vermelho); }
.local dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: 0.96rem; }
.local dt { font-weight: 700; color: var(--tinta-2); }
.local dd { margin: 0; }
.local .botoes { margin-top: auto; padding-top: 10px; }
.mapa { margin-top: 6px; border-radius: var(--raio-s); overflow: hidden; background: var(--papel-2); border: 1px solid var(--linha); }
.mapa__capa { display: grid; place-items: center; gap: 10px; min-height: 200px; padding: 20px; text-align: center; font-size: 0.9rem; color: var(--tinta-2); }
.mapa iframe { display: block; width: 100%; height: 280px; border: 0; }
@media (max-width: 860px) { .locais { grid-template-columns: 1fr; } }

/* ---- Topo das páginas interiores ------------------------------------------- */
.topo { padding-block: clamp(36px, 6vw, 72px) clamp(24px, 4vw, 40px); }
.topo h1 { font-size: clamp(2.4rem, 5.4vw, 4.2rem); }
.migalhas { font-size: 0.86rem; margin-bottom: 12px; color: var(--tinta-2); }
.migalhas a { color: var(--tinta-2); }

/* ---- Catálogo ----------------------------------------------------------------- */
.filtros { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.filtros button { min-height: 44px; padding: 8px 18px; border-radius: 999px; border: 2px solid var(--linha); background: var(--branco); color: var(--tinta); font: 700 0.92rem var(--texto); cursor: pointer; }
.filtros button:hover { border-color: var(--verde); }
.filtros button[aria-pressed="true"] { background: var(--verde); border-color: var(--verde); color: #fff; }
.filtros .conta { font-weight: 500; opacity: 0.8; }
.grupo-produtos { margin-bottom: 44px; }
.grupo-produtos[hidden] { display: none; }
.grupo-produtos > h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); display: flex; align-items: baseline; gap: 12px; }
.grupo-produtos > p { color: var(--tinta-2); max-width: 70ch; }
.produtos { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; list-style: none; margin: 0; padding: 0; }
.produto { background: var(--branco); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); display: flex; flex-direction: column; }
.produto img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; background: var(--papel-2); }
.produto__texto { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.produto h3 { font-size: 1.35rem; margin: 0; }
.produto__fam { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vermelho); }
.produto button { margin-top: auto; align-self: flex-start; min-height: 40px; padding: 6px 14px; border-radius: 999px; border: 2px solid var(--verde); background: transparent; color: var(--verde); font: 700 0.86rem var(--texto); cursor: pointer; }
.produto button:hover { background: var(--verde); color: #fff; }

/* ---- Ficha do produto (diálogo) --------------------------------------------- */
.ficha { width: min(760px, 100% - 24px); max-height: calc(100% - 24px); padding: 0; border: 0; border-radius: var(--raio); background: var(--branco); color: var(--tinta); box-shadow: 0 24px 60px rgb(0 0 0 / 30%); }
.ficha::backdrop { background: rgb(30 22 16 / 60%); }
.ficha__grelha { display: grid; grid-template-columns: 1fr 1fr; }
.ficha__grelha img { width: 100%; height: 100%; object-fit: cover; }
.ficha__texto { padding: 26px 26px 24px; }
.ficha dl { margin: 14px 0 18px; display: grid; gap: 10px; font-size: 0.94rem; }
.ficha dt { font-weight: 700; }
.ficha dd { margin: 0; color: var(--tinta-2); }
.ficha__fechar { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--branco); color: var(--tinta); font-size: 1.5rem; line-height: 1; cursor: pointer; box-shadow: var(--sombra); }
@media (max-width: 640px) { .ficha__grelha { grid-template-columns: 1fr; } .ficha__grelha img { aspect-ratio: 4 / 3; } }

/* ---- Formulários --------------------------------------------------------------- */
.formulario { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: clamp(20px, 3vw, 32px); }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo--largo { grid-column: 1 / -1; }
.campo label, .campo legend { font-weight: 700; font-size: 0.92rem; }
.campo .ajuda { font-size: 0.84rem; color: var(--tinta-2); }
.campo input, .campo select, .campo textarea { width: 100%; min-height: 48px; padding: 11px 14px; border: 1.5px solid #b9a98f; border-radius: var(--raio-s); background: #fff; color: var(--tinta); font: 400 1rem var(--texto); }
.campo textarea { min-height: 110px; resize: vertical; }
.campo input:focus-visible, .campo select:focus-visible, .campo textarea:focus-visible { outline: 3px solid var(--verde); outline-offset: 1px; border-color: var(--verde); }
.campo [aria-invalid="true"] { border-color: var(--vermelho); }
.erro { color: var(--vermelho); font-size: 0.86rem; font-weight: 600; }
.erro:empty { display: none; }
.consentimento { grid-column: 1 / -1; display: flex; gap: 10px; align-items: flex-start; font-size: 0.9rem; }
.consentimento input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--verde); flex: none; }
.formulario__fim { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 4px; }
.sucesso { grid-column: 1 / -1; padding: 14px 16px; border-radius: var(--raio-s); background: var(--verde-claro); color: var(--verde-2); font-weight: 600; }
.sucesso:empty { display: none; }
.linhas-encomenda { grid-column: 1 / -1; display: grid; gap: 10px; }
.linha-encomenda { display: grid; grid-template-columns: 1fr 150px 44px; gap: 10px; align-items: end; }
.linha-encomenda button { min-height: 48px; border: 1.5px solid #b9a98f; border-radius: var(--raio-s); background: #fff; color: var(--tinta); font-size: 1.2rem; cursor: pointer; }
.mais { justify-self: start; min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 2px dashed var(--verde); background: transparent; color: var(--verde); font: 700 0.9rem var(--texto); cursor: pointer; }
@media (max-width: 640px) { .campos { grid-template-columns: 1fr; } .linha-encomenda { grid-template-columns: 1fr 96px 44px; } }

/* ---- Bloco VerdeWeb (só na proposta) ------------------------------------------- */
.vw { background: #0f2a1d; color: #e8f1ea; padding-block: clamp(48px, 7vw, 80px); }
.vw__grelha { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(24px, 5vw, 64px); align-items: start; }
.vw h2 { color: #fff; }
.vw h2 em { color: #7fe0a8; }
.vw p { color: #c3d6c9; }
.vw ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.vw li { padding-left: 30px; position: relative; color: #e8f1ea; }
.vw li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 16px; height: 9px; border-left: 3px solid #4fd28a; border-bottom: 3px solid #4fd28a; transform: rotate(-45deg); }
.vw a { color: #fff; }
.vw .botao { background: #2fbf74; border-color: #2fbf74; color: #08130f; }
.vw .botao:hover { background: #4fd28a; border-color: #4fd28a; color: #08130f; }
.vw__contactos { margin-top: 18px; font-size: 0.95rem; }
@media (max-width: 860px) { .vw__grelha { grid-template-columns: 1fr; } }

/* ---- Rodapé ---------------------------------------------------------------- */
.rodape { background: var(--madeira); color: var(--sobre-escuro-2); padding-block: 56px 28px; font-size: 0.94rem; }
.rodape a { color: var(--sobre-escuro); }
.rodape__grelha { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 28px; }
.rodape h2 { font-size: 1.05rem; font-family: var(--texto); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sobre-escuro); margin-bottom: 12px; }
.rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.rodape .marca__nome { color: var(--sobre-escuro); }
.rodape__fim { margin: 40px 0 0; padding-top: 20px; border-top: 1px solid #4a382a; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; font-size: 0.86rem; }
.rodape__fim a { text-decoration: underline; text-underline-offset: 3px; display: inline-block; padding-block: 6px; }
.rodape__autor { margin-left: auto; }
@media (max-width: 760px) { .rodape__autor { margin-left: 0; } }
.livro { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid #6b5543; border-radius: var(--raio-s); text-decoration: none; }
@media (max-width: 900px) { .rodape__grelha { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rodape__grelha { grid-template-columns: 1fr; } }

/* ---- Texto corrido (privacidade) ------------------------------------------- */
.prosa { max-width: 72ch; }
.prosa h2 { font-size: 1.9rem; margin-top: 1.4em; }
.prosa ul { padding-left: 1.2em; }

/* ---- Revelar ao entrar no ecrã -------------------------------------------------- */
.js .revelar { opacity: 0; transform: translateY(18px); transition: opacity 0.6s ease, transform 0.6s ease; }
.js .revelar.is-visivel { opacity: 1; transform: none; }

/* ---- 3.ª versão ------------------------------------------------------------------ */
/* Os ramos e o porco no fundo, em verde (pedido do cliente a 21/10/2026).
   Ramos: folhas de videira (img/ramo.svg, gerado por desenhos/videira.py, escolha do cliente a 21/10). O porco é o original do site
   antigo (img/porco-original.svg, vetorizado de pig.png) com um rabisco de chão por baixo; a pata que estava no ar foi baixada até ao chão (22/10). */
:root { --ornamento: #7f9f5f; }
.enfeites { display: none; }
.ramo, .porco { display: block; }
.ramo::before, .porco::before { content: ""; display: block; width: 100%; height: 100%; background: var(--ornamento); }
.ramo { aspect-ratio: 304 / 731; }
.ramo::before { -webkit-mask: url(img/ramo.svg?v=3) center / contain no-repeat; mask: url(img/ramo.svg?v=3) center / contain no-repeat; }
.porco { aspect-ratio: 1188 / 760; }
.porco::before { -webkit-mask: url(img/porco-original.svg?v=5) center / contain no-repeat; mask: url(img/porco-original.svg?v=5) center / contain no-repeat; }
@media (min-width: 1380px) {
	.enfeites { display: block; position: fixed; inset: 0; z-index: 30; pointer-events: none; --margem: calc((100vw - var(--largura)) / 2); --ramo: min(150px, calc(var(--margem) - 20px)); }
	.ramo { position: absolute; width: var(--ramo); transform-origin: 50% 100%; animation: balanco 10s ease-in-out infinite alternate; }
	/* Direita: invertido, com o pé em cima, logo por baixo da barra. */
	.ramo--dir { right: calc((var(--margem) - var(--ramo)) / 2); top: var(--cab-h, 92px); transform-origin: 50% 0; }
	.ramo--dir::before { transform: scaleY(-1); }
	.ramo--esq { left: calc((var(--margem) - var(--ramo)) / 2); bottom: 1vh; scale: -1 1; animation-delay: -5s; }
	.porco--fixo { position: absolute; right: calc((var(--margem) - min(170px, calc(var(--margem) - 16px))) / 2); bottom: 3vh; width: min(170px, calc(var(--margem) - 16px)); }
}
@keyframes balanco { from { rotate: -1.2deg; } to { rotate: 1.2deg; } }
/* No rodapé escuro (ecrãs mais pequenos), o mesmo porco e o mesmo verde. */
.porco--rodape { width: 120px; margin: 34px auto 0; }
@media (min-width: 1380px) { .porco--rodape { display: none; } }

/* Logótipo em grande ao abrir o site (só no início, uma vez por visita). */

/* Fotografias da história a preto e branco. */
.pb { filter: grayscale(1); }
.fotos-historia { display: grid; gap: 18px; max-width: 440px; justify-self: center; width: 100%; }
.fotos-historia img { width: 100%; }

/* A fábrica: dados e mapa lado a lado. */
.local--largo { display: grid; grid-template-columns: 1fr 1.2fr; gap: 24px; align-items: stretch; }
.local--largo .local__dados { display: flex; flex-direction: column; gap: 10px; }
.local--largo .mapa { margin: 0; display: grid; }
.local--largo .mapa__capa { align-content: center; }
.local--largo > * { min-width: 0; }
.local dd a, .rodape a { overflow-wrap: anywhere; }
@media (max-width: 860px) { .local--largo { grid-template-columns: 1fr; } }
/* Contactos: tudo num só bloco — dados à esquerda, mapa à direita e as fotografias do site antigo a passar por baixo (21/10/2026). */
.local--bloco { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px; padding: 26px; }
.local--bloco .local__dados { display: flex; flex-direction: column; gap: 10px; }
.local--bloco .mapa { margin: 0; display: grid; }
.local--bloco .mapa__capa { align-content: center; min-height: 260px; }
.local--bloco .mapa iframe { height: 100%; min-height: 300px; }
.carrossel--fotos { width: 100%; max-width: 816px; margin: 0 auto; }
.carrossel--fotos .carrossel__pista { aspect-ratio: 8 / 3; }
.local--bloco .carrossel--fotos { grid-column: 1 / -1; justify-self: center; max-width: 800px; border-width: 0; box-shadow: none; border-radius: var(--raio-s); }
@media (max-width: 860px) { .local--bloco { grid-template-columns: 1fr; padding: 22px 18px 18px; } }

/* As fotografias dos produtos a passar, uma de cada vez, como no topo do site atual. */
.carrossel { position: relative; max-width: 820px; margin-inline: auto; border: 8px solid #fff; border-radius: var(--raio); box-shadow: var(--sombra); background: var(--papel-2); overflow: hidden; }
.carrossel__pista { position: relative; margin: 0; padding: 0; list-style: none; aspect-ratio: 3 / 2; }
.carrossel__item { position: absolute; inset: 0; opacity: 0; transition: opacity 0.9s ease; }
.carrossel__item.is-atual { opacity: 1; }
.carrossel__item img { width: 100%; height: 100%; object-fit: cover; }
.carrossel__pausa { position: absolute; right: 10px; bottom: 10px; min-height: 40px; padding: 6px 16px; border: 0; border-radius: 999px; background: rgb(255 253 248 / 92%); color: var(--verde); font: 700 0.86rem var(--texto); cursor: pointer; box-shadow: var(--sombra); }
.carrossel__pausa:hover { background: #fff; }
.js .carrossel__item:first-child:not(.is-visto) { opacity: 1; }

/* Dados da entidade de litígios. */
.dados { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 0 0 1.2em; }
.dados dt { font-weight: 700; color: var(--tinta-2); }
.dados dd { margin: 0; }
.prosa h2 { text-wrap: pretty; }
@media (max-width: 520px) {
	.local { padding: 22px 18px 18px; }
	.local dl { grid-template-columns: 1fr; gap: 0; }
	.local dd { margin-bottom: 10px; }
	.local dd a { overflow-wrap: normal; }
}

@media (min-width: 901px) { .rodape__grelha { grid-template-columns: 1.1fr 0.8fr 0.8fr 1.3fr; } }
.rodape a { overflow-wrap: normal; }
@media (max-width: 400px) { .rodape a { overflow-wrap: anywhere; } }

/* ---- Site em WordPress ------------------------------------------------------------ */
.prosa a { overflow-wrap: anywhere; }
.prosa ul { margin: 0 0 1.2em; }
.prosa li { margin-bottom: 4px; }
.so-admin { position: fixed; left: 12px; bottom: 12px; z-index: 50; background: var(--verde); color: #fff; padding: 8px 14px; border-radius: 999px; font-size: 0.86rem; text-decoration: none; box-shadow: var(--sombra); }
.so-admin:hover { color: #fff; background: var(--verde-2); }
.admin-bar .cab { top: 32px; }
@media (max-width: 782px) { .admin-bar .cab { top: 0; } }

/* ---- Refinamentos (1.2.0) ------------------------------------------------------------ */
/* Cabeçalho com ar: o logótipo deixa de encostar ao topo. */
.cab__dentro { min-height: 92px; }
.marca--logo { padding-block: 10px; }
.marca--logo img { width: 128px; }
@media (max-width: 420px) { .cab__dentro { min-height: 76px; } .marca--logo { padding-block: 8px; } .marca--logo img { width: 96px; } }

/* Texto: linhas mais equilibradas, sem palavras soltas no fim dos parágrafos. */
p, li, dd, figcaption { text-wrap: pretty; }
::selection { background: var(--verde); color: #fff; }
a[href^="tel:"] { white-space: nowrap; font-variant-numeric: tabular-nums; }
.cab__nav a, .filtros button, .botao { transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; }

/* Fotografias: aparecem suavemente quando acabam de carregar e respiram ao passar o rato. */
.familia, .receita, .produto { isolation: isolate; }
.familia img, .receita img { background: var(--papel-2); }
.receita img { background: var(--madeira-2); }
.js img.a-carregar { opacity: 0; }
.js img.carregada { opacity: 1; transition: opacity 0.5s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.familia img, .receita img, .produto img { transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.5s ease; }
	.familia:hover img, .receita:hover img, .produto:hover img { transform: scale(1.04); }
	.receita, .produto { transition: transform 0.25s, box-shadow 0.25s; }
	.produto:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgb(46 33 24 / 6%), 0 14px 32px rgb(46 33 24 / 12%); }
}
.produto, .receita { overflow: hidden; }

/* Produtos: os filtros ficam à mão ao descer a página. */
.filtros { position: sticky; top: var(--cab-h, 92px); z-index: 20; margin-inline: calc(var(--gutter) * -1); padding: 10px var(--gutter); background: rgb(246 240 229 / 94%); backdrop-filter: blur(8px); }
.grupo-produtos { scroll-margin-top: calc(var(--cab-h, 92px) + 80px); }
.admin-bar .filtros { top: calc(var(--cab-h, 92px) + 32px); }
@media (max-width: 782px) { .admin-bar .filtros { top: var(--cab-h, 76px); } }
@media (max-width: 520px) { .filtros { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .filtros::-webkit-scrollbar { display: none; } .filtros button { flex: none; } }

/* Mapa: um sinal claro do que lá vai aparecer. */
.mapa__pino { color: var(--vermelho); opacity: 0.85; }
.mapa__capa p { margin: 0; }

/* Fotografias a passar (Contactos): moldura mais fina no telemóvel. */
@media (max-width: 520px) { .carrossel { border-width: 4px; } }

/* Páginas de texto: o texto alinhado com o título. */
.prosa > :first-child { margin-top: 0; }

/* Rodapé no telemóvel: as ligações legais arrumadas, uma por linha. */
@media (max-width: 560px) {
	.rodape__fim { flex-direction: column; align-items: flex-start; gap: 2px; }
	.rodape__fim > :first-child { margin-bottom: 6px; }
}

/* ---- Receitas completas (1.3.0) ------------------------------------------------------- */
.receita__texto { display: flex; flex-direction: column; flex: 1; }
.receita__texto > ul { margin-bottom: 20px; }
.receita__abrir { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px; border: 1px solid #6b5543; border-radius: 999px; background: transparent; color: #e9c58b; font: 700 0.92rem/1 var(--texto); cursor: pointer; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.receita__abrir::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-top: 2px solid currentColor; transform: rotate(45deg); transition: transform 0.2s; }
.receita__abrir:hover { background: var(--sobre-escuro); border-color: var(--sobre-escuro); color: var(--madeira); }
.receita__abrir:hover::after { transform: translateX(3px) rotate(45deg); }

/* A receita numa janela por cima da página */
html:has(.janela[open]) { overflow: hidden; }
.janela { width: min(920px, calc(100% - 32px)); max-height: calc(100dvh - 48px); padding: 0; border: 0; border-radius: var(--raio); background: var(--papel); color: var(--tinta); box-shadow: 0 30px 80px rgb(20 12 6 / 45%); overflow: auto; overscroll-behavior: contain; }
.janela::backdrop { background: rgb(28 19 12 / 72%); backdrop-filter: blur(3px); }
.janela__cab { position: relative; }
.janela__foto { width: 100%; aspect-ratio: 3 / 1; object-fit: cover; background: var(--papel-2); }
.janela__fechar { position: absolute; top: 14px; right: 14px; z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgb(255 253 248 / 94%); box-shadow: 0 2px 10px rgb(0 0 0 / 18%); cursor: pointer; display: grid; place-items: center; }
.janela__fechar::before, .janela__fechar::after { content: ""; grid-area: 1 / 1; width: 18px; height: 2px; border-radius: 2px; background: var(--tinta); transform: rotate(45deg); }
.janela__fechar::after { transform: rotate(-45deg); }
.janela__fechar:hover { background: var(--branco); }
.janela__corpo { padding: clamp(22px, 4vw, 40px); }
.janela__titulo { margin-bottom: 26px; padding-bottom: 20px; border-bottom: 1px solid var(--linha); }
.secao--escura .janela .sobretitulo { margin: 0 0 4px; color: var(--vermelho); }
.janela__titulo h3 { margin: 0; font: 600 clamp(1.9rem, 4vw, 2.6rem)/1.05 var(--titulos); color: var(--tinta); }
.janela__meta { margin: 10px 0 0; font-size: 0.92rem; color: var(--tinta-2); }
.janela__colunas { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.janela h4 { margin: 0 0 12px; font: 700 0.76rem/1.2 var(--texto); letter-spacing: 0.14em; text-transform: uppercase; color: var(--verde); }
.janela ul, .janela ol { margin: 0; padding: 0; list-style: none; display: grid; font-size: 0.96rem; }
.janela__ing { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio-s); padding: 18px 20px; }
.janela__ing li { padding: 7px 0 7px 18px; position: relative; border-bottom: 1px dashed var(--linha); line-height: 1.45; }
.janela__ing li:last-child { border-bottom: 0; }
.janela__ing li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: 6px; height: 6px; border-radius: 50%; background: var(--vermelho); }
.janela__passos ol { counter-reset: passo; gap: 16px; }
.janela__passos li { counter-increment: passo; display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; line-height: 1.6; }
.janela__passos li::before { content: counter(passo); display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--verde); color: var(--branco); font: 700 0.85rem/1 var(--texto); font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
	.janela { width: 100%; max-width: 100%; max-height: 100dvh; height: 100dvh; margin: 0; border-radius: 0; }
	.janela__foto { aspect-ratio: 16 / 9; }
	.janela__colunas { grid-template-columns: 1fr; }
	.janela__fechar { position: fixed; }
}
@media (prefers-reduced-motion: no-preference) {
	.janela[open] { animation: janela-abrir 0.32s cubic-bezier(0.2, 0.7, 0.2, 1); }
	.janela[open]::backdrop { animation: janela-fundo 0.32s ease; }
}
@keyframes janela-abrir { from { opacity: 0; transform: translateY(18px) scale(0.98); } to { opacity: 1; transform: none; } }
@keyframes janela-fundo { from { opacity: 0; } to { opacity: 1; } }
.receitas { align-items: stretch; }

/* ---- Produtos: a fotografia abre maior (21/10/2026) ---------------------------- */
.produto .produto__ampliar { display: block; width: 100%; margin: 0; padding: 0; min-height: 0; border: 0; border-radius: 0; background: none; cursor: zoom-in; align-self: stretch; overflow: hidden; }
.produto .produto__ampliar:hover { background: none; }
.produto .produto__ampliar:focus-visible { outline-offset: -4px; }
.ampliar { width: min(800px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: var(--raio); background: var(--branco); box-shadow: 0 30px 80px rgb(20 12 6 / 45%); overflow: hidden; }
.ampliar::backdrop { background: rgb(28 19 12 / 80%); backdrop-filter: blur(3px); }
.ampliar__fig { margin: 0; }
.ampliar__img { display: block; width: 100%; max-height: calc(100dvh - 110px); object-fit: contain; background: var(--papel-2); }
.ampliar__nome { padding: 14px 20px 16px; font: 600 1.5rem/1.2 var(--titulos); text-align: center; }
.ampliar__seta { position: absolute; top: calc(50% - 40px); width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgb(255 253 248 / 94%); box-shadow: 0 2px 10px rgb(0 0 0 / 18%); cursor: pointer; display: grid; place-items: center; }
.ampliar__seta::before { content: ""; width: 12px; height: 12px; border-left: 2.5px solid var(--tinta); border-bottom: 2.5px solid var(--tinta); transform: translateX(2px) rotate(45deg); }
.ampliar__seta--ant { left: 12px; }
.ampliar__seta--seg { right: 12px; }
.ampliar__seta--seg::before { transform: translateX(-2px) rotate(-135deg); }
.ampliar__seta:hover { background: var(--branco); }
@media (prefers-reduced-motion: no-preference) {
	.ampliar[open] { animation: janela-abrir 0.28s cubic-bezier(0.2, 0.7, 0.2, 1); }
	.ampliar[open]::backdrop { animation: janela-fundo 0.28s ease; }
}
html:has(.ampliar[open]) { overflow: hidden; }
