/*
 * Gemelly — páginas da loja (carrinho, checkout, Minha conta, pedido).
 * Só usa as variáveis --gml-* (cores do painel) e fica fora de @layer, então
 * vence o CSS do WooCommerce que o Bricks carrega em camada.
 */

/* =====================================================================
 * Base da página
 * ================================================================== */
body.gml-loja {
	background: var(--gml-fundo);
	color: var(--gml-texto);
}
.gml-loja #brx-content.wordpress {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding: clamp(24px, 4vw, 56px) clamp(16px, 3vw, 32px) clamp(48px, 7vw, 96px);
}
/*
 * O Bricks usa html { font-size: 62.5% } (1rem = 10px). Todo o CSS daqui
 * é em "em" a partir desta base de 16px, então não depende disso.
 */
.gml-loja .woocommerce,
.gml-modal {
	font-family: var(--gml-fonte-texto);
	font-size: 16px;
	line-height: 1.55;
	color: var(--gml-texto);
	accent-color: var(--gml-primaria);
	-webkit-font-smoothing: antialiased;
}
.gml-loja .woocommerce *,
.gml-modal * {
	box-sizing: border-box;
}
.gml-loja .woocommerce :where(a:not(.gml-botao):not(.button)) {
	color: var(--gml-primaria);
}
.gml-loja .woocommerce form .form-row label,
.gml-loja .woocommerce form .form-row,
.gml-loja .woocommerce form p {
	text-align: left;
}

/* Tipografia */
.gml-titulo {
	font-family: var(--gml-fonte-titulo);
	font-weight:400;
	font-size: clamp(1.9em, 3.2vw, 2.5em);
	line-height: 1.08;
	letter-spacing: -.005em;
	color: var(--gml-primaria);
	margin: 0;
}
.gml-titulo--grande { font-size: clamp(2.2em, 4.4vw, 3.25em); }
.gml-titulo--medio { font-size: clamp(1.75em, 2.6vw, 2.15em); }
.gml-sobretitulo {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	margin: 0 0 .65em;
	font-size: .72em;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--gml-acento);
}
.gml-texto-suave { color: var(--gml-texto-suave); }
.gml-mt { margin-top: .75em !important; }

.gml-cabecalho { margin: 0 0 clamp(1.5em, 3vw, 2.4em); }
.gml-cabecalho > p:not(.gml-sobretitulo) { margin: .6em 0 0; max-width: 60ch; }
.gml-cabecalho--com-acao {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1em 1.5em;
}
.gml-cabecalho--centro {
	text-align: center;
	max-width: 520px;
	margin-inline: auto;
}

/* =====================================================================
 * Botões e links
 * ================================================================== */
.gml-botao,
.gml-loja .woocommerce .button,
.gml-loja .woocommerce button.button,
.gml-loja .woocommerce a.button,
.gml-loja .woocommerce input.button,
.gml-loja #place_order {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	min-height: 48px;
	padding: .75em 1.6em;
	border: 1px solid var(--gml-primaria);
	border-radius: 999px;
	background: var(--gml-primaria);
	color: var(--gml-fundo);
	font-family: var(--gml-fonte-texto);
	font-size: .84em;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	box-shadow: none;
	transition: background var(--gml-transicao), border-color var(--gml-transicao), color var(--gml-transicao), transform var(--gml-transicao), box-shadow var(--gml-transicao);
}
.gml-botao:hover,
.gml-loja .woocommerce .button:hover,
.gml-loja #place_order:hover {
	background: color-mix(in srgb, var(--gml-primaria) 86%, #000);
	border-color: color-mix(in srgb, var(--gml-primaria) 86%, #000);
	color: var(--gml-fundo);
	transform: translateY(-1px);
	box-shadow: 0 12px 28px -14px color-mix(in srgb, var(--gml-primaria) 70%, transparent);
}
.gml-botao:focus-visible,
.gml-loja .woocommerce .button:focus-visible,
.gml-loja #place_order:focus-visible,
.gml-link:focus-visible,
.gml-chip:focus-visible,
.gml-modal__fechar:focus-visible,
.gml-abas__botao:focus-visible,
.gml-atalho:focus-visible,
.gml-pedido-linha:focus-visible,
.gml-endereco--novo:focus-visible {
	outline: 2px solid var(--gml-acento);
	outline-offset: 3px;
}
.gml-botao--fantasma,
.gml-loja .woocommerce .gml-botao--fantasma {
	background: transparent;
	color: var(--gml-primaria);
	border-color: var(--gml-borda);
}
.gml-botao--fantasma:hover,
.gml-loja .woocommerce .gml-botao--fantasma:hover {
	background: var(--gml-suave);
	border-color: var(--gml-primaria);
	color: var(--gml-primaria);
	box-shadow: none;
}
.gml-botao--pequeno,
.gml-loja .woocommerce .gml-botao--pequeno {
	min-height: 38px;
	padding: .5em 1.1em;
	font-size: .74em;
}
.gml-botao--largo { width: 100%; }
.gml-botao:disabled,
.gml-loja .woocommerce .button:disabled,
.gml-loja .woocommerce .button.disabled {
	opacity: .55;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}
.gml-botao.is-carregando { position: relative; color: transparent !important; }
.gml-botao.is-carregando::after {
	content: "";
	position: absolute;
	width: 18px;
	height: 18px;
	border: 2px solid color-mix(in srgb, var(--gml-fundo) 40%, transparent);
	border-top-color: var(--gml-fundo);
	border-radius: 50%;
	animation: gmlGira .7s linear infinite;
}

.gml-link {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: .35em;
	padding: 0;
	border: 0;
	border-bottom: 1px solid transparent;
	background: none;
	color: var(--gml-primaria);
	font: inherit;
	font-size: .86em;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: color var(--gml-transicao), border-color var(--gml-transicao);
}
.gml-link:hover { border-bottom-color: var(--gml-acento); }
.gml-link--perigo { color: var(--gml-erro); }
.gml-link.is-confirmando { color: var(--gml-erro); font-weight: 600; }
.gml-link:disabled { opacity: .5; cursor: wait; }
.gml-icone-caixa { display: inline-flex; }

.gml-voltar {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	margin: 0 0 1.2em;
	font-size: .84em;
	color: var(--gml-texto-suave) !important;
	text-decoration: none;
}
.gml-voltar:hover { color: var(--gml-primaria) !important; }

/* =====================================================================
 * Peças comuns: cartão, selo, aviso, vazio, campos
 * ================================================================== */
.gml-cartao {
	background: var(--gml-superficie);
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 4px);
	padding: clamp(1.1em, 2.4vw, 1.6em);
	box-shadow: var(--gml-sombra-1);
}
.gml-cartao--destaque {
	background: linear-gradient(135deg, color-mix(in srgb, var(--gml-acento) 15%, var(--gml-superficie)), var(--gml-superficie) 70%);
	border-color: color-mix(in srgb, var(--gml-acento) 40%, var(--gml-borda));
}
.gml-cartao--suave {
	background: var(--gml-suave);
	border-color: transparent;
	box-shadow: none;
}
.gml-cartao__titulo {
	margin: 0 0 1em;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.35em;
	font-weight:400;
	line-height: 1.2;
	color: var(--gml-primaria);
}
.gml-cartao__titulo--icone { display: flex; align-items: center; gap: .55em; }
.gml-cartao__titulo--icone .gml-icone { color: var(--gml-acento); }
.gml-cartao__topo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	margin-bottom: .75em;
}
.gml-cartao__topo .gml-cartao__titulo { margin: 0; }

.gml-selo {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	padding: .34em .85em;
	border-radius: 999px;
	background: var(--gml-suave);
	color: var(--gml-primaria);
	font-size: .7em;
	font-weight: 500;
	letter-spacing: .07em;
	text-transform: uppercase;
	white-space: nowrap;
	line-height: 1.3;
}
.gml-selo::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}
.gml-selo--aguardando {
	background: color-mix(in srgb, var(--gml-acento) 18%, var(--gml-superficie));
	color: color-mix(in srgb, var(--gml-acento) 62%, var(--gml-texto));
}
.gml-selo--pago {
	background: color-mix(in srgb, var(--gml-sucesso) 14%, var(--gml-superficie));
	color: var(--gml-sucesso);
}
.gml-selo--concluido {
	background: color-mix(in srgb, var(--gml-primaria) 10%, var(--gml-superficie));
	color: var(--gml-primaria);
}
.gml-selo--problema {
	background: color-mix(in srgb, var(--gml-erro) 12%, var(--gml-superficie));
	color: var(--gml-erro);
}
.gml-selo--principal {
	background: var(--gml-primaria);
	color: var(--gml-fundo);
}
.gml-selo--principal::before { display: none; }

.gml-aviso {
	margin: 0 0 1em;
	padding: .85em 1em;
	border-left: 3px solid var(--gml-acento);
	border-radius: var(--gml-raio);
	background: var(--gml-suave);
	color: var(--gml-texto);
	font-size: .9em;
	line-height: 1.5;
}
.gml-aviso[hidden] { display: none; }
.gml-aviso--erro {
	border-left-color: var(--gml-erro);
	background: color-mix(in srgb, var(--gml-erro) 9%, var(--gml-superficie));
	color: color-mix(in srgb, var(--gml-erro) 78%, var(--gml-texto));
}
.gml-aviso--ok {
	border-left-color: var(--gml-sucesso);
	background: color-mix(in srgb, var(--gml-sucesso) 10%, var(--gml-superficie));
}
.gml-aviso--grande {
	display: flex;
	flex-direction: column;
	gap: .3em;
	padding: 1.2em 1.3em;
	font-size: .95em;
}

