
body{margin:0}
.jv *{box-sizing:border-box}
.jv button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
.jv a{color:inherit}
.jv img{display:block}
.jv :focus-visible{outline:2px solid #24397A;outline-offset:3px}
.jv input,.jv textarea{font:inherit;color:#35251F}
.jv input::placeholder,.jv textarea::placeholder{color:#8C7867}
.jv input:focus,.jv textarea:focus{outline:none;border-color:#24397A !important;box-shadow:0 0 0 4px rgba(36,57,122,.14)}
#jv-scroll{scroll-behavior:smooth}

/* ---------- movimento base ---------- */
.jv-ease{transition-timing-function:cubic-bezier(.2,.7,.2,1)}
.jv-in{animation:jvIn .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes jvIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.jv-line{display:block;overflow:hidden;padding-bottom:.04em}
.jv-line>span{display:block;animation:jvLine 1.05s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvLine{from{transform:translateY(108%)}to{transform:none}}
.jv-reveal{animation:jvClip 1.35s cubic-bezier(.65,.05,.2,1) both}
@keyframes jvClip{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.jv-reveal img{animation:jvSettle 1.8s cubic-bezier(.2,.7,.2,1) both}
@keyframes jvSettle{from{transform:scale(1.14)}to{transform:scale(1)}}
.jv-float{animation:jvFloat 7s ease-in-out infinite}
@keyframes jvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.jv-spin{animation:jvSpin 36s linear infinite;transform-origin:50% 50%}
@keyframes jvSpin{to{transform:rotate(360deg)}}
.jv-marq{animation:jvMarq 46s linear infinite}
@keyframes jvMarq{to{transform:translateX(-50%)}}
.jv-fade{animation:jvIn .65s cubic-bezier(.2,.7,.2,1) both}
.jv-img{animation:jvImg .9s ease both}
@keyframes jvImg{from{opacity:0}to{opacity:1}}

/* revelação no scroll + parallax (CSS puro, sem JS) */
@supports (animation-timeline: view()){
.jv-rv{animation:jvRv linear both;animation-timeline:view();animation-range:entry 5% entry 55%}
@keyframes jvRv{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
.jv-par{overflow:hidden}
.jv-par>img{height:118% !important;animation:jvPar linear both;animation-timeline:view();animation-range:cover}
@keyframes jvPar{from{transform:translateY(-15%)}to{transform:translateY(0)}}
}

/* ---------- produtos ---------- */
.jv-card{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.jv-media{transition:box-shadow .5s cubic-bezier(.2,.7,.2,1)}
.jv-media img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.jv-peek{opacity:0;transform:translateY(10px);transition:opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
.jv-addlbl{display:inline-block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .45s cubic-bezier(.2,.7,.2,1),opacity .3s,margin .45s}
.jv-addlbl.jv-on{max-width:120px;opacity:1;margin-left:8px}
@media (hover:hover){
.jv-card:hover{transform:translateY(-6px)}
.jv-card:hover .jv-media{box-shadow:0 30px 60px -34px rgba(53,37,31,.6),0 2px 6px rgba(53,37,31,.06)}
.jv-card:hover .jv-media img{transform:scale(1.035)}
.jv-card:hover .jv-peek{opacity:1;transform:none}
.jv-card:hover .jv-addlbl{max-width:120px;opacity:1;margin-left:8px}
.jv-zoom:hover img{transform:scale(1.04)}
.jv-tile:hover .jv-tile-arrow{transform:translateX(4px)}
.jv-tile:hover img{transform:scale(1.04)}
.jv-plate:hover .jv-plate-img{transform:translateY(-6px) rotate(-3deg)}
}
.jv-zoom img,.jv-tile img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.jv-tile-arrow{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.jv-plate-img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}

/* ---------- botões ---------- */
.jv-btn{transition:background .3s,color .3s,border-color .3s,transform .15s,box-shadow .3s}
.jv-btn:active{transform:scale(.97)}
.jv-dark:hover{background:#4A372E !important}
.jv-dark .jv-orb{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.jv-dark:hover .jv-orb{transform:translateX(4px)}
.jv-line-btn:hover{background:#35251F !important;color:#F7F4EF !important}
.jv-sky:hover{background:#9FC3DD !important}
.jv-add:hover{background:#24397A !important;color:#F7F4EF !important;border-color:#24397A !important}
.jv-ul{background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;transition:background-size .45s cubic-bezier(.2,.7,.2,1)}
.jv-ul:hover{background-size:100% 1px}
/* Área de toque mínima de 44×44 em celular/toque, sem alterar o tamanho visual nem o layout */
@media (max-width:759px),(pointer:coarse){.jv-hit{position:relative}.jv-hit::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}}
.jv-chip:hover{border-color:#35251F !important}
.jv-nav-ind{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.jv-nav:hover .jv-nav-ind{transform:scaleX(1) !important}

/* ---------- overlays ---------- */
.jv-drawer{animation:jvSlide .55s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvSlide{from{transform:translateX(104%)}to{transform:none}}
.jv-sheet{animation:jvUp .5s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvUp{from{transform:translateY(100%)}to{transform:none}}
.jv-pop{animation:jvPop .5s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvPop{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
.jv-scrim{animation:jvScrim .4s both}
@keyframes jvScrim{from{opacity:0}to{opacity:1}}
.jv-menu-in{animation:jvMenu .55s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvMenu{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.jv-toast{animation:jvToast .5s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvToast{from{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%,0)}}
.jv-bar{animation:jvBar .5s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvBar{from{transform:translateY(120%)}to{transform:none}}
.jv-item{animation:jvItem .55s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvItem{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
.jv-out{animation:jvOut .3s cubic-bezier(.4,0,.6,1) both}
@keyframes jvOut{to{opacity:0;transform:translateX(48px)}}
.jv-qA{animation:jvQA .38s cubic-bezier(.2,.75,.1,1)}
.jv-qB{animation:jvQB .38s cubic-bezier(.2,.75,.1,1)}
@keyframes jvQA{from{transform:translateY(-55%);opacity:0}to{transform:none;opacity:1}}
@keyframes jvQB{from{transform:translateY(-55%);opacity:0}to{transform:none;opacity:1}}
.jv-bA{animation:jvBumpA .55s cubic-bezier(.2,.75,.1,1)}
.jv-bB{animation:jvBumpB .55s cubic-bezier(.2,.75,.1,1)}
@keyframes jvBumpA{0%{transform:scale(1)}35%{transform:scale(1.5)}100%{transform:scale(1)}}
@keyframes jvBumpB{0%{transform:scale(1)}35%{transform:scale(1.5)}100%{transform:scale(1)}}
.jv-progress{transition:width .6s cubic-bezier(.2,.75,.1,1)}
.jv-collapse{transition:max-height .45s cubic-bezier(.2,.7,.2,1),opacity .3s,margin .45s}
.jv-hdr{transition:height .45s cubic-bezier(.2,.7,.2,1)}
.jv-logo{transition:height .45s cubic-bezier(.2,.7,.2,1)}
.jv-dots span{display:inline-block;width:6px;height:6px;border-radius:9px;background:currentColor;animation:jvDot 1s ease-in-out infinite}
.jv-dots span:nth-child(2){animation-delay:.15s}.jv-dots span:nth-child(3){animation-delay:.3s}
@keyframes jvDot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.jv-noscroll{scrollbar-width:none}
.jv-noscroll::-webkit-scrollbar{display:none}
/* ---------- cardápio v3 ---------- */
.jv-swapA{animation:jvSwapA .65s cubic-bezier(.2,.75,.1,1) both}
.jv-swapB{animation:jvSwapB .65s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvSwapA{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes jvSwapB{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.jv-ct-shelf{transition:flex-grow .7s cubic-bezier(.2,.75,.1,1),width .6s cubic-bezier(.2,.75,.1,1)}
.jv-ct-awning{transition:opacity .4s,transform .55s cubic-bezier(.2,.75,.1,1)}
.jv-ct-arch{transition:box-shadow .5s}
.jv-ct-arch img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){
.jv-ct-shelf:hover .jv-ct-arch img{transform:scale(1.06)}
.jv-ct-shelf:hover .jv-ct-awning{opacity:1 !important;transform:none !important}
.jv-ct-card:hover .jv-add{background:#35251F !important;color:#F7F4EF !important;border-color:#35251F !important}
}
.jv-rise{animation:jvRise 1s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvRise{0%{opacity:0;transform:translateY(6px)}25%{opacity:1}100%{opacity:0;transform:translateY(-30px)}}
.jv-mA{animation:jvMA 1s cubic-bezier(.65,.05,.2,1) both}
.jv-mB{animation:jvMB 1s cubic-bezier(.65,.05,.2,1) both}
@keyframes jvMA{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes jvMB{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.jv-mA img,.jv-mB img{animation:jvSettle 1.6s cubic-bezier(.2,.7,.2,1) both}
.jv-tA{animation:jvTA .6s cubic-bezier(.2,.75,.1,1) both}
.jv-tB{animation:jvTB .6s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvTA{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes jvTB{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.jv .jv-field textarea{display:block;width:100%;min-height:76px;border:0 !important;background:transparent;padding:4px 16px 12px;font-size:16px;resize:vertical;outline:none}
.jv .jv-field textarea:focus{box-shadow:none !important;border-color:transparent !important}

/* ---------- checkout ---------- */
.jv-field{position:relative;background:#FFFDF9;border:1px solid #D9C7B4;border-radius:6px;transition:border-color .3s,box-shadow .4s,background .3s}
.jv-field::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:2px;background:#24397A;transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.jv-field:focus-within{border-color:#24397A;box-shadow:0 16px 32px -26px rgba(36,57,122,.75)}
.jv-field:focus-within::after{transform:scaleX(1)}
.jv-field:focus-within label{color:#24397A}
.jv-field label{display:block;padding:12px 16px 0;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:#594438;transition:color .3s;cursor:text}
.jv .jv-field input{display:block;width:100%;height:44px;border:0 !important;background:transparent;padding:0 48px 10px 16px;font-size:17px;outline:none}
.jv .jv-field input:focus{box-shadow:none !important;border-color:transparent !important}
.jv-field.is-ok{border-color:#B3CDE0}
.jv-field.is-err{border-color:#9A3B2E;background:#FFF8F6;animation:jvShake .45s cubic-bezier(.36,.07,.19,.97)}
.jv-field.is-err::after{background:#9A3B2E;transform:scaleX(1)}
.jv-field.is-err label{color:#9A3B2E}
@keyframes jvShake{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}30%,50%,70%{transform:translateX(-4px)}40%,60%{transform:translateX(4px)}}
.jv-co-ok{position:absolute;right:14px;top:50%;margin-top:-13px;width:26px;height:26px;border-radius:99px;background:#8AB6D4;color:#24397A;display:grid;place-items:center;animation:jvCoPop .5s cubic-bezier(.2,.75,.1,1.4) both}
.jv-co-pop{animation:jvCoPop .5s cubic-bezier(.2,.75,.1,1.4) both}
@keyframes jvCoPop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.jv-co-fwd{animation:jvCoFwd .6s cubic-bezier(.2,.75,.1,1) both}
.jv-co-back{animation:jvCoBack .6s cubic-bezier(.2,.75,.1,1) both}
@keyframes jvCoFwd{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:none}}
@keyframes jvCoBack{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:none}}
.jv-co-fill{display:block;height:100%;background:#24397A;transform-origin:left;transition:transform .9s cubic-bezier(.65,.05,.2,1)}
.jv-co-pulse{position:relative}
.jv-co-pulse::after{content:"";position:absolute;inset:-5px;border-radius:99px;border:1px solid #24397A;opacity:0;animation:jvCoPulse 2.4s ease-out infinite}
@keyframes jvCoPulse{0%{transform:scale(.8);opacity:.75}100%{transform:scale(1.35);opacity:0}}
.jv-co-opt{transition:transform .5s cubic-bezier(.2,.75,.1,1),box-shadow .5s}
.jv-co-opt.is-on{transform:translateY(-4px)}
@media (hover:hover){.jv-co-opt:not(.is-on):hover{transform:translateY(-2px)}}
.jv-co-bob{animation:jvCoBob .7s cubic-bezier(.2,.75,.1,1.3)}
@keyframes jvCoBob{0%{transform:scale(1)}40%{transform:scale(1.16) rotate(-6deg)}100%{transform:none}}
.jv-co-acc{display:grid;transition:grid-template-rows .5s cubic-bezier(.2,.7,.2,1)}
.jv-co-acc>div{min-height:0;overflow:hidden}
.jv-co-chev{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.jv-co-chip{transition:background .3s,color .3s,border-color .3s,transform .15s}
.jv-co-chip:active{transform:scale(.97)}
.jv-co-fA{animation:jvCoFlashA 1.1s ease}
.jv-co-fB{animation:jvCoFlashB 1.1s ease}
@keyframes jvCoFlashA{0%{background:rgba(138,182,212,.5)}100%{background:transparent}}
@keyframes jvCoFlashB{0%{background:rgba(138,182,212,.5)}100%{background:transparent}}
.jv-co-send{position:relative;overflow:hidden}
.jv-co-send.is-sending::after{content:"";position:absolute;left:0;bottom:0;height:3px;background:#8AB6D4;animation:jvCoBar .9s linear both}
@keyframes jvCoBar{from{width:0}to{width:100%}}
@media (prefers-reduced-motion:reduce){.jv *,.jv *::before,.jv *::after{animation:none !important;transition:none !important}#jv-scroll{scroll-behavior:auto}}

/* ---------- checkout: campo de horário vazio mostra "Selecione um horário" (sem o relógio atual do navegador) ---------- */

/* ---------- checkout: calendário de datas (dias com feriado/ponto facultativo ganham bolinha dourada) ---------- */
.jv .jv-cal-day{transition:background .2s,border-color .2s}
.jv .jv-cal-day:not(:disabled):not([aria-pressed="true"]):hover{background:#F4EBDD !important}
.jv .jv-cal-day:disabled{cursor:default}
.jv .jv-cal-nav:disabled{opacity:.35;cursor:default}
/* Indicação discreta de preço estimado / "a partir de" (ao lado do valor) */
.jv-est{font-family:'Jost',system-ui,sans-serif;font-style:normal;font-size:10px;line-height:1;letter-spacing:.14em;text-transform:uppercase;font-weight:500;opacity:.8;margin-left:7px;white-space:nowrap;vertical-align:middle}
.jv-est-pre{margin:0 7px 0 0}
.jv-est-blk{display:block;margin:3px 0 0;text-align:right}
