/* GuiaMart: componentes compartilhados (botões, preço, cards, blocos). */

:where(:root) {
	--gm-primaria: #e4572e;
	--gm-secundaria: #17324d;
	--gm-destaque: #f3b23a;
	--gm-fundo: #faf7f2;
	--gm-superficie: #ffffff;
	--gm-texto: #1f2933;
	--gm-escuro: #14212e;
	--gm-claro: #f1ede4;
	--gm-raio: 14px;
	--gm-raio-botao: 999px;
	--gm-largura: 1160px;
	--gm-fonte-titulo: Georgia, serif;
	--gm-fonte-texto: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--gm-sombra: 0 1px 2px rgb(0 0 0 / 6%), 0 8px 24px -8px rgb(0 0 0 / 16%);
	--gm-sombra-forte: 0 2px 4px rgb(0 0 0 / 8%), 0 24px 48px -16px rgb(0 0 0 / 28%);
	--gm-btn-bg: var(--gm-primaria);
	--gm-btn-cor: #fff;
}

.gm-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.gm-pular {
	position: absolute;
	left: 12px;
	top: -60px;
	z-index: 1000;
	padding: 10px 16px;
	background: #000;
	color: #fff;
	border-radius: 8px;
	text-decoration: none;
}
.gm-pular:focus { top: 12px; }

.gm-icone {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	vertical-align: -0.2em;
}