.gml-vazio {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1em;
	padding: clamp(1.8em, 5vw, 3em) 1em;
	text-align: center;
}
.gml-vazio p { margin: 0; color: var(--gml-texto-suave); max-width: 38ch; }
.gml-vazio__icone {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--gml-suave);
	color: var(--gml-acento);
}

/* Campos (WooCommerce e modal) */
.gml-loja .woocommerce form .form-row,
.gml-loja .woocommerce .form-row {
	margin: 0 0 1em;
	padding: 0;
}
.gml-loja .woocommerce form .form-row label,
.gml-loja .woocommerce form > p > label,
.gml-campo label {
	display: block;
	margin: 0 0 .4em;
	font-size: .8em;
	font-weight: 500;
	line-height: 1.4;
	color: var(--gml-texto);
}
.gml-loja .woocommerce .required { color: var(--gml-erro); text-decoration: none; border: 0; }
.gml-loja .woocommerce .optional { color: var(--gml-texto-suave); font-weight: 400; }
.gml-loja .woocommerce input.input-text,
.gml-loja .woocommerce input[type="text"],
.gml-loja .woocommerce input[type="email"],
.gml-loja .woocommerce input[type="tel"],
.gml-loja .woocommerce input[type="password"],
.gml-loja .woocommerce input[type="number"],
.gml-loja .woocommerce textarea,
.gml-loja .woocommerce select,
.gml-modal input[type="text"],
.gml-modal input[type="tel"],
.gml-modal select {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: .7em .95em;
	border: 1px solid var(--gml-borda);
	border-radius: var(--gml-raio);
	background: var(--gml-superficie);
	color: var(--gml-texto);
	font: inherit;
	font-size: 1em;
	line-height: 1.3;
	box-shadow: none;
	transition: border-color var(--gml-transicao), box-shadow var(--gml-transicao);
}
.gml-loja .woocommerce textarea { min-height: 96px; resize: vertical; }
.gml-loja .woocommerce input.input-text:focus,
.gml-loja .woocommerce input[type="text"]:focus,
.gml-loja .woocommerce input[type="email"]:focus,
.gml-loja .woocommerce input[type="tel"]:focus,
.gml-loja .woocommerce input[type="password"]:focus,
.gml-loja .woocommerce textarea:focus,
.gml-loja .woocommerce select:focus,
.gml-modal input:focus,
.gml-modal select:focus {
	outline: none;
	border-color: var(--gml-acento);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gml-acento) 22%, transparent);
}
.gml-loja .woocommerce .woocommerce-invalid input.input-text,
.gml-loja .woocommerce .woocommerce-invalid select,
.gml-modal .is-invalido {
	border-color: var(--gml-erro);
}
.gml-loja .woocommerce .checkout-inline-error-message,
.gml-campo__erro {
	margin: .35em 0 0;
	font-size: .78em;
	color: var(--gml-erro);
}
.gml-campo__erro:empty { display: none; }
.gml-loja .select2-container .select2-selection--single {
	height: 48px;
	border: 1px solid var(--gml-borda);
	border-radius: var(--gml-raio);
	background: var(--gml-superficie);
}
.gml-loja .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: .95em; color: var(--gml-texto); }
.gml-loja .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; right: .5em; }

/* Grade de campos (dois por linha quando cabe) */
.gml-campos,
.gml-loja .woocommerce-EditAccountForm,
.gml-loja .woocommerce form.register {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1em;
}
.gml-campos > *,
.gml-loja .woocommerce-EditAccountForm > *,
.gml-loja .woocommerce form.register > * {
	grid-column: 1 / -1;
}
.gml-campos > .form-row-first,
.gml-campos > .form-row-last,
.gml-loja .woocommerce-EditAccountForm > .form-row-first,
.gml-loja .woocommerce-EditAccountForm > .form-row-last,
.gml-loja .woocommerce form.register > .form-row-first,
.gml-loja .woocommerce form.register > .form-row-last {
	grid-column: auto;
}
.gml-campos .form-row,
.gml-loja .woocommerce-EditAccountForm .form-row,
.gml-loja .woocommerce form.register .form-row {
	float: none;
	width: auto;
}
.gml-campos > .clear,
.gml-loja .woocommerce-EditAccountForm > .clear,
.gml-loja .woocommerce form.register > .clear { display: none; }

.gml-check,
.gml-loja .woocommerce label.checkbox,
.gml-loja .woocommerce .woocommerce-form__label-for-checkbox {
	display: flex !important;
	align-items: flex-start;
	gap: .6em;
	margin: 0;
	font-size: .9em;
	font-weight: 400;
	line-height: 1.45;
	cursor: pointer;
}
.gml-check input,
.gml-loja .woocommerce label.checkbox input,
.gml-loja .woocommerce .woocommerce-form__label-for-checkbox input {
	width: 18px;
	height: 18px;
	margin: .1em 0 0;
	flex: none;
}

/* Avisos do WooCommerce */
.gml-loja .woocommerce-message,
.gml-loja .woocommerce-info,
.gml-loja .woocommerce-error,
.gml-loja .wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5em 1em;
	margin: 0 0 1.4em;
	padding: .95em 1.15em;
	list-style: none;
	border: 1px solid var(--gml-borda);
	border-left: 3px solid var(--gml-acento);
	border-radius: var(--gml-raio);
	background: var(--gml-superficie);
	color: var(--gml-texto);
	font-size: .92em;
	line-height: 1.5;
	box-shadow: var(--gml-sombra-1);
}
.gml-loja .woocommerce-message { border-left-color: var(--gml-sucesso); }
/* O WooCommerce foca o aviso para leitores de tela; o contorno só aparece em navegação por teclado. */
.gml-loja .woocommerce-NoticeGroup:focus:not(:focus-visible),
.gml-loja .woocommerce-message:focus:not(:focus-visible),
.gml-loja .woocommerce-error:focus:not(:focus-visible),
.gml-loja .woocommerce-info:focus:not(:focus-visible) { outline: none; }
.gml-loja .woocommerce-error { border-left-color: var(--gml-erro); flex-direction: column; align-items: flex-start; }
.gml-loja .woocommerce-error li { margin: 0; }
.gml-loja .woocommerce-message::before,
.gml-loja .woocommerce-info::before,
.gml-loja .woocommerce-error::before { display: none; }
.gml-loja .woocommerce-message .button,
.gml-loja .woocommerce-info .button {
	order: 2;
	margin-left: auto;
	min-height: 36px;
	padding: .45em 1em;
	font-size: .72em;
}

/* Quantidade (com os botões + e − do Bricks) */
.gml-loja .woocommerce .quantity {
	display: inline-flex;
	align-items: center;
	gap: 0;
	padding: 3px;
	border: 1px solid var(--gml-borda);
	border-radius: 999px;
	background: var(--gml-superficie);
}
.gml-loja .woocommerce .quantity .minus { order: -1; }
.gml-loja .woocommerce .quantity .action {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	color: var(--gml-texto);
	cursor: pointer;
	transition: background var(--gml-transicao);
	user-select: none;
}
.gml-loja .woocommerce .quantity .action:hover { background: var(--gml-suave); }
.gml-loja .woocommerce .quantity .action svg { width: 15px; height: 15px; }
.gml-loja .woocommerce .quantity input.qty {
	width: 2.6em;
	min-height: 34px;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: center;
	font-weight: 500;
	box-shadow: none;
	-moz-appearance: textfield;
}
.gml-loja .woocommerce .quantity input.qty:focus { box-shadow: none; }
.gml-loja .woocommerce .quantity input.qty::-webkit-outer-spin-button,
.gml-loja .woocommerce .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* =====================================================================
 * Totais (resumo do checkout, página do pedido)
 * ================================================================== */
.gml-totais {
	display: flex;
	flex-direction: column;
	gap: .6em;
	margin: 0;
}
.gml-totais__linha {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1em;
	font-size: .92em;
	color: var(--gml-texto-suave);
}
.gml-totais__linha > :last-child { color: var(--gml-texto); text-align: right; }
.gml-totais dt,
.gml-totais dd { margin: 0; }
.gml-totais__linha--total,
.gml-totais__linha--order_total {
	margin-top: .45em;
	padding-top: .95em;
	border-top: 1px solid var(--gml-borda);
	color: var(--gml-texto);
	font-weight: 500;
	font-size: 1em;
}
.gml-totais__linha--total .amount,
.gml-totais__linha--order_total .amount {
	font-family: var(--gml-fonte-titulo);
	font-size: 1.85em;
	font-weight:400;
	color: var(--gml-primaria);
	line-height: 1;
}
.gml-totais small,
.gml-totais .includes_tax { display: block; font-size: .75em; color: var(--gml-texto-suave); }
.gml-totais .woocommerce-remove-coupon { margin-left: .4em; font-size: .78em; color: var(--gml-erro); }
.gml-gratis { color: var(--gml-sucesso); font-weight: 600; }
/* Linhas que outros plugins põem no resumo (parcelamento, pontos, embrulho...). */
.gml-ganchos { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: .92em; }
.gml-ganchos th,
.gml-ganchos td { padding: .3em 0; border: 0; background: none; color: var(--gml-texto-suave); text-align: left; vertical-align: top; }
.gml-ganchos td:last-child:not(:first-child) { text-align: right; color: var(--gml-texto); }

