/* ==========================================================================
   ConjugaPrisma — carrinho, finalizar compra e area de cliente
   Substitui o `woocommerce-layout.css`, que o tema retira. Sem isto, estas
   paginas ficam sem layout nenhum: tudo empilhado e encolhido.
   ========================================================================== */

/* --- Largura: estas paginas correm dentro de .cp-content -------------------- */
.woocommerce-cart .cp-content,
.woocommerce-checkout .cp-content,
.woocommerce-account .cp-content{max-width:none}
.woocommerce-cart .cp-container,
.woocommerce-checkout .cp-container{max-width:1320px}

/* ==========================================================================
   CARRINHO
   ========================================================================== */
.woocommerce-cart-form{min-width:0}
.woocommerce-cart .woocommerce{display:grid;grid-template-columns:minmax(0,1fr) 380px;
  gap:var(--cp-6);align-items:start}
.woocommerce-cart .woocommerce>.woocommerce-notices-wrapper{grid-column:1/-1}
.woocommerce-cart .cart-collaterals{position:sticky;top:var(--cp-5)}
.woocommerce-cart .cart_totals{width:100%}

@media (max-width:991px){
  .woocommerce-cart .woocommerce{grid-template-columns:1fr}
  .woocommerce-cart .cart-collaterals{position:static}
}

table.shop_table{width:100%;border-collapse:collapse;background:#fff;
  border:1px solid var(--cp-line);border-radius:var(--cp-radius-lg);overflow:hidden}
table.shop_table thead th{background:var(--cp-bg-alt);text-align:left;
  font-family:var(--cp-font-head);font-size:var(--cp-fs-xs);text-transform:uppercase;
  letter-spacing:.05em;color:var(--cp-dark);padding:var(--cp-3) var(--cp-4);white-space:nowrap}
table.shop_table td{padding:var(--cp-4);border-bottom:1px solid var(--cp-line-soft);
  vertical-align:middle}
table.shop_table tbody tr:last-child td{border-bottom:0}
.cart_item .product-thumbnail img{width:72px;height:72px;object-fit:contain;border-radius:var(--cp-radius)}
.cart_item .product-name a{color:var(--cp-dark);font-weight:600}
.cart_item .product-name a:hover{color:var(--cp-primary)}
.cart_item .product-price,.cart_item .product-subtotal{white-space:nowrap;font-weight:600;
  color:var(--cp-dark)}
.product-remove a.remove{display:grid;place-items:center;width:28px;height:28px;
  border-radius:50%;background:var(--cp-bg-alt);color:var(--cp-muted);font-size:18px;
  line-height:1;text-decoration:none;transition:all var(--cp-transition)}
.product-remove a.remove:hover{background:var(--cp-err);color:#fff}
td.actions{padding:var(--cp-4);background:var(--cp-bg-alt)}
td.actions .coupon{display:flex;gap:var(--cp-2);flex-wrap:wrap;float:none;margin-bottom:var(--cp-3)}
td.actions .coupon input[type=text]{max-width:220px}
td.actions>.button{float:none}

/* Totais */
.cart_totals h2,.woocommerce-checkout-review-order h3,
#order_review_heading{font-size:var(--cp-fs-lg);margin-bottom:var(--cp-4);
  padding-bottom:var(--cp-3);border-bottom:2px solid var(--cp-primary)}
.cart_totals table,.woocommerce-checkout-review-order table{width:100%;border:0}
.cart_totals th,.cart_totals td,
.woocommerce-checkout-review-order th,.woocommerce-checkout-review-order td{
  padding:var(--cp-3) 0;border:0;border-bottom:1px solid var(--cp-line-soft);text-align:left}
.cart_totals td,.woocommerce-checkout-review-order td{text-align:right;font-weight:600;
  color:var(--cp-dark)}
