/* Primeira dobra da página de produto (VC_Produto_Pagina e widgets "Trilha", "Galeria" e
   "Informações do produto"). Fundo claro do site, Nunito Sans, azul #2F41FF, cinzas suaves.
   Cores e medidas são variáveis com o valor de hoje como padrão: os widgets do Elementor
   (aba Estilo) trocam cada uma, sem mexer neste arquivo. */

body.single-dt_portfolio .site-main { padding-top: 32px; }
.vc-prod--dobra { margin: 0 0 56px; }
.vc-prod-trilha { font: 400 13px/1.4 "Nunito Sans", sans-serif; color: var(--vc-suave, #8a93a3); margin-bottom: 24px; }
.vc-prod--trilha .vc-prod-trilha { margin-bottom: 0; }
.vc-prod-trilha a { color: var(--vc-link-trilha, #5a6472); text-decoration: none; }
.vc-prod-trilha a:hover { color: var(--vc-azul, #2f41ff); }
.vc-prod-trilha i { font-style: normal; margin: 0 6px; color: var(--vc-separador, #c3c9d3); }
.vc-prod-trilha span { color: var(--vc-titulo, #1d2433); }

.vc-prod-grade { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: start; }

/* Galeria. */
.vc-prod--dobra .vc-prod-galeria { position: sticky; top: 100px; }
/* Modelo "Produto": a coluna da galeria fica fixa ao rolar, abaixo do cabeçalho, até o fim das informações. */
.elementor-column.vc-prod-coluna-galeria { position: sticky; top: 120px; align-self: flex-start; }
.admin-bar .elementor-column.vc-prod-coluna-galeria { top: 152px; }
@media (max-width: 1024px) { .elementor-column.vc-prod-coluna-galeria { position: static; } } /* colunas empilhadas no tablet e no celular */
.vc-prod-foto {
	background: var(--vc-foto-fundo, #fff); border: 1px solid var(--vc-borda, #e8ebf0); border-radius: var(--vc-raio, 16px);
	aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; padding: var(--vc-foto-espaco, 36px);
	box-sizing: border-box; box-shadow: 0 12px 32px rgba(16, 24, 40, .06);
}
.vc-prod-foto img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; transition: opacity .2s; }
.vc-prod-miniaturas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.vc-prod .vc-prod-mini {
	width: var(--vc-mini, 72px); height: var(--vc-mini, 72px); padding: 6px; background: var(--vc-foto-fundo, #fff);
	border: 1px solid var(--vc-borda, #e8ebf0); border-radius: calc(var(--vc-raio, 16px) * .625); cursor: pointer; transition: border-color .2s, box-shadow .2s;
}
.vc-prod-mini img { width: 100%; height: 100%; object-fit: contain; display: block; }
.vc-prod .vc-prod-mini:hover, .vc-prod .vc-prod-mini:focus { background: var(--vc-foto-fundo, #fff); color: inherit; border-color: #b9c2d0; }
.vc-prod .vc-prod-mini.atual { border-color: var(--vc-azul, #2f41ff); box-shadow: 0 0 0 2px rgba(47, 65, 255, .15); }

/* Informações. */
.vc-prod-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 18px; }
.vc-prod-marca { display: block; height: 28px; width: auto; max-width: 140px; object-fit: contain; }
.vc-prod-marca-link { display: inline-flex; padding-right: 16px; border-right: 1px solid var(--vc-borda, #e3e7ed); }
.vc-prod-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.vc-prod-chips span, .vc-prod-chips a {
	font: 600 12px/1 "Nunito Sans", sans-serif; text-transform: uppercase; letter-spacing: .04em;
	color: var(--vc-chip-texto, var(--vc-azul, #2f41ff)); background: var(--vc-chip-fundo, rgba(47, 65, 255, .07)); border: 1px solid transparent; border-radius: 6px; padding: 6px 9px;
}
.vc-prod-info .vc-prod-chips a { text-decoration: none; color: var(--vc-chip-texto, var(--vc-azul, #2f41ff)); transition: border-color .2s, background .2s; }
.vc-prod-info .vc-prod-chips a:hover { border-color: var(--vc-chip-texto, var(--vc-azul, #2f41ff)); background: #fff; color: var(--vc-chip-texto, var(--vc-azul, #2f41ff)); } /* leva ao catálogo com o filtro */
.vc-prod-titulo { font: 700 40px/1.1 "Nunito Sans", sans-serif; color: var(--vc-titulo, #1d2433); margin: 0 0 20px; letter-spacing: -.01em; }
.vc-prod-desc { font: 300 16px/1.65 "Nunito Sans", sans-serif; color: var(--vc-texto, #4a5363); position: relative; }
.vc-prod-desc p { margin: 0 0 14px; }
.vc-prod-desc strong, .vc-prod-desc b { font-weight: 700; color: var(--vc-titulo, #1d2433); }
.vc-prod-desc ul { padding-left: 20px; margin: 0 0 14px; }
.vc-prod-desc.recolhida { max-height: var(--vc-recolhe, 300px); overflow: hidden; }
.vc-prod-desc.recolhida::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(rgba(255, 255, 255, 0), var(--vc-fundo, #fff)); }
.vc-prod .vc-prod-mais { background: none; border: 0; padding: 6px 0; margin: 4px 0 0; font: 700 14px/1 "Nunito Sans", sans-serif; color: var(--vc-azul, #2f41ff); cursor: pointer; }
.vc-prod .vc-prod-mais:hover, .vc-prod .vc-prod-mais:focus { background: none; color: var(--vc-azul-hover, #2234e6); }
.vc-prod-mais[hidden] { display: none; }
.vc-prod-acoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--vc-borda, #eef1f5); }
.vc-prod-btn {
	display: inline-flex; align-items: center; gap: 8px; font: 700 15px/1 "Nunito Sans", sans-serif; text-decoration: none !important;
	border-radius: var(--vc-raio-botao, 8px); padding: 15px 22px; transition: background .2s, color .2s, border-color .2s, box-shadow .2s;
}
.vc-prod-btn--primario { background: var(--vc-azul, #2f41ff); color: var(--vc-botao-texto, #fff) !important; }
.vc-prod-btn--primario:hover { background: var(--vc-azul-hover, #2234e6); box-shadow: 0 8px 20px rgba(47, 65, 255, .28); }
.vc-prod-btn--sec { background: #fff; color: var(--vc-titulo, #1d2433) !important; border: 1px solid #dfe3e8; }
.vc-prod-btn--sec:hover { border-color: var(--vc-azul, #2f41ff); color: var(--vc-azul, #2f41ff) !important; }

/* Quadro de destaque na descrição ("Principais características:" + lista), montado por VC_Destaque. */
.vc-destaque {
	container-type: inline-size; margin: 18px 0; padding: 20px 22px;
	background: var(--vc-destaque-fundo, rgba(47, 65, 255, .05)); border: 1px solid var(--vc-destaque-borda, rgba(47, 65, 255, .14)); border-radius: 12px;
}
.vc-prod-desc .vc-destaque-titulo { margin: 0 0 14px; font: 700 12px/1.2 "Nunito Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--vc-titulo, #1d2433); }
.vc-destaque-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 12px 24px; }
@container (min-width: 520px) { .vc-destaque-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vc-prod-desc .vc-destaque-lista li { position: relative; margin: 0; padding-left: 28px; font-size: 15px; line-height: 1.5; }
.vc-destaque-lista li::before {
	content: ""; position: absolute; left: 0; top: .15em; width: 18px; height: 18px; border-radius: 50%;
	background: var(--vc-destaque-icone, var(--vc-azul, #2f41ff)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.5l2.2 2.2L11.5 5.8' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.vc-destaque-lista strong { display: block; margin-bottom: 2px; font-weight: 700; color: var(--vc-titulo, #1d2433); }
.vc-destaque-lista span { display: block; }

/* Reserva: no modelo "Produto", a faixa antiga só com o logo do fabricante não aparece (o logo já está nas informações). */
body.single-dt_portfolio:has(.vc-prod--info) [data-elementor-type="wp-post"] > .elementor-section:first-child:has(> .elementor-container > .elementor-column:only-child > .elementor-widget-wrap > .elementor-widget-image:only-child) { display: none; }

/* Aviso no editor quando não há produto para mostrar. */
.vc-prod-vazio { padding: 24px; border: 1px dashed #c3c9d3; border-radius: 8px; color: #5a6472; font: 400 14px/1.4 "Nunito Sans", sans-serif; text-align: center; }

@media (max-width: 960px) {
	.vc-prod-grade { grid-template-columns: 1fr; gap: 28px; }
	.vc-prod--dobra .vc-prod-galeria { position: static; }
	.vc-prod-titulo { font-size: 32px; }
}
@media (max-width: 600px) {
	.vc-prod-foto { padding: 20px; border-radius: 12px; }
	.vc-prod .vc-prod-mini { width: 60px; height: 60px; }
	.vc-prod-btn { flex: 1; justify-content: center; }
}