/* Item com foto (resumo e pedido) */
.gml-item__foto {
	position: relative;
	display: block;
	width: 64px;
	height: 64px;
	flex: none;
	border-radius: var(--gml-raio);
	background: var(--gml-suave);
}
.gml-item__foto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--gml-raio);
}
.gml-item__qtd {
	position: absolute;
	top: -7px;
	right: -7px;
	display: grid;
	place-items: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border: 2px solid var(--gml-superficie);
	border-radius: 999px;
	background: var(--gml-primaria);
	color: var(--gml-fundo);
	font-size: .7em;
	font-weight: 600;
	line-height: 1;
}
.gml-item__nome {
	display: block;
	font-size: .93em;
	font-weight: 500;
	line-height: 1.35;
	color: var(--gml-texto);
}
.gml-item__nome a { color: inherit !important; text-decoration: none; }
.gml-item__nome a:hover { color: var(--gml-acento) !important; }
.gml-item__info { min-width: 0; }
.gml-item__info dl.variation,
.gml-item__info .wc-item-meta {
	margin: .3em 0 0;
	padding: 0;
	list-style: none;
	font-size: .78em;
	color: var(--gml-texto-suave);
}
.gml-item__info dl.variation dt,
.gml-item__info dl.variation dd,
.gml-item__info .wc-item-meta p { display: inline; margin: 0; }
.gml-item__info .wc-item-meta li { display: flex; gap: .3em; }
.gml-item__preco { font-size: .93em; font-weight: 500; white-space: nowrap; }

/* =====================================================================
 * Carrinho (sacola)
 * ================================================================== */
.gml-carrinho__grade,
.gml-checkout__grade {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 390px;
	gap: clamp(1.5em, 3vw, 2.5em);
	align-items: start;
}
.gml-carrinho__resumo,
.gml-checkout__resumo {
	position: sticky;
	top: 24px;
}
.gml-sacola {
	display: flex;
	flex-direction: column;
	gap: .9em;
	margin: 0;
	border: 0;
}
.gml-sacola__item {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto auto auto;
	grid-template-areas: "foto info qtd subtotal remover";
	align-items: center;
	gap: 1.1em;
	padding: 1em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 4px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-1);
	transition: box-shadow var(--gml-transicao), border-color var(--gml-transicao);
}
.gml-sacola__item:hover { border-color: color-mix(in srgb, var(--gml-acento) 35%, var(--gml-borda)); }
.gml-sacola__foto { grid-area: foto; }
.gml-sacola__foto img {
	display: block;
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: var(--gml-raio);
	background: var(--gml-suave);
}
.gml-sacola__info { grid-area: info; min-width: 0; display: flex; flex-direction: column; gap: .3em; }
.gml-sacola__nome {
	font-family: var(--gml-fonte-titulo);
	font-size: 1.3em;
	font-weight:400;
	line-height: 1.15;
}
.gml-sacola__nome a { color: var(--gml-primaria) !important; text-decoration: none; }
.gml-sacola__nome a:hover { color: var(--gml-acento) !important; }
.gml-sacola__info dl.variation { margin: 0; font-size: .8em; color: var(--gml-texto-suave); }
.gml-sacola__info dl.variation dt,
.gml-sacola__info dl.variation dd { display: inline; margin: 0; }
.gml-sacola__info dl.variation dd p { display: inline; margin: 0; }
.gml-sacola__unitario { font-size: .85em; color: var(--gml-texto); }
.gml-sacola__qtd { grid-area: qtd; }
.gml-sacola__subtotal {
	grid-area: subtotal;
	min-width: 6.5em;
	text-align: right;
	font-size: 1.05em;
	font-weight: 600;
	color: var(--gml-texto);
}
.gml-sacola__remover { grid-area: remover; }
.gml-sacola__remover a.remove {
	display: grid !important;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	color: var(--gml-texto-suave) !important;
	background: transparent;
	font-size: 0;
	text-decoration: none;
	transition: background var(--gml-transicao), color var(--gml-transicao);
}
.gml-sacola__remover a.remove:hover {
	background: color-mix(in srgb, var(--gml-erro) 10%, transparent);
	color: var(--gml-erro) !important;
}
.gml-sacola__item td::before,
.gml-sacola__item div::before { display: none; }
.gml-sacola__acoes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: .3em .2em 0;
}
.gml-js .gml-sacola__atualizar {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.gml-cupom summary,
.gml-observacoes summary {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	list-style: none;
	color: var(--gml-primaria);
	font-size: .9em;
	font-weight: 500;
	cursor: pointer;
}
.gml-cupom summary::-webkit-details-marker,
.gml-observacoes summary::-webkit-details-marker { display: none; }
.gml-cupom summary .gml-icone,
.gml-observacoes summary .gml-icone { color: var(--gml-acento); }
.gml-cupom__linha {
	display: flex;
	gap: .6em;
	max-width: 440px;
	margin-top: .8em;
}
.gml-cupom__linha input { flex: 1; }

/* Resumo do carrinho (cart_totals do WooCommerce) */
.gml-carrinho .cart-collaterals { width: 100%; float: none; }
.gml-carrinho .cart_totals h2 { line-height: 1.2; }
.gml-carrinho .cart_totals .woocommerce-shipping-destination strong { font-weight: 500; }
.gml-carrinho .cart_totals {
	float: none;
	width: 100% !important;
	padding: 1.5em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 6px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-2);
}
.gml-carrinho .cart_totals h2 {
	margin: 0 0 .75em;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.6em;
	font-weight:400;
	color: var(--gml-primaria);
}
.gml-carrinho .cart_totals table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: none;
}
.gml-carrinho .cart_totals table.shop_table tr { display: table-row; }
.gml-carrinho .cart_totals table.shop_table th,
.gml-carrinho .cart_totals table.shop_table td {
	display: table-cell;
	padding: .8em 0;
	border: 0;
	border-top: 1px solid var(--gml-borda);
	background: none;
	font-size: .92em;
	vertical-align: top;
}
.gml-carrinho .cart_totals table.shop_table tr:first-child th,
.gml-carrinho .cart_totals table.shop_table tr:first-child td { border-top: 0; }
.gml-carrinho .cart_totals table.shop_table th { text-align: left; font-weight: 400; color: var(--gml-texto-suave); width: 38%; }
.gml-carrinho .cart_totals table.shop_table td { text-align: right; }
.gml-carrinho .cart_totals table.shop_table td::before { display: none !important; }
.gml-carrinho .cart_totals .order-total th { color: var(--gml-texto); font-weight: 500; vertical-align: baseline; }
.gml-carrinho .cart_totals .order-total td { vertical-align: baseline; }
.gml-carrinho .cart_totals .order-total .amount {
	font-family: var(--gml-fonte-titulo);
	font-size: 1.85em;
	font-weight:400;
	color: var(--gml-primaria);
}
.gml-carrinho .cart_totals #shipping_method { list-style: none; margin: 0; padding: 0; }
.gml-carrinho .cart_totals #shipping_method li { display: flex; justify-content: flex-end; align-items: baseline; gap: .45em; margin: 0 0 .4em; }
.gml-carrinho .cart_totals .woocommerce-shipping-destination { margin: .4em 0 0; font-size: .8em; color: var(--gml-texto-suave); }
.gml-carrinho .cart_totals .shipping-calculator-button {
	display: inline-flex;
	margin-top: .4em;
	font-size: .82em;
	font-weight: 500;
	text-decoration: none;
	border-bottom: 1px solid var(--gml-acento);
}
.gml-carrinho .cart_totals .shipping-calculator-form { margin-top: .9em; text-align: left; }
.gml-carrinho .cart_totals .shipping-calculator-form .form-row { margin-bottom: .6em; }
.gml-carrinho .cart_totals .shipping-calculator-form .button { width: 100%; min-height: 42px; }
.gml-carrinho .wc-proceed-to-checkout { padding: 1.1em 0 0; }
.gml-carrinho .wc-proceed-to-checkout .checkout-button {
	display: flex !important;
	width: 100%;
	min-height: 56px;
	margin: 0;
	font-size: .88em;
}
.gml-garantias {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5em 1.25em;
	margin: 1em 0 0;
	padding: 0;
	list-style: none;
	color: var(--gml-texto-suave);
	font-size: .8em;
}
.gml-garantias li { display: inline-flex; align-items: center; gap: .4em; }
.gml-garantias .gml-icone { color: var(--gml-acento); }
.gml-loja .cross-sells { margin-top: clamp(2.5em, 6vw, 4em); }
.gml-loja .cross-sells > h2 {
	font-family: var(--gml-fonte-titulo);
	font-size: clamp(1.6em, 2.6vw, 2em);
	font-weight:400;
	color: var(--gml-primaria);
}

/* Sacola vazia */
.gml-sacola-vazia__caixa {
	max-width: 560px;
	margin: 4vh auto;
	padding: clamp(2em, 6vw, 3.5em) 1.5em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 10px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-2);
	text-align: center;
}
.gml-sacola-vazia__caixa .gml-texto-suave { margin: .8em auto 1.6em; max-width: 36ch; }
.gml-sacola-vazia__caixa .return-to-shop { margin: 0; }
.gml-sacola-vazia__chama {
	display: grid;
	place-items: center;
	width: 88px;
	height: 88px;
	margin: 0 auto 1.3em;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--gml-acento) 26%, var(--gml-superficie)) 0%, var(--gml-suave) 70%);
	color: var(--gml-acento);
}
.gml-sacola-vazia__chama .gml-icone { animation: gmlTremula 2.8s ease-in-out infinite; transform-origin: 50% 90%; }

/* =====================================================================
 * Checkout
 * ================================================================== */
