/* ==========================================================================
   ECOMAPP HOTEL — pagina de CONTATO (v1)
   Escopo .ct — nao toca no resto do site.
   ========================================================================== */

.ct{--c-verde:#163D12;--c-verde2:#2F7D22;--c-claro:#A8E181;--c-muted:#5A6A55;
     --c-line:rgba(22,61,18,.13);--c-serif:'Fraunces',Georgia,serif}

/* ------------------------------- grade principal */
.ct .ct-grid{
  display:grid;grid-template-columns:1fr 420px;gap:54px;align-items:start;
}
.ct .ct-kicker{
  display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.17em;
  text-transform:uppercase;color:var(--c-verde2);
}
.ct .ct-h{
  font-family:var(--c-serif);font-size:clamp(26px,3.3vw,38px);font-weight:600;
  color:var(--c-verde);margin:13px 0 0;line-height:1.18;letter-spacing:-.015em;
}
.ct .ct-sub{font-size:14.5px;color:var(--c-muted);margin:11px 0 0}

/* ------------------------------- lista de canais */
.ct .ct-list{display:flex;flex-direction:column;gap:11px;margin-top:28px}
.ct .ct-item{
  display:flex;align-items:center;gap:16px;
  background:#fff;border:1px solid var(--c-line);border-radius:16px;
  padding:17px 20px;text-decoration:none;color:inherit;
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
.ct .ct-item:hover{
  border-color:rgba(47,125,34,.42);box-shadow:0 14px 32px rgba(22,61,18,.10);
  transform:translateY(-2px);
}
.ct .ct-ico{
  width:46px;height:46px;border-radius:13px;flex:0 0 46px;
  display:grid;place-items:center;
}
.ct .ct-ico svg{width:21px;height:21px}
.ct .ct-ico-res{background:linear-gradient(140deg,#2F7D22,#4E9C36)}
.ct .ct-ico-rom{background:linear-gradient(140deg,#1F8A4C,#25D366)}
.ct .ct-ico-tel{background:linear-gradient(140deg,#163D12,#2F7D22)}
.ct .ct-ico-loc{background:linear-gradient(140deg,#6E4B8E,#8A6A2F)}

.ct .ct-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ct .ct-txt strong{
  font-size:14px;font-weight:700;color:var(--c-verde);letter-spacing:-.01em;
}
.ct .ct-txt em{
  font-style:normal;font-size:13px;color:var(--c-muted);line-height:1.45;
}
.ct .ct-go{
  display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;
  font-size:12px;font-weight:700;color:var(--c-verde2);
  background:#F1F7EC;border-radius:999px;padding:8px 14px;
  transition:background .2s,color .2s;
}
.ct .ct-go svg{width:13px;height:13px}
.ct .ct-item:hover .ct-go{background:var(--c-verde2);color:#fff}

/* ------------------------------- formulario reserva */
.ct .ct-book{position:sticky;top:110px}
.ct .ct-book-in{
  background:#fff;border:1px solid var(--c-line);border-radius:22px;
  padding:30px 26px;box-shadow:0 20px 50px rgba(22,61,18,.11);
}
.ct .ct-book-in h3{
  font-family:var(--c-serif);font-size:21px;font-weight:600;color:var(--c-verde);
  margin:0;letter-spacing:-.01em;
}
.ct .ct-book-sub{font-size:12.5px;color:var(--c-muted);margin:7px 0 22px}

.ct .ct-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:13px}
.ct .ct-book label{
  display:block;font-size:10.5px;font-weight:800;letter-spacing:.10em;
  text-transform:uppercase;color:var(--c-muted);margin-bottom:6px;
}
.ct .ct-book input,.ct .ct-book select{
  width:100%;height:48px;padding:0 13px;font-family:inherit;font-size:13.5px;
  color:#122019;background:#FAFCF8;border:1.5px solid var(--c-line);
  border-radius:11px;outline:none;transition:border-color .2s,background .2s;
}
.ct .ct-book input:focus,.ct .ct-book select:focus{
  border-color:var(--c-verde2);background:#fff;
}

.ct .ct-btn{
  width:100%;height:52px;margin-top:8px;border:0;border-radius:12px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-family:inherit;font-size:13px;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;color:#fff;background:var(--c-verde);
  box-shadow:0 10px 24px rgba(22,61,18,.24);transition:.22s;
}
.ct .ct-btn:hover{background:var(--c-verde2);transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(47,125,34,.30)}
.ct .ct-btn svg{width:15px;height:15px}

.ct .ct-note{
  font-size:11.5px;color:var(--c-muted);text-align:center;margin:14px 0 0;
  display:flex;align-items:center;justify-content:center;gap:5px;
}
.ct .ct-note::before{content:"✓";color:var(--c-verde2);font-weight:800}

/* ------------------------------- info rapida */
.ct .ct-info{padding-top:0 !important}
.ct .ct-info-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:-8px;
}
.ct .ct-info-card{
  background:#fff;border:1px solid var(--c-line);border-radius:16px;
  padding:22px 20px;transition:.22s;
}
.ct .ct-info-card:hover{box-shadow:0 12px 28px rgba(22,61,18,.09);transform:translateY(-2px)}
.ct .ct-info-ico{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:#F1F7EC;color:var(--c-verde2);margin-bottom:13px;
}
.ct .ct-info-ico svg{width:18px;height:18px}
.ct .ct-info-card h3{
  font-family:var(--c-serif);font-size:15px;font-weight:600;color:var(--c-verde);
  margin:0 0 6px;
}
.ct .ct-info-card p{font-size:12.5px;color:var(--c-muted);margin:0;line-height:1.55}
.ct .ct-info-card strong{color:var(--c-verde);font-weight:700}

/* ------------------------------- responsivo */
@media(max-width:1080px){
  .ct .ct-grid{grid-template-columns:1fr;gap:36px}
  .ct .ct-book{position:static}
  .ct .ct-info-grid{grid-template-columns:1fr 1fr;margin-top:0}
}
@media(max-width:620px){
  .ct .ct-item{padding:15px 16px;gap:13px}
  .ct .ct-ico{width:42px;height:42px;flex-basis:42px;border-radius:12px}
  .ct .ct-go{display:none}
  .ct .ct-info-grid{grid-template-columns:1fr}
  .ct .ct-book-in{padding:24px 20px}
  .ct .ct-2{grid-template-columns:1fr}
}

/* ---- calendario popup: so aparece ao clicar no campo (bug: ficava sempre visivel) ---- */
.ct .cal{
  position:absolute !important;bottom:auto !important;top:calc(100% + 8px) !important;
  left:0 !important;z-index:130 !important;display:none !important;
  width:306px !important;max-width:calc(100vw - 48px) !important;
  background:#fff;border-radius:16px;padding:16px;
  box-shadow:0 26px 60px rgba(16,42,14,.26);border:1px solid var(--c-line);
}
.ct .cal.open{display:block !important;animation:ctCalIn .18s ease}
@keyframes ctCalIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.ct .ct-2{position:relative}

/* ---- resumo de noites (o SVG vinha em 366x366, sem estilo nenhum) ---- */
.ct .res-nights{
  display:flex;align-items:center;gap:12px;
  margin-top:16px;padding:14px 16px;
  background:#F4F9EF;border:1px solid rgba(47,125,34,.16);border-radius:13px;
  font-size:13px;color:#163D12;line-height:1.4;
}
.ct .res-nights svg{width:22px !important;height:22px !important;flex:0 0 22px;
  stroke:#2F7D22;fill:none;stroke-width:1.8;opacity:.9}
.ct .res-nights strong{display:block;font-size:12.5px;font-weight:700;color:#163D12}
.ct .res-nights span{font-size:11.5px;color:#5A6A55}

/* alerta de erro/disponibilidade */
.ct .res-alert{font-size:12.5px;line-height:1.5;margin-top:10px;color:#8A2B2B}
.ct .res-alert:empty{display:none}

/* calendario por cima de tudo, ancorado no campo de check-in */
.ct .ct-2:has(.cal){position:relative;z-index:60}
.ct .cal.open{z-index:400 !important;top:calc(100% + 6px) !important}
.ct .ct-book-in{overflow:visible !important}
.ct .ct-btn,.ct .ct-note,.ct .res-nights{position:relative;z-index:1}
