/* ==========================================================================
   YOU MOVE — WooCommerce
   Carrinho, checkout e conta no padrão clássico, com a cara do site.

   Duas decisões que valem contexto:

   1. Este arquivo NÃO depende do layout do WooCommerce. O plugin monta as
      colunas com float (.col2-set > .col-1/.col-2, .form-row-first/last).
      Aqui tudo isso é zerado e refeito em grid, então o resultado não muda
      se o woocommerce-layout.css carregar antes, depois ou nem carregar.

   2. O tema não carrega mais Bootstrap. Era ele que quebrava o checkout:
      .col-1 e .col-2 são nomes que o WooCommerce usa para as colunas e que
      o Bootstrap define como larguras de 8,33% e 16,66%.

   Depende das variáveis de assets/css/youmove.css.
   Inclui os campos do "Brazilian Market on WooCommerce".
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Molde das páginas internas
   O header é fixo (barra de anúncio + nav): as páginas precisam desse respiro.
   -------------------------------------------------------------------------- */
.ym-loja{background:#fff;}
.ym-loja__main{padding-top:clamp(7.5rem,12vw,10rem);padding-bottom:var(--ym-section);background:#fff;}
/* o checkout tem duas colunas densas: um pouco mais de largura que a LP */
.ym-loja__main > .ym-container{max-width:1320px;}
.ym-loja .ym-header{position:fixed;}
.ym-loja .ym-nav::before{opacity:1;}          /* nav sempre sólida fora da home */
.ym-loja .ym-topbar{max-height:0;padding-block:0;opacity:0;overflow:hidden;}

.ym-prosa{font-size:1.1rem;line-height:1.75;color:var(--ym-gray-700);}
.ym-prosa h2{font-size:1.6rem;margin:2.5rem 0 1rem;color:var(--ym-navy-800);}
.ym-prosa a{color:var(--ym-orange);text-decoration:underline;}

/* Títulos ------------------------------------------------------------------ */
.ym-loja .page-title,
.woocommerce-page h1{
  font-family:var(--ym-display);font-weight:300;letter-spacing:-.035em;line-height:1.05;
  font-size:clamp(2.1rem,4.4vw,3.2rem);color:var(--ym-navy-800);margin:0 0 .6rem;
}
.woocommerce h2,
.woocommerce h3,
.woocommerce-page h2,
.woocommerce-page h3{
  font-family:var(--ym-display);font-weight:400;letter-spacing:-.03em;color:var(--ym-navy-800);
}
.woocommerce h2{font-size:clamp(1.35rem,2.2vw,1.7rem);margin:0 0 1.2rem;}
.woocommerce h3{font-size:1.2rem;margin:0 0 1.2rem;}

/* --------------------------------------------------------------------------
   1b. Vencendo o layout de float do WooCommerce

   O plugin posiciona tudo com float e larguras em porcentagem, em regras de
   duas classes (.woocommerce .cart-collaterals .cart_totals, .woocommerce
   form .form-row-first…). Regras minhas de mesma especificidade dependeriam
   da ordem de carregamento das folhas — que varia. Prefixar com .ym-loja (a
   classe que o tema põe no body) resolve de vez, sem !important.
   -------------------------------------------------------------------------- */
.ym-loja .col2-set,
.ym-loja .col2-set .col-1,
.ym-loja .col2-set .col-2,
.ym-loja .u-columns,
.ym-loja .u-columns .u-column1,
.ym-loja .u-columns .u-column2,
.ym-loja .cart-collaterals,
.ym-loja .cart-collaterals .cart_totals,
.ym-loja .woocommerce-MyAccount-navigation,
.ym-loja .woocommerce-MyAccount-content,
.ym-loja form .form-row,
.ym-loja form .form-row-first,
.ym-loja form .form-row-last,
.ym-loja form .form-row-wide,
.ym-loja table.cart td.actions,
.ym-loja table.cart td.actions .coupon,
.ym-loja table.cart td.actions .coupon .input-text,
.ym-loja .woocommerce-message .button,
.ym-loja .woocommerce-info .button,
.ym-loja #payment #place_order,
.ym-loja .addresses .title h3{
  float:none;width:auto;max-width:none;
}
.ym-loja .col2-set::after,
.ym-loja .col2-set::before,
.ym-loja .cart-collaterals::after,
.ym-loja .cart-collaterals::before,
.ym-loja .u-columns::after,
.ym-loja .u-columns::before{content:none;display:none;}

/* larguras que o Woo fixa e que atrapalham dentro das grades do tema */
.ym-loja form .form-row-first,
.ym-loja form .form-row-last{width:auto;overflow:visible;}
.ym-loja table.cart td.actions .coupon .input-text{width:190px;}
.ym-loja table.cart img{width:auto;}
.ym-loja .quantity .qty{width:74px;}
.ym-loja #payment{background:transparent;}
.ym-loja #payment div.payment_box{width:auto;}

/* --------------------------------------------------------------------------
   2. Trilha de etapas
   Impressa pelo tema em inc/woocommerce.php.
   -------------------------------------------------------------------------- */
.ym-passos{
  display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;
  list-style:none;padding:0;margin:.9rem 0 2.4rem;
  /* ela é impressa dentro de .woocommerce, que no carrinho é um flex de duas
     colunas: sem isto ela seria tratada como uma das colunas */
  flex:0 0 100%;width:100%;
}
.ym-passos li{
  display:flex;align-items:center;gap:.55rem;
  font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ym-gray-500);
}
.ym-passos li span{
  display:grid;place-content:center;width:26px;height:26px;border-radius:50%;
  border:1px solid var(--ym-line);background:#fff;
  font-size:.72rem;letter-spacing:0;color:var(--ym-gray-500);
}
.ym-passos li + li::before{
  content:"";width:clamp(16px,4vw,40px);height:1px;background:var(--ym-line);margin-right:.3rem;
}
.ym-passos li.is-feito{color:var(--ym-navy-700);}
.ym-passos li.is-feito span{background:var(--ym-navy-800);border-color:var(--ym-navy-800);color:#fff;}
.ym-passos li.is-atual{color:var(--ym-navy-800);}
.ym-passos li.is-atual span{border-color:var(--ym-orange);color:var(--ym-orange);box-shadow:0 0 0 3px var(--ym-orange-soft);}

/* --------------------------------------------------------------------------
   3. Botões — herdam o desenho da marca
   -------------------------------------------------------------------------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce-page a.button,
.woocommerce-page button.button{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--ym-body);font-size:.88rem;font-weight:600;letter-spacing:.02em;
  padding:.95rem 1.9rem;border-radius:100px;border:1px solid transparent;
  background:var(--ym-navy-800);color:#fff;line-height:1.2;text-shadow:none;
  cursor:pointer;white-space:nowrap;transition:all .35s var(--ym-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover{
  background:var(--ym-navy-600);color:#fff;transform:translateY(-2px);
  box-shadow:0 14px 34px -12px rgba(11,27,51,.55);
}
/* os dois botões que fecham a venda */
.woocommerce .checkout-button,
.woocommerce #place_order{
  background:var(--ym-orange);font-size:.98rem;padding:1.15rem 2.4rem;width:100%;
}
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover{
  background:#DE5C10;box-shadow:0 14px 34px -12px rgba(242,106,27,.6);
}
/* os discretos */
.woocommerce a.button.wc-backward,
.woocommerce button[name="update_cart"],
.woocommerce button[name="apply_coupon"],
.woocommerce .woocommerce-orders-table__cell-order-actions .button{
  background:transparent;color:var(--ym-navy-800);border-color:var(--ym-line);
}
.woocommerce a.button.wc-backward:hover,
.woocommerce button[name="update_cart"]:hover,
.woocommerce button[name="apply_coupon"]:hover,
.woocommerce .woocommerce-orders-table__cell-order-actions .button:hover{
  background:var(--ym-navy-800);color:#fff;border-color:var(--ym-navy-800);box-shadow:none;
}
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled]{
  background:var(--ym-off);color:var(--ym-gray-500);border-color:var(--ym-line);
  opacity:1;transform:none;box-shadow:none;cursor:not-allowed;padding:.95rem 1.9rem;
}

