:root{
  --bg:#0b0d12;
  --panel: rgba(15,20,34,.82);
  --text:#eef1ff;
  --muted:#a9b1d6;
  --line: rgba(255,255,255,.12);
  --radius: 18px;

  /* cores pins + clusters (BTL) */
  --pin-stay:#095594;   /* 🛏 Dormir */
  --pin-eat:#ED2935;    /* 🍴 Comer */
  --pin-visit:#aa8800;  /* 📍 Visitar */
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background: var(--bg);
}

.topbar{
  position:fixed; inset:0 0 auto 0;
  height:64px;
  display:flex; align-items:center; justify-content:flex-start;
  gap:14px;
  padding:0 16px;
  background: rgba(11,13,18,.55);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
  z-index:1000;
}
.topbar .actions{margin-left:auto;}

.brand{color:var(--text); text-decoration:none; font-weight:750}
.actions{display:flex; gap:10px; align-items:center}
.action{
  color:var(--text); text-decoration:none;
  padding:9px 12px; border-radius:12px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
}
.action:hover{background: rgba(255,255,255,.10)}

.stage{
  height:100vh;
  padding-top:64px;
  position:relative;
  overflow:hidden;
}

.panel{
  position:relative;
  z-index:2;
  max-width: 980px;
  margin: 0 auto;
  padding: 18px;
}

.heroCard{
  margin-top: 14px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
}
.heroCard h1{margin:0 0 6px; font-size: 34px; line-height:1.1}
.heroCard p{margin:0; color:var(--muted); font-size: 16px; line-height:1.45}

.tiles{
  margin-top: 14px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
}
.tile{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 90px;
  border-radius: var(--radius);
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color: var(--text);
  text-decoration:none;
  font-weight: 750;
  letter-spacing:.2px;
  cursor:pointer;
}
.tile:hover{background: rgba(255,255,255,.10)}

/* ===== Leaflet map ===== */
#map{
  position:absolute;
  inset:64px 0 0 0; /* abaixo da topbar */
}

/* legenda em cima do mapa */
.legend{
  position:absolute;
  left:18px; bottom:18px;
  max-width: 520px;
  background: var(--panel);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px;
  z-index:1200;
}
.legend h2{margin:0 0 6px; font-size: 22px}
.legend p{margin:0; color:var(--muted)}

/* pin custom para Leaflet (divIcon) */
.pinIcon{
  width: 34px; height: 34px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,.92);
  background: rgba(255,255,255,.20);
  position: relative;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.pinIcon::after{
  content:"";
  position:absolute;
  left:50%; top:100%;
  transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 12px solid rgba(255,255,255,.92);
}

/* variações por categoria */
.pin--dormir .pinIcon{ background: var(--pin-stay); }
.pin--comer .pinIcon{ background: var(--pin-eat); }
.pin--visitar .pinIcon{ background: var(--pin-visit); }

.pinGlyph{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.35));
}

.pinSvg{
  width: 18px;
  height: 18px;
  fill: #fff;
}

/* ===== clusters (MarkerCluster) com cores por categoria ===== */
.marker-cluster.cluster--sleep{
  background-color: rgba(9,85,148,.35);
}
.marker-cluster.cluster--sleep div{
  background-color: var(--pin-stay);
}

.marker-cluster.cluster--eat{
  background-color: rgba(237,41,53,.35);
}
.marker-cluster.cluster--eat div{
  background-color: var(--pin-eat);
}

.marker-cluster.cluster--visit{
  background-color: rgba(0,135,226,.35);
}
.marker-cluster.cluster--visit div{
  background-color: var(--pin-visit);
}

.marker-cluster.cluster--mix{
  background-color: rgba(255,255,255,.18);
}
.marker-cluster.cluster--mix div{
  background-color: rgba(255,255,255,.28);
}

.marker-cluster span{ color:#fff; font-weight: 800; }

/* tooltip do nome (mostra ao hover/toque; fica permanente só com zoom alto) */
.leaflet-tooltip.pinTooltip{
  background: rgba(15,20,34,.92);
  border: 1px solid var(--line);
  color: var(--text);
  font-weight: 650;
  padding: 6px 8px;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.leaflet-tooltip.pinTooltip::before{ display:none; }

/* modal */
.modal::backdrop{background: rgba(0,0,0,.55)}
.modal{
  border:1px solid var(--line);
  border-radius: 18px;
  padding:0;
  background: rgba(15,20,34,.96);
  color:var(--text);
  max-width: 760px;
  width: calc(100% - 22px);
  max-height: 90vh;
  overflow: hidden;
}
.modalInner{
  padding:16px;
  max-height: 90vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  position: relative;
}
.modalX{
  position:absolute;
  top:10px;
  right:12px;
  width:38px;
  height:38px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.08);
  color: var(--text);
  font-size: 22px;
  line-height: 1;
  cursor:pointer;
}
.modalX:hover{ background: rgba(255,255,255,.12); }
.modalInner h3{margin:0 0 10px}
.kv{display:grid; grid-template-columns: 140px 1fr; gap:8px 12px}
.k{color:var(--muted)}
.v a{color:var(--text)}
.btnRow{margin-top:14px; display:flex; gap:10px; justify-content:flex-end}
.btn{
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.08);
  color:var(--text);
  cursor:pointer;
}
.btn:hover{background: rgba(255,255,255,.12)}

@media (max-width: 860px){
  .tiles{grid-template-columns: 1fr}
  .kv{grid-template-columns: 1fr}
}


.placeImg{
  width:100%;
  max-height: 260px;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid var(--line);
  margin: 10px 0 14px;
  display:none;
}

/* pin com label (opção 1) */
.pinWrap{
  position: relative;
  transform: translate(-50%, -100%);
}
.pinLabel{
  position:absolute;
  left: 50%;
  top: -10px;
  transform: translateX(18px);
  white-space: nowrap;
  padding: 6px 8px;
  border-radius: 12px;
  background: rgba(15,20,34,.92);
  border: 1px solid var(--line);
  color: var(--text);
  font-weight: 650;
  font-size: 13px;
  line-height: 1;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
@media (max-width: 860px){
  .pinLabel{ font-size: 12px; padding: 6px 7px; }
}


.brandWrap{ min-width: 0; }
  .actions--home{ display:none; } /* em ecrãs pequenos, usamos chips/CTAs */
}


/* ===== HOME (clean v2) ===== */
.home{
  background:#f6f7fb;
  color:#0b0d12;
}
.homeTop{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(246,247,251,.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(10,12,16,.08);
}
.homeTop__inner{
  max-width: 1120px;
  margin: 0 auto;
  padding: 14px 18px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
}
.homeBrand{
  text-decoration:none;
  font-weight: 900;
  letter-spacing: -0.3px;
  color:#0b0d12;
  font-size: 16px;
}
.homeLogosSm{
  height: 44px;
  width: auto;
  display:block;
}

.homeWrap{ min-height: calc(100vh - 64px); }

.hero{
  padding: 54px 18px 34px;
}
.hero__inner{
  max-width: 920px;
  margin: 0 auto;
  text-align:center;
}
.hero__kicker{
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.03);
  color: rgba(10,12,16,.70);
  font-weight: 800;
  font-size: 12px;
  letter-spacing: .8px;
}
.hero__title{
  margin: 16px 0 10px;
  font-size: clamp(42px, 5vw, 64px);
  line-height: 1.03;
  letter-spacing: -0.8px;
}
.hero__subtitle{
  margin: 0 auto;
  max-width: 720px;
  color: rgba(10,12,16,.70);
  font-size: 18px;
  line-height: 1.55;
}

.hero__actions{
  margin-top: 18px;
  display:flex;
  gap: 12px;
  justify-content:center;
  flex-wrap:wrap;
}
.btn{
  text-decoration:none;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(10,12,16,.10);
  font-weight: 850;
  color:#0b0d12;
  background: rgba(255,255,255,.70);
  box-shadow: 0 8px 18px rgba(10,12,16,.06);
}
.btn--primary{
  background:#0b0d12;
  color:#fff;
  border-color: rgba(10,12,16,.16);
}
.btn--primary:hover{ background:#121521; }
.btn--soft:hover{ background: rgba(255,255,255,.95); }

.hero__ctaRow{ margin-top: 12px; }
.linkCta{
  color:#0b0d12;
  text-decoration:none;
  font-weight: 850;
  border-bottom: 2px solid rgba(10,12,16,.25);
  padding-bottom: 2px;
}
.linkCta:hover{ border-bottom-color: rgba(10,12,16,.55); }

.section{
  padding: 0 18px 24px;
}
.section__inner{
  max-width: 920px;
  margin: 0 auto;
}

.accordion{
  border-radius: 18px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(255,255,255,.86);
  box-shadow: 0 10px 26px rgba(10,12,16,.06);
  overflow:hidden;
}
.accordion__summary{
  list-style: none;
  cursor: pointer;
  padding: 16px 16px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  font-weight: 900;
}
.accordion__summary::-webkit-details-marker{ display:none; }
.accordion__hint{
  font-weight: 800;
  font-size: 12px;
  color: rgba(10,12,16,.55);
}
.accordion__content{
  padding: 0 16px 16px;
  color: rgba(10,12,16,.75);
  line-height: 1.75;
  font-size: 16px;
}
.accordion__content p{ margin: 10px 0; }
.accent{
  font-weight: 800;
  color: rgba(10,12,16,.90);
}

.homeFooterClean{
  text-align:center;
  padding: 18px 18px 26px;
  color: rgba(10,12,16,.55);
  font-size: 13px;
}

@media (max-width: 520px){
  .homeLogosSm{ height: 38px; }
  .btn{ width: 100%; max-width: 360px; text-align:center; }
}


/* ===== Destaques (home) ===== */
.highlightsHeader{
  margin: 18px 0 10px;
}
.highlightsTitle{
  margin:0;
  font-size: 20px;
  letter-spacing: -0.2px;
}
.highlightsSubtitle{
  margin: 4px 0 0;
  color: rgba(10,12,16,.62);
  font-size: 14px;
  line-height: 1.4;
}

.homeHighlights{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.hlCard{
  text-decoration:none;
  border-radius: 18px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(255,255,255,.90);
  box-shadow: 0 10px 26px rgba(10,12,16,.06);
  padding: 14px;
  color:#0b0d12;
  display:flex;
  flex-direction: column;
  gap: 6px;
  min-height: 120px;
}
.hlCard:hover{
  background: rgba(255,255,255,.98);
  transform: translateY(-1px);
}
.hlTag{
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(10,12,16,.04);
  border: 1px solid rgba(10,12,16,.08);
  font-weight: 850;
  font-size: 12px;
  color: rgba(10,12,16,.70);
}
.hlName{
  font-weight: 950;
  letter-spacing: -0.2px;
  font-size: 16px;
  margin-top: 2px;
}
.hlMeta{
  color: rgba(10,12,16,.66);
  font-size: 13px;
  line-height: 1.4;
}
.hlAction{
  margin-top: auto;
  font-weight: 900;
  color: rgba(10,12,16,.85);
  font-size: 13px;
}

@media (max-width: 920px){
  .homeHighlights{ grid-template-columns: 1fr; }
}


/* ===== HOMEPAGE CLEAN + MAP INDEX ===== */
.home{
  background:#f6f7fb;
  color:#0b0d12;
}
.homeTop{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(246,247,251,.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(10,12,16,.08);
}
.homeTop__inner{
  max-width: 1120px;
  margin: 0 auto;
  padding: 14px 18px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
}
.homeBrand{
  text-decoration:none;
  font-weight: 950;
  letter-spacing: -0.3px;
  color:#0b0d12;
}
.homeLogos{
  height: 44px;
  width: auto;
  display:block;
}

.homeMain{ min-height: 100vh; }
.homeHero{ padding: 56px 18px 10px; }
.homeHero__inner{
  max-width: 980px;
  margin: 0 auto;
  text-align:center;
}
.homeKicker{
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.03);
  color: rgba(10,12,16,.70);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .8px;
}
.homeHeroLogo{
  display:block;
  width:220px;
  max-width:62vw;
  height:auto;
  margin:0 auto 18px;
  object-fit:contain;
}
@media(max-width:900px){
  .homeHeroLogo{width:178px;margin-bottom:16px}
}
@media(max-width:620px){
  .homeHero{padding-top:38px}
  .homeHeroLogo{width:148px;max-width:68vw;margin-bottom:14px}
}
.homeTitle{
  margin: 16px 0 10px;
  font-size: clamp(42px, 5vw, 64px);
  line-height: 1.03;
  letter-spacing: -0.8px;
}
.homeSubtitle{
  margin: 0 auto;
  max-width: 760px;
  color: rgba(10,12,16,.70);
  font-size: 18px;
  line-height: 1.55;
}

.homePrimary{
  margin-top: 18px;
  display:flex;
  gap: 12px;
  justify-content:center;
  flex-wrap:wrap;
}
.btnP{
  text-decoration:none;
  padding: 12px 16px;
  border-radius: 14px;
  border: 1px solid rgba(10,12,16,.10);
  font-weight: 950;
  color:#0b0d12;
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 28px rgba(10,12,16,.06);
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.btnP:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 36px rgba(10,12,16,.10);
}
.btnP--dark{
  background:#0b0d12;
  color:#fff;
  border-color: rgba(10,12,16,.16);
}
.btnP--dark:hover{ background:#121521; }

.homeMicro{ margin-top: 10px; }
.microLink{
  color:#0b0d12;
  text-decoration:none;
  font-weight: 950;
  border-bottom: 2px solid rgba(10,12,16,.20);
  padding-bottom: 2px;
}
.microLink:hover{ border-bottom-color: rgba(10,12,16,.55); }

.homeSection{ padding: 14px 18px 18px; }
.homeSection__inner{ max-width: 980px; margin: 0 auto; display:grid; gap: 12px; }

.accordion{
  border-radius: 18px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(255,255,255,.92);
  box-shadow: 0 10px 26px rgba(10,12,16,.06);
  overflow:hidden;
}
.accordion__summary{
  list-style:none;
  cursor:pointer;
  padding: 16px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  font-weight: 950;
}
.accordion__summary::-webkit-details-marker{ display:none; }
.accordion__hint{ font-weight: 900; font-size: 12px; color: rgba(10,12,16,.55); }
.accordion__content{
  padding: 0 16px 16px;
  color: rgba(10,12,16,.74);
  line-height: 1.75;
  font-size: 16px;
}
.accent{ font-weight: 950; color: rgba(10,12,16,.90); }

.mapIndexGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  margin-top: 12px;
}
.subAcc{
  border-radius: 16px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.02);
  overflow:hidden;
}
.subAcc__summary{
  list-style:none;
  cursor:pointer;
  padding: 12px 12px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 950;
}
.subAcc__summary::-webkit-details-marker{ display:none; }

.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 30px;
  height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(10,12,16,.12);
  background: rgba(255,255,255,.9);
  font-size: 12px;
  font-weight: 950;
  color: rgba(10,12,16,.75);
}

.placeList{
  margin: 0;
  padding: 8px 8px 10px;
  list-style: none;
  display:grid;
  gap: 6px;
  max-height: 340px;
  overflow:auto;
}
.placeItem{ margin:0; }
.placeLink{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  text-decoration:none;
  padding: 10px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(10,12,16,.08);
  color:#0b0d12;
  font-weight: 850;
  font-size: 13px;
}
.placeLink:hover{ background: rgba(255,255,255,.98); }
.chev{
  color: rgba(10,12,16,.55);
  font-weight: 950;
}

.smallNote{
  margin: 10px 0 0;
  color: rgba(10,12,16,.58);
  font-size: 13px;
}

.homeFooter{
  text-align:center;
  padding: 18px 18px 26px;
  color: rgba(10,12,16,.55);
  font-size: 13px;
}

@media (max-width: 980px){
  .mapIndexGrid{ grid-template-columns: 1fr; }
  .placeList{ max-height: 260px; }
}


/* ===== HOME BACKGROUND (não tudo branco) ===== */
.home{
  background:
    radial-gradient(900px 520px at 15% 0%, rgba(0,180,160,.10) 0%, rgba(246,247,251,0) 55%),
    radial-gradient(900px 520px at 85% 10%, rgba(60,120,255,.10) 0%, rgba(246,247,251,0) 60%),
    #f6f7fb;
}

/* ===== HOME MAP SECTION ===== */
.homeMapSection{
  padding: 0 18px 18px;
}
.homeMapInner{
  max-width: 1120px;
  margin: 0 auto;
  border-radius: 18px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 30px rgba(10,12,16,.06);
  overflow:hidden;
}
.homeMapHeader{
  padding: 14px 14px 10px;
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid rgba(10,12,16,.08);
}
.homeMapTitle{ margin:0; font-size: 16px; font-weight: 950; }
.homeMapSub{ margin:4px 0 0; color: rgba(10,12,16,.60); font-size: 13px; line-height: 1.35; }

.homeMapTabs{
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
}
.tabBtn{
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.03);
  color: rgba(10,12,16,.80);
  font-weight: 900;
  font-size: 12px;
  padding: 8px 10px;
  border-radius: 999px;
  cursor:pointer;
}
.tabBtn:hover{ background: rgba(10,12,16,.06); }
.tabBtn--active{
  background: #0b0d12;
  color: #fff;
  border-color: rgba(10,12,16,.16);
}

.homeMap{
  height: 420px;
  width: 100%;
}
.homeMapCtas{
  padding: 12px 14px 14px;
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  border-top: 1px solid rgba(10,12,16,.08);
}

/* Leaflet no card */
.homeMap .leaflet-container{
  background: #e9ecf5;
}
.homeMap .leaflet-control-attribution{
  font-size: 10px;
}

/* ===== Route planner (home map) ===== */
.routeCtrl{
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(10,12,16,.10);
  border-radius: 14px;
  padding: 8px;
  box-shadow: 0 10px 22px rgba(10,12,16,.14);
}
.routeCtrl__label{
  font-size: 11px;
  font-weight: 950;
  color: rgba(10,12,16,.70);
  margin: 0 0 6px;
}

.routeCtrl__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  user-select:none;
}
.routeCtrl__chev{
  font-size: 14px;
  opacity: .65;
  transition: transform .18s ease;
}
.routeCtrl.isCollapsed .routeCtrl__chev{
  transform: rotate(-90deg);
}

@media (max-width: 520px){
  .routeCtrl{ padding: 10px 12px; }
  .routeCtrl__label{ margin: 0; }
  .routeCtrl.isCollapsed .routeCtrl__content{ display:none; }
  .routeCtrl__content{ margin-top: 10px; }
}
.routeCtrl__row{ display:flex; gap:6px; }
.routeCtrl__section{ margin-top: 8px; }
.routeCtrl__hint{
  font-size: 11px;
  font-weight: 950;
  color: rgba(10,12,16,.58);
  margin: 0 0 6px;
}
.routeCtrl__row--choices{ flex-wrap: wrap; }
.routeChoiceBtn{
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.02);
  color: rgba(10,12,16,.82);
  font-weight: 900;
  font-size: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  cursor: pointer;
}
.routeChoiceBtn:hover{ background: rgba(10,12,16,.06); }
.routeChoiceBtn.isActive{
  background: rgba(10,12,16,.10);
  border-color: rgba(10,12,16,.18);
}
.routeMeta{
  padding: 6px 0 8px;
}
.routeMeta__line{
  font-size: 12px;
  color: rgba(10,12,16,.70);
  font-weight: 850;
  margin: 0 0 6px;
}
.routeMeta__stay{
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(10,12,16,.14);
}
.routeMeta__stayTitle{
  font-size: 12px;
  font-weight: 950;
  color: rgba(10,12,16,.75);
  margin-bottom: 6px;
}
.routeMeta__stayRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding: 6px 0;
  border-bottom: 1px dashed rgba(10,12,16,.10);
}
.routeMeta__stayRow:last-child{ border-bottom: 0; }
.routeMeta__stayName{
  font-size: 12px;
  font-weight: 900;
  color: rgba(10,12,16,.86);
}
.routeMeta__stayRow button{
  border: 1px solid rgba(10,12,16,.12);
  background: #fff;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 950;
  font-size: 12px;
  cursor:pointer;
}
.routeMeta__stayRow button:hover{ background: rgba(10,12,16,.04); }

