@charset "UTF-8";

/* ==========================================================================
   PIAȚA STOMATOLOGICĂ — LISTA PUBLICĂ DE ANUNȚURI
   --------------------------------------------------------------------------
   Referință: docs/design/spec-lista-anunturi.md (Figma 3584:69896)
              DESIGN-SYSTEM.md §10.16 (filtre), §10.19 (pastile), §8 (containere)

   CE NU ESTE AICI, pentru că există deja:
     .ps-card-anunt / --promovat   components/cards.css
     .ps-tab / .ps-tabs            components/tabs.css
     .ps-badge--filtru             components/badges.css
     .ps-paginare                  components/pager.css
     .ps-stare-goala               layout.css §9
     .ps-layout-sidebar            layout.css §4.2
     .ps-checkbox / .ps-radio      components/forms.css

   Fișierul adaugă strict zonele care lipseau: hero-ul listei, bara de filtre,
   panoul lateral, pastilele de filtre active și lista de carduri.

   REGULĂ: numai var(--ps-*). Nicio valoare hexazecimală, niciun px magic în
   afara celor desenate în Figma și marcate ca atare.

   MARCAJE
     [FIGMA]   valoare desenată în machete
     [PROPUS]  valoare inexistentă în design (§12 pct. 8-11 din DESIGN-SYSTEM)
   ========================================================================== */


/* ==========================================================================
   1. HERO + PANOUL DE CĂUTARE
   --------------------------------------------------------------------------
   Banda verde (panoul din layout.css §7), padding 30/40, conținut centrat pe 870px.  [FIGMA]
   ========================================================================== */

.ps-anunturi__hero { padding-block: var(--ps-space-30); }

.ps-anunturi__hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ps-space-20);
}

/* H1-ul lipsește din Figma (banda are doar panoul), dar o pagină fără <h1> nu
   este nici accesibilă, nici indexabilă. Se scrie pe verdele benzii.  [PROPUS] */
.ps-anunturi__titlu {
  margin: 0;
  font: var(--ps-type-h2);
  color: var(--ps-text-inverse);
  text-align: center;
}


/* ==========================================================================
   2. BARA DE REZULTATE
   --------------------------------------------------------------------------
   Rând de unelte sub panoul verde: transparent, în același container ca grila
   de dedesubt (filtre | rezultate | panou lateral), ca textul să înceapă pe
   aceeași verticală cu coloana de filtre. Fără bandă albă pe toată lățimea și
   fără umbră: panoul verde de deasupra e retras de la margini, iar o bandă
   full-bleed lipită de el arăta ca o fâșie ruptă din pagină.
   ========================================================================== */

.ps-bara-filtre {
  padding-block: var(--ps-space-25) 0;
}

/* aceleași margini ca .ps-container (pe care îl poartă și marcajul), ca să stea
   aliniată cu grila și unde view-ul nu pune clasa */
.ps-bara-filtre__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ps-space-15);
  inline-size: 100%;
  max-inline-size: var(--ps-container);
  min-height: 44px;
  margin-inline: auto;
  padding-inline: var(--ps-gutter);
}
/* aceiași pași ca .ps-container din layout.css, care altfel ar fi suprascriși aici */
@media (max-width: 767.98px) { .ps-bara-filtre__inner { padding-inline: var(--ps-space-15); } }
@media (max-width: 575.98px) { .ps-bara-filtre__inner { padding-inline: var(--ps-space-10); } }

.ps-bara-filtre__rezultate {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: var(--ps-space-10);
  row-gap: 2px;
  margin: 0;
  min-width: 0;
  font: var(--ps-fw-semibold) 15px/1.3 var(--ps-font-sans);
  letter-spacing: -.005em;
  color: var(--ps-text);
}

/* „Rezultatele 21–40 din 137" — informație secundară, nu concurează cu totalul */
.ps-bara-filtre__interval {
  font: var(--ps-type-caption);
  color: var(--ps-text-faint-aa);
}
.ps-bara-filtre__interval::before {
  content: "·";
  margin-inline-end: var(--ps-space-10);
}



/* ==========================================================================
   3. PASTILELE DE FILTRE ACTIVE
   ========================================================================== */

