/* ==========================================================================
   Carrinho e checkout em blocos (WooCommerce Blocks)

   Estes blocos são renderizados pelo React do WooCommerce e trazem a própria
   folha de estilo, pensada para tema claro: campos com fundo branco e rótulos
   sem cor definida. Como o tema define texto quase branco no <body>, o rótulo
   herdava essa cor e sumia sobre o fundo branco — o campo parecia vazio.

   Aqui o conjunto é trazido para o visual escuro do site. O `!important` é
   necessário porque a folha dos blocos carrega depois e usa seletores longos.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Títulos e textos de apoio
   -------------------------------------------------------------------------- */

.wc-block-checkout,
.wc-block-cart {
	color: var(--text);
}

.wc-block-components-title,
.wc-block-components-checkout-step__title,
.wc-block-cart__main-title,
.wp-block-woocommerce-cart .wc-block-cart__totals-title {
	color: var(--text) !important;
	font-family: var(--font) !important;
	letter-spacing: -.01em;
}

.wc-block-components-checkout-step__description,
.wc-block-components-checkout-step__heading-content {
	color: var(--muted) !important;
}

.wc-block-components-checkout-step {
	border-color: var(--border-soft) !important;
}

/* --------------------------------------------------------------------------
   2. Campos de formulário
   -------------------------------------------------------------------------- */

/* Rede de segurança: o checkout em blocos é montado por JavaScript e pode
   trazer campos com classes não previstas aqui. Esta regra ampla garante que
   nenhum campo fique com fundo branco e rótulo claro por cima. Não atinge
   caixas de seleção nem o iframe do gateway. */
.wc-block-checkout input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.wc-block-checkout select,
.wc-block-checkout textarea,
.wc-block-cart input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.wc-block-cart select,
.wc-block-cart textarea,
.wp-block-woocommerce-checkout input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.wp-block-woocommerce-checkout select,
.wp-block-woocommerce-checkout textarea {
	background-color: rgba(255, 255, 255, .05) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm) !important;
	color: var(--text) !important;
	font-family: var(--font) !important;
}

.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-text-input input[type="password"],
.wc-block-components-textarea,
.wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-select .wc-block-components-select__container,
.wc-block-components-select select,
.wc-block-components-address-form input,
.wc-block-components-address-form select,
.wc-block-components-form input[type="text"],
.wc-block-components-form input[type="email"],
.wc-block-components-form input[type="tel"] {
	background-color: rgba(255, 255, 255, .05) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm) !important;
	color: var(--text) !important;
	font-family: var(--font) !important;
	box-shadow: none !important;
}

/* O rótulo flutuante fica dentro do campo: sem cor legível, o campo parece
   vazio e o cliente não sabe o que preencher. */
.wc-block-components-text-input label,
.wc-block-components-combobox-control label,
.wc-block-components-select__label,
.wc-block-components-address-form label,
.wc-block-components-textarea + label,
.wc-block-components-checkout-step .wc-block-components-text-input label {
	color: var(--muted) !important;
	font-family: var(--font) !important;
}

/* Rótulo recolhido (campo preenchido ou em foco). */
.wc-block-components-text-input.is-active label,
.wc-block-components-combobox-control.is-active label {
	color: var(--purple-bright) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox-control input:focus,
.wc-block-components-select select:focus,
.wc-block-components-textarea:focus {
	border-color: var(--purple) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(168, 85, 247, .18) !important;
}

.wc-block-components-text-input input::placeholder,
.wc-block-components-textarea::placeholder {
	color: var(--muted-dim) !important;
}

/* Atenção ao nome: o campo de país/estado usa `wc-blocks-components-select`
   (com "blockS"), diferente do `wc-block-components-*` dos demais campos. O
   WooCommerce crava `color:#2b2d2f` nesse <select> e `background:#fff` no
   container — daí o valor selecionado sumir. O modo escuro nativo do bloco
   (`has-dark-controls`, ligado no conteúdo da página) ja corrige a cor; aqui
   apenas alinhamos o campo ao visual dos outros. */
.wc-blocks-components-select .wc-blocks-components-select__container {
	background-color: rgba(255, 255, 255, .05) !important;
	border-radius: var(--radius-sm) !important;
}
.wc-blocks-components-select .wc-blocks-components-select__select {
	background: transparent !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm) !important;
	color: var(--text) !important;
	font-family: var(--font) !important;
	color-scheme: dark;
}
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--purple) !important;
	box-shadow: 0 0 0 3px rgba(168, 85, 247, .18) !important;
}
.wc-blocks-components-select .wc-blocks-components-select__label {
	color: var(--muted) !important;
}
.wc-blocks-components-select .wc-blocks-components-select__select option {
	background-color: var(--bg-elev) !important;
	color: var(--text) !important;
}

/* A lista aberta do <select> (país, estado) é desenhada pelo sistema. Sem cor
   própria na <option>, ela herda o texto claro do tema e fica ilegível sobre
   o fundo branco do popup. */
.wc-block-checkout select,
.wc-block-cart select,
.wp-block-woocommerce-checkout select {
	color-scheme: dark;
}

.wc-block-checkout select option,
.wc-block-checkout select optgroup,
.wc-block-cart select option,
.wc-block-cart select optgroup,
.wp-block-woocommerce-checkout select option,
.wp-block-woocommerce-checkout select optgroup {
	background-color: var(--bg-elev) !important;
	color: var(--text) !important;
}