/* --------------------------------------------------------------------------
   4. Campos
   As colunas do WooCommerce são float; aqui viram grid de duas colunas.
   -------------------------------------------------------------------------- */
.woocommerce form .form-row,
.woocommerce-page form .form-row{
  display:block;float:none;width:auto;padding:0;margin:0 0 1.15rem;
}
.woocommerce .woocommerce-billing-fields__field-wrapper,
.woocommerce .woocommerce-shipping-fields__field-wrapper,
.woocommerce .woocommerce-additional-fields__field-wrapper,
.woocommerce .woocommerce-address-fields__field-wrapper,
.woocommerce-EditAccountForm{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:1rem;align-items:start;
}
/* Quem manda na grade é o id do campo, não a classe do plugin: Brazilian
   Market, o gateway e os Correios distribuem form-row-first/last cada um do
   seu jeito, e o resultado eram campos de meia largura em ordem aleatória.

   O padrão é meia coluna — dois campos por linha. Antes era o contrário
   (linha inteira por padrão, meia só para uma lista de ids conhecidos), o que
   deixava buraco toda vez que um plugin trazia um campo novo. Com a regra
   invertida, campo desconhecido entra em dupla como todos os outros, e a
   exceção passa a ser explícita e curta. */
.woocommerce .woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce .woocommerce-shipping-fields__field-wrapper > .form-row,
.woocommerce .woocommerce-address-fields__field-wrapper > .form-row,
.woocommerce-EditAccountForm > .form-row{grid-column:span 1;}

/* As exceções — os campos que ficam ruins pela metade.

   O endereço é o caso principal: é o campo mais longo do formulário e o que
   costuma sobrar quando a contagem dá ímpar. Ocupando a linha inteira ele
   resolve as duas coisas de uma vez — cabe o nome da rua e fecha a grade.

   O desenho final:

     Nome        · Sobrenome
     Tipo pessoa · CPF
     E-mail      · Celular
     CEP                       linha inteira
     Endereço                  linha inteira
     Número      · Complemento
     Bairro      · Cidade
     Estado

   O CEP em linha inteira não é só estética: é o campo que dispara o
   preenchimento do endereço, e isolado ele diz "comece por aqui". Também é o
   que faz a conta fechar — com ele e o endereço ocupando linha cheia, os
   outros dez campos formam cinco duplas exatas, sem meia linha vazia em
   lugar nenhum. */
#billing_postcode_field,    #shipping_postcode_field,
#billing_address_1_field,   #shipping_address_1_field,
.woocommerce .form-row.notes,
.woocommerce .form-row.create-account{grid-column:1 / -1;}

/* Textarea nunca em meia coluna: observação do pedido e qualquer caixa de
   texto longa. O :has() cobre também os campos que plugins futuros trouxerem
   sem a classe .notes. */
.woocommerce .form-row:has(textarea){grid-column:1 / -1;}

/* campos que o tema esconde de propósito (país fixo, telefone duplicado) */
.ym-oculto{display:none !important;}

.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce-page .woocommerce-address-fields label{
  display:block;margin:0 0 .45rem;
  font-family:var(--ym-body);font-size:.74rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ym-gray-500);
}
.woocommerce form .form-row .required,
.woocommerce form .form-row abbr.required{
  color:var(--ym-orange);border:0;text-decoration:none;
}
.woocommerce form .form-row .optional{color:var(--ym-gray-500);font-weight:400;text-transform:none;letter-spacing:0;}

