/* ==========================================================
   FoneCity v1.6.21 — GUIA BRASIL MAP + TERRITORIAL FILTERS
   ========================================================== */

.fcp-guide-discovery{
  margin:0 0 28px;
  padding:22px;
  border-radius:26px;
}

.fcp-guide-discovery__head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}

.fcp-guide-discovery__head small{
  display:block;
  margin-bottom:5px;
  color:var(--fcg-gold);
  font-size:8px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.fcp-guide-discovery__head h2{
  margin:0;
  font-size:clamp(1.55rem,3vw,2.3rem);
  letter-spacing:-.04em;
}

.fcp-guide-discovery__head p{
  margin:6px 0 0;
  font-size:.76rem;
}

/* region filter */
.fcp-guide-region-filter{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding-bottom:2px;
  scrollbar-width:none;
}
.fcp-guide-region-filter::-webkit-scrollbar{display:none}

.fcp-guide-region-filter button{
  flex:0 0 auto;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 11px;
  border-radius:999px;
  font:inherit;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
  transition:transform .15s ease,border-color .15s ease,background .15s ease,color .15s ease;
}
.fcp-guide-region-filter button:not(:disabled):hover{transform:translateY(-1px)}
.fcp-guide-region-filter button:disabled{opacity:.34;cursor:not-allowed}
.fcp-guide-region-filter button span{
  min-width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border-radius:999px;
  font-size:8px;
}

/* tools */
.fcp-guide-tools{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,.42fr) auto;
  gap:8px;
  margin:11px 0 16px;
}

.fcp-guide-tools input,
.fcp-guide-tools select,
.fcp-guide-tools button{
  width:100%;
  min-height:46px;
  padding:0 13px;
  border-radius:12px;
  font:inherit;
  font-size:11px;
  outline:0;
}

.fcp-guide-tools button{
  width:auto;
  min-width:110px;
  cursor:pointer;
  font-weight:900;
}

/* map layout */
.fcp-guide-map-layout{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  gap:14px;
}

.fcp-guide-brazil-map{
  position:relative;
  min-height:560px;
  overflow:hidden;
  border-radius:22px;
}

.fcp-guide-brazil-map__shape{
  position:absolute;
  inset:18px 22px 34px;
}

.fcp-guide-brazil-map__shape svg{
  width:100%;
  height:100%;
  display:block;
}

.fcp-guide-brazil-map__shape .country-shadow{
  transform:translate(5px,7px);
  opacity:.34;
}

.fcp-guide-brazil-map__shape .country{
  stroke-width:2.2;
  vector-effect:non-scaling-stroke;
  transition:fill .18s ease,stroke .18s ease,filter .18s ease;
}

.fcp-guide-brazil-map__shape .region-labels text{
  font-size:13px;
  font-weight:900;
  letter-spacing:.18em;
  text-anchor:middle;
  opacity:.23;
  user-select:none;
}

/* state hotspots */
.fcp-guide-map-state{
  position:absolute;
  z-index:3;
  left:var(--x);
  top:var(--y);
  transform:translate(-50%,-50%);
  width:34px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:11px;
  font:inherit;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,opacity .16s ease;
}

.fcp-guide-map-state strong{
  font-size:9px;
  line-height:1;
}

.fcp-guide-map-state span{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:17px;
  height:17px;
  display:grid;
  place-items:center;
  padding:0 4px;
  border-radius:999px;
  font-size:7px;
  font-weight:900;
}

.fcp-guide-map-state.is-active:hover{
  transform:translate(-50%,-50%) scale(1.08);
}

.fcp-guide-map-state.is-inactive{
  cursor:not-allowed;
}

.fcp-guide-map-state.is-selected{
  transform:translate(-50%,-50%) scale(1.12);
  z-index:5;
}

.fcp-guide-map-state.is-region-dim{
  opacity:.22;
}

/* legend */
.fcp-guide-map-legend{
  position:absolute;
  left:16px;
  bottom:13px;
  z-index:4;
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  font-size:8px;
  font-weight:800;
}

.fcp-guide-map-legend span{
  display:flex;
  align-items:center;
  gap:5px;
}

.fcp-guide-map-legend i{
  width:9px;
  height:9px;
  display:block;
  border-radius:999px;
}

/* active cities panel */
.fcp-guide-active-cities{
  min-height:520px;
  padding:19px;
  border-radius:22px;
}

.fcp-guide-active-cities__intro{
  padding-bottom:14px;
  margin-bottom:11px;
  border-bottom:1px solid;
}