/* A seta do <select> vem escura por padrão. */
.wc-block-components-select .wc-block-components-select__expand,
.wc-block-components-combobox-control .components-custom-select-control__button-icon {
	fill: var(--muted) !important;
	color: var(--muted) !important;
}

/* Sugestões do autocompletar de país/estado. */
.components-form-token-field__suggestions-list,
.wc-block-components-combobox-control__suggestions-container {
	background: var(--bg-elev) !important;
	border-color: var(--border) !important;
	color: var(--text) !important;
}
.components-form-token-field__suggestion:hover,
.components-form-token-field__suggestion.is-selected {
	background: var(--grad-soft) !important;
	color: var(--text) !important;
}

/* --------------------------------------------------------------------------
   3. Caixas de seleção e opções de pagamento
   -------------------------------------------------------------------------- */

.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label,
.wc-block-components-radio-control__option-layout {
	color: var(--text-soft) !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: #fff !important;
}
.wc-block-components-checkbox__input {
	background: rgba(255, 255, 255, .05) !important;
	border-color: var(--border) !important;
}
.wc-block-components-checkbox__input:checked {
	background: var(--purple-deep) !important;
	border-color: var(--purple) !important;
}

.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
	background: rgba(26, 22, 64, .5) !important;
	border: 1px solid var(--border-soft) !important;
	border-radius: var(--radius) !important;
	margin-bottom: .6rem !important;
	color: var(--text-soft) !important;
}
.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control__option--checked-option-highlighted {
	border-color: var(--purple) !important;
	background: var(--grad-soft) !important;
}
.wc-block-components-radio-control-accordion-content {
	color: var(--text-soft) !important;
}

/* --------------------------------------------------------------------------
   4. Painéis (cupom) e avisos
   -------------------------------------------------------------------------- */

.wc-block-components-panel__button {
	color: var(--purple-bright) !important;
	font-family: var(--font) !important;
}
.wc-block-components-panel__button svg { fill: var(--purple-bright) !important; }

.wc-block-components-notice-banner {
	background: var(--bg-card) !important;
	border-color: var(--purple) !important;
	color: var(--text-soft) !important;
	border-radius: var(--radius-sm) !important;
}
.wc-block-components-notice-banner__content { color: var(--text-soft) !important; }

.wc-block-components-validation-error,
.wc-block-components-validation-error p {
	color: #fca5a5 !important;
}

/* --------------------------------------------------------------------------
   5. Resumo do pedido
   -------------------------------------------------------------------------- */

.wc-block-components-sidebar,
.wp-block-woocommerce-checkout-totals-block,
.wc-block-cart__totals-title + .wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-totals-block {
	background: linear-gradient(165deg, rgba(28, 24, 64, .78), rgba(13, 11, 36, .78)) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-lg) !important;
}

.wc-block-components-order-summary__content,
.wc-block-components-order-summary-item,
.wc-block-components-totals-item {
	color: var(--text-soft) !important;
	border-color: var(--border-soft) !important;
}

.wc-block-components-product-name {
	color: var(--text) !important;
	font-weight: 600;
}
.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description {
	color: var(--muted) !important;
}

.wc-block-components-totals-item__label { color: var(--muted) !important; }
.wc-block-components-totals-item__value { color: var(--text) !important; }

.wc-block-components-totals-footer-item,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--text) !important;
	font-weight: 800 !important;
}

.wc-block-components-order-summary-item__image img {
	border-radius: 8px;
	border: 1px solid var(--border-soft);
}

.wc-block-components-totals-wrapper {
	border-color: var(--border-soft) !important;
}

/* --------------------------------------------------------------------------
   6. Botões
   -------------------------------------------------------------------------- */

.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--grad) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: var(--font) !important;
	font-weight: 600 !important;
	transition: transform .18s ease, box-shadow .18s ease;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(124, 58, 237, .45);
	color: #fff !important;
}
.wc-block-components-button.is-link { color: var(--purple-bright) !important; }

/* --------------------------------------------------------------------------
   7. Itens do carrinho
   -------------------------------------------------------------------------- */

.wc-block-cart-items,
.wc-block-cart-items__row,
.wc-block-cart-item__wrap {
	color: var(--text-soft) !important;
	border-color: var(--border-soft) !important;
}
.wc-block-components-product-title,
.wc-block-cart-item__product-name a {
	color: var(--text) !important;
}
.wc-block-components-product-price,
.wc-block-components-product-price__value {
	color: var(--text) !important;
	font-weight: 700;
}
.wc-block-components-quantity-selector {
	background: rgba(255, 255, 255, .05) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm) !important;
}
.wc-block-components-quantity-selector__input,
.wc-block-components-quantity-selector__button {
	color: var(--text) !important;
	background: transparent !important;
}
.wc-block-cart-item__remove-link { color: var(--muted) !important; }
.wc-block-cart-item__remove-link:hover { color: var(--purple-bright) !important; }

/* --------------------------------------------------------------------------
   8. Iframe do Mercado Pago

   O formulário do cartão roda em iframe de outro domínio: não dá para
   estilizar por aqui. Damos a ele um fundo claro próprio para que o conteúdo
   do gateway continue legível dentro da página escura.
   -------------------------------------------------------------------------- */

.wc-block-components-radio-control-accordion-content .mp-checkout-container,
.wc-block-components-radio-control-accordion-content iframe {
	background: #fff;
	border-radius: var(--radius-sm);
}