.woocommerce .woocommerce-input-wrapper{display:block;width:100%;}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"],
.woocommerce-page input[type="number"],
.woocommerce-page textarea,
.woocommerce-page select,
.select2-container .select2-selection--single{
  display:block;width:100%;min-height:52px;padding:.85rem 1.1rem;
  border:1px solid var(--ym-line);border-radius:12px;background:#fff;
  font-family:var(--ym-body);font-size:1rem;line-height:1.4;color:var(--ym-navy-800);
  box-shadow:none;transition:border-color .2s,box-shadow .2s;
}
.woocommerce-page textarea,
.woocommerce form .form-row textarea{min-height:112px;resize:vertical;}
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce-page textarea::placeholder{color:#A6AEBC;}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-page input:focus,
.woocommerce-page textarea:focus,
.woocommerce-page select:focus{
  border-color:var(--ym-navy-600);box-shadow:0 0 0 3px rgba(27,58,107,.12);outline:none;
}
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{border-color:#C0392B;}
.woocommerce form .form-row.woocommerce-validated input.input-text{border-color:#1a7f37;}
.woocommerce form .form-row .woocommerce-input-wrapper .description{
  font-size:.82rem;color:var(--ym-gray-500);margin-top:.4rem;
}

/* CEP: enquanto a busca acontece, e quando não encontra */
.woocommerce .form-row.is-buscando .woocommerce-input-wrapper{position:relative;}
.woocommerce .form-row.is-buscando .woocommerce-input-wrapper::after{
  content:"";position:absolute;right:1rem;top:50%;width:16px;height:16px;margin-top:-8px;
  border:2px solid var(--ym-line);border-top-color:var(--ym-orange);border-radius:50%;
  animation:ym-girando .7s linear infinite;
}
@keyframes ym-girando{to{transform:rotate(360deg);}}
.woocommerce .form-row.is-erro-cep input.input-text{border-color:#C0392B;}
.woocommerce .form-row.is-erro-cep::after{
  content:"CEP não encontrado. Confira ou preencha à mão.";
  display:block;margin-top:.4rem;font-size:.82rem;color:#C0392B;
}

/* select2 (estados) */
.select2-container .select2-selection--single{display:flex;align-items:center;height:auto;}
.select2-container .select2-selection--single .select2-selection__rendered{
  line-height:1.4;padding:0;color:var(--ym-navy-800);
}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:50px;right:8px;}
.select2-dropdown{border-color:var(--ym-line);border-radius:12px;overflow:hidden;}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--ym-navy-800);}

/* caixas de seleção e rádios */
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"]{
  width:18px;height:18px;min-height:0;flex:none;margin:0 .55rem 0 0;
  accent-color:var(--ym-orange);vertical-align:middle;
}
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox,
.woocommerce .woocommerce-form__label-for-checkbox,
.woocommerce label.checkbox{
  display:flex;align-items:center;gap:.15rem;margin:0;cursor:pointer;
  font-size:.95rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ym-gray-700);
}
.woocommerce .woocommerce-form__label-for-checkbox span{font-size:.95rem;color:var(--ym-gray-700);}

/* --------------------------------------------------------------------------
   5. Brazilian Market — campos brasileiros

   O plugin injeta CPF/CNPJ, tipo de pessoa, RG, IE, número e bairro. Todos
   entram na grade pela regra geral (meia coluna), então aqui não sobra nada
   de largura para declarar.

   Havia duas exceções e as duas saíram:

   - o tipo de pessoa ocupava a linha inteira com um select de 320px, o que
     deixava meia linha de vazio ao lado dele;
   - o CEP tinha `grid-column:1`, obrigando-o a começar linha nova. Isso
     empurrava o campo anterior para uma linha só dele e abria um buraco no
     meio do formulário.
   -------------------------------------------------------------------------- */
#billing_postcode_field .input-text,
#shipping_postcode_field .input-text{letter-spacing:.03em;}

/* --------------------------------------------------------------------------
   6. Tabelas
   -------------------------------------------------------------------------- */
.woocommerce table.shop_table{
  width:100%;border:1px solid var(--ym-line);border-radius:var(--ym-radius-lg);
  border-collapse:separate;border-spacing:0;overflow:hidden;margin:0 0 1.6rem;
  background:#fff;
}
.woocommerce table.shop_table th{
  font-family:var(--ym-body);font-size:.68rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ym-gray-500);text-align:left;
  padding:1rem 1.2rem;background:var(--ym-off);border:0;border-bottom:1px solid var(--ym-line);
}
.woocommerce table.shop_table td{
  padding:1.25rem 1.2rem;border:0;border-top:1px solid var(--ym-line);vertical-align:middle;
  color:var(--ym-navy-800);
}
.woocommerce table.shop_table tbody tr:first-child td{border-top:0;}
.woocommerce table.shop_table .amount{font-variant-numeric:tabular-nums;}

/* --------------------------------------------------------------------------
   7. Carrinho

   Os itens NÃO são desenhados como tabela de seis colunas. Com remover,
   miniatura, nome, preço, quantidade e subtotal cada um reivindicando uma
   coluna, mais o padding de célula, a soma passa da largura disponível e a
   tabela transborda — o nome espreme, os valores cortam. Aqui cada linha vira
   uma grade com uma única coluna elástica (o nome), então nada estoura.
   -------------------------------------------------------------------------- */
.woocommerce-cart form.woocommerce-cart-form{margin:0;}

.woocommerce-cart table.cart,
.woocommerce-cart table.cart tbody{display:block;width:100%;}
.woocommerce-cart table.cart{
  border:1px solid var(--ym-line);border-radius:var(--ym-radius-lg);
  background:#fff;overflow:hidden;margin:0;
}
.woocommerce-cart table.cart thead{display:none;}
.woocommerce-cart table.cart tr{display:block;}

.woocommerce-cart table.cart tr.cart_item{
  display:grid;align-items:center;
  grid-template-columns:88px minmax(0,1fr) max-content max-content max-content 34px;
  column-gap:clamp(.9rem,1.6vw,1.6rem);
  padding:1.15rem 1.25rem;border-top:1px solid var(--ym-line);
}
.woocommerce-cart table.cart tbody tr.cart_item:first-child{border-top:0;}
.woocommerce-cart table.cart tr.cart_item td{
  display:block;width:auto;padding:0;border:0;vertical-align:middle;
}
/* a linha do grid é declarada em todas as células de propósito: o "remover"
   vem primeiro no HTML e ocupa a última coluna, e sem grid-row o navegador
   joga tudo que vem depois dele para a linha de baixo */
.woocommerce-cart table.cart td.product-thumbnail{grid-column:1;grid-row:1;}
.woocommerce-cart table.cart td.product-name{grid-column:2;grid-row:1;}
.woocommerce-cart table.cart td.product-price{grid-column:3;grid-row:1;}
.woocommerce-cart table.cart td.product-quantity{grid-column:4;grid-row:1;}
.woocommerce-cart table.cart td.product-subtotal{grid-column:5;grid-row:1;}
.woocommerce-cart table.cart td.product-remove{grid-column:6;grid-row:1;justify-self:end;align-self:center;}

