/* Checkout Operação Portugal: coluna única, cartões brancos, passos numerados. */
:root {
  --tinta: #1A1A1A;
  --tinta-2: #3D3A37;
  --cinza: #817367;
  --cinza-claro: #A9A7A5;
  --linha: #E0DAD6;
  --linha-forte: #C6BEB8;
  --suave: #F8F7F6;
  --pagina: #FFFFFF;
  --branco: #fff;

  --verde: #0a7d47;
  --verde-escuro: #07653a;
  --verde-fundo: #eaf6ef;
  --verde-linha: #bfe6cf;
  --ambar: #b45309;
  --ambar-fundo: #fdf3e3;
  --ambar-linha: #f2d8a8;
  --vermelho: #c0392b;
  --vermelho-fundo: #fdf0ee;

  /* a cor da marca vem de loja.js (o JS reescreve estas duas e as versões transparentes) */
  --azul: #1A1A1A;
  --azul-escuro: #333333;
  --azul-rgb: 26, 26, 26;

  --raio: 12px;
  --raio-p: 8px;
  --fonte: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --sombra-cartao: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .06);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
  min-height: 100%;
  background: var(--pagina);
  color: var(--tinta);
  font-family: var(--fonte);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  overflow-x: clip;
  overscroll-behavior-x: none;
}
body { touch-action: pan-y; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
img { display: block; }
[hidden] { display: none !important; }
s { text-decoration-thickness: 1px; }

/* ---------- Topo fixo ---------- */
.ck-topo { position: sticky; top: 0; z-index: 60; box-shadow: 0 2px 10px rgba(16, 24, 40, .08); }
.ck-header {
  background: var(--pagina);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 14px 22px; min-height: 64px;
}
.ck-voltar {
  justify-self: start; display: inline-flex; align-items: center; gap: 6px;
  color: var(--cinza); font-size: 13.5px; font-weight: 500; padding: 6px 0; transition: color .15s;
}
.ck-voltar:hover { color: var(--tinta); }
.ck-voltar svg { width: 16px; height: 16px; }
.ck-marca { justify-self: center; display: flex; align-items: center; }
.ck-marca img { height: 40px; width: auto; max-width: 200px; object-fit: contain; }
.ck-marca-txt {
  font-size: 19px; font-weight: 900; letter-spacing: .04em; color: var(--tinta);
  text-transform: uppercase; white-space: nowrap;
}
.ck-marca-txt i { font-style: normal; color: var(--azul); }
.ck-seguro { justify-self: end; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--cinza); }
.ck-seguro svg { width: 14px; height: 14px; color: var(--verde); }

@media (max-width: 560px) {
  .ck-header { padding: 12px 14px; min-height: 56px; }
  .ck-marca img { height: 30px; max-width: 150px; }
  .ck-marca-txt { font-size: 16px; }
  .ck-voltar span, .ck-seguro span { display: none; }
}

/* Faixa dos portes grátis */
.ck-faixa {
  background: linear-gradient(180deg, var(--azul) 0%, var(--azul-escuro) 100%);
  color: #fff; border-bottom: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 2px 8px rgba(var(--azul-rgb), .2);
}
.ck-faixa-in {
  max-width: 720px; margin: 0 auto; padding: 10px 16px;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 13px; font-weight: 600; line-height: 1.35; text-align: center;
}
.ck-faixa-ico { width: 16px; height: 16px; flex-shrink: 0; }
.ck-faixa-local { font-weight: 800; text-transform: uppercase; letter-spacing: .02em; white-space: nowrap; }
.ck-faixa-prazo { font-weight: 500; opacity: .95; }
@media (max-width: 480px) {
  .ck-faixa-in { font-size: 11.5px; padding: 9px 10px; gap: 6px; }
  .ck-faixa-ico { width: 14px; height: 14px; }
}
@media (max-width: 380px) { .ck-faixa-prazo { display: none; } }

/* Barra do desconto aplicado */
.ck-promo { background: rgba(var(--azul-rgb), .1); border-bottom: 1px solid rgba(var(--azul-rgb), .16); color: var(--azul-escuro); }
.ck-promo-in {
  max-width: 720px; margin: 0 auto; padding: 8px 16px;
  display: flex; align-items: center; justify-content: center; gap: 7px;
  font-size: 12px; font-weight: 600; text-align: center; line-height: 1.35;
}

/* ---------- Estrutura ---------- */
.ck-wrap { max-width: 720px; margin: 0 auto; padding: 8px 16px 40px; }
.ck-card {
  background: var(--branco); border: 1px solid var(--linha);
  border-radius: var(--raio); box-shadow: var(--sombra-cartao); overflow: hidden;
}
.ck-card, .ck-sec { scroll-margin-top: 130px; }

