/* Boutique stroke icons — gold on dark, replaces emoji */
.app-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--lotus-primary);
  line-height: 0;
}

.app-icon svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.service-card .app-icon,
.transport-option .app-icon {
  width: clamp(1.35rem, 4.8vw, 1.65rem);
  height: clamp(1.35rem, 4.8vw, 1.65rem);
  padding: 7px;
  margin-bottom: 3px;
  border-radius: 11px;
  background: linear-gradient(145deg, rgba(184, 146, 74, 0.14), rgba(184, 146, 74, 0.05));
  border: 1px solid var(--lotus-border-gold);
  box-sizing: content-box;
}

.bottom-nav-btn .app-icon {
  width: 1.28rem;
  height: 1.28rem;
  padding: 0;
  margin-bottom: 0;
  border: none;
  border-radius: 0;
  box-sizing: border-box;
  background: none;
  color: var(--lotus-primary);
}

.bottom-nav-btn.active .app-icon {
  color: var(--lotus-primary);
  filter: drop-shadow(0 0 6px rgba(184, 146, 74, 0.4));
}

.bottom-nav-btn:not(.active) .app-icon {
  color: rgba(184, 146, 74, 0.75);
  opacity: 1;
}

.service-card:hover .app-icon,
.service-card:focus-visible .app-icon {
  border-color: rgba(184, 146, 74, 0.45);
  background: linear-gradient(145deg, rgba(184, 146, 74, 0.22), rgba(184, 146, 74, 0.08));
}

.activity-icon.app-icon {
  width: 1.5rem;
  height: 1.5rem;
  padding: 6px;
  border-radius: 10px;
  background: var(--lotus-primary-light);
  border: 1px solid var(--lotus-border-gold);
  box-sizing: content-box;
}

.amenity-card-title .app-icon,
.room-card-title .app-icon {
  width: 1.05rem;
  height: 1.05rem;
  flex-shrink: 0;
}

.cat-btn .app-icon {
  width: 0.9rem;
  height: 0.9rem;
  margin-right: 0;
  vertical-align: 0;
}

.cat-btn.active .app-icon {
  color: currentColor;
}