/* sem cabeçalho de tabela, cada valor leva o próprio rótulo */
.woocommerce-cart table.cart td.product-price::before,
.woocommerce-cart table.cart td.product-quantity::before,
.woocommerce-cart table.cart td.product-subtotal::before{
  content:attr(data-title);display:block;margin-bottom:.35rem;
  font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ym-gray-500);white-space:nowrap;
}
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal{text-align:right;white-space:nowrap;}
.woocommerce-cart table.cart td.product-subtotal{font-weight:600;}

.woocommerce-cart table.cart td.product-thumbnail img{
  width:88px;height:88px;object-fit:cover;border-radius:12px;
  background:var(--ym-off);display:block;
}
.woocommerce-cart table.cart td.product-name a{
  font-family:var(--ym-display);font-size:1.08rem;font-weight:500;
  letter-spacing:-.02em;line-height:1.25;color:var(--ym-navy-800);
}
.woocommerce-cart table.cart td.product-name a:hover{color:var(--ym-orange);}
.woocommerce-cart table.cart td.product-name .variation{
  font-size:.85rem;color:var(--ym-gray-500);margin:.3rem 0 0;
}

.woocommerce a.remove{
  display:grid;place-content:center;width:30px;height:30px;
  font-size:1.15rem;line-height:1;font-weight:400;border-radius:50%;
  color:var(--ym-gray-500) !important;background:transparent;
  border:1px solid var(--ym-line);transition:all .2s;
}
.woocommerce a.remove:hover{background:#C0392B;color:#fff !important;border-color:#C0392B;}

.woocommerce .quantity{display:inline-flex;}
.woocommerce .quantity input.qty{
  width:74px;min-height:46px;padding:0 .4rem;text-align:center;
  border:1px solid var(--ym-line);border-radius:100px;background:#fff;
  font-family:var(--ym-body);font-size:1rem;color:var(--ym-navy-800);
}

/* linha de ações: cupom à esquerda, atualizar à direita */
.woocommerce-cart table.cart tr:has(td.actions){display:block;}
.woocommerce-cart table.cart td.actions{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:.7rem;width:auto;padding:1rem 1.25rem;border:0;
  border-top:1px solid var(--ym-line);background:var(--ym-off);
}
.woocommerce-cart table.cart td.actions .coupon{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;min-width:0;
}
.woocommerce-cart table.cart td.actions .coupon label{
  font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ym-gray-500);margin:0;
}
.woocommerce-cart table.cart td.actions .coupon .input-text{
  width:190px;min-height:46px;padding:0 1.1rem;
  border:1px solid var(--ym-line);border-radius:100px;background:#fff;
}

/* resumo */
.woocommerce-cart .cart-collaterals{width:auto;margin:0;}
.woocommerce-cart .cart-collaterals::after{content:none;}
.woocommerce-cart .cart_totals{
  width:auto;float:none;
  background:var(--ym-off);border:1px solid var(--ym-line);
  border-radius:var(--ym-radius-lg);padding:clamp(1.4rem,3vw,1.9rem);
}
.woocommerce-cart .cart_totals h2{font-size:1.15rem;margin-bottom:1rem;}
/* O resumo deixa de ser tabela.
   Com os Correios, a linha do frete tem três opções de rótulo longo e ainda
   a calculadora de CEP. Numa coluna de 40% isso vira uma palavra por linha.
   Mexer só naquele <tr> não adianta: as outras linhas continuam sendo tabela
   e são elas que fixam a largura das colunas. Então o bloco inteiro vira
   flex — cada linha é rótulo à esquerda, valor à direita, e a do frete
   empilha. */
.woocommerce-cart .cart_totals table.shop_table,
.woocommerce-cart .cart_totals table.shop_table tbody{
  display:block;width:100%;border:0;background:transparent;border-radius:0;
  margin:0;overflow:visible;
}
.woocommerce-cart .cart_totals table.shop_table tr{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.75rem 0;border-bottom:1px solid var(--ym-line);
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  display:block;width:auto;padding:0;border:0;background:transparent;
  vertical-align:baseline;
}
.woocommerce-cart .cart_totals table.shop_table th{
  flex:none;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:400;
  color:var(--ym-gray-700);text-align:left;
}
.woocommerce-cart .cart_totals table.shop_table td{text-align:right;min-width:0;}

/* frete: rótulo em cima, opções embaixo, largura inteira */
.woocommerce-cart .cart_totals table.shop_table tr.shipping{
  flex-direction:column;align-items:stretch;gap:.5rem;
}
.woocommerce-cart .cart_totals table.shop_table tr.shipping td{text-align:left;}

.woocommerce-cart .cart_totals .order-total{border-bottom:0;padding-top:1.1rem;}
.woocommerce-cart .cart_totals .order-total th{
  font-family:var(--ym-display);font-size:1.15rem;color:var(--ym-navy-800);
}
.woocommerce-cart .cart_totals .order-total .amount{
  font-family:var(--ym-display);font-size:1.5rem;font-weight:500;
  letter-spacing:-.03em;color:var(--ym-navy-800);white-space:nowrap;
}
/* ---- Frete ----------------------------------------------------------------
   Os Correios devolvem rótulos longos ("PAC — Encomenda econômica: R$ 24,90,
   entrega em até 8 dias úteis"). Numa célula de tabela alinhada à direita,
   com ~40% da largura, isso vira uma coluna de uma palavra por linha. Então a
   linha do frete deixa de ser par rótulo/valor e passa a ocupar a largura
   inteira do resumo, com as opções empilhadas à esquerda. */
.woocommerce ul#shipping_method{list-style:none;padding:0;margin:0;text-align:left;}
.woocommerce ul#shipping_method li{
  display:grid;grid-template-columns:18px minmax(0,1fr);gap:.55rem;
  align-items:start;margin:0 0 .55rem;
}
.woocommerce ul#shipping_method li:last-child{margin-bottom:0;}
.woocommerce ul#shipping_method li input{margin:.25rem 0 0;}
.woocommerce ul#shipping_method li label{
  margin:0;font-size:.9rem;font-weight:400;line-height:1.45;
  text-transform:none;letter-spacing:0;text-align:left;color:var(--ym-gray-700);
}
.woocommerce ul#shipping_method li label .amount{
  font-weight:600;color:var(--ym-navy-800);white-space:nowrap;
}
.woocommerce ul#shipping_method .amount{font-variant-numeric:tabular-nums;}
.woocommerce p.woocommerce-shipping-contents,
.woocommerce .woocommerce-shipping-destination{
  font-size:.84rem;line-height:1.5;color:var(--ym-gray-500);margin:.6rem 0 0;
}
.woocommerce .shipping-calculator-button{
  display:inline-block;margin-top:.35rem;
  font-size:.84rem;color:var(--ym-orange);text-decoration:underline;
}

