/* ============================================================
   Place Photos v8.0 — photo NEXT TO info, not in a separate strip
   ============================================================ */

/* ── PLACE PHOTO BASE ── */
.place-photo {
  flex: 0 0 auto;
  width: 124px;
  height: 124px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  box-shadow: 0 1px 0 rgba(255,255,255,0.18) inset, 0 8px 24px rgba(0,0,0,0.35);
}
.place-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
  transition: transform .45s cubic-bezier(.22,.61,.36,1);
}
.has-photo:hover .place-photo img {
  transform: scale(1.06);
}
.place-photo--icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.place-photo__emoji {
  font-size: 52px;
  line-height: 1;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.35));
}

/* Top edge shine */
.place-photo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), transparent 30%);
  pointer-events: none;
  z-index: 2;
}

/* ── STOP — now a horizontal media card ── */
.stop {
  display: flex !important;
  gap: 14px !important;
  align-items: stretch !important;
  padding: 14px !important;
}
.stop.has-photo .stop__icon {
  /* Hide redundant text icon when we have a photo */
  display: none;
}
.stop__body {
  flex: 1 1 auto;
  min-width: 0;
}
.stop__name {
  font-size: 14px !important;
  margin-bottom: 4px !important;
}
.stop__desc {
  font-size: 12.5px !important;
  margin-bottom: 8px !important;
  -webkit-line-clamp: initial;
}

/* ── INFO CARD — photo on left ── */
.info-card.has-photo {
  display: flex !important;
  gap: 14px !important;
  align-items: stretch !important;
  padding: 14px !important;
}
.info-card.has-photo > .place-photo + * {
  flex: 1 1 auto;
  min-width: 0;
}
.info-card.has-photo .place-photo {
  width: 110px;
  height: 110px;
}
.info-card.has-photo .info-card__label,
.info-card.has-photo .info-card__title,
.info-card.has-photo .info-card__detail {
  /* Each direct child of info-card needs its own column */
}
/* Make all the right-side text children into a column flex */
.info-card.has-photo {
  align-items: stretch;
}
.info-card.has-photo > :not(.place-photo) {
  display: block;
}
/* Wrap right-side content using a virtual container via order */
.info-card.has-photo {
  flex-wrap: nowrap;
}

/* ── Hide bottom photo strips entirely (photos are now inline) ── */
.photo-strip,
.strip-heading {
  display: none !important;
}

/* ── Day-hero stays as a cinematic banner per day (kept from liquid-glass) ── */

/* ── MOBILE: stack vertically ── */
@media (max-width: 600px) {
  .stop,
  .info-card.has-photo {
    flex-direction: column !important;
    gap: 10px !important;
  }
  .place-photo {
    width: 100% !important;
    height: 160px !important;
    border-radius: 12px !important;
  }
  .info-card.has-photo .place-photo {
    width: 100% !important;
    height: 130px !important;
  }
  .place-photo__emoji {
    font-size: 56px;
  }
}

/* Tablet — slightly smaller photos */
@media (min-width: 601px) and (max-width: 900px) {
  .place-photo { width: 100px !important; height: 100px !important; }
  .info-card.has-photo .place-photo { width: 92px !important; height: 92px !important; }
  .place-photo__emoji { font-size: 42px; }
}

/* Desktop refinement — slightly bigger on roomy viewports */
@media (min-width: 1100px) {
  .stop .place-photo { width: 140px !important; height: 140px !important; }
}