.ps-filtre-active {
  padding-block: var(--ps-space-15);
}

.ps-filtre-active__lista {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ps-space-10);
  margin: 0;
  padding: 0;
  list-style: none;
}

/* pastila este un <a>: fără subliniere, dar cu tot comportamentul de link */
.ps-filtre-active__pastila {
  text-decoration: none;
  cursor: pointer;
  transition: var(--ps-transition-color);
}
.ps-filtre-active__pastila:hover {
  --ps-badge-bg: var(--ps-primary-soft-hover);         /* var(--ps-c-green-50)  [FIGMA] */
}
.ps-filtre-active__pastila:hover .ps-badge__inchide {
  background: var(--ps-danger);                        /* hover roșu, DESIGN-SYSTEM §10.4 */
  color: var(--ps-text-inverse);
}
.ps-filtre-active__pastila:focus-visible {
  outline: var(--ps-focus-width) solid var(--ps-focus-color);
  outline-offset: var(--ps-focus-offset);
}

/* numele familiei rămâne discret; valoarea poartă informația */
.ps-filtre-active__familie {
  font-weight: var(--ps-fw-regular);
  opacity: .75;
}
.ps-filtre-active__valoare {
  font-weight: var(--ps-fw-medium);
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 24ch;
}

.ps-filtre-active__sterge { margin-inline-start: var(--ps-space-5); }


/* ==========================================================================
   4. PANOUL LATERAL DE FILTRE  (DESIGN-SYSTEM §10.16.A)
   --------------------------------------------------------------------------
   300px, padding 15/30, border #DFDFDF, radius 10px, umbră „card soft".
   ========================================================================== */

.ps-filtre {
  display: flex;
  flex-direction: column;
  gap: var(--ps-space-10);
  padding: var(--ps-space-15) var(--ps-space-30);      /* [FIGMA] */
  background: var(--ps-surface);
  border: var(--ps-border-width) solid var(--ps-border-panel);   /* #DFDFDF  [FIGMA] */
  border-radius: var(--ps-radius-card);
  box-shadow: var(--ps-shadow-card-soft);
}

/* Pe desktop panoul stă fixat sus (.ps-layout-sidebar__aside). Mai înalt decât ecranul, își are
   scroll-ul lui: filtrele de jos se ating fără să derulezi toată lista, iar la capătul lor
   rotița trece la pagină. */
@media (min-width: 992px) {
  .ps-anunturi__filtre {
    max-block-size: calc(100vh - var(--ps-navbar-h) - var(--ps-space-40));
    overflow-y: auto;
    scrollbar-width: thin;
  }
}

.ps-filtre__antet {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ps-space-10);
}

.ps-filtre__titlu {
  margin: 0;
  font: var(--ps-type-label);                          /* 14px/600  [FIGMA] */
  color: var(--ps-text);
}

.ps-filtre__grup {
  margin: 0;
  padding: 0;
  border: 0;
}

/* antet de grup: padding 15/15/10/20, 14px/600  [FIGMA] */
.ps-filtre__legenda {
  display: flex;
  align-items: center;
  gap: var(--ps-space-5);
  padding: var(--ps-space-15) var(--ps-space-15) var(--ps-space-10) var(--ps-space-20);
  font: var(--ps-type-label);
  color: var(--ps-text);
}

.ps-filtre__optiuni {
  display: flex;
  flex-direction: column;
}

/*  Județele sunt ~42, specializările ~20: fără plafon panoul devine mai lung decât
    pagina. Derularea internă păstrează sortarea și butonul de aplicare la vedere. */
.ps-filtre__optiuni--scroll {
  max-height: 280px;                                   /* [PROPUS] */
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

/* câmpurile din panou (listele derulante, căutarea librăriei), aliniate cu bifele și cu prețul */
.ps-filtre__camp { padding-inline: var(--ps-space-20); }
/* coloana îngustă: textul listei rămâne pe un rând, iar specializările lungi se termină în „…” */
.ps-filtre__camp .ps-select {
  padding-inline: var(--ps-space-10) var(--ps-space-30);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* rând de opțiune: padding 10/20, radius 5, space-between  [FIGMA] */
.ps-filtre__rand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ps-space-10);
  padding: var(--ps-space-10) var(--ps-space-20);
  border-radius: var(--ps-radius-control);
  transition: background-color var(--ps-duration) var(--ps-ease);
}
.ps-filtre__rand:hover { background: var(--ps-primary-soft-hover); }   /* var(--ps-c-green-50)  [FIGMA] */
.ps-filtre__rand:has(:focus-visible) { background: var(--ps-primary-soft); }