.gml-checkout__cabecalho { margin-bottom: clamp(1.25em, 2.6vw, 2em); }
.gml-checkout { margin: 0; }
.gml-checkout__passos { display: flex; flex-direction: column; gap: 1.25em; min-width: 0; }
.gml-passo {
	padding: clamp(1.2em, 3vw, 2em);
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 6px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-1);
}
.gml-passo__topo {
	display: flex;
	align-items: center;
	gap: .85em;
	margin: 0 0 1.3em;
}
.gml-passo__numero {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	flex: none;
	border-radius: 50%;
	background: var(--gml-primaria);
	color: var(--gml-fundo);
	font-family: var(--gml-fonte-titulo);
	font-size: 1.15em;
	font-weight:400;
	line-height: 1;
}
.gml-passo__titulo {
	margin: 0;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.6em;
	font-weight:400;
	line-height: 1.1;
	color: var(--gml-primaria);
}
.gml-passo__sub {
	margin-top: 1.5em;
	padding-top: 1.4em;
	border-top: 1px dashed var(--gml-borda);
}
.gml-passo__subtitulo {
	margin: 0 0 .9em;
	font-family: var(--gml-fonte-texto);
	font-size: .74em;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gml-texto-suave);
}
.gml-checkout #customer_details { display: flex; flex-direction: column; gap: 1.25em; width: auto; float: none; }
.gml-checkout #customer_details::before,
.gml-checkout #customer_details::after { display: none; }
.gml-checkout .woocommerce-billing-fields h3,
.gml-checkout .woocommerce-shipping-fields > h3:not(#ship-to-different-address),
.gml-checkout .woocommerce-additional-fields > h3 { display: none; }

/*
 * Campos de endereço: só somem quando o script do catálogo já desenhou os
 * cartões (ele põe a classe no body). Se o script não rodar (otimizador de JS,
 * erro de outro plugin), os campos normais continuam na tela.
 */
.gml-enderecos-pronto .gml-campos-endereco { display: none !important; }
.gml-entrega-extra { margin-top: 1.2em; }
.gml-criar-conta {
	margin-top: .5em;
	padding: 1em 1.1em;
	border-radius: var(--gml-raio);
	background: color-mix(in srgb, var(--gml-suave) 55%, var(--gml-superficie));
}
.gml-criar-conta .form-row { margin-bottom: 0; }
.gml-criar-conta .create-account.gml-campos { margin-top: 1em; }
.gml-observacoes { margin-top: 1.4em; padding-top: 1.2em; border-top: 1px dashed var(--gml-borda); }
.gml-observacoes .woocommerce-additional-fields__field-wrapper { margin-top: .9em; }
.gml-observacoes .form-row label { display: none; }

/* Cartões de endereço (conta e checkout) */
.gml-enderecos__grade {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 1em;
}
.gml-enderecos__grade--escolha { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.gml-endereco {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .75em;
	margin: 0;
	padding: 1.15em 1.2em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 4px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-1);
	color: var(--gml-texto);
	font: inherit;
	text-align: left;
	transition: border-color var(--gml-transicao), box-shadow var(--gml-transicao), transform var(--gml-transicao);
}
.gml-endereco.is-principal { border-color: color-mix(in srgb, var(--gml-acento) 55%, var(--gml-borda)); }
.gml-endereco__topo { display: flex; align-items: center; gap: .6em; min-width: 0; }
.gml-endereco__icone {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	flex: none;
	border-radius: 50%;
	background: var(--gml-suave);
	color: var(--gml-acento);
}
.gml-endereco__apelido {
	flex: 1;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.28em;
	font-weight:400;
	line-height: 1.2;
	color: var(--gml-primaria);
	text-overflow: ellipsis;
	white-space: nowrap;
}
.gml-endereco__linhas {
	display: block;
	margin: 0;
	font-size: .88em;
	line-height: 1.6;
	color: var(--gml-texto-suave);
	overflow-wrap: anywhere;
}
.gml-endereco__linhas strong { color: var(--gml-texto); font-weight: 500; }
.gml-endereco__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: .4em 1em;
	margin-top: auto;
	padding-top: .8em;
	border-top: 1px solid var(--gml-borda);
}
.gml-endereco--novo {
	align-items: center;
	justify-content: center;
	min-height: 180px;
	border: 1.5px dashed var(--gml-borda);
	background: transparent;
	box-shadow: none;
	color: var(--gml-primaria);
	font-weight: 500;
	text-align: center;
	cursor: pointer;
}
.gml-endereco--novo:hover {
	border-color: var(--gml-acento);
	background: color-mix(in srgb, var(--gml-suave) 55%, transparent);
	transform: translateY(-2px);
}
.gml-endereco--novo__icone {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--gml-suave);
	color: var(--gml-acento);
}
.gml-enderecos--checkout .gml-endereco--novo { min-height: 150px; }
.gml-endereco--escolha { cursor: pointer; padding-bottom: 1em; }
.gml-endereco--escolha:hover { border-color: color-mix(in srgb, var(--gml-primaria) 40%, var(--gml-borda)); }
.gml-endereco__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
.gml-endereco__marca {
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	flex: none;
	border: 1.5px solid var(--gml-borda);
	border-radius: 50%;
	color: transparent;
	transition: background var(--gml-transicao), border-color var(--gml-transicao), color var(--gml-transicao);
}
.gml-endereco--escolha.is-escolhido,
.gml-endereco--escolha:has(.gml-endereco__radio:checked) {
	border-color: var(--gml-primaria);
	box-shadow: 0 0 0 1px var(--gml-primaria), var(--gml-sombra-2);
}
.gml-endereco--escolha.is-escolhido .gml-endereco__marca,
.gml-endereco--escolha:has(.gml-endereco__radio:checked) .gml-endereco__marca {
	border-color: var(--gml-primaria);
	background: var(--gml-primaria);
	color: var(--gml-fundo);
}
.gml-endereco--escolha:has(.gml-endereco__radio:focus-visible) { outline: 2px solid var(--gml-acento); outline-offset: 3px; }
.gml-endereco__editar { align-self: flex-start; font-size: .8em; }
.gml-enderecos.is-pendente .gml-endereco--novo,
.gml-enderecos.is-pendente .gml-endereco--escolha { border-color: var(--gml-erro); }

/* Formas de entrega */
.gml-frete__opcoes {
	display: flex;
	flex-direction: column;
	gap: .6em;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gml-frete__opcao { position: relative; margin: 0; }
.gml-frete__opcao input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.gml-frete__opcao label {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	margin: 0;
	padding: .95em 1.1em .95em 3em;
	border: 1px solid var(--gml-borda);
	border-radius: var(--gml-raio);
	background: var(--gml-superficie);
	font-size: .92em;
	cursor: pointer;
	transition: border-color var(--gml-transicao), box-shadow var(--gml-transicao), background var(--gml-transicao);
}
.gml-frete__opcao label::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 1.05em;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	border: 1.5px solid var(--gml-borda);
	border-radius: 50%;
	background: var(--gml-superficie);
	transition: border var(--gml-transicao);
}
.gml-frete__opcao input:checked + label,
.gml-frete__opcao input[type="hidden"] + label {
	border-color: var(--gml-primaria);
	box-shadow: 0 0 0 1px var(--gml-primaria);
	background: color-mix(in srgb, var(--gml-suave) 40%, var(--gml-superficie));
}
.gml-frete__opcao input:checked + label::before { border: 5px solid var(--gml-primaria); }
.gml-frete__opcao input[type="hidden"] + label { padding-left: 1.1em; }
.gml-frete__opcao input[type="hidden"] + label::before { display: none; }
.gml-frete__opcao input:focus-visible + label { outline: 2px solid var(--gml-acento); outline-offset: 2px; }
.gml-frete__nome { flex: 1; }
.gml-frete__nome .amount { float: right; margin-left: 1em; font-weight: 600; color: var(--gml-primaria); }
.gml-frete__pacote { margin: .8em 0 .4em; font-size: .8em; color: var(--gml-texto-suave); }
.gml-frete__vazio {
	display: flex;
	align-items: center;
	gap: .6em;
	margin: 0;
	padding: .95em 1.05em;
	border: 1px dashed var(--gml-borda);
	border-radius: var(--gml-raio);
	color: var(--gml-texto-suave);
	font-size: .9em;
}
.gml-frete__vazio .gml-icone { color: var(--gml-acento); }
.gml-checkout .gml-frete.is-atualizando { opacity: .55; pointer-events: none; transition: opacity .2s; }

/* Pagamento */
.gml-checkout #payment {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}
.gml-checkout #payment ul.payment_methods {
	display: flex;
	flex-direction: column;
	gap: .6em;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
