/* ==========================================================================
   LOCATION / HOURS — white background, map/info 55/45 split, today's-hours
   highlight row (driven by js/location.js), Farmers Market callout (serif
   italic special case via --font-serif-accent).
   Markup: section#location.location > .split.location__inner
             > .location__map, .location__content.panel
   ========================================================================== */

.location {
  background: var(--color-bg-primary);
}

/* ---- Map column ------------------------------------------------------------*/
.location__map {
  position: relative;
  overflow: hidden;
  min-height: 400px;
  background: var(--color-border-light);
}

.location__map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---- Content column ---------------------------------------------------------*/
.location__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-top: 4px solid var(--color-brand-red);
}

.location__heading {
  margin-bottom: var(--space-lg);
}

/* ---- Contact rows ------------------------------------------------------------*/
.location__contact {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm-lg);
  margin-bottom: var(--space-lg);
}

.location__contact-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm-lg);
}

.location__icon {
  flex-shrink: 0;
  color: var(--color-brand-red);
  margin-top: 3px;
}

.location__icon--sm {
  margin-top: 0;
}

.location__address-line {
  font-size: 0.9rem;
  font-weight: var(--fw-body-medium);
  color: var(--color-text-primary);
}

.location__address-line--muted {
  font-weight: var(--fw-body-regular);
  color: var(--color-text-muted);
}

.location__phone {
  font-size: 0.9rem;
  font-weight: var(--fw-body-medium);
  color: var(--color-text-primary);
  transition: color var(--transition-fast);
}

.location__phone:hover,
.location__phone:focus-visible {
  color: var(--color-brand-red);
}

.location__divider {
  height: 1px;
  border: none;
  background: var(--color-border-light);
  margin-bottom: var(--space-md);
}

/* ---- Hours -------------------------------------------------------------------*/
.location__hours-label {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-sm-lg);
}

.location__hours-label .location__icon {
  margin-top: 0;
}

.location__hours {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.location__hours-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: 0.35rem var(--space-sm);
  border-radius: var(--radius-card);
  border-left: 3px solid transparent;
}

.location__hours-row:has(.location__times > span + span) {
  align-items: flex-start;
}

.location__day {
  font-size: 0.85rem;
  color: var(--color-text-secondary);
}

.location__closed {
  font-size: 0.85rem;
  font-weight: var(--fw-body-semibold);
  color: var(--color-brand-red);
}

.location__times {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
}

.location__times span {
  font-size: 0.85rem;
  color: var(--color-text-muted-light);
}

.location__hours-row.is-today {
  background: var(--color-brand-red-muted);
  border-left-color: var(--color-brand-red);
}

.location__hours-row.is-today .location__day {
  font-weight: var(--fw-body-semibold);
  color: var(--color-text-primary);
}

.location__hours-row.is-today .location__times span {
  font-weight: var(--fw-body-semibold);
  color: var(--color-text-primary);
}

.location__note {
  text-align: center;
  font-size: var(--fs-caption-sm);
  font-weight: var(--fw-body-semibold);
  letter-spacing: var(--ls-caption);
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.3);
  margin-top: var(--space-sm-lg);
}

/* ---- Farmers Market callout ---------------------------------------------------*/
.location__market {
  margin-top: var(--space-lg);
  border: 1.5px solid var(--color-brand-red-border-soft);
  border-radius: var(--radius-card);
  overflow: hidden;
}

.location__market-header {
  background: var(--color-brand-red);
  padding: var(--space-sm) var(--space-md);
  text-align: center;
}

.location__market-title {
  font-family: var(--font-serif-accent);
  font-style: italic;
  font-size: var(--fs-farmers-market);
  color: var(--color-white);
  letter-spacing: 0.02em;
}

.location__market-body {
  padding: var(--space-md) var(--space-md) var(--space-sm-lg);
  background: var(--color-brand-red-muted);
  text-align: center;
}

.location__market-time {
  font-family: var(--font-heading);
  font-weight: var(--fw-heading-xbold);
  font-size: 1.05rem;
  color: var(--color-text-primary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.35rem;
}

.location__market-desc {
  font-size: var(--fs-body-sm);
  color: var(--color-text-muted-light);
  line-height: var(--lh-body-sm);
}

/* ---- Mobile: stack, cap map height ---------------------------------------------*/
@media (max-width: 899px) {
  .location__map {
    min-height: 300px;
  }
}