.ps-filtre__rand--simplu { padding-block: var(--ps-space-15); }

.ps-filtre__eticheta {
  flex: 1 1 auto;
  min-width: 0;
  font: var(--ps-type-body);
  color: var(--ps-text-faint-aa);                      /* variantă AA, §11.3 */
  cursor: pointer;
}
/* opțiunea bifată devine text plin — DESIGN-SYSTEM §10.16 „selectat" */
.ps-filtre__rand:has(:checked) .ps-filtre__eticheta {
  color: var(--ps-text);
  font-weight: var(--ps-fw-medium);
}

.ps-filtre__pret {
  display: flex;
  align-items: center;
  gap: var(--ps-space-6);
  padding-inline: var(--ps-space-20);
}
.ps-filtre__pret-camp {
  flex: 1 1 0;
  min-width: 0;
  padding-inline: var(--ps-space-10);              /* coloana îngustă: să încapă „Până la” */
  appearance: textfield;
  -moz-appearance: textfield;
}
/* fără săgețile de număr: într-un câmp îngust mănâncă locul cifrelor */
.ps-filtre__pret-camp::-webkit-inner-spin-button,
.ps-filtre__pret-camp::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.ps-filtre__pret-linie {
  flex: none;
  color: var(--ps-text-faint-aa);
}

/* nValoare ține și RON, și EUR: nota nu e decorativă, e o limitare reală */
.ps-filtre__nota {
  margin: var(--ps-space-5) 0 0;
  padding-inline: var(--ps-space-20);
  font: var(--ps-type-caption);
  color: var(--ps-text-faint-aa);
}

/* „Șterge” și „Aplică”, unul lângă altul, ca la filtrele avansate din CautDentistBun */
.ps-filtre__actiuni {
  display: flex;
  align-items: center;
  gap: var(--ps-space-10);
  padding-top: var(--ps-space-15);
}
.ps-filtre__actiuni > .ps-btn--primar { flex: 1 1 auto; }

/* butonul de închidere apare doar în varianta sertar (arătat din JS) */
.ps-filtre__inchide[hidden] { display: none; }


/* ==========================================================================
   5. LISTA DE CARDURI  (spec §1.2: coloană, gap 25px)
   ========================================================================== */

.ps-lista-anunturi {
  display: flex;
  flex-direction: column;
  gap: var(--ps-space-25);                             /* [FIGMA] */
  margin: 0;
  padding: 0;
  list-style: none;                                    /* <ol> pentru ordine, fără marcatori */
}

.ps-lista-anunturi__item { min-width: 0; }

/*  „Stretched link" — cardul întreg este clicabil, dar butoanele proprii rămân
    deasupra. Nu se înfășoară butoane într-un <a>: ar fi HTML invalid.
    (spec §6.2, DESIGN-SYSTEM §10.10) */
.ps-card-anunt__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: var(--ps-z-base);
}
.ps-card-anunt__favorit,
.ps-card-anunt__aplica {
  position: relative;
  z-index: var(--ps-z-raised);
}

/* „Negociabil" este o precizare a prețului, nu un al doilea preț */
.ps-card-anunt__negociabil {
  font: var(--ps-type-caption);
  color: var(--ps-text-faint-aa);
}

/* starea goală: sugestiile de relaxare */
.ps-lista-anunturi__sugestii {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--ps-space-10);
  margin: 0;
  padding: 0;
  list-style: none;
}


/* ==========================================================================
   6. LAYOUTUL PAGINII
   ========================================================================== */

.ps-anunturi { padding-block: var(--ps-space-20) var(--ps-space-50); }

.ps-anunturi__layout { align-items: start; }