/* a calculadora, quando aberta */
.woocommerce .shipping-calculator-form{
  margin:.9rem 0 0;padding:1rem;background:#fff;
  border:1px solid var(--ym-line);border-radius:var(--ym-radius);
}
.woocommerce .shipping-calculator-form .form-row{
  display:block;width:auto;float:none;margin:0 0 .7rem;
}
.woocommerce .shipping-calculator-form .form-row-wide{grid-column:auto;}
.woocommerce .shipping-calculator-form input.input-text,
.woocommerce .shipping-calculator-form select,
.woocommerce .shipping-calculator-form .select2-container{
  width:100% !important;min-height:46px;
}
.woocommerce .shipping-calculator-form .button{width:100%;margin:0;}
.woocommerce .woocommerce-shipping-calculator{margin:0;}
.woocommerce-cart .wc-proceed-to-checkout{padding:1.4rem 0 0;}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{display:flex;margin:0;}

/* carrinho vazio */
.woocommerce .cart-empty{margin-bottom:1.5rem;}
.woocommerce .return-to-shop{margin:0;}


/* aviso de frete grátis no carrinho */
.ym-frete-aviso{
  margin:0 0 1.2rem;padding:.9rem 1.1rem;
  background:var(--ym-orange-soft);border-left:3px solid var(--ym-orange);
  border-radius:0 var(--ym-radius) var(--ym-radius) 0;
  font-size:.92rem;line-height:1.5;
}
.ym-frete-aviso a{color:var(--ym-navy-800);text-decoration:underline;}

/* --------------------------------------------------------------------------
   8. Checkout
   -------------------------------------------------------------------------- */
.woocommerce-checkout form.checkout{margin:0;}
.woocommerce-checkout .col2-set{display:block;width:auto;margin:0;}
.woocommerce-checkout .col2-set::after{content:none;}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2{width:auto;float:none;padding:0;margin:0;}

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields{
  background:#fff;border:1px solid var(--ym-line);border-radius:var(--ym-radius-lg);
  padding:clamp(1.4rem,3vw,2.1rem);margin:0 0 1.2rem;
}
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3{
  font-size:1.15rem;padding-bottom:.9rem;margin-bottom:1.4rem;
  border-bottom:1px solid var(--ym-line);
}
.woocommerce-checkout .woocommerce-shipping-fields > h3#ship-to-different-address{
  border-bottom:0;padding-bottom:0;margin-bottom:0;font-size:1rem;
}
.woocommerce-checkout .woocommerce-shipping-fields:has(> h3#ship-to-different-address:only-child){padding-block:1.2rem;}
.woocommerce-checkout #ship-to-different-address label{
  font-size:1rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ym-navy-800);
}

.woocommerce-checkout #order_review_heading{
  font-family:var(--ym-display);font-size:1.15rem;font-weight:400;letter-spacing:-.03em;
  margin:0 0 1rem;color:var(--ym-navy-800);
}
.woocommerce-checkout #order_review{
  background:var(--ym-off);border:1px solid var(--ym-line);
  border-radius:var(--ym-radius-lg);padding:clamp(1.4rem,3vw,1.9rem);
}
/* mesmo raciocínio do carrinho: sem tabela, o nome do produto e as opções de
   frete param de disputar largura de coluna */
.woocommerce-checkout #order_review table.shop_table,
.woocommerce-checkout #order_review table.shop_table tbody,
.woocommerce-checkout #order_review table.shop_table tfoot{
  display:block;width:100%;border:0;background:transparent;border-radius:0;
  margin:0 0 .4rem;overflow:visible;
}
.woocommerce-checkout #order_review table.shop_table thead{display:none;}
.woocommerce-checkout #order_review table.shop_table tr{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.72rem 0;border-bottom:1px solid var(--ym-line);
}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{
  display:block;width:auto;padding:0;border:0;background:transparent;
}
.woocommerce-checkout #order_review table.shop_table tr.shipping{
  flex-direction:column;align-items:stretch;gap:.5rem;
}
.woocommerce-checkout #order_review table.shop_table tr.shipping td{text-align:left;}
.woocommerce-checkout #order_review td.product-name{
  font-size:.98rem;color:var(--ym-navy-800);line-height:1.45;
}
.woocommerce-checkout #order_review .product-quantity{
  font-weight:400;color:var(--ym-gray-500);
}
.woocommerce-checkout #order_review td.product-total,
.woocommerce-checkout #order_review tfoot td{text-align:right;min-width:0;}
.woocommerce-checkout #order_review tfoot th{
  text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:400;
  color:var(--ym-gray-700);background:transparent;
}
.woocommerce-checkout #order_review .order-total{border-bottom:0;padding-top:1rem;}
.woocommerce-checkout #order_review .order-total th{
  font-family:var(--ym-display);font-size:1.15rem;color:var(--ym-navy-800);
}
.woocommerce-checkout #order_review .order-total .amount{
  font-family:var(--ym-display);font-size:1.55rem;font-weight:500;
  letter-spacing:-.03em;color:var(--ym-navy-800);
}

