@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700;800&display=swap');

:root{
  --azul:#1B5A8C; --azul-esc:#123F5E; --azul-claro:#E9F2F9; --azul-suave:#F4F9FC;
  --laranja:#E8801A; --laranja-txt:#B35D0B; --dourado:#FBF0DB;
  --grafite:#22282D; --cinza:#59646E; --cinza-cl:#6B757F;
  --linha:#E4E9ED; --painel:#F7F9FB;
  --r-g:20px; --r-m:14px;
  --sombra:0 4px 22px rgba(18,63,94,.09);
  --sombra-alta:0 14px 48px rgba(18,63,94,.2);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:18px;line-height:1.6;color:var(--grafite);background:#fff;
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0;touch-action:manipulation}
input,select,textarea{font:inherit;color:inherit;font-size:16px}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--laranja);outline-offset:2px;border-radius:8px}
h1,h2,h3,h4{margin:0;line-height:1.2;letter-spacing:-.018em}
p{margin:0} ul{margin:0;padding:0}
img{display:block;max-width:100%}
.oculto{display:none!important}
.wrap{max-width:1160px;margin:0 auto;padding:0 48px}

/* topo */
.topo{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--linha)}
.topo-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:82px;
  padding-top:8px;padding-bottom:8px}
.marca{display:flex;align-items:center;gap:12px}
.marca-txt{display:flex;flex-direction:column}
.marca-nome{font-weight:800;font-size:1.14rem;letter-spacing:.045em;line-height:1.05}
.marca-sub{font-size:.65rem;letter-spacing:.19em;color:var(--cinza);font-weight:700}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:0 24px;
  border-radius:999px;font-weight:700;font-size:1rem;text-align:center;
  transition:transform .12s ease,background .2s ease,border-color .2s ease}
