:root { --caf-ink:#070d10; --caf-teal:#17323c; --caf-amber:#e8a33d; --caf-cream:#f6f1e7; --caf-muted:#c9c4b8; --caf-line:rgba(228,214,190,.22); --caf-pad:clamp(1.25rem,5vw,5rem); --caf-ease:cubic-bezier(.22,1,.36,1); --caf-display:'Barlow Condensed',sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--caf-ink); color:var(--caf-cream); font:400 16px/1.55 Barlow,system-ui,sans-serif; }
body:has(.caf-lightbox[open]) { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; }
.caf-wrap { width:min(1180px,calc(100% - 2 * var(--caf-pad))); margin-inline:auto; }
.caf-skip { position:fixed; z-index:300; top:-5rem; left:1rem; padding:.75rem 1rem; background:var(--caf-amber); color:var(--caf-ink); font-weight:700; text-decoration:none; }
.caf-skip:focus { top:1rem; }

/* Navegação compartilhada com as experiências do rancho. */
.caf-topbar { position:fixed; z-index:100; inset:0 0 auto; border-bottom:1px solid transparent; transition:background .4s var(--caf-ease),border-color .4s var(--caf-ease),backdrop-filter .4s var(--caf-ease); }
.caf-topbar.is-stuck { border-bottom-color:var(--caf-line); background:rgba(7,13,16,.84); backdrop-filter:blur(14px); }
.caf-topbar__inner { display:flex; min-height:4.2rem; align-items:center; justify-content:space-between; gap:1rem; }
.caf-topbar__brand { display:flex; min-width:0; align-items:center; gap:.65rem; line-height:1; text-decoration:none; }
.caf-topbar__seal { width:40px; height:40px; flex:0 0 auto; padding:5px; border:1px solid var(--caf-line); border-radius:50%; background:var(--caf-ink); object-fit:contain; }
.caf-topbar__brand-text { display:grid; gap:.1rem; min-width:0; }
.caf-topbar__brand strong { font-family:var(--caf-display); font-size:clamp(1rem,2.4vw,1.3rem); letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.caf-topbar__brand small { color:var(--caf-amber); font-size:.62rem; letter-spacing:.34em; text-transform:uppercase; }
.caf-topbar__nav { display:flex; align-items:center; justify-content:flex-end; gap:clamp(.7rem,2vw,1.55rem); }
.caf-topbar__nav a { position:relative; padding:.35rem 0; color:var(--caf-muted); font-family:var(--caf-display); font-size:.78rem; font-weight:600; letter-spacing:.18em; text-decoration:none; text-transform:uppercase; transition:color .25s var(--caf-ease); }
.caf-topbar__nav a::after { position:absolute; right:0; bottom:0; left:0; height:1px; background:var(--caf-amber); content:""; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--caf-ease); }
.caf-topbar__nav a:hover,.caf-topbar__nav a:focus-visible { color:var(--caf-cream); }
.caf-topbar__nav a:hover::after,.caf-topbar__nav a:focus-visible::after { transform:scaleX(1); }
.caf-topbar__tools { display:flex; align-items:center; gap:.6rem; }
.caf-topbar__toggle { display:none; width:2.6rem; height:2.6rem; place-content:center; gap:5px; padding:0; border:1px solid var(--caf-line); border-radius:2px; background:transparent; cursor:pointer; }
.caf-topbar__toggle span { display:block; width:1.1rem; height:1.5px; background:var(--caf-cream); transition:transform .3s var(--caf-ease),opacity .25s var(--caf-ease); }
.caf-topbar__toggle[aria-expanded="true"] span:first-child { transform:translateY(6.5px) rotate(45deg); }.caf-topbar__toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }.caf-topbar__toggle[aria-expanded="true"] span:last-child { transform:translateY(-6.5px) rotate(-45deg); }

