/* ============================================================
   InvestMap – Hirdetés oldal modern design (v2)
   Mobile-first, SEO-barát, érintőképernyő-optimalizált
   ============================================================ */

/* ── CSS változók ── */
:root {
  --clr-primary:       #146A3C;
  --clr-primary-dk:    #0e4f2c;
  --clr-primary-lt:    #EAF5EE;
  --clr-accent:        #F59E0B;
  --clr-accent-dk:     #D97706;
  --clr-text:          #111827;
  --clr-muted:         #6B7280;
  --clr-border:        #E5E7EB;
  --clr-bg:            #F9FAFB;
  --clr-card:          #FFFFFF;
  --clr-danger:        #DC2626;

  --shadow-sm:  0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:  0 10px 40px rgba(0,0,0,.12);
  --shadow-xl:  0 20px 60px rgba(0,0,0,.16);

  --radius-sm:  6px;
  --radius:     12px;
  --radius-lg:  20px;
  --radius-xl:  28px;

  --transition: 180ms cubic-bezier(.4,0,.2,1);
  --font:       system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* ── Reset / base ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--clr-text);
  background: var(--clr-bg);
}
img { display: block; max-width: 100%; }
/* Navbar logo: ne legyen block elem a Bootstrap inline navbar-brand-en belül */
#logo { display: inline-block; }
a   { color: inherit; text-decoration: none; }

/* ── Utility ── */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ──────────────────────────────────────────────
   BREADCRUMB
────────────────────────────────────────────── */
.breadcrumb-wrap {
  background: var(--clr-card);
  border-bottom: 1px solid var(--clr-border);
  padding: 10px 0;
}
.breadcrumb-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
}
.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  font-size: .82rem;
  color: var(--clr-muted);
}
.breadcrumb-list li { display: flex; align-items: center; gap: 4px; }
.breadcrumb-list li:not(:last-child)::after { content: '›'; }
.breadcrumb-list a { color: var(--clr-primary); }
.breadcrumb-list a:hover { text-decoration: underline; }
.breadcrumb-list [aria-current="page"] { color: var(--clr-muted); font-weight: 500; }

/* ──────────────────────────────────────────────
   PAGE LAYOUT
────────────────────────────────────────────── */
.page-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 16px 100px;
}
@media (min-width: 1024px) {
  .page-wrap { padding: 28px 24px 60px; }
}

.content-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 1024px) {
  .content-grid {
    grid-template-columns: 1fr 380px;
    align-items: start;
  }
}

.content-main { min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.content-side  { display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 1024px) {
  .content-side { position: sticky; top: 80px; }
}

/* ── Card ── */
.card {
  background: var(--clr-card);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.card-body { padding: 20px; }
.card-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--clr-primary);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.card-title svg, .card-title .icon { flex-shrink: 0; }

/* ── Section divider ── */
.section-sep {
  height: 1px;
  background: var(--clr-border);
  margin: 16px 0;
}

/* ──────────────────────────────────────────────
   GALLERY
────────────────────────────────────────────── */
.gallery { border-radius: var(--radius-lg); overflow: hidden; position: relative; }

/* Desktop grid layout */
@media (min-width: 768px) {
  .gallery__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 240px 240px;
    gap: 4px;
  }
  /* Only show the first 5 items in the desktop grid */
  .gallery__item:nth-child(n+6) { display: none; }
  .gallery__item { overflow: hidden; cursor: pointer; position: relative; }
  .gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
  }
  .gallery__item:hover img { transform: scale(1.04); }
  .gallery__item:first-child {
    grid-row: 1 / 3;
    grid-column: 1;
  }
  /* Egy kép esetén teljes szélességű megjelenítés – nincs üres fehér terület */
  .gallery__grid[data-count="1"],
  .gallery__grid[data-count="0"] {
    grid-template-columns: 1fr;
    grid-template-rows: 480px;
  }
  .gallery__grid[data-count="1"] .gallery__item:first-child,
  .gallery__grid[data-count="0"] .gallery__item:first-child {
    grid-row: auto;
    grid-column: auto;
  }
}