.gml-checkout #payment ul.payment_methods li.wc_payment_method {
	position: relative;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--gml-borda);
	border-radius: var(--gml-raio);
	background: var(--gml-superficie);
	transition: border-color var(--gml-transicao), box-shadow var(--gml-transicao);
}
.gml-checkout #payment ul.payment_methods li.wc_payment_method:has(> input:checked) {
	border-color: var(--gml-primaria);
	box-shadow: 0 0 0 1px var(--gml-primaria);
}
.gml-checkout #payment ul.payment_methods li > input.input-radio {
	position: absolute;
	top: 1.2em;
	left: 1.1em;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.gml-checkout #payment ul.payment_methods li > label {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5em .75em;
	margin: 0;
	padding: 1em 1.1em 1em 3em;
	font-size: .95em;
	font-weight: 500;
	cursor: pointer;
}
.gml-checkout #payment ul.payment_methods li > label::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 1.05em;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	border: 1.5px solid var(--gml-borda);
	border-radius: 50%;
	background: var(--gml-superficie);
	transition: border var(--gml-transicao);
}
.gml-checkout #payment ul.payment_methods li > input:checked + label::before { border: 5px solid var(--gml-primaria); }
.gml-checkout #payment ul.payment_methods li > input:focus-visible + label { outline: 2px solid var(--gml-acento); outline-offset: -3px; }
.gml-checkout #payment ul.payment_methods li > label img { max-height: 24px; width: auto; margin-left: auto; }
.gml-checkout #payment div.payment_box {
	margin: 0;
	padding: .95em 1.1em 1.15em 3em;
	border-radius: 0;
	background: color-mix(in srgb, var(--gml-suave) 45%, var(--gml-superficie));
	color: var(--gml-texto-suave);
	font-size: .88em;
}
.gml-checkout #payment div.payment_box::before { display: none; }
.gml-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
.gml-checkout #payment .woocommerce-notice,
.gml-checkout #payment .woocommerce-info { margin: 0; }
.gml-checkout #payment .place-order {
	margin: 1.3em 0 0;
	padding: 0;
	float: none;
	width: 100%;
}
.gml-checkout .woocommerce-terms-and-conditions-wrapper { margin: 0 0 1em; font-size: .84em; color: var(--gml-texto-suave); }
.gml-checkout .woocommerce-privacy-policy-text p { margin: 0 0 .8em; }
.gml-checkout #place_order {
	width: 100%;
	min-height: 58px;
	float: none;
	font-size: .9em;
}
.gml-seguro {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	margin: 1em 0 0;
	color: var(--gml-texto-suave);
	font-size: .8em;
	text-align: center;
}

/* Resumo do pedido (coluna) */
.gml-checkout__resumo {
	padding: 1.5em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 6px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-2);
}
.gml-resumo__titulo {
	margin: 0 0 1.1em;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.6em;
	font-weight:400;
	color: var(--gml-primaria);
}
.gml-checkout #order_review { width: auto; float: none; margin: 0; padding: 0; }
.gml-resumo { width: 100%; border: 0; margin: 0; }
.gml-resumo__itens {
	display: flex;
	flex-direction: column;
	gap: 1em;
	max-height: 360px;
	margin: 0 0 1.1em;
	padding: 8px 4px 1.1em 0;
	overflow: auto;
	list-style: none;
	border-bottom: 1px solid var(--gml-borda);
}
.gml-resumo__item {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	align-items: center;
	gap: .9em;
	margin: 0;
}

/* Topo do checkout: cupom e login */
.gml-loja .woocommerce-form-coupon-toggle .woocommerce-info,
.gml-loja .woocommerce-form-login-toggle .woocommerce-info {
	box-shadow: none;
	background: color-mix(in srgb, var(--gml-suave) 60%, var(--gml-superficie));
	border-color: transparent;
	border-left-color: var(--gml-acento);
}
.gml-loja .woocommerce-form-coupon-toggle .woocommerce-info a,
.gml-loja .woocommerce-form-login-toggle .woocommerce-info a { font-weight: 500; }
.gml-loja form.checkout_coupon,
.gml-loja .woocommerce-checkout form.woocommerce-form-login,
.gml-loja .woocommerce > form.woocommerce-form-login.login {
	margin: 0 0 1.4em;
	padding: 1.2em;
	border: 1px solid var(--gml-borda);
	border-radius: var(--gml-raio);
	background: var(--gml-superficie);
}
.gml-loja form.checkout_coupon { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75em; }
.gml-loja form.checkout_coupon > p:not(.form-row) { flex-basis: 100%; margin: 0; font-size: .88em; color: var(--gml-texto-suave); }
.gml-loja form.checkout_coupon .form-row { flex: 1 1 220px; margin: 0; float: none; width: auto; }
.gml-loja form.checkout_coupon .form-row-last { flex: 0 0 auto; }
.gml-loja form.checkout_coupon .clear { display: none; }

/* =====================================================================
 * Minha conta
 * ================================================================== */
/* O Bricks deixa a conta em flex (menu ao lado); a nossa grade cuida disso. */
.gml-loja.woocommerce-account .woocommerce { display: block; }
.gml-conta {
	display: grid;
	grid-template-columns: 272px minmax(0, 1fr);
	gap: clamp(1.5em, 3vw, 2.75em);
	align-items: start;
}
.gml-loja .gml-conta .woocommerce-MyAccount-navigation,
.gml-loja .gml-conta .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	margin: 0;
}
.gml-conta__menu {
	position: sticky;
	top: 24px;
	padding: 1em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 6px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-1);
}
.gml-conta__cliente {
	display: flex;
	align-items: center;
	gap: .8em;
	margin: 0 0 .6em;
	padding: .35em .35em 1em;
	border-bottom: 1px solid var(--gml-borda);
}
.gml-avatar {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	flex: none;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--gml-acento), color-mix(in srgb, var(--gml-acento) 50%, var(--gml-primaria)));
	color: #fff;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.15em;
	font-weight:400;
	letter-spacing: .04em;
}
.gml-conta__cliente-texto { display: flex; flex-direction: column; min-width: 0; }
.gml-conta__cliente-nome { font-weight: 500; font-size: .95em; line-height: 1.3; }
.gml-conta__cliente-email {
	overflow: hidden;
	font-size: .78em;
	color: var(--gml-texto-suave);
	text-overflow: ellipsis;
	white-space: nowrap;
}
.gml-conta__menu ul {
	display: flex;
	flex-direction: column;
	gap: .2em;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gml-conta__menu li { margin: 0; }
.gml-conta__menu li a {
	display: flex;
	align-items: center;
	gap: .75em;
	padding: .72em .85em;
	border-radius: var(--gml-raio);
	color: var(--gml-texto) !important;
	font-size: .93em;
	line-height: 1.35;
	text-decoration: none;
	transition: background var(--gml-transicao), color var(--gml-transicao);
}
.gml-conta__menu li a .gml-icone { color: var(--gml-texto-suave); transition: color var(--gml-transicao); }
.gml-conta__menu li a:hover { background: var(--gml-suave); }
.gml-conta__menu li.is-active a {
	background: var(--gml-primaria);
	color: var(--gml-fundo) !important;
}
.gml-conta__menu li.is-active a .gml-icone { color: color-mix(in srgb, var(--gml-acento) 65%, var(--gml-fundo)); }
.gml-conta__menu li.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: .45em;
	padding-top: .45em;
	border-top: 1px solid var(--gml-borda);
}
.gml-conta__menu li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--gml-texto-suave) !important; }
.gml-conta__conteudo { min-width: 0; }
.gml-conta__conteudo > .gml-cartao + .gml-cartao { margin-top: 1em; }

/* Início */
.gml-atalhos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1em;
	margin: 0 0 1.5em;
}
.gml-atalho {
	display: flex;
	flex-direction: column;
	gap: .3em;
	padding: 1.25em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 4px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-1);
	color: var(--gml-texto) !important;
	text-decoration: none;
	transition: transform var(--gml-transicao), box-shadow var(--gml-transicao), border-color var(--gml-transicao);
}
.gml-atalho:hover {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--gml-acento) 50%, var(--gml-borda));
	box-shadow: var(--gml-sombra-2);
}
.gml-atalho__icone {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-bottom: .5em;
	border-radius: 14px;
	background: var(--gml-suave);
	color: var(--gml-acento);
}
.gml-atalho__titulo { font-family: var(--gml-fonte-titulo); font-size: 1.3em; font-weight:400; color: var(--gml-primaria); line-height: 1.15; }
.gml-atalho__texto { font-size: .82em; color: var(--gml-texto-suave); }

/* Lista de pedidos */
.gml-lista-pedidos {
	display: flex;
	flex-direction: column;
	gap: .9em;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gml-lista-pedidos--compacta { gap: 0; }
.gml-lista-pedidos--compacta li + li { border-top: 1px solid var(--gml-borda); }
.gml-pedido-linha {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	grid-template-areas: "numero selo total" "data selo total";
	align-items: center;
	gap: .15em 1em;
	padding: .9em .25em;
	color: var(--gml-texto) !important;
	text-decoration: none;
}
.gml-pedido-linha__numero { grid-area: numero; font-weight: 500; transition: color var(--gml-transicao); }
.gml-pedido-linha__data { grid-area: data; font-size: .8em; color: var(--gml-texto-suave); }
.gml-pedido-linha .gml-selo { grid-area: selo; }
.gml-pedido-linha__total { grid-area: total; font-weight: 600; text-align: right; min-width: 6em; }
.gml-pedido-linha:hover .gml-pedido-linha__numero { color: var(--gml-acento); }

.gml-pedido-cartao {
	display: flex;
	flex-direction: column;
	gap: 1em;
	margin: 0;
	padding: 1.25em 1.35em;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 4px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-1);
}
.gml-pedido-cartao__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 1em; }
.gml-pedido-cartao__numero { margin: 0; font-family: var(--gml-fonte-titulo); font-size: 1.35em; font-weight:400; color: var(--gml-primaria); line-height: 1.15; }
.gml-pedido-cartao__data { margin: .2em 0 0; font-size: .82em; color: var(--gml-texto-suave); }
.gml-pedido-cartao__meio { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1em; }
.gml-pedido-cartao__fotos { display: flex; padding-left: 10px; }
.gml-miniatura {
	width: 54px;
	height: 54px;
	margin-left: -10px;
	overflow: hidden;
	border: 2px solid var(--gml-superficie);
	border-radius: 14px;
	background: var(--gml-suave);
	box-shadow: 0 4px 12px -6px rgba(43, 33, 27, .35);
}
.gml-miniatura img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gml-pedido-cartao__total { display: flex; flex-direction: column; align-items: flex-end; gap: .1em; margin: 0 0 0 auto; font-size: .8em; }
.gml-pedido-cartao__total strong { font-family: var(--gml-fonte-titulo); font-size: 1.5em; font-weight:400; color: var(--gml-primaria); line-height: 1.1; }
.gml-pedido-cartao__acoes {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: .6em;
	padding-top: 1em;
	border-top: 1px solid var(--gml-borda);
}
.gml-paginacao { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1em; margin-top: 1.5em; font-size: .85em; }