.btn:active{transform:scale(.98)}
.btn-cheio{background:var(--azul);color:#fff;box-shadow:0 3px 14px rgba(27,90,140,.28)}
.btn-laranja{background:var(--laranja);color:#fff}
.btn-zap{background:#1FA855;color:#fff;width:100%}
.btn-linha{border:2px solid var(--linha);background:#fff}
.btn-txt{min-height:48px;padding:0 14px;font-weight:600;color:var(--cinza)}
.btn-peq{min-height:46px;padding:0 18px;font-size:.94rem}
.btn-perigo{background:#B3261E;color:#fff}
.btn[disabled],.btn.desativado{opacity:.45;cursor:not-allowed;box-shadow:none}
@media (hover:hover){
  .btn-cheio:hover{background:var(--azul-esc)}
  .btn-laranja:hover{background:#CC6E12}
  .btn-zap:hover{background:#17904a}
  .btn-linha:hover{border-color:var(--azul)}
  .btn-txt:hover{color:var(--azul)}
}

/* hero e busca */
.hero{padding:64px 0 10px;position:relative}
.hero::before{content:"";position:absolute;right:-90px;top:-50px;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(245,185,43,.16),transparent 70%);pointer-events:none;z-index:-1}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.79rem;font-weight:800;
  letter-spacing:.13em;text-transform:uppercase;color:var(--laranja-txt);margin-bottom:14px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--laranja);border-radius:2px}
.hero h1{font-size:clamp(1.9rem,4.5vw,3rem);font-weight:800;max-width:15ch}
.hero p{margin-top:16px;font-size:1.07rem;color:var(--cinza);max-width:52ch}
.busca{margin:30px 0 4px;background:#fff;border:1px solid var(--linha);border-radius:26px;
  box-shadow:var(--sombra);padding:8px}
.busca-linha{display:grid;grid-template-columns:1.25fr 1fr .8fr auto;gap:4px}
.campo{padding:12px 20px;border-radius:20px;text-align:left;width:100%;display:flex;flex-direction:column;
  justify-content:center;min-height:70px}
.campo-rot{font-size:.71rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--cinza);
  margin-bottom:3px}
.campo-val{font-size:1rem;font-weight:600}
.campo-val.vazio{color:var(--cinza-cl);font-weight:500}
.busca-ir{display:flex;align-items:center;padding:0 4px}
@media (hover:hover){.campo:hover{background:var(--azul-suave)}}

.pills{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 4px;align-items:center}
.pill{display:inline-flex;align-items:center;min-height:50px;padding:0 20px;border:2px solid var(--linha);
  border-radius:999px;font-weight:600;font-size:.95rem;background:#fff}
.pill[data-on="1"]{border-color:var(--azul);background:var(--azul-claro);color:var(--azul-esc)}
.pill-limpar{color:var(--cinza);text-decoration:underline;text-underline-offset:4px;min-height:50px;
  padding:0 8px;font-weight:600}

.contagem{margin:28px 0 18px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.contagem strong{font-size:1.28rem;font-weight:800}
.contagem span{color:var(--cinza)}

/* cartões */
.grade{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 32px;padding-bottom:80px}
.card{text-align:left;display:flex;flex-direction:column;gap:11px;border-radius:var(--r-g);
  transition:transform .22s ease}
@media (hover:hover){.card:hover{transform:translateY(-3px)}}
.card-foto{position:relative;aspect-ratio:4/3;border-radius:var(--r-g);overflow:hidden;
  background:linear-gradient(140deg,var(--azul-claro),var(--dourado))}
.card-foto img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
@media (hover:hover){.card:hover .card-foto img{transform:scale(1.05)}.card:hover h3{color:var(--azul)}}
.tag{position:absolute;left:13px;top:13px;background:#fff;color:#92580D;font-size:.78rem;font-weight:800;
  padding:7px 14px;border-radius:999px;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.card h3{font-size:1.06rem;font-weight:700}
.card-sub,.card-linha{color:var(--cinza);font-size:.94rem}
.card-preco{font-weight:800;font-size:1.02rem}
.card-preco small{font-weight:500;color:var(--cinza);font-size:.86rem}
.selos{display:flex;flex-wrap:wrap;gap:6px}
.selo{font-size:.8rem;font-weight:600;color:var(--azul-esc);background:var(--azul-claro);padding:5px 12px;
  border-radius:999px}
.vazio{grid-column:1/-1;text-align:center;padding:60px 22px;background:var(--painel);border-radius:26px}
.vazio h3{font-size:1.3rem;margin-bottom:10px}
.vazio p{color:var(--cinza);max-width:460px;margin:0 auto 22px}

/* modal */
.fundo{position:fixed;inset:0;background:rgba(14,30,42,.58);z-index:60;display:flex;align-items:flex-start;
  justify-content:center;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
  padding:56px 48px}
.modal{background:#fff;width:100%;max-width:1000px;position:relative;border-radius:26px;
  box-shadow:var(--sombra-alta);animation:sobe .22s ease;margin-bottom:44px}
.modal.largo{max-width:1240px}
.modal.compacto{max-width:560px;min-height:0;margin:auto;border-radius:26px;align-self:center;
  box-shadow:var(--sombra-alta)}
@keyframes sobe{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.pega{display:none}
.modal-topo{position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--linha);display:flex;align-items:center;gap:16px;padding:20px 40px;z-index:6;
  border-radius:26px 26px 0 0}
.modal-topo h2{font-size:1.1rem;font-weight:700;flex:1;min-width:0;overflow-wrap:break-word}
.x{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;border:2px solid var(--linha);
  font-size:1.05rem;flex:none}
.modal-corpo{padding:44px 48px 64px}

/* galeria */
.gal{position:relative;border-radius:var(--r-g);overflow:hidden;margin-bottom:32px;height:420px;
  background:var(--azul-claro)}
.gal-trilho{display:flex;height:100%;transition:transform .32s cubic-bezier(.3,.8,.4,1)}
.gal-item{flex:0 0 100%;height:100%}
.gal-item img{width:100%;height:100%;object-fit:cover}
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:999px;
  background:rgba(255,255,255,.94);display:grid;place-items:center;box-shadow:0 2px 10px rgba(0,0,0,.2);
  font-size:1.2rem}
.gal-pontos{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:7px;
  padding:0 18px;pointer-events:none}
.gal-ponto{width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.6);
  box-shadow:0 1px 3px rgba(0,0,0,.3);flex:none;transition:width .2s}
.gal-ponto[data-on="1"]{background:#fff;width:22px}

.det{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:56px;align-items:start}
.det>*{min-width:0;max-width:100%}
.det-esq{min-width:0;overflow:hidden}
.det h2{font-size:1.72rem;font-weight:800}
.fatos{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}
.sec{border-top:1px solid var(--linha);padding:32px 0}
.sec h3{font-size:1.08rem;font-weight:700;margin-bottom:13px}
.lista{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.lista li{list-style:none;color:var(--cinza)}
.lista li::before{content:"•";color:var(--laranja);font-weight:800;margin-right:9px}
.caixa{position:sticky;top:110px;border:1px solid var(--linha);border-radius:24px;box-shadow:var(--sombra);
  padding:32px}

/* calendário */
.cal-cab{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px}
.cal-cab span{text-align:center;font-size:.7rem;font-weight:800;color:var(--cinza-cl);letter-spacing:.06em;
  text-transform:uppercase}
.cal{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px;touch-action:pan-y}
.d{position:relative;aspect-ratio:1;display:grid;place-items:center;min-height:44px}
.d::before{content:"";position:absolute;top:3px;bottom:3px;left:0;right:0;background:var(--azul-claro);opacity:0}
.d[data-faixa="meio"]::before{opacity:1}
.d[data-faixa="ini"]::before{opacity:1;left:12%;border-radius:999px 0 0 999px}
.d[data-faixa="fim"]::before{opacity:1;right:12%;border-radius:0 999px 999px 0}
.d-btn{position:relative;z-index:1;width:86%;aspect-ratio:1;border-radius:999px;display:grid;place-items:center;
  font-weight:600;font-size:.95rem;transition:background .14s,color .14s,box-shadow .14s,transform .12s}
@media (hover:hover){.d-btn:hover:not([disabled]){background:#fff;box-shadow:inset 0 0 0 2px var(--azul);
  transform:scale(1.05)}}
.d-btn:active:not([disabled]){transform:scale(.92)}
.d-btn[data-ponta="1"]{background:var(--azul);color:#fff;box-shadow:0 3px 10px rgba(27,90,140,.35)}
.d-btn[disabled]{color:#C4CBD1;cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1.6px}
.d-btn[data-pacote="1"]{background:var(--dourado);color:#8A5A0D;font-weight:800;text-decoration:none}
.d-btn[data-pacote="1"][data-ponta="1"]{background:var(--laranja);color:#fff}
.d-btn[data-hoje="1"]::after{content:"";position:absolute;bottom:13%;width:4px;height:4px;border-radius:999px;
  background:currentColor;opacity:.8}
.d-btn[data-ocupado="1"]{color:#fff;font-weight:700;text-decoration:none}
.d-btn[data-saida="1"]{box-shadow:inset 0 0 0 2px rgba(255,255,255,.85)}
.d-btn[data-pos="1"]{background:repeating-linear-gradient(45deg,#F2F5F7 0 5px,#E2E8ED 5px 10px);
  color:#59646E;text-decoration:none}
.d-btn[data-sel="1"]{box-shadow:inset 0 0 0 3px var(--laranja)}
.d-vazio{visibility:hidden}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;min-height:50px;gap:10px}
.cal-nav h4{font-size:1rem;font-weight:800;text-align:center;flex:1}
.seta{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;font-size:1.2rem;
  border:2px solid var(--linha);flex:none}
.seta[disabled]{opacity:.3;cursor:not-allowed}
.cal-dupla{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:28px;min-width:0}
.cal-dupla.solo{grid-template-columns:minmax(0,1fr)}
.cal-dupla>*{min-width:0}
.cal,.cal-cab{min-width:0}
.caixa{min-width:0;max-width:100%}
.legenda{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;font-size:.85rem;color:var(--cinza)}
.legenda i{display:inline-block;width:15px;height:15px;border-radius:5px;margin-right:7px;vertical-align:-3px}
.dica{text-align:center;color:var(--cinza-cl);font-size:.84rem;margin-top:10px}

/* avisos */
.aviso{background:#FEF7EA;border:1px solid #F2DDB2;color:#7A5410;padding:14px 17px;border-radius:var(--r-m);
  font-size:.92rem}
.aviso.info{background:var(--azul-suave);border-color:#CFE1EE;color:var(--azul-esc)}
.aviso.alerta{background:#FDECEA;border-color:#F3C9C4;color:#8C2B22}
.aviso.ok{background:#EAF7EF;border-color:#BFE3CD;color:#1B6B3A}
.aviso h4{font-size:.96rem;margin-bottom:5px}

/* preço */
.preco-topo{display:flex;align-items:baseline;gap:8px}
.preco-topo strong{font-size:1.48rem;font-weight:800}
.preco-topo span{color:var(--cinza)}
.linhas{margin-top:16px;border-top:1px solid var(--linha);padding-top:16px}
.linha{display:flex;justify-content:space-between;gap:14px;padding:6px 0;color:var(--cinza)}
.linha.total{border-top:1px solid var(--linha);margin-top:10px;padding-top:14px;color:var(--grafite);
  font-weight:800;font-size:1.08rem}
.linha small{display:block;font-size:.83rem;color:var(--cinza-cl)}
.badge{display:inline-flex;align-items:center;gap:7px;background:var(--dourado);color:#8A5A0D;font-weight:800;
  font-size:.83rem;padding:6px 13px;border-radius:999px;margin-bottom:12px}

/* instrução acima do calendário */
.cal-instrucao{color:var(--cinza);font-size:.92rem;margin:-6px 0 16px}

/* piscada que mostra para onde o visitante foi levado */
.sec.destaque{position:relative;border-radius:var(--r-m)}
.sec.destaque::before{content:"";position:absolute;inset:-10px -14px;border-radius:18px;
  border:3px solid var(--laranja);animation:chama 2.2s ease-out;pointer-events:none}
@keyframes chama{
  0%{opacity:0;transform:scale(1.02)}
  12%{opacity:1;transform:scale(1)}
  70%{opacity:1}
  100%{opacity:0}
}

/* tabela */
.tabela{width:100%;border-collapse:collapse;font-size:.93rem}
.tabela th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--cinza);
  padding:8px 10px;border-bottom:2px solid var(--linha)}
.tabela td{padding:11px 10px;border-bottom:1px solid var(--linha);color:var(--cinza)}
.tabela td b{color:var(--grafite)}

/* formulários */
.cx{display:block;margin-bottom:16px}
.cx>span{display:block;font-weight:700;font-size:.93rem;margin-bottom:6px}
.cx input,.cx textarea,.cx select{width:100%;min-height:54px;border:2px solid var(--linha);
  border-radius:var(--r-m);padding:13px 15px;background:#fff}
.cx textarea{min-height:104px;resize:vertical}
.cx input:focus,.cx textarea:focus,.cx select:focus{border-color:var(--azul);outline:none}
.erro{color:#B3261E;font-size:.88rem;font-weight:600;margin-top:6px;display:block}
.zaps{display:grid;gap:10px;margin-top:8px}
.zaps small{font-size:.82rem;opacity:.92;font-weight:600}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
.checks{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.check{display:inline-flex;align-items:center;min-height:52px;padding:0 18px;border:2px solid var(--linha);
  border-radius:999px;font-weight:600;font-size:.94rem;text-align:left}
.check[data-on="1"]{border-color:var(--azul);background:var(--azul-claro);color:var(--azul-esc)}
.stepper{display:flex;align-items:center;justify-content:space-between;gap:14px;border:2px solid var(--linha);
  border-radius:var(--r-m);padding:8px 12px}
.stepper button{width:52px;height:52px;border-radius:999px;border:2px solid var(--linha);display:grid;
  place-items:center;font-size:1.4rem;font-weight:700}
.seg{display:flex;gap:5px;background:var(--painel);padding:5px;border-radius:var(--r-m)}
.seg button{flex:1;min-height:48px;border-radius:10px;font-weight:700;font-size:.93rem;color:var(--cinza)}
.seg button[data-on="1"]{background:#fff;color:var(--azul-esc);box-shadow:0 1px 5px rgba(0,0,0,.13)}

/* painel */
.abas{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--linha);margin-bottom:24px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.abas::-webkit-scrollbar{display:none}
.aba{min-height:54px;padding:0 17px;font-weight:700;color:var(--cinza);position:relative;white-space:nowrap;flex:none}
.aba[data-on="1"]{color:var(--azul-esc)}
.aba[data-on="1"]::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;
  background:var(--azul);border-radius:3px 3px 0 0}
.adm{display:grid;grid-template-columns:250px 1fr;gap:30px;align-items:start}
.adm-lista{display:grid;gap:5px}
.adm-item{text-align:left;padding:13px 15px;border-radius:12px;font-weight:600;border:2px solid transparent;
  display:flex;gap:10px;align-items:flex-start;min-height:56px;width:100%}
.adm-item[data-on="1"]{background:var(--azul-claro);border-color:var(--azul);color:var(--azul-esc)}
.adm-item small{display:block;font-weight:500;color:var(--cinza);font-size:.82rem}
.barra{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:var(--painel);border-radius:var(--r-g);
  padding:14px 16px;margin-bottom:20px}
.ficha{border:1px solid var(--linha);border-radius:var(--r-m);padding:14px 16px;margin-bottom:10px;display:flex;
  gap:14px;align-items:flex-start;justify-content:space-between}
.ficha b{display:block;font-size:1rem}
.ficha small{color:var(--cinza);display:block;font-size:.87rem}
.ficha-cor{width:5px;align-self:stretch;border-radius:99px;flex:none;min-height:40px}
.lixo{color:#B3261E;font-weight:700;padding:11px 14px;border-radius:10px;font-size:.92rem;min-height:48px}
.nota{background:#FFF9EC;border:1px dashed #E5C980;color:#7A5410;border-radius:var(--r-m);padding:15px 18px;
  font-size:.91rem}
.num{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.num-cel{background:var(--painel);border-radius:var(--r-m);padding:14px 16px}
.num-cel b{display:block;font-size:1.42rem;font-weight:800;line-height:1.2}
.num-cel small{color:var(--cinza);font-size:.83rem}
.ponto{width:12px;height:12px;border-radius:4px;flex:none;display:inline-block}

/* linha do tempo */
.tl-rolo{overflow-x:auto;border:1px solid var(--linha);border-radius:var(--r-g);background:#fff;
  -webkit-overflow-scrolling:touch}
.tl{min-width:900px}
.tl-linha{display:grid;grid-template-columns:190px 1fr;border-bottom:1px solid var(--linha)}
.tl-linha:last-child{border-bottom:none}
.tl-nome{padding:12px 14px;font-size:.87rem;font-weight:700;display:flex;align-items:center;gap:9px;
  border-right:1px solid var(--linha);min-height:58px;position:sticky;left:0;background:#fff;z-index:1}
.tl-dias{display:grid;position:relative}
.tl-cel{height:58px;border-right:1px solid #F1F4F6}
.tl-cel[data-fds="1"]{background:#FAFBFC}
.tl-cel[data-hoje="1"]{background:#FFF6E6}
.tl-cab{display:grid;grid-template-columns:190px 1fr;border-bottom:2px solid var(--linha);background:var(--painel)}
.tl-cab-esq{padding:10px 14px;font-size:.73rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cinza);border-right:1px solid var(--linha);position:sticky;left:0;background:var(--painel);z-index:1}
.tl-cab-dia{text-align:center;font-size:.7rem;font-weight:700;color:var(--cinza);padding:8px 0;
  border-right:1px solid #EDF0F3}
.tl-cab-dia[data-fds="1"]{color:var(--laranja-txt)}
.tl-barra{position:absolute;top:10px;height:38px;border-radius:999px;color:#fff;font-size:.77rem;font-weight:700;
  display:flex;align-items:center;padding:0 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  box-shadow:0 2px 8px rgba(0,0,0,.18)}
.tl-barra[data-tipo="bloqueio"]{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.24) 0 7px,
  transparent 7px 14px)}
.tl-pos{position:absolute;top:10px;height:38px;border-radius:999px;
  background:repeating-linear-gradient(45deg,#EDF1F4 0 5px,#DFE5EA 5px 10px);border:1px dashed #B9C3CB}

/* fotos do painel */
.fotos-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.foto-item{position:relative;aspect-ratio:4/3;border-radius:var(--r-m);overflow:hidden;background:var(--painel);
  border:2px solid var(--linha);cursor:grab;touch-action:manipulation}
.foto-item.arrastando{opacity:.4}
.foto-item.alvo{border-color:var(--azul);box-shadow:0 0 0 3px var(--azul-claro)}
.foto-item img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.foto-capa{position:absolute;left:8px;top:8px;background:var(--azul);color:#fff;font-size:.7rem;font-weight:800;
  padding:4px 10px;border-radius:999px;letter-spacing:.04em}
.foto-x{position:absolute;right:6px;top:6px;width:44px;height:44px;border-radius:999px;background:rgba(0,0,0,.62);
  color:#fff;display:grid;place-items:center;font-size:1rem;font-weight:700}
.foto-mover{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:6px;padding:6px;
  background:linear-gradient(transparent,rgba(0,0,0,.5))}
.foto-mover button{width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.92);font-weight:800;
  display:grid;place-items:center}
.foto-add{aspect-ratio:4/3;border:2px dashed #C3CCD4;border-radius:var(--r-m);display:grid;place-items:center;
  color:var(--cinza);font-weight:700;background:var(--azul-suave);width:100%;text-align:center;padding:10px}
.foto-add span{display:block;font-size:2rem;line-height:1;margin-bottom:4px;color:var(--azul)}
.foto-progresso{height:6px;border-radius:99px;background:var(--linha);overflow:hidden;margin-bottom:14px}
.foto-progresso i{display:block;height:100%;background:var(--azul);width:0;transition:width .2s}

/* barra fixa mobile */
.barra-fixa{display:none}

/* rodapé */
.rodape{border-top:1px solid var(--linha);background:var(--painel);padding:56px 0 48px;margin-top:56px}
.rodape-in{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-start}
.rodape p{color:var(--cinza);font-size:.93rem;max-width:420px}
.rodape-links{display:flex;flex-direction:column;gap:5px;align-items:flex-start}

/* login */
.login{max-width:440px;margin:8vh auto;padding:0 20px}
.login-cx{border:1px solid var(--linha);border-radius:24px;box-shadow:var(--sombra);padding:28px}

@media (max-width:1000px){
  .fundo{padding:40px 32px}
  .modal-corpo{padding:34px 32px 56px}
  .modal-topo{padding:18px 30px}
  .wrap{padding:0 36px}
  .grade{grid-template-columns:repeat(2,1fr)}
  .det{grid-template-columns:1fr;gap:26px}
  .caixa{position:static}
  .adm{grid-template-columns:1fr}
  .cal-dupla{grid-template-columns:1fr;gap:28px}
  .busca-linha{grid-template-columns:1fr 1fr}
  .busca-ir{grid-column:1/-1;padding:6px 4px 2px}
  .busca-ir .btn{width:100%}
  .gal{height:300px}
}
@media (max-width:760px){
  body{font-size:17px}
  .wrap{padding:0 20px}
  .grade{grid-template-columns:1fr;gap:28px}
  .busca-linha{grid-template-columns:1fr}
  .lista,.g2,.g3,.num{grid-template-columns:1fr}
  .marca-sub{display:none}
  .hero{padding:30px 0 4px}  .pega{display:block;position:absolute;top:0;left:0;right:0;height:26px;z-index:7;background:#fff;
    border-radius:22px 22px 0 0;touch-action:none}
  .pega::after{content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);width:44px;height:5px;
    border-radius:99px;background:#D5DBE0}
  .modal-topo{padding-top:30px;border-radius:22px 22px 0 0}  .gal{height:255px;border-radius:16px}
  .caixa{border:none;box-shadow:none;padding:0}
  .barra-fixa{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:8;background:#fff;
    border-top:1px solid var(--linha);padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    align-items:center;gap:14px;box-shadow:0 -4px 20px rgba(0,0,0,.08)}
  .barra-fixa>div{flex:1;min-width:0}
  .barra-fixa b{display:block;font-size:1.04rem;font-weight:800}
  .barra-fixa small{color:var(--cinza);font-size:.82rem}
  .tabela{font-size:.86rem}
  .tabela th,.tabela td{padding:8px 6px}
  .fotos-grade{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* esqueleto enquanto os imóveis carregam */
.esqueleto{position:relative;overflow:hidden;background:linear-gradient(140deg,#EDF3F8,#F7F2E6)}
.esqueleto::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);
  animation:brilho 1.3s infinite}
.esqueleto-linha{height:14px;border-radius:8px;background:#EDF1F4;animation:pulsa 1.3s ease-in-out infinite}
@keyframes brilho{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes pulsa{0%,100%{opacity:1}50%{opacity:.5}}

/* mapa da região aproximada */
.mapa{position:relative;border-radius:var(--r-m);overflow:hidden;border:1px solid var(--linha);
  height:300px;background:var(--painel)}
.mapa iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.9)}
.mapa-area{position:absolute;left:50%;top:50%;width:190px;height:190px;transform:translate(-50%,-50%);
  border-radius:50%;background:rgba(27,90,140,.16);border:2px solid rgba(27,90,140,.55);pointer-events:none}
.mapa-selo{position:absolute;left:12px;top:12px;background:#fff;color:var(--azul-esc);font-size:.78rem;
  font-weight:800;padding:6px 12px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.16);pointer-events:none}
@media (max-width:760px){.mapa{height:240px}.mapa-area{width:150px;height:150px}}

/* topo do painel: cabe em qualquer tela.
   Cuidado: só mexe no espaçamento VERTICAL — o lateral vem do .wrap
   e precisa continuar valendo, senão a logo cola na borda da tela. */
.topo-acoes{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:760px){
  .topo-painel{flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
  .topo-acoes{width:100%;justify-content:space-between;gap:4px}
  .topo-acoes .btn-txt{padding:0 10px;font-size:.9rem;min-height:44px}
  .topo-acoes .btn-peq{min-height:44px;padding:0 14px}
}

/* mostrar/ocultar senha */
.senha-caixa{position:relative}
.senha-caixa input{padding-right:96px}
.senha-ver{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-height:44px;padding:0 12px;
  font-weight:700;font-size:.86rem;color:var(--azul);border-radius:8px}
@media (hover:hover){.senha-ver:hover{background:var(--azul-claro)}}

/* dica que só aparece no celular */
.so-mobile{display:none}
@media (max-width:760px){.so-mobile{display:block}}

/* ícone dentro do botão do WhatsApp */
.btn-zap svg{flex:none}

/* ============================================================
   BLINDAGEM DO LAYOUT
   Texto longo sem espaço (e-mail, link, nome de imóvel comprido)
   era o que estourava a caixa e empurrava a página para o lado.
   ============================================================ */
body{overflow-x:hidden}
/* IMPORTANTE: 'break-word' e não 'anywhere'.
   'anywhere' quebra em qualquer letra E permite o elemento encolher até
   zero — foi o que fez o nome do imóvel virar uma letra por linha quando
   os botões ao lado tomavam o espaço. 'break-word' só quebra quando a
   PALAVRA sozinha não cabe, e mantém a largura mínima do texto. */
h1,h2,h3,h4,p,span,b,small,li,td,th,label,button,a{overflow-wrap:break-word}
/* filhos de grid/flex encolhem em vez de empurrar o pai */
.det>*,.adm>*,.g2>*,.g3>*,.num>*,.ficha>*,.topo-in>*,.barra>*,.linha>*{min-width:0}
.ficha b,.ficha small,.adm-item span,.card h3{overflow-wrap:break-word}
.tabela{table-layout:fixed}
.tabela td,.tabela th{overflow-wrap:break-word}
img,svg,iframe,video{max-width:100%}
.gal-item img{min-width:0}

/* pedidos */
.ficha.pedido{border-left:4px solid var(--laranja);background:#FFFCF6}
.pedido-acoes{display:flex;gap:6px;flex-wrap:wrap;flex:none;align-items:center}
.prazo{color:var(--laranja-txt)!important;font-weight:700}
.prazo.urgente{color:#B3261E!important}
.selo-num{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:7px;
  border-radius:999px;background:var(--laranja);color:#fff;font-size:.74rem;font-weight:800;vertical-align:1px}
.tl-barra[data-tipo="pre"]{background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.28) 0 6px,transparent 6px 12px);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.zap-nota{color:var(--cinza);font-size:.88rem;margin-top:12px}

/* botão do WhatsApp: texto longo não empurra mais o ícone */
.btn-zap{padding:0 16px}
.btn-zap span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.btn-zap small{white-space:nowrap}

@media (max-width:760px){
  .pedido-acoes{width:100%;justify-content:flex-start}
  .ficha{flex-wrap:wrap}
  .btn-zap small{display:none}   /* no celular, só o nome */
}

/* prefixo do preço */
.preco-prefixo{font-size:.85rem;color:var(--cinza);font-weight:600;align-self:center}
.preco-topo{flex-wrap:wrap}

/* editor de cômodos no painel */
.comodo{border:1px solid var(--linha);border-radius:var(--r-m);padding:14px 16px;margin-bottom:12px;
  background:#fff}
.comodo-topo{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.comodo-nome{flex:1;min-width:0;min-height:48px;border:2px solid var(--linha);border-radius:10px;
  padding:8px 12px;font-weight:700}
.comodo-nome:focus{border-color:var(--azul);outline:none}
.comodo-x{flex:none;font-size:.86rem;padding:8px 10px;min-height:44px}
.camas-grade{display:grid;gap:6px}
.cama-linha{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}
.cama-linha[data-on="1"] span{color:var(--grafite);font-weight:700}
.cama-linha span{color:var(--cinza);font-size:.95rem;min-width:0}
.cama-linha small{display:block;font-size:.78rem;color:var(--cinza-cl);font-weight:500}
.cama-nums{display:flex;align-items:center;gap:4px;flex:none}
.cama-nums button{width:44px;height:44px;border-radius:999px;border:2px solid var(--linha);display:grid;
  place-items:center;font-size:1.2rem;font-weight:700}
.cama-nums button[disabled]{opacity:.35;cursor:not-allowed}
.cama-nums b{min-width:34px;text-align:center;font-size:1.05rem;font-weight:800}
.comodo-sub{margin-top:10px;padding-top:10px;border-top:1px solid var(--linha);color:var(--cinza);
  font-size:.88rem}

/* camas no site público */
.comodos-site{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.comodo-card{border:1px solid var(--linha);border-radius:var(--r-m);padding:14px 16px;background:var(--azul-suave)}
.comodo-card b{display:block;font-size:1rem;margin-bottom:5px}
.comodo-card span{display:block;color:var(--cinza);font-size:.92rem}
.comodo-card small{display:block;margin-top:6px;color:var(--azul-esc);font-weight:700;font-size:.83rem}
@media (max-width:760px){
  .comodos-site{grid-template-columns:1fr}
  .cama-linha span{font-size:.9rem}
}

/* ============================================================
   CELULAR — espaçamento e contenção
   ============================================================ */
@media (max-width:760px){
  /* topo do site: logo e botão na MESMA linha, com respiro nas bordas */
  .topo-in{min-height:70px;gap:10px}
  .marca svg{width:38px;height:38px}
  .marca{gap:9px}
  .marca-nome{font-size:.95rem;letter-spacing:.03em}
  .topo .btn-peq{min-height:46px;padding:0 14px;font-size:.86rem;white-space:nowrap;flex:none}

  /* o modal ocupa a tela inteira, sem sobra para os lados */
  /* calendário: cabe com folga e os dias ficam confortáveis ao toque */
  .cal-dupla{grid-template-columns:minmax(0,1fr);gap:24px}
  .cal,.cal-cab{width:100%}
  .d{min-height:42px}
  .d-btn{font-size:.92rem}
  .cal-nav h4{font-size:.95rem}

  /* respiro entre as seções, para o conteúdo não virar um bloco só */
  .sec{padding:22px 0}
  .hero h1{font-size:1.75rem;line-height:1.18}
  .hero p{font-size:1rem}
  .eyebrow{font-size:.72rem;letter-spacing:.1em}
  .busca{margin-top:24px;padding:6px}
  .campo{min-height:66px;padding:10px 16px}
  .contagem{margin:22px 0 14px}
  .fatos{gap:6px}
  .selo{font-size:.78rem;padding:5px 11px}
}

/* telas bem estreitas (iPhone SE e afins) */
@media (max-width:380px){  .marca-nome{font-size:.88rem}
  .topo .btn-peq{padding:0 11px;font-size:.8rem}  .d{min-height:38px}
}

/* ============================================================
   CAMPOS DE DATA — reconstruído do zero
   Sem posicionamento absoluto, sem pseudo-elemento, sem altura
   mínima: só caixas em bloco, uma embaixo da outra. Assim não
   existe como um elemento passar por cima do outro.
   ============================================================ */
.pldata-par{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0 0}
.pldata-campo{
  display:block;width:100%;box-sizing:border-box;
  position:static;float:none;overflow:hidden;
  border:2px dashed #BFCBD5;border-radius:14px;
  background:var(--azul-suave);color:inherit;
  padding:12px 14px;text-align:left;line-height:1.35;
}
.pldata-campo[data-on="1"]{border-style:solid;border-color:var(--azul);background:var(--azul-claro)}
.pldata-rot{display:block;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--cinza);margin-bottom:2px}
.pldata-val{display:block;font-size:1rem;font-weight:700;color:var(--grafite);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pldata-val.pldata-vazio{color:var(--azul)}
@media (hover:hover){.pldata-campo:hover{border-color:var(--azul);background:var(--azul-claro)}}

.pldata-acao{display:block;margin-top:12px;clear:both}
.pldata-btn{display:block;width:100%;box-sizing:border-box;position:static}

/* código do imóvel */
.cod{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.04em;color:var(--azul-esc);
  background:var(--azul-claro);padding:2px 8px;border-radius:6px;vertical-align:1px}

/* ============================================================
   CONTENÇÃO GERAL — nada mais escapa para os lados
   ============================================================ */
html{overflow-x:hidden;max-width:100%}
body{overflow-x:hidden;max-width:100%;position:relative}
.wrap,.modal,.modal-corpo,.caixa,.det,.det-esq{max-width:100%;box-sizing:border-box}
.hero::before{max-width:100vw;overflow:hidden}
@media (max-width:760px){
  /* a janela do imóvel ocupa a tela toda, sem sobra e sem rolagem lateral */  .det{grid-template-columns:minmax(0,1fr);gap:20px}
  .pldata-par{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero::before{display:none}   /* o brilho de fundo alargava a página */
}

/* o que fica perto */
.perto-titulo{font-size:1rem;font-weight:700;margin:22px 0 10px}
.perto{display:grid;gap:2px}
.perto-linha{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:baseline;
  padding:10px 0;border-bottom:1px solid var(--linha)}
.perto-linha:last-child{border-bottom:none}
.perto-nome{font-weight:600;min-width:0}
.perto-num{font-weight:800;color:var(--azul-esc);white-space:nowrap}
.perto-tempo{grid-column:1/-1;color:var(--cinza);font-size:.89rem}
.perto-tempo b{color:var(--grafite)}
.perto-nota{color:var(--cinza-cl);font-size:.85rem;margin-top:12px}
@media (min-width:761px){
  .perto-linha{grid-template-columns:minmax(0,1fr) auto auto;gap:0 18px}
  .perto-tempo{grid-column:auto;text-align:right;white-space:nowrap}
}

/* ============================================================
   VISUALIZADOR DE FOTOS EM TELA CHEIA
   ============================================================ */
.visor{position:fixed;inset:0;z-index:80;background:rgba(12,20,27,.97);display:flex;flex-direction:column;
  animation:visorEntra .2s ease}
@keyframes visorEntra{from{opacity:0}to{opacity:1}}

.visor-topo{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;
  padding:16px 24px;padding-top:calc(16px + env(safe-area-inset-top));color:#fff}
.visor-titulo{font-size:1rem;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;opacity:.95}
.visor-conta{font-size:.9rem;font-weight:700;letter-spacing:.04em;opacity:.75;flex:none;
  background:rgba(255,255,255,.12);padding:6px 14px;border-radius:999px}
.visor-x{width:46px;height:46px;border-radius:999px;display:grid;place-items:center;color:#fff;flex:none;
  background:rgba(255,255,255,.14);font-size:1.05rem;transition:background .16s}
@media (hover:hover){.visor-x:hover{background:rgba(255,255,255,.28)}}

.visor-palco{flex:1;position:relative;display:flex;align-items:center;justify-content:center;
  padding:0 24px 8px;min-height:0;touch-action:pan-y}
.visor-palco img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  border-radius:12px;box-shadow:0 18px 60px rgba(0,0,0,.6);background:#1a2430}
.visor-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:999px;
  background:rgba(255,255,255,.94);color:#22282D;display:grid;place-items:center;font-size:1.5rem;
  box-shadow:0 4px 18px rgba(0,0,0,.45);transition:background .16s,transform .12s}
.visor-nav:active{transform:translateY(-50%) scale(.93)}
@media (hover:hover){.visor-nav:hover{background:#fff}}

.visor-tiras{display:flex;gap:10px;overflow-x:auto;flex:none;justify-content:flex-start;
  padding:16px 24px calc(18px + env(safe-area-inset-bottom));
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.visor-tiras::-webkit-scrollbar{display:none}
.visor-tira{width:88px;height:64px;border-radius:10px;overflow:hidden;flex:none;opacity:.45;
  border:2px solid transparent;transition:opacity .16s,border-color .16s,transform .12s;background:#1a2430}
.visor-tira[data-on="1"]{opacity:1;border-color:#fff;transform:translateY(-2px)}
.visor-tira img{width:100%;height:100%;object-fit:cover}
@media (hover:hover){.visor-tira:hover{opacity:.85}}

@media (max-width:760px){
  .visor-topo{padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top))}
  .visor-titulo{font-size:.9rem}
  .visor-conta{font-size:.82rem;padding:5px 11px}
  .visor-palco{padding:0 10px 6px}
  .visor-nav{width:46px;height:46px;font-size:1.3rem}
  .visor-tiras{gap:8px;padding:12px 16px calc(14px + env(safe-area-inset-bottom))}
  .visor-tira{width:64px;height:48px}
}

/* galeria clicável */
.gal-clicavel .gal-item img{cursor:zoom-in}
.gal-todas{position:absolute;right:16px;bottom:16px;background:#fff;color:var(--grafite);
  font-size:.86rem;font-weight:700;padding:11px 17px;border-radius:999px;min-height:44px;
  display:inline-flex;align-items:center;gap:7px;
  box-shadow:0 3px 14px rgba(0,0,0,.3);z-index:3}
@media (hover:hover){.gal-todas:hover{background:var(--azul-claro)}}

@media (max-width:760px){
  /* No celular as bolinhas e o botão disputavam o mesmo canto e ficavam
     encavalados. Agora as bolinhas ficam à esquerda, o botão à direita,
     e nenhum dos dois encosta no outro nem na borda. */
  .gal-pontos{justify-content:flex-start;padding-left:16px;padding-right:118px;bottom:22px;
    flex-wrap:nowrap;overflow:hidden;gap:5px}
  .gal-ponto{width:5px;height:5px}
  .gal-ponto[data-on="1"]{width:16px}
  .gal-todas-longo{display:none}   /* vira "13 fotos" */
  .gal-todas{right:12px;bottom:12px;font-size:.8rem;padding:10px 14px;min-height:44px;gap:6px}
}
@media (max-width:380px){
  .gal-pontos{padding-right:106px}
  .gal-todas{font-size:.76rem;padding:10px 12px}
}

.sugestoes{display:flex;flex-wrap:wrap;gap:8px}
.sugestoes .pill{min-height:44px;padding:0 15px;font-size:.9rem}

/* ============================================================
   BLOCO FINAL DE LAYOUT — manda em tudo que veio antes.
   Uma janela flutuante com respiro no computador; folha que
   sobe de baixo no celular. Nada de conteúdo colado na borda.
   ============================================================ */

/* --- computador e tablet --- */
.modal.compacto{max-width:580px;border-radius:26px;align-self:flex-start;margin:0 auto 44px}
.modal-topo{border-radius:26px 26px 0 0}

/* --- celular: folha que sobe, com o site aparecendo atrás --- */
@media (max-width:760px){
  /* ATENÇÃO: nada de align-items:flex-end nem align-self:flex-end aqui.
     Num contêiner que rola, alinhar pelo fim empurra o começo do
     conteúdo para fora da área rolável — a pessoa não consegue voltar
     ao topo e a página parece travada. O efeito de folha subindo vem
     da margem no topo, que é seguro. */
  .fundo{padding:0;align-items:flex-start}
  .modal,.modal.largo{width:100%;max-width:100%;margin:36px 0 0;border-radius:24px 24px 0 0;
    min-height:calc(100% - 36px);box-shadow:0 -8px 40px rgba(14,27,36,.32)}
  .modal.compacto{width:100%;max-width:100%;margin:22vh 0 0;border-radius:24px 24px 0 0;
    min-height:auto}
  .modal-topo{border-radius:24px 24px 0 0;padding:34px 24px 16px}
  .modal-corpo{padding:30px 24px 130px}
  .pega{display:block}

  .wrap{padding:0 24px}
  .sec{padding:28px 0}
  .gal{height:270px;border-radius:18px;margin-bottom:24px}
  .det{grid-template-columns:minmax(0,1fr);gap:24px}
  .caixa{padding:0;border:none;box-shadow:none;position:static}
  .hero{padding:34px 0 6px}
  .grade{gap:32px}
}

/* --- telas bem estreitas: reduz sem grudar --- */
@media (max-width:380px){
  .wrap{padding:0 18px}
  .modal-corpo{padding:24px 18px 130px}
  .modal-topo{padding:32px 18px 14px}
}

/* CRECI no rodapé */
.creci{margin-top:10px;font-size:.86rem;font-weight:800;letter-spacing:.06em;color:var(--azul-esc);
  background:var(--azul-claro);display:inline-block;padding:6px 14px;border-radius:8px}

/* aviso passageiro (link copiado) */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:90;
  box-shadow:var(--sombra-alta);max-width:calc(100% - 40px);transition:opacity .35s,transform .35s}
.toast.saindo{opacity:0;transform:translate(-50%,10px)}

/* instrução do calendário, mais visível */
.cal-instrucao{color:var(--cinza);font-size:.94rem;margin:-4px 0 18px;
  background:var(--azul-suave);border-left:3px solid var(--azul);padding:10px 14px;border-radius:0 10px 10px 0}
.cal-instrucao b{color:var(--azul-esc)}

/* ============================================================
   SELEÇÃO NO CALENDÁRIO
   Faixa suave ligando as pontas, pontas em círculo azul cheio.
   Sem anel duplo e sem etiqueta: o desenho fala sozinho.
   ============================================================ */

/* faixa entre a chegada e a volta */
.d::before{background:#DCEBF7}
.d[data-faixa="meio"]::before{opacity:1}
.d[data-faixa="ini"]::before{opacity:1}
.d[data-faixa="fim"]::before{opacity:1}
.d[data-faixa="meio"] .d-btn{color:var(--azul-esc);font-weight:700}

/* pontas: círculo azul cheio, limpo */
.d-btn[data-ponta="1"]{
  background:var(--azul);color:#fff;font-weight:700;
  box-shadow:0 2px 10px rgba(27,90,140,.32);
}
.d-btn[data-pacote="1"][data-ponta="1"]{
  background:var(--laranja);
  box-shadow:0 2px 10px rgba(232,128,26,.32);
}

/* resposta discreta ao toque */
.d-btn[data-ponta="1"]{animation:escolheu .22s ease}
@keyframes escolheu{
  0%{transform:scale(.9)}
  60%{transform:scale(1.06)}
  100%{transform:scale(1)}
}

/* dias livres com contraste um pouco maior que antes */
.d-btn{color:var(--grafite)}
.d-btn[disabled]{color:#C9D0D6}

/* instrução acima do calendário */
.cal-instrucao{background:var(--azul-claro);border-left:4px solid var(--azul);color:var(--azul-esc);
  font-weight:600}
.cal-instrucao b{color:var(--azul-esc);font-weight:800}

/* campos de data preenchidos combinam com o calendário */
.pldata-campo[data-on="1"]{border-color:var(--azul);background:var(--azul-claro);border-width:2px}
.pldata-campo[data-on="1"] .pldata-val{color:var(--azul-esc)}

/* rolagem do modal isolada da página de trás */
.fundo{overscroll-behavior:contain}
.modal{overflow:visible}

/* ============================================================
   CARTÃO VINDO DO SERVIDOR
   Agora o cartão é um link de verdade (<a>), não um botão: o
   Google segue o endereço e a pessoa pode abrir em nova aba.
   ============================================================ */
.card-link{display:flex;flex-direction:column;gap:11px;text-align:left;color:inherit;width:100%}
.card-bloco{display:block}
.card-titulo{font-size:1.06rem;font-weight:700;transition:color .16s ease;margin:0}
@media (hover:hover){.card-link:hover .card-titulo{color:var(--azul)}}
.card-foto{display:block}
.card .selos{display:flex;flex-wrap:wrap;gap:6px}

/* índice de todos os imóveis no rodapé: ajuda o Google a achar tudo
   e serve de acessibilidade para quem navega por teclado */
.indice{margin-top:38px;padding-top:28px;border-top:1px solid var(--linha)}
.indice h2{font-size:1rem;font-weight:700;margin-bottom:14px;color:var(--cinza)}
.indice ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 24px;list-style:none}
.indice a{color:var(--cinza);font-size:.93rem;text-decoration:underline;text-underline-offset:3px}
@media (hover:hover){.indice a:hover{color:var(--azul)}}

/* Contraste: cinza claro e laranja de texto foram escurecidos para
   passar na norma de acessibilidade (4,5:1). Quem enxerga menos, ou
   está no sol da praia com o celular, consegue ler. O laranja da
   marca continua igual nos preenchimentos e botões. */

/* confirmação antes de apagar foto */
.foto-x.confirmando{width:auto;padding:0 14px;height:44px;border-radius:999px;background:#B3261E;
  font-size:.78rem;font-weight:800;letter-spacing:.02em}
.foto-item.vai-apagar{border-color:#B3261E;box-shadow:0 0 0 3px rgba(179,38,30,.22)}
.foto-item.vai-apagar img{opacity:.55}

/* rótulo de campo opcional */
.opcional{font-weight:500;color:var(--cinza);font-size:.86rem}

/* Alvos de toque: mínimo de 44px, como manda a norma de acessibilidade.
   Quem tem dedo grande, mão trêmula ou usa o celular andando erra menos. */

/* ============================================================
   COMPARTILHAR
   Saiu do canto superior direito: ali a pessoa espera fechar, e
   tocava em compartilhar sem querer. Agora é um botão discreto,
   com rótulo escrito, logo abaixo do nome do imóvel.
   ============================================================ */
.det-local{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:8px}
.det-local p{color:var(--cinza);margin:0;min-width:0}
.btn-compartilhar{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;
  border:1.5px solid var(--linha);border-radius:999px;background:#fff;color:var(--cinza);
  font-size:.9rem;font-weight:700;flex:none;transition:border-color .16s,color .16s,background .16s}
.btn-compartilhar:active{transform:scale(.97)}
@media (hover:hover){
  .btn-compartilhar:hover{border-color:var(--azul);color:var(--azul);background:var(--azul-suave)}
}
@media (max-width:760px){
  .det-local{margin-top:10px}
  .btn-compartilhar{min-height:46px;padding:0 18px}
}

.gal-todas-icone{font-size:.95em;line-height:1}

/* ============================================================
   PAINEL NO CELULAR — nada mais espreme o texto
   Numa tela estreita, botão ao lado de texto sempre vence a
   disputa por espaço. A solução é o botão descer para a linha
   de baixo, ocupando a largura inteira.
   ============================================================ */
@media (max-width:760px){
  /* ficha de imóvel, reserva, pedido: texto em cima, botões embaixo */
  .ficha{flex-wrap:wrap;gap:10px}
  .ficha > div{flex:1 1 100%;min-width:0}
  .ficha > div + div,
  .ficha .pedido-acoes{flex:1 1 100%;justify-content:flex-start;gap:8px;flex-wrap:wrap}
  .ficha .btn-txt,.ficha .lixo,.ficha .btn-peq{flex:0 0 auto}
  .ficha-cor{flex:0 0 5px;min-height:6px;width:100%;align-self:auto;height:5px}

  /* barra de ações da agenda: cada bloco na sua linha */
  .barra{flex-direction:column;align-items:stretch;gap:10px}
  .barra > span{flex:1 1 auto}
  .barra .btn{width:100%}

  /* navegação de mês: setas nas pontas, mês no meio, sem espremer */
  .cal-nav{gap:8px}
  .cal-nav h4{flex:1 1 auto;min-width:0;font-size:.95rem;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis}
  .seta{flex:0 0 48px}

  /* lista de imóveis do painel: nome inteiro, botões embaixo */
  .adm-item{flex-wrap:wrap}
  .adm-item span{min-width:0}

  /* editor de cômodos: o nome do quarto e o "Remover" na mesma linha
     espremiam o campo; agora o botão desce */
  .comodo-topo{flex-wrap:wrap}
  .comodo-nome{flex:1 1 100%}
  .comodo-x{flex:0 0 auto}

  /* linha de valor (rótulo à esquerda, preço à direita) */
  .linha{flex-wrap:wrap;gap:2px 12px}
  .linha > span:first-child{flex:1 1 60%;min-width:0}
  .linha > span:last-child{flex:0 0 auto;text-align:right}

  /* tabela de valores: sem espremer coluna */
  .tabela{font-size:.86rem}
  .tabela th,.tabela td{padding:8px 6px;word-break:normal}
}
