/* =============================================================
   sec-location-single.css — Focofy Factory v2.2
   Seção: Location Single
   Layout: 2 colunas dark — mapa | cards de endereço/canais/cobertura
   ============================================================= */

/* -------------------------------------------------------------
   Tokens locais
   ------------------------------------------------------------- */
.focofy-location-single {
  --ls-col-gap:      var(--space-8);
  --ls-card-gap:     var(--space-4);
  --ls-map-radius:   var(--radius-xl);
  --ls-card-bg:      var(--color-surface-2);
  --ls-card-border:  var(--color-border-subtle);
  --ls-card-radius:  var(--radius-lg);
  --ls-accent:       var(--color-accent);
  --ls-glow:         color-mix(in srgb, var(--ls-accent) 10%, transparent);

  color: var(--color-text);
}

.focofy-section[data-bg="dark"] .focofy-location-single,
.focofy-section--sec-location-single[data-bg="dark"] .focofy-location-single {
  --ls-card-border:  var(--color-border-strong);
  --ls-glow:         color-mix(in srgb, var(--ls-accent) 14%, transparent);
}

/* -------------------------------------------------------------
   Body — grid 2 colunas
   ------------------------------------------------------------- */
.focofy-location-single__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ls-col-gap);
  align-items: start;
}

@media (min-width: 1024px) {            /* --bp-desktop */
  .focofy-location-single__body {
    grid-template-columns: 1.25fr 1fr;
  }
}

/* -------------------------------------------------------------
   Coluna esquerda — mapa
   ------------------------------------------------------------- */
.focofy-location-single__map-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.focofy-location-single__eyebrow {
  margin: 0;
  font-size: var(--font-size-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ls-accent);
}

.focofy-location-single__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--font-size-4xl);
  font-weight: var(--fw-extrabold);
  color: var(--color-heading);
  line-height: var(--lh-tight);
  text-wrap: balance;
}

.focofy-location-single__description {
  margin: 0;
  font-size: var(--font-size-base);
  line-height: var(--lh-relaxed);
  color: var(--color-text-muted);
}

/* Mapa embed — filtro dark para inverter o tema claro do Google Maps */
.focofy-location-single__map {
  overflow: hidden;
  border-radius: var(--ls-map-radius);
  border: 1px solid var(--ls-card-border);
  box-shadow: var(--shadow-lg), 0 0 40px var(--ls-glow);
  background: var(--color-surface-2);
}

.focofy-location-single__map iframe {
  display: block;
  width: 100%;
  border: 0;
  filter: invert(1) hue-rotate(180deg);
}

.focofy-location-single__maps-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  width: fit-content;
  padding: var(--space-2) var(--space-4);
  font-size: var(--font-size-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-text-muted);
  text-decoration: none;
  border: 1px solid var(--ls-card-border);
  border-radius: var(--radius-md);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.focofy-location-single__maps-link:hover {
  color: var(--color-text);
  border-color: var(--color-border-strong);
}

/* -------------------------------------------------------------
   Coluna direita — sidebar
   ------------------------------------------------------------- */
.focofy-location-single__sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--ls-card-gap);
}

/* -------------------------------------------------------------
   Badge de destaque
   ------------------------------------------------------------- */
.focofy-location-single__badge {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-3) var(--space-5);
  background: var(--ls-card-bg);
  border: 1px solid var(--ls-card-border);
  border-radius: var(--ls-card-radius);
  box-shadow: 0 4px 20px var(--ls-glow);
}

.focofy-location-single__badge-title {
  font-size: var(--font-size-sm);
  font-weight: var(--fw-bold);
  color: var(--color-heading);
  line-height: var(--lh-tight);
}

.focofy-location-single__badge-subtitle {
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

/* -------------------------------------------------------------
   Card base — com glow
   ------------------------------------------------------------- */
.focofy-location-single__card {
  background: var(--ls-card-bg);
  border: 1px solid var(--ls-card-border);
  border-radius: var(--ls-card-radius);
  padding: var(--space-5) var(--space-6);
  box-shadow: 0 4px 24px var(--ls-glow);
}

/* -------------------------------------------------------------
   Card header (ícone + título)
   ------------------------------------------------------------- */
.focofy-location-single__card-header {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.focofy-location-single__card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ls-accent);
  flex-shrink: 0;
}