/* Botões (seletores com elemento para vencer estilos globais de links do tema) */
a.gm-btn, button.gm-btn, span.gm-btn {
	--_bg: var(--gm-btn-bg, var(--gm-primaria));
	--_cor: var(--gm-btn-cor, #fff);
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	min-height: 48px;
	max-width: 100%;
	padding: 0.8em 1.6em;
	border: 2px solid var(--_bg);
	border-radius: var(--gm-raio-botao);
	background-color: var(--_fundo, var(--_bg));
	color: var(--_cor);
	font-family: var(--gm-fonte-texto);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.gm-btn:hover { filter: brightness(1.07); transform: translateY(-1px); box-shadow: 0 10px 22px -10px var(--_bg); color: var(--_cor); }
.gm-btn:active { transform: translateY(0); }
.gm-btn:focus-visible { outline: 3px solid var(--gm-destaque); outline-offset: 3px; }
.gm-btn.gm-btn--grande { min-height: 58px; padding: 1em 2.1em; font-size: 1.08rem; text-transform: uppercase; letter-spacing: 0.03em; }
.gm-btn.gm-btn--pequeno { min-height: 40px; padding: 0.55em 1.2em; font-size: 0.92rem; }
.gm-btn.gm-btn--contorno { --_fundo: transparent; --_cor: var(--gm-btn-bg, var(--gm-primaria)); }
.gm-btn.gm-btn--claro { --_bg: #fff; --_cor: var(--gm-escuro); }
.gm-btn.gm-btn--brilho {
	background-image: linear-gradient(180deg, rgb(255 255 255 / 22%), rgb(255 255 255 / 0) 55%);
	box-shadow: 0 12px 26px -12px var(--_bg), inset 0 -2px 0 rgb(0 0 0 / 14%);
}
.gm-btn.is-largo { display: flex; width: 100%; }
.gm-btn__seta { transition: transform 0.2s ease; }
.gm-btn:hover .gm-btn__seta { transform: translateX(3px); }

.gm-compra { display: flex; flex-direction: column; gap: 14px; margin-block: 28px; }
.gm-compra--left { align-items: flex-start; }
.gm-compra--center { align-items: center; text-align: center; }
.gm-compra--right { align-items: flex-end; }
.gm-compra .gm-btn.is-largo { align-self: stretch; }

.gm-selos-compra {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.86rem;
	opacity: 0.82;
}
.gm-compra--center .gm-selos-compra { justify-content: center; }
.gm-selos-compra li { display: inline-flex; align-items: center; gap: 6px; }
.gm-selos-compra .gm-icone { width: 1.05em; height: 1.05em; }

/* Preço ------------------------------------------------------------- */
.gm-preco { display: inline-flex; align-items: baseline; flex-wrap: wrap; gap: 0 8px; font-weight: 700; }
.gm-preco__de { font-size: 0.85em; font-weight: 400; opacity: 0.6; }
.gm-preco__por { text-decoration: none; color: inherit; background: none; }

.gm-preco-bloco { margin-block: 12px; }
.gm-preco-bloco--center { text-align: center; }
.gm-preco-bloco--cartao {
	padding: clamp(24px, 4vw, 40px);
	border-radius: calc(var(--gm-raio) * 1.4);
	background: var(--gm-superficie);
	color: var(--gm-texto);
	box-shadow: var(--gm-sombra-forte);
	border: 1px solid rgb(0 0 0 / 6%);
}
.gm-preco-bloco p { margin: 0; }
.gm-preco-bloco__rotulo { font-family: var(--gm-fonte-titulo); font-size: 1.25rem; font-weight: 700; margin-bottom: 16px !important; }
.gm-preco-bloco__itens { margin: 0 0 22px; padding: 0; list-style: none; text-align: left; display: grid; gap: 10px; }
.gm-preco-bloco__itens li { display: flex; gap: 10px; align-items: flex-start; }
.gm-preco-bloco__itens .gm-icone { color: var(--gm-primaria); margin-top: 0.1em; }
.gm-preco-bloco__de { opacity: 0.65; }
.gm-preco-bloco__por { margin-block: 2px 4px !important; }
.gm-preco-bloco__por-rotulo { font-size: 1rem; opacity: 0.7; }
.gm-valor { font-family: var(--gm-fonte-titulo); font-size: clamp(2.6rem, 6vw, 3.6rem); line-height: 1; color: var(--gm-primaria); letter-spacing: -0.02em; }
.gm-valor__moeda { font-size: 0.42em; margin-right: 0.18em; vertical-align: 0.95em; }
.gm-valor__cent { font-size: 0.45em; vertical-align: 0.9em; }
.gm-preco-bloco__economia {
	display: inline-block;
	margin-top: 8px !important;
	padding: 3px 12px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--gm-primaria) 14%, transparent);
	color: var(--gm-primaria);
	font-size: 0.85rem;
	font-weight: 700;
}
.gm-preco-bloco__obs { margin-top: 10px !important; font-size: 0.92rem; opacity: 0.72; }
.gm-preco-bloco .gm-compra { margin-block: 22px 0; }

/* Garantia ---------------------------------------------------------- */
.gm-garantia {
	display: flex;
	gap: 18px;
	align-items: center;
	margin-block: 20px;
	padding: 18px 20px;
	border: 1px dashed color-mix(in srgb, var(--gm-primaria) 45%, transparent);
	border-radius: var(--gm-raio);
	background: color-mix(in srgb, var(--gm-superficie) 70%, transparent);
}
.gm-garantia__selo {
	display: grid;
	place-items: center;
	flex: none;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	background: var(--gm-primaria);
	color: #fff;
	text-align: center;
	line-height: 1;
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--gm-primaria) 20%, transparent);
}
.gm-garantia__selo .gm-icone { width: 18px; height: 18px; }
.gm-garantia__selo strong { font-size: 1.6rem; }
.gm-garantia__selo span { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; }
.gm-garantia__texto h3 { margin: 0 0 4px; font-size: 1.1rem; }
.gm-garantia__texto p { margin: 0; font-size: 0.95rem; opacity: 0.85; }

/* Item com ícone ---------------------------------------------------- */
.gm-item { --gm-item-cor: var(--gm-primaria); display: flex; gap: 14px; align-items: flex-start; margin-block: 14px; }
.gm-item--vertical { flex-direction: column; gap: 12px; }
.gm-item__icone {
	display: grid;
	place-items: center;
	flex: none;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	color: var(--gm-item-cor);
	background: color-mix(in srgb, var(--gm-item-cor) 13%, transparent);
}
.gm-item--quadrado .gm-item__icone { border-radius: calc(var(--gm-raio) * 0.8); }
.gm-item--simples .gm-item__icone { width: auto; height: auto; background: none; }
.gm-item--simples .gm-item__icone .gm-icone { width: 30px; height: 30px; }
.gm-item__icone .gm-icone { width: 22px; height: 22px; }
.gm-item__texto { min-width: 0; }
.gm-item .gm-item__titulo { margin: 0 0 2px; font-family: var(--gm-fonte-texto); font-size: 1.02rem; font-weight: 800; line-height: 1.35; letter-spacing: 0; }
.gm-item__desc { margin: 0; font-size: 0.95rem; line-height: 1.5; opacity: 0.8; }

