/*
 * Tabacaria Kaff — Build 353
 * Carrinho, checkout e Minha Conta: refinamento visual e responsivo.
 */

:root {
  --kaff-checkout-bg: #0d0d0f;
  --kaff-checkout-panel: #171719;
  --kaff-checkout-panel-soft: #1d1d20;
  --kaff-checkout-border: rgba(212, 168, 67, .24);
  --kaff-checkout-gold: #d4a843;
  --kaff-checkout-gold-strong: #f1c75b;
  --kaff-checkout-text: #f7f3ea;
  --kaff-checkout-muted: #b9b4aa;
  --kaff-checkout-radius: 18px;
  --kaff-checkout-shadow: 0 20px 55px rgba(0,0,0,.25);
}

body.woocommerce-cart .kaff-shop-shell,
body.woocommerce-checkout .kaff-shop-shell,
body.woocommerce-account .kaff-shop-shell {
  background:
    radial-gradient(circle at 15% 0%, rgba(212,168,67,.08), transparent 34%),
    var(--kaff-checkout-bg);
}

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-account .woocommerce {
  color: var(--kaff-checkout-text);
}

body.woocommerce-cart .woocommerce h1,
body.woocommerce-cart .woocommerce h2,
body.woocommerce-cart .woocommerce h3,
body.woocommerce-checkout .woocommerce h1,
body.woocommerce-checkout .woocommerce h2,
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-account .woocommerce h1,
body.woocommerce-account .woocommerce h2,
body.woocommerce-account .woocommerce h3 {
  color: var(--kaff-checkout-text);
  letter-spacing: -.02em;
}

/* Notices */
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  border: 1px solid var(--kaff-checkout-border) !important;
  border-top: 3px solid var(--kaff-checkout-gold) !important;
  border-radius: 14px;
  background: var(--kaff-checkout-panel) !important;
  color: var(--kaff-checkout-text) !important;
  box-shadow: 0 12px 35px rgba(0,0,0,.15);
}

/* CART */
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals .cart_totals,
body.woocommerce-cart .cross-sells {
  background: var(--kaff-checkout-panel);
  border: 1px solid var(--kaff-checkout-border);
  border-radius: var(--kaff-checkout-radius);
  box-shadow: var(--kaff-checkout-shadow);
}

body.woocommerce-cart .woocommerce-cart-form { padding: clamp(14px, 2.4vw, 28px); }
body.woocommerce-cart .cart-collaterals .cart_totals { padding: clamp(18px, 2.6vw, 30px); }
body.woocommerce-cart .cross-sells { margin-top: 28px; padding: 24px; }

body.woocommerce-cart table.shop_table {
  border: 0 !important;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
  color: var(--kaff-checkout-text);
}

body.woocommerce-cart table.shop_table th {
  color: var(--kaff-checkout-muted);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--kaff-checkout-border);
  padding: 14px 12px;
}

body.woocommerce-cart table.shop_table td {
  border-bottom: 1px solid rgba(255,255,255,.07);
  padding: 18px 12px;
  vertical-align: middle;
}

body.woocommerce-cart td.product-thumbnail img {
  width: 92px !important;
  height: 92px !important;
  object-fit: contain;
  padding: 8px;
  background: #fff;
  border-radius: 14px;
}

body.woocommerce-cart td.product-name a {
  color: var(--kaff-checkout-text);
  font-weight: 700;
  text-decoration: none;
}
body.woocommerce-cart td.product-name a:hover { color: var(--kaff-checkout-gold-strong); }

body.woocommerce-cart a.remove {
  display: inline-grid !important;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  color: #ff8f8f !important;
  background: rgba(255,255,255,.03);
}
body.woocommerce-cart a.remove:hover { background: #b4232f !important; color: #fff !important; }

.woocommerce .quantity .qty {
  min-height: 44px;
  width: 74px;
  border: 1px solid var(--kaff-checkout-border);
  border-radius: 10px;
  background: #111113;
  color: #fff;
  font-weight: 700;
}

body.woocommerce-cart .coupon { display: flex; gap: 10px; flex-wrap: wrap; }
body.woocommerce-cart .coupon input.input-text { min-width: 190px; }

body.woocommerce-cart .cart-collaterals {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
  gap: 26px;
  align-items: start;
  margin-top: 28px;
}
body.woocommerce-cart .cart-collaterals::before,
body.woocommerce-cart .cart-collaterals::after { display: none; }
body.woocommerce-cart .cart_totals { width: 100% !important; float: none !important; grid-column: 2; }
body.woocommerce-cart .cart_totals h2 { margin-top: 0; }
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td { padding: 14px 0; }
body.woocommerce-cart .order-total strong { color: var(--kaff-checkout-gold-strong); font-size: 1.22rem; }

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  min-height: 46px;
  border-radius: 12px !important;
  font-weight: 800 !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { transform: translateY(-1px); }

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-checkout #place_order,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  width: 100%;
  min-height: 56px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, var(--kaff-checkout-gold-strong), #b88724) !important;
  color: #111 !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  letter-spacing: .01em;
  box-shadow: 0 12px 30px rgba(212,168,67,.24);
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-checkout #place_order:hover { box-shadow: 0 16px 38px rgba(212,168,67,.34); }

/* CHECKOUT CLASSIC */
body.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
  gap: 28px;
  align-items: start;
}
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review {
  background: var(--kaff-checkout-panel);
  border: 1px solid var(--kaff-checkout-border);
  border-radius: var(--kaff-checkout-radius);
  box-shadow: var(--kaff-checkout-shadow);
}
body.woocommerce-checkout #customer_details { padding: clamp(18px, 3vw, 34px); }
body.woocommerce-checkout #order_review_heading {
  grid-column: 2;
  margin: 0 0 -14px;
  padding: 22px 24px 30px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  box-shadow: none;
}
body.woocommerce-checkout #order_review {
  grid-column: 2;
  padding: 20px 24px 26px;
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
body.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
body.woocommerce-checkout .col2-set,
body.woocommerce-checkout .col2-set .col-1,
body.woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }
body.woocommerce-checkout .col2-set .col-2 { margin-top: 26px; }