.routeBtn{
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.03);
  color: rgba(10,12,16,.86);
  font-weight: 950;
  font-size: 12px;
  padding: 8px 10px;
  border-radius: 999px;
  cursor:pointer;
  white-space: nowrap;
}
.routeBtn:hover{ background: rgba(10,12,16,.06); }
.routeBtn.isActive{
  background: #0b0d12;
  color:#fff;
  border-color: rgba(10,12,16,.16);
}

#homeMap{ position: relative; }

.routePanel{
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 500;
  max-width: 460px;
  /* importante: o painel vive dentro do container do mapa (que pode ser baixo no mobile).
     Limitamos a altura ao próprio mapa e fazemos o scroll apenas no corpo,
     para nunca "cortar" conteúdo nem perder o botão de fechar. */
  max-height: calc(100% - 24px);
  display: flex;
  flex-direction: column;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(10,12,16,.10);
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(10,12,16,.18);
  padding: 10px 12px 12px;
}
.routePanel[hidden]{ display:none !important; }
.routePanel__head{ display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.routePanel__actions{ display:flex; align-items:center; gap:8px; }
.routePanel__regen{
  border: 1px solid rgba(10,12,16,.12);
  background: rgba(10,12,16,.04);
  color: rgba(10,12,16,.86);
  font-weight: 950;
  font-size: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
}
.routePanel__regen:hover{ background: rgba(10,12,16,.08); }
.routePanel__title{ font-weight: 1000; font-size: 14px; }
.routePanel__sub{ margin-top: 2px; color: rgba(10,12,16,.62); font-size: 12px; font-weight: 800; }
.routePanel__close{
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  padding: 2px 6px;
  cursor:pointer;
  color: rgba(10,12,16,.70);
}
.routePanel__body{
  margin-top: 8px;
  /* deixa o header sempre visível (X / Gerar outra sugestão) */
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
}



.routeDay{ padding-top: 8px; border-top: 1px solid rgba(10,12,16,.08); }
.routeDay:first-child{ border-top: 0; padding-top: 0; }
.routeDay h4{ margin: 0 0 6px; font-size: 12px; font-weight: 950; color: rgba(10,12,16,.75); }
.routeItem{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding: 6px 0; border-bottom: 1px dashed rgba(10,12,16,.10); }
.routeItem:last-child{ border-bottom: 0; }
.routeItem__name{ font-size: 12px; font-weight: 850; color: rgba(10,12,16,.86); }
.routeItem button{
  border: 1px solid rgba(10,12,16,.12);
  background: #fff;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 950;
  font-size: 12px;
  cursor:pointer;
}
.routeItem button:hover{ background: rgba(10,12,16,.04); }

@media (max-width: 720px){
  .routeCtrl__row{ flex-wrap: wrap; }
  .routeBtn{ padding: 9px 12px; }
  .routePanel{ max-width: none; }
}

/* pins com label (reaproveita os estilos do mapa) */
.pinWrap{ position: relative; transform: translate(-50%, -100%); }
.pinLabel{
  position:absolute;
  left: 50%;
  top: -10px;
  transform: translateX(18px);
  white-space: nowrap;
  padding: 6px 8px;
  border-radius: 12px;
  background: rgba(15,20,34,.92);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
  font-weight: 750;
  font-size: 12px;
  line-height: 1;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}

/* responsivo */
@media (max-width: 720px){
  .homeMapHeader{ align-items:flex-start; flex-direction: column; }
  .homeMap{ height: 360px; }
}


/* ===== Category topbar refinements ===== */
body[data-page="category"]{
  background: var(--bg);
}
.topbarLogos{
  height: 34px;
  width: auto;
  opacity: .95;
}
@media (max-width: 760px){
  .topbarLogos{ display:none; }
}

.action.isActive{
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 8px 18px rgba(0,0,0,.18);
}

/* Legend (help) controls */
.legend{
  padding-right: 44px;
}
.legendClose{
  position:absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.06);
  color: var(--text);
  font-weight: 900;
  cursor:pointer;
}
.legendClose:hover{ background: rgba(255,255,255,.10); }

.legendShow{
  position:absolute;
  left: 18px;
  bottom: 18px;
  z-index: 1200;
  width: 38px;
  height: 38px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: rgba(15,20,34,.82);
  color: var(--text);
  font-weight: 950;
  cursor:pointer;
  display:none;
}
.legendShow:hover{ background: rgba(255,255,255,.08); }

.legend--hidden{
  display:none;
}
.legend--hidden + .legendShow{
  display:block;
}


/* ===== OVERRIDES (BTL clean) ===== */
:root{
  --accent: #3C9532;      /* green */
  --accentSoft: rgba(10,165,164,.14);
  --accentSoft2: rgba(10,165,164,.20);
  --ink: #0b0d12;
}

/* barras a branco (home + categorias) */
.homeTop,
.topbar{
  background: #ffffff !important;
  color: var(--ink);
  border-bottom: 1px solid rgba(10,12,16,.10);
}
.topbar .brand,
.homeBrand{
  color: var(--ink) !important;
}

/* botões da barra do mapa (segunda imagem) com outra cor */
.actions .action{
  background: var(--accentSoft);
  border: 1px solid rgba(10,12,16,.10);
  color: rgba(10,12,16,.86);
}
.actions .action:hover{
  background: var(--accentSoft2);
}
.actions .action.active,
.actions .action.is-active,
.actions .action--active{
  background: var(--accent);
  color: #ffffff;
  border-color: rgba(10,12,16,.12);
}


/* ===== Modal: descrição + galeria ===== */
.placeDesc{
  margin: 10px 0 14px;
  color: rgba(255,255,255,.80);
  line-height: 1.55;
  font-size: 14px;
}
.gallery{
  display:none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 10px 0 10px;
}
.galleryImg{
  width: 100%;
  height: 110px;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid rgba(10,12,16,.10);
  cursor: pointer;
  transition: transform .12s ease;
}
.galleryImg:hover{
  transform: translateY(-1px);
}

@media (max-width: 720px){
  .gallery{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .galleryImg{ height: 120px; }
}

/* Lightbox simples */
.lightbox{
  position: fixed;
  inset: 0;
  background: rgba(10,12,16,.72);
  display:none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 18px;
}
.lightbox.isOpen{ display:flex; }
.lightboxInner{
  position: relative;
  max-width: 1100px;
  width: 100%;
}
.lightboxImg{
  width: 100%;
  max-height: 84vh;
  object-fit: contain;
  border-radius: 16px;
  background: #0b0d12;
  border: 1px solid rgba(255,255,255,.10);
}
.lightboxClose{
  position:absolute;
  top: -12px;
  right: -12px;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.10);
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  cursor: pointer;
}
.lightboxClose:hover{ background: rgba(255,255,255,.16); }


