/* 1.71r31 - shared photo + comment presentation (no text overlay). */
.kma-photo-caption {
  width:100%; min-width:0; margin:0; padding:0;
  background:#f1f5f9; color:#172638; border-radius:0 0 12px 12px;
  box-sizing:border-box;
}
.kma-photo-caption[hidden] { display:none !important; }
.kma-photo-caption > summary {
  display:block; list-style:none; width:100%; min-width:0;
  padding:12px 14px; margin:0; box-sizing:border-box;
  background:transparent; color:inherit; font-size:.97rem;
  font-weight:400; line-height:1.6; text-align:left;
  cursor:pointer; touch-action:manipulation; border-radius:inherit;
}
.kma-photo-caption > summary::-webkit-details-marker { display:none; }
.kma-photo-caption > summary::marker { content:''; }
.kma-photo-caption > summary:focus-visible { outline:2px solid #0284c7; outline-offset:-3px; }
.kma-photo-caption .kma-photo-caption-body {
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5;
  line-clamp:5; overflow:hidden;
  white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word;
}
.kma-photo-caption[open] .kma-photo-caption-body {
  display:block; overflow:visible; -webkit-line-clamp:unset; line-clamp:unset;
}
.kma-photo-caption.is-short > summary { cursor:default; }
/* Trip photo: one connected card, with the image full-size and text BELOW it. */
.photo-view-image-wrap.kma-photo-frame {
  display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start;
  overflow:hidden; background:#fff; border:1px solid rgba(148,163,184,.28);
  border-radius:16px; min-height:0;
}
.kma-trip-photo-stage {
  background:#07111d; min-height:380px; width:100%; display:flex;
  align-items:center; justify-content:center;
}
.kma-trip-photo-stage img { display:block; max-width:100%; max-height:76vh; object-fit:contain; }
.photo-view-image-wrap.kma-photo-frame > .kma-photo-caption { border-radius:0 0 15px 15px; }
/* Facility enlarged image modal: photo and caption are a connected display. */
.facility-photo-dialog .kma-photo-frame { overflow:hidden; border-radius:11px; background:#020617; }
.facility-photo-dialog .kma-photo-frame > img { margin:0 auto; }
.facility-photo-dialog .kma-photo-caption { background:#eaf0f6; color:#172638; text-align:left; }
.facility-photo-dialog .kma-photo-caption > summary { color:#172638; text-align:left; }
/* Ramen bowl comments: one unified caption presentation within each record card. */
.ramen-today-photo-caption { grid-column:1/-1; }
.ramen-bowl-history-photo-caption, .ramen-shop-bowl-photo-caption { grid-column:1/-1; }
.ramen-today-card .kma-photo-caption,
.ramen-bowl-history-card .kma-photo-caption,
.ramen-shop-bowl-card .kma-photo-caption { border-radius:12px; }
@media(max-width:720px) {
  .kma-trip-photo-stage { min-height:260px; }
  .kma-photo-caption > summary { padding:11px 12px; font-size:.94rem; }
}

/* r65: Ramen photo comments start expanded but long text scrolls inside its card.
   Collapsing still restores the existing five-line preview; no photo overlay. */
.ramen-today-card .kma-photo-caption[open] .kma-photo-caption-body,
.ramen-bowl-history-card .kma-photo-caption[open] .kma-photo-caption-body,
.ramen-shop-bowl-card .kma-photo-caption[open] .kma-photo-caption-body {
  max-height: 11rem; overflow-y: auto; overscroll-behavior: contain;
}

/* r66: long trip-photo descriptions should not push the next photo / tools off-screen. */
.photo-view-image-wrap .kma-photo-caption[open] .kma-photo-caption-body {
  max-height:11rem;overflow-y:auto;overscroll-behavior:contain;
}