/* Meus dados (formulário padrão do WooCommerce) */
.gml-loja .woocommerce-EditAccountForm {
	padding: clamp(1.2em, 3vw, 2em);
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 6px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-1);
}
.gml-loja .woocommerce-EditAccountForm fieldset {
	margin: .5em 0 1.2em;
	padding: 1em 1.2em .2em;
	border: 1px solid var(--gml-borda);
	border-radius: var(--gml-raio);
}
.gml-loja .woocommerce-EditAccountForm legend {
	padding: 0 .4em;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.2em;
	font-weight:400;
	color: var(--gml-primaria);
}
.gml-loja .woocommerce-EditAccountForm em,
.gml-loja .woocommerce-EditAccountForm #account_display_name_description { display: block; margin-top: .35em; font-size: .78em; font-style: normal; color: var(--gml-texto-suave); }
.gml-loja .woocommerce-EditAccountForm > p:last-of-type { margin-bottom: 0; }

/* Entrar / Criar conta */
.gml-loja .gml-acesso#customer_login {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	width: 100%;
	max-width: 1060px;
	min-height: 600px;
	margin: 1vh auto 0;
	overflow: hidden;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 12px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-2);
}
.gml-acesso__marca {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	padding: clamp(2em, 5vw, 3.5em);
	background: radial-gradient(120% 90% at 25% 12%, color-mix(in srgb, var(--gml-primaria) 78%, #fff) 0%, var(--gml-primaria) 52%, color-mix(in srgb, var(--gml-primaria) 72%, #000) 100%);
	color: #F6EDE2;
}
.gml-acesso__brilho {
	position: absolute;
	top: -140px;
	right: -150px;
	width: 440px;
	height: 440px;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--gml-acento) 50%, transparent) 0%, transparent 65%);
	filter: blur(6px);
	animation: gmlBrilho 7s ease-in-out infinite;
}
.gml-acesso__marca-conteudo { position: relative; display: flex; flex-direction: column; gap: 1em; }
.gml-acesso__chama {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--gml-acento) 24%, transparent);
	color: #F6C873;
}
.gml-acesso__chama .gml-icone { transform-origin: 50% 90%; animation: gmlTremula 2.8s ease-in-out infinite; }
.gml-acesso__loja {
	margin: 0;
	font-family: var(--gml-fonte-titulo);
	font-size: clamp(2.3em, 4vw, 3.2em);
	font-weight:400;
	line-height: 1;
	letter-spacing: .3em;
	text-transform: uppercase;
}
.gml-acesso__frase { margin: 0; font-family: var(--gml-fonte-titulo); font-size: 1.4em; font-style: italic; color: rgba(246, 237, 226, .82); }
.gml-acesso__beneficios {
	display: flex;
	flex-direction: column;
	gap: .7em;
	margin: 1em 0 0;
	padding: 1.2em 0 0;
	border-top: 1px solid rgba(255, 255, 255, .14);
	list-style: none;
	font-size: .9em;
	color: rgba(246, 237, 226, .85);
}
.gml-acesso__beneficios li { display: flex; align-items: center; gap: .6em; }
.gml-acesso__beneficios .gml-icone { color: var(--gml-acento); }
.gml-acesso__painel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.8em, 5vw, 3.2em);
}
.gml-abas {
	display: inline-grid;
	grid-auto-columns: 1fr;
	grid-auto-flow: column;
	align-self: flex-start;
	min-width: 280px;
	margin: 0 0 1.8em;
	padding: 4px;
	border-radius: 999px;
	background: var(--gml-suave);
}
.gml-abas__botao {
	appearance: none;
	padding: .65em 1.4em;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--gml-texto-suave);
	font: inherit;
	font-size: .86em;
	font-weight: 500;
	cursor: pointer;
	transition: background var(--gml-transicao), color var(--gml-transicao), box-shadow var(--gml-transicao);
}
.gml-abas__botao[aria-selected="true"] { background: var(--gml-superficie); color: var(--gml-primaria); box-shadow: var(--gml-sombra-1); }
.gml-acesso__secao[hidden] { display: none; }
.gml-acesso__secao > .gml-texto-suave { margin: .45em 0 1.6em; }
.gml-acesso__secao + .gml-acesso__secao { margin-top: 2em; }
.gml-js .gml-acesso__secao + .gml-acesso__secao { margin-top: 0; }
.gml-loja .gml-acesso form.login,
.gml-loja .gml-acesso form.register {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.gml-acesso__linha {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75em 1em;
	margin: .2em 0 1.4em;
}
.gml-loja .woocommerce .password-input { position: relative; display: block; }
.gml-loja .woocommerce .password-input input { padding-right: 3em; }
.gml-loja .woocommerce .show-password-input {
	position: absolute;
	top: 50%;
	right: .6em;
	width: 36px;
	height: 36px;
	margin-top: -18px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--gml-texto-suave);
	cursor: pointer;
}

/* Recuperar senha */
.gml-loja form.lost_reset_password {
	max-width: 480px;
	margin: 0 auto;
	padding: clamp(1.4em, 4vw, 2.2em);
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 6px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-2);
}
.gml-loja form.lost_reset_password > p:first-child { color: var(--gml-texto-suave); font-size: .92em; }
.gml-loja form.lost_reset_password .form-row { float: none; width: auto; }
.gml-loja form.lost_reset_password .button { width: 100%; }

/* =====================================================================
 * Página do pedido e obrigado
 * ================================================================== */
.gml-pedido,
.gml-obrigado { max-width: 1140px; margin: 0 auto; }
.gml-pedido__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1em;
	margin: 0 0 1.6em;
}
.gml-pedido__topo .gml-texto-suave { margin: .55em 0 0; }
.gml-pedido__grade {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 1.25em;
	align-items: start;
}
.gml-conta .gml-pedido__grade { grid-template-columns: minmax(0, 1fr) 300px; }
.gml-pedido__principal,
.gml-pedido__lateral { display: flex; flex-direction: column; gap: 1.25em; min-width: 0; }
.gml-pedido__acoes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6em; margin-top: 1.25em; }

.gml-confirmado {
	display: flex;
	align-items: center;
	gap: 1em;
	margin: 0 0 1.5em;
	padding: 1em 1.2em;
	border: 1px solid color-mix(in srgb, var(--gml-sucesso) 35%, var(--gml-borda));
	border-radius: calc(var(--gml-raio) + 4px);
	background: color-mix(in srgb, var(--gml-sucesso) 11%, var(--gml-superficie));
	animation: gmlSobe .6s cubic-bezier(.2, .7, .2, 1) both;
}
.gml-confirmado > div { display: flex; flex-direction: column; gap: .1em; }
.gml-confirmado span:not(.gml-confirmado__selo) { font-size: .86em; color: var(--gml-texto-suave); }
.gml-confirmado__selo {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	flex: none;
	border-radius: 50%;
	background: var(--gml-sucesso);
	color: #fff;
}

/* Linha do tempo */
.gml-etapas {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.gml-etapa {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .6em;
	margin: 0;
	text-align: center;
	font-size: .8em;
	line-height: 1.3;
	color: var(--gml-texto-suave);
}
.gml-etapa::before {
	content: "";
	position: absolute;
	top: 17px;
	right: 50%;
	left: -50%;
	height: 2px;
	background: var(--gml-borda);
}
.gml-etapa:first-child::before { display: none; }
.gml-etapa--feito::before,
.gml-etapa--atual::before { background: var(--gml-primaria); }
.gml-etapa__ponto {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 2px solid var(--gml-borda);
	border-radius: 50%;
	background: var(--gml-superficie);
	font-size: .85em;
	font-weight: 600;
}
.gml-etapa--feito { color: var(--gml-texto); }
.gml-etapa--feito .gml-etapa__ponto { border-color: var(--gml-primaria); background: var(--gml-primaria); color: var(--gml-fundo); }
.gml-etapa--atual { color: var(--gml-primaria); font-weight: 600; }
.gml-etapa--atual .gml-etapa__ponto {
	border-color: var(--gml-primaria);
	color: var(--gml-primaria);
	animation: gmlPulsoAnel 2.4s ease-out infinite;
}
.gml-linha-tempo__recado {
	margin: 1.25em 0 0;
	padding-top: 1em;
	border-top: 1px solid var(--gml-borda);
	color: var(--gml-texto-suave);
	font-size: .9em;
	text-align: center;
}
.gml-pagar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1em; }
.gml-pagar .gml-cartao__titulo { margin: 0 0 .2em; }
.gml-pagar p { margin: 0; }
.gml-extras { overflow-wrap: anywhere; }
.gml-extras > :first-child { margin-top: 0; }
.gml-extras > :last-child { margin-bottom: 0; }
.gml-extras img { max-width: 100%; height: auto; }
.gml-extras table { width: 100%; }
/* Títulos que os gateways colocam nas instruções (ex.: "Nossos dados bancários"). */
.gml-extras h2,
.gml-extras h3,
.gml-extras h4 {
	margin: 1em 0 .5em;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.2em;
	font-weight: 400;
	line-height: 1.25;
	color: var(--gml-primaria);
}
.gml-extras ul { margin: .4em 0 0; padding-left: 1.1em; font-size: .92em; }
.gml-extras p { font-size: .95em; }

