/* Checkout de reserva — identidade própria, sem relação com o fabricante */
:root{
  --ink:#101012;
  --ink-2:#5c5c66;
  --ink-3:#8b8b95;
  --paper:#f4f4f6;
  --card:#fff;
  --line:#e2e2e7;
  --go:#101012;
  --go-h:#2a2a30;
  --ok:#0f9d58;
  --warn:#8a6d1f;
  --warn-bg:#fff8e1;
  --err:#c3352b;
  --r:16px;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Helvetica Neue",system-ui,sans-serif;
  font-size:16px;line-height:1.5;letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
h1,h2{margin:0;letter-spacing:-.022em;line-height:1.15}
p{margin:0}
ul,ol,dl{margin:0;padding:0;list-style:none}
::selection{background:var(--ink);color:#fff}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:8px}

/* ---------- barra ---------- */
.bar{background:var(--ink);color:#fff}
.bar__in{
  max-width:1080px;margin-inline:auto;padding:14px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}
.brand__mono{
  width:26px;height:26px;border-radius:8px;flex:none;
  display:grid;place-items:center;
  background:#fff;color:#101012;
  font-size:15px;font-weight:700;letter-spacing:-.03em;
}
.brand__name{font-weight:600;font-size:16px;letter-spacing:-.02em}
.bar__safe{font-size:12.5px;color:#b6b6c0;display:flex;align-items:center;gap:7px}
.lock{
  width:12px;height:12px;flex:none;background:#b6b6c0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9V7a5 5 0 0 0-10 0v2H5v13h14V9zM9 7a3 3 0 0 1 6 0v2H9z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9V7a5 5 0 0 0-10 0v2H5v13h14V9zM9 7a3 3 0 0 1 6 0v2H9z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ---------- etapas ---------- */
.page{max-width:1080px;margin-inline:auto;padding:28px 20px 60px}
.steps{display:flex;gap:8px;margin-bottom:26px;flex-wrap:wrap}
.step{
  display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-3);
  padding:7px 14px 7px 7px;background:#eaeaef;border-radius:99px;
}
.step span{
  width:22px;height:22px;border-radius:50%;background:#d3d3dc;color:#6a6a75;
  display:grid;place-items:center;font-size:12px;font-weight:600;
}
.step.is-on{background:var(--ink);color:#fff}
.step.is-on span{background:#fff;color:var(--ink)}
.step.is-done{background:#dff2e6;color:#186c3d}
.step.is-done span{background:var(--ok);color:#fff}

.layout{display:grid;gap:22px;grid-template-columns:minmax(0,1fr) 320px;align-items:start}

/* ---------- painéis ---------- */
.panel{
  background:var(--card);border-radius:var(--r);padding:clamp(20px,3vw,30px);
  border:1px solid var(--line);
}
.panel__title{font-size:clamp(21px,2.4vw,26px);font-weight:600}
.panel__lede{margin-top:8px;color:var(--ink-2);font-size:15px}

.item{display:flex;gap:16px;margin-top:22px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.item__thumb{width:88px;height:88px;border-radius:12px;overflow:hidden;background:#000;flex:none}
.item__thumb img{width:100%;height:100%;object-fit:cover}
.item__name{font-size:18px;font-weight:600}
.item__meta{font-size:14px;color:var(--ink-2);margin-top:3px}
.item__note{font-size:13px;color:var(--ink-3);margin-top:8px;max-width:44ch}

.field{margin-top:22px}
.field > label{display:block;font-size:13.5px;font-weight:600;margin-bottom:9px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{
  appearance:none;font:inherit;font-size:14px;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:11px;border:1px solid var(--line);background:#fff;color:var(--ink);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.chip i{width:15px;height:15px;border-radius:50%;background:var(--c);box-shadow:inset 0 -2px 3px rgba(0,0,0,.28)}
.chip:hover{border-color:#c3c3cc}
.chip.is-on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.chip--wide{flex-direction:column;align-items:flex-start;gap:2px;min-width:150px;font-weight:600}
.chip--wide small{font-weight:400;font-size:12px;color:var(--ink-3)}

/* ---------- formulário ---------- */
.form{margin-top:20px}
.field--half{display:grid;gap:14px;grid-template-columns:1fr 96px}
.field--half label{display:block;font-size:13.5px;font-weight:600;margin-bottom:9px}
input[type=text],input[type=tel],input[type=email]{
  width:100%;font:inherit;font-size:16px;padding:12px 14px;border-radius:11px;
  border:1px solid var(--line);background:#fff;color:var(--ink);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
}
input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(16,16,18,.1)}
input[aria-invalid=true]{border-color:var(--err);box-shadow:0 0 0 3px rgba(195,53,43,.12)}
.erro{font-size:12.5px;color:var(--err);margin-top:6px;min-height:0}
.erro:empty{display:none}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:22px;font-size:13.5px;color:var(--ink-2)}
.check input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--ink);flex:none}

.row{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}
.btn{
  appearance:none;font:inherit;font-size:15px;font-weight:500;cursor:pointer;
  padding:13px 22px;border-radius:12px;border:1px solid transparent;
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease);
}
.btn--go{background:var(--go);color:#fff;margin-top:26px}
.row .btn--go{margin-top:0;flex:1}
.btn--go:hover{background:var(--go-h)}
.btn--ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:#c3c3cc}
.btn--copy{background:var(--ink);color:#fff;width:100%;margin-top:10px}
.btn--copy:hover{background:var(--go-h)}
.btn.is-ok{background:var(--ok)}

/* ---------- pix ---------- */
.pix{margin-top:22px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.pix__head{
  display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fafafb;border-bottom:1px solid var(--line);
}
.pix__logo{
  width:34px;height:34px;border-radius:9px;flex:none;background:#32bcad;
  -webkit-mask:none;
  position:relative;
}
.pix__logo::after{
  content:"";position:absolute;inset:8px;background:#fff;
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}
.pix__head h2{font-size:16px;font-weight:600}
.pix__head p{font-size:12.5px;color:var(--ink-3);margin-top:2px;max-width:38ch}
.pix__valor{margin-left:auto;font-size:19px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pix__body{display:grid;gap:22px;grid-template-columns:auto minmax(0,1fr);padding:20px 18px}
.pix__qr{display:grid;justify-items:center;gap:8px}
.pix__qr img{
  width:220px;height:220px;border-radius:10px;border:1px solid var(--line);background:#fff;
  image-rendering:pixelated;
}
.pix__qrnote{font-size:12px;color:var(--ink-3)}
.pix__copy label{display:block;font-size:13.5px;font-weight:600;margin-bottom:9px}
.pix__copy textarea{
  width:100%;font:inherit;font-size:12px;line-height:1.45;padding:12px 14px;border-radius:11px;
  border:1px solid var(--line);background:#fafafb;color:var(--ink-2);resize:none;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;
}
.pix__timer{font-size:12.5px;color:var(--ink-3);margin-top:10px;text-align:center}
.pix__timer strong{color:var(--ink);font-variant-numeric:tabular-nums}
.pix__foot{padding:14px 18px;border-top:1px solid var(--line);background:#fafafb;font-size:12.5px;color:var(--ink-3)}

.aviso{
  margin-top:18px;padding:14px 16px;border-radius:12px;background:var(--warn-bg);color:var(--warn);font-size:13px;line-height:1.5;
}
.aviso strong{display:block;margin-bottom:3px}
.aviso code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:rgba(0,0,0,.06);padding:1px 5px;border-radius:5px}

/* ---------- conclusão ---------- */
.panel--done{text-align:center}
.done{display:grid;justify-items:center;gap:14px;padding:16px 0}
.done__check{
  width:52px;height:52px;border-radius:50%;background:var(--ok);position:relative;
}
.done__check::after{
  content:"";position:absolute;left:15px;top:14px;width:22px;height:12px;
  border-left:3px solid #fff;border-bottom:3px solid #fff;transform:rotate(-45deg);
}
.done__list{display:grid;gap:0;width:100%;max-width:380px;margin-top:6px;text-align:left}
.done__list > div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
.done__list dt{font-size:14px;color:var(--ink-2)}
.done__list dd{margin:0;font-size:14px;font-weight:500}
.done__note{font-size:13px;color:var(--ink-3);max-width:52ch}

/* ---------- resumo ---------- */
.resumo{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;
  position:sticky;top:20px;
}
.resumo h2{font-size:15px;font-weight:600;margin-bottom:14px}
.resumo__linha{
  display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:14px;
  border-bottom:1px solid var(--line);
}
.resumo__linha strong{font-variant-numeric:tabular-nums}
.resumo__linha--dim{color:var(--ink-3);border-bottom:0}
.resumo__nota{font-size:12px;color:var(--ink-3);margin-top:12px;line-height:1.5}

.rodape{margin-top:26px;font-size:12px;color:var(--ink-3);line-height:1.6;max-width:78ch}

@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  .resumo{position:static;order:-1}
  .pix__body{grid-template-columns:1fr}
  .pix__qr img{width:200px;height:200px}
}
@media (prefers-reduced-motion:reduce){
  *{transition-duration:.001ms !important;animation-duration:.001ms !important}
}

/* ---------- faixa de conceito ----------
   Fica no topo, antes de qualquer campo, porque quem cai direto no checkout
   não passa pelo rodapé da home onde a ressalva de conceito está escrita. */
.concept-bar{
  margin:0;padding:9px 20px;border-top:1px solid rgba(0,0,0,.06);
  background:var(--warn-bg);color:var(--warn);
  font-size:12.5px;line-height:1.45;text-align:center;
}
.concept-bar strong{font-weight:600}
@media (max-width:600px){ .concept-bar{padding:9px 14px;font-size:12px} }

/* ---------- tarja de simulação no quadro do Pix ----------
   Dentro do quadro, e não só acima dele: o QR é a parte que sai da tela em
   print e em foto, e precisa carregar junto o aviso de que não é pagável. */
.pix__demo{
  margin:0 0 12px;padding:7px 12px;border-radius:9px;
  background:var(--warn-bg);color:var(--warn);
  font-size:12px;font-weight:600;letter-spacing:.01em;text-align:center;
}
