/* Product detail: editorial shell, existing booking controls and IDs. */
.lj-tour-page{max-width:1328px;padding-inline:40px}
/* 44 px de alvo (antes 36): é a saída da ficha, tocada com o polegar. */
.lj-tour-page .lj-back{margin-top:24px;font-size:12px;min-height:44px;padding:0 12px 0 0}
.lj-tour-heading{padding:22px 0 34px;max-width:960px}
.lj-tour-page .lj-titulo{font-family:var(--font-custom-head,var(--font-body));font-size:clamp(38px,4.5vw,64px);font-weight:550;letter-spacing:-.055em;line-height:1.05;margin:0;overflow-wrap:anywhere}
.lj-tour-page .lj-subt{font-size:16px;line-height:1.7;margin:18px 0 0;max-width:65ch}
.lj-tour-page .lj-det{grid-template-columns:minmax(0,1fr) 380px;gap:48px;padding:0 0 64px}
.lj-tour-page .lj-main,.lj-tour-page .lj-corpo,.lj-tour-page .lj-book{min-width:0}
.lj-tour-page .lj-det{display:var(--shop-det-display,grid)}
/* flow-root: ao lado da caixa flutuante a galeria encolhe para o espaço que sobra (um bloco comum
   passaria por baixo dela e a foto cairia inteira abaixo). Na grade não muda nada. */
.lj-tour-page .lj-main{display:flow-root}
.lj-tour-page .lj-corpo{grid-column:1;clear:none}
.lj-tour-page .lj-gal-main{aspect-ratio:3/2;border:0;border-radius:var(--shop-radius,16px);overflow:hidden}
.lj-tour-page .lj-thumbs{display:flex;gap:10px;overflow-x:auto;padding:4px;margin:10px -4px 0}
.lj-tour-page .lj-thumbs .t{flex:0 0 88px;aspect-ratio:4/3;border-radius:5px;border:2px solid transparent}
.lj-tour-page .lj-thumbs .t.on{border-color:var(--cor)}
.lj-tour-page .lj-gal-nav{width:44px;height:44px;backdrop-filter:blur(8px)}
.lj-tour-page .lj-gal-bdg,.lj-tour-page .lj-gal-tipo,.lj-tour-page .lj-gal-count{border-radius:5px}
.lj-tour-placeholder{background:linear-gradient(135deg,var(--surf),color-mix(in srgb,var(--cor) 12%,var(--surf)));color:var(--on-surf,var(--muted))}
.lj-tour-placeholder svg{width:72px;height:72px;opacity:.38}
.lj-tour-page .lj-dspecs{margin:24px 0 0;padding-bottom:24px;border-bottom:1px solid var(--bord);gap:12px 24px}
.lj-tour-page .lj-dspecs .sp{background:transparent;border:0;padding:0;border-radius:0;font-size:13px;color:var(--muted);gap:8px;line-height:1.6}
.lj-tour-page .lj-sec{margin-top:34px}
.lj-tour-page .lj-sec h2,.lj-tour-page .lj-outros h2,.lj-tour-page .lj-cc>h3{font-family:var(--font-custom-head,var(--font-body));font-size:28px;font-weight:550;letter-spacing:-.035em;margin-bottom:18px}
.lj-tour-page .lj-sec .longa{font-size:15px;line-height:1.85;opacity:1;color:var(--muted);overflow-wrap:anywhere}
.lj-tour-page .lj-rot li{font-size:14px;line-height:1.7;padding-bottom:22px}
.lj-tour-page .lj-rot:before{width:1px;left:5px}
.lj-tour-page .lj-rot .pt{width:11px;height:11px;border-width:2px;top:6px}
.lj-tour-page .lj-inc{gap:28px;padding:26px 0;border-top:1px solid var(--bord);border-bottom:1px solid var(--bord)}
.lj-tour-page .lj-inc ul{line-height:1.7}
.lj-tour-page .lj-emb{border-radius:8px;box-shadow:none;padding:22px;background:var(--surf);border:0}
.lj-tour-page .lj-emb .maps{border-radius:6px;font-weight:600}
.lj-tour-page .lj-disc{border-radius:8px;margin-top:26px}
/* Ficha 07/10: sem scroll próprio. Eram três scrolls aninhados (caixa, lista de datas, página) e a
   1440×900 o «Reservar» ficava cortado. Se a caixa não cabe na tela, ela deixa de ser sticky
   (loja-saidas.js marca .is-alta) — rola junto com a página, inteira. */
