/* Rstudio Blog Carousel / Gallery — isolated styles for Elementor Free. */
.rstudio-posts {
  --rst-cols-desktop: 3;
  --rst-cols-tablet: 2;
  --rst-cols-mobile: 1;
  --rst-rows-desktop: 1;
  --rst-rows-tablet: 1;
  --rst-rows-mobile: 1;
  --rst-active-cols: var(--rst-cols-desktop);
  --rst-active-rows: var(--rst-rows-desktop);
  --rst-gap: 20px;
  --rst-hover-speed: 280ms;
  width: 100%;
  min-width: 0;
  position: relative;
  box-sizing: border-box;
}
.rstudio-posts *, .rstudio-posts *::before, .rstudio-posts *::after { box-sizing: border-box; }
.rstudio-posts [hidden] { display: none !important; }
.rstudio-posts-viewport { width: 100%; overflow: hidden; }
.rstudio-posts-track { width: 100%; }
/* Without JavaScript, still display every post in a usable grid. */
.rstudio-posts:not(.rstudio-posts--ready) .rstudio-posts-track {
  display: grid;
  grid-template-columns: repeat(var(--rst-active-cols), minmax(0, 1fr));
  gap: var(--rst-gap);
}
.rstudio-posts--ready .rstudio-posts-track { display: flex; align-items: stretch; transition: transform .42s ease; will-change: transform; }
.rstudio-posts-page { min-width: 0; width: 100%; flex: 0 0 100%; }
.rstudio-posts-page-grid { display: grid; grid-template-columns: repeat(var(--rst-active-cols), minmax(0, 1fr)); gap: var(--rst-gap); align-items: stretch; }
.rstudio-posts--grid .rstudio-posts-track { display: block; transform: none !important; }
.rstudio-posts--grid .rstudio-posts-page:not(.is-current) { display: none; }
.rstudio-post-card { min-width: 0; overflow: hidden; border-radius: 8px; margin: 0; }
.rstudio-post-media { position: relative; display: block; width: 100%; aspect-ratio: 3 / 2; background: #d6d8dc; overflow: hidden; }
.rstudio-post-media--empty { background: linear-gradient(135deg, #283747, #778895); }
.rstudio-post-image { display: block; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; object-position: center; }
/* Gallery: all tiles 3:2; centered title and 40% black overlay by default. */
.rstudio-post-card--gallery { aspect-ratio: 3 / 2; }
.rstudio-gallery-link { position: relative; display: block; width: 100%; height: 100%; text-decoration: none !important; color: #fff; outline-offset: -3px; }
.rstudio-post-card--gallery .rstudio-post-media { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.rstudio-gallery-overlay { position: absolute; inset: 0; pointer-events: none; background: #000; --rst-overlay-opacity: .4; opacity: var(--rst-overlay-opacity); transition: opacity var(--rst-hover-speed) ease; }
.rstudio-post-card--gallery .rstudio-post-title {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  margin: 0 !important; padding: 16px 20px; width: 100%;
  color: #fff; font-size: clamp(16px, 1.75vw, 26px); font-weight: 700;
  line-height: 1.25; text-align: center; overflow-wrap: anywhere;
  text-shadow: 0 1px 5px rgba(0,0,0,.25); pointer-events: none;
  transition: opacity var(--rst-hover-speed) ease;
}
@media (hover: hover) and (pointer: fine) {
  .rstudio-post-card--gallery:hover .rstudio-gallery-overlay,
  .rstudio-post-card--gallery:hover .rstudio-post-title { opacity: 0; }
  .rstudio-posts--zoom .rstudio-post-card--gallery:hover .rstudio-post-image { transform: scale(1.06); }
}
.rstudio-posts--zoom .rstudio-post-card--gallery .rstudio-post-image { transition: transform .38s ease; }
/* On keyboard focus, keep title and overlay readable; on touch both stay visible. */
.rstudio-post-card--gallery:focus-within .rstudio-gallery-overlay { opacity: var(--rst-overlay-opacity); }
.rstudio-post-card--gallery:focus-within .rstudio-post-title { opacity: 1; }
/* Classic card */
.rstudio-post-card--classic { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid rgba(0,0,0,.07); }
.rstudio-classic-image-link { display: block; line-height: 0; }
.rstudio-classic-body { display: flex; flex-direction: column; flex: 1; gap: 10px; padding: 18px 20px 22px; color: #555; }
.rstudio-post-date { font-size: 13px; opacity: .78; }
.rstudio-post-card--classic .rstudio-post-title { margin: 0 !important; font-size: 21px; font-weight: 700; line-height: 1.3; color: #222; }
.rstudio-post-card--classic .rstudio-post-title a { color: inherit; text-decoration: none; }
.rstudio-post-excerpt { font-size: 15px; line-height: 1.55; margin: 0 !important; }
.rstudio-read-more { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 6px; color: #1b5691; text-decoration: none; font-weight: 700; }
.rstudio-read-more:hover, .rstudio-post-card--classic .rstudio-post-title a:hover { text-decoration: underline; }
/* Navigation, placed below the images so it never covers titles. */
.rstudio-posts-arrows { display: flex; gap: 10px; justify-content: center; margin-top: 20px; }
.rstudio-posts-prev, .rstudio-posts-next { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; border: 1px solid #d9d9d9; background: #fff; color: #222; padding: 0; width: 38px; height: 38px; border-radius: 50%; line-height: 1; font-family: inherit; font-size: 30px; font-weight: 400; }
.rstudio-posts-prev:hover:not(:disabled), .rstudio-posts-next:hover:not(:disabled) { background: #222; color: #fff; border-color: #222; }
.rstudio-posts-prev:disabled, .rstudio-posts-next:disabled { opacity: .3; cursor: default; }
.rstudio-posts-dots { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; margin-top: 15px; }
.rstudio-posts-dot { display: inline-block; border: 0; border-radius: 50%; cursor: pointer; width: 9px; height: 9px; background: #b2b2b2; padding: 0; }
.rstudio-posts-dot.is-active { background: #222; transform: scale(1.18); }
.rstudio-posts--ready.rstudio-posts--carousel .rstudio-posts-viewport { touch-action: pan-y; }
.rstudio-posts-empty { margin: 0; color: #555; }
@media (max-width: 1024px) {
  .rstudio-posts { --rst-active-cols: var(--rst-cols-tablet); --rst-active-rows: var(--rst-rows-tablet); }
}
@media (max-width: 767px) {
  .rstudio-posts { --rst-active-cols: var(--rst-cols-mobile); --rst-active-rows: var(--rst-rows-mobile); }
  .rstudio-post-card--gallery .rstudio-post-title { font-size: 18px; padding: 12px; }
  .rstudio-classic-body { padding: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .rstudio-posts--ready .rstudio-posts-track, .rstudio-gallery-overlay, .rstudio-post-title, .rstudio-post-image { transition: none !important; }
}

/* The screen-reader status remains accessible even with themes lacking a utility class. */
.rstudio-posts .rstudio-posts-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
