
.site-shell--journal { max-width: 1360px; }
.journal-hero__content { padding: clamp(24px, 4vw, 40px); }
.journal-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.journal-layout { display: grid; grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); gap: 22px; align-items: start; }
.journal-side { display: grid; gap: 22px; position: sticky; top: 106px; }
.journal-card { padding: 28px; }
.journal-card--compact { padding-top: 24px; }
.journal-card--feed { min-height: 780px; }
.journal-form label { display: block; margin-bottom: 16px; }
.journal-form span { display: block; margin-bottom: 8px; color: var(--color-brand); font-size: .92rem; font-weight: 600; }
.journal-form input, .journal-form textarea {
  width: 100%; border: 1px solid rgba(16,36,58,.14); background: #fff; color: var(--color-ink);
  border-radius: 16px; padding: 14px 16px; outline: none;
}
.journal-form textarea { min-height: 160px; resize: vertical; }
.journal-form input:focus, .journal-form textarea:focus { border-color: rgba(156,62,46,.45); box-shadow: 0 0 0 3px rgba(191,109,78,.12); }

.journal-form input[type="file"] {
  padding: 10px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(242,245,248,.96));
  cursor: pointer;
}
.journal-form input[type="file"]::file-selector-button {
  border: 1px solid rgba(16,36,58,.10);
  background: var(--color-brand);
  color: #fff;
  border-radius: 999px;
  padding: 12px 18px;
  margin-right: 12px;
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
  transition: transform .18s ease, opacity .18s ease;
}
.journal-form input[type="file"]::file-selector-button:hover {
  transform: translateY(-1px);
  opacity: .96;
}
.journal-form input[type="file"]::-webkit-file-upload-button {
  border: 1px solid rgba(16,36,58,.10);
  background: var(--color-brand);
  color: #fff;
  border-radius: 999px;
  padding: 12px 18px;
  margin-right: 12px;
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
}

.journal-help { margin: 14px 0 0; color: var(--color-muted); line-height: 1.6; }
.journal-checklist { margin: 0; padding-left: 1.15rem; color: var(--color-muted); }
.journal-checklist li { margin: 10px 0; line-height: 1.6; }

.journal-media-preview,
.journal-post__media {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}
.journal-media-preview--single,
.journal-post__media--single {
  grid-template-columns: minmax(0, 1fr);
}
.journal-media-preview--single .journal-media-preview-item,
.journal-post__media--single .journal-post__media-item {
  max-width: 100%;
}
.journal-media-preview { margin: 6px 0 18px; }
.journal-post__media { margin-top: 18px; }
.journal-media-preview:has(.journal-media-preview-item:only-child),
.journal-post__media:has(.journal-post__media-item:only-child) {
  grid-template-columns: minmax(0, 1fr);
}
.journal-media-preview-item,
.journal-post__media-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(16,36,58,.10);
  background: linear-gradient(180deg, #f7f9fb, #eef3f7);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
  aspect-ratio: 4 / 3;
  width: 100%;
  min-width: 0;
  isolation: isolate;
}
.journal-media-preview-item img, .journal-media-preview-item video,
.journal-post__media-item img, .journal-post__media-item video {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  display: block;
  object-fit: contain;
  object-position: center;
  border: 0;
}
.journal-media-preview-item video,
.journal-post__media-item video {
  background: #0d1520;
}