/* Depoimentos ------------------------------------------------------- */
.gm-depoimentos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 22px;
}
.gm-depoimentos > :not(.gm-depoimento) { grid-column: 1 / -1; }
.gm-depoimento {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 26px;
	border-radius: var(--gm-raio);
	background: var(--gm-superficie);
	color: var(--gm-texto);
	box-shadow: var(--gm-sombra);
}
.gm-depoimento blockquote { margin: 0; padding: 0; border: 0; font-size: 1rem; line-height: 1.6; }
.gm-depoimento blockquote p { margin: 0; }
.gm-depoimento figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.gm-depoimento__foto { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.gm-depoimento cite { display: block; font-style: normal; font-weight: 800; }
.gm-depoimento small { display: block; opacity: 0.7; }
.gm-depoimento__estrelas { margin: 0; color: #f2a516; letter-spacing: 2px; font-size: 1.1rem; }
.gm-depoimento__vazias { color: rgb(0 0 0 / 15%); }

/* Cabeçalho da landing --------------------------------------------- */
.gm-cab { position: relative; z-index: 50; background: var(--gm-superficie); color: var(--gm-texto); transition: box-shadow 0.2s ease; }
.gm-cab.is-fixo { position: sticky; top: 0; }
.admin-bar .gm-cab.is-fixo { top: 32px; }
.gm-cab.is-rolado { box-shadow: 0 6px 24px -12px rgb(0 0 0 / 30%); }
.gm-cab__in {
	display: flex;
	align-items: center;
	gap: 24px;
	max-width: var(--gm-largura);
	margin: 0 auto;
	padding: 12px clamp(16px, 4vw, 32px);
}
.gm-cab a { text-decoration: none; }
.gm-cab__marca { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; margin-right: auto; }
.gm-cab__icone { color: var(--gm-primaria); }
.gm-cab__icone .gm-icone { width: 32px; height: 32px; }
.gm-cab__textos { display: flex; flex-direction: column; line-height: 1.05; }
.gm-cab__nome { font-family: var(--gm-fonte-titulo); font-size: 1.32rem; font-weight: 700; color: inherit; }
.gm-cab__sub { font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.75; }
.gm-cab__logo { max-height: 44px; width: auto; }
.gm-cab__nav ul { display: flex; gap: 28px; margin: 0; padding: 0; list-style: none; }
.gm-cab__nav a, .gm-cab__nav span { color: inherit; text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.gm-cab__nav a:hover { color: var(--gm-primaria); }
.gm-cab__cta { flex: none; text-transform: none; }
@media (max-width: 860px) {
	.gm-cab__nav { display: none; }
	.gm-cab__in { gap: 12px; }
}
@media (max-width: 782px) {
	.admin-bar .gm-cab.is-fixo { top: 46px; }
}
@media (max-width: 600px) {
	.admin-bar .gm-cab.is-fixo { top: 0; }
}

/* Cards do catálogo ------------------------------------------------- */
.gm-grade { display: grid; gap: clamp(18px, 2.4vw, 28px); grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.gm-grade--1 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) {
	.gm-grade--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gm-grade--3, .gm-grade--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
	.gm-grade--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.gm-grade--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.gm-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	color: var(--gm-texto);
	box-shadow: 0 1px 2px rgb(16 24 40 / 6%), 0 10px 30px -16px rgb(16 24 40 / 22%);
	border: 1px solid rgb(16 24 40 / 6%);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.gm-card[hidden] { display: none; }
.gm-card:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgb(16 24 40 / 6%), 0 26px 50px -22px rgb(16 24 40 / 34%); }
a.gm-card__capa {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: linear-gradient(135deg, color-mix(in srgb, var(--gm-primaria) 16%, #fff), color-mix(in srgb, var(--gm-secundaria) 14%, #fff));
}
.gm-card__capa img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.gm-card:hover .gm-card__capa img { transform: scale(1.04); }
.gm-card__sem-capa { display: grid; place-items: center; height: 100%; padding: 24px; text-align: center; font-family: var(--gm-fonte-titulo); font-size: 1.4rem; color: var(--gm-secundaria); }
.gm-card__selo { position: absolute; top: 12px; left: 12px; padding: 4px 10px; border-radius: 999px; background: var(--gm-primaria); color: #fff; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.gm-card__corpo { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 18px 20px 20px; }
.gm-card__meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.gm-etiqueta, .gm-tipo { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.02em; }
.gm-etiqueta { background: color-mix(in srgb, var(--gm-primaria) 12%, #fff); color: color-mix(in srgb, var(--gm-primaria) 80%, #000); }
.gm-tipo { background: color-mix(in srgb, var(--gm-secundaria) 9%, #fff); color: var(--gm-secundaria); }
.gm-card__titulo { margin: 0; font-family: var(--gm-fonte-titulo); font-size: 1.28rem; line-height: 1.22; letter-spacing: -0.005em; }
.gm-card .gm-card__titulo a { color: inherit; text-decoration: none; }
.gm-card__titulo a::after { content: ""; position: absolute; inset: 0; }
.gm-card__titulo a:focus-visible { outline: none; }
.gm-card:has(.gm-card__titulo a:focus-visible) { outline: 3px solid var(--gm-destaque); outline-offset: 2px; }
.gm-card__resumo { display: -webkit-box; margin: 0; overflow: hidden; color: color-mix(in srgb, var(--gm-texto) 75%, #fff); font-size: 0.95rem; line-height: 1.55; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.gm-card__rodape { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 6px; }
.gm-card__rodape .gm-preco { font-size: 1.15rem; color: var(--gm-texto); }
a.gm-card__btn { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px; color: var(--gm-primaria); font-weight: 800; font-size: 0.92rem; text-decoration: none; white-space: nowrap; }
.gm-card__btn .gm-icone { transition: transform 0.2s ease; }
.gm-card:hover .gm-card__btn .gm-icone { transform: translateX(3px); }

a.gm-card__capa.gm-card__capa--retrato img {
	position: absolute;
	inset: 0;
	margin: auto;
	width: auto;
	max-width: 80%;
	height: 84%;
	object-fit: contain;
	border-radius: 3px 8px 8px 3px;
	box-shadow: inset 4px 0 8px -4px rgb(0 0 0 / 30%), 10px 14px 24px -10px rgb(0 0 0 / 45%);
}
.gm-card:hover .gm-card__capa--retrato img { transform: translateY(-4px) rotate(-1deg); }

.gm-card--feature { display: grid; grid-template-columns: minmax(0, 1fr); }
.gm-card--feature .gm-card__resumo { -webkit-line-clamp: 6; font-size: 1rem; }
.gm-card--feature .gm-card__rodape { justify-content: flex-start; gap: 22px; margin-top: 14px; }
.gm-card--feature .gm-card__rodape .gm-preco { font-size: 1.4rem; }
.gm-card--feature a.gm-card__btn { min-height: 46px; padding: 0 22px; border-radius: var(--gm-raio-botao, 999px); background: var(--gm-primaria); color: #fff; }
@media (min-width: 760px) {
	.gm-card--feature { grid-template-columns: 0.9fr 1.1fr; }
	.gm-card--feature .gm-card__capa { aspect-ratio: auto; min-height: 100%; }
	.gm-card--feature a.gm-card__capa--retrato { min-height: 420px; }
	.gm-card--feature .gm-card__corpo { padding: 36px 40px; justify-content: center; }
	.gm-card--feature .gm-card__titulo { font-size: 1.9rem; }
	.gm-card--feature .gm-card__rodape { margin-top: 18px; }
}

/* Aviso para quem edita (nunca aparece para visitantes) -------------- */
.gm-aviso-editor {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	margin: 12px 0;
	padding: 10px 14px;
	border-left: 4px solid #d97706;
	border-radius: 6px;
	background: #fff7e6;
	color: #6b4100 !important;
	font: 500 13px/1.45 system-ui, sans-serif;
	text-align: left;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
