.whats-small {
  font-size: 0;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}

.whats-small svg {
  width: 20px;
  height: 20px;
  fill: #081f3d;
}

.whatsapp-float svg {
  width: 36px;
  height: 36px;
  fill: none;
  color: #fff;
  display: block;
  flex: none;
}

.whatsapp-float {
  width: 64px;
  height: 64px;
  padding: 14px;
  box-sizing: border-box;
}

.footer-brand img {
  width: 240px;
  height: auto;
  filter: none;
}

.brand-window > img {
  object-position: center;
}

.service-visual.custom {
  background: #ff7a59;
}

.custom-stack {
  position: relative;
  width: 94px;
  height: 78px;
}

.custom-stack i {
  position: absolute;
  width: 58px;
  height: 42px;
  border: 2px solid #081f3d;
  border-radius: 9px;
  background: rgba(255, 255, 255, .18);
  box-shadow: 0 8px 18px rgba(8, 31, 61, .1);
}

.custom-stack i:nth-child(1) { left: 0; top: 28px; }
.custom-stack i:nth-child(2) { left: 18px; top: 14px; }
.custom-stack i:nth-child(3) { left: 36px; top: 0; background: #f8faf7; }

.brazil-map {
  isolation: isolate;
}

.brazil-map::after {
  content: "";
  position: absolute;
  inset: 10% 16%;
  z-index: -1;
  border-radius: 50%;
  background: rgba(0, 194, 184, .1);
  filter: blur(35px);
}

.map-kicker {
  position: absolute;
  z-index: 2;
  top: 22px;
  left: 24px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #b8c9d9;
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.map-kicker span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #00c2b8;
  box-shadow: 0 0 0 6px rgba(0, 194, 184, .12);
}

.brazil-svg {
  position: absolute;
  inset: 24px 12px 5px;
  width: calc(100% - 24px);
  height: calc(100% - 29px);
  overflow: visible;
}

.country-shadow {
  fill: none;
  stroke: rgba(0, 194, 184, .15);
  stroke-width: 20;
  filter: url(#mapGlow);
}

.country {
  fill: url(#countryFill);
  stroke: #00c2b8;
  stroke-width: 2;
  transition: fill .3s, filter .3s, stroke-width .3s;
}

.brazil-map:hover .country {
  fill: rgba(0, 194, 184, .28);
  stroke-width: 3;
  filter: url(#mapGlow);
}

.route {
  fill: none;
  stroke: rgba(255, 255, 255, .32);
  stroke-width: 1.5;
  stroke-dasharray: 7 7;
}

.map-hotspot {
  cursor: pointer;
  outline: none;
}

.map-hotspot > circle:first-child {
  fill: rgba(0, 194, 184, .08);
  stroke: rgba(0, 194, 184, .38);
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .25s, fill .25s;
}

.map-hotspot .node {
  fill: #00c2b8;
  filter: url(#mapGlow);
  transition: transform .25s, fill .25s;
  transform-box: fill-box;
  transform-origin: center;
}

.map-hotspot .coral-node { fill: #ff7a59; }

.map-hotspot text {
  fill: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  opacity: .48;
  transition: opacity .25s, fill .25s;
}

.map-hotspot:hover > circle:first-child,
.map-hotspot:focus > circle:first-child {
  transform: scale(1.65);
  fill: rgba(0, 194, 184, .2);
}

.map-hotspot:hover .node,
.map-hotspot:focus .node {
  transform: scale(1.5);
  fill: #ff7a59;
}

.map-hotspot:hover text,
.map-hotspot:focus text {
  opacity: 1;
  fill: #00c2b8;
}

.map-instruction {
  position: absolute;
  right: 22px;
  bottom: 18px;
  color: #8fa5ba;
  font-size: .68rem;
}

.map-instruction span { color: #ff7a59; }

.df-hotspot > circle:first-child {
  fill: rgba(255, 122, 89, .1);
  stroke: rgba(255, 122, 89, .5);
}

.df-hotspot text {
  opacity: .9;
  fill: #ffb19d;
  font-size: 14px;
}

.df-leader {
  fill: none;
  stroke: #ff7a59;
  stroke-width: 1;
  opacity: .65;
  pointer-events: none;
}

@media (max-width: 560px) {
  .brazil-svg { inset: 28px 0 2px; width: 100%; height: calc(100% - 30px); }
  .map-kicker { top: 18px; left: 18px; }
  .map-instruction { display: none; }
}
