/* Anunțurile pe localități (/orase/<oras>/case-de-vanzare etc., views/orase/anunturi.ejs) și blocul „pe scurt” din ghidul orașului
   (views/orase/_local-hub.ejs). Se încarcă după orase.css; prefix .ol-. Cardurile de anunț (.hl-*) sunt copiate din views/index.ejs. */
.ol-facts { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.ol-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 6px 0 12px; }
@media (min-width: 640px) { .ol-grid { gap: 16px; } }
@media (min-width: 1200px) { .ol-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ol-more { margin: 0 0 8px; }
.ol-empty { padding: 18px; border: 1px dashed #cbd5e1; border-radius: 14px; background: var(--or-bg); }
.ol-empty p { margin: 0 0 12px; max-width: 64ch; }
.ol-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-width: 76ch; }
.ol-checks li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--or-line); border-radius: 12px; background: #fff; line-height: 1.5; }
.ol-checks svg { flex: none; width: 18px; height: 18px; margin-top: 2px; color: #16a34a; }
.ol-tools { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@media (min-width: 640px) { .ol-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ol-tool { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--or-line); border-radius: 14px; background: #fff; color: var(--or-text); text-decoration: none; transition: border-color .15s, box-shadow .15s; min-width: 0; }
.ol-tool:hover { border-color: var(--or-primary); box-shadow: 0 6px 16px -10px rgba(37, 99, 235, .5); }
.ol-tool__i { flex: none; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--or-primary-50); color: var(--or-primary-700); }
.ol-tool__i svg { width: 19px; height: 19px; }
.ol-tool strong { display: block; color: var(--or-ink); font-size: .95rem; }
.ol-tool small { display: block; margin-top: 2px; font-size: .84rem; color: var(--or-muted); line-height: 1.4; }
.ol-other { display: flex; gap: 8px; align-items: flex-start; margin: 22px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--or-soft); font-size: .9rem; color: var(--or-text); }
.ol-other svg { flex: none; width: 17px; height: 17px; margin-top: 2px; color: var(--or-muted); }

/* pagina apei: întreruperile, tabelul, contactul */
.ol-outages { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; max-width: 80ch; }
.ol-outages li { padding: 12px 14px; border: 1px solid var(--or-line); border-left-width: 4px; border-radius: 12px; background: #fff; }
.ol-outages li.is-intrerupere { border-left-color: #dc2626; }
.ol-outages li.is-presiune { border-left-color: #d97706; }
.ol-outages li.is-informare { border-left-color: #2563eb; }
.ol-outages__h { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-size: .84rem; color: var(--or-muted); }
.ol-outages p { margin: 6px 0 4px; line-height: 1.5; color: var(--or-text); }
.ol-outages a { font-size: .84rem; font-weight: 600; }
.ol-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-style: normal; font-size: .74rem; font-weight: 800; }
.ol-badge--intrerupere { background: #fee2e2; color: #991b1b; }
.ol-badge--presiune { background: #fef3c7; color: #92400e; }
.ol-badge--informare { background: #dbeafe; color: #1e40af; }
.ol-table { width: 100%; max-width: 560px; border-collapse: collapse; margin: 4px 0 12px; font-size: .92rem; }
.ol-table th, .ol-table td { padding: 8px 10px; border-bottom: 1px solid var(--or-line); text-align: left; }
.ol-table th { font-size: .8rem; color: var(--or-muted); font-weight: 700; }
.ol-contact { padding: 14px 16px; border-radius: 14px; background: var(--or-primary-50); border: 1px solid var(--or-primary-100); max-width: 72ch; }
.ol-contact p { margin: 0 0 6px; line-height: 1.55; }
.ol-contact p:last-child { margin: 0; }
.ol-links { margin: 12px 0 0; padding-left: 18px; display: grid; gap: 6px; }

/* blocul din ghidul orașului */
.ol-hub { padding-top: 26px; }
.ol-hub__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@media (min-width: 640px) { .ol-hub__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ol-hub__link { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--or-line); border-radius: 14px; background: #fff; color: var(--or-ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.ol-hub__link:hover { border-color: var(--or-primary); box-shadow: 0 6px 16px -10px rgba(37, 99, 235, .5); }
.ol-hub__link .ol-tool__i { width: 40px; height: 40px; }
.ol-hub__link strong { display: block; font-size: 1rem; }
.ol-hub__link small { display: block; font-size: .84rem; color: var(--or-muted); margin-top: 1px; }
.ol-hub__link em { margin-left: auto; font-style: normal; font-weight: 800; color: var(--or-primary-700); white-space: nowrap; }
.ol-brief { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 16px 0 0; }
@media (min-width: 640px) { .ol-brief { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ol-brief div { padding: 14px 16px; border-radius: 14px; background: var(--or-primary-50); border: 1px solid var(--or-primary-100); }
.ol-brief dt { font-weight: 800; color: var(--or-ink); margin: 0 0 4px; }
.ol-brief dd { margin: 0; line-height: 1.55; color: var(--or-text); font-size: .93rem; }
.ol-hub h3 { font-size: 1.05rem; font-weight: 800; color: var(--or-ink); margin: 22px 0 10px; }

/* cardurile de anunț (copie din views/index.ejs, .hl-*) */
.hl-card { min-width: 0; border-radius: 16px; background: #fff; border: 1px solid #e6ebf2; box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 18px -10px rgba(15, 23, 42, .18); transition: transform .2s, box-shadow .2s, border-color .2s; }
.hl-card:hover { transform: translateY(-3px); border-color: #c7d7fe; box-shadow: 0 2px 4px rgba(15, 23, 42, .05), 0 18px 34px -16px rgba(37, 99, 235, .4); }
.hl-card--promo { border: 2px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, #fde68a, #f59e0b 45%, #fcd34d) border-box; box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 10px 22px -12px rgba(217, 119, 6, .45); }
.hl-card--promo:hover { border-color: transparent; box-shadow: 0 2px 4px rgba(15, 23, 42, .05), 0 20px 36px -16px rgba(217, 119, 6, .55); }
.hl-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; border-radius: inherit; }
.hl-card__link:focus-visible { outline: 2px solid #2563eb; outline-offset: 3px; }
.hl-card__img { position: relative; aspect-ratio: 4 / 3; margin: 6px 6px 0; overflow: hidden; border-radius: 11px; background: #e2e8f0; }
.hl-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.hl-card:hover .hl-card__img img { transform: scale(1.05); }
.hl-card__img::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(180deg, transparent, rgba(15, 23, 42, .55)); pointer-events: none; }
.hl-card__noimg { position: absolute; inset: 0; display: grid; place-items: center; color: #94a3b8; background: linear-gradient(135deg, #f1f5f9, #e2e8f0); }
.hl-card__noimg svg { width: 40%; max-width: 64px; height: auto; }
.hl-card__tags { position: absolute; z-index: 1; top: 6px; left: 6px; right: 6px; display: flex; flex-wrap: wrap; gap: 4px; }
.hl-tag { display: inline-flex; align-items: center; gap: 3px; padding: 2px 7px; border-radius: 999px; font-size: .66rem; font-weight: 700; line-height: 1.5; white-space: nowrap; box-shadow: 0 2px 6px rgba(15, 23, 42, .18); }
.hl-tag svg { width: 10px; height: 10px; }
.hl-tag--promo { background: linear-gradient(135deg, #fde68a, #fbbf24); color: #78350f; }
.hl-tag--sale { background: rgba(255, 255, 255, .92); color: #047857; }
.hl-tag--rent { background: rgba(255, 255, 255, .92); color: #1d4ed8; }
.hl-tag--rate { background: #047857; color: #fff; }
/* anunțul cu pagină de prezentare proprie (parcul industrial din Bragadiru) */
.hl-tag--landing { background: #05080f; color: #67e8f9; box-shadow: 0 0 0 1px rgba(34, 211, 238, .6) inset, 0 2px 10px rgba(34, 211, 238, .45); }
.hl-card--landing { border: 2px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, #22d3ee, #a3e635) border-box; box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 12px 26px -12px rgba(34, 211, 238, .6); }
.hl-card--landing:hover { border-color: transparent; box-shadow: 0 2px 4px rgba(15, 23, 42, .05), 0 22px 38px -16px rgba(34, 211, 238, .7); }
.hl-card__price { position: absolute; z-index: 1; left: 6px; bottom: 6px; max-width: calc(100% - 12px); padding: 3px 9px; border-radius: 8px; background: #fff; color: #0f172a; font-size: .82rem; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; box-shadow: 0 4px 12px rgba(15, 23, 42, .25); }
.hl-card__body { display: flex; flex-direction: column; flex: 1; gap: 4px; padding: 8px 10px 10px; }
.hl-card__title { margin: 0; font-size: .84rem; font-weight: 700; line-height: 1.3; color: #0f172a; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; transition: color .15s; }
.hl-card:hover .hl-card__title { color: #1d4ed8; }
.hl-card__loc { display: flex; align-items: center; gap: 3px; margin: 0; font-size: .74rem; color: #64748b; min-width: 0; }
.hl-card__loc svg { flex: none; width: 13px; height: 13px; color: #94a3b8; }
.hl-card__loc span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hl-card__meta { display: flex; flex-wrap: wrap; gap: 4px; margin: auto 0 0; padding-top: 4px; font-size: .68rem; font-weight: 600; color: #64748b; }
.hl-card__meta span { padding: 1px 7px; border-radius: 999px; background: #f1f5f9; white-space: nowrap; }
@media (min-width: 640px) {
  .hl-card__img { margin: 8px 8px 0; border-radius: 12px; }
  .hl-card__tags { top: 8px; left: 8px; right: 8px; gap: 5px; }
  .hl-tag { padding: 3px 9px; font-size: .72rem; }
  .hl-tag svg { width: 11px; height: 11px; }
  .hl-card__price { left: 8px; bottom: 8px; padding: 4px 11px; font-size: 1rem; }
  .hl-card__body { gap: 6px; padding: 10px 14px 14px; }
  .hl-card__title { font-size: .98rem; }
  .hl-card__loc { font-size: .84rem; gap: 4px; }
  .hl-card__loc svg { width: 15px; height: 15px; }
  .hl-card__meta { font-size: .74rem; gap: 5px; }
  .hl-card__meta span { padding: 2px 9px; }
}

/* pagina de transport */
.ol-dest { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@media (min-width: 720px) { .ol-dest { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ol-dest__i { padding: 14px 16px; border: 1px solid var(--or-line); border-radius: 14px; background: #fff; min-width: 0; }
.ol-dest__h { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; justify-content: space-between; }
.ol-dest__h strong { font-size: 1.05rem; color: var(--or-ink); }
.ol-dest__i p { margin: 6px 0 8px; font-size: .9rem; line-height: 1.5; color: var(--or-text); }
.ol-dest__i dl { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; }
.ol-dest__i dt { font-size: .76rem; color: var(--or-muted); }
.ol-dest__i dd { margin: 0; font-weight: 800; color: var(--or-ink); }
.ol-lines { display: inline-flex; gap: 4px; }
.ol-line { display: inline-block; min-width: 38px; padding: 2px 8px; border-radius: 8px; background: #662483; color: #fff; font-style: normal; font-weight: 800; font-size: .86rem; text-align: center; }
.ol-tablewrap { overflow-x: auto; border: 1px solid var(--or-line); border-radius: 12px; background: #fff; }
.ol-table--wide { max-width: none; margin: 0; min-width: 640px; }
.ol-table--wide th[scope="row"] { vertical-align: top; }
.ol-table--wide th[scope="row"] small, .ol-table--wide td small { display: block; font-size: .76rem; font-weight: 500; color: var(--or-muted); margin-top: 2px; max-width: 200px; }
.ol-table--wide tr.ol-first th, .ol-table--wide tr.ol-first td { border-top: 2px solid var(--or-line); }