/* Mobile: single-image swipe carousel */
@media (max-width: 767px) {
  .gallery__grid {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #000;
  }
  .gallery__item {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
  }
  .gallery__item.active { opacity: 1; pointer-events: auto; }
  .gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  /* All items present in DOM for carousel; only .active is visible */
  /* +X kép overlay csak desktopon kell */
  .gallery__more-btn { display: none !important; }

  /* Mobile swipe arrows */
  .gallery__nav {
    display: flex;
    position: absolute;
    inset: 0;
    justify-content: space-between;
    align-items: center;
    pointer-events: none;
    padding: 8px;
    z-index: 2;
  }
  .gallery__nav button {
    pointer-events: auto;
    background: rgba(0,0,0,.45);
    color: #fff;
    border: none;
    width: 36px; height: 36px;
    border-radius: 50%;
    font-size: 18px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
  }
}
@media (min-width: 768px) {
  .gallery__nav { display: none; }
}

/* Counter badge */
.gallery__counter {
  position: absolute;
  bottom: 12px;
  right: 12px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: .78rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  z-index: 3;
  pointer-events: none;
}
@media (min-width: 768px) { .gallery__counter { display: none; } }

/* "Összes kép" overlay button on last thumb */
.gallery__more-btn {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.52);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: .85rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background var(--transition);
}
.gallery__more-btn:hover { background: rgba(0,0,0,.65); }
.gallery__more-btn svg { width: 18px; height: 18px; }

/* Thumbnail strip (shown under gallery on mobile) */
.gallery-thumbs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 8px 4px 4px;
  scrollbar-width: thin;
}
@media (min-width: 768px) { .gallery-thumbs { display: none; } }
.gallery-thumbs button {
  flex-shrink: 0;
  width: 56px; height: 42px;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  overflow: hidden;
  cursor: pointer;
  padding: 0;
  transition: border-color var(--transition);
}
.gallery-thumbs button.active  { border-color: var(--clr-primary); }
.gallery-thumbs button img {
  width: 100%; height: 100%;
  object-fit: cover;
}

/* Video button */
.gallery-video-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #1a1a2e, #2d2d44);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 10px 18px;
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
  margin-top: 8px;
  transition: opacity var(--transition);
}
.gallery-video-btn:hover { opacity: .85; }
.gallery-video-btn svg { width: 20px; height: 20px; color: var(--clr-accent); }

/* ──────────────────────────────────────────────
   INFO CARD (Title + Price + Location)
────────────────────────────────────────────── */
.info-card { padding: 22px; }