.focofy-location-single__card-title {
  margin: 0;
  font-size: var(--font-size-xs);
  font-weight: var(--fw-semibold);
  color: var(--color-heading);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.focofy-location-single__card-title--standalone {
  margin-bottom: var(--space-4);
  color: var(--color-text-muted);
}

/* -------------------------------------------------------------
   Card: Endereço
   ------------------------------------------------------------- */
.focofy-location-single__address {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin-bottom: var(--space-4);
  font-style: normal;
}

.focofy-location-single__address-line {
  display: block;
  font-size: var(--font-size-sm);
  color: var(--color-text);
  line-height: var(--lh-snug);
}

.focofy-location-single__address-zip {
  display: block;
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-2);
}

.focofy-location-single__hours {
  list-style: none;
  margin: 0 0 var(--space-4);
  padding: var(--space-3) var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  background: var(--color-surface-3);
  border: 1px solid var(--ls-card-border);
  border-radius: var(--radius-md);
}

.focofy-location-single__hours-slot {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-xs);
}

.focofy-location-single__hours-slot svg {
  flex-shrink: 0;
  color: var(--ls-accent);
}

.focofy-location-single__hours-days {
  flex: 1;
  color: var(--color-text-muted);
}

.focofy-location-single__hours-time {
  color: var(--color-text);
  font-weight: var(--fw-semibold);
}

.focofy-location-single__address-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-xs);
  font-weight: var(--fw-semibold);
  color: var(--ls-accent);
  text-decoration: none;
  transition: opacity var(--transition-fast);
}

.focofy-location-single__address-cta:hover {
  opacity: 0.75;
}

/* -------------------------------------------------------------
   Card: Canais de Atendimento
   ------------------------------------------------------------- */
.focofy-location-single__channel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-top: 1px solid var(--ls-card-border);
}

.focofy-location-single__channel:first-of-type {
  border-top: none;
}

.focofy-location-single__channel-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  background: var(--color-surface-3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ls-accent);
  flex-shrink: 0;
}

.focofy-location-single__channel-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.focofy-location-single__channel-label {
  font-size: var(--font-size-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
}

.focofy-location-single__channel-value {
  font-size: var(--font-size-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.focofy-location-single__channel-link {
  font-size: var(--font-size-xs);
  font-weight: var(--fw-semibold);
  color: var(--ls-accent);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity var(--transition-fast);
}

.focofy-location-single__channel-link:hover {
  opacity: 0.75;
}

/* -------------------------------------------------------------
   Card: Cobertura
   ------------------------------------------------------------- */
.focofy-location-single__card--reach {
  background: var(--color-surface-dark);
  border-color: var(--color-border-strong);
  box-shadow: 0 4px 24px color-mix(in srgb, var(--ls-accent) 18%, transparent);
}

.focofy-location-single__reach-inner {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.focofy-location-single__reach-map {
  flex-shrink: 0;
  width: 72px;
  color: var(--ls-accent);
}

.focofy-location-single__reach-map svg {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 0 10px var(--ls-glow));
}

.focofy-location-single__reach-text {
  font-size: var(--font-size-sm);
  color: var(--color-text-inverse);
  line-height: var(--lh-relaxed);
}

.focofy-location-single__reach-text p {
  margin: 0 0 var(--space-1);
}

.focofy-location-single__reach-text p:last-child {
  margin-bottom: 0;
}

/* -------------------------------------------------------------
   Acessibilidade
   ------------------------------------------------------------- */
.focofy-location-single a:focus-visible {
  outline: none;
  box-shadow: 0 0 0 var(--focus-ring-size) color-mix(in srgb, var(--focus-ring-color) calc(var(--focus-ring-opacity) * 100%), transparent);
  border-radius: var(--radius-sm);
}

/* -------------------------------------------------------------
   Responsivo — até 767px
   ------------------------------------------------------------- */
@media (max-width: 767px) {             /* abaixo de --bp-tablet */
  .focofy-location-single__title {
    font-size: var(--font-size-3xl);
  }

  .focofy-location-single__card {
    padding: var(--space-4) var(--space-5);
  }

  .focofy-location-single__channel {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
  }

  .focofy-location-single__channel-link {
    grid-column: 2;
  }

  .focofy-location-single__reach-map {
    width: 56px;
  }
}

/* -------------------------------------------------------------
   Prefers reduced motion
   ------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .focofy-location-single__maps-link,
  .focofy-location-single__channel-link,
  .focofy-location-single__address-cta {
    transition: none;
  }
}