.gml-itens { display: flex; flex-direction: column; margin: 0 0 1.25em; padding: 0; list-style: none; }
.gml-item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto;
	align-items: center;
	gap: 1em;
	margin: 0;
	padding: 1em 0;
	border-bottom: 1px solid var(--gml-borda);
}
.gml-item:first-child { padding-top: .25em; }
.gml-item .gml-item__foto { width: 72px; height: 72px; }
.gml-item__qtd-texto { display: block; margin-top: .15em; font-size: .8em; color: var(--gml-texto-suave); }
.gml-item__nota { display: block; margin-top: .45em; padding: .6em .8em; border-radius: var(--gml-raio); background: var(--gml-suave); font-size: .82em; }
.gml-item__nota p { margin: 0; }
.gml-endereco-texto { font-size: .92em; font-style: normal; line-height: 1.65; color: var(--gml-texto); }
.gml-dados { display: flex; flex-direction: column; gap: .25em; margin: 0; font-size: .92em; color: var(--gml-texto-suave); overflow-wrap: anywhere; }
.gml-dados strong { color: var(--gml-texto); font-weight: 500; }
.gml-notas {
	display: flex;
	flex-direction: column;
	gap: 1em;
	margin: 0;
	padding: 0 0 0 1em;
	border-left: 2px solid var(--gml-borda);
	list-style: none;
}
.gml-notas li { position: relative; }
.gml-notas li::before {
	content: "";
	position: absolute;
	top: .3em;
	left: calc(-1em - 6px);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--gml-acento);
}
.gml-notas__data { display: block; font-size: .72em; letter-spacing: .1em; text-transform: uppercase; color: var(--gml-texto-suave); }
.gml-notas__texto { font-size: .9em; }
.gml-notas__texto p { margin: .25em 0 0; }
.gml-cartao--suave .order-again { margin: .9em 0 0; }

/* Herói da página de obrigado */
.gml-obrigado__antes { margin-bottom: 1em; }
.gml-obrigado__heroi {
	position: relative;
	margin: 0 0 1.5em;
	padding: clamp(2.2em, 6vw, 3.6em) clamp(1.2em, 4vw, 2.5em);
	overflow: hidden;
	border: 1px solid var(--gml-borda);
	border-radius: calc(var(--gml-raio) + 10px);
	background: var(--gml-superficie);
	box-shadow: var(--gml-sombra-2);
	text-align: center;
}
.gml-obrigado__heroi::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(60% 55% at 50% 0%, color-mix(in srgb, var(--gml-acento) 18%, transparent), transparent 70%);
	pointer-events: none;
}
.gml-obrigado__heroi > * { position: relative; }
.gml-obrigado__selo {
	display: grid;
	place-items: center;
	width: 78px;
	height: 78px;
	margin: 0 auto 1.25em;
	border-radius: 50%;
	background: var(--gml-sucesso);
	color: #fff;
	box-shadow: 0 0 0 10px color-mix(in srgb, var(--gml-sucesso) 14%, transparent);
	animation: gmlSelo .7s cubic-bezier(.2, .9, .25, 1.3) both;
}
.is-aguardando .gml-obrigado__selo { background: var(--gml-acento); box-shadow: 0 0 0 10px color-mix(in srgb, var(--gml-acento) 16%, transparent); }
.is-falhou .gml-obrigado__selo { background: var(--gml-erro); box-shadow: 0 0 0 10px color-mix(in srgb, var(--gml-erro) 14%, transparent); }
.is-pago .gml-obrigado__selo path { stroke-dasharray: 24; stroke-dashoffset: 24; animation: gmlTraco .5s .35s ease-out forwards; }
.gml-obrigado__texto { max-width: 520px; margin: .85em auto 0; color: var(--gml-texto-suave); font-size: 1em; }
.gml-obrigado__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .6em; margin-top: 1.6em; }
.gml-obrigado__indo { display: flex; flex-direction: column; align-items: center; gap: .55em; margin: 1.4em auto 0; font-size: .88em; color: var(--gml-texto-suave); }
.gml-obrigado__barra { display: block; width: 180px; height: 3px; overflow: hidden; border-radius: 3px; background: var(--gml-suave); }
.gml-obrigado__barra span { display: block; width: 0; height: 100%; background: var(--gml-acento); }
.gml-obrigado__indo.is-indo .gml-obrigado__barra span { animation: gmlBarra 2.6s linear forwards; }
.gml-obrigado__email { margin: 1.2em 0 0; font-size: .85em; }
.gml-ao-vivo {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	margin: 1.2em 0 0;
	padding: .5em 1em;
	border-radius: 999px;
	background: var(--gml-suave);
	color: var(--gml-texto-suave);
	font-size: .84em;
}
.gml-ao-vivo__pulso { width: 8px; height: 8px; border-radius: 50%; background: var(--gml-acento); animation: gmlPisca 1.6s ease-in-out infinite; }

/* =====================================================================
 * Modal de endereço
 * ================================================================== */
html.gml-modal-aberto { overflow: hidden; }
.gml-modal {
	width: 100%;
	max-width: min(640px, calc(100vw - 24px));
	max-height: calc(100dvh - 24px);
	margin: auto;
	padding: 0;
	overflow: visible;
	border: 0;
	background: transparent;
}
.gml-modal::backdrop { background: rgba(30, 22, 17, .55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.gml-modal[open] { animation: gmlModal .32s cubic-bezier(.2, .8, .2, 1); }
.gml-modal[open]::backdrop { animation: gmlEsmaece .3s ease; }
.gml-modal__caixa {
	display: flex;
	flex-direction: column;
	max-height: calc(100dvh - 24px);
	margin: 0;
	overflow: hidden;
	border-radius: calc(var(--gml-raio) + 10px);
	background: var(--gml-superficie);
	box-shadow: 0 40px 90px -30px rgba(30, 22, 17, .6);
}
.gml-modal__topo {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1em;
	padding: 1.4em 1.6em 1.05em;
	border-bottom: 1px solid var(--gml-borda);
}
.gml-modal__topo .gml-sobretitulo { margin-bottom: .35em; }
.gml-modal__titulo {
	margin: 0;
	font-family: var(--gml-fonte-titulo);
	font-size: 1.75em;
	font-weight:400;
	line-height: 1.1;
	color: var(--gml-primaria);
}
.gml-modal__fechar {
	appearance: none;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	flex: none;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--gml-suave);
	color: var(--gml-texto);
	cursor: pointer;
	transition: background var(--gml-transicao);
}
.gml-modal__fechar:hover { background: var(--gml-borda); }
.gml-modal__corpo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-content: start;
	gap: 1em;
	padding: 1.3em 1.6em;
	overflow: auto;
	overscroll-behavior: contain;
}
.gml-modal__corpo > .gml-aviso,
.gml-modal__corpo > .gml-check { grid-column: 1 / -1; margin: 0; }
.gml-modal__corpo > .gml-check[hidden] { display: none !important; }
.gml-campo { display: flex; flex-direction: column; min-width: 0; }
.gml-campo--largo { grid-column: 1 / -1; }
.gml-campo label { margin-bottom: .35em; }
.gml-opcional { font-weight: 400; color: var(--gml-texto-suave); }
.gml-campo__ajuda { align-self: flex-start; margin-top: .35em; font-size: .76em; color: var(--gml-texto-suave); text-decoration: underline; text-underline-offset: 2px; }
.gml-campo__com-acao { position: relative; }
.gml-campo__carregando {
	position: absolute;
	top: 50%;
	right: .9em;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	border: 2px solid var(--gml-borda);
	border-top-color: var(--gml-acento);
	border-radius: 50%;
	animation: gmlGira .7s linear infinite;
}
.gml-campo__carregando[hidden] { display: none; }
.gml-chips { display: flex; flex-wrap: wrap; gap: .4em; margin-top: .55em; }
.gml-chip {
	appearance: none;
	padding: .38em .85em;
	border: 1px solid var(--gml-borda);
	border-radius: 999px;
	background: var(--gml-superficie);
	color: var(--gml-texto);
	font: inherit;
	font-size: .78em;
	cursor: pointer;
	transition: background var(--gml-transicao), border-color var(--gml-transicao);
}
.gml-chip:hover { border-color: var(--gml-acento); background: var(--gml-suave); }
.gml-modal__rodape {
	display: flex;
	justify-content: flex-end;
	gap: .6em;
	padding: 1em 1.6em 1.3em;
	border-top: 1px solid var(--gml-borda);
	background: color-mix(in srgb, var(--gml-suave) 35%, var(--gml-superficie));
}

/* =====================================================================
 * Animações
 * ================================================================== */