/* pagamento */
.woocommerce-checkout #payment{
  background:#fff;border:1px solid var(--ym-line);border-radius:var(--ym-radius-lg);
  margin-top:1.4rem;padding:0;
}
.woocommerce-checkout #payment ul.payment_methods{
  border-bottom:1px solid var(--ym-line);padding:1.1rem;margin:0;list-style:none;
}
.woocommerce-checkout #payment ul.payment_methods li{
  list-style:none;padding:0;border:1px solid var(--ym-line);background:#fff;
  border-radius:var(--ym-radius);margin:0 0 .6rem;transition:border-color .2s,box-shadow .2s;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child{margin-bottom:0;}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){
  border-color:var(--ym-navy-800);box-shadow:0 0 0 1px var(--ym-navy-800);
}
.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"]{
  position:absolute;opacity:0;pointer-events:none;
}
.woocommerce-checkout #payment ul.payment_methods li label{
  display:flex;align-items:center;gap:.7rem;margin:0;padding:1rem 1.1rem;cursor:pointer;
  font-size:1rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ym-navy-800);
}
.woocommerce-checkout #payment ul.payment_methods li label::before{
  content:"";flex:none;width:18px;height:18px;border-radius:50%;
  border:1.5px solid var(--ym-line);background:#fff;transition:all .2s;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) label::before{
  border-color:var(--ym-orange);background:var(--ym-orange);box-shadow:inset 0 0 0 3px #fff;
}
.woocommerce-checkout #payment ul.payment_methods li img{max-height:24px;width:auto;margin-left:auto;}
.woocommerce-checkout #payment div.payment_box{
  background:var(--ym-off);border-radius:0 0 var(--ym-radius) var(--ym-radius);
  margin:0;padding:1rem 1.1rem;
  font-size:.92rem;line-height:1.6;color:var(--ym-gray-700);
}
.woocommerce-checkout #payment div.payment_box p:last-child{margin-bottom:0;}
.woocommerce-checkout #payment div.payment_box::before{content:none;}
.woocommerce-checkout #payment div.form-row.place-order{padding:1.2rem;margin:0;}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{margin-bottom:1rem;}
.woocommerce-checkout #payment #place_order{float:none;margin:0;}
.woocommerce-privacy-policy-text p{font-size:.84rem;line-height:1.6;color:var(--ym-gray-500);margin:0;}
.woocommerce-privacy-policy-text a{color:var(--ym-orange);text-decoration:underline;}

/* login e cupom no topo do checkout */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle{margin-bottom:1.2rem;}
.woocommerce-checkout form.login,
.woocommerce-checkout form.checkout_coupon{
  border:1px solid var(--ym-line);border-radius:var(--ym-radius-lg);
  padding:clamp(1.3rem,3vw,1.9rem);margin:0 0 1.5rem;background:#fff;
}

/* recebido */
.woocommerce-order .woocommerce-thankyou-order-received{
  font-family:var(--ym-display);font-size:clamp(1.5rem,3vw,2.1rem);font-weight:300;
  letter-spacing:-.03em;color:var(--ym-navy-800);margin-bottom:1.6rem;
}
.woocommerce ul.woocommerce-thankyou-order-details{
  display:flex;flex-wrap:wrap;gap:1.6rem;list-style:none;padding:1.3rem 1.5rem;margin:0 0 2rem;
  background:var(--ym-off);border:1px solid var(--ym-line);border-radius:var(--ym-radius-lg);
}
.woocommerce ul.woocommerce-thankyou-order-details li{
  border:0;font-size:.7rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ym-gray-500);
}
.woocommerce ul.woocommerce-thankyou-order-details li strong{
  display:block;margin-top:.35rem;font-family:var(--ym-display);font-size:1.1rem;
  font-weight:500;letter-spacing:-.02em;text-transform:none;color:var(--ym-navy-800);
}

/* --------------------------------------------------------------------------
   9. Minha conta, login e cadastro
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce{width:auto;}
.woocommerce-account .u-columns,
.woocommerce-account #customer_login{display:grid;grid-template-columns:1fr;gap:clamp(1.4rem,3vw,2.2rem);}
.woocommerce-account .u-columns::after,
.woocommerce-account .u-column1,
.woocommerce-account .u-column2{width:auto;float:none;}
.woocommerce-account .u-columns::after{content:none;}
.woocommerce-account .u-column1 h2,
.woocommerce-account .u-column2 h2{font-size:1.2rem;margin-bottom:1rem;}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password{
  border:1px solid var(--ym-line);border-radius:var(--ym-radius-lg);
  padding:clamp(1.5rem,3vw,2.2rem);margin:0;background:#fff;
}
.woocommerce-account .u-column2 form.register{background:var(--ym-off);}
.woocommerce form.login .form-row,
.woocommerce form.register .form-row{margin-bottom:1.1rem;}
/* a linha que tem o botão: :last-of-type erra o alvo porque o "perdeu a
   senha?" também é um <p> — o que interessa é a linha que contém o botão */
.woocommerce form.login p.form-row:has(button),
.woocommerce form.register p.form-row:has(button){
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:0;
}
.woocommerce .woocommerce-form-login__rememberme{margin:0;}
.woocommerce .lost_password{font-size:.88rem;margin:1rem 0 0;}
.woocommerce .lost_password a{color:var(--ym-orange);text-decoration:underline;}

/* painel */
.woocommerce-account.logged-in .woocommerce{display:grid;grid-template-columns:1fr;gap:2rem;}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content{width:auto;float:none;}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;}
.woocommerce-account .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--ym-line);}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;padding:.85rem 0;font-size:.95rem;color:var(--ym-gray-700);transition:color .2s;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{color:var(--ym-navy-800);}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--ym-navy-800);font-weight:600;}
.woocommerce-account .woocommerce-MyAccount-content > p{color:var(--ym-gray-700);}
.woocommerce-account .woocommerce-MyAccount-content a{color:var(--ym-orange);text-decoration:underline;}
.woocommerce-account .woocommerce-MyAccount-content a.button{text-decoration:none;}
.woocommerce-account .addresses .title h3{margin-bottom:.6rem;}
.woocommerce-EditAccountForm fieldset{
  grid-column:1 / -1;border:1px solid var(--ym-line);border-radius:var(--ym-radius);
  padding:1.4rem;margin:1.4rem 0 0;
}
.woocommerce-orders-table__cell-order-actions .button{padding:.6rem 1.2rem;font-size:.78rem;}

/* --------------------------------------------------------------------------
   10. Avisos
   -------------------------------------------------------------------------- */
/* o WooCommerce marca o padding destes com !important e desenha um ícone no
   ::before — por isso o padding daqui também precisa de !important */