.cart_totals .order-total th,.cart_totals .order-total td,
.woocommerce-checkout-review-order .order-total th,
.woocommerce-checkout-review-order .order-total td{
  font-size:var(--cp-fs-lg);color:var(--cp-dark);border-bottom:0;padding-top:var(--cp-4)}
.wc-proceed-to-checkout{margin-top:var(--cp-4)}
.wc-proceed-to-checkout .button{width:100%;padding-block:var(--cp-4)}

/* Carrinho vazio */
.cart-empty{text-align:center;font-size:var(--cp-fs-lg);color:var(--cp-muted);
  padding-block:var(--cp-7)}
.return-to-shop{text-align:center;padding-bottom:var(--cp-7)}

/* ==========================================================================
   FINALIZAR COMPRA
   ========================================================================== */
.woocommerce-checkout form.checkout{display:grid;
  grid-template-columns:minmax(0,1fr) 420px;gap:var(--cp-6);align-items:start}
.woocommerce-checkout form.checkout>.col2-set{grid-column:1}
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review{grid-column:2}
.woocommerce-checkout #order_review{position:sticky;top:var(--cp-5);
  background:#fff;border:1px solid var(--cp-line);border-radius:var(--cp-radius-lg);
  padding:var(--cp-5)}
.woocommerce-checkout #order_review_heading{margin-bottom:var(--cp-3)}

@media (max-width:991px){
  .woocommerce-checkout form.checkout{grid-template-columns:1fr}
  .woocommerce-checkout form.checkout>.col2-set,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review{grid-column:1}
  .woocommerce-checkout #order_review{position:static}
}

/* Blocos de morada lado a lado */
.col2-set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cp-6)}
.col2-set>.col-1,.col2-set>.col-2{min-width:0}
@media (max-width:767px){ .col2-set{grid-template-columns:1fr} }

.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3{font-size:var(--cp-fs-md);margin-bottom:var(--cp-4);
  padding-bottom:var(--cp-2);border-bottom:1px solid var(--cp-line)}

/* Campos: o Woo usa form-row-first / form-row-last para meias colunas */
.woocommerce form .form-row{display:flex;flex-direction:column;margin-bottom:var(--cp-4)}
.woocommerce form .form-row label{font-size:var(--cp-fs-sm);font-weight:600;
  color:var(--cp-dark);margin-bottom:var(--cp-2)}
.woocommerce form .form-row .required{color:var(--cp-err);text-decoration:none}
.woocommerce form .form-row-wide{width:100%}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%}
@supports (display:grid){
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper{display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--cp-4)}
  .woocommerce-billing-fields__field-wrapper>.form-row-wide,
  .woocommerce-shipping-fields__field-wrapper>.form-row-wide{grid-column:1/-1}
}
@media (max-width:575px){
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper{grid-template-columns:1fr}
}
.woocommerce form .form-row.woocommerce-invalid input{border-color:var(--cp-err)}
.woocommerce form .form-row.woocommerce-validated input{border-color:var(--cp-ok)}
.select2-container .select2-selection--single{height:auto;padding:var(--cp-2);
  border:1px solid var(--cp-line);border-radius:var(--cp-radius)}
.select2-container--default .select2-selection--single .select2-selection__arrow{top:6px}

/* Resumo da encomenda */
#order_review .shop_table{border:0;background:transparent}
#order_review .shop_table th,#order_review .shop_table td{padding:var(--cp-3) 0}
#order_review .product-name{color:var(--cp-dark)}
#order_review .product-quantity{color:var(--cp-muted);font-weight:400}

/* Pagamentos (inclui o IfthenPay) */
#payment{background:var(--cp-bg-alt);border-radius:var(--cp-radius-lg);
  padding:var(--cp-4);margin-top:var(--cp-4)}
#payment ul.payment_methods{list-style:none;margin:0 0 var(--cp-4);padding:0;
  border-bottom:1px solid var(--cp-line)}
