/*
 * dcl-continut: portofoliu, blocuri reutilizabile, blocuri plutitoare, widget-uri.
 * Culorile vin din variabilele temei (--c-*), cu valori de rezervă.
 */

/* ---------- blocuri reutilizabile și zone ---------- */
.dcl-bloc { display: block; }
.dcl-bloc > :first-child { margin-top: 0; }
.dcl-bloc > :last-child { margin-bottom: 0; }
.dcl-zona { display: grid; gap: 28px; }
.dcl-zona-w { min-width: 0; }
.dcl-zona-t { font-size: 1rem; margin: 0 0 12px; }
.dcl-zona--filtre { margin-top: 24px; }
/* lângă filtrele builderului: același fel de titlu ca ale lor (literă de text, majuscule, 15px) */
.dcl-zona--filtre .dcl-zona-t { font-family: inherit; font-size: 15px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 10px; }

/* ---------- filtre ---------- */
.dcl-wf-lista, .dcl-wf-sub { list-style: none; margin: 0; padding: 0; }
.dcl-wf-sub { padding-left: 14px; }
.dcl-wf-lista a {
	display: flex; align-items: center; gap: 8px; padding: 5px 0;
	color: var(--c-text, #222); text-decoration: none; min-height: 32px;
}
.dcl-wf-lista a:hover .dcl-wf-e, .dcl-wf-lista a:focus-visible .dcl-wf-e { text-decoration: underline; }
.dcl-wf-lista a:focus-visible { outline: 2px solid var(--c-accent, #1a56db); outline-offset: 2px; }
.dcl-wf-o.is-activ > a { font-weight: 600; }
.dcl-wf-o.is-gol > a { opacity: .55; }
.dcl-wf-e { flex: 1 1 auto; }
.dcl-wf-n { margin-left: auto; font-size: .85em; color: var(--c-muted, #666); }
.dcl-wf-bifa {
	flex: 0 0 auto; width: 16px; height: 16px; border: 1px solid var(--c-line, #bbb);
	border-radius: 3px; background: var(--c-bg, #fff); position: relative;
}
.is-activ > a > .dcl-wf-bifa { background: var(--c-accent, #1a56db); border-color: var(--c-accent, #1a56db); }
.is-activ > a > .dcl-wf-bifa::after {
	content: ""; position: absolute; left: 5px; top: 1px; width: 4px; height: 9px;
	border: solid var(--c-on-accent, #fff); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.dcl-wf-swatch { display: flex; flex-wrap: wrap; gap: 8px; }
.dcl-wf-swatch .dcl-wf-sw > a {
	position: relative; padding: 3px; min-height: 0; border: 1px solid var(--c-line, #ccc); border-radius: 999px; gap: 6px;
}
.dcl-wf-sw--eticheta > a, .dcl-wf-sw--select > a { border-radius: var(--c-radius, 4px); padding: 4px 10px; }
.dcl-wf-sw.is-activ > a { border-color: var(--c-ink, #111); box-shadow: 0 0 0 1px var(--c-ink, #111); }
.dcl-wf-sw .dcl-wf-n { margin-left: 0; padding-right: 4px; }
.dcl-wf .dcl-pm-sw-c {
	display: block; width: 24px; height: 24px; border-radius: 50%;
	background: var(--dcl-pm-sw, #ccc); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15);
}
.dcl-wf .dcl-pm-sw-i { display: block; width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.dcl-wf-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.dcl-wf-form select { flex: 1 1 160px; min-height: 40px; }
.dcl-wf-minmax { margin-top: 12px; }
.dcl-wf-minmax input { width: 6.5em; min-height: 38px; }
.dcl-wf-reset { margin: 8px 0 0; font-size: .9em; }
.dcl-js .dcl-wf-form[data-dcl-auto] .dcl-wf-aplica {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.dcl-js .dcl-wf-form[data-dcl-auto] .dcl-wf-aplica:focus { position: static; width: auto; height: auto; clip: auto; }
[aria-busy="true"] { opacity: .55; transition: opacity .15s; pointer-events: none; }
.dcl-continut-anunt {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------- widget-uri de conținut ---------- */
.dcl-w-legaturi { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.dcl-w-autor--centru { text-align: center; }
.dcl-w-autor--centru .dcl-w-legaturi { justify-content: center; }
.dcl-w-autor-img { max-width: 120px; height: auto; display: inline-block; }
.dcl-w-autor-img.is-rotunda { border-radius: 50%; aspect-ratio: 1; object-fit: cover; }
.dcl-w-autor-nume { font-weight: 600; margin: 8px 0 0; }
.dcl-w-autor-rol { margin: 0; color: var(--c-muted, #666); font-size: .9em; }
.dcl-w-banner {
	position: relative; display: flex; overflow: hidden; border-radius: var(--c-radius, 4px);
	color: #fff; text-decoration: none; background: var(--c-ink, #222);
}
.dcl-w-banner--sus { align-items: flex-start; }
.dcl-w-banner--centru { align-items: center; }
.dcl-w-banner--jos { align-items: flex-end; }
.dcl-w-banner-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dcl-w-banner--deschis::before {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(to top, rgba(0, 0, 0, .65), rgba(0, 0, 0, .15));
}
.dcl-w-banner--inchis { color: #111; background: var(--c-soft, #f2f2f2); }
.dcl-w-banner--inchis::before {
	content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(255, 255, 255, .55);
}
.dcl-w-banner-c { position: relative; z-index: 2; padding: 20px; display: grid; gap: 6px; }
.dcl-w-banner-sup { font-size: .8em; text-transform: uppercase; letter-spacing: .08em; }
.dcl-w-banner-t { font-size: 1.35em; font-weight: 700; line-height: 1.2; }
.dcl-w-banner-b { justify-self: start; margin-top: 6px; padding: 8px 14px; border: 1px solid currentColor; border-radius: var(--c-radius, 4px); }
a.dcl-w-banner:hover .dcl-w-banner-b, a.dcl-w-banner:focus-visible .dcl-w-banner-b { text-decoration: underline; }
a.dcl-w-banner:focus-visible { outline: 3px solid var(--c-accent, #1a56db); outline-offset: 2px; }
.dcl-w-galerie { display: grid; grid-template-columns: repeat(var(--dcl-w-col, 3), 1fr); gap: 6px; }
.dcl-w-galerie.is-lipite { gap: 0; }
.dcl-w-galerie img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; height: auto; }
.dcl-w-galerie-l, .dcl-w-x-l { margin: 10px 0 0; }
.dcl-w-x ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.dcl-w-x li p { margin: 0 0 4px; }
.dcl-w-user.is-in { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: center; }
.dcl-w-user.is-in .dcl-w-legaturi { grid-column: 1 / -1; flex-direction: column; gap: 4px; }
.dcl-w-user-av { border-radius: 50%; }
.dcl-w-user-t { margin: 0; }
.dcl-w-cautare { display: flex; gap: 6px; }
.dcl-w-cautare input[type="search"] { flex: 1 1 auto; min-width: 0; min-height: 40px; }
.dcl-w-meniu--orizontal ul { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; padding: 0; margin: 0; }
.dcl-w-meniu--vertical ul { list-style: none; padding: 0; margin: 0; }
.dcl-w-meniu--vertical li a { display: block; padding: 5px 0; }
.dcl-w-meniu--vertical .sub-menu { padding-left: 14px; }

/* ---------- produse din widget-uri ---------- */
.dcl-w-produse { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.dcl-wp { display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: center; }
.dcl-wp-img img { display: block; width: 72px; height: 72px; object-fit: cover; border-radius: var(--c-radius, 4px); }
.dcl-wp-text { display: grid; gap: 2px; min-width: 0; }
.dcl-wp-nume { color: var(--c-text, #222); text-decoration: none; }
.dcl-wp-nume:hover { text-decoration: underline; }
.dcl-wp-pret { font-weight: 600; }
.dcl-wp-pret del { font-weight: 400; color: var(--c-muted, #666); }
.dcl-wp--mic { grid-template-columns: 1fr; }
.dcl-wp-rand { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; text-decoration: none; color: inherit; }
.dcl-wp-rand img { width: 40px; height: 40px; object-fit: cover; border-radius: var(--c-radius, 4px); }

/* ---------- portofoliu ---------- */
.dcl-pf-filtru ul, .dcl-pf-pagini ul { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.dcl-pf-filtru a {
	display: inline-block; padding: 6px 14px; border: 1px solid var(--c-line, #ccc);
	border-radius: 999px; text-decoration: none; color: var(--c-text, #222);
}
.dcl-pf-filtru a.is-on { background: var(--c-ink, #111); border-color: var(--c-ink, #111); color: var(--c-bg, #fff); }
.dcl-pf-grila { display: grid; grid-template-columns: repeat(var(--dcl-pf-col, 3), minmax(0, 1fr)); gap: 24px; }
.dcl-pf-card { position: relative; min-width: 0; }
.dcl-pf-link { display: grid; gap: 10px; align-content: start; color: inherit; text-decoration: none; border-radius: var(--c-radius, 4px); }
.dcl-pf-link:focus-visible { outline: 2px solid var(--c-accent, #1a56db); outline-offset: 4px; }
.dcl-pf-media { display: block; overflow: hidden; border-radius: var(--c-radius, 4px); background: var(--c-soft, #f2f2f2); }
.dcl-pf-img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s; }
.dcl-pf-link:hover .dcl-pf-img { transform: scale(1.03); }
.dcl-pf-text { display: grid; gap: 2px; }
.dcl-pf-titlu { font-weight: 600; font-size: 1.05rem; }
.dcl-pf-link:hover .dcl-pf-titlu { text-decoration: underline; }
.dcl-pf-cat { font-size: .85em; color: var(--c-muted, #666); }
.dcl-pf-card--peste .dcl-pf-link { position: relative; }
.dcl-pf-card--peste .dcl-pf-text {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 16px; color: #fff;
	background: linear-gradient(to top, rgba(0, 0, 0, .75), transparent); border-radius: 0 0 var(--c-radius, 4px) var(--c-radius, 4px);
}
.dcl-pf-card--peste .dcl-pf-cat { color: rgba(255, 255, 255, .9); }
.dcl-pf-pagini { margin-top: 28px; }
.dcl-pf-pagini a, .dcl-pf-pagini span {
	display: inline-flex; min-width: 40px; min-height: 40px; align-items: center; justify-content: center;
	border: 1px solid var(--c-line, #ccc); border-radius: var(--c-radius, 4px); text-decoration: none;
}
.dcl-pf-pagini .is-on { background: var(--c-ink, #111); color: var(--c-bg, #fff); border-color: var(--c-ink, #111); }
.dcl-pf-mai-p { text-align: center; margin-top: 28px; }
.dcl-pf-gol { padding: 24px 0; }
.dcl-pf-proiect .dcl-pf-inapoi { margin: 0 0 6px; font-size: .9em; }
.dcl-pf-imagine { margin: 0 0 28px; }
.dcl-pf-imagine img { width: 100%; height: auto; border-radius: var(--c-radius, 4px); }
.dcl-pf-corp { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 40px; align-items: start; }
.dcl-pf-detalii { padding: 20px; background: var(--c-panel, #f6f6f6); border-radius: var(--c-radius, 4px); }
.dcl-pf-detalii dl { margin: 0 0 12px; display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; }
.dcl-pf-detalii dt { font-weight: 600; }
.dcl-pf-detalii dd { margin: 0; }
.dcl-pf-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin: 36px 0; }
.dcl-pf-galerie img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--c-radius, 4px); display: block; }
.dcl-pf-nav { display: flex; justify-content: space-between; gap: 20px; margin: 36px 0; padding: 20px 0; border-top: 1px solid var(--c-line, #ddd); border-bottom: 1px solid var(--c-line, #ddd); }
.dcl-pf-nav a { text-decoration: none; display: grid; gap: 4px; }
.dcl-pf-nav a span { font-size: .85em; color: var(--c-muted, #666); }
.dcl-pf-nav-urm { margin-left: auto; text-align: right; }
.dcl-pf-asemanatoare { margin: 40px 0; }
.dcl-pf-desc { color: var(--c-muted, #666); }

@media (max-width: 900px) {
	.dcl-pf-grila { grid-template-columns: repeat(min(var(--dcl-pf-col, 3), 2), minmax(0, 1fr)); }
	.dcl-pf-corp { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 560px) {
	.dcl-pf-grila { grid-template-columns: 1fr; }
}

/* ---------- blocuri plutitoare ---------- */
.dcl-plutitor {
	position: fixed; z-index: 9990; width: min(var(--dcl-pl-w, 360px), calc(100vw - 2 * var(--dcl-pl-d, 20px)));
	--dcl-pl-x: 0; --dcl-pl-y: 0;
}
.dcl-plutitor[hidden] { display: none; }
.dcl-plutitor--stanga-sus, .dcl-plutitor--stanga-mijloc, .dcl-plutitor--stanga-jos { left: var(--dcl-pl-d, 20px); }
.dcl-plutitor--dreapta-sus, .dcl-plutitor--dreapta-mijloc, .dcl-plutitor--dreapta-jos { right: var(--dcl-pl-d, 20px); }
.dcl-plutitor--centru-sus, .dcl-plutitor--centru, .dcl-plutitor--centru-jos { left: 50%; --dcl-pl-x: -50%; }
.dcl-plutitor--stanga-sus, .dcl-plutitor--centru-sus, .dcl-plutitor--dreapta-sus { top: var(--dcl-pl-d, 20px); }
/* --dcl-pl-jos îl pune plutitoare.js când un element fix de jos (butonul sau bannerul de cookies) ar sta peste bloc */
.dcl-plutitor--stanga-jos, .dcl-plutitor--centru-jos, .dcl-plutitor--dreapta-jos { bottom: max(var(--dcl-pl-d, 20px), var(--dcl-pl-jos, 0px)); }
.dcl-plutitor--stanga-mijloc, .dcl-plutitor--centru, .dcl-plutitor--dreapta-mijloc { top: 50%; --dcl-pl-y: -50%; }
.dcl-plutitor { transform: translate(var(--dcl-pl-x), var(--dcl-pl-y)); }
.dcl-plutitor--modal { z-index: 9995; }
.dcl-plutitor-fundal { position: fixed; inset: -100vmax; background: rgba(0, 0, 0, .5); z-index: -1; }
.dcl-plutitor-cutie {
	position: relative; max-height: calc(100vh - var(--dcl-pl-d, 20px) - max(var(--dcl-pl-d, 20px), var(--dcl-pl-jos, 0px))); overflow: auto;
	background: var(--dcl-pl-bg, var(--c-bg, #fff)); color: var(--c-text, #222);
	border-radius: var(--c-radius, 6px); box-shadow: 0 10px 40px rgba(0, 0, 0, .2); padding: 20px;
}
/* butonul plutește în colț, iar textul îl ocolește (nu mai trece pe sub el) */
.dcl-plutitor-x {
	float: right; position: relative; margin: -14px -14px 4px 8px; width: 36px; height: 36px; border: 0; border-radius: 50%;
	background: transparent; color: inherit; font-size: 24px; line-height: 1; cursor: pointer;
}
.dcl-plutitor-x:hover { background: rgba(0, 0, 0, .08); }
.dcl-plutitor-x:focus-visible { outline: 2px solid var(--c-accent, #1a56db); outline-offset: 1px; }
.dcl-plutitor-continut > :first-child { margin-top: 0; }
.dcl-plutitor-continut > :last-child { margin-bottom: 0; }
.dcl-plutitor.is-deschis { animation: dcl-pl-apare .3s ease-out both; }
.dcl-plutitor--anim-alunecare.is-deschis { animation-name: dcl-pl-aluneca; }
.dcl-plutitor--anim-marire.is-deschis { animation-name: dcl-pl-mareste; }
.dcl-plutitor--anim-fara.is-deschis { animation: none; }
@keyframes dcl-pl-apare { from { opacity: 0; } to { opacity: 1; } }
@keyframes dcl-pl-aluneca {
	from { opacity: 0; transform: translate(var(--dcl-pl-x), calc(var(--dcl-pl-y) + 24px)); }
	to { opacity: 1; transform: translate(var(--dcl-pl-x), var(--dcl-pl-y)); }
}
@keyframes dcl-pl-mareste {
	from { opacity: 0; transform: translate(var(--dcl-pl-x), var(--dcl-pl-y)) scale(.92); }
	to { opacity: 1; transform: translate(var(--dcl-pl-x), var(--dcl-pl-y)) scale(1); }
}
@media (min-width: 769px) {
	.dcl-plutitor--fara-desktop { display: none !important; }
}
@media (max-width: 768px) {
	.dcl-plutitor--fara-mobil { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
	.dcl-plutitor.is-deschis { animation: none; }
	.dcl-pf-img, [aria-busy="true"] { transition: none; }
	.dcl-pf-link:hover .dcl-pf-img { transform: none; }
}