.woocommerce form .form-row label { color: var(--kaff-checkout-text); font-weight: 700; margin-bottom: 7px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
  min-height: 49px;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 11px !important;
  background: #111113 !important;
  color: #fff !important;
  padding: 10px 12px;
}
.woocommerce form .form-row textarea { min-height: 110px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: #fff !important; line-height: 28px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 48px; }
.woocommerce form .form-row input:focus,
.woocommerce form .form-row textarea:focus {
  outline: none;
  border-color: var(--kaff-checkout-gold) !important;
  box-shadow: 0 0 0 3px rgba(212,168,67,.12);
}

body.woocommerce-checkout table.shop_table { border: 0; color: var(--kaff-checkout-text); }
body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td { border-color: rgba(255,255,255,.08); padding: 14px 4px; }
body.woocommerce-checkout .woocommerce-checkout-payment {
  background: var(--kaff-checkout-panel-soft) !important;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
}
body.woocommerce-checkout .woocommerce-checkout-payment ul.payment_methods { border-bottom-color: rgba(255,255,255,.1) !important; }
body.woocommerce-checkout .woocommerce-checkout-payment div.payment_box {
  background: #101012 !important;
  color: var(--kaff-checkout-muted) !important;
  border-radius: 10px;
}
body.woocommerce-checkout .woocommerce-checkout-payment div.payment_box::before { border-bottom-color: #101012 !important; }

/* Trust strip */
.kaff-checkout-trust {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.kaff-checkout-trust__item {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid rgba(212,168,67,.18);
  border-radius: 11px;
  background: rgba(212,168,67,.045);
  color: var(--kaff-checkout-muted);
  font-size: .82rem;
  line-height: 1.25;
}
.kaff-checkout-trust__icon { color: var(--kaff-checkout-gold-strong); font-size: 1.05rem; flex: 0 0 auto; }

/* Woo blocks support */
.wc-block-cart,
.wc-block-checkout { color: var(--kaff-checkout-text); }
.wc-block-components-sidebar,
.wc-block-cart-items,
.wc-block-checkout__main,
.wc-block-checkout__sidebar {
  border-color: var(--kaff-checkout-border) !important;
}
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar {
  background: var(--kaff-checkout-panel);
  border: 1px solid var(--kaff-checkout-border);
  border-radius: var(--kaff-checkout-radius);
  padding: clamp(16px, 2.5vw, 28px) !important;
}
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  background: #111113 !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.15) !important;
  border-radius: 10px !important;
}

/* Account */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
  background: var(--kaff-checkout-panel);
  border: 1px solid var(--kaff-checkout-border);
  border-radius: var(--kaff-checkout-radius);
  padding: 22px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block; padding: 12px 14px; border-radius: 10px; color: var(--kaff-checkout-text); text-decoration: none;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: rgba(212,168,67,.12); color: var(--kaff-checkout-gold-strong); }

@media (max-width: 900px) {
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-checkout form.checkout { display: block; }
  body.woocommerce-cart .cart_totals { margin-top: 22px; }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout #order_review { width: 100%; margin-top: 20px; }
  body.woocommerce-checkout #order_review_heading { margin-bottom: -20px; }
}

@media (max-width: 640px) {
  body.woocommerce-cart .woocommerce-cart-form { padding: 10px; background: transparent; border: 0; box-shadow: none; }
  body.woocommerce-cart table.shop_table_responsive thead { display: none; }
  body.woocommerce-cart table.shop_table_responsive tr.cart_item {
    position: relative;
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: 4px 14px;
    padding: 15px;
    margin-bottom: 14px;
    border: 1px solid var(--kaff-checkout-border);
    border-radius: 16px;
    background: var(--kaff-checkout-panel);
  }
  body.woocommerce-cart table.shop_table_responsive tr.cart_item td {
    display: block;
    border: 0;
    padding: 4px 0 !important;
    text-align: left !important;
  }
  body.woocommerce-cart table.shop_table_responsive tr.cart_item td::before { display: none; }
  body.woocommerce-cart td.product-thumbnail { grid-row: 1 / span 5; grid-column: 1; }
  body.woocommerce-cart td.product-thumbnail img { width: 84px !important; height: 84px !important; }
  body.woocommerce-cart td.product-name,
  body.woocommerce-cart td.product-price,
  body.woocommerce-cart td.product-quantity,
  body.woocommerce-cart td.product-subtotal { grid-column: 2; }
  body.woocommerce-cart td.product-remove { position: absolute; top: 8px; right: 8px; }
  body.woocommerce-cart td.product-name { padding-right: 34px !important; }
  body.woocommerce-cart tr:not(.cart_item) td.actions { display: block !important; padding: 12px 0 !important; }
  body.woocommerce-cart .coupon { display: grid; grid-template-columns: 1fr; }
  body.woocommerce-cart .coupon input.input-text,
  body.woocommerce-cart .coupon button { width: 100% !important; }
  body.woocommerce-cart .cart-collaterals .cart_totals { padding: 18px; }
  .kaff-checkout-trust { grid-template-columns: 1fr; }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review { padding: 18px 15px; }
  body.woocommerce-checkout #order_review_heading { padding: 18px 15px 26px; }
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last { width: 100%; float: none; }
}