.ym-loja .woocommerce-message,
.ym-loja .woocommerce-info,
.ym-loja .woocommerce-error,
.ym-loja .woocommerce-noreviews{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  border:1px solid var(--ym-line);border-top:1px solid var(--ym-line);
  border-left:3px solid var(--ym-orange);
  border-radius:0 var(--ym-radius) var(--ym-radius) 0;
  background:var(--ym-orange-soft);color:var(--ym-navy-700);
  font-size:.95rem;line-height:1.5;margin:0 0 1.5rem;list-style:none;
  padding:1.1rem 1.4rem !important;
}
.ym-loja .woocommerce-message::before,
.ym-loja .woocommerce-info::before,
.ym-loja .woocommerce-error::before{content:none;display:none;}
.ym-loja .woocommerce-message a:not(.button),
.ym-loja .woocommerce-info a:not(.button){color:var(--ym-navy-800);text-decoration:underline;}
.ym-loja .woocommerce-error{
  border-left-color:#C0392B;background:#FDECEA;flex-direction:column;align-items:flex-start;
}
.ym-loja .woocommerce-error li{width:100%;}
.ym-loja .woocommerce-message .button,
.ym-loja .woocommerce-info .button{margin:0;padding:.62rem 1.3rem;font-size:.8rem;order:2;}

/* --------------------------------------------------------------------------
   11. Barra fixa de compra
   -------------------------------------------------------------------------- */
.ym-buybar__price small{
  display:block;font-size:.68rem;color:var(--ym-gray-500);
  letter-spacing:.1em;text-transform:uppercase;
}
.ym-buybar__price strong{
  font-family:var(--ym-display);font-size:1.2rem;font-weight:500;letter-spacing:-.03em;
}
.ym-buybar__price strong .amount{font-family:inherit;}
.ym-buybar.has-cart{border-top-color:var(--ym-navy-800);}
@media (min-width:768px){
  .ym-buybar.has-cart{display:block;}
  .ym-buybar.has-cart .ym-buybar__inner{
    max-width:1240px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem);
  }
}
/* nas páginas da loja a barra não aparece: o CTA já está na tela */
.ym-loja .ym-buybar{display:none !important;}

/* kit que está no carrinho */
.ym-kit.is-no-carrinho{border-color:var(--ym-orange);box-shadow:0 0 0 1px var(--ym-orange);}
.ym-kit.is-out{opacity:.5;}
.ym-kit__cta{cursor:pointer;}

/* --------------------------------------------------------------------------
   12. Duas colunas — a partir de 992px
   -------------------------------------------------------------------------- */
@media (min-width:992px){

  /* Carrinho: itens | resumo grudado.
     Flex, e não grid com posição fixa por célula: dentro de .woocommerce o
     plugin (e o próprio tema, com a trilha de etapas) imprime filhos que eu
     não controlo. Aqui a regra padrão é "ocupe a linha inteira", e só o
     formulário e o resumo optam por dividir a linha — o que aparecer de novo
     entra embaixo em vez de roubar uma coluna. */
  .woocommerce-cart .woocommerce:has(> form.woocommerce-cart-form){
    display:flex;flex-wrap:wrap;align-items:flex-start;
    column-gap:clamp(1.8rem,3vw,2.6rem);
  }
  .woocommerce-cart .woocommerce > *{flex:0 0 100%;min-width:0;}
  .woocommerce-cart .woocommerce > form.woocommerce-cart-form{
    flex:1 1 0;min-width:min(100%,460px);
  }
  .woocommerce-cart .woocommerce > .cart-collaterals{
    flex:0 1 clamp(320px,30%,400px);position:sticky;top:7.5rem;
  }

  /* checkout: dados | resumo grudado */
  .woocommerce-checkout form.checkout{
    display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);
    /* a primeira linha é só o título do resumo: sem min-content, o navegador
       distribui a altura da coluna da esquerda entre as duas linhas e abre um
       buraco enorme entre "Seu pedido" e a caixa */
    grid-template-rows:min-content 1fr;
    column-gap:clamp(1.8rem,3.5vw,3rem);align-items:start;
  }
  .woocommerce-checkout form.checkout > #customer_details{grid-column:1;grid-row:1 / span 2;}
  .woocommerce-checkout form.checkout > #order_review_heading{grid-column:2;grid-row:1;}
  .woocommerce-checkout form.checkout > #order_review{
    grid-column:2;grid-row:2;align-self:start;position:sticky;top:7.5rem;
  }

  /* conta: entrar | criar conta */
  .woocommerce-account .u-columns,
  .woocommerce-account #customer_login{grid-template-columns:1fr 1fr;}

  /* painel: menu | conteúdo */
  .woocommerce-account.logged-in .woocommerce{
    grid-template-columns:230px minmax(0,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:start;
  }
  .woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper{grid-column:1 / -1;}
}

/* --------------------------------------------------------------------------
   13. Telas menores
   -------------------------------------------------------------------------- */
@media (max-width:991.98px){
  .woocommerce-cart .cart-collaterals{margin-top:1.8rem;}
  .woocommerce-checkout #order_review_heading{margin-top:1.5rem;}
}

