/* ==========================================================================
   place-detail-mobile.css — Responsive layout & styling for ghidBR.ro Place Details.
   Modern mobile design aligned with event-detail-mobile.css standards.
   ========================================================================== */

@media (max-width: 991.98px) {
  .place-events-section .event-rail-controls {
    display: none;
  }

  /* Aliniere antet transparent și container hero pe mobil */
  .navbar-glass .container,
  body.place-page main.container {
    max-width: 540px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    padding-bottom: 0 !important;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .navbar-glass .container,
  body.place-page main.container {
    max-width: 640px !important;
  }
}

/* S1-08: pe telefon antetul de detaliu folosește EXACT gutter-ul de 8px al
   paginilor principale (mobile-navigation.css), ca back/acțiuni să fie în
   aceleași poziții ca pe liste/homepage. Trebuie DUPĂ regula de 12px de mai sus
   ca s-o învingă (aceeași specificitate, sursă ulterioară). Doar antetul —
   main.container rămâne la 12px pentru conținut. */
@media (max-width: 767.98px) {
  .navbar-glass .container {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.place-page .header-edit-btn {
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(var(--mobile-detail-floating-pill-bottom) + var(--place-cta-bar-height) + 12px);
    z-index: 1041;
    width: 44px;
    height: 44px;
    min-width: 44px;
    padding: 0 !important;
    border-radius: 50% !important;
    justify-content: center;
    gap: 0 !important;
  }
  body.place-page .header-edit-btn .header-edit-label {
    display: none !important;
  }
  body.place-page .header-edit-btn .header-edit-icon {
    font-size: 1.15rem;
    line-height: 1;
  }

  /* Când viewportul este mai lat decât containerul mobil, X-ul rămâne în
     interiorul aceleiași muchii de 540px, nu la marginea ecranului. */
  body.place-page .navbar-glass.detail-minimal-header .header-mobile-back-btn {
    right: max(
      calc(env(safe-area-inset-right, 0px) + 8px),
      calc((100vw - 540px) / 2 + 8px)
    ) !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  /* Pe tabletă headerul și conținutul au 640px; controlul de închidere urmează
     aceeași grilă, inclusiv când există mult spațiu lateral. */
  body.place-page .navbar-glass.detail-minimal-header .header-mobile-back-btn {
    right: max(
      calc(env(safe-area-inset-right, 0px) + 8px),
      calc((100vw - 640px) / 2 + 8px)
    ) !important;
  }
}

@media (max-width: 991.98px) {
  /* --- 1. Antet mobil pe pagina de locație — Glassmorphism transparent / scroll pastile --- */
  body.place-page .navbar-glass,
  body.place-page .navbar-glass.scrolled {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
  }

  /* Stare UNSCROLLED (peste hero cover) */
  body.place-page .navbar-glass:not(.scrolled) .header-mobile-back-btn {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    border-radius: 50% !important;
    background: rgba(15, 23, 42, 0.65) !important;
    backdrop-filter: blur(16px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(160%) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
    color: #ffffff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    transition: all 0.2s ease !important;
  }

  /* Stare SCROLLED (pastila contextuală + controale albe) */
  body.place-page .navbar-glass.scrolled .header-mobile-back-btn {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08) !important;
    color: #1e293b !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    transition: all 0.2s ease !important;
  }

  /* Butonul de cont peste hero: aceeași tratare „glass" ca butonul „←"
     (identic cu pagina de eveniment), ca să nu rămână un cerc alb izolat lângă ele. */
  body.place-page .navbar-glass:not(.scrolled) .header-account-btn {
    background: rgba(15, 23, 42, 0.65) !important;
    backdrop-filter: blur(16px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(160%) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
  }
  /* Glifa de cont e neutră (starea o dă avatarul cu inițială, nu culoarea):
     peste glass închis devine albă, ca restul controalelor de pe hero. */
  body.place-page .navbar-glass:not(.scrolled) .header-account-btn--out .lucide {
    color: #ffffff !important;
    stroke: #ffffff !important;
  }
  body.place-page .navbar-glass:not(.scrolled) .header-account-avatar {
    box-shadow: 0 0 0 1.5px rgba(255, 255, 255, 0.55);
  }
  body.place-page .navbar-glass.scrolled .header-account-btn {
    background: #ffffff !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08) !important;
  }

  /* Stiluri specifice paginii de locații care completează event-detail-mobile.css */
  .bg-dark-neutral-pillar {
    background: rgba(20, 20, 20, 0.45) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2) !important;
    height: 26px !important;
    padding: 0 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    border-radius: 999px !important;
  }

  .mobile-place-types-disclosure {
    position: relative;
    max-width: min(245px, calc(100vw - 116px));
  }
  .mobile-place-types-disclosure summary {
    max-width: 100%;
    cursor: pointer;
    list-style: none;
  }
  .mobile-place-types-disclosure summary::-webkit-details-marker {
    display: none;
  }
  .mobile-place-types-disclosure summary > .lucide,
  .mobile-event-hero-overlay-bottom > div > .home-feed-pillar > .lucide {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    color: #fff;
  }
  .mobile-place-types-count {
    min-width: 25px;
    padding: 2px 6px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.16);
    color: #fff;
    font-size: .64rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
  }
  .mobile-place-types-popover {
    position: absolute;
    z-index: 8;
    /* Badge-ul stă sub acțiunile Salvare/Distribuire. Deschidem lista deasupra
       întregului grup, ca să rămână pe fotografie și să nu ajungă sub cardul
       cu titlul locației. */
    top: auto;
    bottom: calc(100% + 62px);
    right: 0;
    width: max-content;
    max-width: min(280px, calc(100vw - 32px));
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
    padding: 9px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 14px;
    background: rgba(15,23,42,.94);
    box-shadow: 0 12px 28px rgba(15,23,42,.3);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .mobile-place-type-chip {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 9px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    background: rgba(255,255,255,.09);
    color: #fff;
    font-size: .7rem;
    font-weight: 650;
    line-height: 1.25;
    white-space: nowrap;
  }
  .mobile-place-type-chip .lucide {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    color: currentColor;
  }
  /* Locațiile folosesc fotografii landscape, deci hero-ul poate fi mai compact
     decât cel al evenimentelor (optimizat pentru postere portrait/pătrate). */
  body.place-page .mobile-event-hero {
    height: clamp(315px, 84vw, 370px);
  }

  /* Fotografia acoperă întreaga înălțime a hero-ului; imaginile landscape sunt
     decupate simetric stânga/dreapta prin object-fit: cover. */
  body.place-page .mobile-event-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transform: none;
  }

  /* Tranziție fluidă de la fotografie către fundalul zonei de carduri. Cardul
     cu numele acoperă oricum capătul imaginii, deci fade-ul începe discret
     înaintea suprapunerii și ajunge la culoarea paginii în marginea de jos. */
  body.place-page .mobile-event-hero-scrim {
    background: linear-gradient(180deg,
        rgba(15, 23, 42, 0.75) 0%,
        rgba(15, 23, 42, 0.2) 18%,
        rgba(15, 23, 42, 0) 50%,
        rgba(15, 23, 42, 0) 75%,
        rgba(248, 250, 252, 0.5) 88%,
        rgba(248, 250, 252, 0.95) 96%,
        rgba(248, 250, 252, 1) 100%);
  }

  /* Card Unic Frosted Glass pentru Logo + Titlu + Rating (S1-08) */
  body.place-page .mobile-place-identity-block {
    position: sticky;
    top: env(safe-area-inset-top, 0px);
    z-index: 1025;
    isolation: isolate;
  }

  .mobile-place-hero-card {
    background: rgba(255, 255, 255, 0.88) !important;
    backdrop-filter: blur(16px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(160%) !important;
    padding: 10px 14px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.6) !important;
    width: 100% !important;
    box-shadow:
      0 4px 18px rgba(15, 23, 42, 0.14),
      0 10px 28px rgba(15, 23, 42, 0.08) !important;
  }

  .mobile-place-avatar-in-card {
    width: 46px;
    height: 46px;
    border-radius: 50% !important;
    object-fit: contain !important;
    object-position: center;
    padding: 0;
    background: #fff;
    box-sizing: border-box;
    border: 2px solid #ffffff !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12) !important;
    flex-shrink: 0 !important;
    display: block !important;
  }

  .mobile-place-hero-title {
    overflow-wrap: anywhere;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
    font-size: 1.25rem !important;
  }

  .mobile-place-rating-link {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
  }

  /* --- 3. Card Sintetic Mobil "Dintr-o privire" (.mobile-glance-card) --- */
  .mobile-glance-card {
    background: #ffffff;
    border: 1px solid rgba(226, 232, 240, 0.9);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
    margin: 0 0 16px !important;
    padding: 4px 14px;
  }
  .mobile-glance-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.7);
  }
  .mobile-glance-row:last-of-type {
    border-bottom: none;
  }
  .mobile-glance-icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(99, 102, 241, 0.08);
    color: var(--primary-color, #6366f1);
    margin-top: 2px;
  }
  .mobile-glance-icon .lucide,
  .mobile-glance-icon svg {
    width: 17px;
    height: 17px;
  }
  .mobile-glance-body {
    flex: 1 1 auto;
    min-width: 0;
  }
  .mobile-glance-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 2px;
  }
  .mobile-glance-value {
    font-size: 0.92rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.4;
    word-break: break-word;
  }
  .mobile-glance-action {
    flex: 0 0 auto;
    height: var(--touch-target-min, 44px);
    min-height: var(--touch-target-min, 44px);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid transparent;
    background:
      linear-gradient(#ffffff, #ffffff) padding-box,
      var(--gradient-brand-border, linear-gradient(115deg, rgba(79, 70, 229, 0.48), rgba(236, 72, 153, 0.48))) border-box;
    color: #334155;
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    margin: 0;
    transition: all 0.2s ease;
  }
  .mobile-glance-action:hover,
  .mobile-glance-action:active {
    background:
      linear-gradient(#fbf7fb, #fbf7fb) padding-box,
      var(--gradient-brand-border-strong, linear-gradient(115deg, rgba(79, 70, 229, 0.82), rgba(236, 72, 153, 0.82))) border-box;
    color: var(--color-brand-identity, #a21caf);
  }
  .mobile-glance-action:focus-visible {
    outline: 2px solid var(--color-brand-identity, #a21caf);
    outline-offset: 2px;
  }
  .mobile-glance-actions {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }
  .mobile-glance-whatsapp-action {
    width: var(--touch-target-min, 44px);
    min-width: var(--touch-target-min, 44px);
    padding: 0;
    justify-content: center;
    border-color: rgba(37, 211, 102, 0.4);
    background: rgba(37, 211, 102, 0.1);
    color: #128c3e;
  }
  .mobile-glance-whatsapp-action:hover,
  .mobile-glance-whatsapp-action:active {
    border-color: rgba(37, 211, 102, 0.62);
    background: rgba(37, 211, 102, 0.16);
    color: #087a34;
  }

  /* Panou Dropdown Expansibil Hartă Mobil */
  .mobile-event-map-dropdown {
    padding: 10px 0 14px;
    border-bottom: 1px solid var(--color-border, rgba(226, 232, 240, 0.7));
    margin-bottom: 4px;
    animation: fadeInMapDropdown 0.25s ease-out;
  }

  @keyframes fadeInMapDropdown {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* Rândul „Program" (stil Google Maps): cuvânt de stare colorat + detaliu discret. */
  #mobile-schedule-row {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    column-gap: 12px;
  }
  .mobile-program-value {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px;
  }
  .mobile-program-state {
    font-weight: 700;
  }
  .mobile-program-state.is-open {
    color: #16a34a;
  }
  .mobile-program-state.is-closed {
    color: #dc2626;
  }
  .mobile-program-sep {
    color: #cbd5e1;
    font-weight: 700;
  }
  .mobile-program-detail {
    color: #64748b;
    font-weight: 500;
  }

  /* Buton rotund „v" care deschide programul complet (singurul loc unde e afișat). */
  .mobile-program-toggle {
    flex: 0 0 auto;
    align-self: flex-start;
    width: 34px;
    height: 34px;
    margin-top: 2px;
    border-radius: 50%;
    border: 1.5px solid rgba(226, 232, 240, 0.9);
    background: #ffffff;
    color: #475569;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.2s ease, border-color 0.2s ease;
  }
  .mobile-program-toggle:active {
    background: rgba(99, 102, 241, 0.08);
    border-color: var(--primary-color, #6366f1);
  }
  .mobile-program-toggle .lucide,
  .mobile-program-toggle svg {
    width: 18px;
    height: 18px;
    transition: transform 0.25s ease;
  }
  .mobile-program-toggle[aria-expanded="true"] .lucide,
  .mobile-program-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
  }

  /* Dropdown-ul cu programul complet — apare sub linia de stare, în rândul „Program". */
  .mobile-program-schedule {
    grid-column: 2 / -1;
    width: 100%;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed rgba(226, 232, 240, 0.9);
  }
  .mobile-program-schedule[hidden] {
    display: none;
  }
  .mobile-program-day {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0;
    font-size: 0.86rem;
    color: #475569;
  }
  .mobile-program-day-hours {
    text-align: right;
    min-width: 0;
    color: #64748b;
  }
  .mobile-program-note {
    margin: 8px 0 0;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #64748b;
    overflow-wrap: anywhere;
  }
  .mobile-program-day.is-today {
    font-weight: 700;
    color: #0f172a;
  }
  .mobile-program-day.is-today .mobile-program-day-hours {
    color: #16a34a;
  }

  /* Meniul este la îndemână după descriere, inclusiv în previzualizarea Admin. */
  .place-vertical-flow {
    display: flex;
    flex-direction: column;
  }
  .place-vertical-flow > .about-box {
    order: -2;
  }
  .place-vertical-flow > .place-menu-card {
    order: -1;
  }

  /* --- 3b. Titluri de secțiune: același limbaj „eyebrow" ca la evenimente ---
     (0.72rem, MAJUSCULE, gri, iconiță redusă). Aplicat DOAR pe mobil, prin
     țintirea titlurilor h2 din fluxul de conținut și din sidebar; desktopul
     păstrează stilul h5 bold neschimbat (regulile de aici sunt în media-query). */
  .place-vertical-flow h2.fw-bold,
  .sticky-sidebar h2.fw-bold {
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: #64748b !important;
    margin-bottom: 0.75rem !important;
  }
  .place-vertical-flow h2.fw-bold .lucide,
  .place-vertical-flow h2.fw-bold svg,
  .sticky-sidebar h2.fw-bold .lucide,
  .sticky-sidebar h2.fw-bold svg {
    width: 14px !important;
    height: 14px !important;
    color: var(--primary-color, #6366f1) !important;
  }

  /* Aceleași dimensiuni ca .event-card-box din pagina evenimentului:
     Bootstrap p-4 (24px) este redus la 12px doar pe mobil. */
  .place-vertical-flow > .card,
  .sticky-sidebar > .card {
    padding: 12px !important;
    margin-bottom: 12px !important;
  }

  /* Comanda online aparține cardului de informații, nu unui grup de filtre. */
  .mobile-order-row {
    align-items: flex-start;
  }
  .mobile-order-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 9px;
  }
  .mobile-order-actions.has-single-action {
    grid-template-columns: minmax(0, 1fr);
  }
  .mobile-order-platform {
    min-width: 0;
    min-height: 40px;
    padding: 7px 8px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    border: 1px solid transparent;
    border-radius: 11px;
    color: #1e293b;
    font-size: 0.72rem;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
  }
  .mobile-order-platform > .lucide,
  .mobile-order-platform > svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
  }
  .mobile-order-platform span {
    min-width: 0;
    flex: 1 1 auto;
  }
  .mobile-order-platform .mobile-order-external {
    width: 12px;
    height: 12px;
    opacity: 0.58;
  }
  .mobile-order-platform--glovo {
    border-color: rgba(255, 194, 68, 0.58);
    background: rgba(255, 194, 68, 0.16);
    color: #664d03;
  }
  .mobile-order-platform--braila-delivery {
    border-color: rgba(124, 58, 237, 0.38);
    background: rgba(124, 58, 237, 0.1);
    color: #5b21b6;
  }
  .mobile-order-platform--wolt {
    border-color: rgba(0, 194, 232, 0.34);
    background: rgba(0, 194, 232, 0.1);
    color: #036983;
  }
  .mobile-order-platform:active {
    transform: scale(0.98);
  }
  .mobile-order-platform:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: 2px;
  }
  @media (max-width: 400px) {
    .mobile-order-platform .mobile-order-external {
      display: none;
    }
  }

  /* Etichetele tematice din „Despre noi” reutilizează limbajul vizual al
     paginii de eveniment. */
  .place-about-tags {
    margin-top: -2px;
  }
  .place-about-tags .mobile-vibe-tag-badge,
  .place-about-tags .place-tag-pill {
    gap: 6px !important;
    padding: 5px 12px !important;
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    color: #334155 !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    transform: none;
  }
  .place-about-tags .mobile-vibe-tag-badge:hover,
  .place-about-tags .mobile-vibe-tag-badge:active,
  .place-about-tags .place-tag-pill:hover,
  .place-about-tags .place-tag-pill:active {
    background: rgba(99, 102, 241, 0.08) !important;
    border-color: rgba(99, 102, 241, 0.3) !important;
    color: #4f46e5 !important;
    transform: none;
  }
  .place-about-tags .mobile-vibe-tag-badge.is-static,
  .place-about-tags .mobile-vibe-tag-badge.is-static:hover,
  .place-about-tags .mobile-vibe-tag-badge.is-static:active,
  .place-about-tags .place-tag-pill.is-static,
  .place-about-tags .place-tag-pill.is-static:hover,
  .place-about-tags .place-tag-pill.is-static:active {
    cursor: default;
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
    color: #334155 !important;
    transform: none !important;
  }
  .place-about-tags .mobile-vibe-tag-badge .lucide,
  .place-about-tags .mobile-vibe-tag-badge svg {
    width: 14px;
    height: 14px;
    color: var(--primary-color, #6366f1);
  }

  /* Evenimentele și promoțiile sunt informații de nivel superior, separate
     vizual de tag-uri și așezate după controlul descrierii. */
  .place-content-shortcuts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin-top: 12px;
    padding-top: 14px;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
  }
  .place-content-shortcut {
    min-width: 0;
    min-height: 66px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 14px;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  }
  .place-content-shortcut--events {
    color: #4338ca;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(129, 140, 248, 0.05));
    border: 1px solid rgba(99, 102, 241, 0.24);
  }
  .place-content-shortcut--promos {
    color: #be185d;
    background: linear-gradient(135deg, rgba(236, 72, 153, 0.11), rgba(244, 114, 182, 0.04));
    border: 1px solid rgba(236, 72, 153, 0.22);
  }
  .place-content-shortcut:hover,
  .place-content-shortcut:active {
    color: inherit;
    transform: translateY(-1px);
    box-shadow: 0 7px 16px rgba(15, 23, 42, 0.08);
    text-decoration: none;
  }
  .place-content-shortcut:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: 2px;
  }
  .place-content-shortcut-icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.8);
  }
  .place-content-shortcut-icon .lucide,
  .place-content-shortcut-icon svg {
    width: 17px;
    height: 17px;
  }
  .place-content-shortcut-copy {
    min-width: 0;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 1px;
  }
  .place-content-shortcut-label {
    color: #1e293b;
    font-size: 0.82rem;
    font-weight: 750;
    line-height: 1.2;
    white-space: nowrap;
  }
  .place-content-shortcut-meta {
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
  }
  .place-content-shortcut-meta strong {
    color: currentColor;
    font-size: 0.9rem;
    font-weight: 800;
  }
  .place-content-shortcut-arrow {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    opacity: 0.7;
  }

  /* Rețelele locației sunt integrate în „Despre noi”, identic cu rândul
     circular de pe pagina individuală a evenimentului. */
  .place-mobile-socials {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
  }
  .place-mobile-website-cta {
    display: inline-flex;
    width: auto;
    min-height: 44px;
    align-items: center;
    gap: 7px;
    padding: 0 10px 0 0;
    border: 0;
    border-radius: 0;
    color: #52675d;
    background: transparent;
    box-shadow: none;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
  }
  .place-mobile-website-icon {
    display: inline-flex;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: inherit;
    background: #edf3ef;
  }
  .place-mobile-website-icon svg { width: 20px; height: 20px; }
  .place-mobile-website-cta .place-website-external-icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
  }
  .place-mobile-website-cta:hover {
    color: #08664f;
    text-decoration: underline;
  }
  .place-mobile-website-cta:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: 3px;
  }
  .place-mobile-socials-label {
    margin: 12px 0 10px;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .place-mobile-socials .social-circle-btn {
    flex: 0 0 44px;
    border: 0;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
    text-decoration: none;
  }
  .place-mobile-socials .social-circle-btn:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: 3px;
  }

  /* La lățimile iPhone (390px și mai mici), tile-urile devin mai compacte.
     Săgeata este scoasă din flux ca să rămână vizibilă fără să rupă titlul. */
  @media (max-width: 400px) {
    .place-content-shortcut {
      position: relative;
      gap: 8px;
      padding: 8px;
    }
    .place-content-shortcut-icon {
      flex-basis: 32px;
      width: 32px;
      height: 32px;
    }
    .place-content-shortcut-label {
      font-size: 0.78rem;
    }
    .place-content-shortcut-arrow {
      position: absolute;
      top: 50%;
      right: 8px;
      transform: translateY(-50%);
    }
  }

  /* Fallback pentru ecrane excepțional de înguste. */
  @media (max-width: 340px) {
    .place-content-shortcuts {
      grid-template-columns: 1fr;
    }
  }

  /* Al treilea thumbnail închide grila pe mobil în loc să lase jumătatea
     dreaptă goală; raportul landscape păstrează cardul compact. */
  @media (max-width: 767.98px) {
    .place-gallery-grid > .place-gallery-item--wide-mobile {
      width: 100%;
    }
    .place-gallery-grid > .place-gallery-item--wide-mobile > .ratio {
      --bs-aspect-ratio: 50%;
    }
  }

  .place-gallery-single-frame {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    background: #f8fafc;
  }

  .place-gallery-single-frame img {
    position: static;
    width: 100% !important;
    height: auto !important;
    max-height: 420px;
    object-fit: contain;
  }

  /* --- Meniu locație: CTA online + reader orizontal pentru pagini --- */
  .place-menu-online-link {
    min-height: 64px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px 12px;
    border: 1px solid rgba(99, 102, 241, 0.2);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.05));
    color: #1e293b;
    text-decoration: none;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  }
  .place-menu-online-link:hover,
  .place-menu-online-link:active {
    color: #1e293b;
    border-color: rgba(99, 102, 241, 0.38);
    box-shadow: 0 7px 16px rgba(79, 70, 229, 0.09);
    transform: translateY(-1px);
    text-decoration: none;
  }
  .place-menu-online-link:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: 2px;
  }
  .place-menu-online-icon {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: #ffffff;
    color: #4f46e5;
    box-shadow: 0 3px 10px rgba(79, 70, 229, 0.1);
  }
  .place-menu-online-icon .lucide,
  .place-menu-online-icon svg {
    width: 18px;
    height: 18px;
  }
  .place-menu-online-copy {
    min-width: 0;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
  }
  .place-menu-online-copy strong {
    font-size: 0.86rem;
    font-weight: 750;
    line-height: 1.25;
  }
  .place-menu-online-copy small {
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1.3;
  }
  .place-menu-online-arrow {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: #6366f1;
  }

  .place-menu-pages.has-online-menu {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
  }
  .place-menu-pages-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 9px;
  }
  .place-menu-pages-header h3 {
    margin: 0;
    color: #334155;
    font-size: 0.82rem;
    font-weight: 750;
    line-height: 1.3;
  }
  .place-menu-pages-header span {
    flex: 0 0 auto;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 600;
  }
  .place-menu-rail {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    margin-right: -12px;
    padding: 1px 12px 8px 0;
    scroll-padding-left: 0;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .place-menu-rail::-webkit-scrollbar {
    display: none;
  }
  .place-menu-page {
    flex: 0 0 min(46vw, 165px);
    scroll-snap-align: start;
  }
  .place-menu-page-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border: 1px solid rgba(203, 213, 225, 0.9);
    border-radius: 12px;
    background: #f8fafc;
    box-shadow: 0 5px 14px rgba(15, 23, 42, 0.07);
  }
  .place-menu-page-image {
    width: 100%;
    height: 100%;
    display: block;
    padding: 4px;
    object-fit: contain;
    background: #ffffff;
    cursor: zoom-in;
  }
  .place-menu-page-image:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: -3px;
  }
  .place-menu-page-number {
    position: absolute;
    right: 7px;
    bottom: 7px;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.68);
    color: #ffffff;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    pointer-events: none;
  }

  /* Facilități: informații scanabile, distincte vizual de etichetele locației. */
  .place-facilities-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
  }
  .place-facility-item {
    min-width: 0;
    min-height: 46px;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding: 7px 9px !important;
    border: 1px solid rgba(203, 213, 225, 0.82) !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    color: #334155 !important;
    font-size: 0.78rem !important;
    font-weight: 650 !important;
    line-height: 1.25;
    white-space: normal;
    text-align: left;
  }
  .place-facility-item.is-extra.d-none {
    display: none !important;
  }
  .place-facility-item > .lucide,
  .place-facility-item > svg,
  .place-facility-item > span:first-child {
    flex: 0 0 30px;
    width: 30px !important;
    height: 30px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px;
    border-radius: 9px;
    background: rgba(99, 102, 241, 0.09);
    color: #6366f1 !important;
    stroke: #6366f1 !important;
  }
  .place-facility-item > span:first-child .lucide,
  .place-facility-item > span:first-child svg {
    width: 16px !important;
    height: 16px !important;
  }
  .place-facility-item > span:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .place-facilities-toggle {
    width: 100%;
    min-height: 36px;
    margin-top: 9px;
    padding: 5px 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #6366f1;
    font-size: 0.78rem;
    font-weight: 750;
  }
  .place-facilities-toggle .lucide {
    width: 15px;
    height: 15px;
    transition: transform 0.2s ease;
  }
  .place-facilities-toggle[aria-expanded="true"] .lucide {
    transform: rotate(180deg);
  }
  .place-facilities-toggle:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: 1px;
  }

  /* Evenimentele locației reutilizează rail-ul „S-ar putea să-ți placă și…”
     din pagina individuală a evenimentului. */
  .place-events-mobile {
    margin: 4px 0 12px;
    padding: 14px 0 4px;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
  }
  .place-events-mobile-header {
    margin-bottom: 10px;
    padding: 0 12px;
  }
  .place-events-mobile-header > .lucide,
  .place-events-mobile-header > svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
  }
  .place-events-mobile .mobile-similar-header {
    min-width: 0;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    line-height: 1.35;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: #64748b !important;
  }
  .place-events-rail {
    margin-right: -12px;
    margin-left: -12px;
  }

  /* Promoții: carduri text-led, lizibile și acționabile, fără repetarea
     fotografiei sau a numelui locației. */
  .place-promotions-mobile {
    margin: 4px 0 4px;
    padding: 14px 0 4px;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
  }
  .place-promotions-mobile-header {
    margin-bottom: 10px;
    padding: 0 12px;
    color: #be185d;
  }
  .place-promotions-mobile-header > .lucide,
  .place-promotions-mobile-header > svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
  }
  .place-promotions-mobile-header h2 {
    min-width: 0;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .place-promotions-list {
    display: grid;
    gap: 10px;
  }
  .place-promotion-card {
    min-width: 0;
    padding: 12px;
    overflow: hidden;
    border: 1px solid rgba(236, 72, 153, 0.2);
    border-radius: 16px;
    background: linear-gradient(135deg, #fff7fb 0%, #fdf2f8 100%);
    box-shadow: 0 5px 16px rgba(131, 24, 67, 0.05);
  }
  .place-promotion-card-top {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
  }
  .place-promotion-icon {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #ffffff;
    color: #db2777;
    box-shadow: 0 3px 10px rgba(190, 24, 93, 0.08);
  }
  .place-promotion-icon .lucide,
  .place-promotion-icon svg {
    width: 17px;
    height: 17px;
  }
  .place-promotion-eyebrow {
    min-width: 0;
    flex: 1 1 auto;
    color: #be185d;
    font-size: 0.67rem;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.055em;
  }
  .place-promotion-edit {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #ffffff;
    color: #92400e;
    text-decoration: none;
  }
  .place-promotion-edit .lucide,
  .place-promotion-edit svg {
    width: 14px;
    height: 14px;
  }
  .place-promotion-title {
    margin: 0;
    color: #2a1830;
    font-size: 0.98rem;
    font-weight: 750;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .place-promotion-description {
    margin: 5px 0 0;
    color: #6b5b70;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.45;
  }
  .place-promotion-expiry {
    margin-top: 9px;
    display: flex;
    align-items: center;
    gap: 5px;
    color: #7c6d80;
    font-size: 0.7rem;
    font-weight: 650;
    line-height: 1.3;
  }
  .place-promotion-expiry .lucide,
  .place-promotion-expiry svg {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
  }
  .place-promotion-expiry.is-urgent {
    color: #dc2626;
  }
  .place-promotion-code {
    width: 100%;
    min-height: 54px;
    margin-top: 10px;
    padding: 7px 9px 7px 11px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px dashed rgba(219, 39, 119, 0.42);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.82);
    color: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .place-promotion-code-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
  }
  .place-promotion-code-copy small {
    color: #8b728d;
    font-size: 0.58rem;
    font-weight: 750;
    letter-spacing: 0.055em;
  }
  .place-promotion-code-copy strong {
    max-width: 180px;
    overflow: hidden;
    color: #be185d;
    font-size: 0.96rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .place-promotion-code .copy-status-btn {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border-radius: 9px;
    background: rgba(236, 72, 153, 0.1);
    color: #be185d !important;
    font-size: 0.7rem;
    font-weight: 750;
  }
  .place-promotion-code .copy-status-btn.text-success {
    background: rgba(22, 163, 74, 0.1);
    color: #15803d !important;
  }
  .place-promotion-code .copy-status-btn .lucide,
  .place-promotion-code .copy-status-btn svg {
    width: 14px;
    height: 14px;
  }
  .place-promotion-code:focus-visible,
  .place-promotion-edit:focus-visible,
  .place-promotions-toggle:focus-visible {
    outline: 2px solid #db2777;
    outline-offset: 2px;
  }
  .place-promotion-direct {
    min-height: 44px;
    margin-top: 10px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(236, 72, 153, 0.12);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.65);
    color: #6b5b70;
    font-size: 0.74rem;
    font-weight: 650;
  }
  .place-promotion-direct .lucide,
  .place-promotion-direct svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    color: #db2777;
  }
  .place-promotions-toggle {
    width: 100%;
    min-height: 38px;
    margin-top: 8px;
    padding: 5px 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #be185d;
    font-size: 0.78rem;
    font-weight: 750;
  }
  .place-promotions-toggle .lucide,
  .place-promotions-toggle svg {
    width: 15px;
    height: 15px;
    transition: transform 0.2s ease;
  }
  .place-promotions-toggle[aria-expanded="true"] .lucide,
  .place-promotions-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
  }

  .place-promotion-item {
    min-width: 0;
  }

  .place-promotion-item.is-linked-target .promotions-list-card {
    outline:2px solid rgba(99,102,241,.5);
    outline-offset:2px;
    box-shadow:0 12px 28px rgba(99,102,241,.16);
  }

  .suggest-edit-box.event-card-box.place-owner-correction {
    margin: 2px 0 0 !important;
    padding: 4px 0 0 !important;
  }
  body.place-page main.container + .newsletter-banner {
    width: calc(100% - 24px);
    max-width: 516px;
    margin-top: 14px !important;
    margin-right: auto !important;
    margin-bottom: 12px !important;
    margin-left: auto !important;
  }

  /* --- 5. Descriere Expandabilă "Citește mai mult" --- */
  .mobile-description-wrapper.collapsed {
    max-height: var(--mobile-description-collapsed-height, 3.2em);
    overflow: hidden;
  }
  .mobile-description-toggle {
    border: none;
    background: transparent;
    color: #6366f1 !important;
    font-size: 0.84rem;
    font-weight: 700;
    padding: 4px 12px !important;
    border-radius: 999px;
  }
  #despre-noi .text-center.mt-3 {
    margin-top: 6px !important;
  }

  /* --- 6. Bară CTA flotantă jos pe mobil (.mobile-place-cta-bar) ---
     Aliniată vizual cu bara de la evenimente (.mobile-cta-bar): pastilă flotantă,
     detașată de jos, blur + umbră. safe-area se citește o singură dată în
     mobile-navigation.css (--mobile-safe-bottom); aici doar o reutilizăm. */
  body.place-page {
    --place-cta-bar-height: 64px;
    padding-bottom: 0 !important;
  }

  body.place-page .home-footer {
    padding-bottom: calc(16px + var(--place-cta-bar-height) + var(--mobile-safe-bottom, 0px));
  }

  .mobile-place-cta-bar {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--mobile-detail-floating-pill-bottom);
    width: calc(100% - 24px);
    max-width: 540px;
    z-index: 1040; /* sub navbar (1050) și sub modale Bootstrap (1055+) */
    display: flex;
    align-items: stretch;
    gap: 10px;
    padding: 8px 12px;
    background: var(--mobile-floating-pill-background);
    backdrop-filter: var(--mobile-floating-pill-filter);
    -webkit-backdrop-filter: var(--mobile-floating-pill-filter);
    border: var(--mobile-floating-pill-border);
    border-radius: 999px;
    box-shadow: var(--mobile-floating-pill-shadow);
  }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .mobile-place-cta-bar { background: var(--mobile-floating-pill-fallback); }
  }

  /* Buton secundar circular (navigare, WhatsApp) — oglindește „Particip" de la evenimente. */
  .mobile-place-cta-icon {
    flex: 0 0 auto;
    width: 48px;
    min-height: 48px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1.5px solid #cbd5e1;
    background: #ffffff;
    color: #334155;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease;
  }
  .mobile-place-cta-icon .lucide { width: 20px; height: 20px; flex: 0 0 auto; }
  .mobile-place-cta-whatsapp {
    border-color: rgba(37, 211, 102, 0.4);
    background: rgba(37, 211, 102, 0.1);
    color: #128c3e;
  }

  .mobile-place-cta-save.is-saved,
  .mobile-place-cta-save[aria-pressed="true"] {
    border-color: rgba(239, 68, 68, 0.45) !important;
    background: rgba(239, 68, 68, 0.12) !important;
    color: #ef4444 !important;
    box-shadow: 0 3px 10px rgba(239, 68, 68, 0.18) !important;
  }
  .mobile-place-cta-save.is-saved .lucide,
  .mobile-place-cta-save.is-saved svg,
  .mobile-place-cta-save[aria-pressed="true"] .lucide,
  .mobile-place-cta-save[aria-pressed="true"] svg {
    fill: #ef4444 !important;
    color: #ef4444 !important;
    stroke: #ef4444 !important;
  }

  /* CTA principal dominant — oglindește butonul „Bilete" de la evenimente (gradient, flex:1). */
  .mobile-place-cta-primary {
    flex: 1 1 auto;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, #10b981, #059669);
    color: #ffffff !important;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
  }
  .mobile-place-cta-primary .lucide { width: 18px; height: 18px; flex: 0 0 auto; }
  .mobile-place-cta-primary-menu {
    background: linear-gradient(135deg, #6366f1, #4f46e5);
    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
  }

  .mobile-place-cta-icon:focus-visible,
  .mobile-place-cta-primary:focus-visible {
    outline: 2px solid var(--primary-color, #6366f1);
    outline-offset: 2px;
  }

  /* Toasturile stau deasupra barei CTA (aceeași variabilă de înălțime). */
  body.place-page .toast-container {
    bottom: calc(var(--place-cta-bar-height) + var(--mobile-safe-bottom, 0px) + var(--mobile-browser-toolbar-offset, 0px) + 8px) !important;
  }

  @media (max-width: 379.98px) {
    .mobile-place-cta-bar {
      gap: 6px;
      padding: 8px;
    }
    .mobile-place-cta-icon {
      flex-basis: 44px;
      width: 44px;
    }
    .mobile-place-cta-primary {
      min-width: 0;
      padding: 0 8px;
      gap: 5px;
      font-size: 0.82rem;
    }
  }

  /* --- 7. Harta & Butoane Navigație --- */
  .nav-btn-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  .nav-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 10px 14px !important;
    min-height: 44px !important;
    border-radius: 999px !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  body.place-page main.container + .newsletter-banner {
    max-width: 616px;
  }
}

/* Recomandări de locații — aceeași logică de rail ca la evenimente, dar cu
   imagini landscape și patru carduri într-o grilă pe desktop. */
.place-recommendations {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid rgba(226, 232, 240, 0.92);
}

.place-recommendations-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}