#payment ul.payment_methods li{padding:var(--cp-3) 0;border-bottom:1px solid var(--cp-line-soft)}
#payment ul.payment_methods li:last-child{border-bottom:0}
#payment ul.payment_methods label{display:inline-flex;align-items:center;gap:var(--cp-2);
  font-weight:600;color:var(--cp-dark);margin:0;cursor:pointer}
#payment ul.payment_methods label img{max-height:28px;width:auto;margin-left:var(--cp-2)}
#payment .payment_box{background:#fff;border-radius:var(--cp-radius);padding:var(--cp-3);
  margin-top:var(--cp-2);font-size:var(--cp-fs-sm);color:var(--cp-body)}
#payment .payment_box p:last-child{margin-bottom:0}
#place_order{width:100%;padding-block:var(--cp-4);font-size:var(--cp-fs-md)}
.woocommerce-terms-and-conditions-wrapper{margin-block:var(--cp-4);font-size:var(--cp-fs-sm)}

/* Cupao e login no topo do checkout */
.woocommerce-form-coupon-toggle,.woocommerce-form-login-toggle{margin-bottom:var(--cp-4)}
.woocommerce form.checkout_coupon,.woocommerce form.login,
.woocommerce form.register{border:1px solid var(--cp-line);border-radius:var(--cp-radius-lg);
  padding:var(--cp-5);margin-bottom:var(--cp-5);background:#fff}

/* Encomenda recebida */
.woocommerce-order{max-width:820px;margin-inline:auto}
.woocommerce-thankyou-order-received{font-family:var(--cp-font-head);font-size:var(--cp-fs-xl);
  color:var(--cp-ok);text-align:center;padding:var(--cp-5);background:#eef8ef;
  border-radius:var(--cp-radius-lg);margin-bottom:var(--cp-5)}
ul.woocommerce-order-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:var(--cp-4);list-style:none;margin:0 0 var(--cp-6);padding:var(--cp-5);
  background:var(--cp-bg-alt);border-radius:var(--cp-radius-lg)}
ul.woocommerce-order-overview li{font-size:var(--cp-fs-xs);text-transform:uppercase;
  letter-spacing:.05em;color:var(--cp-muted)}
ul.woocommerce-order-overview li strong{display:block;margin-top:var(--cp-1);
  font-size:var(--cp-fs-base);text-transform:none;letter-spacing:0;color:var(--cp-dark)}

/* ==========================================================================
   AREA DE CLIENTE
   ========================================================================== */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:250px minmax(0,1fr);
  gap:var(--cp-6);align-items:start}
/* `logged-out` nao existe: o WordPress so acrescenta `logged-in` ao body.
   Enquanto isto dependeu dela, o bloco de login caia na coluna de 250px da
   barra lateral e o col2-set partia-a em duas de ~110px — uma palavra por
   linha. Sem sessao nao ha navegacao de cliente, logo nao ha barra lateral. */
.woocommerce-account:not(.logged-in) .woocommerce{grid-template-columns:1fr}
.woocommerce-account .woocommerce>.woocommerce-notices-wrapper{grid-column:1/-1}
.woocommerce-MyAccount-navigation{border:1px solid var(--cp-line);
  border-radius:var(--cp-radius-lg);overflow:hidden;background:#fff}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce-MyAccount-navigation li a{display:block;padding:var(--cp-3) var(--cp-4);
  color:var(--cp-dark);font-size:var(--cp-fs-sm);border-bottom:1px solid var(--cp-line-soft)}
