/*
Nelson Premium Checkout — extensão visual do Carrinho e Checkout.
Integrado ao tema nelson-premium (originalmente entregue como tema filho
em nelson-premium-checkout/, mesclado direto no tema por pedido do cliente
em 16/09/2026 — "não recriar o design, só ajustes de compatibilidade").
*/

:root{
  --np-green:#075744;
  --np-green-dark:#043f33;
  --np-cream:#faf9f5;
  --np-text:#173f38;
  --np-muted:#73838a;
  --np-line:#dfe5e1;
  --np-soft:#f4f6f2;
  --np-white:#fff;
  --np-radius:10px;
}

body.woocommerce-cart,
body.woocommerce-checkout{background:var(--np-cream);}

.np-shop-wrap{max-width:1440px;margin:0 auto;padding:42px 34px 80px;}
.np-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;}
.np-page-head h1,.np-checkout-head h1{
  margin:0;color:var(--np-text);font-family:"Playfair Display",Georgia,serif;
  font-size:48px;line-height:1.05;font-weight:600;
}
.np-page-head p,.np-checkout-head p{margin:9px 0 0;color:var(--np-muted);font-size:15px;}

.np-cart-layout{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(350px,.8fr);gap:26px;align-items:start;}
.np-cart-card,.np-summary-card,.np-checkout-card{
  background:var(--np-white);border:1px solid var(--np-line);border-radius:var(--np-radius);
  box-shadow:0 8px 30px rgba(20,55,45,.045);
}

.np-cart-card{overflow:hidden;}
.np-cart-table{width:100%;border-collapse:collapse;margin:0;}
.np-cart-table thead th{
  padding:16px 20px;text-align:left;border-bottom:1px solid var(--np-line);
  color:#7a898f;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;
}
.np-cart-table thead th.product-price,.np-cart-table td.product-price{text-align:right;}
.np-cart-table thead th.product-quantity,.np-cart-table td.product-quantity{text-align:center;}
.np-cart-table thead th.product-subtotal,.np-cart-table td.product-subtotal{text-align:right;}
.np-cart-table tbody td{padding:24px 20px;border-bottom:1px solid var(--np-line);vertical-align:middle;}
.np-product-cell{display:flex;align-items:center;gap:17px;min-width:310px;}
.np-product-cell>a{flex-shrink:0;}
/* !important necessário: o WooCommerce tem uma regra própria pro carrinho
   clássico (".woocommerce-cart table.cart img{width:32px}") com mais
   especificidade que ".np-product-thumb" sozinho — sem isso, a largura da
   foto ficava presa em 32px enquanto a altura seguia o nosso CSS, esticando
   a imagem (efeito "cilindro"). */