/* ---------- Resumo do topo ---------- */
.ck-resumo-topo {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 16px 20px; text-align: left; background: var(--branco); transition: background .15s;
}
.ck-resumo-topo:hover { background: var(--suave); }
.ck-resumo-prod { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ck-thumb {
  width: 46px; height: 46px; border-radius: 8px; object-fit: cover; flex-shrink: 0;
  border: 1px solid var(--linha); background: var(--suave);
}
.ck-resumo-nomes { display: flex; flex-direction: column; min-width: 0; }
.ck-resumo-nome { font-size: 14px; font-weight: 600; color: var(--tinta); line-height: 1.3; }
.ck-resumo-var { font-size: 12px; color: var(--cinza); margin-top: 1px; }
.ck-resumo-var:empty { display: none; }
.ck-chevron { width: 16px; height: 16px; flex-shrink: 0; color: var(--cinza); transition: transform .2s ease; }
.ck-resumo-topo[aria-expanded="true"] .ck-chevron { transform: rotate(180deg); }
.ck-resumo-valor { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; }
.ck-resumo-antigo { font-size: 12px; color: var(--cinza-claro); }
.ck-resumo-antigo:empty { display: none; }
.ck-resumo-total { font-size: 15px; font-weight: 700; white-space: nowrap; }
.ck-resumo-corpo { border-top: 1px solid var(--linha); padding: 12px 20px 16px; }
.ck-opcoes-produto { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.ck-opcoes-produto label { display: grid; gap: 6px; font-size: 13px; font-weight: 600; min-width: 0; }
.ck-opcoes-produto select { width: 100%; min-height: 44px; padding: 8px; border: 1px solid var(--linha); border-radius: 8px; background: var(--branco); color: var(--tinta); font: inherit; font-size: 16px; }
.ck-opcoes-produto select:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; }
.ck-linha { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 7px 0; font-size: 13.5px; }
.ck-linha + .ck-linha { border-top: 1px solid var(--linha); }
.ck-linha b { color: var(--cinza); font-weight: 500; }
.ck-linha span { text-align: right; font-weight: 600; max-width: 62%; }
.ck-linha-total b { color: var(--tinta); font-weight: 700; }
.ck-linha-total span { font-size: 15px; font-weight: 800; }
.ck-verde { color: var(--verde) !important; font-weight: 700; }

/* ---------- Formulário ---------- */
.ck-form { margin-top: 16px; position: relative; }
.ck-progresso { height: 3px; background: var(--linha); overflow: hidden; }
.ck-progresso i {
  display: block; height: 100%; width: 12%;
  background: linear-gradient(90deg, var(--azul), rgba(var(--azul-rgb), .7));
  border-radius: 0 3px 3px 0; box-shadow: 0 0 8px rgba(var(--azul-rgb), .4);
  transition: width .6s cubic-bezier(.4, 0, .2, 1);
}

.ck-passos {
  list-style: none; display: flex; align-items: center; justify-content: center;
  padding: 16px 14px 14px; border-bottom: 1px solid var(--linha);
}
.ck-passo { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 10px; transition: background .15s; }
.ck-passo.is-feito { cursor: pointer; }
.ck-passo.is-feito:hover { background: var(--suave); }
.ck-passo-num {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 12.5px; font-weight: 700; background: var(--linha); color: var(--cinza);
  position: relative; transition: background .25s, color .25s, box-shadow .25s;
}
.ck-passo-nome { font-size: 13px; font-weight: 600; color: var(--cinza-claro); white-space: nowrap; }
.ck-passo.is-on .ck-passo-num { background: var(--azul); color: #fff; box-shadow: 0 0 0 4px rgba(var(--azul-rgb), .15); }
.ck-passo.is-on .ck-passo-nome { color: var(--tinta); font-weight: 700; }
.ck-passo.is-feito .ck-passo-num { background: var(--verde); color: transparent; }
.ck-passo.is-feito .ck-passo-num::after {
  content: ""; position: absolute; width: 6px; height: 10px;
  border: solid #fff; border-width: 0 2.2px 2.2px 0; transform: rotate(45deg) translate(-1px, -1px);
}
.ck-passo.is-feito .ck-passo-nome { color: var(--tinta-2); }
.ck-passo-traco { flex: 1 1 auto; height: 2px; background: var(--linha); margin: 0 6px; min-width: 16px; max-width: 72px; border-radius: 2px; transition: background .3s; }
.ck-passo-traco.is-feito { background: var(--verde); }
@media (max-width: 479px) {
  .ck-passos { padding: 14px 8px 12px; }
  .ck-passo { gap: 6px; padding: 4px; }
  .ck-passo-num { width: 23px; height: 23px; font-size: 11.5px; }
  .ck-passo-nome { font-size: 11.5px; }
  .ck-passo-traco { margin: 0 4px; min-width: 10px; }
}
@media (max-width: 359px) { .ck-passo:not(.is-on) .ck-passo-nome { display: none; } }
@media (min-width: 900px) {
  .ck-passos { padding: 20px 24px 16px; }
  .ck-passo-num { width: 28px; height: 28px; font-size: 13px; }
  .ck-passo-nome { font-size: 13.5px; }
  .ck-passo-traco { margin: 0 8px; min-width: 30px; max-width: 80px; }
}

/* Secções (só a atual fica aberta; as feitas viram uma linha com "Editar") */
.ck-sec { padding: 0 22px; }
.ck-sec + .ck-sec { border-top: 1px solid var(--linha); }
.ck-sec.is-proxima { display: none; }
.ck-sec.is-atual { padding: 22px 22px 26px; animation: ckEntra .3s ease; }
@keyframes ckEntra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.ck-sec-tit { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
.ck-sec-num {
  width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; color: #fff; background: var(--azul);
}
.ck-sec-nome { flex: 1; }
.ck-sec-sub { font-size: 13px; color: var(--cinza); margin: 3px 0 0 32px; }
.ck-sec-editar { display: none; font-size: 13px; font-weight: 600; color: var(--azul); padding: 0; }
.ck-sec-resumo { display: none; }
.ck-sec-corpo { margin-top: 16px; }

.ck-sec.is-feita { padding: 0; cursor: pointer; background: var(--suave); }
.ck-sec.is-feita .ck-sec-tit { font-size: 14px; font-weight: 600; color: var(--tinta-2); padding: 12px 22px 0; gap: 9px; }
.ck-sec.is-feita .ck-sec-num { width: 18px; height: 18px; font-size: 11px; background: var(--verde); }
.ck-sec.is-feita .ck-sec-editar { display: inline-block; }
.ck-sec.is-feita:hover .ck-sec-editar { text-decoration: underline; text-underline-offset: 2px; }
.ck-sec.is-feita .ck-sec-sub, .ck-sec.is-feita .ck-sec-corpo { display: none; }
.ck-sec.is-feita .ck-sec-resumo {
  display: block; padding: 3px 22px 12px 49px; font-size: 12.5px; color: var(--cinza);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Campos */
.ck-campo { margin-bottom: 16px; }
.ck-rotulo { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.ck-obr { color: var(--vermelho); margin-left: 2px; }
.ck-opc { color: var(--cinza-claro); font-weight: 400; }
.ck-dica { font-size: 11.5px; color: var(--cinza-claro); margin-top: 5px; line-height: 1.4; }
.ck-input {
  width: 100%; height: 48px; padding: 0 14px;
  border: 1px solid var(--linha-forte); border-radius: var(--raio-p);
  font: inherit; font-size: 16px; color: var(--tinta); background: #fff;
  outline: none; transition: border-color .15s, box-shadow .15s;
  -webkit-appearance: none; appearance: none;
}
.ck-input::placeholder { color: #a3a8b1; }
.ck-input:hover { border-color: var(--cinza); }
.ck-input:focus { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(var(--azul-rgb), .12); }
.ck-input.is-erro { border-color: var(--vermelho); box-shadow: 0 0 0 3px rgba(192, 57, 43, .1); }
.ck-campo-erro { color: var(--vermelho); font-size: 12px; line-height: 1.5; margin: 6px 0 0; }
.ck-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 479px) { .ck-duas { grid-template-columns: 1fr; gap: 16px; } }

/* País (segmentado) */
.ck-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; background: var(--suave); border: 1px solid var(--linha); border-radius: 10px; padding: 4px; }
.ck-seg button {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  height: 40px; border-radius: 7px; font-size: 14px; font-weight: 600; color: var(--cinza);
  transition: background .15s, color .15s, box-shadow .15s;
}
.ck-seg button[aria-checked="true"] { background: #fff; color: var(--tinta); box-shadow: 0 1px 3px rgba(16, 24, 40, .12); }
.ck-seg .ck-bandeira { width: 20px; height: 14px; }

/* Estado do código postal */
.ck-cp {
  display: flex; align-items: flex-start; gap: 7px; margin: -6px 0 16px;
  font-size: 12.5px; line-height: 1.45; padding: 9px 11px; border-radius: 6px;
}
.ck-cp svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 1px; }
.ck-cp[data-estado="procura"] { background: var(--suave); color: var(--cinza); border: 1px solid var(--linha); }
.ck-cp[data-estado="ok"] { background: var(--verde-fundo); color: var(--verde); border: 1px solid var(--verde-linha); }
.ck-cp[data-estado="falha"] { background: var(--ambar-fundo); color: var(--ambar); border: 1px solid var(--ambar-linha); }
.ck-cp-roda { width: 13px; height: 13px; flex-shrink: 0; margin-top: 1px; border: 2px solid var(--linha-forte); border-top-color: var(--cinza); border-radius: 50%; animation: gira .7s linear infinite; }

/* Erro */
.ck-erro {
  background: var(--vermelho-fundo); border: 1px solid #f3c0bb; border-radius: 8px;
  padding: 10px 14px; margin: 2px 0 14px; font-size: 13px; font-weight: 600; color: var(--vermelho);
}

/* Botões */
.ck-btn {
  position: relative; isolation: isolate; overflow: hidden;
  width: 100%; min-height: 60px; border-radius: 22px; padding: 8px 18px;
  background: linear-gradient(180deg, var(--azul) 0%, var(--azul-escuro) 100%); color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  transition: filter .15s; animation: ckPulsa 3.6s ease-in-out infinite; will-change: transform;
}
.ck-btn::after {
  content: ""; position: absolute; inset: -20%; width: 42%; pointer-events: none; z-index: 0;
  background: linear-gradient(115deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.1) 35%, rgba(255,255,255,.42) 50%, rgba(255,255,255,.1) 65%, rgba(255,255,255,0) 100%);
  transform: translate3d(-160%, 0, 0) skewX(-18deg); animation: ckBrilho 3.8s ease-in-out infinite;
}
.ck-btn > * { position: relative; z-index: 1; }
.ck-btn:hover { filter: brightness(.95); }
.ck-btn:active { filter: brightness(.88); }
.ck-btn:focus-visible { outline: 2px solid var(--azul); outline-offset: 3px; }
.ck-btn:disabled { background: #c6c9cc; box-shadow: none; cursor: not-allowed; animation: none; }
.ck-btn:disabled::after, .ck-btn.is-carregando::after { animation: none; opacity: 0; }
.ck-btn.is-carregando { animation: none; cursor: progress; }
.ck-btn-txt { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.ck-btn-principal { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 16px; font-weight: 900; letter-spacing: .02em; line-height: 1.15; text-align: center; }
.ck-btn-principal svg { width: 17px; height: 17px; flex-shrink: 0; }
.ck-btn-sub { font-size: 12px; font-weight: 700; opacity: .95; }
.ck-btn-sub:empty { display: none; }
.ck-btn-roda { display: none; width: 20px; height: 20px; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; animation: gira .7s linear infinite; }
.ck-btn.is-carregando .ck-btn-roda { display: block; }
.ck-btn.is-carregando .ck-btn-txt { display: none; }
.ck-btn-auto { width: auto; min-width: 240px; min-height: 54px; border-radius: 16px; padding: 0 26px; margin: 0 auto; }

@keyframes ckPulsa {
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 14px 30px rgba(var(--azul-rgb), .22); }
  50% { transform: translateY(-1px) scale(1.015); box-shadow: 0 18px 36px rgba(var(--azul-rgb), .3); }
}
@keyframes ckBrilho {
  0% { transform: translate3d(-140%, 0, 0) skewX(-18deg); opacity: 0; }
  12% { opacity: 0; }
  30% { opacity: .38; }
  55% { opacity: .12; }
  100% { transform: translate3d(320%, 0, 0) skewX(-18deg); opacity: 0; }
}
@keyframes gira { to { transform: rotate(360deg); } }

.ck-nav { display: flex; gap: 10px; margin-top: 6px; }
.ck-nav .ck-btn { flex: 1 1 auto; min-width: 0; }
.ck-btn-voltar {
  min-height: 60px; padding: 0 20px; border-radius: 22px; flex-shrink: 0;
  border: 1px solid var(--linha); background: #fff; color: var(--cinza);
  font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 6px;
  transition: border-color .15s, color .15s;
}
.ck-btn-voltar:hover { border-color: var(--linha-forte); color: var(--tinta); }
.ck-btn-voltar svg { width: 16px; height: 16px; }
@media (max-width: 479px) {
  .ck-nav { flex-direction: column-reverse; gap: 8px; }
  .ck-btn-voltar { width: 100%; min-height: 46px; border-radius: 16px; }
  .ck-btn { min-height: 56px; border-radius: 18px; }
  .ck-btn-principal { font-size: 15px; }
  .ck-btn-sub { font-size: 11.5px; }
}
.ck-link { display: block; margin: 12px auto 0; font-size: 13px; color: var(--cinza); text-decoration: underline; text-underline-offset: 2px; }
.ck-link:hover { color: var(--tinta); }

.ck-legal { font-size: 11.5px; color: var(--cinza-claro); text-align: center; margin-top: 12px; line-height: 1.5; }
.ck-legal a { color: var(--cinza); text-decoration: underline; text-underline-offset: 2px; }

/* Resumo no passo 3 */
.ck-pag-resumo { margin-bottom: 18px; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--suave); overflow: hidden; }
.ck-pag-resumo-tit { display: flex; align-items: center; gap: 8px; padding: 12px 16px 9px; font-size: 13px; font-weight: 700; border-bottom: 1px solid var(--linha); }
.ck-pag-resumo-tit svg { width: 16px; height: 16px; color: var(--azul); flex-shrink: 0; }
.ck-pag-linha { display: flex; justify-content: space-between; gap: 10px; padding: 8px 16px; font-size: 13px; }
.ck-pag-linha + .ck-pag-linha { border-top: 1px solid var(--linha); }
.ck-pag-linha b { color: var(--cinza); font-weight: 500; }
.ck-pag-linha span { font-weight: 600; text-align: right; max-width: 62%; word-break: break-word; }
.ck-pag-morada { padding: 10px 16px; border-top: 1px solid var(--linha); background: #fff; }
.ck-pag-morada-tit { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; font-size: 12px; font-weight: 700; color: var(--cinza); text-transform: uppercase; letter-spacing: .05em; }
.ck-pag-morada-tit svg { width: 13px; height: 13px; color: var(--azul); }
.ck-pag-morada-txt { font-size: 13px; line-height: 1.5; }
.ck-pag-total { display: flex; justify-content: space-between; padding: 10px 16px; border-top: 1px solid var(--linha); background: linear-gradient(135deg, rgba(var(--azul-rgb), .06), rgba(var(--azul-rgb), .02)); font-size: 14px; font-weight: 700; }
.ck-pag-total span { color: var(--azul); font-size: 16px; }

/* Item extra (order bump) */
.ck-extra-caixa { margin: 0 0 20px; border: 1.5px dashed rgba(var(--azul-rgb), .45); border-radius: var(--raio); background: linear-gradient(180deg, rgba(var(--azul-rgb), .05), rgba(var(--azul-rgb), .015)); overflow: hidden; }
.ck-extra-cab { display: flex; align-items: center; gap: 7px; padding: 10px 14px 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--azul); }
.ck-extra-cab svg { width: 15px; height: 15px; flex-shrink: 0; }
.ck-extra {
  margin: 0 10px 10px; display: flex; align-items: center; gap: 12px; padding: 10px 14px;
  border: 1px solid rgba(var(--azul-rgb), .28); border-radius: var(--raio-p); background: #fff;
  cursor: pointer; user-select: none; transition: border-color .2s, background .2s;
}
.ck-extra:hover { border-color: var(--azul); }
.ck-extra.is-on { border-color: var(--azul); background: rgba(var(--azul-rgb), .04); }
.ck-extra input { width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--azul); cursor: pointer; }
.ck-extra-img { width: 44px; height: 44px; flex-shrink: 0; border-radius: 6px; overflow: hidden; border: 1px solid var(--linha); background: var(--suave); }
.ck-extra-img img { width: 100%; height: 100%; object-fit: cover; }
.ck-extra-info { display: flex; flex-direction: column; min-width: 0; }
.ck-extra-nome { font-size: 13px; font-weight: 600; line-height: 1.3; }
.ck-selo { display: inline-block; vertical-align: middle; margin-left: 4px; padding: 1px 6px; border-radius: 999px; background: var(--azul); color: #fff; font-size: 10.5px; font-weight: 800; }
.ck-selo:empty { display: none; }
.ck-extra-desc { font-size: 12px; color: var(--cinza); margin-top: 1px; line-height: 1.3; }
.ck-extra-preco { font-size: 12px; margin-top: 3px; }
.ck-extra-preco s { color: var(--cinza); font-size: 11.5px; margin-right: 2px; }
.ck-extra-preco b { color: var(--azul); font-size: 13.5px; }
.ck-extra-rodape { padding: 0 14px 11px; font-size: 11.5px; color: var(--cinza); line-height: 1.4; }

/* Formas de pagamento */
.ck-metodos-tit { font-size: 13px; font-weight: 600; margin-bottom: 10px; }
.ck-metodos { display: grid; grid-template-columns: repeat(var(--n-metodos, 3), 1fr); gap: 10px; margin-bottom: 18px; }
.ck-metodo {
  position: relative; display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 12px 14px;
  border: 1.5px solid var(--linha-forte); border-radius: var(--raio-p); background: #fff;
  cursor: pointer; user-select: none; transition: border-color .15s, background .15s;
}
.ck-metodo:hover { border-color: var(--cinza); }
.ck-metodo input { position: absolute; opacity: 0; width: 0; height: 0; }
.ck-metodo.is-on { border-color: var(--azul); background: rgba(var(--azul-rgb), .04); }
.ck-metodo:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(var(--azul-rgb), .2); }
.ck-metodo-radio {
  width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0; background: #fff;
  border: 1.5px solid var(--linha-forte); display: flex; align-items: center; justify-content: center;
  transition: border-color .15s, background .15s;
}
.ck-metodo-radio svg { width: 11px; height: 11px; color: #fff; opacity: 0; }
.ck-metodo.is-on .ck-metodo-radio { border-color: var(--azul); background: var(--azul); }
.ck-metodo.is-on .ck-metodo-radio svg { opacity: 1; }
.ck-metodo-logo { flex: 1; display: flex; align-items: center; justify-content: center; height: 36px; }
.ck-metodo-logo img { max-height: 36px; max-width: 110px; width: auto; height: auto; }
.ck-metodo-logo img[data-metodo="multibanco"] { max-height: 40px; }
.ck-metodo-info { display: none; }
.ck-metodos.is-erro .ck-metodo { border-color: var(--vermelho); animation: ckTreme .3s ease; }
@keyframes ckTreme { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }
@media (max-width: 559px) {
  .ck-metodos { grid-template-columns: 1fr; gap: 8px; }
  .ck-metodo { min-height: 60px; }
  .ck-metodo-logo { flex: 0 0 76px; justify-content: flex-start; }
  .ck-metodo-logo img { max-width: 76px; max-height: 30px; }
  .ck-metodo-logo img[data-metodo="multibanco"] { max-height: 34px; }
  .ck-metodo-info { display: flex; flex-direction: column; min-width: 0; }
  .ck-metodo-nome { font-size: 14px; font-weight: 700; }
  .ck-metodo-desc { font-size: 12px; color: var(--cinza); line-height: 1.35; }
}

/* Telemóvel com indicativo */
.ck-tel { margin-top: -4px; }
.ck-tel-linha { display: flex; gap: 8px; align-items: stretch; }
.ck-tel-linha .ck-input { flex: 1 1 auto; min-width: 0; width: 0; }
.ck-pais-sel { position: relative; flex-shrink: 0; }
.ck-pais-btn {
  height: 48px; display: flex; align-items: center; gap: 8px; padding: 0 12px;
  border: 1px solid var(--linha-forte); border-radius: var(--raio-p); background: #fff;
  font-size: 15px; font-weight: 600; transition: border-color .15s, box-shadow .15s;
}
.ck-pais-btn:hover { border-color: var(--cinza); }
.ck-pais-btn:focus-visible, .ck-pais-btn.is-aberto { border-color: var(--azul); outline: none; box-shadow: 0 0 0 3px rgba(var(--azul-rgb), .12); }
.ck-pais-seta { width: 10px; height: 6px; fill: none; stroke: var(--cinza); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.ck-pais-btn.is-aberto .ck-pais-seta { transform: rotate(180deg); }
.ck-bandeira { width: 22px; height: 16px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); flex-shrink: 0; display: block; }
.ck-pais-lista {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 100; width: 250px; max-height: 280px; overflow-y: auto;
  background: #fff; border: 1px solid var(--linha); border-radius: 10px; padding: 6px 0;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, .15), 0 8px 10px -6px rgba(0, 0, 0, .1);
  display: none; overscroll-behavior: contain;
}
.ck-pais-lista.is-aberto { display: block; animation: ckEntra .15s ease-out; }
.ck-pais-op { display: flex; align-items: center; gap: 10px; padding: 9px 14px; cursor: pointer; font-size: 13.5px; color: #374151; }
.ck-pais-op:hover, .ck-pais-op:focus { background: #f3f4f6; outline: none; }
.ck-pais-op[aria-selected="true"] { background: rgba(var(--azul-rgb), .08); color: var(--azul-escuro); font-weight: 600; }
.ck-pais-op-nome { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ck-pais-op-ind { color: var(--cinza); font-size: 12.5px; font-weight: 500; }

/* Avaliações */
.ck-avaliacoes { margin-top: 4px; padding: 18px 22px 0; border-top: 1px solid var(--linha); }
.ck-av-cab { text-align: center; margin-bottom: 14px; }
.ck-av-nota { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; font-size: 15px; }
.ck-av-rotulo { font-weight: 800; }
.ck-av-sub { font-size: 12px; color: var(--cinza); margin-top: 5px; }
.ck-estrelas { display: inline-flex; gap: 1px; color: #f5a623; }
.ck-estrelas svg { width: 17px; height: 17px; fill: currentColor; }
.ck-estrelas .vazia { color: var(--linha-forte); }
.ck-av-trilho { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 12px; }
.ck-av-trilho::-webkit-scrollbar { display: none; }
.ck-av { min-width: 270px; max-width: 300px; flex-shrink: 0; scroll-snap-align: start; border: 1px solid var(--linha); border-radius: var(--raio); background: #fff; overflow: hidden; }
.ck-av-foto { height: 160px; background: #f0f0f0; }
.ck-av-foto img { width: 100%; height: 100%; object-fit: cover; }
.ck-av-corpo { padding: 12px 14px; }
.ck-av-nome { font-size: 13px; font-weight: 700; }
.ck-av-local { font-size: 11px; color: var(--cinza); margin-top: 1px; }
.ck-av-linha { display: flex; align-items: center; gap: 6px; margin: 6px 0; flex-wrap: wrap; }
.ck-av-linha .ck-estrelas svg { width: 14px; height: 14px; }
.ck-av-verif { display: inline-flex; align-items: center; gap: 3px; font-size: 10.5px; font-weight: 600; color: var(--verde); }
.ck-av-verif svg { width: 11px; height: 11px; }
.ck-av-texto { font-size: 12.5px; color: var(--tinta-2); line-height: 1.5; }
.ck-av-pontos { display: flex; justify-content: center; gap: 6px; margin-top: 4px; }
.ck-av-pontos button { width: 7px; height: 7px; border-radius: 50%; background: var(--linha-forte); padding: 0; transition: background .2s, transform .2s; }
.ck-av-pontos button.is-on { background: var(--azul); transform: scale(1.3); }

/* Selos de confiança e logos */
.ck-confianca { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; padding: 18px 22px 0; }
.ck-conf-item { display: flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; color: var(--cinza); }
.ck-conf-item svg { width: 13px; height: 13px; color: var(--verde); flex-shrink: 0; }
.ck-aceites { margin-top: 18px; padding: 16px 22px 22px; border-top: 1px solid var(--linha); }
.ck-aceites-tit { text-align: center; margin-bottom: 10px; font-size: 10.5px; font-weight: 600; color: var(--cinza-claro); letter-spacing: .1em; text-transform: uppercase; }
.ck-aceites-logos { display: flex; justify-content: center; align-items: center; gap: 22px; flex-wrap: wrap; }
.ck-aceites-logos img { height: 24px; width: auto; max-width: 70px; object-fit: contain; opacity: .9; }
.ck-aceites-logos img[data-metodo="multibanco"] { height: 28px; }

/* Rodapé */
.ck-rodape { padding: 22px 8px 8px; text-align: center; font-size: 11.5px; color: var(--cinza-claro); line-height: 1.8; }
.ck-rodape a { color: var(--cinza); text-decoration: underline; text-underline-offset: 2px; }
.ck-rodape-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; }

/* ---------- Ecrãs de resultado ---------- */
.ck-resultados { padding-top: 16px; }
.ck-res { padding: 28px 22px; max-width: 520px; margin: 0 auto; text-align: center; animation: ckEntra .35s ease; }
.ck-res-logo { display: flex; justify-content: center; margin-bottom: 14px; }
.ck-res-logo img { height: 34px; width: auto; }
.ck-res-logo-mb img { height: 64px; }
.ck-res-icone { width: 58px; height: 58px; border-radius: 50%; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; }
.ck-res-icone svg { width: 28px; height: 28px; }
.ck-res-icone-ok { background: var(--verde-fundo); color: var(--verde); }
.ck-res-icone-erro { background: var(--vermelho-fundo); color: var(--vermelho); }
.ck-res-tit { font-size: 21px; font-weight: 800; letter-spacing: -.01em; margin-bottom: 6px; }
.ck-res-sub { font-size: 14px; color: var(--cinza); line-height: 1.55; margin-bottom: 20px; }
.ck-res-sub b { color: var(--tinta); white-space: nowrap; }
.ck-res-nota { font-size: 12.5px; color: var(--cinza); line-height: 1.5; max-width: 400px; margin: 14px auto 0; }
.ck-res-acoes { margin-top: 20px; }
.ck-espera { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 14px; color: var(--cinza); margin: 4px 0 18px; }
.ck-espera strong { color: var(--tinta); font-variant-numeric: tabular-nums; }
.ck-espera-mb { font-size: 12.5px; margin: 16px auto 0; max-width: 380px; text-align: left; }
.ck-roda { width: 17px; height: 17px; flex-shrink: 0; border: 2px solid var(--linha-forte); border-top-color: var(--azul); border-radius: 50%; animation: gira .8s linear infinite; }
.ck-passos-app { list-style: none; counter-reset: p; max-width: 360px; margin: 0 auto; text-align: left; background: var(--suave); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 12px 16px; }
.ck-passos-app li { counter-increment: p; display: flex; gap: 10px; font-size: 13px; line-height: 1.45; padding: 5px 0; }
.ck-passos-app li::before { content: counter(p); flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--azul); color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 1px; }

.ck-mb { max-width: 380px; margin: 0 auto; background: var(--suave); border: 1px solid var(--linha); border-radius: var(--raio-p); overflow: hidden; text-align: left; }
.ck-mb-linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; }
.ck-mb-linha + .ck-mb-linha { border-top: 1px solid var(--linha); }
.ck-mb-rot { font-size: 12px; font-weight: 700; color: var(--cinza); text-transform: uppercase; letter-spacing: .05em; }
.ck-mb-dir { display: flex; align-items: center; gap: 10px; }
.ck-mb-val { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 19px; font-weight: 700; letter-spacing: .06em; }
.ck-mb-validade { font-size: 13.5px; font-weight: 600; }
#mbValor { font-family: var(--fonte); letter-spacing: 0; font-size: 18px; }
.ck-copiar { padding: 5px 12px; border: 1px solid var(--linha-forte); border-radius: 999px; background: #fff; font-size: 12px; font-weight: 700; line-height: 1.4; transition: border-color .15s, color .15s, background .15s; }
.ck-copiar:hover { border-color: var(--tinta); }
.ck-copiar.is-ok { border-color: var(--verde); color: var(--verde); background: var(--verde-fundo); }

.ck-ok { max-width: 440px; margin: 0 auto; text-align: left; }
.ck-ok-prod { display: flex; align-items: center; gap: 14px; padding: 14px; background: var(--suave); border: 1px solid var(--linha); border-radius: var(--raio-p); }
.ck-ok-prod img { width: 72px; height: 72px; object-fit: cover; border-radius: 10px; flex-shrink: 0; background: #fff; }
.ck-ok-nome { font-size: 15px; font-weight: 700; line-height: 1.35; }
.ck-ok-meta { font-size: 13px; color: var(--cinza); margin-top: 3px; line-height: 1.45; }
.ck-ok-dados { margin-top: 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); overflow: hidden; }
.ck-ok-linha { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 12px 14px; font-size: 13.5px; }
.ck-ok-linha + .ck-ok-linha { border-top: 1px solid var(--linha); }
.ck-ok-linha b { color: var(--cinza); font-weight: 500; flex-shrink: 0; }
.ck-ok-linha span { font-weight: 600; text-align: right; word-break: break-word; }
.ck-ok-total { background: var(--verde-fundo); }
.ck-ok-total span { color: var(--verde); font-size: 15px; }
.ck-ok-btn { display: inline-block; padding: 12px 28px; border-radius: 10px; background: var(--verde); color: #fff; font-size: 14px; font-weight: 700; }
.ck-ok-btn:hover { background: var(--verde-escuro); }

/* ---------- Oferta de saída ---------- */
.ck-saida {
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 18px;
  background: rgba(16, 24, 40, .22); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.ck-saida-card {
  position: relative; width: 100%; max-width: 360px; padding: 22px 20px 16px; text-align: center;
  background: rgba(255, 255, 255, .86); border: 1px solid rgba(16, 24, 40, .07); border-radius: 16px;
  -webkit-backdrop-filter: blur(20px) saturate(140%); backdrop-filter: blur(20px) saturate(140%);
  box-shadow: 0 8px 30px rgba(16, 24, 40, .12); animation: ckEntra .45s cubic-bezier(.22, .61, .36, 1) both;
}
.ck-saida-fechar { position: absolute; top: 9px; right: 9px; width: 28px; height: 28px; border-radius: 50%; font-size: 19px; line-height: 1; color: var(--cinza-claro); }
.ck-saida-fechar:hover { color: var(--cinza); }
.ck-saida-marca { display: flex; justify-content: center; margin: 4px 0 14px; }
.ck-saida-marca img { height: 24px; width: auto; max-width: 55%; }
.ck-saida-marca .ck-marca-txt { font-size: 15px; }
.ck-saida-tit { font-size: 18px; font-weight: 700; letter-spacing: -.02em; line-height: 1.3; margin-bottom: 7px; text-wrap: balance; }
.ck-saida-sub { font-size: 12.5px; color: var(--cinza); line-height: 1.5; margin-bottom: 16px; text-wrap: balance; }
.ck-saida-precos { font-size: 13px; color: var(--cinza); line-height: 1.4; }
.ck-saida-precos s { color: var(--cinza-claro); }
.ck-saida-por { font-size: 25px; font-weight: 700; color: var(--azul); letter-spacing: -.025em; vertical-align: -2px; margin-left: 2px; }
.ck-saida-poupa { font-size: 11.5px; color: var(--cinza); margin: 2px 0 14px; }
.ck-saida-poupa b { color: var(--azul-escuro); font-weight: 600; }
.ck-saida-info { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 14px; padding: 10px 14px; border-radius: 8px; background: rgba(var(--azul-rgb), .07); border: 1px solid rgba(var(--azul-rgb), .18); color: var(--azul-escuro); font-size: 12.5px; font-weight: 600; line-height: 1.4; }
.ck-saida-btn {
  position: relative; isolation: isolate; overflow: hidden; width: 100%;
  display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 12px; border-radius: 10px;
  background: var(--azul); color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .02em;
  animation: ckPulsaSaida 2.4s ease-in-out infinite;
}
.ck-saida-btn::after {
  content: ""; position: absolute; inset: -20%; width: 42%; pointer-events: none; z-index: 0;
  background: linear-gradient(115deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.1) 35%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.1) 65%, rgba(255,255,255,0) 100%);
  transform: translate3d(-160%, 0, 0) skewX(-18deg); animation: ckBrilho 2.8s ease-in-out infinite;
}
.ck-saida-btn > * { position: relative; z-index: 1; }
.ck-saida-btn svg { width: 15px; height: 15px; }
.ck-saida-btn:hover { background: var(--azul-escuro); }
.ck-saida-btn:disabled { opacity: .6; animation: none; cursor: default; }
@keyframes ckPulsaSaida {
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 10px 24px rgba(var(--azul-rgb), .26); }
  50% { transform: translateY(-2px) scale(1.02); box-shadow: 0 16px 32px rgba(var(--azul-rgb), .36); }
}
.ck-saida-nao { display: block; width: 100%; margin-top: 9px; font-size: 12px; color: var(--cinza-claro); }
.ck-saida-nao:hover { color: var(--cinza); }

@media (prefers-reduced-motion: reduce) {
  .ck-btn, .ck-saida-btn { animation: none; }
  .ck-btn::after, .ck-saida-btn::after { animation: none; opacity: 0; }
  .ck-sec.is-atual, .ck-res, .ck-saida-card { animation: none; }
}

.ck-marca img { width: min(190px, 43vw); max-width: 190px; height: auto; }
.ck-saida-marca img { width: 190px; max-width: 90%; height: auto; }
.ck-btn, .ck-faixa { background: #1A1A1A; box-shadow: none; }
.ck-btn:hover { background: #333333; }
.ck-input::placeholder { color: #A9A7A5; }

/* Edição de artigos no próprio checkout. */
.ck-artigo{padding:16px 0;border-bottom:1px solid var(--linha)}
.ck-artigo:first-child{padding-top:4px}
.ck-artigo-topo{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:13px}
.ck-artigo-topo img{object-fit:contain;border-radius:6px;background:var(--gelo)}
.ck-artigo-topo strong{flex:1;min-width:0}.ck-artigo-topo b{white-space:nowrap}
.ck-artigo-acoes,.ck-novo-acoes{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ck-artigo-acoes{justify-content:space-between}
.ck-artigo-acoes label{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--cinza)}
.ck-artigo-acoes select{min-height:44px;padding:8px 12px;border:1px solid var(--linha);border-radius:8px;background:var(--branco);font:inherit;color:var(--tinta)}
.ck-remover{border:0;background:transparent;color:var(--cinza);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;padding:8px}
.ck-adicionar{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--tinta);border-radius:8px;color:var(--tinta);background:var(--branco);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
#adicionarMala{width:100%;margin:16px 0 6px;border-style:dashed}
.ck-adicionar:hover{background:var(--gelo)}
#confirmarArtigo{background:var(--tinta);color:var(--branco)}
.ck-novo-artigo{padding:16px;margin:8px 0;background:var(--gelo);border:1px solid var(--linha);border-radius:10px}
.ck-novo-artigo h3{font-size:14px;margin:0 0 14px}.ck-novo-acoes>span{margin-right:auto;font-weight:600;font-size:14px}
.ck-carrinho-aviso{font-size:12px;color:var(--cinza);line-height:1.5;margin:4px 0 12px}
.ck-carrinho-aviso:empty{display:none}.ck-vazio{font-size:14px;line-height:1.6;padding:12px 0}
#editorCarrinho button:focus-visible,#editorCarrinho select:focus-visible{outline:2px solid var(--tinta);outline-offset:3px}
@media(max-width:420px){.ck-artigo-topo{font-size:12px}.ck-novo-acoes{gap:8px}#confirmarArtigo{padding:10px}}

.ck-empresa{display:grid;gap:3px;margin:14px auto 10px;max-width:440px;color:var(--cinza);font-size:12px;line-height:1.65}.ck-empresa strong{font-weight:600;color:var(--tinta)}.ck-empresa span{font-variant-numeric:tabular-nums}

.ck-envios{border:0;padding:0;margin:22px 0 12px;min-width:0}.ck-envios legend{font-size:14px;font-weight:600;padding:0}.ck-envios>p{font-size:12px;color:var(--cinza);margin:5px 0 12px}.ck-envio{display:flex;align-items:center;gap:12px;border:1px solid var(--linha);border-radius:10px;padding:16px 12px;cursor:pointer;margin:8px 0;background:#fff}.ck-envio.is-on{border-color:var(--tinta);background:var(--gelo);box-shadow:0 0 0 1px var(--tinta)}.ck-envio input{accent-color:var(--tinta);width:18px;height:18px;flex-shrink:0}.ck-envio span{display:grid;gap:5px;flex:1}.ck-envio strong,.ck-envio b{font-size:13px}.ck-envio small{font-size:12px;color:var(--cinza)}.ck-envio b{white-space:nowrap}.ck-garantia-info{text-align:center;color:var(--cinza);font-size:12px;line-height:1.6;margin:20px auto 0;max-width:460px;padding:0 8px}

.ck-instrucoes{height:auto;min-height:96px;padding:12px 14px;resize:vertical;line-height:1.5}.ck-instrucoes-resumo{margin-top:10px;white-space:pre-wrap;overflow-wrap:anywhere}

.ck-oferta-encerrada{padding:24px;border:1px solid var(--linha);border-radius:12px;background:var(--gelo);line-height:1.6;margin:20px 0}.ck-oferta-encerrada p{margin:8px 0 0;font-size:14px}#faixaOferta{text-wrap:balance}

.ck-morada-lista{border:1px solid var(--linha-forte);border-radius:10px;margin-top:6px;max-height:245px;overflow:auto;background:var(--branco)}.ck-morada-lista button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--linha);background:transparent;padding:12px 14px;cursor:pointer;color:var(--tinta);font:inherit}.ck-morada-lista button:last-child{border-bottom:0}.ck-morada-lista button:hover,.ck-morada-lista [aria-selected="true"]{background:var(--gelo)}.ck-morada-lista strong,.ck-morada-lista small{display:block;overflow-wrap:anywhere}.ck-morada-lista strong{font-size:14px}.ck-morada-lista small{font-size:12px;color:var(--cinza);margin-top:4px}