.fcp-guide-active-cities__intro small{
  display:block;
  margin-bottom:5px;
  color:var(--fcg-gold);
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.fcp-guide-active-cities__intro h3{
  margin:0;
  font-size:1.4rem;
  letter-spacing:-.035em;
}

.fcp-guide-active-cities__intro p{
  margin:7px 0 0;
  font-size:.74rem;
  line-height:1.55;
}

.fcp-guide-state-cities{
  display:grid;
  gap:7px;
}

.fcp-guide-state-cities[hidden]{display:none!important}

.fcp-guide-state-cities a{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:13px;
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}

.fcp-guide-state-cities a:hover{transform:translateX(3px)}
.fcp-guide-state-cities strong{display:block;font-size:.78rem}
.fcp-guide-state-cities small{display:block;margin-top:3px;font-size:.64rem;opacity:.68}
.fcp-guide-state-cities b{font-size:16px}

/* filtered grid */
.fcp-guide-card[hidden]{display:none!important}
.fcp-guide-filter-empty{
  margin-top:16px;
  padding:28px;
  border-radius:20px;
  text-align:center;
}
.fcp-guide-filter-empty strong{display:block;font-size:1rem}
.fcp-guide-filter-empty p{margin:5px 0 12px;font-size:.76rem}
.fcp-guide-filter-empty button{
  min-height:39px;
  padding:0 13px;
  border-radius:10px;
  font:inherit;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

/* LIGHT */
html[data-theme="light"] .fcp-guide-discovery{
  border:1px solid rgba(29,48,78,.10);
  background:linear-gradient(180deg,#fffdf9,#f6f1e9);
  box-shadow:0 18px 38px rgba(54,65,85,.07);
}

html[data-theme="light"] .fcp-guide-discovery__head p,
html[data-theme="light"] .fcp-guide-active-cities__intro p{
  color:#68768a;
}

html[data-theme="light"] .fcp-guide-region-filter button{
  border:1px solid rgba(29,48,78,.10);
  background:#f0ede7;
  color:#42536a;
}
html[data-theme="light"] .fcp-guide-region-filter button span{background:#e1e6ec}
html[data-theme="light"] .fcp-guide-region-filter button.is-active{
  border-color:#c98a12;
  background:#fff3d4;
  color:#8c5c08;
}

html[data-theme="light"] .fcp-guide-tools input,
html[data-theme="light"] .fcp-guide-tools select,
html[data-theme="light"] .fcp-guide-tools button{
  border:1px solid rgba(29,48,78,.11);
  background:#fff;
  color:#10203b;
}
html[data-theme="light"] .fcp-guide-tools input:focus,
html[data-theme="light"] .fcp-guide-tools select:focus{
  border-color:#c98a12;
  box-shadow:0 0 0 4px rgba(201,138,18,.10);
}

html[data-theme="light"] .fcp-guide-brazil-map,
html[data-theme="light"] .fcp-guide-active-cities,
html[data-theme="light"] .fcp-guide-filter-empty{
  border:1px solid rgba(29,48,78,.09);
  background:#f2efe8;
}

html[data-theme="light"] .fcp-guide-brazil-map__shape .country-shadow{
  fill:#cfd7df;
}
html[data-theme="light"] .fcp-guide-brazil-map__shape .country{
  fill:#e7edf3;
  stroke:#8fa3b7;
}
html[data-theme="light"] .fcp-guide-brazil-map__shape .region-labels text{
  fill:#4e6278;
}

html[data-theme="light"] .fcp-guide-map-state{
  border:1px solid rgba(29,48,78,.13);
  background:#e1e5e9;
  color:#6d7989;
}
html[data-theme="light"] .fcp-guide-map-state.is-active{
  border-color:rgba(43,104,183,.36);
  background:#2b68b7;
  color:#fff;
  box-shadow:0 8px 20px rgba(43,104,183,.20);
}
html[data-theme="light"] .fcp-guide-map-state.is-active span{
  background:#d99a1b;
  color:#fff;
}
html[data-theme="light"] .fcp-guide-map-state.is-selected{
  border-color:#d99a1b;
  background:#d99a1b;
  box-shadow:0 0 0 5px rgba(217,154,27,.14),0 12px 24px rgba(217,154,27,.20);
}

html[data-theme="light"] .fcp-guide-map-legend i{background:#c9d0d8}
html[data-theme="light"] .fcp-guide-map-legend i.is-on{background:#2b68b7}

html[data-theme="light"] .fcp-guide-active-cities__intro{border-bottom-color:rgba(29,48,78,.08)}
html[data-theme="light"] .fcp-guide-state-cities a{
  border:1px solid rgba(29,48,78,.08);
  background:#fffdf9;
  color:#10203b;
}
html[data-theme="light"] .fcp-guide-state-cities a:hover{border-color:rgba(201,138,18,.28)}
html[data-theme="light"] .fcp-guide-state-cities b{color:#a66d08}

html[data-theme="light"] .fcp-guide-filter-empty button{
  border:1px solid #c98a12;background:#c98a12;color:#fff;
}

/* DARK */
html[data-theme="dark"] .fcp-guide-discovery{
  border:1px solid rgba(148,163,184,.13);
  background:linear-gradient(180deg,#17243a,#101c2f);
  box-shadow:0 18px 38px rgba(0,0,0,.12);
}

html[data-theme="dark"] .fcp-guide-discovery__head p,
html[data-theme="dark"] .fcp-guide-active-cities__intro p{
  color:#b5c3d4;
}

html[data-theme="dark"] .fcp-guide-region-filter button{
  border:1px solid rgba(148,163,184,.13);
  background:#1d2d46;
  color:#d5dfe9;
}
html[data-theme="dark"] .fcp-guide-region-filter button span{background:#293b55}
html[data-theme="dark"] .fcp-guide-region-filter button.is-active{
  border-color:#d99a1b;
  background:rgba(217,154,27,.13);
  color:#ffd87f;
}

html[data-theme="dark"] .fcp-guide-tools input,
html[data-theme="dark"] .fcp-guide-tools select,
html[data-theme="dark"] .fcp-guide-tools button{
  border:1px solid rgba(148,163,184,.13);
  background:#192941;
  color:#f8fbff;
}
html[data-theme="dark"] .fcp-guide-tools select option{background:#fff;color:#10203b}
html[data-theme="dark"] .fcp-guide-tools input:focus,
html[data-theme="dark"] .fcp-guide-tools select:focus{
  border-color:#d99a1b;
  box-shadow:0 0 0 4px rgba(217,154,27,.10);
}

html[data-theme="dark"] .fcp-guide-brazil-map,
html[data-theme="dark"] .fcp-guide-active-cities,
html[data-theme="dark"] .fcp-guide-filter-empty{
  border:1px solid rgba(148,163,184,.12);
  background:#0f1b2e;
}

html[data-theme="dark"] .fcp-guide-brazil-map__shape .country-shadow{
  fill:#020814;
}
html[data-theme="dark"] .fcp-guide-brazil-map__shape .country{
  fill:#14263c;
  stroke:#35536f;
}
html[data-theme="dark"] .fcp-guide-brazil-map__shape .region-labels text{
  fill:#91a6ba;
}

html[data-theme="dark"] .fcp-guide-map-state{
  border:1px solid rgba(148,163,184,.11);
  background:#223149;
  color:#8291a4;
}
html[data-theme="dark"] .fcp-guide-map-state.is-active{
  border-color:rgba(84,157,255,.42);
  background:#2769bc;
  color:#fff;
  box-shadow:0 8px 22px rgba(39,105,188,.22);
}
html[data-theme="dark"] .fcp-guide-map-state.is-active span{
  background:#d99a1b;color:#172033;
}
html[data-theme="dark"] .fcp-guide-map-state.is-selected{
  border-color:#f0ad32;
  background:#d99a1b;
  color:#172033;
  box-shadow:0 0 0 5px rgba(217,154,27,.12),0 12px 26px rgba(0,0,0,.20);
}
html[data-theme="dark"] .fcp-guide-map-legend i{background:#33445b}
html[data-theme="dark"] .fcp-guide-map-legend i.is-on{background:#3984db}

html[data-theme="dark"] .fcp-guide-active-cities__intro{border-bottom-color:rgba(148,163,184,.10)}
html[data-theme="dark"] .fcp-guide-state-cities a{
  border:1px solid rgba(148,163,184,.10);
  background:#17263d;
  color:#f8fbff;
}
html[data-theme="dark"] .fcp-guide-state-cities a:hover{border-color:rgba(217,154,27,.30)}
html[data-theme="dark"] .fcp-guide-state-cities b{color:#ffd377}
html[data-theme="dark"] .fcp-guide-filter-empty button{
  border:1px solid #d99a1b;background:#d99a1b;color:#172033;
}

/* responsive */
@media(max-width:900px){
  .fcp-guide-map-layout{grid-template-columns:1fr}
  .fcp-guide-active-cities{min-height:0}
  .fcp-guide-brazil-map{min-height:500px}
}

@media(max-width:680px){
  .fcp-guide-discovery{padding:15px;border-radius:20px}
  .fcp-guide-tools{grid-template-columns:1fr}
  .fcp-guide-tools button{width:100%}
  .fcp-guide-brazil-map{min-height:420px}
  .fcp-guide-brazil-map__shape{inset:14px 4px 32px}
  .fcp-guide-map-state{
    width:33px;height:30px;border-radius:9px;
  }
  .fcp-guide-map-state strong{font-size:8px}
  .fcp-guide-map-state span{
    min-width:15px;height:15px;font-size:6px;
  }
  .fcp-guide-map-legend{
    left:10px;right:10px;bottom:8px;
  }
}

@media(max-width:420px){
  .fcp-guide-brazil-map{min-height:370px}
  .fcp-guide-map-state{
    width:29px;height:27px;border-radius:8px;
  }
}


/* v1.6.22 — real Brazil map corrections */
.fcp-guide-brazil-map[data-region] .country{
  filter:none;
}
.fcp-guide-map-state{
  box-sizing:border-box;
}
.fcp-guide-map-state strong{
  white-space:nowrap;
}
@media(max-width:680px){
  .fcp-guide-brazil-map{min-height:455px}
  .fcp-guide-map-state{
    width:30px;
    height:27px;
  }
  .fcp-guide-brazil-map__shape .region-labels text{
    font-size:11px;
  }
}
@media(max-width:420px){
  .fcp-guide-brazil-map{min-height:405px}
  .fcp-guide-map-state{
    width:27px;
    height:25px;
  }
  .fcp-guide-map-state strong{font-size:7px}
}