.info-badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1;
}
.badge--primary { background: var(--clr-primary-lt); color: var(--clr-primary); }
.badge--accent  { background: #FEF3C7; color: var(--clr-accent-dk); }
.badge--gray    { background: #F3F4F6; color: #374151; }
.badge--active  { background: #D1FAE5; color: #065F46; }
.badge--inactive{ background: #FEE2E2; color: var(--clr-danger); }

.ad-title {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 800;
  line-height: 1.3;
  color: var(--clr-text);
  margin-bottom: 14px;
}

.price-block { margin-bottom: 16px; }
.price-main {
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  font-weight: 900;
  color: var(--clr-primary);
  line-height: 1.1;
}
.price-range {
  font-size: 1rem;
  color: var(--clr-muted);
  margin-top: 2px;
}
.price-sqm {
  font-size: .85rem;
  color: var(--clr-muted);
  margin-top: 4px;
}

.location-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: var(--clr-muted);
  font-size: .9rem;
  margin-bottom: 14px;
}
.location-row svg { flex-shrink: 0; margin-top: 2px; color: var(--clr-primary); }
.location-text strong { color: var(--clr-text); }

.meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: .8rem;
  color: var(--clr-muted);
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--clr-border);
}
.meta-row span { display: flex; align-items: center; gap: 4px; }

/* ──────────────────────────────────────────────
   KEY METRICS chips
────────────────────────────────────────────── */
.metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 10px;
}
.metric-chip {
  background: var(--clr-bg);
  border: 1px solid var(--clr-border);
  border-radius: var(--radius);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.metric-chip__icon {
  width: 36px; height: 36px;
  background: var(--clr-primary-lt);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-size: 1.1rem;
}
.metric-chip__label {
  font-size: .72rem;
  color: var(--clr-muted);
  line-height: 1.2;
}
.metric-chip__body {
  min-width: 0;
  overflow: hidden;
}
.metric-chip__value {
  font-size: .92rem;
  font-weight: 700;
  color: var(--clr-text);
  line-height: 1.2;
  margin-top: 1px;
  overflow-wrap: break-word;
}

/* ──────────────────────────────────────────────
   DESCRIPTION
────────────────────────────────────────────── */
.description-text {
  font-size: .95rem;
  line-height: 1.8;
  color: #374151;
  white-space: pre-line;
  word-break: break-word;
}
.description-text.collapsed { max-height: 200px; overflow: hidden; position: relative; }
.description-text.collapsed::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60px;
  background: linear-gradient(transparent, var(--clr-card));
}
.expand-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid var(--clr-primary);
  color: var(--clr-primary);
  border-radius: 999px;
  padding: 7px 16px;
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
  margin-top: 10px;
  transition: background var(--transition), color var(--transition);
}
.expand-btn:hover { background: var(--clr-primary); color: #fff; }

/* ──────────────────────────────────────────────
   PROPERTIES TABLE
────────────────────────────────────────────── */
.props-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
@media (max-width: 341px) {
  .props-grid { grid-template-columns: 1fr; }
  .prop-row { border-right: none; }
}
@media (min-width: 640px) { .props-grid { grid-template-columns: repeat(3, 1fr); } }

/* Lenyítós állapot – mint a leírásnál */
.props-grid.collapsed { max-height: 200px; overflow: hidden; position: relative; }
.props-grid.collapsed::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60px;
  background: linear-gradient(transparent, var(--clr-card));
  pointer-events: none;
}