.caf-hero { position:relative; display:grid; min-height:100svh; align-items:end; overflow:hidden; background:var(--caf-ink); }
.caf-hero__media,.caf-hero__media picture,.caf-hero__media img,.caf-hero__overlay { position:absolute; inset:0; width:100%; height:100%; }
.caf-hero__media { z-index:0; overflow:hidden; }.caf-hero__media img { object-fit:cover; object-position:56% center; filter:saturate(.9); }
.caf-hero__overlay { z-index:1; background:linear-gradient(180deg,rgba(7,13,16,.7) 0%,rgba(7,13,16,.1) 26%,rgba(7,13,16,0) 45%),linear-gradient(95deg,rgba(7,13,16,.9) 0%,rgba(7,13,16,.55) 42%,rgba(7,13,16,.12) 70%),linear-gradient(to top,rgba(7,13,16,.96) 0%,rgba(7,13,16,.35) 40%,rgba(7,13,16,0) 68%); }
.caf-hero__content { position:relative; z-index:2; display:grid; justify-items:start; gap:1.05rem; padding-block:clamp(7rem,12vh,10rem) clamp(3rem,8vh,6rem); }
.caf-live,.caf-label { display:flex; align-items:center; gap:.6rem; margin:0; color:var(--caf-amber); font-family:var(--caf-display); font-size:.72rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; }
.caf-live i { width:.5rem; height:.5rem; border-radius:50%; background:var(--caf-amber); box-shadow:0 0 0 .3rem rgba(232,163,61,.14); animation:caf-pulse 1.8s var(--caf-ease) infinite; }
.caf-hero__title { max-width:12ch; margin:0; font-family:var(--caf-display); font-size:clamp(3.2rem,13vw,9rem); font-weight:700; letter-spacing:-.015em; line-height:.82; text-transform:uppercase; }
.caf-hero__line { display:block; padding-top:.18em; margin-top:-.08em; }
.caf-hero__rule { width:min(20rem,60%); margin:.3rem 0 0; border:0; border-top:1px solid var(--caf-amber); }
.lede { max-width:38rem; margin:0; color:rgba(246,241,231,.91); font-size:clamp(1rem,1.5vw,1.17rem); line-height:1.55; }
.caf-hero__actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.35rem; }
.caf-btn { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:.85rem 1.45rem; border:1px solid transparent; border-radius:2px; font-family:var(--caf-display); font-size:.88rem; font-weight:600; letter-spacing:.18em; text-decoration:none; text-transform:uppercase; transition:transform .25s var(--caf-ease),background .25s var(--caf-ease),border-color .25s var(--caf-ease); }
.caf-btn:hover,.caf-btn:focus-visible { transform:translateY(-2px); }.caf-btn--solid { background:var(--caf-amber); color:var(--caf-ink); }.caf-btn--solid:hover,.caf-btn--solid:focus-visible { background:#f3bd66; }.caf-btn--ghost { border-color:rgba(246,241,231,.45); background:transparent; color:var(--caf-cream); }
.caf-hero__meta { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0 0; padding:0; list-style:none; }.caf-hero__meta li { display:grid; gap:.15rem; min-width:5.2rem; padding:.55rem .75rem; border:1px solid var(--caf-line); background:rgba(7,13,16,.42); }.caf-hero__meta span { color:var(--caf-muted); font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; }.caf-hero__meta strong { font-family:var(--caf-display); font-size:1.05rem; letter-spacing:.08em; }
.caf-hero__cue { position:absolute; z-index:2; bottom:1.4rem; left:50%; width:1px; height:40px; overflow:hidden; background:rgba(246,241,231,.25); }.caf-hero__cue::after { position:absolute; inset:0 0 auto; height:40%; background:linear-gradient(transparent,var(--caf-amber)); content:""; animation:caf-cue 2.2s var(--caf-ease) infinite; }

.caf-intro,.caf-gallery,.caf-program { padding-block:clamp(5rem,11vw,8rem); }.caf-intro { background:linear-gradient(160deg,var(--caf-teal),var(--caf-ink) 72%); }.caf-intro__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(18rem,.85fr); gap:clamp(2.5rem,9vw,9rem); align-items:start; }.caf-intro h2,.caf-section-head h2,.caf-program h2,.caf-reserve h2 { max-width:12ch; margin:.8rem 0 0; font-family:var(--caf-display); font-size:clamp(2.7rem,6.5vw,5.7rem); letter-spacing:-.02em; line-height:.88; text-transform:uppercase; }.caf-prose { display:grid; gap:1.1rem; color:var(--caf-muted); font-size:1.1rem; }.caf-prose p { margin:0; }.caf-prose strong { color:var(--caf-amber); }
.caf-gallery { background:linear-gradient(180deg,var(--caf-ink),var(--caf-teal) 58%,var(--caf-ink)); }.caf-section-head { display:grid; gap:.9rem; margin-bottom:clamp(2rem,5vw,3.5rem); }.caf-section-head h2 { max-width:13ch; }.caf-gallery__tabs { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.35rem; }.caf-gallery__tabs button { min-height:44px; padding:.65rem 1rem; border:1px solid var(--caf-line); background:transparent; color:var(--caf-muted); font:600 .82rem/1 var(--caf-display); letter-spacing:.13em; text-transform:uppercase; cursor:pointer; transition:color .2s var(--caf-ease),background .2s var(--caf-ease),border-color .2s var(--caf-ease); }.caf-gallery__tabs button span { margin-left:.35rem; opacity:.7; font-size:.72rem; }.caf-gallery__tabs button[aria-pressed="true"],.caf-gallery__tabs button:hover,.caf-gallery__tabs button:focus-visible { border-color:var(--caf-amber); background:var(--caf-amber); color:var(--caf-ink); }/* ---------- galeria: carrossel "squeeze" (foto 16:9 + colunas + rabo) ---------- */.caf-sq { min-width:0; }.caf-sq__viewport { position:relative; width:100%; overflow:hidden; outline:none; padding:10px 0 4px; }.caf-sq__viewport:focus-visible { box-shadow:0 0 0 2px var(--caf-amber); }.caf-sq__track { display:flex; align-items:stretch; will-change:transform; transition:transform 1000ms cubic-bezier(.16,1,.3,1); }.caf-sq__track.is-instant { transition:none; }.caf-sq__card { position:relative; flex:0 0 auto; height:100%; padding:0; overflow:hidden; border:0; background:var(--caf-teal); cursor:pointer; transition:width 1000ms cubic-bezier(.16,1,.3,1); }.caf-sq__track.is-instant .caf-sq__card { transition:none; }.caf-sq__card:focus-visible { z-index:2; outline:2px solid var(--caf-amber); outline-offset:-3px; }/* DURANTE a animação a imagem fica no bloco 16:9 do herói e centralizada (o card estreita e a imagem é recortada, nunca reescalada: era o serrilhado). */
.caf-sq__media { position:absolute; top:0; left:50%; display:block; overflow:hidden; width:var(--sq-hero-w,100%); height:var(--sq-h,100%); transform:translateX(-50%); transition:none; }
/* EM REPOUSO cada card enquadra a PRÓPRIA foto (cover na largura do card): sem fatia central decapitando gente. */
.caf-sq__track.is-repouso .caf-sq__media { left:0; width:100%; height:100%; transform:none; transition:width .12s var(--caf-ease),height .12s var(--caf-ease),left .12s var(--caf-ease),transform .12s var(--caf-ease); }
.caf-sq__track.is-instant .caf-sq__media { transition:none; }
.caf-sq__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--sq-foco,50% 38%); }
/* Ripa fina (rabo) é decoração: escurecida e levemente desfocada, sem ler como foto cortada. */
.caf-sq__card.is-ripa .caf-sq__media { filter:brightness(.62) saturate(.82) blur(1px); }
.caf-sq__card.is-ripa { cursor:pointer; }.caf-sq__card[aria-selected="true"] { cursor:zoom-in; }.caf-sq__pe { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.1rem; }.caf-sq__legenda { min-height:1.2rem; margin:0; color:var(--caf-muted); font-family:var(--caf-display); font-size:.95rem; letter-spacing:.06em; text-transform:uppercase; font-variant-numeric:tabular-nums; transition:opacity .18s var(--caf-ease); }.caf-sq__legenda.is-trocando { opacity:0; }.caf-sq__controles { display:flex; gap:.6rem; }.caf-sq__controles button { display:grid; width:2.75rem; height:2.75rem; place-items:center; border:1px solid var(--caf-line); border-radius:2px; background:transparent; color:var(--caf-cream); cursor:pointer; transition:background .2s var(--caf-ease),border-color .2s var(--caf-ease),color .2s var(--caf-ease); }.caf-sq__controles button:hover,.caf-sq__controles button:focus-visible { border-color:var(--caf-amber); background:var(--caf-amber); color:var(--caf-ink); }.caf-sq__controles button:disabled { border-color:rgba(228,214,190,.1); color:rgba(246,241,231,.3); cursor:not-allowed; }.caf-sq__controles svg { width:1.35rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:1.8; }
.caf-lightbox { width:min(94vw,1100px); max-width:none; max-height:90vh; padding:0; border:1px solid var(--caf-line); background:var(--caf-ink); }.caf-lightbox::backdrop { background:rgba(0,0,0,.88); }.caf-lightbox__frame { position:relative; display:grid; place-items:center; min-width:min(94vw,560px); }.caf-lightbox figure { display:grid; width:100%; margin:0; }.caf-lightbox img { max-width:100%; max-height:85vh; margin:auto; object-fit:contain; }.caf-lightbox figcaption { position:absolute; right:1rem; bottom:1rem; padding:.35rem .55rem; background:rgba(7,13,16,.78); color:var(--caf-cream); font-size:.78rem; font-variant-numeric:tabular-nums; }.caf-lightbox button { display:grid; width:2.75rem; height:2.75rem; place-items:center; border:1px solid var(--caf-line); background:rgba(7,13,16,.82); color:var(--caf-cream); cursor:pointer; transition:background .2s var(--caf-ease),border-color .2s var(--caf-ease); }.caf-lightbox button:hover,.caf-lightbox button:focus-visible { border-color:var(--caf-amber); background:var(--caf-teal); }.caf-lightbox svg { width:1.35rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:1.8; }.caf-lightbox__close { position:absolute; z-index:2; top:.65rem; right:.65rem; }.caf-lightbox__nav { position:absolute; z-index:2; top:50%; transform:translateY(-50%); }.caf-lightbox__nav--prev { left:.65rem; }.caf-lightbox__nav--next { right:.65rem; }/* Foto ampliada: enquanto carrega, a imagem antiga fica INVISÍVEL sobre um fundo neutro da paleta (nada de piscar branco nem mostrar a foto anterior). */.caf-lightbox figure { position:relative; background:var(--caf-teal); }.caf-lightbox figure.is-carregando img { opacity:0; }.caf-lightbox figure img { transition:opacity .18s var(--caf-ease); }.caf-lightbox figure.is-carregando::after { position:absolute; inset:auto 50% 50% auto; transform:translate(50%,50%); color:var(--caf-muted); font:600 .78rem/1 var(--caf-display); letter-spacing:.16em; text-transform:uppercase; content:"Carregando foto…"; }.caf-lightbox__erro { position:absolute; z-index:2; bottom:.9rem; left:50%; transform:translateX(-50%); margin:0; color:var(--caf-amber); font:600 .82rem/1.3 var(--caf-display); letter-spacing:.06em; text-align:center; }.caf-lightbox__erro:empty { display:none; }
.caf-sticky { position:fixed; z-index:70; right:0; bottom:0; left:0; display:none; padding:11px 14px calc(11px + env(safe-area-inset-bottom)); border-top:1px solid var(--caf-line); background:rgba(7,13,16,.97); box-shadow:0 -10px 28px rgba(0,0,0,.25); transition:transform .25s var(--caf-ease),opacity .25s var(--caf-ease); }.caf-sticky.is-hidden { pointer-events:none; opacity:0; transform:translateY(110%); }.caf-sticky .caf-btn { width:100%; min-height:48px; }.caf-sticky .caf-btn span { margin-inline:.25rem; }
.caf-pricing__actions{display:grid;gap:.7rem;justify-items:start}.caf-pricing__help{color:var(--caf-muted);font-size:.9rem;text-underline-offset:.2em}.caf-pricing__help:hover,.caf-pricing__help:focus-visible{color:var(--caf-cream)}.caf-sale-status{min-height:1.4rem;color:var(--caf-amber);font-size:.9rem}.caf-order{width:min(34rem,calc(100vw - 1rem));max-height:calc(100svh - 1rem);box-sizing:border-box;overflow:auto;border:1px solid var(--caf-line);background:var(--caf-ink);color:var(--caf-cream);padding:0}.caf-order::backdrop{background:rgba(2,8,10,.8);backdrop-filter:blur(4px)}.caf-order__frame{position:relative;padding:clamp(1.25rem,5vw,2.5rem)}.caf-order h2{max-width:13ch;margin:.35rem 2.5rem 1rem 0;font:700 clamp(2.2rem,8vw,3.8rem)/.88 var(--caf-display);letter-spacing:-.02em;text-transform:uppercase}.caf-order__step>p:not(.caf-order__eyebrow):not(.caf-order__total):not(.caf-order__error):not(.caf-order__upload-status){color:var(--caf-muted)}.caf-order__eyebrow{margin:0;color:var(--caf-amber);font:.72rem var(--caf-display);font-weight:600;letter-spacing:.18em;text-transform:uppercase}.caf-order__close{position:absolute;top:1rem;right:1rem;display:grid;width:2.5rem;height:2.5rem;place-items:center;border:1px solid var(--caf-line);border-radius:50%;background:transparent;color:var(--caf-cream);cursor:pointer}.caf-order__close svg{width:1.2rem;fill:none;stroke:currentColor;stroke-width:1.8}.caf-order__quantities{display:grid;margin:1.5rem 0;border-top:1px solid var(--caf-line)}.caf-order__quantities label{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--caf-line);font-weight:700}.caf-order__quantities span{grid-column:1;color:var(--caf-muted);font-size:.84rem;font-weight:400}.caf-order__quantities input{grid-column:2;grid-row:1 / span 2;width:4.5rem;padding:.55rem;border:1px solid var(--caf-line);background:var(--caf-teal);color:var(--caf-cream);text-align:center}.caf-order__total{display:flex;justify-content:space-between;margin:1.25rem 0;font-size:1.05rem}.caf-order__total strong{color:var(--caf-amber);font:700 2rem/1 var(--caf-display)}.caf-order__error{min-height:1.35rem;margin:.75rem 0;color:#ff9b87}.caf-order__buttons{display:flex;flex-wrap:wrap;gap:.75rem}.caf-order__notice{padding:1rem;border:1px solid var(--caf-line);background:var(--caf-teal);color:var(--caf-muted)}.caf-order__step dl{display:grid;grid-template-columns:1fr auto;gap:.7rem 1rem;margin:1.5rem 0}.caf-order__step dt{color:var(--caf-muted)}.caf-order__step dd{margin:0;font-weight:700}.caf-order__proof{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.85rem 1.2rem;border:1px solid var(--caf-amber);background:var(--caf-amber);color:var(--caf-ink);font:600 .88rem var(--caf-display);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.caf-order__upload-status{min-height:1.4rem;color:var(--caf-muted)}.caf-order__account{display:inline-block;margin-top:.75rem;color:var(--caf-amber);font-weight:700}
.caf-page [data-rv],.caf-page [data-rv-line] { opacity:1; transform:none; }.caf-page.js-caf [data-rv] { opacity:0; transform:translateY(20px); }.caf-page.js-caf [data-rv-line] { clip-path:inset(0 0 100% 0); }
@keyframes caf-pulse { 50% { box-shadow:0 0 0 .55rem rgba(232,163,61,0); } } @keyframes caf-cue { 0% { transform:translateY(-100%); } 100% { transform:translateY(250%); } }
/* ============================================================
   RESTAURADO 2026-09-17 — regras base perdidas no commit 2d237fe
   (galeria squeeze): ao remover o carrossel antigo, o estilo de
   program/agenda/address/pricing/reserve foi junto, e no site
   publicado a secao de valores virou texto corrido. Recuperadas de
   a112ae9, ultimo commit onde existiam. Ficam ANTES dos @media de
   proposito: os ajustes de celular precisam vir depois para vencer.
   ============================================================ */
.caf-program__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(18rem,.9fr); gap:clamp(2.5rem,7vw,7rem); align-items:center; }
.caf-program__media { display:grid; min-height:30rem; margin:0; overflow:hidden; border:1px solid var(--caf-line); }
.caf-program__media img { width:100%; height:100%; object-fit:cover; }
.caf-agenda { margin:2rem 0; padding:0; list-style:none; border-top:1px solid var(--caf-line); }
.caf-agenda li { display:grid; grid-template-columns:7rem 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--caf-line); }
.caf-agenda time { color:var(--caf-amber); font-family:var(--caf-display); font-size:1.05rem; letter-spacing:.1em; }
.caf-address { margin:0; color:var(--caf-muted); }
.caf-pricing { padding-block:clamp(5rem,10vw,8rem); background:linear-gradient(145deg,var(--caf-teal),#132126); }
.caf-pricing__head { display:grid; grid-template-columns:minmax(0,1fr) minmax(18rem,.62fr); gap:2rem; align-items:end; margin-bottom:clamp(2.5rem,5vw,4rem); }
.caf-pricing h2 { max-width:12ch; margin:0; font-family:var(--caf-display); font-size:clamp(2.7rem,6.5vw,5.7rem); letter-spacing:-.02em; line-height:.88; text-transform:uppercase; }
.caf-pricing__head p { max-width:31rem; margin:0; color:var(--caf-muted); font-size:1.05rem; }
.caf-pricing__list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--caf-line); border-bottom:1px solid var(--caf-line); }
.caf-pricing__list div { display:grid; align-content:start; gap:.45rem; min-height:13rem; padding:1.5rem clamp(1rem,3vw,2.5rem); }
.caf-pricing__list div + div { border-left:1px solid var(--caf-line); }
.caf-pricing__list span,.caf-pricing__list small { color:var(--caf-muted); }
.caf-pricing__list strong { color:var(--caf-amber); font-family:var(--caf-display); font-size:clamp(2.2rem,4.5vw,4.3rem); line-height:1; letter-spacing:.03em; }
.caf-pricing__footer { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-top:1.5rem; }
.caf-pricing__footer p { margin:0; color:var(--caf-muted); }
.caf-pricing__footer strong { color:var(--caf-cream); }
.caf-reserve { padding-block:clamp(4rem,8vw,6rem); background:var(--caf-teal); }
.caf-reserve__inner { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.caf-reserve p:not(.caf-label) { max-width:36rem; color:var(--caf-muted); }
.caf-reserve .caf-btn { flex:0 0 auto; }

@media (max-width:860px) { .caf-topbar__toggle { display:grid; }.caf-topbar__brand,.caf-topbar__tools { position:relative; z-index:2; }.caf-topbar__nav { position:fixed; inset:0 0 auto; z-index:1; height:100svh; flex-direction:column; justify-content:center; gap:1.6rem; background:rgba(7,13,16,.98); backdrop-filter:blur(16px); transform:translateY(-100%); transition:transform .5s var(--caf-ease); }.caf-topbar__nav.is-open { transform:translateY(0); }.caf-topbar__nav a { font-size:1.1rem; letter-spacing:.24em; } }
@media (max-width:720px) { body.caf-page { padding-bottom:78px; }.caf-topbar__inner { min-height:3.8rem; }.caf-topbar__brand strong { font-size:.95rem; letter-spacing:.08em; }.caf-topbar__brand small { font-size:.56rem; }.caf-topbar__seal { width:34px; height:34px; }.caf-hero__media img { object-position:56% center; }.caf-hero__content { padding-top:max(6rem,calc(5rem + env(safe-area-inset-top))); gap:.85rem; }.caf-hero__title { max-width:10ch; font-size:clamp(3.4rem,16vw,5.5rem); }.caf-hero__actions { width:100%; }.caf-hero__actions .caf-btn--solid { width:100%; }.caf-hero__actions .caf-btn--ghost { min-height:44px; padding-inline:0; border:0; text-decoration:underline; }.caf-hero__meta { flex-wrap:nowrap; width:100%; overflow-x:auto; }.caf-intro__grid,.caf-program__grid,.caf-pricing__head { grid-template-columns:1fr; }.caf-program__media { min-height:20rem; }.caf-gallery__tabs { display:grid; grid-template-columns:repeat(3,1fr); }.caf-gallery__tabs button { padding-inline:.55rem; letter-spacing:.09em; }.caf-pricing__list { grid-template-columns:1fr; }.caf-pricing__list div { min-height:auto; padding:1.3rem 0; }.caf-pricing__list div + div { border-top:1px solid var(--caf-line); border-left:0; }.caf-pricing__footer,.caf-reserve__inner { align-items:flex-start; flex-direction:column; }.caf-pricing__footer .caf-btn,.caf-reserve .caf-btn { width:100%; }.caf-sticky { display:block; }.caf-lightbox { width:calc(100vw - 1rem); }.caf-lightbox__frame { min-width:0; }.caf-lightbox__nav { top:auto; bottom:.7rem; transform:none; }.caf-lightbox__nav--prev { left:.7rem; }.caf-lightbox__nav--next { right:.7rem; }.caf-lightbox figcaption { right:50%; bottom:1rem; transform:translateX(50%); white-space:nowrap; } }
@media (max-width:520px) { .caf-sq__pe { flex-direction:column; align-items:flex-start; gap:.7rem; } .caf-sq__legenda { font-size:.88rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.caf-sq__track,.caf-sq__card { transition:none !important; }.caf-page * { animation-duration:.001ms !important; transition-duration:.001ms !important; }.caf-page.js-caf [data-rv],.caf-page.js-caf [data-rv-line] { opacity:1; clip-path:none; transform:none; }.caf-hero__media img { transform:none !important; }.caf-lightbox::backdrop { backdrop-filter:none; } }

/* Escolha de pagamento: estrutura reaproveitável para Café e Rodeio. */
.caf-order__payments { display:grid; gap:.75rem; margin:1.5rem 0; }
.caf-payment-option { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:center; width:100%; padding:1rem; border:1px solid var(--caf-line); background:var(--caf-teal); color:var(--caf-cream); text-align:left; cursor:pointer; transition:border-color .2s var(--caf-ease),background .2s var(--caf-ease),box-shadow .2s var(--caf-ease); }
.caf-payment-option:hover { border-color:var(--caf-muted); background:#132126; }
.caf-payment-option.is-selected { border-color:var(--caf-amber); box-shadow:inset 3px 0 0 var(--caf-amber); }
.caf-payment-option__copy { display:grid; gap:.35rem; }
.caf-payment-option__copy strong { font-family:var(--caf-display); font-size:1.15rem; letter-spacing:.035em; text-transform:uppercase; }
.caf-payment-option__copy small { color:var(--caf-muted); font-size:.88rem; line-height:1.35; }
.caf-payment-option__brands,.caf-payment-option__deadline { color:var(--caf-amber); font:600 .7rem/1.55 var(--caf-display); letter-spacing:.08em; text-align:right; text-transform:uppercase; white-space:nowrap; }
.caf-order__payment-status { min-height:1.4rem; margin:.75rem 0; color:var(--caf-amber); }
.caf-order button:focus-visible,.caf-order input:focus-visible { outline:2px solid var(--caf-amber); outline-offset:3px; }
.caf-payment-option:focus-visible { outline-offset:-4px; }
.caf-payment-option.is-soon,.caf-payment-option.is-soon:hover { cursor:not-allowed; opacity:.55; border-style:dashed; border-color:var(--caf-line); background:var(--caf-teal); box-shadow:none; }
.caf-payment-option__soon { justify-self:end; padding:.3rem .6rem; border:1px solid var(--caf-amber); color:var(--caf-amber); font:600 .7rem/1 var(--caf-display); letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
@media (max-width:420px) { .caf-payment-option { grid-template-columns:1fr; gap:.65rem; }.caf-payment-option__soon { justify-self:start; }.caf-payment-option__brands,.caf-payment-option__deadline { text-align:left; white-space:normal; }.caf-order__buttons .caf-btn { width:100%; } }

/* Lista de ingressos emitidos na volta da Stripe. O codigo curto e o que a
   equipe le na entrada, entao ele vem grande e em destaque. */
.caf-order__ingressos { display:grid; gap:.5rem; margin:1rem 0; padding:0; list-style:none; }
.caf-order__ingressos li { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:.7rem .9rem; border:1px solid var(--caf-line); background:var(--caf-teal); }
.caf-order__ingressos strong { color:var(--caf-amber); font:700 1.6rem/1 var(--caf-display); letter-spacing:.08em; }
.caf-order__ingressos span { color:var(--caf-muted); font-size:.82rem; letter-spacing:.06em; }

/* Ingresso na tela de confirmacao: QR ao lado do codigo curto. O QR e o que a
   camera le; o codigo curto e o plano B quando a camera falha. */
.caf-order__ingressos li { align-items:center; }
.caf-ingresso__qr { display:block; width:5.5rem; height:5.5rem; padding:.35rem; background:#f6f1e7; }
.caf-ingresso__qr svg { display:block; width:100%; height:100%; }
.caf-ingresso__dados { display:grid; gap:.15rem; text-align:right; }
@media (max-width:420px) { .caf-order__ingressos li { flex-direction:column; align-items:flex-start; gap:.6rem; } .caf-ingresso__dados { text-align:left; } }
.caf-order__zelle-steps { display:grid; gap:.6rem; margin:0; padding-left:1.25rem; line-height:1.45; }
.caf-order__zelle-steps strong { color:var(--caf-amber); font-weight:700; }
/* ---------- idioma PT | EN (js/cafe-i18n.js) ----------
   Fica fora do menu: no celular e no pacote da Hostinger (que esconde nav,
   hambúrguer e carrinho) o seletor continua visível. */
.caf-lang { font:600 .8rem/1 var(--caf-display); letter-spacing:.1em; }
/* Topbar cheia (Vercel: idioma + carrinho + conta + menu): no celular os
   botões encolhem e a marca quebra em duas linhas; abaixo de 380px só o selo
   fica (o link mantém o aria-label). O pacote da Hostinger, que não tem
   carrinho nem menu, devolve o nome — ver scripts/build-hostinger.mjs. */
@media (max-width:480px) { .caf-topbar__inner { gap:.5rem; }.caf-topbar__tools { gap:.3rem; }.caf-topbar__tools .cart-toggle,.caf-topbar__tools .account-toggle,.caf-topbar__toggle { width:2.4rem; height:2.4rem; }.caf-topbar__brand { gap:.5rem; }.caf-topbar__brand strong { font-size:.8rem; letter-spacing:.06em; white-space:normal; line-height:1.05; }.caf-topbar__brand small { font-size:.5rem; letter-spacing:.22em; white-space:nowrap; } }
@media (max-width:380px) { .caf-topbar__brand-text { display:none; } }
/* Em EN o corpo espera a tradução (sem piscar PT); o i18n libera sozinho. */
html.tbr-i18n-pendente body { visibility:hidden; }
html[lang="en"] .caf-lightbox figure.is-carregando::after { content:"Loading photo…"; }
