/* ============================================================
   RIPPLE RESINAS — ajustes para o WooCommerce
   O visual é o do site original (style.css). Aqui só entram as peças
   que o WooCommerce gera por conta própria, vestidas com o mesmo estilo.
   ============================================================ */

/* ---------- cartão de produto: a foto leva à página da peça ---------- */
.produto__link { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.produto__foto .selo { z-index: 3; pointer-events: none; }
.produto__preco .woocommerce-Price-currencySymbol,
.produto__preco bdi { font: inherit; }

/* ---------- página da peça ---------- */
.produto-pagina { padding-top: clamp(40px, 6vw, 72px); }
.produto-pagina .dupla { max-width: var(--largura); margin: 0 auto; }
.produto-pagina__texto .titulo { margin-bottom: 16px; }
.produto-pagina__texto .produto__preco { margin: 18px 0; }
.produto-pagina__texto .produto__preco strong { margin-left: 0; font-size: 32px; }
.produto-pagina__texto .produto__acoes { justify-content: flex-start; margin-bottom: 22px; }
.produto-pagina__descricao { color: var(--nevoa); }
.produto-pagina__galeria { max-width: var(--largura); margin: 56px auto 0; }
.produto-pagina__galeria figure { margin: 0; }

/* ---------- avisos do WooCommerce no formato .aviso ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce > .woocommerce-notices-wrapper,
.woocommerce > p.aviso {
    max-width: calc(var(--largura) - 48px);
    margin: 24px auto 0;
}
.woocommerce > .woocommerce-notices-wrapper { display: grid; gap: 10px; }
.woocommerce-NoticeGroup { grid-column: 1 / -1; display: grid; gap: 10px; }
.aviso a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.aviso .button, .aviso .restore-item, .aviso .wc-forward {
    margin-left: 8px;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    text-decoration: underline;
    cursor: pointer;
}

/* ---------- campos gerados pelo WooCommerce com o visual .campo ---------- */
.campo { margin: 0; }
.campo label { display: block; }
.campo .required, .campo abbr.required { display: none; }
.campo .optional { letter-spacing: .06em; text-transform: none; }
.campo .woocommerce-input-wrapper { display: block; }
.campo .woocommerce-input-wrapper strong { font-weight: 400; letter-spacing: normal; text-transform: none; color: var(--tinta); }
.campo.woocommerce-invalid input,
.campo.woocommerce-invalid select { border-bottom-color: var(--erro); }
.campo .description, .campo .woocommerce-error { font-size: 13px; letter-spacing: normal; text-transform: none; color: var(--nevoa); }
.campo input[type="checkbox"], .campo input[type="radio"] { width: auto; margin-right: 8px; accent-color: var(--turquesa); }
.campo select { appearance: auto; }

/* grade de 12 colunas para os blocos do checkout */
.campos--checkout { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 22px; }
.campos--checkout > * { grid-column: span 12; }
#billing_first_name_field, #billing_last_name_field,
#billing_document_field, #billing_phone_field, #billing_cellphone_field, #billing_birthdate_field { grid-column: span 6; }
/* campos auxiliares do plugin de CPF (o cliente preenche só o "CPF" acima) */
#billing_persontype_field, #billing_cpf_field, #billing_cnpj_field, #billing_phone_country_field { display: none; }
#billing_postcode_field, #billing_number_field { grid-column: span 4; }
#billing_address_1_field, #billing_address_2_field { grid-column: span 8; }
#billing_neighborhood_field, #billing_city_field { grid-column: span 5; }
#billing_state_field { grid-column: span 2; }
#billing_country_field { display: none; }

/* ---------- checkout: pagamento no formato das opções de entrega ---------- */
.woocommerce-checkout-payment { margin: 0; }
.wc_payment_methods { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.wc_payment_method {
    padding: 14px 18px;
    border: 1px solid var(--linha);
    border-radius: 16px;
    background: #fff;
    transition: border-color .25s, background .25s;
}
.wc_payment_method:has(> input:checked) { border-color: var(--turquesa); background: rgba(10, 95, 105, .05); }
.wc_payment_method > input { width: 18px; height: 18px; margin: 0 12px 0 0; vertical-align: middle; accent-color: var(--turquesa); }
.wc_payment_method > label { cursor: pointer; font-weight: 400; }
.wc_payment_method > label img { max-height: 24px; width: auto; vertical-align: middle; margin-left: 8px; }
.payment_box { margin-top: 14px; font-size: 15px; color: var(--nevoa); }
.payment_box p:last-child { margin-bottom: 0; }
.payment_box fieldset { border: 0; padding: 0; margin: 0; }

/* resumo e botão de finalizar */
.woocommerce-checkout-review-order-table .resumo__linhas { margin-bottom: 0; }
.resumo__linhas dd .woocommerce-Price-amount, .resumo__total dd strong { font: inherit; }
.resumo__total dd small { display: block; font: 13px var(--sans); color: var(--nevoa); }
.resumo .place-order { margin-top: 22px; display: grid; gap: 12px; }
.woocommerce-privacy-policy-text p,
.woocommerce-terms-and-conditions-wrapper p { font-size: 13px; color: var(--nevoa); margin: 0; }
.woocommerce-privacy-policy-text a { color: var(--turquesa); }
.blockUI.blockOverlay { border-radius: 16px; }
#place_order[disabled] { opacity: .6; cursor: wait; }

/* caixinhas extras no checkout (ex.: receber novidades por e-mail) */
#customer_details > label, #customer_details > .form-row:not(.campo) { display: flex; align-items: center; gap: 10px; margin: 0 4px; font-size: 14px; color: var(--nevoa); }
#customer_details input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--turquesa); }

/* bloco da entrega no checkout e no carrinho */
.ripple-entrega { display: grid; gap: 12px; }
.opcoes__item .woocommerce-shipping-destination { grid-column: 1 / -1; }
.entrega .woocommerce-shipping-calculator { margin: 0; }

/* página de pagamento de um pedido em aberto ("Pagar agora") */
.woocommerce-order-pay #order_review {
    max-width: var(--largura);
    margin: 0 auto;
    padding: 0 24px var(--respiro);
    display: grid;
    gap: 24px;
}
.woocommerce-order-pay .shop_table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--linha); border-radius: 20px; overflow: hidden; }
.woocommerce-order-pay .shop_table th, .woocommerce-order-pay .shop_table td { padding: 12px 18px; text-align: left; border-bottom: 1px solid var(--linha); font-weight: 400; }
.woocommerce-order-pay #payment .place-order { margin-top: 18px; }
.woocommerce-order-pay #place_order { width: 100%; }
.woocommerce-order-pay #place_order,
.woocommerce .button:not(.link-botao):not(.wc-forward) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 30px;
    border-radius: 999px;
    border: 1px solid transparent;
    background: var(--turquesa);
    color: var(--perola);
    font: 400 13px var(--sans);
    letter-spacing: .16em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