@media (max-width:767.98px){
  .ym-loja__main{padding-top:7rem;}

  /* os campos viram uma coluna só */
  .woocommerce .woocommerce-billing-fields__field-wrapper,
  .woocommerce .woocommerce-shipping-fields__field-wrapper,
  .woocommerce .woocommerce-additional-fields__field-wrapper,
  .woocommerce .woocommerce-address-fields__field-wrapper,
  .woocommerce-EditAccountForm{grid-template-columns:minmax(0,1fr);}
  .woocommerce .form-row-first,
  .woocommerce .form-row-last,
  .woocommerce .form-row-wide,
  #billing_postcode_field,
  #shipping_postcode_field,
  #billing_persontype_field{grid-column:1;}

  /* ---- itens: a mesma grade, empilhada ---- */
  .woocommerce-cart table.cart tr.cart_item{
    grid-template-columns:72px minmax(0,1fr) 30px;
    column-gap:.9rem;row-gap:.5rem;padding:1rem;
  }
  .woocommerce-cart table.cart td.product-thumbnail{grid-column:1;grid-row:1;}
  .woocommerce-cart table.cart td.product-name{grid-column:2;grid-row:1;}
  .woocommerce-cart table.cart td.product-remove{grid-column:3;grid-row:1;align-self:start;}
  .woocommerce-cart table.cart td.product-price{grid-column:1 / -1;grid-row:2;}
  .woocommerce-cart table.cart td.product-quantity{grid-column:1 / -1;grid-row:3;}
  .woocommerce-cart table.cart td.product-subtotal{grid-column:1 / -1;grid-row:4;}
  /* precisa bater a especificidade de tr.cart_item td, que é display:block */
  .woocommerce-cart table.cart tr.cart_item td.product-price,
  .woocommerce-cart table.cart tr.cart_item td.product-quantity,
  .woocommerce-cart table.cart tr.cart_item td.product-subtotal{
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    padding-top:.5rem;border-top:1px solid var(--ym-line);text-align:left;
  }
  .woocommerce-cart table.cart tr.cart_item td.product-price::before,
  .woocommerce-cart table.cart tr.cart_item td.product-quantity::before,
  .woocommerce-cart table.cart tr.cart_item td.product-subtotal::before{margin-bottom:0;}
  .woocommerce-cart table.cart td.product-thumbnail img{width:72px;height:72px;}
  .woocommerce-cart table.cart td.product-name a{font-size:1rem;}

  /* cupom: uma coluna */
  .woocommerce-cart table.cart td.actions{
    flex-direction:column;align-items:stretch;padding:1rem;
  }
  .woocommerce-cart table.cart td.actions .coupon{width:100%;flex-wrap:nowrap;}
  .woocommerce-cart table.cart td.actions .coupon label{display:none;}
  .woocommerce-cart table.cart td.actions .coupon .input-text{
    flex:1 1 auto;width:auto;min-width:0;
  }
  .woocommerce-cart table.cart td.actions .coupon button{flex:none;padding-inline:1.2rem;}
  .woocommerce-cart table.cart td.actions button[name="update_cart"]{width:100%;}

  /* a tabela de pedidos da conta vira lista */
  .woocommerce table.woocommerce-orders-table,
  .woocommerce table.woocommerce-orders-table tbody{display:block;}
  .woocommerce table.woocommerce-orders-table thead{display:none;}
  .woocommerce table.woocommerce-orders-table tbody tr{
    display:block;border-top:1px solid var(--ym-line);
  }
  .woocommerce table.woocommerce-orders-table tbody tr:first-child{border-top:0;}
  .woocommerce table.woocommerce-orders-table tbody td{
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    width:auto;padding:.55rem 1.1rem;border-top:0;text-align:right;
  }
  .woocommerce table.woocommerce-orders-table tbody td::before{
    content:attr(data-title);flex:none;
    font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--ym-gray-500);
  }

  /* totais: continua tabela, só encolhe */
  .woocommerce-cart .cart_totals table.shop_table th{width:auto;font-size:.92rem;}
  /* a linha do frete já é um bloco alinhado à esquerda */
  .woocommerce .woocommerce-shipping-destination{text-align:left;}

  .woocommerce ul.woocommerce-thankyou-order-details{flex-direction:column;gap:1rem;}

  /* trilha de etapas */
  .ym-passos{gap:.4rem;}
  .ym-passos li{font-size:.64rem;letter-spacing:.08em;}
  .ym-passos li + li::before{width:12px;margin-right:.15rem;}
  .ym-passos li span{width:22px;height:22px;font-size:.66rem;}

  /* nada pode empurrar a página para os lados */
  .ym-loja__main{overflow-x:hidden;}
  .woocommerce table.shop_table{max-width:100%;}
}

/* --------------------------------------------------------------------------
   11. LOGIN NO CHECKOUT

   O formulário existe desde sempre, mas só agora abre de verdade — e aberto
   ele estava pobre: dois campos esticados na largura toda, um abaixo do
   outro, com o botão e o "lembrar-me" empilhados sem hierarquia. Parecia um
   pedaço solto de outra página caindo no meio da compra.

   Ele não usa o mesmo grid do endereço, então as regras de lá não o alcançam.
   Aqui ele ganha a mesma forma: dois campos por linha, e a linha do botão
   como uma barra separada do resto.
   -------------------------------------------------------------------------- */
.woocommerce-checkout form.login{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:1rem;align-items:start;
}
/* o texto de introdução e a linha do botão atravessam as duas colunas */
.woocommerce-checkout form.login > p:not(.form-row),
.woocommerce-checkout form.login > .clear,
.woocommerce-checkout form.login p.form-row:has(button),
.woocommerce-checkout form.login .lost_password{grid-column:1 / -1;}

.woocommerce-checkout form.login > p:first-child{
  margin:0 0 1.4rem;padding-bottom:1.2rem;border-bottom:1px solid var(--ym-line);
  font-size:.95rem;line-height:1.65;color:var(--ym-gray-700);
}
.woocommerce-checkout form.login .form-row{margin-bottom:1.1rem;}

/* a linha do botão: "lembrar-me" à esquerda, botão à direita, separados do
   que vem acima */
.woocommerce-checkout form.login p.form-row:has(button){
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1rem;margin:.4rem 0 0;padding-top:1.2rem;border-top:1px solid var(--ym-line);
}
.woocommerce-checkout form.login .woocommerce-form-login__submit{margin:0;}
.woocommerce-checkout form.login .lost_password{margin:.9rem 0 0;font-size:.88rem;}
/* o .clear do WooCommerce é resto do layout de float e vira uma linha vazia */
.woocommerce-checkout form.login > .clear{display:none;}

@media (max-width:767.98px){
  .woocommerce-checkout form.login{grid-template-columns:minmax(0,1fr);}
}

/* --------------------------------------------------------------------------
   12. CRIAR CONTA NO CHECKOUT

   A caixa de "criar uma conta" é a última coisa antes do pagamento. Como ela
   nasce como uma linha solta de checkbox, ganha aqui a mesma caixa dos outros
   blocos — e o texto de apoio logo abaixo, em vez de flutuando.
   -------------------------------------------------------------------------- */
.woocommerce-checkout .woocommerce-account-fields{
  margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--ym-line);
}
.woocommerce-checkout .woocommerce-account-fields .create-account{margin:0;}
.woocommerce-checkout .woocommerce-account-fields > .create-account{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:1rem;margin-top:1.2rem;
}
.woocommerce-checkout .woocommerce-account-fields > .create-account > .form-row{grid-column:1 / -1;}
.ym-conta-nota{
  margin:.7rem 0 0;padding-left:1.9rem;
  font-size:.88rem;line-height:1.6;color:var(--ym-gray-500);
}
@media (max-width:767.98px){
  .woocommerce-checkout .woocommerce-account-fields > .create-account{grid-template-columns:minmax(0,1fr);}
}