@keyframes gmlGira { to { transform: rotate(360deg); } }
@keyframes gmlTremula {
	0%, 100% { transform: scale(1) rotate(0); }
	25% { transform: scale(1.05, .96) rotate(-2deg); }
	55% { transform: scale(.97, 1.04) rotate(1.4deg); }
	78% { transform: scale(1.02, .99) rotate(-.6deg); }
}
@keyframes gmlBrilho { 0%, 100% { opacity: .85; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }
@keyframes gmlSobe { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes gmlSelo { from { opacity: 0; transform: scale(.5); } to { opacity: 1; transform: scale(1); } }
@keyframes gmlTraco { to { stroke-dashoffset: 0; } }
@keyframes gmlBarra { to { width: 100%; } }
@keyframes gmlPisca { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.7); } }
@keyframes gmlPulsoAnel {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--gml-primaria) 30%, transparent); }
	70%, 100% { box-shadow: 0 0 0 10px color-mix(in srgb, var(--gml-primaria) 0%, transparent); }
}
@keyframes gmlModal { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes gmlEsmaece { from { opacity: 0; } }

/* =====================================================================
 * Telas menores
 * ================================================================== */
@media (max-width: 1100px) {
	.gml-carrinho__grade,
	.gml-checkout__grade { grid-template-columns: minmax(0, 1fr) 340px; }
	.gml-conta .gml-pedido__grade { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 920px) {
	.gml-carrinho__grade,
	.gml-checkout__grade,
	.gml-pedido__grade,
	.gml-conta { grid-template-columns: minmax(0, 1fr); }
	.gml-carrinho__resumo,
	.gml-checkout__resumo,
	.gml-conta__menu { position: static; }

	.gml-conta__menu { padding: .5em; }
	.gml-conta__cliente { padding: .35em .5em .75em; }
	.gml-conta__menu ul {
		flex-direction: row;
		gap: .4em;
		margin: 0 -.5em;
		padding: 0 .5em .1em;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.gml-conta__menu ul::-webkit-scrollbar { display: none; }
	.gml-conta__menu li a {
		padding: .55em .9em;
		border: 1px solid var(--gml-borda);
		border-radius: 999px;
		white-space: nowrap;
	}
	.gml-conta__menu li.woocommerce-MyAccount-navigation-link--customer-logout { margin: 0; padding: 0; border: 0; }

	.gml-loja .gml-acesso#customer_login { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.gml-acesso__marca { padding: 1.6em 1.5em; }
	.gml-acesso__beneficios { display: none; }
	.gml-acesso__frase { font-size: 1.15em; }
}

@media (max-width: 680px) {
	.gml-sacola__item {
		grid-template-columns: 78px minmax(0, 1fr) auto;
		grid-template-areas:
			"foto info remover"
			"foto qtd subtotal";
		gap: .6em .9em;
		align-items: start;
	}
	.gml-sacola__foto img { width: 78px; height: 78px; }
	.gml-sacola__nome { font-size: 1.15em; }
	.gml-sacola__qtd { align-self: end; }
	.gml-sacola__subtotal { align-self: end; min-width: 0; padding-bottom: .5em; }
	.gml-sacola__remover { margin: -.4em -.4em 0 0; }

	.gml-atalhos { grid-template-columns: minmax(0, 1fr); }
	.gml-atalho { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: .9em; }
	.gml-atalho__icone { margin: 0; }
	.gml-atalho__titulo { flex: 1; }
	.gml-atalho__texto { flex-basis: 100%; padding-left: calc(44px + .9em); margin-top: -.5em; }

	.gml-etapa { font-size: .7em; }
	.gml-etapa__ponto { width: 30px; height: 30px; font-size: .75em; }
	.gml-etapa::before { top: 14px; }

	.gml-pedido-linha { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "numero total" "data selo"; }
	.gml-pedido-linha .gml-selo { justify-self: end; }
	.gml-pedido-cartao__acoes .gml-botao { flex: 1 1 auto; }

	.gml-cabecalho--com-acao > .gml-botao { width: 100%; }
	.gml-endereco--novo { min-height: 120px; }

	.gml-modal { max-width: 100vw; max-height: 94dvh; margin: auto 0 0; }
	.gml-modal[open] { animation: gmlFolha .34s cubic-bezier(.2, .8, .2, 1); }
	.gml-modal__caixa { max-height: 94dvh; border-radius: calc(var(--gml-raio) + 10px) calc(var(--gml-raio) + 10px) 0 0; }
	.gml-modal__topo,
	.gml-modal__corpo,
	.gml-modal__rodape { padding-left: 1.15em; padding-right: 1.15em; }
	.gml-modal__rodape { padding-bottom: max(1.1em, env(safe-area-inset-bottom)); }
	.gml-modal__rodape .gml-botao { flex: 1; padding-inline: .9em; letter-spacing: .06em; white-space: nowrap; }
	.gml-titulo--grande { font-size: clamp(2em, 9vw, 2.4em); }
}
@keyframes gmlFolha { from { transform: translateY(100%); } to { transform: none; } }

@media (max-width: 440px) {
	.gml-campos,
	.gml-loja .woocommerce-EditAccountForm,
	.gml-loja .woocommerce form.register,
	.gml-modal__corpo { grid-template-columns: minmax(0, 1fr); }
	.gml-campos > .form-row-first,
	.gml-campos > .form-row-last,
	.gml-loja .woocommerce-EditAccountForm > .form-row-first,
	.gml-loja .woocommerce-EditAccountForm > .form-row-last,
	.gml-loja .woocommerce form.register > .form-row-first,
	.gml-loja .woocommerce form.register > .form-row-last { grid-column: 1 / -1; }
	.gml-abas { min-width: 0; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.gml-loja *,
	.gml-modal,
	.gml-modal * {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

/* ------------------------------------------------------------------------
 * A vela no lugar do "carregando" do WooCommerce (carrinho e checkout)
 * --------------------------------------------------------------------- */

/* Sem o véu branco com rodinha do WooCommerce: o pedaço que está
 * atualizando só fica mais claro (e continua sem aceitar clique). */
.gml-loja .blockUI.blockOverlay {
	background: transparent !important;
	opacity: 1 !important;
	cursor: progress !important;
}
.gml-loja .blockUI.blockOverlay::before,
.gml-loja .blockUI.blockMsg,
.gml-loja .loader::before { display: none !important; }
.gml-loja :is(form, div, table, section, ul):has(> .blockUI.blockOverlay) { opacity: .55; transition: opacity .2s ease; }

html.gml-processando-ativo { overflow: hidden; }
.gml-processando {
	position: fixed;
	inset: 0;
	/* Acima do site, abaixo das janelas que alguns meios de pagamento abrem (3DS, Pix, carteira). */
	z-index: 9000;
	display: grid;
	place-items: center;
	padding: 24px;
	background: rgba(247, 242, 234, .94);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0;
	visibility: hidden;
	transition: opacity .35s ease, visibility .35s;
}
.gml-processando.is-visivel { opacity: 1; visibility: visible; }
.gml-processando__centro { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 360px; }
.gml-processando__vela { position: relative; display: flex; flex-direction: column; align-items: center; margin-bottom: 26px; }
.gml-processando__halo {
	position: absolute;
	top: -26px;
	left: 50%;
	width: 120px;
	height: 120px;
	margin-left: -60px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(246, 200, 115, .45) 0%, rgba(246, 200, 115, 0) 68%);
	animation: gmlProcHalo 2.6s ease-in-out infinite;
}
.gml-processando__chama { position: relative; transform-origin: 50% 90%; animation: gmlProcTremula 1.6s ease-in-out infinite; }
.gml-processando__pavio { width: 2px; height: 8px; margin-top: -4px; border-radius: 1px; background: var(--gml-primaria); }
.gml-processando__corpo {
	width: 46px;
	height: 58px;
	border: 1px solid var(--gml-areia);
	border-radius: 4px 4px 8px 8px;
	background: linear-gradient(180deg, var(--gml-superficie), var(--gml-suave));
	box-shadow: 0 18px 30px -20px rgba(57, 43, 37, .6);
}
.gml-processando__titulo { margin: 0; font-family: var(--gml-fonte-titulo); font-size: 26px; line-height: 1.25; color: var(--gml-primaria); }
.gml-processando__texto { margin: 10px 0 0; font-family: var(--gml-fonte-texto); font-size: 14px; line-height: 1.6; color: var(--gml-texto-suave); }
.gml-processando__linha {
	position: relative;
	width: 120px;
	height: 1px;
	margin-top: 24px;
	overflow: hidden;
	background: var(--gml-borda);
}
.gml-processando__linha::after {
	content: "";
	position: absolute;
	inset: 0;
	width: 40%;
	background: var(--gml-acento);
	animation: gmlProcLinha 1.4s cubic-bezier(.4, 0, .2, 1) infinite;
}
@keyframes gmlProcTremula { 0%, 100% { transform: scale(1) rotate(0); } 25% { transform: scale(1.04, .96) rotate(-1.8deg); } 50% { transform: scale(.97, 1.04) rotate(1.4deg); } 75% { transform: scale(1.02, .99) rotate(-.6deg); } }
@keyframes gmlProcHalo { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .7; transform: scale(1.1); } }
@keyframes gmlProcLinha { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
@media (prefers-reduced-motion: reduce) {
	.gml-processando__chama, .gml-processando__halo, .gml-processando__linha::after { animation: none; }
}

/* Logo da marca no painel escuro da tela Entrar / Criar conta. */
.gml-acesso__logo { display: block; width: min(250px, 100%); height: auto; }
.gml-acesso__logo--texto { width: auto; }

/* Dados que não mudam pela conta (CPF e e-mail depois de cadastrados). */
.gml-loja .gml-campo--travado input,
.gml-loja .gml-campo--travado input:focus { background: var(--gml-suave); color: var(--gml-texto-suave); cursor: not-allowed; box-shadow: none; }
.gml-campo-nota { clear: both; margin: 4px 0 18px; font-size: .82em; color: var(--gml-texto-suave); }

/* "Ainda não tem conta?" embaixo do Acessar. */
.gml-acesso__trocar { margin: 22px 0 0; text-align: center; font-size: .92em; color: var(--gml-texto-suave); }
.gml-acesso__trocar .gml-link { padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--gml-primaria); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