/* ---------- pagamento pelo Mercado Pago na página do pedido (Pix) ---------- */
.ripple-pagamento-pedido:empty { display: none; }
.ripple-pagamento-pedido > * { background: #fff; border: 1px solid var(--linha); border-radius: 20px; padding: clamp(20px, 3vw, 32px); }
.ripple-pagamento-pedido img { max-width: 240px; height: auto; }

/* ---------- conta ---------- */
.woocommerce-MyAccount-content { display: grid; gap: 24px; }

/* ---------- paginação da loja ---------- */
.woocommerce-pagination ul { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; padding: 0; margin: 48px 0 0; }
.woocommerce-pagination a, .woocommerce-pagination span {
    display: inline-block;
    min-width: 42px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--linha-forte);
    color: var(--turquesa);
    text-align: center;
    text-decoration: none;
}
.woocommerce-pagination .current { background: var(--turquesa); border-color: var(--turquesa); color: var(--perola); }

/* ---------- páginas de texto (políticas) ---------- */
.texto { font-size: 17px; }
.texto h2 { font-size: 32px; margin: 40px 0 12px; }
.texto h3 { font-size: 24px; margin: 28px 0 10px; }
.texto p, .texto li { color: var(--tinta); }
.texto a { color: var(--turquesa); }
.texto > *:first-child { margin-top: 0; }

/* ---------- celular ---------- */
@media (max-width: 560px) {
    .campos--checkout > * { grid-column: span 12 !important; }
    .produto-pagina__texto .produto__acoes { justify-content: center; }
}

/* ---------- barra do WordPress (só aparece para quem está logado no painel) ---------- */
.admin-bar .topo { top: 32px; }
@media (max-width: 782px) {
    .admin-bar .topo { top: 46px; }
}

/* ---------- rodapé: políticas e quem vende ---------- */
.rodape__legal {
    max-width: var(--largura);
    margin: 0 auto;
    padding: 0 24px 26px;
    display: grid;
    justify-items: center;
    gap: 10px;
    text-align: center;
}
.rodape__politicas { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; }
.rodape__politicas a { font-size: 12px; }
.rodape__legal p { margin: 0; font-size: 12px; letter-spacing: .06em; color: rgba(211, 236, 238, .75); }
.rodape__legal p a { font-size: 12px; letter-spacing: .06em; text-transform: none; }

/* ---------- checkout: aceite dos termos ---------- */
.woocommerce-terms-and-conditions-wrapper { display: grid; gap: 12px; }
.woocommerce-terms-and-conditions {
    max-height: 240px;
    overflow: auto;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--linha);
    border-radius: 12px;
    font-size: 13px;
}
.woocommerce-terms-and-conditions h2 { font-size: 20px; margin: 14px 0 6px; }
.woocommerce-form__label-for-checkbox { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--tinta); cursor: pointer; }
.woocommerce-form__label-for-checkbox input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--turquesa); }
.woocommerce-terms-and-conditions-wrapper .required { display: none; }
.woocommerce-terms-and-conditions-link { color: var(--turquesa); }