/* ===== COLOR UPDATE (ACI green) ===== */
:root{ --accent: #3C9532; --accentSoft: rgba(60,149,50,.14); --accentSoft2: rgba(60,149,50,.22); }

.actions .action{
  background: var(--accentSoft) !important;
}
.actions .action:hover{
  background: var(--accentSoft2) !important;
}
.actions .action.active,
.actions .action.is-active,
.actions .action--active{
  background: var(--accent) !important;
  color:#fff !important;
}

/* botões na home (se existirem) */
.btnP--dark,
.btn--primary,
.cta--primary{
  background: var(--accent) !important;
}
.btnP--dark:hover,
.btn--primary:hover,
.cta--primary:hover{
  filter: brightness(0.95);
}

/* tabs na home com mapa (se existirem) */
.tabBtn--active{
  background: var(--accent) !important;
  color:#fff !important;
}


/* HEADER sempre acima do Leaflet */
header,
.topbar,
.navbar {
  position: sticky;      /* ou fixed, se preferires */
  top: 0;
  z-index: 3000;         /* acima do Leaflet */
  background: #fff;      /* garante que tapa o mapa por baixo */
}

/* Leaflet mais “baixo” na pilha */
.leaflet-container,
.leaflet-pane,
.leaflet-top,
.leaflet-bottom,
.leaflet-control {
  z-index: 1 !important;
}


/* Topbar (logo + botões) — responsivo e acima do mapa (Leaflet) */

.homeTop{
  position: sticky;
  top: 0;
  z-index: 10000; /* acima do Leaflet */
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.homeTop__inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.homeBrand{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.homeBrand__img{
  height: 42px;
  width: auto;
  display: block;
}

@media (max-width: 520px){
  .homeTop__inner{ padding: 8px 12px; }
  .homeBrand__img{ height: 34px; }
}

/* Leaflet: garante que o header fica sempre por cima */
.leaflet-container{ z-index: 1; }
.leaflet-pane{ z-index: 1; }
.leaflet-control{ z-index: 2; }




/* Topbar acima do Leaflet (evita o mapa por cima do logo) */
.topbar{
  z-index: 5000; /* maior que os controlos do Leaflet */
}

/* Garante que o mapa fica “abaixo” da barra */
#map,
.leaflet-container{
  z-index: 0;
}

/* Logo */
.brand--logo{
  display:flex;
  align-items:center;
  min-width: 0;
}
.brand__img{
  height: 42px;
  width: auto;
  display:block;
}

/* Responsivo */
@media (max-width: 760px){
  .topbar{ padding: 10px 12px; height:auto; gap:10px; }
  .actions{ gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  .action{ padding:8px 10px; border-radius:12px; font-size:14px; }
  .brand__img{ height: 36px; }
}


/* =========================================================
   TOPBAR + AÇÕES — MOBILE / TABLET
   ========================================================= */

/* Base (desktop) — se já tens, deixa; isto só garante flex correto */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

/* Navegação (botões) */
.actions{
  display:flex;
  align-items:center;
  gap:10px;
}

/* Botões */
.action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;      /* evita partir texto */
  line-height:1;
}

/* ---------- TABLET (<= 1024px) ---------- */
@media (max-width: 1024px){
  .topbar{
    padding: 10px 14px;
  }

  .brand__img{
    height: 38px; /* logo ligeiramente menor */
  }

  .actions{
    gap: 8px;
    flex-wrap: wrap;       /* permite 2 linhas se preciso */
    justify-content: flex-end;
  }

  .action{
    padding: 10px 12px;
    font-size: 14px;
    border-radius: 14px;
  }
}

/* ---------- MOBILE (<= 760px) ---------- */
@media (max-width: 760px){
  .topbar{
    flex-direction: column;     /* logo em cima, botões em baixo */
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    padding: 10px 12px;
  }

  .brand--logo{
    width: 100%;
  }

  .brand__img{
    height: 34px;
  }

  .actions{
    width: 100%;
    display:grid;               /* grelha com 2 colunas */
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .action{
    width: 100%;
    padding: 10px 10px;
    font-size: 14px;
    border-radius: 14px;
  }

  /* se houver 3 botões, o último ocupa a linha toda (fica bonito) */
  .actions .action:last-child{
    grid-column: 1 / -1;
  }
}

/* ---------- MOBILE PEQUENO (<= 380px) ---------- */
@media (max-width: 380px){
  .brand__img{ height: 30px; }
  .action{ font-size: 13px; padding: 9px 10px; }
}


/* ===== TOPBAR (MAPA) - cores verdes dos botões (só nesta página) ===== */
body[data-page="category"] .topbar{
  background: rgba(255,255,255,.95);
  border-bottom: 1px solid rgba(10,12,16,.10);
  z-index: 3000; /* garante que fica SEMPRE por cima do Leaflet */
}


/* Apanha <a> e <button> dentro da topbar */
body[data-page="category"] .topbar .actions a,
body[data-page="category"] .topbar .actions button{
  background: #e8f4e8;
  border: 1px solid #3c9532;
  color: #3c9532;
  border-radius: 14px;
  padding: 10px 14px;
  font-weight: 600;
  box-shadow: none;
}

body[data-page="category"] .topbar .actions a:hover,
body[data-page="category"] .topbar .actions button:hover{
  background: #dff0df;
  border-color: #bfe0bf;
}

/* Responsivo: em mobile os botões não rebentam o layout */
@media (max-width: 640px){
  body[data-page="category"] .topbar{
    height: auto;
    padding: 10px 12px;
  }
  body[data-page="category"] .topbar .actions{
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
  }
  /* sem botão extra */
}

/* ===== Home route panel: ajustes finos para mobile/tablet ===== */
@media (max-width: 520px){
  .homeMap{ height: 320px; }
  .routeCtrl{ max-width: calc(100% - 18px); }
  .routePanel{
    left: 10px;
    right: 10px;
    bottom: 10px;
    border-radius: 16px;
  }
  .routePanel__body{ -webkit-overflow-scrolling: touch; }
  .routePanel__regen{ padding: 8px 10px; }
  .routePanel__close{ font-size: 26px; }
}

@media (min-width: 521px) and (max-width: 900px){
  .homeMap{ height: 360px; }
  .routePanel__body{ -webkit-overflow-scrolling: touch; }
}



/* LIGHTBOX overlay: centrado sempre */
.lightbox{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.65);
  z-index: 9999;

  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.lightbox.isOpen{
  display: flex;
}

/* caixa */
.lightboxInner{
  position: relative;
  width: 100%;
  max-width: 1100px;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* imagem */
.lightboxImg{
  width: 100%;
  height: auto;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 16px;
  background: #0b1020;
}

/* fechar */
.lightboxClose{
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
  background: rgba(255,255,255,.9);
}

/* setas */
.lightboxNav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-size: 34px;
  line-height: 1;
  background: rgba(255,255,255,.9);
  display: grid;
  place-items: center;
}

.lightboxPrev{ left: 10px; }
.lightboxNext{ right: 10px; }

/* MOBILE/TABLET */
@media (max-width: 768px){
  .lightboxInner{ max-width: 100%; }
  .lightboxNav{ width: 42px; height: 42px; font-size: 30px; }
  .lightboxClose{ width: 42px; height: 42px; font-size: 26px; }
}



/* AI ASSISTANT */

.aiFab{
  position:fixed; right:16px; bottom:16px;
  display:flex; gap:10px; align-items:center;
  border:1px solid var(--line);
  background: rgba(15,20,34,.92);
  color:var(--text);
  padding:12px 14px;
  border-radius:999px;
  cursor:pointer;
  z-index: 9999;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  max-width: 92vw;
  white-space: nowrap;
}
.aiFabDot{width:10px;height:10px;border-radius:50%; background:#4ade80;}
.aiFabTxt{font-weight:700; letter-spacing:.2px;}
.aiPanel{
  position:fixed; inset:0;
  background: rgba(0,0,0,.55);
  display:none;
  z-index: 9998;
  overscroll-behavior: contain;
}
.aiPanel.isOpen{display:block;}

/* Bloqueia o scroll da página quando o Guia está aberto */
body.assistantOpen{
  overflow:hidden;
  height:100vh;
  touch-action:none;
}
.aiPanelInner{
  position:absolute; right:16px; bottom:76px;
  width:min(420px, calc(100vw - 32px));
  max-height:min(78vh, 680px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  background: rgba(15,20,34,.96);
  border-radius: 18px;
  box-shadow: 0 14px 50px rgba(0,0,0,.45);
  color: var(--text);

  /* animação suave (sem quebrar transforms do responsive) */
  --aiEnterY: 10px;
  opacity:0;
  transform: translateY(var(--aiEnterY));
  transition: opacity .18s ease, transform .18s ease;
}
.aiPanel.isOpen .aiPanelInner{opacity:1; --aiEnterY: 0px;}
.aiTop{
  position:sticky; top:0;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 14px 10px;
  border-bottom:1px solid var(--line);
  background: rgba(15,20,34,.985);
  backdrop-filter: blur(8px);
}
.aiTitleWrap{display:flex; flex-direction:column; gap:2px; min-width:0;}
.aiTitle{font-weight:900; color: rgba(255,255,255,.98); letter-spacing:.2px; line-height:1.05;}
.aiSubtitle{display:none !important;}
.aiClose{
  border:0; background:transparent; color:var(--text);
  font-size:26px; line-height:1;
  cursor:pointer;
}

/* micro-interações */
.aiSend, .chip, .pill, .aiTab{
  transition: transform .12s ease, background-color .12s ease, border-color .12s ease, opacity .12s ease;
}
.aiSend:active, .chip:active, .pill:active, .aiTab:active{transform: scale(.98);}
.chip:hover, .pill:hover, .aiTab:hover{background: rgba(255,255,255,.10);}
.aiHelp{padding:10px 14px 0; color:var(--muted); font-size:14px;}
.aiChips{display:flex; flex-wrap:wrap; gap:8px; padding:10px 14px 6px;}
.chip{
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color:var(--text);
  padding:7px 10px;
  border-radius:999px;
  cursor:pointer;
  font-size:13px;
}
.aiForm{display:flex; gap:10px; padding:10px 14px 14px;}
.aiInput{
  flex:1;
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color:var(--text);
  padding:10px 12px;
  border-radius:12px;
  outline:none;
}
.aiSend{
  border:1px solid var(--line);
  background: rgba(255,255,255,.12);
  color:var(--text);
  padding:10px 12px;
  border-radius:12px;
  cursor:pointer;
  font-weight:700;
}
.aiOut{padding:0 14px 14px;}
.aiNote{color:var(--muted); font-size:13px; margin:0 0 10px;}
.aiEmpty{color:var(--muted); font-size:14px; padding:10px 0;}
.aiGrid{display:grid; gap:10px;}
.aiCard{
  display:block;
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  border-radius:14px;
  padding:12px;
  text-decoration:none;
  color:var(--text);
}
.aiCardTitle{font-weight:800; margin:0 0 4px;}
.aiCardMeta{color:var(--muted); font-size:12.5px; margin-bottom:6px;}
.aiCardAddr{color:var(--text); opacity:.9; font-size:13px; margin-bottom:6px;}
.aiCardDesc{color:var(--muted); font-size:13px; line-height:1.35;}
.aiCardCta{margin-top:10px; font-weight:800; font-size:13px;}
.aiFoot{
  display:flex; justify-content:center; align-items:center; gap:8px;
  padding:12px 14px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
}
.aiFoot a{color:var(--text); text-decoration:underline;}
.aiSep{opacity:.55;}

/* --- Assistente: Tabs + Roteiro --- */
.aiTopRight{display:flex; align-items:center; gap:10px;}
.aiTabs{display:flex; gap:6px; padding:0; margin:0;}
.aiTab{
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color:rgba(255,255,255,.92);
  padding:6px 10px;
  border-radius:999px;
  cursor:pointer;
  font-size:12.5px;
  font-weight:800;
}
.aiTab.isActive{background: rgba(255,255,255,.14);}
.aiBody{
  flex:1;
  overflow:auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-top: 12px;
  padding-bottom: 12px;
}

.aiRow{padding:10px 14px 0;}
.aiRow:last-child{padding-bottom:14px;}
.aiLbl{display:block; font-size:12.5px; color:var(--muted); margin-bottom:6px;}
.aiSelect{
  width:100%;
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color:var(--text);
  padding:10px 12px;
  border-radius:12px;
  outline:none;
}

/* -------- Assistente: layout premium (mobile/tablet) -------- */
@media (max-width: 980px){
  /* tablet: centra o modal para ficar mais "app" */
  .aiPanelInner{
    left:50%; top:50%; right:auto; bottom:auto;
    transform: translate(-50%,-50%) translateY(var(--aiEnterY));
    width: min(520px, calc(100vw - 32px));
    max-height: min(78vh, 720px);
  }
}

@media (max-width: 560px){
  /* mobile: bottom sheet */
  .aiPanelInner{
    left:0; right:0; bottom:0; top:auto;
    transform: translateY(var(--aiEnterY));
    width: 100vw;
    max-height: 88vh;
    border-radius: 22px 22px 0 0;
  }
  /* handle do bottom-sheet */
  .aiTop{position:sticky;}
  .aiTop:before{
    content:"";
    position:absolute;
    left:50%;
    top:8px;
    transform: translateX(-50%);
    width:42px;
    height:4px;
    border-radius:999px;
    background: rgba(255,255,255,.22);
  }
  .aiForm{flex-direction:column;}
  .aiSend{width:100%;}
  .aiTop{padding:12px 14px 10px;}
  .aiHelp{font-size:13.5px;}
}

/* Melhor contraste nas pills (inclui duração e interesses) */
.pill{color: rgba(255,255,255,.92);}
.pill.isOn{background: rgba(74,222,128,.18); border-color: rgba(74,222,128,.30);}
.aiPills{display:flex; flex-wrap:wrap; gap:8px;}
.pill{
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color:var(--text);
  padding:7px 10px;
  border-radius:999px;
  cursor:pointer;
  font-size:13px;
}
.pill.isOn{background: rgba(74,222,128,.14);} /* leve, mantém a paleta */

.aiRow2{display:flex; gap:10px; flex-wrap:wrap;}
.aiChk{display:flex; align-items:center; gap:8px; color:var(--text); opacity:.9; font-size:13px;}
.aiChk input{accent-color:#4ade80;}

.aiRouteOut{padding:0 14px 14px;}
.aiRouteBlock{margin-top:10px;}
.aiRouteH{font-weight:900; margin:12px 0 8px;}


/* Language switcher (header-aligned, responsive) */
.langSwitch{display:flex;gap:8px;align-items:center;flex-shrink:0;}
.langBtn{border:1px solid rgba(0,0,0,.14);background:rgba(255,255,255,.86);color:#111;padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.08);user-select:none;}
.langBtn:hover{transform:translateY(-1px);}
.langBtn.active{background:#111;color:#fff;border-color:rgba(0,0,0,.35);}
@media (max-width:560px){
  .langBtn{padding:6px 8px;font-size:11px;}
}

/* Positioning in headers */
.homeTop__inner{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;}

/* Identidade ACI no cabeçalho público */
.homeBrand__img.vpAciLogo,
.brand__img.vpAciLogo{
  display:block;
  width:auto;
  height:52px;
  max-width:170px;
  object-fit:contain;
  object-position:left center;
}
@media(max-width:1024px){
  .homeBrand__img.vpAciLogo,.brand__img.vpAciLogo{height:46px;max-width:150px}
}
@media(max-width:620px){
  .homeBrand__img.vpAciLogo,.brand__img.vpAciLogo{height:40px;max-width:132px}
}
@media(max-width:380px){
  .homeBrand__img.vpAciLogo,.brand__img.vpAciLogo{height:36px;max-width:116px}
}
@media (max-width:520px){
  .langBtn{padding:7px 9px;font-size:11px;}
  .langSwitch{gap:6px;top:10px;right:10px;}
}


/* --- Language switch: responsive & non-overlapping --- */
.langSwitch{
  display:flex;
  gap:8px;
  align-items:center;
}
.langBtn{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  font-weight:700;
  font-size:12px;
  line-height:1;
  cursor:pointer;
}
.langBtn.active{
  background:#111;
  color:#fff;
  border-color:#111;
}
@media (max-width: 640px){
  .langSwitch{ gap:6px; }
  .langBtn{ padding:7px 9px; font-size:12px; }
  nav .langSwitch{ margin-left:8px; }
}


/* Marketplace teaser (homepage) */
.marketTeaser{
  margin: 16px 0 0;
  padding: 18px;
  border-radius: 22px;
  background: rgba(31,122,58,.06);
  border: 1px solid rgba(10,12,16,.08);
}
.marketTeaser__inner{
  display:flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.marketTeaser__title{
  margin: 0;
  font-size: 18px;
  font-weight: 950;
  color:#0b0d12;
}
.marketTeaser__text{
  margin: 0;
  color: rgba(10,12,16,.72);
  max-width: 56ch;
}
.btnP--market{
  border-color: rgba(31,122,58,.35);
  color: #1f7a3a;
}
.btnP--market:hover{
  background: rgba(255,255,255,.98);
}

@media (max-width: 520px){
  .marketTeaser{ padding: 14px; border-radius: 18px; }
  .marketTeaser__inner{ gap: 10px; }
  .marketTeaser__text{ max-width: 100%; }
}


/* Ecosystem Paiva Digital */
.ecosystem{
  margin: 26px 0 12px;
  padding: 34px 16px;
}
.ecosystem__inner{
  max-width: 980px;
  margin: 0 auto;
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,255,255,0.72));
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 22px;
  padding: 26px 22px;
  box-shadow: 0 14px 40px rgba(0,0,0,0.08);
  backdrop-filter: blur(6px);
}
.ecosystem__brandWrap{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:0 auto 10px;
}
.ecosystem__brand{
  display:block;
  width:min(255px,62vw);
  max-height:82px;
  object-fit:contain;
}
.ecosystem__title{
  margin: 0 0 8px;
  font-size: 24px;
  line-height: 1.15;
  text-align: center;
}
.ecosystem__subtitle{
  margin: 0 auto 16px;
  max-width: 720px;
  opacity: .85;
  text-align: center;
}
.ecosystem__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: stretch;
}
.ecosystem__card{
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 18px;
  padding: 18px 18px 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
}
.ecosystem__h{
  margin: 0 0 8px;
  font-size: 16px;
}
.ecosystem__p{
  margin: 0 0 12px;
  opacity: .9;
}

/* Social icons (Marketplace card) */
.ecosystem__social{
  margin-top: 14px;
  display: flex;
  gap: 10px;
  align-items: center;
}

.socialBtn{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #1f7a33;
  background: rgba(31,122,51,0.06);
  border: 1px solid rgba(31,122,51,0.18);
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}

.socialBtn:hover{
  transform: translateY(-1px);
  background: rgba(31,122,51,0.10);
  box-shadow: 0 10px 18px rgba(0,0,0,0.10);
}

.socialBtn svg{
  width: 20px;
  height: 20px;
  fill: currentColor;
}
.ecosystem__stores{
  display: flex;
  gap: 12px;
  margin-top: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.ecosystem__store{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 176px;
  height: 54px;
  border-radius: 12px;
  background: rgba(0,0,0,0.02);
  border: 1px solid rgba(0,0,0,0.06);
  transition: transform .12s ease, box-shadow .12s ease;
}

.ecosystem__store:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(0,0,0,0.10);
}

.ecosystem__store img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.10));
}

/* Ajuste visual para badges (padding interno difere entre Apple/Google) */
.ecosystem__store img{ transform-origin: center; }
.ecosystem__store--google img{ transform: scale(1.06); }
.ecosystem__store--apple img{ transform: scale(0.90); }
.ecosystem__qrWrap{
  margin-top: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: stretch;
}
.ecosystem__qr{
  display: grid;
  place-items: center;
  gap: 8px;
  background: rgba(0,0,0,0.02);
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  padding: 12px;
}
.ecosystem__qr img{
  width: 112px;
  height: 112px;
  border-radius: 14px;
  background: #fff;
  padding: 8px;
  border: 1px solid rgba(0,0,0,0.06);
}
.ecosystem__qrLabel{
  font-size: 12px;
  opacity: .8;
}
.ecosystem__qrHint{
  margin: 10px 0 0;
  font-size: 12px;
  opacity: .75;
}

/* Mobile smart toggle (QR shown on demand) */
.ecosystem__qrToggle{
  display: none;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(31,122,51,0.35);
  background: rgba(31,122,51,0.06);
  color: #1f7a33;
  font-weight: 700;
  cursor: pointer;
}
.ecosystem__qrToggle:active{ transform: translateY(1px); }

@media (max-width: 900px){
  .ecosystem__grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px){
  .ecosystem{ padding: 18px 12px; }
  .ecosystem__inner{ padding: 18px 14px; }
  .ecosystem__qrToggle{ display: inline-flex; align-items: center; justify-content: center; width: 100%; }
  .ecosystem__qrWrap{ display: none; }
  .ecosystem__qrWrap.is-open{ display: grid; }
  .ecosystem__stores{ gap: 10px; }
  .ecosystem__store{ width: 168px; height: 52px; }
}

.ecosystem__title{
  color: #1f7a33;
  font-weight: 800;
}



/* Voice guide button (modal) */
.voiceSlot{ margin: 10px 0 6px; }
.voiceBtn{
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid #1f7a33;
  background: rgba(31,122,51,0.08);
  color: #1f7a33;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}
.voiceBtn:hover{
  background: #1f7a33;
  color: #fff;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  transform: translateY(-1px);
}
.voiceBtn.playing{ background: #1f7a33; color: #fff; }


/* garantir alinhamento */
.homePrimary .btnP{
  display:inline-flex;
  align-items:center;
}

/* bolinha base (não depende de spans no HTML) */
.homePrimary .btnP::before{
  content:"";
  width:12px;
  height:12px;
  border-radius:999px;
  display:inline-block;
  margin-right:10px;
  box-shadow: 0 0 0 3px #fff, 0 2px 8px rgba(0,0,0,.12);
  flex:0 0 12px;
}

/* cores por categoria (pelo href) */
.homePrimary .btnP[href*="cat=visitar"]::before{ background:#aa8800; } /* Visitar */
.homePrimary .btnP[href*="cat=comer"]::before{  background:#ED2935; } /* Comer */
.homePrimary .btnP[href*="cat=dormir"]::before{ background:#095594; } /* Dormir */
.homePrimary .btnP[href*="atividades.php"]::before{ background:#7b4bb7; } /* Atividades turísticas */
.homePrimary .btnP--agenda::before{background:#35a36f} /* Agenda */


/* --- Carro animado na rota (Leaflet) --- */
.routeCarIcon{
  background: transparent !important;
  border: none !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 30px !important;
  height: 30px !important;
  pointer-events: none;
}

.routeCarInner{
  font-size: 22px;
  line-height: 1;
  filter: drop-shadow(0 3px 3px rgba(0,0,0,.30));
  transform-origin: 50% 50%;
  will-change: transform;
}



/* Botão pequeno para reabrir quando o painel está escondido */
.routePeekBtn{
  position:absolute;
  left: 12px;
  bottom: 12px;
  z-index: 600;
  border: 1px solid rgba(10,12,16,.12);
  background: rgba(255,255,255,.96);
  color: rgba(10,12,16,.86);
  border-radius: 999px;
  padding: 10px 12px;
  font-weight: 950;
  font-size: 12px;
  box-shadow: 0 14px 34px rgba(10,12,16,.18);
  cursor: pointer;
}
.routePeekBtn:hover{ background: rgba(255,255,255,.99); }

/* ===== PWA install hint (iOS) ===== */
.pwaHint{
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(255,255,255,.92);
  color: rgba(10,12,16,.78);
  font-weight: 850;
  font-size: 13px;
  box-shadow: 0 10px 24px rgba(10,12,16,.06);
}
.pwaHint strong{ color: rgba(10,12,16,.92); }

/* ===== PWA iOS popup (toast/modal leve) ===== */
.pwaPopup{
  position: fixed;
  inset: 0;
  display: none;
  align-items: flex-end;
  justify-content: center;
  padding: 16px;
  z-index: 12000;
  pointer-events: none;
}
.pwaPopup.isOpen{ display:flex; }

.pwaPopupCard{
  position: relative;
  pointer-events: auto;
  width: min(520px, calc(100vw - 32px));
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
  padding: 14px 44px 14px 14px;
  color: #0b0d12;
  backdrop-filter: blur(8px);
  transform: translateY(10px);
  opacity: 0;
  transition: transform .18s ease, opacity .18s ease;
}
.pwaPopup.isOpen .pwaPopupCard{ transform: translateY(0); opacity: 1; }

.pwaPopupTitle{ font-weight: 950; font-size: 14px; margin: 0 0 4px; }
.pwaPopupText{ font-size: 13px; line-height: 1.35; color: rgba(10,12,16,.80); }

.pwaPopupClose{
  position:absolute;
  right: 10px;
  top: 10px;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.04);
  color: rgba(10,12,16,.80);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.pwaPopupClose:hover{ background: rgba(0,0,0,.08); }

@media (max-width: 560px){
  .pwaPopup{ padding: 12px; }
  .pwaPopupCard{ border-radius: 16px; padding-right: 44px; }
}
@media (max-width: 520px){
  .pwaHint{ width: 100%; max-width: 360px; margin-left:auto; margin-right:auto; text-align:center; }
}







/* ===== Eventos emblemáticos (homepage) ===== */
.eventsActions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-start;
  margin: 10px 0 12px;
}

.eventsGrid{
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height: 340px;
  overflow:auto;
  padding-right: 4px;
}

.eventItem{
  width:100%;
  text-align:left;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(10,12,16,.08);
  background: rgba(255,255,255,.92);
  color:#0b0d12;
  cursor:pointer;
  box-shadow: 0 8px 18px rgba(10,12,16,.04);
}
.eventItem:hover{
  background: rgba(255,255,255,.98);
}


.eventThumb{
  width: 64px;
  height: 64px;
  flex: 0 0 auto;
  border-radius: 12px;
  object-fit: cover;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.02);
}

.eventMain{ flex: 1; min-width: 0; }
.eventTitle, .eventDesc, .eventMeta{ display:block; }
.eventTitle{ font-weight: 950; }
.eventDesc{ margin-top: 2px; }
.eventMeta{ margin-top: 6px; }
.eventMonth{ font-weight: 850; }

.modal.eventMode .kv{ display:none; }
.modal.eventMode .gallery{ display:grid; }


.eventBadge{
  align-self:flex-start;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(10,12,16,.10);
  background: rgba(10,12,16,.03);
  font-weight: 950;
  font-size: 12px;
  color: rgba(10,12,16,.70);
  white-space: nowrap;
  margin-bottom: 2px;
}

.eventMain{
  flex:1;
  display:flex;
  flex-direction:column;
  gap: 4px;
  min-width: 0;
}
.eventTitle{
  font-weight: 950;
  font-size: 14px;
  line-height: 1.25;
}
.eventDesc{
  font-size: 13px;
  color: rgba(10,12,16,.72);
  line-height: 1.35;
}
.eventMeta{
  font-size: 12px;
  color: rgba(10,12,16,.55);
  font-weight: 850;
}

.eventMore{
  flex:0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:grid;
  place-items:center;
  background: rgba(10,12,16,.04);
  border: 1px solid rgba(10,12,16,.08);
  color: rgba(10,12,16,.65);
  font-weight: 950;
}

@media (max-width: 980px){
  .eventsGrid{ max-height: 280px; }
}

@media (max-width: 520px){
  .eventItem{ padding: 12px 10px; }
  .eventMore{ width: 32px; height: 32px; }
}


/* ===== Eventos (modal): imagem com altura definida (Opção A) ===== */
.modal.eventMode .gallery{
  display:grid;
  grid-template-columns: 1fr;
}
.modal.eventMode .gallery img,
.modal.eventMode .gallery .eventHeroImg{
  width: 100%;
  height: clamp(220px, 42vh, 420px);
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid var(--line);
  display:block;
}

/* Mobile: ajusta altura da imagem e mantém tudo dentro do ecrã */
@media (max-width: 680px){
  .modal{
    max-height: 92vh;
  }
  .modalInner{
    max-height: 92vh;
  }
  .modal.eventMode .gallery img,
  .modal.eventMode .gallery .eventHeroImg{
    height: clamp(180px, 32vh, 300px);
    border-radius: 12px;
  }
}

/* ===== VISITE PAIVA 2026: actions, agenda and partner CTA ===== */
.placeActions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.placeActions .btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.placeActions .btn--primary{
  background:#2f7f35;
  border-color:#2f7f35;
  color:#fff;
}
.placeActions .btn--ghost{
  background:transparent;
}
.placeActions .btn.isSaved{
  background:#f2ead0;
  border-color:#c9a84c;
  color:#1f4b2b;
}
.btnP--agenda .agendaMiniIcon{
  width:16px;
  height:16px;
  border:1.8px solid currentColor;
  border-radius:3px;
  position:relative;
  display:inline-block;
  flex:0 0 16px;
}
.btnP--agenda .agendaMiniIcon:before,
.btnP--agenda .agendaMiniIcon:after{
  content:"";
  position:absolute;
  top:-4px;
  width:2px;
  height:6px;
  border-radius:2px;
  background:currentColor;
}
.btnP--agenda .agendaMiniIcon:before{left:3px}
.btnP--agenda .agendaMiniIcon:after{right:3px}

.partnerCta{
  padding:26px 18px 18px;
}
.partnerCta__inner{
  max-width:1120px;
  margin:0 auto;
  position:relative;
  overflow:hidden;
  padding:30px 32px;
  border-radius:26px;
  border:1px solid rgba(45,113,52,.16);
  background:
    radial-gradient(circle at 92% 12%, rgba(184,149,66,.15), transparent 34%),
    linear-gradient(135deg, rgba(45,113,52,.10), rgba(255,255,255,.98) 46%, rgba(184,149,66,.08));
  box-shadow:0 18px 50px rgba(30,86,43,.08);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,340px);
  gap:30px;
  align-items:center;
}
.partnerCta__inner::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border:1px solid rgba(184,149,66,.16);
  border-radius:50%;
  right:-105px;
  top:-120px;
  pointer-events:none;
}
.partnerCta__copy{
  position:relative;
  z-index:1;
  min-width:0;
}
.partnerCta__eyebrow{
  display:block;
  font-size:11px;
  font-weight:900;
  letter-spacing:.20em;
  color:#936f21;
  margin-bottom:9px;
}
.partnerCta h2{
  margin:0 0 10px;
  font-size:clamp(25px,3vw,38px);
  line-height:1.08;
  letter-spacing:-.025em;
}
.partnerCta p{
  margin:0;
  max-width:720px;
  line-height:1.62;
  color:#475148;
  font-size:15px;
}
.partnerCta__highlights{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:17px;
}
.partnerCta__highlights span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(45,113,52,.12);
  color:#31563a;
  font-size:12px;
  font-weight:800;
}
.partnerCta__side{
  position:relative;
  z-index:1;
  display:grid;
  gap:10px;
  min-width:0;
}
.partnerCta__primary,
.partnerCta__login{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  text-decoration:none;
  border-radius:15px;
  padding:14px 16px;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.partnerCta__primary{
  min-height:66px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  background:linear-gradient(135deg,#2d7134,#40a043);
  color:#fff;
  box-shadow:0 14px 28px rgba(45,113,52,.20);
}
.partnerCta__primary span{
  font-size:16px;
  font-weight:900;
  line-height:1.15;
}
.partnerCta__primary small{
  display:block;
  margin-top:3px;
  font-size:11px;
  font-weight:650;
  opacity:.82;
  letter-spacing:.03em;
}
.partnerCta__login{
  min-height:58px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:rgba(255,255,255,.84);
  color:#183420;
  border:1px solid rgba(45,113,52,.18);
}
.partnerCta__login span{
  font-size:11px;
  color:#6b746d;
  margin-bottom:3px;
}
.partnerCta__login strong{
  font-size:14px;
  line-height:1.25;
}
.partnerCta__primary:hover,
.partnerCta__login:hover{
  transform:translateY(-1px);
}
.partnerCta__primary:hover{
  box-shadow:0 18px 36px rgba(45,113,52,.24);
}
.partnerCta__login:hover{
  border-color:rgba(45,113,52,.34);
  background:#fff;
}

@media (max-width:900px){
  .partnerCta{
    padding:22px 16px 16px;
  }
  .partnerCta__inner{
    grid-template-columns:1fr;
    gap:22px;
    padding:26px 24px;
  }
  .partnerCta__side{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:620px){
  .partnerCta{
    padding:18px 12px 12px;
  }
  .partnerCta__inner{
    padding:22px 18px;
    border-radius:20px;
    gap:18px;
  }
  .partnerCta h2{
    font-size:clamp(25px,8vw,32px);
  }
  .partnerCta p{
    font-size:14px;
  }
  .partnerCta__highlights{
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
  }
  .partnerCta__highlights span{
    border-radius:10px;
  }
  .partnerCta__side{
    grid-template-columns:1fr;
    width:100%;
  }
  .partnerCta__primary,
  .partnerCta__login{
    width:100%;
  }
  .placeActions .btn{
    flex:1 1 100%;
  }
}

.modal.eventMode .placeActions{display:none!important}

.partnerCta__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* ===== VISITE PAIVA EVOLUÇÃO 5 ===== */
.navAgendaIcon{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btnP--agenda{display:inline-flex;align-items:center;gap:8px}
.partnerCta--home{padding:22px 18px 30px}
.partnerCta__inner{grid-template-columns:minmax(0,1fr) minmax(320px,390px);gap:34px;padding:34px 36px}
.partnerCta__copy strong{color:#1e562b}
.partnerCta__actions{position:relative;z-index:2;display:grid;grid-template-columns:1fr;gap:10px;width:100%}
.partnerCta__btn{width:100%;min-width:0;min-height:62px;display:flex;align-items:center;gap:13px;box-sizing:border-box;padding:13px 15px;border-radius:15px;border:1px solid rgba(45,113,52,.18);text-decoration:none!important;color:#183420!important;background:#fff;box-shadow:0 9px 24px rgba(30,86,43,.06);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
.partnerCta__btn:hover{transform:translateY(-2px);box-shadow:0 15px 32px rgba(30,86,43,.12);border-color:rgba(45,113,52,.34)}
.partnerCta__btn--primary{color:#fff!important;border-color:transparent;background:linear-gradient(135deg,#2d7134,#40a043);box-shadow:0 14px 30px rgba(45,113,52,.21)}
.partnerCta__btn--secondary{background:#fff}
.partnerCta__btn--ghost{background:rgba(255,255,255,.58);border-color:rgba(184,149,66,.24)}
.partnerCta__btnIcon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:rgba(45,113,52,.09)}
.partnerCta__btn--primary .partnerCta__btnIcon{background:rgba(255,255,255,.16)}
.partnerCta__btn--ghost .partnerCta__btnIcon{background:rgba(184,149,66,.11)}
.partnerCta__btnIcon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.partnerCta__btn>span:last-child{display:flex;flex-direction:column;min-width:0}
.partnerCta__btn strong{color:inherit;font-size:15px;line-height:1.18}
.partnerCta__btn small{display:block;margin-top:4px;color:inherit;opacity:.68;font-size:11px;line-height:1.2}
.homeFooter{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px 22px}
.homeFooter__links{display:flex;flex-wrap:wrap;gap:10px 16px}
.homeFooter__links a{color:inherit;text-decoration:none;font-weight:700}
.homeFooter__links a:hover{text-decoration:underline}
@media(max-width:980px){
  .partnerCta__inner{grid-template-columns:1fr;gap:24px;padding:28px 26px}
  .partnerCta__actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .partnerCta__btn{min-height:86px;flex-direction:column;align-items:flex-start;justify-content:center}
}
@media(max-width:760px){
  .partnerCta--home{padding:18px 12px 24px}
  .partnerCta__inner{padding:24px 20px;border-radius:20px}
  .partnerCta__actions{grid-template-columns:1fr}
  .partnerCta__btn{min-height:62px;flex-direction:row;align-items:center}
  .homeFooter{padding-left:18px;padding-right:18px}
  .homeFooter__links{justify-content:center}
}
@media(max-width:430px){
  .partnerCta__inner{padding:21px 16px}
  .partnerCta h2{font-size:28px}
  .partnerCta__btn{padding:12px 13px}
  .partnerCta__btnIcon{width:35px;height:35px;flex-basis:35px}
}

/* ===== VISITE PAIVA V9 — refinamentos desktop/mobile ===== */
.partnerCta__btn strong,.partnerCta__btn small{overflow-wrap:anywhere}
.homeFooter__support{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.08)}.homeFooter__support span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.homeFooter__support strong{font-size:12px}@media(max-width:700px){.homeFooter__support{width:100%;justify-content:center;flex-wrap:wrap}}
.partnerCta__btn>span:last-child{max-width:100%}
.homeFooter{box-sizing:border-box}
@media(max-width:980px){
  .partnerCta__actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .partnerCta__btn{min-height:92px}
}
@media(max-width:760px){
  .partnerCta__actions{grid-template-columns:1fr}
  .partnerCta__btn{min-height:62px}
  .partnerCta__highlights{gap:6px}
  .homeFooter{padding-bottom:76px}
}
@media(max-width:430px){
  .partnerCta--home{padding-left:10px;padding-right:10px}
  .partnerCta__inner{padding:20px 15px}
  .partnerCta h2{font-size:27px;line-height:1.08}
  .partnerCta p{font-size:13.5px;line-height:1.58}
}

/* =========================================================
   V18 — PERGUNTE AO VISITE PAIVA / CONCIERGE DIGITAL
   ========================================================= */
.aiFab{
  right:18px;
  bottom:18px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(135deg,rgba(22,85,51,.98),rgba(30,86,43,.96));
  padding:12px 16px;
  box-shadow:0 14px 38px rgba(0,0,0,.34),0 0 0 1px rgba(255,255,255,.03) inset;
}
.aiFabMark{
  width:25px;height:25px;border-radius:50%;display:grid;place-items:center;
  background:#d5b356;color:#173e29;font-weight:900;font-size:15px;
  box-shadow:0 4px 14px rgba(213,179,86,.24);
}
.aiFabTxt{font-weight:800;font-size:13px;letter-spacing:.01em}
.aiPanelInner{width:min(480px,calc(100vw - 32px));max-height:min(82vh,760px)}
.aiConciergeSub{margin-top:4px;color:rgba(255,255,255,.58);font-size:11.5px;line-height:1.25}
.aiAnswer{display:grid;gap:10px}
.aiAnswerBrand{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:#d5b356}
.aiAnswerText{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.96)}
.aiAnswerNote,.aiHint{font-size:12.5px;line-height:1.5;color:var(--muted)}
.aiSectionGap{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.aiResultCard{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:16px;padding:10px}
.aiCard{padding:0;overflow:hidden}
.aiCardLink{display:block;padding:12px;color:inherit;text-decoration:none}
.aiCardActions{display:flex;gap:7px;flex-wrap:wrap;padding:0 12px 12px}
.aiMiniBtn{
  appearance:none;border:1px solid var(--line);background:rgba(255,255,255,.08);color:var(--text);
  text-decoration:none;padding:8px 10px;border-radius:10px;font-size:12px;font-weight:800;cursor:pointer;
}
.aiMiniBtn:hover{background:rgba(255,255,255,.13)}
.aiMiniBtn.aiPrimary{background:#2f7134;border-color:#3f8f48;color:#fff}
.aiThinking{display:flex;align-items:center;gap:10px;padding:12px;color:var(--muted);font-size:13px}
.aiThinking span{width:9px;height:9px;border-radius:50%;background:#d5b356;box-shadow:0 0 0 0 rgba(213,179,86,.5);animation:vpPulse 1.35s infinite}
@keyframes vpPulse{0%{box-shadow:0 0 0 0 rgba(213,179,86,.48)}70%{box-shadow:0 0 0 9px rgba(213,179,86,0)}100%{box-shadow:0 0 0 0 rgba(213,179,86,0)}}
.aiEventCard .aiCardMeta{color:#d5b356}
.aiRouteBlock+.aiRouteBlock{margin-top:14px}
.aiRouteH{font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:900;color:#d5b356;margin:0 0 8px}
@media(max-width:560px){
  .aiFab{right:14px;bottom:16px;padding:11px 13px}.aiFabTxt{font-size:12.5px}
  .aiPanelInner{max-height:91vh}.aiTopRight{gap:7px}.aiTab{padding:6px 8px;font-size:11.5px}
  .aiCardActions{display:grid;grid-template-columns:1fr 1fr}.aiMiniBtn{text-align:center}
}

/* =========================================================
   V19.10 — CABEÇALHO ACI LIMPO + FAVORITOS JUNTO AOS IDIOMAS
   Sem moldura, sombra, gradiente ou efeitos no logótipo.
   Área de Parceiros mantém o logótipo Visite Paiva.
   ========================================================= */
.homeTop{
  background:#fff;
  border-bottom:1px solid rgba(30,86,43,.09);
  box-shadow:none;
}
.homeTop__inner{
  max-width:1200px;
  min-height:82px;
  margin:0 auto;
  padding:8px 18px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:8px;
}

/* Logótipo ACI: destaque apenas pelo tamanho, sem qualquer efeito visual */
.homeBrand,
.topbar .brand--logo{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 1 auto;
  width:auto;
  max-width:100%;
  min-width:0;
  padding:0;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  filter:none;
  overflow:visible;
  transform:none;
  transition:none;
}
.homeBrand:hover,
.topbar .brand--logo:hover{
  transform:none;
  border:0;
  background:transparent;
  box-shadow:none;
}
.homeBrand::after,
.topbar .brand--logo::after{display:none!important;content:none!important}

.homeBrand__img.vpAciLogo{
  display:block;
  height:66px;
  max-width:210px;
  width:auto;
  object-fit:contain;
  object-position:left center;
  filter:none;
  box-shadow:none;
}
.brand__img.vpAciLogo{
  display:block;
  height:58px;
  max-width:188px;
  width:auto;
  object-fit:contain;
  object-position:left center;
  filter:none;
  box-shadow:none;
}

/* Mantém Favoritos imediatamente antes dos idiomas, como na versão anterior */
.homeTop__inner>.vpMyVisitLink{
  margin-left:auto!important;
  flex:0 0 auto;
  width:auto!important;
  justify-content:center;
}
.homeTop__inner>.langSwitch{
  margin-left:4px!important;
  flex:0 0 auto;
  justify-self:auto;
}

body[data-page="category"] .topbar,
body:has(.activitiesHero) .topbar{
  background:#fff;
  border-bottom:1px solid rgba(30,86,43,.09);
  box-shadow:none;
}

@media(max-width:1024px){
  .homeTop__inner{min-height:72px;padding:7px 14px}
  .homeBrand__img.vpAciLogo{height:58px;max-width:184px}
  .brand__img.vpAciLogo{height:52px;max-width:170px}
}

@media(max-width:760px){
  .homeTop__inner{
    min-height:64px;
    padding:7px 10px;
    display:flex;
    grid-template-columns:none;
    align-items:center;
    justify-content:flex-start;
    flex-wrap:nowrap;
    gap:6px;
  }
  .homeTop__inner>.homeBrand{
    grid-column:auto;
    grid-row:auto;
    flex:0 1 auto;
    min-width:0;
  }
  .homeTop__inner>.vpMyVisitLink{
    grid-column:auto;
    grid-row:auto;
    width:auto!important;
    margin-left:auto!important;
    padding:8px 9px;
  }
  .homeTop__inner>.langSwitch{
    grid-column:auto;
    grid-row:auto;
    justify-self:auto;
    margin-left:2px!important;
    gap:5px;
  }
  .homeBrand__img.vpAciLogo{height:48px;max-width:148px}
  .brand__img.vpAciLogo{height:46px;max-width:148px}
  .homeBrand,.topbar .brand--logo{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
}

@media(max-width:700px){
  /* Só o coração + contador no mobile; fica colado ao seletor de idioma */
  .homeTop .vpMyVisitLink [data-i18n]{display:none!important}
}

@media(max-width:430px){
  .homeTop__inner{min-height:60px;padding:6px 8px;gap:5px}
  .homeBrand__img.vpAciLogo{height:44px;max-width:136px}
  .brand__img.vpAciLogo{height:43px;max-width:136px}
  .homeTop__inner>.vpMyVisitLink{padding:7px 8px!important;gap:4px!important}
  .homeTop__inner>.langSwitch{gap:4px}
  .homeTop__inner>.langSwitch .langBtn{padding:7px 8px;font-size:10.5px}
}

@media(max-width:370px){
  .homeTop__inner{padding:6px 7px;gap:4px}
  .homeBrand__img.vpAciLogo{height:40px;max-width:118px}
  .brand__img.vpAciLogo{height:40px;max-width:122px}
  .homeTop__inner>.vpMyVisitLink{padding:6px 7px!important}
  .homeTop__inner>.langSwitch{margin-left:0!important;gap:3px}
  .homeTop__inner>.langSwitch .langBtn{padding:6px 7px;font-size:10px}
}

@media(max-width:335px){
  .homeBrand__img.vpAciLogo{height:37px;max-width:105px}
  .homeTop__inner>.vpMyVisitLink{padding:6px!important}
  .homeTop__inner>.langSwitch .langBtn{padding:6px;font-size:9.5px}
}


/* =========================================================
   V19.12 — IDENTIDADE ACI UNIFORME EM TODAS AS PÁGINAS PÚBLICAS
   Mesmo tamanho visual no início, mapa/categorias e atividades.
   Sem moldura, sombra, gradiente, animação ou outros efeitos.
   ========================================================= */
:root{
  --vp-aci-logo-height:80px;
  --vp-aci-logo-max-width:260px;
}

.homeBrand__img.vpAciLogo,
.brand__img.vpAciLogo{
  display:block!important;
  width:auto!important;
  height:var(--vp-aci-logo-height)!important;
  max-width:var(--vp-aci-logo-max-width)!important;
  object-fit:contain!important;
  object-position:left center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  transform:none!important;
  transition:none!important;
}

.homeBrand,
.topbar .brand--logo{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  transform:none!important;
}
.homeBrand:hover,
.topbar .brand--logo:hover{
  background:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  transform:none!important;
}
.homeBrand::before,.homeBrand::after,
.topbar .brand--logo::before,.topbar .brand--logo::after{
  display:none!important;
  content:none!important;
}

@media(max-width:1024px){
  :root{--vp-aci-logo-height:70px;--vp-aci-logo-max-width:228px}
}
@media(max-width:760px){
  :root{--vp-aci-logo-height:58px;--vp-aci-logo-max-width:190px}
}
@media(max-width:430px){
  :root{--vp-aci-logo-height:54px;--vp-aci-logo-max-width:176px}
}
@media(max-width:370px){
  :root{--vp-aci-logo-height:50px;--vp-aci-logo-max-width:162px}
}


@media(max-width:335px){
  :root{--vp-aci-logo-height:47px;--vp-aci-logo-max-width:150px}
}

/* V19.12 — Favoritos junto aos idiomas também no mapa e nas atividades */
.topbarTools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex:0 0 auto;
}
.topbarTools .vpMyVisitLink{margin:0!important;flex:0 0 auto}
.topbarTools .langSwitch{margin:0!important}
@media(max-width:760px){
  .topbar{display:flex!important}
  .topbar .brand--logo{order:0}
  .topbarTools{order:1;width:100%;justify-content:flex-end}
  .topbar .actions{order:2}
  .topbarTools .vpMyVisitLink [data-i18n]{display:none!important}
}

/* V19.12 — espaço correto para o logótipo maior nas barras do mapa/atividades */
@media(min-width:761px){
  .topbar{height:76px!important;padding-top:3px;padding-bottom:3px}
  body[data-page="category"] #map{inset:76px 0 0 0}
}


/* =========================================================
   V19.13 — MAPA/CATEGORIAS: RECUPERA A COMPOSIÇÃO MOBILE CLÁSSICA
   ACI em cima + 4 atalhos em grelha + A Minha Visita a toda a largura
   + idiomas centrados por baixo. Mantém o logótipo ACI limpo.
   ========================================================= */
@media (max-width:760px){
  body[data-page="category"] .topbar{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:10px!important;
    height:auto!important;
    padding:12px 12px 10px!important;
    background:#fff!important;
    box-shadow:none!important;
  }

  body[data-page="category"] .topbar .brand--logo{
    order:0!important;
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    margin:0!important;
    padding:0 2px!important;
  }

  body[data-page="category"] .topbar .actions{
    order:1!important;
    width:100%!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }

  body[data-page="category"] .topbar .actions .action{
    width:100%!important;
    min-width:0!important;
    min-height:38px!important;
    margin:0!important;
    padding:9px 10px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    border-radius:13px!important;
    line-height:1.15!important;
  }

  /* 5.º botão = A Minha Visita, exatamente como na versão anterior */
  body[data-page="category"] .topbar .actions .vpMyVisitLink{
    grid-column:1 / -1!important;
    min-height:42px!important;
    gap:7px!important;
  }
  body[data-page="category"] .topbar .actions .vpMyVisitLink [data-i18n]{
    display:inline!important;
  }

  body[data-page="category"] .topbar > .langSwitch{
    order:2!important;
    align-self:center!important;
    margin:0!important;
    display:flex!important;
    justify-content:center!important;
    gap:8px!important;
  }
}

@media (max-width:430px){
  body[data-page="category"] .topbar{
    gap:9px!important;
    padding:11px 12px 9px!important;
  }
  body[data-page="category"] .topbar .actions{
    gap:8px!important;
  }
  body[data-page="category"] .topbar .actions .action{
    font-size:14px!important;
    padding:9px 8px!important;
  }
  body[data-page="category"] .topbar > .langSwitch{
    gap:7px!important;
  }
}

@media (max-width:360px){
  body[data-page="category"] .topbar{
    padding-left:9px!important;
    padding-right:9px!important;
  }
  body[data-page="category"] .topbar .actions{
    gap:7px!important;
  }
  body[data-page="category"] .topbar .actions .action{
    font-size:13px!important;
    padding-left:6px!important;
    padding-right:6px!important;
  }
}

/* =========================================================
   V19.14 — A MINHA VISITA VISÍVEL NAS ATIVIDADES
   Corrige contraste no cabeçalho branco e mantém favoritos
   junto aos idiomas em desktop, tablet e mobile.
   ========================================================= */
.activitiesPage .topbarTools .vpMyVisitLink{
  color:#1e562b!important;
  background:#ffffff!important;
  border:1px solid #d7e1d8!important;
  border-radius:999px!important;
  font-weight:850!important;
  font-size:13px!important;
  line-height:1!important;
  min-height:38px!important;
  padding:8px 10px!important;
  opacity:1!important;
  visibility:visible!important;
}
.activitiesPage .topbarTools .vpMyVisitLink:hover{
  color:#164c2c!important;
  background:#edf5ef!important;
  border-color:#b9cfbd!important;
}
.activitiesPage .topbarTools .vpMyVisitLink > span,
.activitiesPage .topbarTools .vpMyVisitLink [data-i18n]{
  color:inherit;
  opacity:1!important;
  visibility:visible!important;
}
.activitiesPage .topbarTools .vpMyVisitLink .vpFavCount{
  color:#fff!important;
}
.activitiesPage .topbarTools .vpMyVisitLink .vpFavCount.isZero{
  color:#38533f!important;
}
@media(max-width:760px){
  .activitiesPage .topbarTools{
    display:flex!important;
    width:100%!important;
    justify-content:flex-end!important;
    align-items:center!important;
    gap:6px!important;
  }
  .activitiesPage .topbarTools .vpMyVisitLink [data-i18n]{
    display:inline!important;
  }
  .activitiesPage .topbarTools .vpMyVisitLink{
    font-size:12px!important;
    min-height:36px!important;
    padding:7px 9px!important;
    gap:5px!important;
  }
  .activitiesPage .topbarTools .langSwitch{
    flex:0 0 auto!important;
    margin:0!important;
    gap:5px!important;
  }
}
@media(max-width:390px){
  .activitiesPage .topbarTools .vpMyVisitLink{
    font-size:11px!important;
    padding:7px 8px!important;
  }
  .activitiesPage .topbarTools .langBtn{
    padding:7px 8px!important;
    font-size:10.5px!important;
  }
}

/* ===== VISITE PAIVA V19.17 — Agenda homepage isolada e estável ===== */
.vpHomeAgenda[hidden]{display:none!important}
.vpHomeAgenda{
  padding:34px 18px 24px;
}
.vpHomeAgenda__inner{
  width:min(980px,100%);
  margin:0 auto;
  padding:26px;
  border:1px solid rgba(30,86,43,.12);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 42px rgba(24,58,35,.07);
}
.vpHomeAgenda__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.vpHomeAgenda__copy{min-width:0;max-width:680px}
.vpHomeAgenda__eyebrow{
  margin:0 0 7px;
  color:#9a7218;
  font-size:10px;
  font-weight:900;
  letter-spacing:.15em;
}
.vpHomeAgenda h2{
  margin:0;
  color:#173d23;
  font-size:clamp(28px,3.5vw,40px);
  line-height:1.05;
  letter-spacing:-.03em;
}
.vpHomeAgenda__copy p{
  margin:8px 0 0;
  color:#647068;
  font-size:14px;
  line-height:1.55;
}
.vpHomeAgenda__arrows{display:flex;gap:8px;flex:0 0 auto}
.vpHomeAgenda__arrow{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #d8e2da;
  border-radius:50%;
  background:#fff;
  color:#1e562b;
  cursor:pointer;
}
.vpHomeAgenda__arrow:hover,.vpHomeAgenda__arrow:focus-visible{background:#eef5ef;border-color:#9fbea5;outline:0}
.vpHomeAgenda__arrow:disabled{opacity:.28;cursor:default}
.vpHomeAgenda__arrow svg,.vpHomeAgenda__all svg{
  width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round
}
.vpHomeAgenda__viewport{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:1px;
}
.vpHomeAgenda__viewport::-webkit-scrollbar{display:none}
.vpHomeAgenda__viewport:focus-visible{outline:2px solid rgba(47,113,52,.28);outline-offset:4px;border-radius:16px}
.vpHomeAgenda__track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 32px)/3);
  gap:16px;
  align-items:stretch;
}
.vpHomeAgendaCard{
  min-width:0;
  overflow:hidden;
  scroll-snap-align:start;
  border:1px solid #e0e7e1;
  border-radius:17px;
  background:#fff;
  color:#17251c;
  text-decoration:none;
  box-shadow:0 8px 24px rgba(29,67,40,.05);
}
.vpHomeAgendaCard:hover,.vpHomeAgendaCard:focus-visible{border-color:#bad0be;box-shadow:0 12px 30px rgba(29,67,40,.09);outline:0}
.vpHomeAgendaCard__media{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:linear-gradient(135deg,#edf4ee,#f6f0e4);
}
.vpHomeAgendaCard__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vpHomeAgendaCard__fallback{position:absolute;inset:0;display:grid;place-items:center;color:#2f7134}
.vpHomeAgendaCard__fallback svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.5}
.vpHomeAgendaCard__date{
  position:absolute;
  z-index:2;
  left:11px;
  bottom:11px;
  min-width:52px;
  padding:7px 9px 6px;
  border-radius:11px;
  background:rgba(255,255,255,.96);
  box-shadow:0 6px 18px rgba(18,48,27,.15);
  text-align:center;
}
.vpHomeAgendaCard__day{display:block;color:#173d23;font-size:19px;font-weight:900;line-height:1}
.vpHomeAgendaCard__month{display:block;margin-top:3px;color:#9a7218;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.vpHomeAgendaCard__body{display:flex;flex-direction:column;min-height:142px;padding:14px 15px 15px}
.vpHomeAgendaCard__category{margin:0 0 7px;color:#7d5e17;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.vpHomeAgendaCard h3{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  margin:0 0 10px;
  color:#17251c;
  font-size:17px;
  line-height:1.23;
}
.vpHomeAgendaCard__meta{display:flex;align-items:flex-start;gap:6px;margin-top:auto;color:#687169;font-size:11.5px;line-height:1.35}
.vpHomeAgendaCard__meta svg{width:14px;height:14px;flex:0 0 auto;fill:none;stroke:#2f7134;stroke-width:1.8}
.vpHomeAgenda__foot{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:15px}
.vpHomeAgenda__counter{color:#707970;font-size:11px;font-weight:800}
.vpHomeAgenda__all{display:inline-flex;align-items:center;gap:5px;color:#1e562b;font-size:12.5px;font-weight:900;text-decoration:none}
.vpHomeAgenda__all:hover{text-decoration:underline}
@media(max-width:900px){
  .vpHomeAgenda__track{grid-auto-columns:calc((100% - 14px)/2);gap:14px}
}
@media(max-width:600px){
  .vpHomeAgenda{padding:26px 12px 18px}
  .vpHomeAgenda__inner{padding:20px 16px;border-radius:18px}
  .vpHomeAgenda__head{align-items:center;gap:10px;margin-bottom:15px}
  .vpHomeAgenda__eyebrow{font-size:8.5px;letter-spacing:.11em}
  .vpHomeAgenda h2{font-size:29px}
  .vpHomeAgenda__copy p{font-size:12.5px}
  .vpHomeAgenda__arrows{gap:5px}
  .vpHomeAgenda__arrow{width:36px;height:36px}
  .vpHomeAgenda__track{grid-auto-columns:86%;gap:11px}
  .vpHomeAgendaCard{border-radius:15px}
  .vpHomeAgendaCard__body{min-height:136px;padding:13px}
  .vpHomeAgendaCard h3{font-size:16px}
  .vpHomeAgenda__foot{justify-content:space-between;margin-top:13px}
}
@media(max-width:360px){
  .vpHomeAgenda__head{align-items:flex-start}
  .vpHomeAgenda__copy p{display:none}
  .vpHomeAgenda__track{grid-auto-columns:90%}
}

/* V19.18 — identidade Paiva Digital */
@media(max-width:640px){
  .ecosystem__brandWrap{margin-bottom:8px}
  .ecosystem__brand{width:min(205px,68vw);max-height:68px}
}


/* =========================================================
   V19.24 — AJUSTE CIRÚRGICO
   Mantém exatamente o layout do cabeçalho da V19.22.
   Apenas garante que permanece visível durante o scroll e
   uniformiza o fundo com Agenda / Atividades Turísticas.
   ========================================================= */
body.home{
  background:
    radial-gradient(960px 560px at 10% 2%, rgba(64,160,67,.075) 0%, rgba(64,160,67,0) 58%),
    radial-gradient(980px 580px at 90% 8%, rgba(92,126,198,.075) 0%, rgba(92,126,198,0) 60%),
    linear-gradient(180deg,#f8faf8 0%,#f5f7fb 48%,#f7f8f5 100%) !important;
  background-color:#f7f8f5 !important;
  background-repeat:no-repeat !important;
}
.homeTop{
  position:sticky !important;
  top:0 !important;
  z-index:10000 !important;
}


/* =========================================================
   V19.25 — PAIVA DIGITAL PREMIUM
   Apenas layout: identidade mais limpa, sem emojis e sem
   repetir o nome Paiva Digital abaixo do logótipo.
   ========================================================= */
.ecosystem{margin:30px 0 14px;padding:34px 16px 38px}
.ecosystem__inner{
  max-width:1040px;
  padding:32px 32px 30px;
  border:1px solid rgba(30,86,43,.10);
  border-radius:26px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(250,252,249,.90));
  box-shadow:0 22px 54px rgba(30,62,40,.09);
  backdrop-filter:blur(8px);
}
.ecosystem__brandWrap{margin:0 auto 14px}
.ecosystem__brand{width:min(230px,56vw);max-height:78px}
.ecosystem__title{display:none!important}
.ecosystem__subtitle{
  max-width:650px;
  margin:0 auto 24px;
  color:#536158;
  font-size:15px;
  line-height:1.6;
  opacity:1;
}
.ecosystem__grid{gap:18px}
.ecosystem__card{
  position:relative;
  min-width:0;
  padding:22px 22px 20px;
  border:1px solid rgba(30,86,43,.10);
  border-radius:20px;
  background:rgba(255,255,255,.95);
  box-shadow:0 12px 28px rgba(28,53,35,.055);
  overflow:hidden;
}
.ecosystem__card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,#2d7134 0%,#40a043 48%,rgba(64,160,67,.12) 100%);
}
.ecosystem__cardHead{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.ecosystem__icon{
  width:42px;height:42px;flex:0 0 42px;
  display:grid;place-items:center;
  border-radius:13px;
  color:#24672f;
  background:linear-gradient(145deg,rgba(64,160,67,.12),rgba(64,160,67,.045));
  border:1px solid rgba(64,160,67,.16);
}
.ecosystem__icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ecosystem__h{margin:0;color:#17231c;font-size:18px;line-height:1.2;font-weight:850;letter-spacing:-.01em}
.ecosystem__p{margin:0 0 16px;color:#536158;line-height:1.55;opacity:1}
.ecosystem .btnP--market{
  width:100%;
  justify-content:center;
  min-height:46px;
  border-radius:13px;
  box-shadow:none;
}
.ecosystem__social{margin-top:14px}
.socialBtn{width:40px;height:40px;border-radius:12px;box-shadow:none}
.socialBtn:hover{box-shadow:0 8px 18px rgba(30,86,43,.10)}
.ecosystem__qrWrap{margin-top:16px;gap:12px}
.ecosystem__qr{border-color:rgba(30,86,43,.09);background:#fafcf9;border-radius:15px;padding:12px}
.ecosystem__qr img{width:106px;height:106px;border-radius:12px}
.ecosystem__qrHint{grid-column:1/-1;margin:2px 0 0;color:#6a746d;line-height:1.45;opacity:1}
.ecosystem__qrToggle{border-radius:13px;min-height:44px}
@media(max-width:900px){
  .ecosystem__inner{max-width:720px;padding:28px 24px}
  .ecosystem__grid{grid-template-columns:1fr;gap:14px}
}
@media(max-width:600px){
  .ecosystem{margin:20px 0 8px;padding:22px 12px 28px}
  .ecosystem__inner{padding:23px 16px 20px;border-radius:20px}
  .ecosystem__brandWrap{margin-bottom:10px}
  .ecosystem__brand{width:min(190px,62vw);max-height:64px}
  .ecosystem__subtitle{margin-bottom:18px;font-size:13px;line-height:1.5}
  .ecosystem__card{padding:18px 16px 17px;border-radius:17px}
  .ecosystem__cardHead{gap:10px;margin-bottom:10px}
  .ecosystem__icon{width:38px;height:38px;flex-basis:38px;border-radius:11px}
  .ecosystem__icon svg{width:20px;height:20px}
  .ecosystem__h{font-size:17px}
  .ecosystem__p{font-size:13px;margin-bottom:14px}
  .ecosystem__qrWrap{gap:9px}
  .ecosystem__qr{padding:10px}
  .ecosystem__qr img{width:96px;height:96px}
}
@media(max-width:360px){
  .ecosystem__inner{padding-left:13px;padding-right:13px}
  .ecosystem__qr img{width:88px;height:88px}
}

/* =========================================================
   V19.26 — HOME: CABEÇALHO REALMENTE STICKY
   Reforço final sem alterar a composição existente.
   ========================================================= */
.homeTop{
  position:-webkit-sticky!important;
  position:sticky!important;
  top:0!important;
  z-index:12000!important;
  width:100%;
  isolation:isolate;
}


/* =========================================================
   V19.27 — CABEÇALHO FIXO ROBUSTO
   Usa position:fixed + espaçador calculado por JS para evitar
   falhas de position:sticky em browsers/containers com overflow.
   Não altera a composição visual do cabeçalho.
   ========================================================= */
body.home .homeTop.vpFixedPublicHeader,
body.portalPage .portalTop.vpFixedPublicHeader,
body.activitiesPage .topbar.vpFixedPublicHeader{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:12000!important;
  margin:0!important;
  transform:none!important;
}
.vpFixedHeaderSpacer{
  display:block!important;
  width:100%!important;
  height:var(--vp-fixed-header-h,0px);
  flex:0 0 auto!important;
  pointer-events:none!important;
  visibility:hidden!important;
}
html{scroll-padding-top:calc(var(--vp-fixed-header-h,0px) + 12px)}

/* =========================================================
   V19.28 — CABEÇALHO PÚBLICO COM ALTURA UNIFORME
   Revisão exclusivamente visual. Mantém links, favoritos,
   idiomas e toda a lógica existente. As páginas de mapa
   continuam com a composição própria e não são alteradas.
   ========================================================= */
:root{
  --vp-public-header-h:94px;
  --vp-public-control-h:40px;
}

/* Início: mesma altura-base usada nas restantes páginas públicas */
body.home .homeTop.vpFixedPublicHeader{
  height:var(--vp-public-header-h)!important;
  min-height:var(--vp-public-header-h)!important;
  max-height:var(--vp-public-header-h)!important;
  overflow:hidden!important;
}
body.home .homeTop__inner{
  height:100%!important;
  min-height:0!important;
  padding:7px 18px!important;
  align-items:center!important;
}
body.home .homeTop__inner>.vpMyVisitLink,
body.home .homeTop__inner>.langSwitch .langBtn{
  min-height:var(--vp-public-control-h)!important;
}

@media(max-width:1024px){
  :root{--vp-public-header-h:84px;--vp-public-control-h:38px}
  body.home .homeTop__inner{padding:6px 14px!important}
}
@media(max-width:760px){
  :root{--vp-public-header-h:72px;--vp-public-control-h:36px}
  body.home .homeTop__inner{padding:5px 10px!important}
}
@media(max-width:430px){
  :root{--vp-public-header-h:68px;--vp-public-control-h:34px}
  body.home .homeTop__inner{padding:4px 8px!important}
}
@media(max-width:370px){
  :root{--vp-public-header-h:64px;--vp-public-control-h:32px}
  body.home .homeTop__inner{padding:4px 7px!important}
}

/* =========================================================
   V20.1 — MAPAS: LOGÓTIPO ACI COM RESPIRAÇÃO
   Ajuste exclusivamente visual das páginas de mapa
   (O que visitar / Onde comer / Onde ficar).
   Evita que o logótipo fique encostado/esmagado dentro da barra.
   ========================================================= */
body[data-page="category"] .brand__img.vpAciLogo{
  width:auto!important;
  height:62px!important;
  max-width:205px!important;
  max-height:62px!important;
  object-fit:contain!important;
  object-position:left center!important;
  flex:0 0 auto!important;
}
body[data-page="category"] .topbar .brand--logo{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-height:62px!important;
  overflow:visible!important;
}
@media (min-width:761px){
  body[data-page="category"] .topbar{
    height:82px!important;
    min-height:82px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }
  body[data-page="category"] #map{
    inset:82px 0 0 0!important;
  }
}
@media (max-width:760px){
  body[data-page="category"] .brand__img.vpAciLogo{
    height:54px!important;
    max-height:54px!important;
    max-width:178px!important;
  }
  body[data-page="category"] .topbar .brand--logo{
    min-height:54px!important;
  }
}
@media (max-width:430px){
  body[data-page="category"] .brand__img.vpAciLogo{
    height:50px!important;
    max-height:50px!important;
    max-width:164px!important;
  }
  body[data-page="category"] .topbar .brand--logo{
    min-height:50px!important;
  }
}

/* =========================================================
   V20.4 — MAPAS: RESPIRAÇÃO DEFINITIVA DO LOGÓTIPO ACI
   Apenas nas 3 vistas de mapa (visitar / comer / dormir).
   Mantém proporção natural e cria margem vertical real.
   ========================================================= */
body[data-page="category"] .topbar .brand--logo{
  flex:0 0 auto!important;
  overflow:visible!important;
}
body[data-page="category"] .topbar .brand--logo .brand__img.vpAciLogo{
  display:block!important;
  width:auto!important;
  object-fit:contain!important;
  object-position:left center!important;
  transform:none!important;
}
@media (min-width:761px){
  body[data-page="category"] .topbar{
    height:92px!important;
    min-height:92px!important;
    padding-top:15px!important;
    padding-bottom:15px!important;
    align-items:center!important;
  }
  body[data-page="category"] .topbar .brand--logo{
    height:62px!important;
    min-height:62px!important;
    align-items:center!important;
  }
  body[data-page="category"] .topbar .brand--logo .brand__img.vpAciLogo{
    height:62px!important;
    max-height:62px!important;
    max-width:205px!important;
  }
  body[data-page="category"] #map{
    inset:92px 0 0 0!important;
  }
}
@media (max-width:760px){
  body[data-page="category"] .topbar .brand--logo{
    min-height:62px!important;
    padding-top:4px!important;
    padding-bottom:4px!important;
  }
  body[data-page="category"] .topbar .brand--logo .brand__img.vpAciLogo{
    height:54px!important;
    max-height:54px!important;
    max-width:178px!important;
  }
}
@media (max-width:430px){
  body[data-page="category"] .topbar .brand--logo{
    min-height:58px!important;
  }
  body[data-page="category"] .topbar .brand--logo .brand__img.vpAciLogo{
    height:50px!important;
    max-height:50px!important;
    max-width:164px!important;
  }
}

/* ===== V20.5 — ações do detalhe do mapa legíveis no modal escuro ===== */
/* Ajuste exclusivamente visual. Mantém IDs, links e comportamento existentes. */
.modal .placeActions .btn--ghost,
.modal .placeActions #mCorrection,
.modal .placeActions button[data-close].btn {
  background: rgba(255,255,255,.09) !important;
  color: #f7faf8 !important;
  border-color: rgba(255,255,255,.22) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.12) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.modal .placeActions .btn--ghost:hover,
.modal .placeActions #mCorrection:hover,
.modal .placeActions button[data-close].btn:hover {
  background: rgba(255,255,255,.16) !important;
  border-color: rgba(255,255,255,.32) !important;
  color: #fff !important;
}
.modal .placeActions button[data-close].btn {
  background: transparent !important;
  border-color: rgba(255,255,255,.18) !important;
  color: rgba(255,255,255,.88) !important;
}
.modal .placeActions button[data-close].btn:hover {
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
}
@media (max-width: 680px){
  .modal .placeActions .btn{
    min-height: 46px;
  }
  .modal .placeActions .btn--ghost,
  .modal .placeActions #mCorrection,
  .modal .placeActions button[data-close].btn{
    width: 100%;
  }
}

/* =========================================================
   V20.16 — Partilhe a sua experiência
   Widget público, moderado pela ACI
   ========================================================= */
.vpReviewWidget{margin-top:26px;padding:24px;border:1px solid rgba(30,86,43,.13);border-radius:22px;background:linear-gradient(155deg,#fff,#f8fbf8);color:#1c2b21;box-shadow:0 16px 44px rgba(30,86,43,.08)}.vpReviewHead{display:flex;justify-content:space-between;gap:22px;align-items:flex-start}.vpReviewEyebrow{display:block;color:#a57e27;font-size:10px;font-weight:900;letter-spacing:.16em;margin-bottom:7px}.vpReviewTitle{margin:0;font-size:25px;line-height:1.15;color:#1e562b}.vpReviewIntro{margin:8px 0 0;max-width:650px;color:#68756d;font-size:13px;line-height:1.65}.vpReviewSummary{display:flex;gap:12px;align-items:stretch;flex:0 0 auto}.vpReviewCountBlock,.vpReviewAverage{min-width:112px;padding:11px 13px;border:1px solid #e0e9e1;border-radius:14px;background:#fff;display:grid;gap:3px}.vpReviewCountBlock strong{font-size:25px;color:#1e562b}.vpReviewCountBlock span,.vpReviewAverage>strong{font-size:10.5px;color:#728078;line-height:1.25}.vpReviewStars{display:inline-flex;gap:1px;color:#b89542;letter-spacing:1px;white-space:nowrap}.vpReviewStars i{font-style:normal;color:#dfe4df}.vpReviewList{display:grid;gap:12px;margin-top:20px}.vpReviewCard{padding:16px;border:1px solid #e6ece6;border-radius:15px;background:#fff}.vpReviewCardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.vpReviewWho{display:grid;gap:2px}.vpReviewWho strong{font-size:13px}.vpReviewWho span{font-size:10.5px;color:#879188}.vpReviewText{margin:12px 0 0;font-size:13px;line-height:1.65;color:#435047;white-space:pre-line}.vpPartnerPublicResponse{margin-top:13px;padding:12px 13px;border-left:3px solid #2f7134;border-radius:0 10px 10px 0;background:#f3f8f3}.vpPartnerPublicResponse strong{font-size:11px;color:#1e562b}.vpPartnerPublicResponse p{margin:5px 0 0;font-size:12.5px;line-height:1.55;color:#4c5c51}.vpReviewReport{margin-top:10px;padding:0;border:0;background:transparent;color:#7f8982;font:inherit;font-size:10.5px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.vpReviewEmpty,.vpReviewLoading{padding:16px;border:1px dashed #cfdacf;border-radius:13px;color:#78837b;font-size:12px;background:#fbfcfb}.vpReviewFormWrap{margin-top:20px;padding-top:20px;border-top:1px solid #e2e9e3}.vpReviewForm{display:grid;gap:13px}.vpReviewFields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.vpReviewForm label>span,.vpRatingField legend{display:block;margin-bottom:6px;font-size:11px;font-weight:800;color:#415047}.vpReviewForm input[type=text],.vpReviewForm input[type=email],.vpReviewForm textarea,.vpReportForm textarea{width:100%;border:1px solid #d9e1da;border-radius:11px;padding:11px 12px;background:#fff;color:#1c2b21;font:inherit}.vpReviewForm input:focus,.vpReviewForm textarea:focus,.vpReportForm textarea:focus{outline:2px solid rgba(47,113,52,.15);border-color:#9fbea4}.vpRatingField{margin:0;padding:0;border:0}.vpStarInput{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:3px}.vpStarInput input{position:absolute;opacity:0;pointer-events:none}.vpStarInput label{font-size:29px;line-height:1;color:#d7ddd8;cursor:pointer;transition:.14s ease}.vpStarInput label:hover,.vpStarInput label:hover~label,.vpStarInput input:checked~label{color:#b89542}.vpReviewPrivacy{display:flex!important;align-items:flex-start;gap:9px;font-size:11px!important;color:#69766e}.vpReviewPrivacy input{margin-top:2px;accent-color:#2f7134}.vpReviewPrivacy span{margin:0!important;font-weight:600!important}.vpReviewPrivacy a{color:#1e562b;font-weight:800}.vpReviewTrap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}.vpReviewSubmit,.vpReportForm button{justify-self:start;border:1px solid #1e562b;border-radius:999px;background:#1e562b;color:#fff;padding:10px 16px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.vpReviewSubmit:disabled{opacity:.55;cursor:wait}.vpReviewMessage{min-height:18px;font-size:11.5px;font-weight:700}.vpReviewMessage.ok{color:#1e562b}.vpReviewMessage.bad{color:#9b2d2d}.vpReportForm{display:grid;gap:8px;margin-top:10px;padding:12px;border-radius:12px;background:#fbf8f0;border:1px solid #e7dcc0}.vpReportForm strong{font-size:11px;color:#6f5925}.vpReportForm>div{display:flex;align-items:center;gap:10px}.vpReportForm button{padding:7px 11px;font-size:10.5px;background:#765e28;border-color:#765e28}.vpReportForm span{font-size:10.5px;color:#66736a}.modal .vpReviewWidget{background:rgba(255,255,255,.97);color:#1c2b21;margin:26px 0 8px}.modal .vpReviewTitle{color:#1e562b}.modal .vpReviewIntro,.modal .vpReviewText{color:#56645b}.modal .vpReviewForm input,.modal .vpReviewForm textarea{color:#1c2b21;background:#fff}@media(max-width:720px){.vpReviewWidget{padding:18px;border-radius:18px}.vpReviewHead{display:grid}.vpReviewSummary{width:100%}.vpReviewCountBlock,.vpReviewAverage{flex:1;min-width:0}.vpReviewFields{grid-template-columns:1fr}.vpReviewCardTop{align-items:center}.vpReviewTitle{font-size:22px}}@media(max-width:420px){.vpReviewSummary{display:grid;grid-template-columns:1fr 1fr}.vpReviewStars{font-size:14px}.vpReviewCard{padding:14px}}

/* =========================================================
   V25.1 — Partilhe a sua experiência · layout compacto
   Mantém o formulário dentro do cartão da ficha do espaço.
   ========================================================= */
.vpReviewWidget.vpReviewWidget--compact{margin-top:24px;padding:22px 24px 20px;border:1px solid rgba(30,86,43,.13);border-radius:21px;background:#fff;color:#1c2b21;box-shadow:none;overflow:hidden}
.vpReviewWidget--compact .vpReviewHead{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}
.vpReviewWidget--compact .vpReviewHeadCopy{min-width:0;flex:1}
.vpReviewWidget--compact .vpReviewEyebrow{margin:0 0 6px;color:#25733b;font-size:9px;font-weight:900;letter-spacing:.16em}
.vpReviewWidget--compact .vpReviewTitle{margin:0;color:#17231b;font-size:23px;line-height:1.12;font-weight:900}
.vpReviewWidget--compact .vpReviewIntro{margin:7px 0 0;color:#79837d;font-size:11.5px;line-height:1.55;max-width:620px}
.vpReviewWidget--compact .vpReviewSummary{display:grid;justify-items:end;align-content:start;gap:5px;min-width:138px;padding:0;background:transparent;border:0}
.vpReviewWidget--compact .vpReviewSummary .vpReviewStars{font-size:16px;color:#cba33f;letter-spacing:2px}
.vpReviewWidget--compact .vpReviewSummary .vpReviewStars i{color:#cba33f}
.vpReviewWidget--compact .vpReviewSummaryText{font-size:10.5px;color:#858e88;text-align:right;white-space:nowrap}
.vpReviewWidget--compact .vpReviewList{display:grid;gap:10px;margin:17px 0 0;padding-top:16px;border-top:1px solid #edf0ed}
.vpReviewWidget--compact .vpReviewList[hidden]{display:none!important}
.vpReviewWidget--compact .vpReviewCard{padding:13px 14px;border:1px solid #e7ece8;border-radius:13px;background:#fbfcfb}
.vpReviewWidget--compact .vpReviewToggle{width:100%;margin-top:18px;padding:12px 14px;border:1px solid #e1e8e2;border-radius:13px;background:#fafcf9;color:#1f6632;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;text-align:left;font:inherit;cursor:pointer;transition:.18s ease}
.vpReviewWidget--compact .vpReviewToggle:hover{border-color:#c8dacb;background:#f6faf6}
.vpReviewWidget--compact .vpReviewToggleIcon{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#edf7ef;color:#c39c36;font-size:13px}
.vpReviewWidget--compact .vpReviewToggle strong{font-size:11.5px;font-weight:900}
.vpReviewWidget--compact .vpReviewToggleArrow{font-size:15px;font-weight:900;color:#2e7c3e}
.vpReviewWidget--compact .vpReviewFormWrap{margin:14px 0 0;padding:17px 0 0;border-top:1px solid #e9eeea}
.vpReviewWidget--compact .vpReviewFormWrap[hidden]{display:none!important}
.vpReviewWidget--compact .vpReviewForm{gap:12px}
.vpReviewWidget--compact .vpReviewFields{gap:11px}
.vpReviewWidget--compact .vpReviewForm label>span,.vpReviewWidget--compact .vpRatingField legend{margin-bottom:5px;font-size:10.5px;color:#455249}
.vpReviewWidget--compact .vpReviewForm input[type=text],.vpReviewWidget--compact .vpReviewForm input[type=email],.vpReviewWidget--compact .vpReviewForm textarea{border-radius:10px;padding:10px 11px;font-size:12px}
.vpReviewWidget--compact .vpReviewEmailNote{display:block;margin-top:6px;color:#7d8881;font-size:9.5px;line-height:1.45;font-weight:600}
.vpReviewWidget--compact .vpStarInput label{font-size:26px}
.vpReviewWidget--compact .vpReviewPrivacy{font-size:10.5px!important}
.vpReviewWidget--compact .vpReviewFormActions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.vpReviewWidget--compact .vpReviewSubmit{padding:9px 15px;font-size:11px}
.vpReviewWidget--compact .vpReviewCancel{border:0;background:transparent;color:#647168;font:inherit;font-size:10.5px;font-weight:750;cursor:pointer;padding:8px 5px}
.modal .vpReviewWidget.vpReviewWidget--compact{margin:24px 0 8px;background:#fff;color:#1c2b21}
@media(max-width:720px){.vpReviewWidget.vpReviewWidget--compact{padding:18px}.vpReviewWidget--compact .vpReviewHead{display:grid;gap:12px}.vpReviewWidget--compact .vpReviewSummary{justify-items:start;min-width:0}.vpReviewWidget--compact .vpReviewSummaryText{text-align:left}.vpReviewWidget--compact .vpReviewFields{grid-template-columns:1fr}.vpReviewWidget--compact .vpReviewTitle{font-size:21px}}
/* V26 — Assistente Turístico inteligente sem API externa */
.aiChips .chip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.aiChips .chipSecondary{opacity:.86}
.aiActivityCard .aiCardMeta{line-height:1.45}
@media(max-width:560px){.aiChips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px;scrollbar-width:none}.aiChips::-webkit-scrollbar{display:none}.aiChips .chip{flex:0 0 auto}.aiPanelInner{width:min(100vw - 20px,480px)}}

/* =========================================================
   V26.2 — Meteorologia IPMA + hora no Assistente Turístico
   ========================================================= */
.aiWeatherBar{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:linear-gradient(90deg,rgba(47,113,52,.18),rgba(213,179,86,.06));
  color:rgba(255,255,255,.96);
  min-height:50px;
}
.aiWeatherMain{display:flex;align-items:center;gap:9px;min-width:0}
.aiWeatherMain>span:last-child{display:flex;flex-direction:column;min-width:0}
.aiWeatherMain strong{font-size:12px;line-height:1.2;letter-spacing:.01em}
.aiWeatherIcon{font-size:23px;line-height:1;filter:drop-shadow(0 3px 8px rgba(0,0,0,.18))}
.aiWeatherMeta{margin-top:2px;font-size:11.5px;line-height:1.25;color:rgba(255,255,255,.68);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aiWeatherRange{font-size:11px;font-weight:850;color:#d8bd70;white-space:nowrap}
.aiWeatherStatus{font-size:10.5px;color:rgba(255,255,255,.58);text-align:right}
.aiWeatherInline{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  padding:8px 10px;margin:1px 0 5px;
  border:1px solid rgba(213,179,86,.18);
  border-radius:11px;background:rgba(213,179,86,.055);
  font-size:11.5px;color:rgba(255,255,255,.76)
}
.aiWeatherInline strong{color:#d8bd70;font-size:11.5px}
.aiWeatherAnswerHero{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid var(--line)}
.aiWeatherAnswerHero>span{font-size:37px;line-height:1}
.aiWeatherAnswerHero>div{display:flex;flex-direction:column}
.aiWeatherAnswerHero strong{font-size:24px;line-height:1.05;color:#fff}
.aiWeatherAnswerHero small{margin-top:4px;color:var(--muted);font-size:12px}
.aiWeatherDays{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.aiWeatherDays>div{display:grid;justify-items:center;gap:3px;padding:9px 5px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.035);text-align:center}
.aiWeatherDays span{font-size:21px}
.aiWeatherDays strong{font-size:10.5px;color:rgba(255,255,255,.9)}
.aiWeatherDays small{font-size:10px;color:var(--muted)}
.aiWeatherCredit{font-size:10px;color:rgba(255,255,255,.45)}
.aiWeatherCredit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.aiFoot{flex-wrap:wrap;row-gap:4px}
@media(max-width:560px){
  .aiWeatherBar{padding:8px 13px;min-height:47px}
  .aiWeatherIcon{font-size:21px}.aiWeatherMain strong{font-size:11.5px}.aiWeatherMeta{font-size:10.8px}
  .aiWeatherRange{font-size:10.5px}.aiWeatherDays{gap:5px}
  .aiWeatherCredit{font-size:9.5px}
}

/* ===== V26.3 · Assistente turístico: continuidade, mapa, partilha e feedback ===== */
.chipSurprise{
  border-color:rgba(64,160,67,.46);
  background:linear-gradient(135deg,rgba(64,160,67,.18),rgba(255,255,255,.06));
}
.aiFollowUps{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:12px 0 8px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.08);
}
.aiFollowChip{
  appearance:none;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.92);
  border-radius:999px;
  padding:7px 10px;
  font:inherit;
  font-size:12px;
  font-weight:750;
  cursor:pointer;
  transition:background .12s ease,border-color .12s ease,transform .12s ease;
}
.aiFollowChip:hover{background:rgba(64,160,67,.16);border-color:rgba(64,160,67,.35)}
.aiFollowChip:active{transform:scale(.98)}
.aiAnswerTools{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  padding:9px 0 2px;
  color:var(--muted);
  font-size:11.5px;
}
.aiToolBtn,.aiFeedbackBtn{
  appearance:none;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.9);
  border-radius:10px;
  min-height:32px;
  padding:6px 9px;
  font:inherit;
  font-weight:750;
  cursor:pointer;
}
.aiToolBtn:hover,.aiFeedbackBtn:hover{background:rgba(255,255,255,.09)}
.aiToolBtn[hidden]{display:none!important}
.aiFeedbackLabel{margin-left:auto;opacity:.84}
.aiFeedbackBtn{min-width:34px;padding:5px 7px;font-size:15px;line-height:1}
.aiFeedbackBtn.isSelected{background:rgba(64,160,67,.2);border-color:rgba(64,160,67,.42)}
.aiFeedbackBtn:disabled{cursor:default;opacity:.78}
.aiToolStatus{flex-basis:100%;min-height:14px;color:rgba(255,255,255,.68)}
.aiCardAvailability{
  margin:6px 0;
  color:rgba(255,255,255,.82);
  font-size:12.5px;
  line-height:1.35;
}
.aiCardAvailability--note{
  color:rgba(255,255,255,.62);
  font-style:italic;
}
@media(max-width:560px){
  .aiFollowUps{gap:6px}
  .aiFollowChip{font-size:11.5px;padding:7px 9px}
  .aiAnswerTools{gap:6px}
  .aiToolBtn{flex:1 1 auto;text-align:center}
  .aiFeedbackLabel{width:100%;margin:3px 0 0}
}


/* V26.3.2 — 4 idiomas (PT/EN/FR/ES), responsivo sem alterar o layout existente */
.langSwitch .langBtn.notranslate,.langSwitch .langBtn[translate="no"]{white-space:nowrap!important;flex:0 0 auto!important;text-transform:uppercase!important}
@media(max-width:820px){.langSwitch{gap:3px!important;flex-wrap:nowrap!important}.langSwitch .langBtn{min-width:30px!important;padding-left:6px!important;padding-right:6px!important}.vpUnifiedHeaderTools{min-width:0!important}}
@media(max-width:390px){.langSwitch .langBtn{min-width:28px!important;padding-left:5px!important;padding-right:5px!important;font-size:9px!important}}
@media(min-width:761px) and (max-width:1180px){
 body[data-page="category"] .topbar{gap:8px!important;padding-left:10px!important;padding-right:10px!important}
 body[data-page="category"] .topbar .actions{margin-left:auto!important;min-width:0!important;gap:6px!important;flex-wrap:nowrap!important}
 body[data-page="category"] .topbar .actions .action{min-width:0!important;padding:9px 9px!important;font-size:13px!important}
 html[lang="es"] body[data-page="category"] .topbar .actions .action{padding-left:8px!important;padding-right:8px!important;font-size:12.5px!important}
 body[data-page="category"] .topbar>.langSwitch{flex:0 0 auto!important;gap:4px!important;margin-left:0!important}
 body[data-page="category"] .topbar>.langSwitch .langBtn{min-width:32px!important;min-height:34px!important;padding:6px 7px!important;font-size:10.5px!important}
}
@media(min-width:761px) and (max-width:1100px){
 body[data-page="category"] .topbar .actions .vpMyVisitLink [data-i18n]{display:none!important}
 .homeTop__inner>.vpMyVisitLink [data-i18n]{display:none!important}
}


/* V26.3.14 — filtros de alojamento claros e responsivos */
.stayFilters{position:fixed;z-index:650;top:78px;left:18px;width:min(590px,calc(100vw - 36px));padding:14px;border:1px solid rgba(39,86,48,.15);border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 14px 40px rgba(20,55,29,.14);backdrop-filter:blur(12px)}
.stayFilters[hidden],.stayFilters__reset[hidden],.stayFilters__empty[hidden]{display:none!important}
.stayFilters__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:11px}
.stayFilters__title{font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#2f7134}
.stayFilters__hint{margin-top:3px;font-size:12px;line-height:1.35;color:#677169}
.stayFilters__count{flex:0 0 auto;align-self:center;padding:6px 9px;border-radius:999px;background:#eef7ef;color:#2f7134;font-size:11px;font-weight:850;white-space:nowrap}
.stayFilters__controls{display:grid;grid-template-columns:minmax(118px,.7fr) minmax(190px,1.35fr) auto;align-items:end;gap:9px}
.stayFilterField{display:grid;gap:5px;min-width:0;font-size:11px;font-weight:800;color:#5f6b62}
.stayFilterField select,.stayFilterField input[type="search"]{width:100%;min-width:0;min-height:42px;border:1px solid #d4ded6;border-radius:11px;background:#fff;padding:8px 10px;font:inherit;color:#1f2b22}
.stayFilterField select{padding-right:34px}
.stayFilterField input[type="search"]::placeholder{color:#929c94}
.stayFilterField input[type="search"]:focus,.stayFilterField select:focus{outline:2px solid rgba(64,160,67,.16);border-color:#79ad7e}
.stayFilters__reset{min-height:42px;border:1px solid #cbd8cd;border-radius:11px;background:#fff;color:#2f7134;font-weight:850;padding:8px 12px;cursor:pointer;white-space:nowrap}
.stayFilters__reset:hover{background:#f4faf5}
.stayFilters__empty{margin-top:10px;padding:9px 11px;border-radius:11px;background:#fff4ec;color:#7a4a27;font-size:12px;font-weight:750}
.stayResults{margin-top:12px;padding-top:11px;border-top:1px solid #e4ece5}
.stayResults[hidden]{display:none!important}
.stayResults__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.stayResults__head strong{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#2f7134}
.stayResults__head span{font-size:10px;font-weight:800;color:#778079}
.stayResults__list{display:grid;gap:6px;max-height:min(300px,38vh);overflow:auto;padding-right:3px;scrollbar-width:thin;overscroll-behavior:contain}
.stayResult{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #e1e9e2;border-radius:12px;background:#fff;padding:9px 10px;text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.stayResult:hover,.stayResult:focus-visible{border-color:#96be9a;box-shadow:0 7px 18px rgba(28,82,39,.10);transform:translateY(-1px);outline:none}
.stayResult__name{display:block;min-width:0;font-size:12px;font-weight:850;color:#233328;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stayResult__meta{display:flex;flex-wrap:wrap;gap:5px 9px;margin-top:3px;font-size:10px;color:#6d786f}
.stayResult__go{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#eef7ef;color:#2f7134;font-size:16px;font-weight:900;line-height:1}
.stayResult.is-active{border-color:#63a36a;background:#f7fbf7;box-shadow:0 8px 20px rgba(28,82,39,.12)}
@media(max-width:720px){
  .stayFilters{top:70px;left:10px;right:10px;width:auto;padding:11px 12px;border-radius:15px}
  .stayFilters__head{margin-bottom:9px;gap:10px}
  .stayFilters__hint{display:none}
  .stayFilters__count{font-size:10px;padding:5px 8px}
  .stayFilters__controls{grid-template-columns:.8fr 1.2fr;gap:8px}
  .stayFilters__reset{grid-column:1/-1;min-height:36px;padding:6px 10px}
  .stayFilterField select,.stayFilterField input[type="search"]{min-height:39px}
  .stayResults{margin-top:9px;padding-top:9px}
  .stayResults__list{max-height:min(210px,29vh)}
  .stayResult{padding:8px 9px;border-radius:10px}
  .stayResult__name{font-size:11px}
}
@media(max-width:390px){
  .stayFilters{top:66px;padding:10px}
  .stayFilters__head{align-items:center}
  .stayFilters__title{font-size:11px}
  .stayFilters__count{max-width:48%;overflow:hidden;text-overflow:ellipsis}
  .stayFilters__controls{grid-template-columns:1fr 1fr}
  .stayFilterField{font-size:10px}
  .stayResults__head{margin-bottom:6px}
  .stayResults__list{max-height:min(180px,26vh);gap:5px}
  .stayResult__meta{font-size:9px}
  .stayResult__go{width:26px;height:26px}
}


/* V26.3.17 — características públicas + unidades de alojamento */
.lodgingFacts{margin:14px 0 16px;padding:15px 16px;border:1px solid rgba(64,160,67,.24);border-radius:18px;background:linear-gradient(180deg,rgba(64,160,67,.07),rgba(64,160,67,.035))}
.lodgingFacts[hidden]{display:none!important}
.lodgingFacts__title{margin-bottom:10px;color:#9fd6a2;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.lodgingFacts__primary,.lodgingFacts__amenities{display:flex;flex-wrap:wrap;gap:8px}
.lodgingFacts__amenities{margin-top:9px}
.lodgingFact{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 11px;border-radius:999px;font-size:12px;line-height:1.2}
.lodgingFact--primary{background:rgba(255,255,255,.095);border:1px solid rgba(255,255,255,.13);color:#f4f7f5;font-weight:760}
.lodgingFact--amenity{background:rgba(64,160,67,.15);border:1px solid rgba(95,188,99,.20);color:#d9efda}
.lodgingIcon{width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 17px;color:#8fd793}
.lodgingFact--primary .lodgingIcon{color:#b8d8ba}
.lodgingIcon svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lodgingFacts__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:11px;color:#b8c2ba;font-size:12px}
.lodgingFacts__meta a{color:#8fd793;font-weight:850;text-decoration:underline;text-underline-offset:3px}

.lodgingUnitsPublic{margin-top:14px;padding-top:13px;border-top:1px solid rgba(255,255,255,.10)}
.lodgingUnitsPublic__heading{margin-bottom:9px;color:#d8e3da;font-size:12px;font-weight:850}
.lodgingUnitsPublic__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.lodgingUnitPublic{padding:12px 13px;border-radius:14px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.09)}
.lodgingUnitPublic h4{margin:0 0 8px;color:#fff;font-size:13px;font-weight:850}
.lodgingUnitPublic__facts{display:flex;flex-wrap:wrap;gap:6px 10px;color:#cbd4cd;font-size:11px}
.lodgingUnitPublic__facts>span{display:inline-flex;align-items:center;gap:5px}
.lodgingUnitPublic__facts .lodgingIcon{width:15px;height:15px;flex-basis:15px;color:#89c98c}

@media(max-width:700px){
  .lodgingFacts{margin:12px 0 14px;padding:13px}
  .lodgingFact{font-size:11px;min-height:31px;padding:6px 9px}
  .lodgingUnitsPublic__grid{grid-template-columns:1fr}
  .lodgingFacts__meta{display:grid;gap:5px}
}



/* V26.3.18 — SVGs características alojamento */
.lodgingFact__icon,.lodgingUnit__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:17px;height:17px}
.lodgingFact__icon svg,.lodgingUnit__icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lodgingFact--amenity .lodgingFact__icon{color:#79d17d}


/* V26.3.21 — Registo turístico oficial na ficha pública */
.tourismRegistry{margin-top:13px;padding:12px 13px;border:1px solid rgba(108,195,112,.22);border-radius:15px;background:rgba(64,160,67,.09)}
.tourismRegistry__head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tourismRegistry__icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;color:#98d69b}
.tourismRegistry__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tourismRegistry__head strong{display:block;color:#eef6ef;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.tourismRegistry__head span:last-child{display:block;margin-top:2px;color:#aebbb0;font-size:10px;line-height:1.35}
.tourismRegistry__list{display:grid;gap:7px}
.tourismRegistry__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:7px;border-top:1px solid rgba(255,255,255,.08)}
.tourismRegistry__row:first-child{border-top:0;padding-top:0}
.tourismRegistry__number{color:#f7faf8;font-size:12px;font-weight:820;overflow-wrap:anywhere}
.tourismRegistry__row a{flex:0 0 auto;color:#8fd793;font-size:11px;font-weight:850;text-decoration:none}
.tourismRegistry__row a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:520px){.tourismRegistry__row{align-items:flex-start;flex-direction:column;gap:5px}.tourismRegistry__row a{font-size:10.5px}}


/* V26.3.24 — horário público de Onde Comer */
.restaurantHoursPublic{margin:14px 0 16px;padding:15px 16px;border:1px solid rgba(64,160,67,.24);border-radius:18px;background:linear-gradient(180deg,rgba(64,160,67,.075),rgba(64,160,67,.035));color:#eef5ef}.restaurantHoursPublic[hidden]{display:none!important}.restaurantHoursPublic__head{display:flex;align-items:center;gap:11px}.restaurantHoursPublic__icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;border-radius:10px;background:rgba(64,160,67,.16);color:#90d394}.restaurantHoursPublic__icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.restaurantHoursPublic__title{color:#dcebdd;font-size:11px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.restaurantHoursPublic__status{display:inline-flex;align-items:center;gap:6px;margin-top:3px;font-size:12px;font-weight:850}.restaurantHoursPublic__status i{width:7px;height:7px;border-radius:50%;background:#aab4ac}.restaurantHoursPublic__status--open{color:#9be39f}.restaurantHoursPublic__status--open i{background:#70d676;box-shadow:0 0 0 3px rgba(112,214,118,.12)}.restaurantHoursPublic__status--closed{color:#e2b7b2}.restaurantHoursPublic__status--closed i{background:#d27b70}.restaurantHoursPublic__status--unknown{color:#c0c9c2}.restaurantHoursPublic__today{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.07);font-size:12px}.restaurantHoursPublic__today strong{color:#fff}.restaurantHoursPublic__today span{color:#d3ddd5;text-align:right}.restaurantHoursPublic__toggle{margin-top:10px;padding:0;border:0;background:transparent;color:#90d394;font:inherit;font-size:11px;font-weight:850;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.restaurantHoursPublic__week{display:grid;gap:0;margin-top:10px;border-top:1px solid rgba(255,255,255,.10)}.restaurantHoursPublic__week[hidden]{display:none!important}.restaurantHoursPublic__row{display:grid;grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr);gap:14px;padding:8px 2px;border-bottom:1px solid rgba(255,255,255,.075);font-size:11.5px}.restaurantHoursPublic__row strong{color:#dce5dd}.restaurantHoursPublic__row span{color:#bac6bc;text-align:right}.restaurantHoursPublic__row.isToday strong{color:#92d596}.restaurantHoursPublic__row.isToday{background:linear-gradient(90deg,rgba(64,160,67,.07),transparent)}
@media(max-width:520px){.restaurantHoursPublic{margin:12px 0 14px;padding:13px}.restaurantHoursPublic__today{align-items:flex-start;display:grid;gap:4px}.restaurantHoursPublic__today span{text-align:left}.restaurantHoursPublic__row{grid-template-columns:1fr;gap:3px}.restaurantHoursPublic__row span{text-align:left}.restaurantHoursPublic__icon{width:28px;height:28px;flex-basis:28px}}


/* =========================================================
   V26.3.29 — FILTROS SEM SCROLL EXTERIOR EM MOBILE/TABLET
   Cabeçalho + selects ficam sempre visíveis; só a lista rola.
   ========================================================= */
.stayFilters{
  top:var(--vp-stay-filters-top,104px)!important;
  z-index:2400!important;
}
@media(max-width:1024px){
  .stayFilters{
    max-height:calc(100dvh - var(--vp-stay-filters-top,104px) - 10px)!important;
    overflow:hidden!important;
  }
  .stayFilters__head,
  .stayFilters__controls,
  .stayFilters__empty{
    flex:0 0 auto;
  }
  .stayResults{
    min-height:0;
    overflow:hidden;
  }
  .stayResults__list{
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
}
@media(max-width:760px){
  .stayFilters{
    top:var(--vp-stay-filters-top,280px)!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    padding:11px 12px!important;
    border-radius:15px!important;
    overflow:hidden!important;
  }
  .stayFilters__head{
    display:flex!important;
    visibility:visible!important;
    margin-bottom:9px!important;
  }
  .stayFilters__controls{
    display:grid!important;
    visibility:visible!important;
    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important;
    gap:8px!important;
  }
  .stayFilterField{
    display:grid!important;
    visibility:visible!important;
    min-width:0!important;
  }
  .stayFilterField select{
    display:block!important;
    visibility:visible!important;
    width:100%!important;
    min-width:0!important;
    min-height:39px!important;
  }
  .stayFilters__reset{grid-column:1/-1!important}
  .stayResults{
    margin-top:9px!important;
    padding-top:9px!important;
  }
  .stayResults__list{
    max-height:min(170px,20dvh)!important;
    overflow-y:auto!important;
  }
}
@media(max-width:430px){
  .stayFilters{
    top:var(--vp-stay-filters-top,300px)!important;
    padding:10px!important;
  }
  .stayFilters__controls{grid-template-columns:1fr 1fr!important}
  .stayResults__list{max-height:min(155px,18dvh)!important}
}
@media(max-width:360px){
  .stayFilters__controls{grid-template-columns:1fr!important}
  .stayFilters__reset{grid-column:auto!important}
  .stayResults__list{max-height:130px!important}
}


/* =========================================================
   V26.3.30 — FILTROS EXPANSÍVEIS EM MOBILE/TABLET
   O mapa ganha espaço: filtros fechados por defeito <=1024px.
   A lista de alojamentos continua sempre acessível.
   ========================================================= */
.stayFilters__headActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.stayFilters__toggle{display:none;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 10px;border:1px solid rgba(64,160,67,.32);border-radius:11px;background:#f4faf5;color:#2f7134;font:inherit;font-size:11px;font-weight:900;white-space:nowrap;cursor:pointer}
.stayFilters__toggle:hover{background:#eaf6eb}
.stayFilters__toggleIcon{display:inline-flex;width:15px;height:15px;align-items:center;justify-content:center}
.stayFilters__toggleIcon svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.stayFilters__activeBadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#2f7134;color:#fff;font-size:9px;font-weight:900;line-height:1}
.stayFilters__activeBadge[hidden]{display:none!important}
.stayFilters__drawer{display:block}
.stayFilters__drawerActions{display:none}
.stayFilters__apply{width:100%;min-height:38px;border:0;border-radius:11px;background:#2f7134;color:#fff;font:inherit;font-size:11px;font-weight:900;cursor:pointer;box-shadow:0 6px 16px rgba(47,113,52,.18)}
.stayFilters__apply:hover{background:#275f2c}

@media(max-width:1024px){
  .stayFilters__head{align-items:center!important;margin-bottom:0!important}
  .stayFilters__intro{min-width:0;flex:1 1 auto}
  .stayFilters__headActions{flex:0 1 auto}
  .stayFilters__toggle{display:inline-flex}
  .stayFilters__drawer{display:none;margin-top:10px;padding-top:10px;border-top:1px solid #e4ece5}
  .stayFilters.is-expanded .stayFilters__drawer{display:block}
  .stayFilters__drawerActions{display:block;margin-top:8px}
  .stayFilters__empty{margin-top:9px}
  .stayResults{margin-top:9px!important;padding-top:9px!important}
  .stayFilters:not(.is-expanded) .stayResults{margin-top:8px!important;padding-top:8px!important}
}
@media(max-width:760px){
  .stayFilters__headActions{gap:6px}
  .stayFilters__count{max-width:none!important;font-size:9.5px!important;padding:5px 7px!important}
  .stayFilters__toggle{min-height:34px;padding:6px 8px;font-size:10.5px}
  .stayFilters__drawer .stayFilters__controls{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important}
  .stayFilters__drawerActions{margin-top:7px}
}
@media(max-width:430px){
  .stayFilters__title{font-size:10px!important;letter-spacing:.07em}
  .stayFilters__headActions{gap:5px}
  .stayFilters__count{font-size:9px!important;padding:4px 6px!important}
  .stayFilters__toggle{min-height:32px;padding:5px 7px;font-size:10px;border-radius:10px}
  .stayFilters__toggleIcon,.stayFilters__toggleIcon svg{width:14px;height:14px}
}
@media(max-width:360px){
  .stayFilters__head{gap:6px!important}
  .stayFilters__count{display:none}
  .stayFilters__drawer .stayFilters__controls{grid-template-columns:1fr!important}
}


/* =========================================================
   V26.3.31 — BARRA COMPACTA EM MOBILE/TABLET
   <=1024px: por defeito fica apenas a barra. Os filtros e a
   lista de alojamentos abrem apenas quando o visitante pedir.
   ========================================================= */
.stayFilters__resultsToggle{
  border:0;
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  cursor:default;
}
.stayFilters__resultsToggle:disabled{opacity:1;color:#2f7134;cursor:default}
.stayFilters__resultsToggle:focus-visible{
  outline:2px solid rgba(47,113,52,.35);
  outline-offset:2px;
}
@media(max-width:1024px){
  .stayFilters{
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
  .stayFilters__head{
    min-height:36px;
  }
  .stayFilters__resultsToggle{
    cursor:pointer;
    transition:background .18s ease,box-shadow .18s ease;
  }
  .stayFilters__resultsToggle:hover,
  .stayFilters__resultsToggle:focus-visible{
    background:#e5f3e6;
    box-shadow:0 0 0 2px rgba(64,160,67,.10);
  }
  .stayResults{
    display:none!important;
    margin-top:9px!important;
    padding-top:9px!important;
    border-top:1px solid #e4ece5;
  }
  .stayFilters.is-results-expanded .stayResults{
    display:block!important;
  }
  .stayFilters.is-expanded .stayResults{
    display:none!important;
  }
  .stayFilters.is-expanded .stayFilters__drawer{
    display:block!important;
  }
  .stayFilters.is-results-expanded .stayFilters__drawer{
    display:none!important;
  }
  .stayFilters:not(.is-expanded):not(.is-results-expanded) .stayFilters__drawer,
  .stayFilters:not(.is-expanded):not(.is-results-expanded) .stayResults{
    display:none!important;
  }
}
@media(max-width:760px){
  .stayFilters{
    padding:8px 10px!important;
  }
  .stayFilters__head{
    min-height:34px;
  }
  .stayFilters__intro{
    max-width:38%;
  }
  .stayFilters__title{
    line-height:1.05;
  }
}
@media(max-width:430px){
  .stayFilters__intro{
    max-width:34%;
  }
  .stayFilters__headActions{
    flex:1 1 auto;
    justify-content:flex-end;
  }
}


/* =========================================================
   V26.3.33 — FILTROS COERENTES EM ONDE COMER / O QUE VISITAR
   Reutiliza a barra compacta dos alojamentos.
   ========================================================= */
.exploreFilters[hidden]{display:none!important}
.exploreFilters .stayFilters__controls{grid-template-columns:minmax(180px,1.2fr) minmax(160px,.9fr) auto}
.exploreFilters.has-open-filter .stayFilters__controls{grid-template-columns:minmax(180px,1.2fr) minmax(150px,.9fr) minmax(145px,.8fr) auto}
#exploreOpenField[hidden]{display:none!important}
.exploreResult__status--open{color:#2f8a39!important;font-weight:850}
.exploreResult__status--closed{color:#8a6d69!important}
@media(max-width:760px){
  .exploreFilters .stayFilters__drawer .stayFilters__controls{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important}
}
@media(max-width:360px){
  .exploreFilters .stayFilters__drawer .stayFilters__controls{grid-template-columns:1fr!important}
}

/* =========================================================
   V26.3.34 — BOTÃO APLICAR FILTROS TAMBÉM NO DESKTOP
   Mantém os controlos visíveis no PC e acrescenta uma ação
   explícita, coerente com mobile/tablet, nas três categorias.
   ========================================================= */
@media(min-width:1025px){
  .stayFilters__drawerActions{
    display:block;
    margin-top:10px;
  }
  .stayFilters__apply{
    min-height:40px;
  }
}

/* =========================================================
   V26.3.36 — AJUSTE DA GRELHA DE FILTROS NO DESKTOP
   Impede o botão "Limpar filtros" de ultrapassar o painel
   quando O Que Visitar apresenta também o filtro Horário.
   ========================================================= */
@media(min-width:761px){
  .exploreFilters .stayFilters__controls{
    grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(108px,.72fr);
  }
  .exploreFilters.has-open-filter .stayFilters__controls{
    grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.95fr) minmax(108px,.8fr);
  }
  .exploreFilters .stayFilters__reset{
    width:100%;
    min-width:0;
    max-width:100%;
    padding-left:10px;
    padding-right:10px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* =========================================================
   V26.3.37 — AFINAÇÃO VISUAL DOS FILTROS NO DESKTOP
   Dá mais espaço ao O Que Visitar e evita texto truncado.
   ========================================================= */
@media(min-width:1025px){
  .exploreFilters{
    width:min(650px,calc(100vw - 36px));
  }
  .exploreFilters.has-open-filter .stayFilters__controls{
    grid-template-columns:minmax(0,1.16fr) minmax(0,1.06fr) minmax(0,1fr) minmax(118px,.88fr);
    gap:8px;
  }
  .exploreFilters .stayFilterField{
    font-size:10.5px;
  }
  .exploreFilters .stayFilterField select,
  .exploreFilters .stayFilterField input[type="search"]{
    min-height:40px;
    padding-top:7px;
    padding-bottom:7px;
    padding-left:9px;
    font-size:10.5px;
  }
  .exploreFilters .stayFilterField select{
    padding-right:28px;
  }
  .exploreFilters .stayFilters__reset{
    min-height:40px;
    padding:7px 8px;
    font-size:10.5px;
    text-overflow:clip;
  }
}

/* ===== VISITE PAIVA V26.7.8 — Agenda homepage premium, peso visual uniforme ===== */
.vpHomeAgenda{padding:46px 18px 32px}
.vpHomeAgenda__inner{
  width:min(1120px,100%);
  padding:34px;
  border-color:rgba(30,86,43,.10);
  border-radius:30px;
  background:linear-gradient(145deg,#ffffff 0%,#fbfcf9 62%,#f6f3e9 100%);
  box-shadow:0 24px 70px rgba(24,58,35,.08);
}
.vpHomeAgenda__head{margin-bottom:24px}
.vpHomeAgenda__eyebrow{font-size:10px;letter-spacing:.18em}
.vpHomeAgenda h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,4vw,52px);font-weight:700;letter-spacing:-.045em}
.vpHomeAgenda__copy p{max-width:650px;font-size:15px}
.vpHomeAgenda__track{grid-auto-columns:calc((100% - 36px)/3);gap:18px}
.vpHomeAgendaCard{
  display:flex;
  flex-direction:column;
  border-radius:23px;
  border-color:rgba(23,61,35,.11);
  box-shadow:0 14px 38px rgba(29,67,40,.065);
  transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease;
}
.vpHomeAgendaCard:hover,.vpHomeAgendaCard:focus-visible{transform:translateY(-4px);box-shadow:0 24px 54px rgba(29,67,40,.13)}
.vpHomeAgendaCard__media{aspect-ratio:4/3;background:#e9efe9}
.vpHomeAgendaCard__mediaLayers{position:absolute;inset:0;display:block;overflow:hidden}
.vpHomeAgendaCard__mediaBack{position:absolute!important;inset:-18px!important;width:calc(100% + 36px)!important;height:calc(100% + 36px)!important;object-fit:cover!important;filter:blur(18px) saturate(.8);opacity:.42;transform:scale(1.04)}
.vpHomeAgendaCard__mediaFront{position:absolute!important;inset:10px!important;width:calc(100% - 20px)!important;height:calc(100% - 20px)!important;object-fit:contain!important;filter:none!important;z-index:1}
.vpHomeAgendaCard__media::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(8,28,15,.18),transparent 35%);pointer-events:none}
.vpHomeAgendaCard__categoryPill{position:absolute;top:13px;right:13px;z-index:3;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 7px 20px rgba(21,48,30,.12);color:#7d5e17;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.vpHomeAgendaCard__date{z-index:3;left:13px;bottom:13px;min-width:57px;padding:9px 10px 7px;border-radius:14px}
.vpHomeAgendaCard__day{font-size:22px}
.vpHomeAgendaCard__month{font-size:9px}
.vpHomeAgendaCard__body{flex:1;min-height:204px;padding:20px 20px 18px}
.vpHomeAgendaCard__category{display:none}
.vpHomeAgendaCard h3{margin:0 0 15px;font-family:Georgia,"Times New Roman",serif;font-size:21px;line-height:1.18;-webkit-line-clamp:3;color:#153b21}
.vpHomeAgendaCard__facts{display:grid;gap:8px;margin-top:auto;padding-top:4px}
.vpHomeAgendaCard__meta{margin-top:0;font-size:12px;color:#657068}
.vpHomeAgendaCard__meta svg{width:15px;height:15px;stroke:#9a7421}
.vpHomeAgendaCard__cta{display:flex;align-items:center;gap:4px;margin-top:17px;padding-top:14px;border-top:1px solid #e7ebe7;color:#1e562b;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.vpHomeAgendaCard__cta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.vpHomeAgenda__foot{margin-top:20px}
.vpHomeAgenda__all{font-size:13px}
@media(max-width:900px){
  .vpHomeAgenda__inner{padding:28px}
  .vpHomeAgenda__track{grid-auto-columns:calc((100% - 16px)/2);gap:16px}
}
@media(max-width:600px){
  .vpHomeAgenda{padding:30px 12px 22px}
  .vpHomeAgenda__inner{padding:22px 16px;border-radius:22px}
  .vpHomeAgenda h2{font-size:34px}
  .vpHomeAgenda__track{grid-auto-columns:88%;gap:12px}
  .vpHomeAgendaCard{border-radius:18px}
  .vpHomeAgendaCard__body{min-height:180px;padding:17px}
  .vpHomeAgendaCard h3{font-size:20px}
  .vpHomeAgendaCard__mediaFront{inset:8px!important;width:calc(100% - 16px)!important;height:calc(100% - 16px)!important}
}

/* V26.7.11 — estados temporais vivos na Agenda da homepage */
.vpHomeAgendaTemporal{position:absolute;z-index:4;left:13px;top:13px;display:inline-flex;align-items:center;gap:6px;max-width:58%;padding:7px 10px;border:1px solid rgba(23,61,35,.12);border-radius:999px;background:rgba(255,255,255,.96);box-shadow:0 7px 20px rgba(21,48,30,.12);color:#375441;font-size:9px;font-weight:900;letter-spacing:.065em;line-height:1;text-transform:uppercase;white-space:nowrap}
.vpHomeAgendaTemporal::before{content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#8b968e}
.vpHomeAgendaTemporal--live{background:#eaf6ed;color:#1e562b;border-color:#bad9c0}.vpHomeAgendaTemporal--live::before{background:#2f8a42;box-shadow:0 0 0 4px rgba(47,138,66,.12)}
.vpHomeAgendaTemporal--soon{background:#fff8df;color:#7c5c0a;border-color:#ead58f}.vpHomeAgendaTemporal--soon::before{background:#d49a13;box-shadow:0 0 0 4px rgba(212,154,19,.12)}
.vpHomeAgendaTemporal--tomorrow{background:#f1f5fb;color:#36526a;border-color:#cedbe8}.vpHomeAgendaTemporal--tomorrow::before{background:#5b7ea0}
.vpHomeAgendaTemporal--started,.vpHomeAgendaTemporal--today{background:rgba(255,255,255,.96);color:#375441}.vpHomeAgendaTemporal--started::before,.vpHomeAgendaTemporal--today::before{background:#63816b}
.vpHomeAgendaTemporal--ended{background:#f2f3f2;color:#7a827c;border-color:#dfe3df}.vpHomeAgendaTemporal--ended::before{background:#a4aaa6}
@media(max-width:600px){.vpHomeAgendaTemporal{left:10px;top:10px;max-width:62%;padding:6px 8px;font-size:8px}}


/* ===== VISITE PAIVA V26.7.18 — Agenda em direto na homepage ===== */
.vpHomeAgendaLive{
  display:flex;
  align-items:stretch;
  min-height:46px;
  margin:0 0 20px;
  border:1px solid #c9ddcd;
  border-radius:17px;
  background:#fff;
  box-shadow:0 10px 28px rgba(21,48,30,.065);
  overflow:hidden;
}
.vpHomeAgendaLive[hidden]{display:none!important}
.vpHomeAgendaLive__lead{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:9px;
  flex:0 0 auto;
  padding:0 16px;
  background:#1e562b;
  color:#fff;
  white-space:nowrap;
}
.vpHomeAgendaLive__lead strong{font-size:10px;font-weight:900;letter-spacing:.075em;text-transform:uppercase}
.vpHomeAgendaLive__dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#83d490;box-shadow:0 0 0 5px rgba(131,212,144,.17)}
.vpHomeAgendaLive__viewport{min-width:0;flex:1;overflow:hidden;background:linear-gradient(90deg,#fbfdfb,#fff)}
.vpHomeAgendaLive__track{display:flex;width:max-content;min-width:100%;height:100%;align-items:center;will-change:transform}
.vpHomeAgendaLive__group{display:flex;align-items:center;flex:0 0 auto;min-width:max-content;height:100%;padding-right:46px}
.vpHomeAgendaLive__item{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 13px;color:#173d23;text-decoration:none;white-space:nowrap}
.vpHomeAgendaLive__item:hover>span,.vpHomeAgendaLive__item:focus-visible>span{text-decoration:underline;text-underline-offset:3px}
.vpHomeAgendaLive__item:focus-visible{outline:2px solid #2d7134;outline-offset:-3px;border-radius:9px}
.vpHomeAgendaLive__item strong{color:#9a7115;font-size:9.5px;font-weight:950;letter-spacing:.075em;text-transform:uppercase}
.vpHomeAgendaLive__item--live strong{color:#267438}.vpHomeAgendaLive__item--soon strong{color:#9b6800}.vpHomeAgendaLive__item--started strong{color:#376f43}.vpHomeAgendaLive__item--tomorrow strong{color:#536e84}
.vpHomeAgendaLive__item>span:not(.vpHomeAgendaLive__location){font-size:11.5px;font-weight:850;color:#173d23}
.vpHomeAgendaLive__location{font-size:10.5px;font-weight:650;color:#718077}
.vpHomeAgendaLive__sep{color:#c4a14c;font-size:14px;opacity:.86}
@media(prefers-reduced-motion:no-preference){
  .vpHomeAgendaLive__dot{animation:vpHomeAgendaLivePulse 1.9s ease-out infinite}
  .vpHomeAgendaLive__track{animation:vpHomeAgendaLiveTicker var(--vp-home-live-duration,38s) linear infinite}
  .vpHomeAgendaLive:hover .vpHomeAgendaLive__track,.vpHomeAgendaLive:focus-within .vpHomeAgendaLive__track{animation-play-state:paused}
  @keyframes vpHomeAgendaLivePulse{0%,100%{box-shadow:0 0 0 4px rgba(47,138,66,.12)}50%{box-shadow:0 0 0 7px rgba(47,138,66,.035)}}
  @keyframes vpHomeAgendaLiveTicker{to{transform:translateX(-50%)}}
}
@media(prefers-reduced-motion:reduce){
  .vpHomeAgendaLive__viewport{overflow-x:auto;scrollbar-width:thin}
  .vpHomeAgendaLive__group--clone{display:none}
  .vpHomeAgendaLive__track{width:max-content}
}
@media(max-width:700px){
  .vpHomeAgendaLive{min-height:43px;margin-bottom:16px;border-radius:15px}
  .vpHomeAgendaLive__lead{padding:0 11px;gap:7px}.vpHomeAgendaLive__lead strong{font-size:8.5px;letter-spacing:.05em;max-width:88px;white-space:normal;line-height:1.06}.vpHomeAgendaLive__dot{width:8px;height:8px;flex-basis:8px}
  .vpHomeAgendaLive__item{min-height:41px;padding:0 10px;gap:5px}.vpHomeAgendaLive__item strong{font-size:8.5px}.vpHomeAgendaLive__item>span:not(.vpHomeAgendaLive__location){font-size:10.5px}.vpHomeAgendaLive__location{display:none}.vpHomeAgendaLive__group{padding-right:30px}.vpHomeAgendaLive__sep{font-size:12px}
}
@media(max-width:420px){.vpHomeAgendaLive__lead{padding:0 9px}.vpHomeAgendaLive__lead strong{max-width:68px}.vpHomeAgendaLive__item{padding:0 8px}}


/* ===== VISITE PAIVA V26.8.1 — Mobilidade em destaque na Home ===== */
.homeMobility{
  padding:0 18px 18px;
}
.homeMobility__inner{
  max-width:1120px;
  margin:0 auto;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) minmax(390px,auto);
  align-items:center;
  gap:18px;
  padding:18px 20px;
  border:1px solid rgba(45,113,52,.14);
  border-radius:22px;
  background:
    radial-gradient(circle at 94% 12%,rgba(229,193,98,.14),transparent 32%),
    linear-gradient(135deg,rgba(255,255,255,.98),rgba(247,250,246,.98));
  box-shadow:0 14px 34px rgba(30,86,43,.07);
}
.homeMobility__icon{
  width:50px;height:50px;display:grid;place-items:center;flex:0 0 50px;
  border-radius:15px;background:rgba(45,113,52,.09);color:#1e562b;
}
.homeMobility__icon svg{
  width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.homeMobility__copy{min-width:0}
.homeMobility__eyebrow{
  display:block;margin-bottom:4px;color:#b89542;font-size:10px;font-weight:900;
  letter-spacing:.16em;text-transform:uppercase;
}
.homeMobility h2{
  margin:0;color:#10291a;font-size:22px;line-height:1.08;letter-spacing:-.02em;
}
.homeMobility__copy p{
  margin:6px 0 0;color:#506258;font-size:13px;line-height:1.45;
}
.homeMobility__rank{
  min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:16px;
  padding-left:18px;border-left:1px solid rgba(45,113,52,.12);
}
.homeMobility__rankText{
  min-width:0;display:flex;flex-direction:column;gap:3px;align-items:flex-start;
}
.homeMobility__rankText strong{
  color:#173522;font-size:13px;line-height:1.25;
}
.homeMobility__rankText span{
  color:#68776e;font-size:11px;line-height:1.25;
}
.homeMobility__rankText a{
  display:inline-flex;align-items:center;gap:6px;margin-top:3px;
  color:#1e562b;text-decoration:none;font-size:14px;font-weight:900;
}
.homeMobility__rankText a:hover{text-decoration:underline}
.homeMobility__actions{
  display:flex;flex-direction:column;gap:7px;flex:0 0 auto;
}
.homeMobility__btn{
  min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:8px 12px;border-radius:11px;border:1px solid rgba(45,113,52,.18);
  background:#fff;color:#1e562b!important;text-decoration:none!important;
  font-size:11px;font-weight:900;white-space:nowrap;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.homeMobility__btn:hover{
  transform:translateY(-1px);border-color:rgba(45,113,52,.34);
  box-shadow:0 8px 18px rgba(30,86,43,.09);
}
.homeMobility__btn--call{
  border-color:transparent;background:#2d7134;color:#fff!important;
}
@media(max-width:980px){
  .homeMobility__inner{
    grid-template-columns:auto minmax(0,1fr);
  }
  .homeMobility__rank{
    grid-column:1/-1;padding:14px 0 0;border-left:0;border-top:1px solid rgba(45,113,52,.12);
    justify-content:space-between;
  }
  .homeMobility__actions{flex-direction:row}
}
@media(max-width:640px){
  .homeMobility{padding:0 12px 16px}
  .homeMobility__inner{
    grid-template-columns:42px minmax(0,1fr);gap:12px;padding:16px;border-radius:18px;
  }
  .homeMobility__icon{width:42px;height:42px;border-radius:13px}
  .homeMobility__icon svg{width:24px;height:24px}
  .homeMobility h2{font-size:19px}
  .homeMobility__copy p{font-size:12px}
  .homeMobility__rank{
    display:grid;grid-template-columns:1fr;gap:11px;
  }
  .homeMobility__actions{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;
  }
  .homeMobility__btn{white-space:normal;text-align:center;min-height:42px}
}
@media(max-width:420px){
  .homeMobility__actions{grid-template-columns:1fr}
}


/* V26.8.2 — identificação do tipo de chamada na Mobilidade */
.homeMobility__callNote{
  display:block;
  margin-top:0;
  color:#7a857e;
  font-size:9px;
  line-height:1.3;
  font-weight:600;
}


/* PQ CORE v0.4.1 — Pedido Direto em acordeão */
.vpStayEnquiry{margin:18px 0 8px;border:1px solid rgba(12,67,45,.15);border-radius:17px;background:#f8fbf8;overflow:hidden}
.vpStayEnquiry__details{margin:0}
.vpStayEnquiry__summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;user-select:none;background:linear-gradient(135deg,#f9fcf9,#f3f8f4)}
.vpStayEnquiry__summary::-webkit-details-marker{display:none}
.vpStayEnquiry__summaryIcon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:rgba(45,113,52,.1);color:#1e562b;font-size:23px;font-weight:900}
.vpStayEnquiry__summaryText{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}
.vpStayEnquiry__summaryText small{font-size:9px;font-weight:900;letter-spacing:.14em;color:#a88739}
.vpStayEnquiry__summaryText strong{font-size:15px;line-height:1.25;color:#0c432d}
.vpStayEnquiry__summaryText em{font-size:11px;line-height:1.35;font-style:normal;font-weight:500;color:#68766e}
.vpStayEnquiry__chevron{flex:0 0 auto;color:#2d7134;font-size:23px;line-height:1;transition:transform .18s ease}
.vpStayEnquiry__details[open] .vpStayEnquiry__chevron{transform:rotate(180deg)}
.vpStayEnquiry__body{padding:16px 18px 18px;border-top:1px solid rgba(12,67,45,.09);background:#f8fbf8}
.vpStayEnquiry__notice{margin:0 0 14px;padding:9px 11px;border-radius:10px;background:#fff8e9;color:#6d5520;font-size:12px;line-height:1.45}
.vpStayEnquiry__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vpStayEnquiry label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#183b2c}
.vpStayEnquiry label small{font-weight:500;color:#6b766f}
.vpStayEnquiry input,.vpStayEnquiry textarea{width:100%;box-sizing:border-box;border:1px solid #d7e1da;border-radius:11px;padding:11px 12px;background:#fff;color:#17231d;font:inherit}
.vpStayEnquiry input:focus,.vpStayEnquiry textarea:focus{outline:2px solid rgba(12,67,45,.15);border-color:#0c432d}
.vpStayEnquiry__full{grid-column:1/-1}
.vpStayEnquiry__privacy{margin:14px 0;display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;font-weight:500!important;line-height:1.45}
.vpStayEnquiry__privacy input{width:auto;margin-top:3px}
.vpStayEnquiry__submit{width:100%;justify-content:center}
.vpStayEnquiry__result{margin-top:12px;font-size:13px;line-height:1.5}
.vpStayEnquiry__result.is-success{padding:12px;border-radius:10px;background:#eaf6ed;color:#155d2d}
.vpStayEnquiry__result.is-error{padding:12px;border-radius:10px;background:#fff0f0;color:#8b2424}
.vpStayEnquiry__trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
@media(max-width:640px){.vpStayEnquiry{margin-top:14px}.vpStayEnquiry__summary{padding:12px 13px;gap:10px}.vpStayEnquiry__summaryIcon{width:34px;height:34px;flex-basis:34px}.vpStayEnquiry__summaryText strong{font-size:14px}.vpStayEnquiry__summaryText em{font-size:10.5px}.vpStayEnquiry__body{padding:14px 13px 16px}.vpStayEnquiry__grid{grid-template-columns:1fr}.vpStayEnquiry__full{grid-column:auto}}
