/* ===========================================================
   Casa de Campo Zanas — folha de estilo compartilhada
   Fonts: Cormorant Garamond (display) + Inter (texto)
   Paleta: verde mata #2D4A3E · vinho #7A2E3C · areia #F5F1EA
   =========================================================== */

*{box-sizing:border-box;}
body{margin:0;}
html{scroll-behavior:smooth;}
::selection{background:#7A2E3C;color:#F5F1EA;}

body{
  font-family:Inter,sans-serif;
  color:#1F2823;
  background:#F5F1EA;
  overflow-x:hidden;
}

/* algarismos legíveis dentro de títulos serifados (o "1" da Cormorant
   parece um "I"); usa uma serifada com "1" claro, que combina com o "h" */
.znum{font-family:Georgia,'Times New Roman',serif;font-style:normal;font-feature-settings:"lnum" 1;}

/* animação suave de zoom no hero da home */
@keyframes zkb{from{transform:scale(1.08);}to{transform:scale(1.16);}}

/* ---------- Navegação / dropdowns ---------- */
.znav-item>.zdrop{
  opacity:0;visibility:hidden;transform:translateY(10px);
  pointer-events:none;
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}
.znav-item:hover>.zdrop{
  opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;
}
/* ponte invisível: preenche o vão entre o link e o dropdown para que o
   mouse alcance as opções sem o menu fechar no caminho */
.znav-item::after{
  content:"";
  position:absolute;
  top:100%;
  left:-18px;
  width:236px;
  height:34px;
  display:none;
}
.znav-item:hover::after{display:block;}
.zlink{position:relative;}
.zlink::after{
  content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;
  background:#7A2E3C;transition:width .28s ease;
}
.zlink:hover::after{width:100%;}
.zddl:hover{color:#2D4A3E !important;background:#EFEAE0 !important;}

/* ---------- Botões e setas ---------- */
.zarrow:hover .zarrow-i{transform:translateX(6px);}
.zbtn-prim:hover{background:#3A5A47 !important;}
.zbtn-light:hover{background:#fff !important;}
.zbtn-out:hover{background:rgba(245,241,234,.12) !important;}
.zwa:hover{transform:scale(1.06);}

/* ---------- Cards / mídia ---------- */
.zcard:hover .zcard-img{transform:scale(1.05);filter:brightness(.82);}
.zcard:hover{transform:translateY(-4px);}
.zmos:hover .zmos-img{transform:scale(1.06);}
.zmedia:hover .zmedia-img{transform:scale(1.04);}

/* ---------- FAQ ---------- */
.zfaq-q:hover{color:#2D4A3E;}

/* ---------- Blocos alternados imagem/texto ---------- */
.zblock{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;}
.zrev .zblock-media{order:2;}

/* ---------- Mosaicos da Área de Lazer ---------- */
.lzmos{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:210px;gap:16px;}
.lzmos-big{grid-column:span 2;grid-row:span 2;}
.lzgroups{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;}

/* ---------- Carrossel de fotos dos quartos ---------- */
.zcarousel{position:relative;overflow:hidden;}
.zcar-slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .5s ease;z-index:1;
}
.zcar-slide.is-active{opacity:1;z-index:2;}
.zcar-btn{
  position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(31,40,35,.42);color:#F5F1EA;font-size:24px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,transform .2s ease;
}
.zcar-btn:hover{background:rgba(31,40,35,.78);}
.zcar-prev{left:16px;}
.zcar-next{right:16px;}
.zcar-count{
  position:absolute;top:14px;right:16px;z-index:4;
  background:rgba(31,40,35,.5);color:#F0EBE0;font-size:12px;
  padding:4px 11px;border-radius:20px;letter-spacing:.03em;
}
.zcar-dots{
  position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:4;
  display:flex;gap:7px;
}
.zcar-dot{
  width:8px;height:8px;border-radius:50%;border:none;padding:0;cursor:pointer;
  background:rgba(245,241,234,.55);transition:all .25s ease;
}
.zcar-dot.is-active{background:#F5F1EA;width:22px;border-radius:4px;}
@media(max-width:880px){
  .zcar-btn{width:38px;height:38px;font-size:21px;}
  .zcar-prev{left:10px;} .zcar-next{right:10px;}
}

/* ---------- Galeria ---------- */
#z-gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.zgal-cell{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:4px;
  background:#E7E2D8;
}
.zgal-cell img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease,filter .5s ease;
}
.zgal-cell:hover img{transform:scale(1.05);filter:brightness(.9);}
@media(max-width:980px){#z-gallery{grid-template-columns:repeat(3,1fr);}}
@media(max-width:680px){#z-gallery{grid-template-columns:repeat(2,1fr);gap:8px;}}

/* ---------- Responsivo ---------- */
@media(max-width:880px){
  .zdesk{display:none !important;}
  .zhamb{display:flex !important;}
  .z2col{grid-template-columns:1fr !important;}
  .zblock{grid-template-columns:1fr !important;}
  .zblock-media{order:0 !important;min-height:300px !important;}
  .z5col{grid-template-columns:1fr 1fr !important;}
  .z5col .zsep{border-left:none !important;}
  .z3col{grid-template-columns:1fr !important;}
  .zmosaic{grid-template-columns:1fr 1fr !important;grid-auto-rows:180px !important;}
  .zmos-big{grid-column:span 2 !important;grid-row:span 1 !important;}
  .zpillars{grid-template-columns:1fr 1fr !important;}
  .zpill-sep{border-left:none !important;}
  .zh1{font-size:clamp(40px,12vw,64px) !important;}
  .lzmos{grid-template-columns:1fr 1fr;grid-auto-rows:150px;}
  .lzmos-big{grid-column:span 2;grid-row:span 1;}
  .lzgroups{grid-template-columns:1fr 1fr;gap:26px;}
  .ztable-wrap{overflow-x:auto !important;}
  .zfooter-grid{grid-template-columns:1fr 1fr !important;}
}
@media(min-width:881px){.zhamb{display:none !important;}}

@media(max-width:560px){
  .zfooter-grid{grid-template-columns:1fr !important;}
  .zpillars{grid-template-columns:1fr !important;}
}

/* tabela comparativa de acomodações vira cards no celular (sem cortar texto) */
@media(max-width:680px){
  .ztable-wrap table{min-width:0 !important;}
  .ztable-wrap thead{display:none;}
  .ztable-wrap tbody,.ztable-wrap tr,.ztable-wrap td{display:block;width:100%;}
  .ztable-wrap tr{
    border:1px solid rgba(122,145,130,.28);border-radius:6px;
    padding:8px 16px 12px;margin-bottom:14px;background:#FFFDF9;
  }
  .ztable-wrap td{
    display:flex;justify-content:space-between;align-items:baseline;gap:18px;
    text-align:right;border:none !important;padding:9px 0 !important;
    white-space:normal !important;
  }
  .ztable-wrap td::before{
    content:attr(data-label);flex:0 0 38%;text-align:left;
    font-family:Inter,sans-serif !important;font-size:11px;font-weight:600;
    letter-spacing:.08em;text-transform:uppercase;color:#7A9182;
  }
  .ztable-wrap td:first-child{
    display:block;text-align:left;
    font-size:21px !important;padding:2px 0 10px !important;
    border-bottom:1px solid rgba(122,145,130,.2) !important;margin-bottom:4px;
  }
  .ztable-wrap td:first-child::before{display:none;}
}