.np-product-thumb{width:92px!important;height:92px!important;object-fit:cover;border-radius:7px;background:#eee;}
.np-product-info h2{font-family:"Playfair Display",Georgia,serif;font-size:20px;margin:0 0 6px;color:var(--np-text);}
.np-product-meta{color:var(--np-muted);font-size:12px;line-height:1.55;}
.np-product-meta p{margin:0!important;}
.np-price,.np-subtotal{font-weight:700;color:var(--np-text);white-space:nowrap;text-align:right;}
.np-remove{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;background:none;color:#89969b;font-size:19px;text-decoration:none;}
.np-qty{display:inline-flex;height:38px;border:1px solid #ccd7d3;border-radius:6px;overflow:hidden;}
.np-qty input.qty{width:48px;height:36px;border:0!important;text-align:center!important;padding:0!important;background:#fff!important;box-shadow:none!important;}
.np-qty .np-qty-btn{width:34px;border:0;background:#fff;color:var(--np-green);font-size:19px;cursor:pointer;}
.np-qty .np-qty-btn:hover{background:var(--np-soft);}

.np-cart-actions{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:20px;padding:20px;}
.np-coupon{display:flex;flex-direction:row;align-items:center;gap:9px;}
.np-coupon input.input-text{height:43px;width:190px;margin:0!important;border:1px solid #ccd7d3!important;border-radius:6px!important;padding:0 13px!important;}
.np-btn,.np-cart-actions button.button{
  min-height:43px;border-radius:6px!important;padding:0 18px!important;border:1px solid var(--np-green)!important;
  background:#fff!important;color:var(--np-green)!important;font-weight:700!important;text-transform:uppercase;
  letter-spacing:.04em;font-size:11px!important;
}
.np-btn:hover,.np-cart-actions button.button:hover{background:var(--np-green)!important;color:#fff!important;}
.np-update{opacity:.65;}
.np-summary-card{padding:27px;position:sticky;top:20px;}
.np-summary-card h2{font-family:"Playfair Display",Georgia,serif;font-size:27px;color:var(--np-text);margin:0 0 20px;}
.np-summary-card .cart_totals{float:none!important;width:100%!important;}
.np-summary-card .cart_totals h2{display:none;}
.np-summary-card table{width:100%;border:1px solid #d7ded9;border-collapse:collapse;border-radius:6px;overflow:hidden;}
.np-summary-card table th,.np-summary-card table td{padding:13px 12px;border-bottom:1px solid #e1e6e3;font-size:13px;}
.np-summary-card table th{color:#7a898f;font-weight:600;text-align:left;}
.np-summary-card table td{text-align:right;color:var(--np-text);font-weight:600;}
.np-summary-card .order-total th,.np-summary-card .order-total td{font-size:16px;border-bottom:0;padding-top:17px;padding-bottom:17px;}
.np-summary-card .order-total td{color:var(--np-green);font-size:20px;}
.np-summary-card .woocommerce-shipping-totals td{text-align:right;}
.np-summary-card .wc-proceed-to-checkout{padding:20px 0 0;}
.np-summary-card a.checkout-button{
  display:flex!important;align-items:center;justify-content:center;width:100%;
  min-height:64px!important;margin:0!important;border-radius:6px!important;background:var(--np-green)!important;
  color:#fff!important;font-weight:800!important;font-size:15px!important;line-height:1.1!important;
  text-align:center!important;text-transform:uppercase;letter-spacing:.03em;
}
.np-summary-card a.checkout-button:hover{background:var(--np-green-dark)!important;}
.np-secure{display:flex;gap:12px;align-items:center;background:var(--np-soft);border-radius:7px;padding:15px;margin-top:18px;}
.np-secure-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#dce9df;color:var(--np-green);font-weight:800;}
.np-secure strong{display:block;font-size:13px;color:var(--np-text);}
.np-secure span{display:block;font-size:11px;color:var(--np-muted);margin-top:2px;}

.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-notices-wrapper{max-width:1440px;margin:18px auto 0;padding:0 34px;}

.np-checkout-head{max-width:1440px;margin:0 auto;padding:42px 34px 18px;}
.np-checkout-head-inner{display:flex;align-items:center;gap:18px;}
.np-mark{font-size:43px;color:var(--np-green);line-height:1;}
.np-steps{max-width:930px;margin:0 auto 28px;padding:0 34px;display:flex;align-items:center;color:#7b898f;}
.np-step{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:13px;}
.np-step span{width:34px;height:34px;border:1px solid #d6ded9;border-radius:50%;display:grid;place-items:center;background:#f5f7f4;font-weight:700;}
.np-step.active{color:var(--np-green);font-weight:700;}
.np-step.active span{background:var(--np-green);border-color:var(--np-green);color:#fff;}
.np-step-line{height:1px;background:#cdd6d2;flex:1;margin:0 18px;}
.np-checkout-layout{max-width:1440px;margin:0 auto;padding:0 34px 80px;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,.85fr);gap:26px;align-items:start;}
.np-checkout-card{padding:30px 32px;}
.np-section-title{display:flex;gap:15px;align-items:flex-start;margin-bottom:25px;}
.np-section-icon{font-size:29px;color:var(--np-green);}
.np-section-title h2{font-family:"Playfair Display",Georgia,serif;font-size:27px;margin:0;color:var(--np-text);}
.np-section-title p{margin:5px 0 0;color:var(--np-muted);font-size:13px;}
.np-checkout-card .col2-set,.np-checkout-card .woocommerce-billing-fields__field-wrapper{
  display:grid;grid-template-columns:1fr 1fr;gap:15px 20px;
}
.np-checkout-card .form-row{width:100%!important;float:none!important;margin:0 0 0!important;padding:0!important;}
.np-checkout-card .form-row-wide{grid-column:span 2;}
.np-checkout-card .form-row label{display:block;font-size:12px;color:#4d6870;font-weight:600;margin:0 0 7px;}
.np-checkout-card .form-row .required{color:#c84d4d;}
.np-checkout-card input.input-text,.np-checkout-card select,.np-checkout-card textarea{
  height:43px!important;border:1px solid #ccd7d3!important;border-radius:6px!important;background:#fff!important;
  padding:0 12px!important;color:#526b73!important;font-size:13px!important;box-shadow:none!important;
}
.np-checkout-card textarea{height:92px!important;padding-top:11px!important;}
.np-checkout-card input:focus,.np-checkout-card select:focus,.np-checkout-card textarea:focus{
  border-color:var(--np-green)!important;box-shadow:0 0 0 3px rgba(7,87,68,.08)!important;
}
.np-checkout-card .woocommerce-additional-fields{border-top:1px solid var(--np-line);margin-top:26px;padding-top:24px;}
.np-checkout-card .woocommerce-shipping-fields{border-top:1px solid var(--np-line);margin-top:26px;padding-top:24px;}
.np-checkout-card #ship-to-different-address{font-size:14px;margin:0 0 13px;}
.np-checkout-card #ship-to-different-address label{display:flex;align-items:center;gap:8px;color:var(--np-text);}
.np-checkout-card #ship-to-different-address-checkbox{width:17px;height:17px;accent-color:var(--np-green);}
.np-payment-spacer{margin-top:26px;padding-top:22px;border-top:1px solid var(--np-line);}
.np-checkout-order .np-order-inner{padding:28px;position:sticky;top:20px;}
.np-checkout-order h2{font-family:"Playfair Display",Georgia,serif;font-size:27px;color:var(--np-text);margin:0 0 20px;}
.np-checkout-order #order_review{background:#fff;border:1px solid var(--np-line);border-radius:8px;padding:0 18px;}
.np-checkout-order .shop_table{width:100%;border-collapse:collapse;margin:0;}
.np-checkout-order .shop_table th,.np-checkout-order .shop_table td{padding:14px 0;border-bottom:1px solid var(--np-line);font-size:13px;}
.np-checkout-order .shop_table th{text-align:left;color:#77868d;font-weight:600;}
.np-checkout-order .shop_table td{text-align:right;color:var(--np-text);font-weight:600;}
.np-checkout-order .shop_table .product-name{text-align:left;}
.np-checkout-order .shop_table .product-total{text-align:right;}
.np-checkout-order .shop_table .order-total th,.np-checkout-order .shop_table .order-total td{font-size:16px;border-bottom:0;}
.np-checkout-order .shop_table .order-total td{font-size:20px;color:var(--np-green);}
.np-checkout-order #payment{margin:20px 0 0!important;background:#fff!important;border-radius:0!important;}
.np-checkout-order #payment ul.payment_methods{padding:0!important;border:0!important;}
.np-checkout-order #payment div.payment_box{background:var(--np-soft)!important;border-radius:6px!important;color:#6f7e84!important;}
.np-checkout-order #payment div.payment_box:before{border-bottom-color:var(--np-soft)!important;}
.np-checkout-order #place_order{
  width:100%;min-height:66px;margin-top:15px;border:0!important;border-radius:6px!important;
  background:var(--np-green)!important;color:#fff!important;font-size:15px!important;font-weight:800!important;
  text-transform:uppercase;letter-spacing:.03em;
}
.np-checkout-order #place_order:hover{background:var(--np-green-dark)!important;}
.np-privacy{font-size:11px!important;color:#829096!important;line-height:1.5!important;margin:14px 0 0!important;}
.np-privacy a{color:var(--np-green);font-weight:600;}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{border-color:#c84d4d!important;}
.woocommerce form .form-row.woocommerce-validated input.input-text{border-color:#6aa77b!important;}

@media(max-width:1050px){
  .np-cart-layout,.np-checkout-layout{grid-template-columns:1fr;}
  .np-summary-card,.np-checkout-order .np-order-inner{position:static;}
}
@media(max-width:700px){
  .np-shop-wrap,.np-checkout-head{padding-left:16px;padding-right:16px;}
  .np-cart-layout,.np-checkout-layout{padding-left:16px;padding-right:16px;}
  .np-page-head h1,.np-checkout-head h1{font-size:38px;}
  .np-cart-table thead{display:none;}
  .np-cart-table tbody tr{display:grid;grid-template-columns:1fr 1fr;padding:18px;}
  .np-cart-table tbody td{border:0;padding:7px 0;}
  .np-product-cell{grid-column:1/-1;min-width:0;}
  .np-price{display:none;}
  .np-cart-table .product-quantity{text-align:left;}
  .np-cart-table .product-subtotal{text-align:right;}
  .np-cart-table .product-remove{position:absolute;right:14px;}
  .np-cart-actions{flex-direction:column;align-items:stretch;}
  .np-coupon{width:100%}.np-coupon input.input-text{flex:1;width:auto;}
  .np-checkout-card{padding:22px 18px;}
  .np-checkout-card .col2-set,.np-checkout-card .woocommerce-billing-fields__field-wrapper{grid-template-columns:1fr;}
  .np-checkout-card .form-row-wide{grid-column:span 1;}
  .np-steps{padding:0 16px;}
  .np-step strong{display:none;}
  .np-step-line{margin:0 8px;}
  .np-checkout-order .np-order-inner{padding:0;}
}

/* ===== Ajustes de compatibilidade com o tema (nelson-premium) =====
   O tema não tem page.php/template próprio pra páginas WooCommerce que usam
   shortcode (Carrinho/Checkout caem no index.php genérico) — sem isso, o
   título nativo da página ("Cart"/"Checkout") e o container .section (que
   tem max-width e padding próprios) duplicavam o cabeçalho e apertavam o
   layout de 1440px deste pacote. */
/* :not(.woocommerce-order-received) — a página de "Pedido recebido" (thank
   you) é tecnicamente parte do Checkout (mesma is_checkout()=true, mesmo
   body class woocommerce-checkout) mas usa o template PADRÃO do WooCommerce,
   não o nosso form-checkout.php customizado — sem essa exclusão, ela ficava
   sem container nenhum (max-width:none) e esticava full-width. Achado em
   16/09/2026 depois de um pedido de teste real. */
.woocommerce-cart .section-title,
.woocommerce-checkout:not(.woocommerce-order-received) .section-title{display:none;}
.woocommerce-cart main.section,
.woocommerce-checkout:not(.woocommerce-order-received) main.section{max-width:none;padding:0;margin:0;}
.woocommerce-cart article,
.woocommerce-checkout:not(.woocommerce-order-received) article{margin-bottom:0!important;}