.place-recommendations-header > svg,
.place-recommendations-header > .lucide {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  color: #6366f1;
}

.place-recommendations-header h2 {
  margin: 0;
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.place-recommendations-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.place-recommendation-link {
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.place-recommendation-card {
  height: 100%;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 17px;
  background: #ffffff;
  box-shadow: 0 6px 20px rgba(20, 16, 40, 0.055);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.place-recommendation-card.is-promoted {
  border-color: rgba(245, 158, 11, 0.48);
  box-shadow: 0 7px 22px rgba(245, 158, 11, 0.13);
}

.place-recommendation-media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #e2e8f0;
}

.place-recommendation-media > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.place-recommendation-category {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  overflow: hidden;
  padding: 0;
  margin: 0 0 6px;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  color: #4c1d95 !important;
  font-size: 0.62rem;
  font-weight: 750;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: none;
}

.place-recommendation-category-item {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex: 0 0 auto;
}

.place-recommendation-category-item + .place-recommendation-category-item {
  margin-left: 5px;
}

.place-recommendation-promoted {
  position: absolute;
  z-index: 2;
  bottom: 8px;
  left: 8px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: calc(100% - 16px);
  overflow: hidden;
  padding: 4px 7px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(24, 24, 27, 0.66);
  color: #ffffff;
  font-size: 0.56rem;
  font-weight: 750;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: 0 2px 7px rgba(15, 23, 42, 0.2);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.place-recommendation-category svg,
.place-recommendation-promoted svg {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
}

.place-recommendation-body {
  padding: 11px;
}

.place-recommendation-body h3 {
  min-width: 0;
  margin: 0 0 6px;
  overflow: hidden;
  color: #1e293b;
  font-size: 0.88rem;
  font-weight: 750;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.place-recommendation-vibes {
  min-width: 0;
  display: block;
  width: 100%;
  overflow: hidden;
  margin: 0;
  color: #64748b;
  font-size: 0.7rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (hover: hover) and (pointer: fine) {
  .place-recommendation-link:hover .place-recommendation-card {
    transform: translateY(-3px);
    box-shadow: 0 11px 27px rgba(20, 16, 40, 0.11);
  }

  .place-recommendation-link:hover .place-recommendation-media > img {
    transform: scale(1.04);
  }
}

@media (max-width: 991.98px) {
  /* Viewer galerie full-bleed: elimină gutter-ul generic al modalului pentru ca
     fotografiile să folosească întreaga lățime disponibilă pe telefon. */
  #globalZoomModal.zoom-modal {
    padding-inline: 0;
  }

  #globalZoomModal .zoom-modal-content {
    width: 100vw;
    max-width: none;
    max-height: calc(100vh - 96px);
    max-height: calc(100dvh - 96px);
    border-radius: 0;
    box-shadow: none;
  }

  .place-recommendations {
    margin-top: 22px;
    padding-top: 17px;
  }

  .place-recommendations-header {
    padding-inline: 12px;
    margin-bottom: 10px;
  }

  .place-recommendations-header h2 {
    font-size: 0.72rem;
  }

  .place-recommendations-grid {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    margin-inline: -12px;
    padding: 2px 12px 10px;
    scroll-padding-inline: 12px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .place-recommendations-grid::-webkit-scrollbar {
    display: none;
  }

  .place-recommendation-link {
    width: 152px;
    flex: 0 0 152px;
    scroll-snap-align: start;
  }

  .place-recommendation-media {
    height: 100px;
    aspect-ratio: auto;
  }

  .place-recommendation-body {
    padding: 10px;
  }

  .place-recommendation-body h3 {
    font-size: 0.82rem;
  }
}

@media (forced-colors: active) {
  body.place-page .mobile-glance-action {
    border-color: ButtonText !important;
    background: Canvas !important;
    color: ButtonText !important;
  }
}
@media (max-width: 991.98px) {
  .mobile-map-toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .mobile-map-toggle-icon .public-inline-icon {
    width: 14px;
    height: 14px;
  }

  .mobile-map-toggle-icon--close {
    display: none;
  }

  [aria-expanded="true"] .mobile-map-toggle-icon--pin {
    display: none;
  }

  [aria-expanded="true"] .mobile-map-toggle-icon--close {
    display: block;
  }
}