.prop-row {
  display: flex;
  flex-direction: column;
  padding: 10px 14px;
  border-bottom: 1px solid var(--clr-border);
  border-right: 1px solid var(--clr-border);
  min-width: 0; /* grid item overflow megelőzése */
  overflow-wrap: anywhere;
}
.prop-row:nth-child(even) { border-right: none; }
@media (min-width: 640px) {
  .prop-row:nth-child(3n) { border-right: none; }
  .prop-row:nth-child(even) { border-right: 1px solid var(--clr-border); }
}
.prop-label {
  font-size: .72rem;
  color: var(--clr-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
}
.prop-value {
  font-size: .9rem;
  font-weight: 600;
  color: var(--clr-text);
  margin-top: 2px;
}

/* ──────────────────────────────────────────────
   UTILITIES (Közüzemi)
────────────────────────────────────────────── */
.utilities-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}
.utility-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: var(--radius);
  background: var(--clr-bg);
  border: 1px solid var(--clr-border);
  font-size: .88rem;
  font-weight: 600;
}
.utility-item svg { width: 20px; height: 20px; flex-shrink: 0; }
.utility-item.available   { border-color: #6EE7B7; color: #065F46; }
.utility-item.unavailable { border-color: #FCA5A5; color: #991B1B; opacity: .7; }
.utility-item.available svg   { color: #10B981; }
.utility-item.unavailable svg { color: #EF4444; }

/* ──────────────────────────────────────────────
   TRANSPORT
────────────────────────────────────────────── */
.transport-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.transport-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 600;
  border: 1.5px solid transparent;
}
.transport-chip.metro  { background: #EDE9FE; color: #5B21B6; border-color: #C4B5FD; }
.transport-chip.bus    { background: #DBEAFE; color: #1D4ED8; border-color: #93C5FD; }
.transport-chip.tram   { background: #FEF3C7; color: #92400E; border-color: #FCD34D; }
.transport-chip.trolley{ background: #FCE7F3; color: #9D174D; border-color: #F9A8D4; }
.transport-chip.bicycle{ background: #D1FAE5; color: #065F46; border-color: #6EE7B7; }
.transport-chip.asphalt{ background: #F1F5F9; color: #334155; border-color: #CBD5E1; }

/* ──────────────────────────────────────────────
   MAP
────────────────────────────────────────────── */
.map-container {
  border-radius: var(--radius);
  overflow: hidden;
  height: 420px;
  background: #e8eaed;
  position: relative;
}
@media (max-width: 767px) { .map-container { height: 300px; } }
.map-container #ad-map { width: 100%; height: 100%; }

/* ──────────────────────────────────────────────
   PDF LIST
────────────────────────────────────────────── */
.pdf-list { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.pdf-list a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  background: #FEF2F2;
  color: #B91C1C;
  font-size: .88rem;
  font-weight: 600;
  border: 1px solid #FECACA;
  transition: background var(--transition);
}
.pdf-list a:hover { background: #FEE2E2; }
.pdf-list svg { width: 18px; height: 18px; flex-shrink: 0; }

/* ──────────────────────────────────────────────
   CONTACT CARD (side panel)
────────────────────────────────────────────── */
.contact-card { padding: 22px; }
.seller-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.seller-avatar {
  width: 48px; height: 48px;
  background: var(--clr-primary-lt);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--clr-primary);
  flex-shrink: 0;
}
.seller-avatar svg { width: 24px; height: 24px; }
.seller-name { font-weight: 700; font-size: .95rem; }
.seller-type { font-size: .78rem; color: var(--clr-muted); margin-top: 1px; }

.cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 13px 20px;
  border-radius: var(--radius);
  border: none;
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
  transition: filter var(--transition), transform var(--transition);
}
.cta-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.cta-btn:active { transform: translateY(0); }
.cta-btn svg { width: 20px; height: 20px; }

.cta-btn--primary { background: var(--clr-primary); color: #fff; }
.cta-btn--phone   { background: #2563EB; color: #fff; margin-top: 10px; }
.cta-btn--email   { background: #fff; color: var(--clr-primary); border: 1.5px solid var(--clr-primary); margin-top: 10px; }
.cta-btn--share   { background: #F3F4F6; color: var(--clr-text); margin-top: 10px; font-size: .88rem; }

.login-prompt {
  background: var(--clr-primary-lt);
  border-radius: var(--radius-sm);
  padding: 14px;
  font-size: .88rem;
  color: var(--clr-primary-dk);
  line-height: 1.5;
}
.login-prompt a {
  color: var(--clr-primary);
  font-weight: 700;
  text-decoration: underline;
}

/* ──────────────────────────────────────────────
   SHARE CARD
────────────────────────────────────────────── */
.share-card { padding: 18px; }
.share-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.share-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-size: .82rem;
  font-weight: 600;
  color: #fff;
  transition: opacity var(--transition);
}
.share-btn:hover { opacity: .85; }
.share-btn--fb      { background: #1877F2; }
.share-btn--x       { background: #000; }
.share-btn--wa      { background: #25D366; }
.share-btn--copy    { background: #6B7280; }
.share-btn--native  { background: var(--clr-primary); }
.share-btn svg      { width: 15px; height: 15px; }

/* ──────────────────────────────────────────────
   REPORT SECTION
────────────────────────────────────────────── */
.report-wrap {
  text-align: center;
  padding: 8px 20px 24px;
}
.report-btn {
  background: none;
  border: 1.5px solid var(--clr-danger);
  color: var(--clr-danger);
  border-radius: 999px;
  padding: 8px 22px;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
}
.report-btn:hover { background: var(--clr-danger); color: #fff; }

/* ──────────────────────────────────────────────
   FULLSCREEN LIGHTBOX
────────────────────────────────────────────── */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.95);
  z-index: 9000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.lightbox[hidden] { display: none; }

.lightbox__toolbar {
  position: absolute;
  top: 0; left: 0; right: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px;
  background: linear-gradient(rgba(0,0,0,.6), transparent);
  z-index: 2;
  color: #fff;
}
.lightbox__counter { font-size: .9rem; font-weight: 600; }
.lightbox__close {
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  width: 38px; height: 38px;
  border-radius: 50%;
  font-size: 20px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background var(--transition);
}
.lightbox__close:hover { background: rgba(255,255,255,.3); }

.lightbox__track {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  touch-action: none; /* JS kezeli a pinch-zoom és swipe-ot */
}
.lightbox__slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 60px;
  transition: transform .3s ease;
}
@media (max-width: 600px) { .lightbox__slide { padding: 60px 10px; } }

.lightbox__slide img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 6px;
  user-select: none;
  -webkit-user-drag: none;
}

.lightbox__prev,
.lightbox__next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  width: 46px; height: 46px;
  border-radius: 50%;
  font-size: 24px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  z-index: 2;
  transition: background var(--transition);
}
.lightbox__prev:hover,
.lightbox__next:hover { background: rgba(255,255,255,.3); }
.lightbox__prev { left: 12px; }
.lightbox__next { right: 12px; }

.lightbox__thumb-strip {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 10px 16px;
  background: linear-gradient(transparent, rgba(0,0,0,.7));
  scrollbar-width: none;
}
.lightbox__thumb-strip::-webkit-scrollbar { display: none; }
.lightbox__thumb-strip button {
  flex-shrink: 0;
  width: 56px; height: 42px;
  border: 2px solid rgba(255,255,255,.3);
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  padding: 0;
  transition: border-color var(--transition);
}
.lightbox__thumb-strip button.active { border-color: var(--clr-accent); }
.lightbox__thumb-strip button img {
  width: 100%; height: 100%; object-fit: cover;
}

/* ──────────────────────────────────────────────
   VIDEO MODAL
────────────────────────────────────────────── */
.video-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.85);
  z-index: 8500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.video-modal[hidden] { display: none; }
.video-modal__content {
  position: relative;
  width: min(900px, 100%);
}
.video-modal__player {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  background: #000;
}
.video-modal__close {
  position: absolute;
  top: -40px; right: 0;
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  width: 36px; height: 36px;
  border-radius: 50%;
  font-size: 20px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}

/* ──────────────────────────────────────────────
   CONTACT/REPORT MODALS (Bootstrap override)
────────────────────────────────────────────── */
.modal-content { border-radius: var(--radius-lg) !important; border: none !important; }
.modal-header  {
  background: var(--clr-primary);
  color: #fff;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
  border-bottom: none !important;
}
.modal-header .btn-close { filter: invert(1); }

.contact-detail-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--clr-border);
  font-size: .95rem;
}
.contact-detail-row:last-child { border-bottom: none; }
.contact-detail-row svg { width: 22px; height: 22px; color: var(--clr-primary); flex-shrink: 0; }
.contact-detail-row a { color: var(--clr-primary); font-weight: 600; }

/* ──────────────────────────────────────────────
   STICKY MOBILE BOTTOM BAR
────────────────────────────────────────────── */
.mobile-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--clr-card);
  border-top: 1px solid var(--clr-border);
  padding: 10px 16px;
  display: flex;
  gap: 10px;
  z-index: 500;
  box-shadow: 0 -4px 16px rgba(0,0,0,.1);
}
@media (min-width: 1024px) { .mobile-bar { display: none; } }
.mobile-bar .cta-btn { flex: 1; padding: 12px; }

/* ──────────────────────────────────────────────
   ALERT / EMPTY STATE
────────────────────────────────────────────── */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 30px 20px;
  color: var(--clr-muted);
  font-size: .9rem;
  gap: 8px;
}
.empty-state svg { width: 40px; height: 40px; opacity: .3; }

/* ──────────────────────────────────────────────
   PRINT
────────────────────────────────────────────── */
@media print {
  .mobile-bar, .lightbox, .video-modal, .gallery__nav, .gallery__more-btn { display: none !important; }
  .content-grid { grid-template-columns: 1fr; }
}