.woocommerce-MyAccount-navigation li:last-child a{border-bottom:0}
.woocommerce-MyAccount-navigation li a:hover{background:var(--cp-primary-tint);color:var(--cp-primary-dark)}
.woocommerce-MyAccount-navigation li.is-active a{background:var(--cp-primary);color:#fff;font-weight:600}
.woocommerce-MyAccount-content{min-width:0}

@media (max-width:767px){
  .woocommerce-account .woocommerce{grid-template-columns:1fr}
  .woocommerce-MyAccount-navigation ul{display:grid;
    grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .woocommerce-MyAccount-navigation li a{border-bottom:1px solid var(--cp-line-soft)}
}

/* Login / registo lado a lado */
.woocommerce-account:not(.logged-in) .woocommerce>.u-columns{display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cp-6)}
@media (max-width:767px){
  .woocommerce-account:not(.logged-in) .woocommerce>.u-columns{grid-template-columns:1fr}
}

/* Enderecos */
.woocommerce-Addresses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cp-5)}
.woocommerce-Address{border:1px solid var(--cp-line);border-radius:var(--cp-radius-lg);
  padding:var(--cp-5);background:#fff}
.woocommerce-Address-title{display:flex;justify-content:space-between;align-items:center;
  gap:var(--cp-3);margin-bottom:var(--cp-3)}
.woocommerce-Address-title h2,.woocommerce-Address-title h3{margin:0;font-size:var(--cp-fs-md)}
@media (max-width:767px){ .woocommerce-Addresses{grid-template-columns:1fr} }

/* Tabelas de encomendas e downloads */
.woocommerce-orders-table,.woocommerce-table--order-downloads,
.woocommerce-table--order-details{width:100%}
.woocommerce-orders-table__cell-order-actions .button{margin:2px}
.woocommerce-pagination ul{display:flex;gap:var(--cp-2);list-style:none;margin:var(--cp-5) 0 0;
  padding:0;justify-content:center}
.woocommerce-pagination a,.woocommerce-pagination span{display:grid;place-items:center;
  min-width:38px;height:38px;border:1px solid var(--cp-line);border-radius:var(--cp-radius);
  color:var(--cp-dark)}
.woocommerce-pagination .current{background:var(--cp-primary);border-color:var(--cp-primary);color:#fff}

/* ==========================================================================
   CARRINHO E CHECKOUT EM BLOCOS
   O WooCommerce 8+ usa blocos ("Total no carrinho", "Adicionar cupao",
   "Total estimado") em vez dos templates classicos. O CSS acima mira
   `.woocommerce-cart .woocommerce`, que o bloco nunca produz.
   ========================================================================== */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout{max-width:var(--cp-container);margin-inline:auto;
  padding-block:clamp(1.5rem,4vw,3rem)}

/* Grelha em vez das percentagens com padding que os blocos usam. A coluna
   principal e limitada: com 1fr puro, num ecra largo a tabela ficava com
   metade da largura vazia a direita. */
.wc-block-components-sidebar-layout{display:grid;
  grid-template-columns:minmax(0,1fr) clamp(290px,26vw,360px);
  gap:clamp(1.25rem,2.5vw,2.25rem);align-items:start}
.wc-block-components-main,
.wc-block-components-sidebar{width:auto!important;min-width:0;max-width:none!important;
  padding-inline:0!important;flex:none!important;float:none!important}
@media (min-width:901px){
  .wc-block-components-sidebar{position:sticky;top:calc(var(--cp-header-h-sticky) + 1.5rem)}
}
@media (max-width:900px){
  .wc-block-components-sidebar-layout{grid-template-columns:1fr}
  .wc-block-components-sidebar{position:static}
}

/* --- Tabela de artigos ---------------------------------------------------- */
/* Sem isto a tabela encolhe ao conteudo e deixa a coluna a meio vazia. */
.wc-block-cart-items{width:100%!important;border:1px solid var(--cp-line-soft);
  border-radius:var(--cp-radius-xl);overflow:hidden;background:#fff;
  border-collapse:collapse}
.wc-block-cart-items__header{background:var(--cp-bg-alt);
  font-family:var(--cp-font-head);text-transform:uppercase;letter-spacing:.05em;
  font-size:var(--cp-fs-xs);color:var(--cp-dark)}
.wc-block-cart-items__header th{padding:var(--cp-4)}
.wc-block-cart-items__header .wc-block-cart-items__header-total,
.wc-block-cart-item__total{text-align:right}
.wc-block-cart-items__row td{padding:var(--cp-4);vertical-align:top;
  border-bottom:1px solid var(--cp-line-soft)}
.wc-block-cart-items__row:last-child td{border-bottom:0}
.wc-block-cart-item__image{width:110px}
.wc-block-cart-item__image img{width:100%;border-radius:var(--cp-radius);
  background:var(--cp-bg-alt)}
.wc-block-components-product-name{font-weight:600;color:var(--cp-dark);
  text-decoration:none}
.wc-block-components-product-name:hover{color:var(--cp-primary)}
.wc-block-cart-item__total .wc-block-components-formatted-money-amount{
  font-family:var(--cp-font-head);font-size:var(--cp-fs-lg);color:var(--cp-dark)}

/* --- Totais --------------------------------------------------------------- */
.wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-checkout-totals-block{background:var(--cp-bg-alt);
  border:1px solid var(--cp-line-soft);border-radius:var(--cp-radius-xl);
  padding:clamp(1.1rem,2.4vw,1.6rem)}
/* Os blocos deixam wrappers vazios quando nao ha portes ou desconto — apareciam
   como barras cinzentas sem conteudo nenhum. */
.wc-block-components-totals-wrapper:empty,
.wc-block-components-totals-wrapper:not(:has(*)){display:none}
.wc-block-components-totals-wrapper{padding-block:var(--cp-3);
  border-top:1px solid var(--cp-line)}
.wc-block-components-totals-wrapper:first-child{border-top:0;padding-top:0}
.wc-block-components-totals-item{padding-block:var(--cp-1)}
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount{
  font-family:var(--cp-font-head);font-size:clamp(1.25rem,2.4vw,1.6rem);
  color:var(--cp-dark)}

/* --- Botoes --------------------------------------------------------------- */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button:not(.is-link){
  background:var(--cp-primary)!important;border:1px solid var(--cp-primary)!important;
  color:#fff!important;border-radius:var(--cp-radius)!important;
  font-family:var(--cp-font-head);font-weight:600;text-transform:uppercase;
  letter-spacing:.04em;min-height:52px;box-shadow:none!important}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button:not(.is-link):hover{
  background:var(--cp-primary-dark)!important;border-color:var(--cp-primary-dark)!important}

/* --- Campos --------------------------------------------------------------- */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__container{border-radius:var(--cp-radius)!important;
  border-color:var(--cp-line)!important}


/* --- Login e registo: dois cartoes ---------------------------------------- */
.woocommerce-account:not(.logged-in) .cp-page__layout{max-width:1000px;margin-inline:auto}
.woocommerce-account:not(.logged-in) .u-columns>div{background:#fff;
  border:1px solid var(--cp-line);border-radius:var(--cp-radius-xl);
  padding:clamp(1.25rem,3vw,2rem)}
.woocommerce-account:not(.logged-in) .u-columns h2{margin-top:0;
  font-size:clamp(1.25rem,2.4vw,1.6rem)}
/* O shortcode ja desenha estes formularios dentro do cartao; a moldura
   propria de `form.login`/`form.register` ficaria caixa dentro de caixa. */
.woocommerce-account:not(.logged-in) .u-columns form.login,
.woocommerce-account:not(.logged-in) .u-columns form.register{border:0;padding:0}
.woocommerce-account:not(.logged-in) .woocommerce-privacy-policy-text{
  font-size:var(--cp-fs-sm);color:var(--cp-muted)}
.woocommerce-account:not(.logged-in) .u-columns .button{width:100%;
  justify-content:center;padding-block:var(--cp-3)}
.woocommerce-account:not(.logged-in) .woocommerce-LostPassword{margin-top:var(--cp-3);
  font-size:var(--cp-fs-sm)}
