/* Ribbonline Editorial Latest 2.2.0 | GPL-2.0-or-later
 * One integrated layout per mode. No columns, lane wrappers, fades, or transitions.
 * Baseline styles also keep pre-V2 cached markup readable until URL cache purge.
 * Every rule is scoped to this widget; Elementor's saved selectors can override
 * typography, borders and spacing without an !important contest.
 */
.rln-el-latest {
  --rln-columns: 4;
  --rln-column-gap: 18px;
  --rln-row-gap: 20px;
  --rln-image-gap: 8px;
  width: 100%;
  min-width: 0;
  color: #202329;
}
.rln-el-latest, .rln-el-latest * { box-sizing: border-box; }
/* Observed Elementor bottom alignment makes the news block's top depend on
 * its own changing height. Only a column containing this one widget is pinned.
 * !important is limited to these two confirmed conflicting parent properties.
 */
.elementor-column > .elementor-widget-wrap:has(> .elementor-widget-rln_editorial_latest:only-child) {
  align-content: flex-start !important;
  align-items: flex-start !important;
}

.rln-el-latest .rln-el-widget-heading {
  margin: 0 0 24px;
  padding: 0;
  font-size: 23px;
  line-height: 1.3;
  font-weight: 600;
}
.rln-el-latest .rln-el-grid {
  display: grid;
  position: relative;
  grid-template-columns: repeat(var(--rln-columns), minmax(0, 1fr));
  column-count: auto;
  gap: var(--rln-row-gap) var(--rln-column-gap);
  align-items: start;
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
  direction: inherit;
}
.rln-el-latest.rln-el-latest--editorial .rln-el-grid {
  column-gap: var(--rln-ed-column-gap, var(--rln-column-gap));
  row-gap: var(--rln-ed-row-gap, var(--rln-row-gap));
}
.rln-el-latest .rln-el-grid > .rln-el-card {
  display: block;
  position: relative;
  float: none;
  clear: none;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0 solid transparent;
  background: transparent;
  box-shadow: none;
  overflow-wrap: anywhere;
}
.rln-el-latest.rln-el-latest--editorial .rln-el-grid[data-rln-masonry="ready"] {
  display: block;
}
.rln-el-latest.rln-el-latest--editorial .rln-el-grid[data-rln-masonry="ready"] > .rln-el-card {
  position: absolute;
  width: var(--rln-card-width);
}
.rln-el-latest .rln-el-card > .rln-el-image-link {
  display: block;
  position: relative;
  float: none;
  width: 100%;
  height: auto;
  min-height: 0;
  margin: 0 0 var(--rln-image-gap);
  padding: 0;
  overflow: hidden;
  line-height: 0;
  text-decoration: none;
  /* SmartMag sets a { transition: all .25s }. That animates link width
   * and inherited font sizes while Masonry is measuring a responsive change. */
  transition: none;
}
.rln-el-latest.rln-el-latest--editorial .rln-el-card > .rln-el-image-link {
  margin-bottom: var(--rln-ed-image-gap, var(--rln-image-gap));
}
.rln-el-latest .rln-el-image-link img {
  display: block;
  position: static;
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  object-fit: contain;
  /* SmartMag's .lazyload/.lazyloading rules otherwise fade these images. */
  opacity: 1;
  transition: none;
}
/* Aspect ratio is emitted from WordPress metadata on both link and image.
 * The frame reserves space even when a lazy loader inserts a square placeholder.
 * Unknown external dimensions use natural flow; no invented fixed height.
 */
.rln-el-latest .rln-el-image-link.rln-el-ed-portrait { aspect-ratio: 4 / 5; }
.rln-el-latest .rln-el-image-link.rln-el-ed-square { aspect-ratio: 1 / 1; }
.rln-el-latest .rln-el-image-link.rln-el-ratio-square { aspect-ratio: 1 / 1; }
.rln-el-latest .rln-el-image-link.rln-el-ratio-four3 { aspect-ratio: 4 / 3; }
.rln-el-latest .rln-el-image-link.rln-el-ratio-wide { aspect-ratio: 16 / 9; }
.rln-el-latest .rln-el-image-link.rln-el-mix-square { aspect-ratio: 1 / 1; }
.rln-el-latest .rln-el-image-link.rln-el-mix-four3 { aspect-ratio: 4 / 3; }
.rln-el-latest .rln-el-image-link.rln-el-mix-wide { aspect-ratio: 16 / 9; }
.rln-el-latest .rln-el-image-link.rln-el-mix-portrait { aspect-ratio: 4 / 5; }
.rln-el-latest .rln-el-image-link:not(.rln-el-ratio-natural) img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rln-el-latest .rln-el-category {
  margin: 0 0 5px;
  padding: 0;
  color: #59636f;
  font-size: 11px;
  line-height: 1.4;
}
.rln-el-latest .rln-el-title {
  display: block;
  position: static;
  margin: 0 0 6px;
  padding: 0;
  min-height: 0;
  color: #1b1e23;
  font-family: inherit;
  font-size: var(--rln-ed-title-size, 15px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.02em;
  text-transform: none;
  overflow-wrap: anywhere;
}
.rln-el-latest .rln-el-title a {
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-decoration: none;
  transition: none;
}
.rln-el-latest .rln-el-title a:hover { color: #a52e4c; }
.rln-el-latest a:focus-visible { outline: 2px solid #a52e4c; outline-offset: 3px; }
.rln-el-latest .rln-el-meta {
  display: block;
  position: static;
  margin: 0 0 7px;
  padding: 0;
  color: #626972;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.45;
}
.rln-el-latest .rln-el-excerpt {
  display: block;
  position: static;
  margin: 0 0 7px;
  padding: 0;
  color: #515963;
  font-size: var(--rln-ed-excerpt-size, 13px);
  font-weight: 400;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
/* Only the terminal photograph in a column receives a measured frame height.
 * Its original aspect-ratio property remains readable by the layout engine.
 * No transitions: responsive updates must not animate or fade photographs.
 */
.rln-el-latest .rln-el-image-link.rln-el-bottom-photo {
  height: var(--rln-bottom-photo-height);
  overflow: hidden;
}
.rln-el-latest .rln-el-image-link.rln-el-bottom-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rln-el-latest .rln-el-card > :last-child { margin-bottom: 0; }
.rln-el-latest .rln-el-empty { margin: 0; padding: 16px 0; color: #626972; font-size: 13px; }
@media (max-width: 1024px) { .rln-el-latest { --rln-columns: 2; } }
@media (max-width: 767px) { .rln-el-latest { --rln-columns: 1; } }
@media print {
  .rln-el-latest.rln-el-latest--editorial .rln-el-grid[data-rln-masonry="ready"] { display: block; height: auto !important; }
  .rln-el-latest.rln-el-latest--editorial .rln-el-grid[data-rln-masonry="ready"] > .rln-el-card {
    position: relative; left: auto !important; top: auto !important; width: 100%; break-inside: avoid; margin-bottom: 20px;
  }
}