.lj-tour-page .lj-book{grid-column:2;grid-row:1 / span 3;float:var(--shop-book-float,none);width:var(--shop-book-width,auto);margin:var(--shop-book-margin,0);position:var(--shop-book-position,sticky);top:var(--shop-book-top,98px);align-self:start}
.lj-tour-page .lj-book.is-alta{position:static}
.lj-tour-page .lj-outros{grid-column:1;min-width:0;clear:both}
@media(min-width:821px){.lj-tour-page .lj-outros .row{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}
.lj-book-next[hidden],.lj-checkout-head[hidden]{display:none}
.lj-tour-page .lj-bx.lj-book-staged{padding:24px}
.lj-tour-page .lj-book-staged>.lj-bx-h{display:none}
.lj-tour-page .lj-book-staged #lj-form>label{margin-top:20px}
.lj-tour-page .lj-book-staged .lj-strow{padding:10px 0}
.lj-tour-page .lj-book-next .lj-total{margin:18px 0;padding-top:16px}
.lj-tour-page .lj-total b{font-family:var(--font-custom-head,var(--font-body));font-size:26px;letter-spacing:-.035em}
.lj-tour-page .lj-book-next>.lj-btn{width:100%;justify-content:space-between}
.lj-tour-page .lj-bx .lj-checkout{position:fixed;inset:0;width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 40px);margin:auto;padding:28px;border:1px solid var(--bord);border-radius:12px;background:var(--card);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 80px #0003}
.lj-checkout::backdrop{background:#071c2b80;backdrop-filter:blur(4px)}
.lj-checkout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.lj-checkout-head h2{font-family:var(--font-custom-head,var(--font-body));font-size:26px;letter-spacing:-.035em;font-weight:550;line-height:1.2;margin:0}
.lj-tour-page .lj-bx .lj-checkout-head p{margin:10px 0 0;font-size:13px}
.lj-checkout-close{flex:none;width:44px;height:44px;border:1px solid var(--bord);border-radius:50%;background:transparent;color:var(--ink);font-size:24px;cursor:pointer}
.lj-tour-page .lj-checkout input:not([type=checkbox]){margin-bottom:0}
.lj-tour-page .lj-checkout .lj-cta{width:100%}
.lj-tour-page .lj-checkout :is(p,label,h2){overflow-wrap:anywhere}
@media(max-width:600px){.lj-tour-page .lj-bx .lj-checkout{padding:24px 20px;max-height:calc(100dvh - 24px)}}
.lj-tour-page .lj-bx{padding:28px;border-radius:var(--shop-radius,16px);box-shadow:0 8px 32px -24px var(--ink);border:1px solid var(--bord)}
.lj-tour-page .lj-bx .pr{font-family:var(--font-custom-head,var(--font-body));font-size:36px;font-weight:550;letter-spacing:-.035em;line-height:1.2;overflow-wrap:anywhere}
.lj-tour-page .lj-bx .de{display:block;margin-bottom:6px;font-size:11px}
.lj-tour-page .lj-bx-h{font-family:var(--font-custom-head,var(--font-body));font-size:21px;font-weight:550;letter-spacing:-.025em;margin:24px 0 16px;padding-top:22px;border-top:1px solid var(--bord)}
.lj-tour-page .lj-bx p{font-size:13px;line-height:1.7;color:var(--muted)}
.lj-tour-page .lj-bx label{font-size:12px;font-weight:600}
.lj-tour-page .lj-bx input:not([type=checkbox]):not([type=radio]),.lj-tour-page .lj-bx select,.lj-tour-page .lj-bx textarea{font-family:inherit;border-radius:6px;min-height:44px;font-size:16px;max-width:100%;color:var(--ink)}
.lj-tour-page .lj-bx select{white-space:normal}
.lj-tour-page #lj-salida[hidden]{display:none}
/* Ficha 07/10: datas em chips, 2 colunas, sem scroll interno. «qui 8 out» basta quando hora e
   preço são os mesmos — esses vão UMA vez na linha de cima (.lj-saidas-cab); o chip só repete o
   que difere da maioria. Mais de 8 → «Ver mais datas» (o select escondido segue dono do valor). */
.lj-saidas-cab{margin:6px 0 0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.lj-saidas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 8px}
.lj-tour-page .lj-bx .lj-saida{position:relative;display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:52px;margin:0;padding:8px 12px;border:1px solid var(--bord);border-radius:10px;background:var(--card);color:var(--ink);font-weight:400;line-height:1.3;transition:border-color 150ms ease,background-color 150ms ease}
.lj-saida:is(label){cursor:pointer}
.lj-tour-page .lj-bx .lj-saida.is-selected{border-color:var(--cor);background:color-mix(in srgb,var(--cor) 8%,var(--card));box-shadow:inset 0 0 0 1px var(--cor)}
.lj-saida-content{display:grid;gap:2px;min-width:0}
.lj-saida-content strong{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.lj-saida-detail,.lj-saida-content small{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.lj-tour-page .lj-bx .lj-saida input[type=radio]{position:absolute;width:1px;height:1px;padding:0;margin:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.lj-saida:has(input:focus-visible){outline:2px solid var(--cor);outline-offset:2px}
.lj-saida.is-disabled{cursor:default;background:transparent}
.lj-saida.is-disabled strong{text-decoration:line-through;color:var(--muted);font-weight:500}
.lj-saida[hidden]{display:none}
.lj-tour-page .lj-bx .lj-saidas-mais{grid-column:1/-1;min-height:44px;margin:0;border:1px dashed var(--bord);border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
@media (prefers-reduced-motion:reduce){.lj-tour-page .lj-bx .lj-saida{transition:none}}
.lj-tour-page .lj-bx .lj-btn,.lj-tour-page .lj-det-bar-btn{border-radius:6px;box-shadow:none;font-size:13px;font-weight:600;min-height:46px;display:flex;align-items:center;justify-content:center;white-space:normal;text-align:center;overflow-wrap:anywhere}
.lj-tour-page .lj-bx .lj-cta{margin-top:22px}
.lj-tour-page .lj-strow{padding:15px 0;flex-wrap:wrap}
.lj-tour-page .lj-strow .step .st{width:44px;height:44px;border-radius:6px}
.lj-tour-page .lj-vg{border-radius:5px;line-height:1.6}
.lj-tour-page .lj-vg .pulse{animation:none}
.lj-tour-page .lj-vg[hidden]{display:none}
.lj-tour-page .lj-pol{flex-wrap:wrap;line-height:1.6}
.lj-tour-page #lj-form{scroll-margin-top:130px}
.lj-tour-page #lj-pedido-wa{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px;align-items:center}
.lj-tour-page #lj-pedido-wa>label:first-child,.lj-tour-page #lj-wa-data,.lj-tour-page #lj-pedido-wa>p,.lj-tour-page #lj-wa-reservar{grid-column:1/-1}
.lj-tour-page #lj-pedido-wa>input[type=number]{width:100%;text-align:center}
/* Mig 356: nome e WhatsApp do «Solicitar reserva» ocupam a linha inteira (o 100px é dos contadores). */
.lj-tour-page #lj-pedido-wa>label:is([for=lj-wa-nome],[for=lj-wa-telefone]),.lj-tour-page #lj-wa-nome,.lj-tour-page #lj-wa-telefone{grid-column:1/-1;width:100%}
.lj-tour-page #lj-pedido-wa>.lj-sol-nota{margin:-4px 0 0;font-size:13px;color:var(--muted);text-align:center}
.lj-tour-page #lj-pedido-wa>.lj-sol-status{margin:0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--cor) 10%,var(--card));font-size:14px;font-weight:600}
.lj-tour-page #lj-pedido-wa>.lj-sol-status[hidden],.lj-tour-page #lj-pedido-wa>.lj-ferr[hidden]{display:none}
.lj-tour-page .lj-outros{padding-top:40px;margin-top:0;border-top:1px solid var(--bord)}
.lj-tour-page .lj-outros .row{gap:24px;padding-bottom:24px}
.lj-tour-page .lj-outros .oc{border:0;border-radius:0;background:transparent;box-shadow:none;min-width:0}
.lj-tour-page .lj-outros .m{border-radius:8px;overflow:hidden;aspect-ratio:3/2;height:auto}
.lj-tour-page .lj-outros .oc .m .lj-tour-placeholder svg{width:64px;height:64px}
.lj-tour-page .lj-outros .b{padding:16px 0}
.lj-tour-page .lj-outros .t{font-family:var(--font-custom-head,var(--font-body));font-size:21px;letter-spacing:-.035em;font-weight:550;overflow-wrap:anywhere}
.lj-tour-page .lj-det-bar{border-radius:0;margin-inline:0;gap:12px}
.lj-tour-page .lj-det-bar .pr{min-width:0}
.lj-tour-page .lj-det-bar-btn{max-width:70%;padding:12px 18px}
.lj-tour-page :is(a,button,input,select,summary):focus-visible{outline:2px solid var(--cor);outline-offset:3px}
@media(hover:hover) and (pointer:fine){.lj-tour-page .lj-outros .oc:hover{transform:none;box-shadow:none}}
@media(max-width:1000px){
  .lj-tour-page{padding-inline:28px}
  .lj-tour-page .lj-det{grid-template-columns:minmax(0,1fr) 340px;gap:28px;--shop-book-width:340px;--shop-book-margin:0 0 28px 28px}
  .lj-tour-page .lj-bx{padding:24px}
}
@media(max-width:820px){
  .lj-tour-page .lj-det{grid-template-columns:minmax(0,1fr);gap:32px}
  .lj-tour-page .lj-book{grid-column:auto;grid-row:auto;position:static;max-height:none;overflow:visible}
  .lj-tour-page .lj-det{display:grid}
  .lj-tour-page .lj-book{float:none;width:auto;margin:0}
  /* A caixa vem antes no HTML (ver detalhe.php); no celular a galeria volta para cima. */
  .lj-tour-page .lj-main{grid-row:1}.lj-tour-page .lj-book{grid-row:2}.lj-tour-page .lj-corpo{grid-row:3}.lj-tour-page .lj-outros{grid-row:4}
  .lj-tour-page .lj-corpo,.lj-tour-page .lj-outros{grid-column:auto}
}
@media(max-width:600px){
  .lj-tour-page{padding-inline:20px}
  .lj-tour-page .lj-back{margin-top:18px}
  .lj-tour-heading{padding:16px 0 26px}
  .lj-tour-page .lj-titulo{font-size:40px}
  .lj-tour-page .lj-subt{font-size:14px}
  .lj-tour-page .lj-gal-main{aspect-ratio:3/2;border-radius:var(--shop-radius,16px)}
  .lj-tour-page .lj-sec h2,.lj-tour-page .lj-outros h2{font-size:26px}
  .lj-tour-page .lj-inc{grid-template-columns:minmax(0,1fr)}
  .lj-tour-page .lj-outros .row{gap:18px}
  .lj-tour-page .lj-bx{padding:22px}
  .lj-tour-page .lj-emb{padding:18px} /* D06 (auditoria 30/09): grid do loja.css; 'anywhere' encolhia o texto a uma letra */
  .lj-tour-page .lj-emb .tx{min-width:0;overflow-wrap:break-word}
}
/* Ficha 07/10 — checkout em dois tempos: o modal CONFIRMA o que se reserva antes de pedir dados. */
.lj-ck-steps{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0 0 10px;padding:0;font-size:12px;color:var(--muted)}
.lj-ck-steps li{display:inline-flex;align-items:center;gap:6px}
.lj-ck-steps .n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--bord);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.lj-ck-steps .ok .n{background:var(--cor);border-color:var(--cor);color:var(--on-cor,#fff)}
.lj-ck-steps .on{color:var(--ink);font-weight:600}
.lj-ck-steps .on .n{border-color:var(--ink)}
.lj-ck-steps button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.lj-ck-resumo{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center;margin:0 0 20px;padding:12px;border-radius:10px;background:var(--surf)}
.lj-ck-resumo:not(:has(img)){grid-template-columns:minmax(0,1fr)}
.lj-ck-resumo img{width:64px;height:64px;object-fit:cover;border-radius:8px;background:var(--ph)}
.lj-ck-resumo .t{display:block;font-weight:700;font-size:15px;color:var(--ink);overflow-wrap:anywhere}
.lj-tour-page .lj-bx .lj-ck-resumo p{margin:2px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}
.lj-ck-resumo .tot{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
/* O erro do servidor mora DENTRO do modal, logo abaixo do cabeçalho: atrás do backdrop ninguém o lia. */
.lj-tour-page .lj-checkout .lj-erro{margin:0 0 16px}
/* Barra móvel que já sabe o que foi escolhido (data · pessoas · total). */
.lj-det-bar .pr .sel{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lj-det-bar .pr .tot{display:block;white-space:nowrap;font-variant-numeric:tabular-nums}
/* «Outros passeios»: o preço com o mesmo «A partir de» da caixa de reserva. */
.lj-tour-page .lj-outros .p b{color:var(--ink);font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.lj-tour-page .lj-book-next>.lj-btn{gap:8px}
.lj-checkout:focus{outline:none}

/* ── Ficha 07/10 · pasada 2 ───────────────────────────────────────────────────────────── */
/* Campos do checkout com cara de campo: fundo BRANCO e borda visível. Antes tinham o mesmo --surf
   da caixa de resumo e pareciam desabilitados — o turista não sabia onde tocar. */
.lj-tour-page #lj-form input:not([type=checkbox]):not([type=radio]):not([type=number]),.lj-tour-page #lj-form select{background:var(--card);border:1px solid color-mix(in srgb,var(--ink) 24%,var(--card));padding:10px 12px;transition:border-color 150ms ease}
.lj-tour-page #lj-form input:not([type=checkbox]):not([type=radio]):focus-visible,.lj-tour-page #lj-form select:focus-visible{outline:2px solid var(--cor);outline-offset:0;border-color:var(--cor)}
/* Erro por campo, no idioma da loja (substitui a bolha nativa, que falava o idioma do navegador). */
/* «p.lj-ferr» dentro da caixa: a regra genérica «.lj-bx p» (cinza, 13 px) ganhava e o aviso saía cinza. */
.lj-ferr,.lj-tour-page .lj-bx p.lj-ferr{margin:6px 0 0;font-size:13px;line-height:1.45;color:#c0362c;font-weight:600}
.lj-ferr[hidden]{display:none}
.lj-tour-page #lj-form input[aria-invalid=true]:not([type=checkbox]):not([type=radio]){border-color:#c0362c;background:color-mix(in srgb,#c0362c 4%,var(--card))}
.lj-tour-page #lj-form .lj-consent:has([aria-invalid=true]){color:#c0362c}
.lj-tour-page #lj-form .lj-consent [aria-invalid=true]{outline:2px solid #c0362c;outline-offset:2px}
/* O rótulo do aceite INTEIRO é o alvo (44 px), não a casinha de 20. */
.lj-tour-page .lj-checkout .lj-consent{min-height:44px;padding:6px 0;margin-top:14px;line-height:1.4}
/* Total UMA vez, no fim. O «bump» crescia a partir do centro e o valor vazava ~5 px da borda do
   modal a 1440: cresce para a esquerda (origem na direita) e o número nunca quebra. */
.lj-total b{transform-origin:right center;white-space:nowrap}
.lj-tour-page .lj-checkout .lj-total{margin-top:20px;gap:12px}
.lj-tour-page .lj-checkout .lj-total b{font-size:24px}
/* «Você não paga nada agora · R$ 180 no embarque»: selo, não tabela com um zero. */
.lj-split.is-livre{border-color:color-mix(in srgb,var(--cor) 35%,var(--card));background:color-mix(in srgb,var(--cor) 7%,var(--card))}
.lj-split .selo{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:10px 13px;font-size:13px;color:var(--muted)}
.lj-split .selo b{color:var(--ink);font-size:14px}
.lj-split .selo b::before{content:"✓";margin-right:6px;color:var(--cor)}
.lj-split .selo span{font-variant-numeric:tabular-nums}
/* Cancelamento colado na decisão: na caixa (link que abre o texto) e no resumo do modal (abre ali). */
.lj-cancel{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.lj-cancel .ic,.lj-ck-cancel .ic{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:5px;font-size:12px;text-decoration:none;background:color-mix(in srgb,var(--cor) 14%,var(--card));color:color-mix(in srgb,var(--cor) 72%,var(--ink))}
.lj-ck-cancel{grid-column:1/-1;font-size:13px}
.lj-ck-cancel summary{display:inline-flex;align-items:center;gap:8px;min-height:36px;cursor:pointer;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px;list-style:none}
.lj-ck-cancel summary::-webkit-details-marker{display:none}
.lj-ck-cancel>div{margin-top:6px;line-height:1.55;color:var(--muted);max-height:180px;overflow:auto}
.lj-tour-page #lj-politica{scroll-margin-top:calc(var(--shop-book-top,98px) + 8px)}
/* Ponto de encontro: um bloco, o embarque como principal e a loja física como dado secundário. */
.lj-tour-page .lj-emb.lj-encontro{display:block;padding:22px}
.lj-tour-page .lj-enc-h{font-family:var(--font-custom-head,var(--font-body));font-size:21px;font-weight:550;letter-spacing:-.025em;margin:0 0 14px}
.lj-enc-pri{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.lj-enc-sec{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;align-items:start;margin-top:16px;padding-top:14px;border-top:1px solid var(--bord);font-size:13px;color:var(--muted);line-height:1.55}
.lj-enc-sec .ic2{display:grid;place-items:center;width:42px;height:24px;color:var(--muted)}
.lj-enc-sec b{color:var(--ink);font-weight:600}
.lj-enc-sec .d{display:block}
.lj-enc-sec .lnk{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:color-mix(in srgb,var(--cor) 72%,var(--ink));text-decoration:underline;text-underline-offset:3px}
.lj-enc-sec.solo{margin-top:0;padding-top:0;border-top:0}
.lj-encontro .lj-cc-map{margin:16px 0 0}
.lj-encontro .lj-cc-fotos{margin:14px 0 0}
@media(max-width:600px){
  .lj-tour-page .lj-emb.lj-encontro{display:block;padding:18px}
  .lj-enc-pri{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px}
  .lj-enc-pri .tx{min-width:0;overflow-wrap:break-word}
  .lj-enc-pri a.maps{grid-column:1/-1;justify-content:center}
}
/* Barra móvel: «A partir de R$ 180 / pessoa» até o primeiro toque. */
.lj-det-bar .pr small{font-size:12px;color:var(--muted)}
/* Dono 07/10: «o color de las cards está horrible, que sea blanca o gris muy clara». Dentro da caixa
   de reserva e do modal nada usa --surf/--bg2 (durazno no tema tropical): branco (--card) ou um cinza
   quase branco tirado da tinta, sempre com borda de 1 px sutil. Derivado de --card/--ink (não #fff
   cravado) para os layouts grafite escuros continuarem legíveis. */
.lj-tour-page{--lj-neutro:color-mix(in srgb,var(--ink) 4%,var(--card));--lj-borda:color-mix(in srgb,var(--ink) 13%,var(--card))}
.lj-tour-page .lj-bx .lj-saida,.lj-tour-page .lj-bx .lj-saidas-mais{border-color:var(--lj-borda)}
.lj-tour-page .lj-bx .lj-saida:not(.is-selected):not(.is-disabled){background:var(--card)}
.lj-tour-page .lj-strow{border-bottom-color:var(--lj-borda)}
.lj-tour-page .lj-strow .step .st{background:var(--card);border:1px solid var(--lj-borda)}
.lj-tour-page .lj-strow .step .st:disabled{background:var(--lj-neutro)}
.lj-tour-page .lj-bx .lj-vg:not(.baixa){background:var(--lj-neutro);border:1px solid var(--lj-borda)}
.lj-tour-page .lj-bx .lj-pol .ic{background:var(--lj-neutro);border:1px solid var(--lj-borda)}
.lj-tour-page .lj-cancel .ic,.lj-tour-page .lj-ck-cancel .ic{background:var(--lj-neutro);border:1px solid var(--lj-borda)}
.lj-tour-page .lj-total{border-top-color:var(--lj-borda)}
.lj-tour-page .lj-ck-resumo{background:var(--lj-neutro);border:1px solid var(--lj-borda)}
.lj-tour-page .lj-split{border-color:var(--lj-borda)}
.lj-tour-page #lj-form input:not([type=checkbox]):not([type=radio]):not([type=number]),.lj-tour-page #lj-form select{border-color:color-mix(in srgb,var(--ink) 22%,var(--card))}
.lj-tour-page .lj-checkout-close,.lj-tour-page .lj-ck-steps .n{border-color:var(--lj-borda)}
/* Ponto de encontro e a política: cartões brancos com borda, como a caixa de reserva. */
.lj-tour-page .lj-emb,.lj-tour-page .lj-emb.lj-encontro{background:var(--card);border:1px solid var(--lj-borda)}
.lj-tour-page .lj-emb .ic{background:var(--lj-neutro);border:1px solid var(--lj-borda)}
.lj-tour-page .lj-enc-sec{border-top-color:var(--lj-borda)}
.lj-tour-page .lj-disc{background:var(--card);border-color:var(--lj-borda)}

/* ── QA 07/10 · dono: «nada durazno/naranja dentro de cards» ─────────────────────────────── */
/* «Só N vagas para amanhã»: era a caixa durazno (--acento 16 %) no meio da caixa branca. A urgência
   fica no TEXTO (acento escurecido pela tinta) sobre o mesmo cinza quase branco das outras linhas. */
.lj-tour-page .lj-bx .lj-vg.baixa{background:var(--lj-neutro);border:1px solid var(--lj-borda);color:color-mix(in srgb,var(--acento) 55%,var(--ink))}
/* Campo com erro: borda vermelha e o aviso embaixo bastam — o fundo rosado parecia campo bloqueado.
   Foco = borda da marca. Fundo SEMPRE branco (--card). */
.lj-tour-page #lj-form input[aria-invalid=true]:not([type=checkbox]):not([type=radio]){background:var(--card)}
.lj-tour-page #lj-form input[aria-invalid=true]:not([type=checkbox]):not([type=radio]):focus-visible{outline-color:#c0362c;border-color:#c0362c}
/* Aceite: «.lj-dates label{display:block}» (loja.css) ganhava do flex do .lj-consent e a casinha
   subia acima da linha do texto. E o rótulo inteiro ficava vermelho («Li» tingido): só a casinha
   ganha o contorno; o aviso vermelho já mora embaixo, no .lj-ferr. */
.lj-tour-page #lj-form label.lj-consent{display:flex;align-items:center;gap:10px;margin-bottom:0}
.lj-tour-page #lj-form .lj-consent:has([aria-invalid=true]){color:var(--muted)}
.lj-tour-page #lj-form .lj-consent input[aria-invalid=true]{outline:2px solid #c0362c;outline-offset:1px;border-radius:3px}
/* O código vai em maiúsculas; o exemplo do placeholder, não («EX.: VERAO20» gritava). */
.lj-tour-page #lj-cupom::placeholder{text-transform:none}
/* Modal: o cabeçalho (passos + título + X) gruda no topo enquanto o formulário rola — antes a X
   sumia ao descer e no celular o turista não achava como sair. Fundo do próprio modal para o texto
   não passar por baixo. */
.lj-tour-page .lj-checkout .lj-checkout-head{position:sticky;top:-28px;z-index:2;margin:-28px -28px 20px;padding:20px 28px 14px;background:var(--card);border-bottom:1px solid var(--lj-borda)}
@media(max-width:600px){.lj-tour-page .lj-checkout .lj-checkout-head{top:-24px;margin:-24px -20px 18px;padding:16px 20px 12px}}
/* Com o modal aberto a barra verde fixa (z 30) aparecia por baixo do diálogo a 375. Ela é o atalho
   para ABRIR o modal — aberto, não tem função. */
body:has(dialog.lj-checkout[open]) .lj-det-bar{display:none}
/* Cupom aplicado, visível na caixa (o campo mora no modal). */
.lj-tour-page .lj-bx p.lj-cup-linha{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:14px 0 0;padding:9px 12px;border:1px solid var(--lj-borda);border-radius:8px;background:var(--lj-neutro);font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}
.lj-cup-linha[hidden]{display:none!important}
.lj-cup-linha .tx{font-weight:600}
.lj-cup-linha button{min-height:32px;padding:0;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
/* Sem datas: frase curta + uma saída, logo abaixo do título. */
.lj-semdatas{margin-top:10px}
.lj-tour-page .lj-bx .lj-semdatas p{margin:0 0 14px;font-size:14px}
.lj-tour-page .lj-bx .lj-semdatas .lj-btn{width:100%}
/* A regra «Dono 07/10» dos campos (3 :not) ganhava da borda vermelha (2 :not): só o campo em foco
   ficava vermelho; telefone e e-mail com erro pareciam certos. Mesma especificidade + ordem = vence. */
.lj-tour-page #lj-form input[aria-invalid=true]:not([type=checkbox]):not([type=radio]):not([type=number]){border-color:#c0362c;background:var(--card)}