.ps-anunturi__rezultate {
  display: flex;
  flex-direction: column;
  gap: var(--ps-space-30);
}


/* ==========================================================================
   6b. SERTARUL DE FILTRE  — anunțuri, evenimente, librărie
   --------------------------------------------------------------------------
   Pe toate ecranele panoul de filtre e un sertar din dreapta, ca filtrele avansate
   din CautDentistBun: se deschide din butonul „Filtre", peste pagina întunecată,
   cu „Șterge” și „Aplică” fixate jos. Rămâne în același loc din DOM (ordinea de
   tabulare nu se strică); filtre-anunturi.js îl deschide și pune fundalul.
   ========================================================================== */

/*  Sertarul se aplică DOAR când filtre-anunturi.js a preluat panoul (`data-ps-filtre-js`).
    Fără JavaScript atributul nu apare niciodată, panoul rămâne în flux și complet
    utilizabil — condiție ca pagina să nu depindă de JS. */
.ps-filtre-sertar[data-ps-filtre-js] {
  position: fixed;
  inset-block: 0;
  inset-inline: auto 0;
  z-index: var(--ps-z-modal);
  inline-size: clamp(320px, calc((100vw - 1100px) / 2), 460px);
  max-inline-size: 100%;
  max-block-size: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  background: var(--ps-surface);
  box-shadow: -4px 0 20px rgb(var(--ps-rgb-umbra) / .15);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform var(--ps-duration-slow) var(--ps-ease), visibility 0s linear var(--ps-duration-slow);
}
.ps-filtre-sertar[data-ps-filtre-js][data-ps-deschis] {
  transform: none;
  visibility: visible;
  transition: transform var(--ps-duration-slow) var(--ps-ease);
}

/* fundalul întunecat de sub sertar; clicul pe el închide sertarul (filtre-anunturi.js) */
.ps-filtre-fundal {
  position: fixed;
  inset: 0;
  z-index: calc(var(--ps-z-modal) - 1);
  background: rgb(var(--ps-rgb-umbra) / .45);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--ps-duration-slow) var(--ps-ease), visibility 0s linear var(--ps-duration-slow);
}
.ps-filtre-fundal[data-ps-deschis] {
  opacity: 1;
  visibility: visible;
  transition: opacity var(--ps-duration-slow) var(--ps-ease);
}