.journal-feed__head { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-bottom: 18px; }
.journal-feed__heading { margin-bottom: 0; }
.journal-feed__filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(72px, 1fr));
  align-items: center;
  min-width: 240px;
  padding: 4px;
  border-radius: 999px;
  border: 1px solid var(--color-line);
  background: rgba(16,36,58,.05);
  gap: 4px;
}
.journal-feed__filters::-webkit-scrollbar { display: none; }
.journal-filter {
  border: 0; background: transparent; color: var(--color-muted); padding: 10px 14px; border-radius: 999px; font-weight: 700; text-align: center; white-space: nowrap;
}
.journal-filter.is-active { background: var(--color-brand); color: #fff; }
.journal-feed { display: grid; gap: 18px; min-width: 0; }
.journal-post {
  border: 1px solid var(--color-line); border-radius: 24px; padding: 24px; background: #fff; box-shadow: var(--shadow-soft); min-width: 0; overflow: hidden;
}
.journal-post__meta { display: flex; justify-content: space-between; gap: 12px; align-items: start; margin-bottom: 14px; }
.journal-post__eyebrow { margin: 0 0 6px; color: var(--color-accent); text-transform: uppercase; letter-spacing: .16em; font-size: .76rem; font-weight: 700; }
.journal-post__title { margin: 0; color: var(--color-brand); font-family: var(--font-editorial); font-size: clamp(1.55rem, 2.3vw, 2.2rem); line-height: 1.08; }
.journal-post__date { color: var(--color-muted); font-size: .94rem; white-space: nowrap; }
.journal-post__location { color: var(--color-muted); margin-top: 6px; }
.journal-post__text { margin: 0; color: var(--color-ink); line-height: 1.72; white-space: pre-wrap; }
.journal-post__actions { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 18px; flex-wrap: wrap; }
.journal-post__left, .journal-post__right { display: flex; gap: 10px; flex-wrap: wrap; }
.journal-action {
  border: 1px solid var(--color-line); background: rgba(16,36,58,.03); color: var(--color-brand);
  border-radius: 999px; padding: 10px 14px; font-weight: 700;
}
.journal-action.is-liked { background: rgba(16,36,58,.12); }
.journal-comments { margin-top: 18px; border-top: 1px solid rgba(16,36,58,.08); padding-top: 18px; }
.journal-comments__list { display: grid; gap: 12px; margin-bottom: 14px; }
.journal-comment { padding: 14px 16px; border-radius: 18px; background: rgba(16,36,58,.035); }
.journal-comment strong { display: block; margin-bottom: 4px; color: var(--color-brand); }
.journal-comment p { margin: 0; color: var(--color-muted); line-height: 1.58; }
.journal-comment-form { display: grid; grid-template-columns: 140px minmax(0,1fr) auto; gap: 10px; }
.journal-comment-form input { border: 1px solid rgba(16,36,58,.14); border-radius: 14px; padding: 12px 14px; }
.journal-empty { text-align: center; padding: 46px 18px; color: var(--color-muted); border: 1px dashed rgba(16,36,58,.16); border-radius: 22px; }
.journal-translation-note { color: var(--color-muted); font-size: .88rem; margin-top: 12px; }

@media (max-width: 1120px) {
  .journal-layout { grid-template-columns: 1fr; }
  .journal-side { position: static; }
}
@media (max-width: 700px) {
  .journal-card, .journal-hero__content, .journal-post { padding: 20px; }
  .journal-feed__head, .journal-post__meta, .journal-post__actions { flex-direction: column; align-items: flex-start; }
  .journal-media-preview, .journal-post__media, .journal-comment-form { grid-template-columns: 1fr; }
  .journal-media-preview-item, .journal-post__media-item { aspect-ratio: 16 / 11; }
  .journal-form input[type="file"]::file-selector-button,
  .journal-form input[type="file"]::-webkit-file-upload-button {
    width: 100%;
    margin: 0 0 10px;
  }
}

.journal-post__media-item video, .journal-media-preview-item video { max-height: min(68vh, 620px); }
.journal-post__media-item img, .journal-media-preview-item img { image-rendering: auto; }
.journal-form input[type="file"] { min-height: 56px; }
@media (max-width: 860px) {
  .journal-feed__filters { width: 100%; min-width: 0; }
}

.journal-media-preview--single .journal-media-preview-item,
.journal-post__media--single .journal-post__media-item {
  aspect-ratio: 3 / 4;
}
@media (max-width: 700px) {
  .journal-media-preview--single .journal-media-preview-item,
  .journal-post__media--single .journal-post__media-item {
    aspect-ratio: 4 / 5;
  }
}


/* Final dynamic media polish */

.journal-post__media,
.journal-media-preview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.journal-media-preview--single,
.journal-post__media--single {
  grid-template-columns: minmax(0, 1fr);
}

.journal-media-preview-item,
.journal-post__media-item {
  display: block;
  width: 100%;
  min-width: 0;
  border: 0;
  border-radius: 22px;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
  aspect-ratio: auto;
}

.journal-media-preview-item img,
.journal-post__media-item img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
  object-fit: contain;
  object-position: center;
  border: 0;
  border-radius: 22px;
  background: transparent;
}

.journal-media-preview-item video,
.journal-post__media-item video {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: min(75vh, 820px);
  border: 0;
  border-radius: 22px;
  background: #0d1520;
}

.journal-post__media--single .journal-post__media-item,
.journal-media-preview--single .journal-media-preview-item {
  max-width: 100%;
}

.journal-post__media--single .journal-post__media-item img,
.journal-media-preview--single .journal-media-preview-item img {
  width: 100%;
  height: auto;
}

@media (max-width: 900px) {
  .journal-post__media,
  .journal-media-preview {
    grid-template-columns: 1fr;
  }
}


/* Dynamic height fix for single media cards */
.journal-post__media--single,
.journal-media-preview--single {
  display: block;
}

.journal-post__media--single .journal-post__media-item,
.journal-media-preview--single .journal-media-preview-item {
  display: inline-block;
  width: auto;
  max-width: 100%;
  height: fit-content;
  vertical-align: top;
}

.journal-post__media--single .journal-post__media-item img,
.journal-media-preview--single .journal-media-preview-item img,
.journal-post__media--single .journal-post__media-item video,
.journal-media-preview--single .journal-media-preview-item video {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0;
}

.journal-post__media,
.journal-media-preview {
  align-items: start;
  align-content: start;
}


/* Tighten single-media card height to actual image size */
.journal-media-preview--single .journal-media-preview-item,
.journal-post__media--single .journal-post__media-item {
  aspect-ratio: auto !important;
  height: auto !important;
  min-height: 0 !important;
  align-self: start;
}

.journal-media-preview--single .journal-media-preview-item img,
.journal-post__media--single .journal-post__media-item img,
.journal-media-preview--single .journal-media-preview-item video,
.journal-post__media--single .journal-post__media-item video {
  width: 100%;
  height: auto;
  max-height: none;
}

.journal-post__media {
  align-items: start;
}
