.dcwf-section { width:100%; padding:24px 0; }
.dcwf-container { padding:20px; }
.dcwf-intro { margin-bottom:14px; }
.dcwf-intro-title { margin:0 0 10px; line-height:1.2; }
.dcwf-intro-desc { line-height:1.5; }

.dcwf-grid { display:grid; gap:16px; grid-template-columns:repeat(var(--dcwf-cols-desktop,4), minmax(0,1fr)); }
.dcwf-item { display:flex; gap:12px; min-width:0; align-items:stretch; }
.dcwf-item.image-top { flex-direction:column; }
.dcwf-item.image-left { flex-direction:row; }
.dcwf-item.image-right { flex-direction:row-reverse; }
.dcwf-item {
  transition: transform .22s ease, filter .22s ease;
  transform: translateY(0);
  filter: drop-shadow(0 2px 6px rgba(15, 23, 42, 0.04));
}
.dcwf-item:hover {
  transform: translateY(-4px);
  filter: drop-shadow(0 10px 22px rgba(15, 23, 42, 0.12));
}

.dcwf-image-wrap { display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.dcwf-image-link { display:block; line-height:0; }
.dcwf-image { max-width:100%; height:auto; display:block; object-fit:cover; transition: transform .28s ease; transform: scale(1); }
.dcwf-item:hover .dcwf-image { transform: scale(1.03); }
.dcwf-image.dcwf-format-original { aspect-ratio:auto; border-radius:0; object-fit:contain; }
.dcwf-image.dcwf-format-circle { aspect-ratio:1/1; border-radius:50%; }
.dcwf-image.dcwf-format-1-1 { aspect-ratio:1/1; border-radius:0; }
.dcwf-image.dcwf-format-16-9 { aspect-ratio:16/9; border-radius:0; }
.dcwf-image.dcwf-format-9-16 { aspect-ratio:9/16; border-radius:0; }
.dcwf-image.dcwf-format-4-3 { aspect-ratio:4/3; border-radius:0; }
.dcwf-image.dcwf-format-3-4 { aspect-ratio:3/4; border-radius:0; }
.dcwf-image.dcwf-format-3-2 { aspect-ratio:3/2; border-radius:0; }
.dcwf-image.dcwf-format-2-3 { aspect-ratio:2/3; border-radius:0; }
.dcwf-image.dcwf-format-3-1 { aspect-ratio:3/1; border-radius:0; }
.dcwf-image.dcwf-format-2-1 { aspect-ratio:2/1; border-radius:0; }
.dcwf-image.dcwf-format-1-2 { aspect-ratio:1/2; border-radius:0; }
.dcwf-image.dcwf-format-2-4 { aspect-ratio:2/4; border-radius:0; }

.dcwf-content { flex:1; min-width:0; padding:16px; display:flex; flex-direction:column; gap:10px; position:relative; }
.dcwf-item.embed-overlay.image-top .dcwf-content { padding-top:64px; }
.dcwf-item.embed-overlay.image-left .dcwf-content { padding-left:64px; }
.dcwf-item.embed-overlay.image-right .dcwf-content { padding-right:64px; }
.dcwf-item.embed-overlay .dcwf-image-wrap { position:relative; z-index:2; }
.dcwf-item.embed-overlay.image-top .dcwf-image-wrap { margin-bottom:-50px; }
.dcwf-item.embed-overlay.image-left .dcwf-image-wrap { margin-right:-50px; }
.dcwf-item.embed-overlay.image-right .dcwf-image-wrap { margin-left:-50px; }

/* Osadz w obrebie content: odstep od krawedzi calego boxa */
.dcwf-item.embed-inside { padding:16px; }
.dcwf-item.embed-inside .dcwf-image-wrap { align-self:center; }
.dcwf-item.embed-inside.image-top .dcwf-content { padding-top:12px; }
.dcwf-item.embed-inside.image-left .dcwf-content { padding-left:12px; }
.dcwf-item.embed-inside.image-right .dcwf-content { padding-right:12px; }

.dcwf-title { margin:0; line-height:1.3; }
.dcwf-title-link { color:inherit; text-decoration:none; }
.dcwf-title-link:hover { text-decoration:underline; }
.dcwf-desc p { margin:0 0 8px; }
.dcwf-desc p:last-child { margin-bottom:0; }

.dcwf-cta-wrap.align-left { text-align:left; }
.dcwf-cta-wrap.align-center { text-align:center; }
.dcwf-cta-wrap.align-right { text-align:right; }
.dcwf-cta { display:inline-block; padding:10px 16px; border-radius:8px; text-decoration:none; transition:all .2s ease; }
.dcwf-cta:hover { background:var(--dcwf-cta-hover-bg) !important; color:var(--dcwf-cta-hover-color) !important; }

.dcwf-rating { display:flex; gap:4px; margin-top:4px; font-size:var(--dcwf-rating-size,16px); line-height:1; }
.dcwf-rating.align-left { justify-content:flex-start; }
.dcwf-rating.align-center { justify-content:center; }
.dcwf-rating.align-right { justify-content:flex-end; }
.dcwf-star { color:rgba(148, 163, 184, .5); }
.dcwf-star.is-on { color:var(--dcwf-rating-color, #f6c453); }