.ps-filtre-sertar[data-ps-filtre-js] > .ps-filtre {
  min-height: 100%;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* în sertar se derulează doar sertarul: listele lungi nu mai au scroll propriu, altfel
   tragerea cu degetul peste ele le derula doar pe ele și se oprea acolo
   (overscroll-behavior: contain), iar sertarul părea blocat */
.ps-filtre-sertar[data-ps-filtre-js] .ps-filtre__optiuni--scroll {
  max-height: none;
  overflow: visible;
}

/* titlul și „închide” rămân sus cât derulezi filtrele */
.ps-filtre-sertar[data-ps-filtre-js] .ps-filtre__antet {
  position: sticky;
  inset-block-start: 0;
  z-index: 1;
  margin: calc(var(--ps-space-15) * -1) calc(var(--ps-space-30) * -1) 0;
  padding: var(--ps-space-10) var(--ps-space-20) var(--ps-space-10) var(--ps-space-30);
  border-block-end: var(--ps-border-width) solid var(--ps-border-soft);
  background: var(--ps-surface);
}
.ps-filtre-sertar[data-ps-filtre-js] .ps-filtre__titlu { font: var(--ps-type-h3); }

/* „Șterge” și „Aplică” rămân jos cât derulezi filtrele */
.ps-filtre-sertar[data-ps-filtre-js] .ps-filtre__actiuni {
  position: sticky;
  inset-block-end: 0;
  z-index: 1;
  margin: auto calc(var(--ps-space-30) * -1) calc(var(--ps-space-15) * -1);
  padding: var(--ps-space-15) var(--ps-space-30) calc(var(--ps-space-15) + env(safe-area-inset-bottom, 0px));
  border-block-start: var(--ps-border-width) solid var(--ps-border-soft);
  background: var(--ps-surface);
}

/* pe telefon sertarul ocupă tot ecranul */
@media (max-width: 767.98px) {
  .ps-filtre-sertar[data-ps-filtre-js] { inline-size: 100%; }
}

/* Cu sertarul, coloana de filtre dispare și lista ocupă locul ei. Pe anunțuri, panoul lateral
   (§7c) devine coloana din dreapta de la lg în sus. */
.ps-coloane:has(> .ps-filtre-sertar[data-ps-filtre-js]),
.ps-anunturi__layout:has(> .ps-filtre-sertar[data-ps-filtre-js]) { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) {
  .ps-anunturi__layout:has(> .ps-filtre-sertar[data-ps-filtre-js]):has(> .ps-panou-anunturi) {
    grid-template-columns: minmax(0, 1fr) var(--ps-sidebar);
    gap: var(--ps-space-40);
  }
  .ps-anunturi__layout:has(> .ps-filtre-sertar[data-ps-filtre-js]) > .ps-panou-anunturi { grid-column: auto; }
}


/* ==========================================================================
   7. RESPONSIVE  [PROPUS] — machetele există doar la 1920 (DESIGN-SYSTEM §12 pct. 11)
   ========================================================================== */

@media (max-width: 767.98px) {
  .ps-bara-filtre { padding-block-start: var(--ps-space-20); }

  /* totalul și intervalul unul sub altul, „Filtre” pe același rând, în dreapta */
  .ps-bara-filtre__rezultate {
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
  }
  .ps-bara-filtre__interval::before { content: none; }
  .ps-bara-filtre__buton {
    flex: none;
    margin-inline-start: auto;
  }

  /* filtrele active pe un singur rând, derulabil, cu „Șterge toate filtrele” la capăt */
  .ps-filtre-active__lista {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .ps-filtre-active__lista::-webkit-scrollbar { display: none; }
  .ps-filtre-active__lista > li { flex: none; }
  .ps-filtre-active__sterge { white-space: nowrap; }

  .ps-anunturi__titlu { font: var(--ps-type-h3); color: var(--ps-text-inverse); }
}


/* ==========================================================================
   7b. RECLAMELE INTERCALATE                                         [PROPUS]
   --------------------------------------------------------------------------
   CUtil.getHtmlReclama3Grupate / getHtmlReclamaCuVideo / getHtmlReclamaBanner.
   Apar doar fără Platform:HidesPaidAdvertising (implicit ascunse, ca pe PS/PM).
   ========================================================================== */

.ps-reclama-lista { margin: 0; }

.ps-reclama-lista__grupate {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ps-space-15);
  margin: 0;
  padding: 0;
  list-style: none;
}

.ps-reclama-lista__banner {
  display: block;
  overflow: hidden;
  border-radius: var(--ps-radius-card);
  box-shadow: var(--ps-shadow-card);
  transition: box-shadow var(--ps-duration-slow) var(--ps-ease);
}

.ps-reclama-lista__banner:hover,
.ps-reclama-lista__banner:focus-visible { box-shadow: var(--ps-shadow-card-soft); }

.ps-reclama-lista__banner img {
  display: block;
  width: 100%;
  height: auto;
}

.ps-reclama-lista__articol {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--ps-space-20);
  padding: var(--ps-space-15);
  background: var(--ps-surface);
  border: var(--ps-border-width) solid var(--ps-border-panel);
  border-radius: var(--ps-radius-card);
  box-shadow: var(--ps-shadow-card);
}

.ps-reclama-lista__imagine {
  flex: 0 0 auto;
  width: 80px;                                         /* ca avatarul cardului */
  height: 80px;
  object-fit: cover;
  border-radius: var(--ps-radius-card);
}

.ps-reclama-lista__corp { flex: 1 1 auto; min-width: 0; }

.ps-reclama-lista__corp .ps-eyebrow { margin: 0; }

.ps-reclama-lista__titlu {
  margin: 0;
  font: var(--ps-type-card-title);
  color: var(--ps-text);
}

