/*
Theme Name: Casa Vivace Loja
Description: Tema clássico da Casa Vivace — espelha o site Astro (header, footer, cores, tipografia) na loja WooCommerce.
Version: 2.0.0
Author: LBD Marketing
Text Domain: casa-vivace
*/

:root {
  --areia:#eae9e1; --areia-2:#f5f4ef; --areia-3:#dedcd1;
  --salvia:#4b6a5d; --salvia-2:#5d7d6f;
  --vivace:#0d3834; --vivace-2:#0a2b28;
  --ink:#1f2a26; --muted:#6b6f6a;
  --radius:14px;
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
html,body { overflow-x:hidden; }
body { margin:0; font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; background:var(--areia); color:var(--ink); line-height:1.55; -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--vivace); text-decoration:none; }
a:hover { color:var(--salvia); }
h1,h2,h3,h4 { color:var(--vivace); font-weight:650; letter-spacing:-.02em; line-height:1.2; }
.cv-container { width:100%; max-width:1240px; margin:0 auto; padding:0 22px; }

/* ============ HEADER ============ */
.cv-header { background:#fff; border-bottom:1px solid var(--areia-3); }
.cv-topbar { background:var(--vivace); color:var(--areia); text-align:center; font-size:12.5px; letter-spacing:.03em; padding:9px 16px; }
.cv-topbar strong { color:#fff; font-weight:600; }
.cv-topbar span.sep { opacity:.45; margin:0 8px; }
.cv-header__bar { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:16px 22px; flex-wrap:wrap; }
.cv-brand { display:flex; align-items:center; }
.cv-brand img { height:58px; width:auto; }
.cv-brand__txt { font-size:21px; font-weight:700; letter-spacing:-.03em; color:var(--vivace); }
.cv-nav { display:flex; align-items:center; gap:6px; }
.cv-nav a { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:600; padding:10px 16px; border-radius:999px; border:1px solid transparent; transition:.15s; }
.cv-nav a:hover { background:var(--areia-2); border-color:var(--areia-3); color:var(--vivace); }
.cv-nav a.cv-cart { background:var(--vivace); color:var(--areia); border-color:var(--vivace); }
.cv-nav a.cv-cart:hover { background:var(--vivace-2); color:#fff; }

/* ============ MAIN ============ */
.cv-main { padding:36px 0 72px; min-height:58vh; }
.cv-page-title { font-size:clamp(24px,3.4vw,34px); margin:0 0 26px; }

/* ============ FOOTER ============ */
.cv-footer { background:var(--vivace); color:var(--areia); padding:46px 0; margin-top:40px; }
.cv-footer__row { display:flex; justify-content:space-between; align-items:center; gap:22px; flex-wrap:wrap; }
.cv-footer__brand { font-size:19px; font-weight:700; letter-spacing:-.02em; }
.cv-footer__tag { color:rgba(234,233,225,.62); font-size:13px; margin-top:3px; }
.cv-footer__credit { font-size:13px; color:rgba(234,233,225,.55); }
.cv-footer a { color:rgba(234,233,225,.85); }
.cv-footer a:hover { color:#fff; }

/* ============ BOTÕES ============ */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,
a.button,button.button,input.button,.woocommerce a.button.alt,.woocommerce button.button.alt {
  background:var(--vivace)!important; color:var(--areia)!important; border:0!important; border-radius:999px!important;
  font-weight:600!important; font-size:15px!important; padding:12px 26px!important; line-height:1.3!important;
  transition:background .18s,transform .12s; cursor:pointer;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce a.button.alt:hover { background:var(--vivace-2)!important; color:#fff!important; }
.woocommerce a.button.alt:disabled { opacity:.5!important; }

/* ============ CAMPOS ============ */
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=search],textarea,select,.input-text {
  width:100%; border:1px solid var(--areia-3)!important; border-radius:10px!important; padding:12px 14px!important;
  background:#fff!important; font-family:inherit!important; font-size:14.5px!important; color:var(--ink)!important;
  transition:border-color .15s,box-shadow .15s;
}
input:focus,textarea:focus,select:focus,.input-text:focus { border-color:var(--vivace)!important; outline:none!important; box-shadow:0 0 0 3px rgba(13,56,52,.10)!important; }
::placeholder { color:#9aa09a; }

/* ============ MENSAGENS / NOTICES ============ */
.woocommerce-message,.woocommerce-info,.woocommerce-error {
  border:1px solid var(--areia-3)!important; border-left:4px solid var(--salvia)!important; border-radius:10px!important;
  background:var(--areia-2)!important; color:var(--ink)!important; padding:12px 16px!important; margin:0 0 18px!important;
  display:flex!important; align-items:center; gap:12px; flex-wrap:wrap; font-size:14px!important;
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before { display:none!important; }
.woocommerce-message .button,.woocommerce-info .button { margin-left:auto!important; padding:9px 18px!important; font-size:13px!important; }

/* ============ TABELAS ============ */
.woocommerce table.shop_table { width:100%!important; border:1px solid var(--areia-3); border-radius:var(--radius); border-collapse:separate; border-spacing:0; overflow:hidden; background:#fff; }
.woocommerce table.shop_table th { background:var(--vivace); color:var(--areia); font-weight:600; text-align:left; padding:14px 16px; }
.woocommerce table.shop_table td { padding:14px 16px; border-top:1px solid var(--areia-2); background:#fff; vertical-align:middle; }
.woocommerce table.shop_table tfoot td,.woocommerce table.shop_table tfoot th { font-weight:600; }
.woocommerce table.shop_table tfoot tr:last-child td,.woocommerce table.shop_table tfoot tr:last-child th { color:var(--vivace); font-size:16px; }

/* ============ CARRINHO ============ */
.woocommerce-cart .cart-collaterals { margin-top:30px; }
.woocommerce-cart .cart-collaterals .cart_totals { width:100%; max-width:460px; margin-left:auto; }
.woocommerce-cart .cart-collaterals .cart_totals h2 { font-size:20px; margin:0 0 14px; }

/* ============ CHECKOUT — LAYOUT ============ */
.woocommerce-checkout .woocommerce { max-width:100%; }
#customer_details { margin-bottom:8px; }
.woocommerce-checkout .col2-set { display:block!important; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { float:none!important; width:100%!important; }
.woocommerce-checkout h3 { font-size:18px; margin:0 0 18px; padding-bottom:11px; border-bottom:1px solid var(--areia-3); letter-spacing:-.01em; }
.woocommerce-checkout .woocommerce-shipping-fields:empty,
.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address-empty { display:none; }
.woocommerce-checkout .woocommerce-additional-fields h3 { margin-top:26px!important; }
.woocommerce-checkout form .form-row { margin:0 0 15px!important; padding:0!important; }
.woocommerce-checkout form .form-row label { display:block; margin-bottom:5px!important; font-size:13px; font-weight:500; color:var(--vivace); }
.woocommerce-checkout form .form-row .required { color:#c0392b; text-decoration:none; }
.woocommerce-checkout form .form-row-first,
.woocommerce-checkout form .form-row-last { width:48.5%!important; float:none!important; display:inline-block; vertical-align:top; }
.woocommerce-checkout form .form-row-last { margin-left:3%!important; }
.woocommerce-checkout form .form-row-wide { width:100%!important; clear:both; }
.select2-container { width:100%!important; }
.select2-container--default .select2-selection--single { height:46px!important; border:1px solid var(--areia-3)!important; border-radius:10px!important; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height:46px!important; padding-left:14px!important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height:46px!important; right:10px!important; }

@media (min-width:900px) {
  .woocommerce-checkout form.checkout { display:grid!important; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)!important; column-gap:44px!important; align-items:start; }
  .woocommerce-checkout #customer_details { grid-column:1; grid-row:1/span 2; min-width:0; }
  .woocommerce-checkout #order_review_heading { grid-column:2; grid-row:1; margin:0 0 16px!important; border:0!important; padding:0!important; }
  .woocommerce-checkout #order_review { grid-column:2; grid-row:2; min-width:0; position:sticky; top:24px; }
}

/* resumo do pedido = card */
.woocommerce-checkout #order_review { background:#fff; border:1px solid var(--areia-3); border-radius:var(--radius); padding:22px; box-shadow:0 14px 34px -26px rgba(13,56,52,.45); }
.woocommerce-checkout #order_review .shop_table { border:0; border-radius:0; }
.woocommerce-checkout #order_review .shop_table th { background:transparent; color:var(--muted); text-transform:uppercase; font-size:11px; letter-spacing:.06em; padding:0 0 12px; }
.woocommerce-checkout #order_review .shop_table td { padding:12px 0; }
.woocommerce-checkout #order_review .shop_table tfoot td { border-top:1px solid var(--areia-2); }

/* ============ MÉTODOS DE PAGAMENTO ============ */
.woocommerce-checkout #payment { background:transparent!important; border-radius:0!important; }
.woocommerce-checkout #payment::before,.woocommerce-checkout #payment::after { display:none!important; }
.woocommerce-checkout ul.wc_payment_methods { list-style:none!important; margin:0 0 18px!important; padding:0!important; border:0!important; }
/* radio posicionado à esquerda; label ao lado — nunca desalinha, mesmo com badge longo */
.woocommerce-checkout .wc_payment_method { position:relative!important; display:block!important; border:1.5px solid var(--areia-3)!important; border-radius:12px!important; background:#fff!important; margin:0 0 10px!important; padding:15px 18px 15px 46px!important; transition:border-color .18s, box-shadow .18s; }
.woocommerce-checkout .wc_payment_method:hover { border-color:var(--salvia)!important; }
.woocommerce-checkout .wc_payment_method > input.input-radio { position:absolute!important; left:18px!important; top:16px!important; float:none!important; accent-color:var(--vivace); width:17px!important; height:17px!important; margin:0!important; }
.woocommerce-checkout .wc_payment_method > label { display:flex!important; align-items:center; gap:8px; flex-wrap:wrap; cursor:pointer; padding:0!important; margin:0!important; font-weight:600!important; font-size:15px!important; color:var(--vivace)!important; line-height:1.35!important; }
.woocommerce-checkout .wc_payment_method .payment_box { width:100%; margin:8px 0 0!important; }
.woocommerce-checkout .wc_payment_method .payment_box p:first-child { margin-top:0!important; }

.cv-tag { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.01em; padding:4px 10px; border-radius:999px; margin-left:4px; vertical-align:middle; white-space:nowrap; }
.cv-tag--desc { background:var(--vivace); color:var(--areia); }
.cv-tag--plus { background:#c0392b; color:#fff; }
.cv-tag--neutral { background:var(--areia-3); color:var(--vivace); }
.cv-pay-desc { color:var(--muted); font-size:13.5px; margin:0 0 10px; }

.cv-parcelas { display:grid; grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); gap:8px; margin-top:4px; }
.cv-parcela { display:flex; align-items:center; gap:8px; border:1px solid var(--areia-3); border-radius:10px; padding:9px 12px; background:#fff; cursor:pointer; font-size:13px; font-weight:500; color:var(--ink); transition:border-color .15s,background .15s; }
.cv-parcela:hover { border-color:var(--salvia); background:var(--areia-2); }
.cv-parcela input { accent-color:var(--vivace); margin:0; }

#place_order { width:100%!important; background:var(--vivace)!important; color:var(--areia)!important; border-radius:999px!important; font-size:16px!important; font-weight:700!important; padding:16px 30px!important; border:0!important; transition:background .18s; }
#place_order:hover { background:var(--vivace-2)!important; color:#fff!important; }
.woocommerce-terms-and-conditions-wrapper { margin-bottom:16px; }

/* ============ MINHA CONTA / LOGIN ============ */
.woocommerce-account .woocommerce-MyAccount-navigation { width:100%; margin-bottom:26px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.woocommerce-account .woocommerce-MyAccount-navigation li { padding:0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display:block; padding:10px 18px; border-radius:999px; background:#fff; border:1px solid var(--areia-3); font-weight:600; font-size:14px; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background:var(--vivace); color:var(--areia); border-color:var(--vivace); }
.woocommerce-account .woocommerce-MyAccount-content { width:100%; }
.woocommerce form.login,.woocommerce form.register { border:1px solid var(--areia-3); border-radius:var(--radius); padding:26px; background:#fff; max-width:520px; }
.woocommerce .woocommerce-form-login__rememberme { display:block; margin:8px 0 16px; }

/* ============ RESPONSIVO ============ */
@media (max-width:899px) {
  .woocommerce-checkout form .form-row-first,
  .woocommerce-checkout form .form-row-last { width:100%!important; margin-left:0!important; }
  .cv-header__bar { justify-content:center; }
  .cv-nav { width:100%; justify-content:center; flex-wrap:wrap; }
}

/* ============ MINHA CONTA — PEDIDOS ============ */
.woocommerce-orders-table tbody th,
.woocommerce-orders-table tbody td { background:#fff!important; color:var(--ink)!important; }
.woocommerce-orders-table thead th { background:var(--vivace)!important; color:var(--areia)!important; }
.woocommerce-orders-table__cell-order-number a { font-weight:700; color:var(--vivace)!important; }
.woocommerce-orders-table__row:hover td { background:var(--areia-2)!important; }
.woocommerce-button.button.view { padding:9px 18px!important; font-size:13px!important; }