/* Titlul acoperă tot articolul, ca la .ps-card-anunt__link. */
.ps-reclama-lista__link { color: inherit; text-decoration: none; }
.ps-reclama-lista__link::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
.ps-reclama-lista__link:focus-visible { outline: none; }
.ps-reclama-lista__articol:focus-within { box-shadow: var(--ps-shadow-card-soft); }

.ps-reclama-lista__data {
  margin: var(--ps-space-5) 0 0;
  font: var(--ps-type-small);
  color: var(--ps-text-muted);
}

.ps-reclama-lista__actiune { flex: 0 0 auto; }

/* Dialogul video (modalReclamaVideo) */
.ps-reclama-video { width: min(800px, calc(100vw - var(--ps-space-40))); max-width: 800px; }

.ps-reclama-video__corp { padding: var(--ps-space-15) var(--ps-space-30); }

.ps-reclama-video__clip {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--ps-radius-card);
  background: var(--ps-c-black);
}

.ps-reclama-video__subsol {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ps-space-10);
  padding: var(--ps-space-15) var(--ps-space-30) var(--ps-space-20);
}

@media (max-width: 767.98px) {
  .ps-reclama-lista__grupate { grid-template-columns: minmax(0, 1fr); }

  .ps-reclama-lista__articol { flex-wrap: wrap; }
  .ps-reclama-lista__actiune { margin-inline-start: auto; }

  .ps-reclama-video__corp,
  .ps-reclama-video__subsol { padding-inline: var(--ps-space-15); }
}


/* ==========================================================================
   7c. PANOUL LATERAL + INVITAȚIA DE CONT                            [PROPUS]
   --------------------------------------------------------------------------
   ControlListaAnunturi: divReclama1Anunturi, divReclama2Anunturi (doar pe
   telefon), divReclameUltimeleArticole — doar pe PS; divCreeazaCont2 pentru
   vizitatori. Panoul e a treia coloană de la xxl; între lg și xxl stă sub
   listă, în coloana rezultatelor; sub lg, după listă.
   ========================================================================== */

@media (min-width: 1440px) {
  .ps-anunturi__layout:has(> .ps-panou-anunturi) {
    grid-template-columns: var(--ps-sidebar) minmax(0, 1fr) var(--ps-sidebar);
    gap: var(--ps-space-40);
  }
}

@media (min-width: 992px) and (max-width: 1439.98px) {
  .ps-anunturi__layout > .ps-panou-anunturi { grid-column: 2; }
}

.ps-panou-anunturi {
  display: grid;
  align-content: start;
  gap: var(--ps-space-20);
  min-width: 0;
}

.ps-panou-anunturi__carduri,
.ps-panou-anunturi__mobil,
.ps-panou-anunturi__articole {
  display: grid;
  gap: var(--ps-space-20);
  margin: 0;
  padding: 0;
  list-style: none;
}

.ps-panou-anunturi__articole { gap: var(--ps-space-10); }

.ps-panou-anunturi__mobil { display: none; }

.ps-panou-anunturi__blog {
  display: grid;
  gap: var(--ps-space-15);
  min-width: 0;
}

.ps-panou-anunturi__actiune {
  font: var(--ps-type-label);
  color: var(--ps-green-link);
}

/* Bannerele (Caut Dentist Bun; iStoma / iStoma LTD pe telefon) */
.ps-panou-anunturi__banner {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--ps-radius-card);
  box-shadow: var(--ps-shadow-card);
  color: var(--ps-text);
  text-decoration: none;
  transition: box-shadow var(--ps-duration-slow) var(--ps-ease);
}

.ps-panou-anunturi__banner:hover,
.ps-panou-anunturi__banner:focus-visible { box-shadow: var(--ps-shadow-hover); }

.ps-panou-anunturi__banner img {
  display: block;
  width: 100%;
  height: auto;
}

/* Ca .adauga-anunt din controlul vechi: apare la hover (mereu pe ecranele tactile). */
.ps-panou-anunturi__banner-actiune {
  position: absolute;
  inset-inline: var(--ps-space-20);
  inset-block-end: var(--ps-space-20);
  padding: var(--ps-space-10);
  background: var(--ps-surface);
  border-radius: var(--ps-radius-pill);
  font: var(--ps-type-label);
  text-align: center;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(var(--ps-space-10));
  transition: opacity var(--ps-duration-slow) var(--ps-ease),
              transform var(--ps-duration-slow) var(--ps-ease);
}

.ps-panou-anunturi__banner:hover .ps-panou-anunturi__banner-actiune,
.ps-panou-anunturi__banner:focus-visible .ps-panou-anunturi__banner-actiune {
  opacity: 1;
  transform: none;
}

@media (hover: none) {
  .ps-panou-anunturi__banner-actiune { opacity: 1; transform: none; }
}

/* Ultimele articole (BArticoleBlog.GetHTMLReclamaLaAnunturi) */
.ps-panou-anunturi__articol {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--ps-space-15);
  padding: var(--ps-space-10);
  background: var(--ps-surface);
  border: var(--ps-border-width) solid var(--ps-border-panel);
  border-radius: var(--ps-radius-card);
  box-shadow: var(--ps-shadow-card);
  transition: box-shadow var(--ps-duration-slow) var(--ps-ease);
}

.ps-panou-anunturi__articol:hover { box-shadow: var(--ps-shadow-hover); }

.ps-panou-anunturi__articol:focus-within {
  outline: var(--ps-focus-width) solid var(--ps-primary);
  outline-offset: var(--ps-focus-offset);
}

.ps-panou-anunturi__articol-imagine {
  flex: 0 0 auto;
  width: 64px;                                         /* atributele width/height din view */
  height: 64px;
  object-fit: cover;
  border-radius: var(--ps-radius-card);
}

.ps-panou-anunturi__articol-corp {
  display: grid;
  gap: var(--ps-space-5);
  min-width: 0;
}

.ps-panou-anunturi__articol-titlu {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  font: var(--ps-type-body-medium);
  color: var(--ps-text);
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.ps-panou-anunturi__articol-titlu a { color: inherit; text-decoration: none; }

/* Titlul acoperă tot articolul, ca la .ps-reclama-lista__link. */
.ps-panou-anunturi__articol-titlu a::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.ps-panou-anunturi__articol-titlu a:focus-visible { outline: none; }

.ps-panou-anunturi__toate {
  margin: 0;
  padding-inline: var(--ps-space-10);
  font: var(--ps-type-label);
}

.ps-panou-anunturi__toate a { color: var(--ps-green-link); }

/* Sub listă: cardurile pe rând, blogul lângă articole. */
@media (max-width: 1439.98px) {
  .ps-panou-anunturi__carduri {
    grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));   /* [PROPUS] */
  }
}

@media (min-width: 768px) and (max-width: 1439.98px) {
  .ps-panou-anunturi__blog {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    align-items: start;
  }

  .ps-panou-anunturi__blog > .ps-panou-anunturi__card { grid-row: span 2; }
}

@media (max-width: 767.98px) {
  .ps-panou-anunturi__mobil { display: grid; }
}

/* Invitația de cont pentru vizitatori (divCreeazaCont1 / divCreeazaCont2) */
.ps-lista-anunturi__cont {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--ps-space-15) var(--ps-space-20);
  padding: var(--ps-space-20) var(--ps-space-30);
  background: var(--ps-surface-tint);
  border-radius: var(--ps-radius-card);
  text-align: center;
}

.ps-lista-anunturi__cont-icon {
  font-size: var(--ps-icon-30);
  color: var(--ps-primary);
}

.ps-lista-anunturi__cont-text {
  display: grid;
  gap: var(--ps-space-5);
  flex: 1 1 320px;
  margin: 0;
  font: var(--ps-type-body);
  color: var(--ps-text);
}

.ps-lista-anunturi__cont-text strong { font-weight: var(--ps-fw-semibold); }


/* ==========================================================================
   8. MIȘCARE REDUSĂ
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .ps-filtre-sertar[data-ps-filtre-js],
  .ps-filtre-fundal,
  .ps-filtre__rand,
  .ps-filtre-active__pastila,
  .ps-reclama-lista__banner,
  .ps-panou-anunturi__banner,
  .ps-panou-anunturi__banner-actiune,
  .ps-panou-anunturi__articol { transition-duration: .01ms; }
}
