/* Compact gym detail panel (map/_gym_detail.php; desktop panel + mobile sheet). Mockup 2026-10-12: one rhythm of small section
   labels and hairlines instead of stacked cards, details on demand (crowd line, 6 feature chips, compact offer, 3 nearby). */
.view--detail .block { margin: 0; padding: 14px 0; border-top: 1px solid var(--fb-border); }
.view--detail .block:empty { display: none; }
.view--detail .detail__h2 {
    display: flex; align-items: center; gap: 6px; margin: 0 0 8px;
    font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fb-text-muted);
}
.view--detail .detail__h2 .ic { width: 14px; height: 14px; }
.view--detail .actions { margin-bottom: 4px; }

/* hours: first section, one line */
.view--detail .block .acc { min-height: 44px; }

/* crowd: one line until there is data or the visitor opens it */
.view--detail .crowd { margin: 4px 0 12px; }
.view--detail .crowd--compact { padding: 0; background: none; }
.crowd-row {
    display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 12px;
    background: var(--fb-surface-secondary); color: var(--fb-text); font: inherit; font-size: 14px; text-align: left; cursor: pointer;
}
.crowd-row .crowd__dot { background: var(--fb-neutral); }
.crowd-row__cta { margin-left: auto; color: var(--fb-primary); font-weight: 650; white-space: nowrap; }
.crowd-row:focus-visible { outline: none; box-shadow: var(--fb-focus); }

/* status row pill → jumps to the offer */
.tag--offer { border: 0; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; background: var(--fb-accent-soft); color: var(--fb-navy); }
:root[data-theme="dark"] .tag--offer { background: rgba(6, 185, 135, .18); color: var(--fb-text); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tag--offer { background: rgba(6, 185, 135, .18); color: var(--fb-text); } }

/* offer: compact card in the panel (full card stays on venue pages + the hub) */
.view--detail .fb-offers { margin: 0; }
.fb-offer--compact { padding: 12px; margin-bottom: 8px; }
.fb-offer--compact .fb-offer__head { margin-bottom: 2px; }
.fb-offer--compact .fb-offer__benefit { font-size: 17px; }
.fb-offer--compact .fb-offer__title { margin: 0 0 4px; font-size: 16px; }
.fb-offer--compact .fb-offer__meta { margin: 0 0 8px; font-size: 13px; }
.fb-offer--compact .fb-obtn { min-height: 40px; padding: 0 14px; font-size: 14px; }
.view--detail .fb-offers__disclaimer { font-size: 12px; }

/* prices + one-visit facts */
.view--detail .prices .is-key dt, .view--detail .prices .is-key dd { font-weight: 700; color: var(--fb-text); }
.visit-facts { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 8px 0 0; padding: 0; font-size: 13px; color: var(--fb-text-secondary); }
.visit-facts .is-on span:first-child { color: var(--fb-green); font-weight: 700; }
.visit-facts .is-unknown { color: var(--fb-text-muted); }

/* features: 6 chips + "show all" */
.feat__more { padding: 0 !important; background: none !important; }
.feat__more::before { display: none !important; }
.feat__more button {
    min-height: 28px; padding: 4px 10px; border: 1px dashed var(--fb-border); border-radius: 8px; background: none; color: var(--fb-primary);
    font: inherit; font-size: 13px; font-weight: 650; cursor: pointer;
}

/* about: 3 lines, contacts as one row */
.detail__desc.is-clamped { display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.links--row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.links--row li { margin: 0; }
.links--row a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 1px solid var(--fb-border); border-radius: 999px; font-size: 13px; }
.view--detail .link--inline { margin-top: 6px; }

/* nearby: 3 tight rows, no explanatory line (the distance is in each row) */
.view--detail .list--nearby + .link--inline { margin-top: 4px; }
.view--detail .block > .list--nearby { margin-top: 0; }
.view--detail .list--nearby .card__main { padding: 8px 0; }
.view--detail .block:has(> .list--nearby) > .hint { display: none; }

/* footer: one quiet line + two small buttons */
.view--detail .detail__foot { padding-bottom: 8px; }
.view--detail .detail__foot .hint { margin: 0 0 6px; font-size: 12px; }
.view--detail .detail__secondary .btn { min-height: 36px; padding: 0 12px; font-size: 13px; }

/* phones: tighter rhythm in the detail sheet */
@media (max-width: 767px) {
    .view--detail .block { padding: 12px 0; }
    .view--detail .detail__h2 { margin-bottom: 6px; }
    .view--detail .crowd { margin: 2px 0 10px; }
    .fb-offer--compact { padding: 10px 12px; }
    .fb-offer--compact .fb-offer__title { font-size: 15px; }
    .view--detail .fb-offers__disclaimer { margin-top: 2px; font-size: 11px; line-height: 1.35; }
    .view--detail .prices > div { padding: 6px 0; }
    .visit-facts { margin-top: 6px; font-size: 12px; }
}

/* no broken short phrases ("24 ur", "8 €", "Odpiralni čas") — owner 2026-10-12 */
.view--detail .tag, .view--detail .state, .view--detail .prices dd, .crowd-row__cta, .view--detail .fb-offer__benefit, .view--detail .fb-offer__was { white-space: nowrap; }
.view--detail .acc { gap: 8px; }
.view--detail .acc__title { flex: 0 0 auto; white-space: nowrap; }
.view--detail .acc__sub { flex: 1 1 auto; min-width: 0; margin-left: auto; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 400px) {
    .view--detail .acc__title { font-size: 15px; }
    .view--detail .acc__sub { font-size: 13px; }
    .view--detail .detail__status { row-gap: 6px; }
}

/* Gym-page LCP: server-rendered card head (map/_gym_float.php) under the real card; while it exists the real card appears in place
   (no slide/fade), so the swap is invisible. Mobile only, like the real card. */
.gcard--ssr { pointer-events: none; }
@media (min-width: 1024px) { .gcard--ssr { display: none; } }
.gcard--ssr ~ .gcard.gc-in, .gcard--ssr ~ .gcard.gc-in--0 { transition: none !important; transform: none !important; opacity: 1 !important; }

/* ---- 2026-10-16 restyle (owner: same look as the venue pages) — CSS only, markup and server HTML unchanged ---- */
.view--detail .detail__name { font-size: 26px; font-weight: 800; letter-spacing: -.03em; line-height: 1.08; text-wrap: balance; }
.dsheet .detail__name { font-size: 28px; }
.view--detail .detail__addr { margin-top: 6px; }
/* open/closed as a pill with a pulsing dot (like /si/tenis/… pages) */
.view--detail .detail__status { gap: 8px 10px; margin: 14px 0 12px; }
.view--detail .detail__status .state--lg { padding: 7px 14px 7px 12px; border-radius: 999px; font-size: 15px; font-variant-numeric: tabular-nums;
    background: color-mix(in srgb, currentColor 13%, transparent); }
.view--detail .detail__status .state--lg .state__dot { width: 9px; height: 9px; }
.view--detail .detail__status .state--open .state__dot, .view--detail .detail__status .state--247 .state__dot { animation: dp-pulse 2.4s ease-out infinite; }
@keyframes dp-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 50%, transparent); } 70%, 100% { box-shadow: 0 0 0 9px transparent; } }
@media (prefers-reduced-motion: reduce) { .view--detail .detail__status .state__dot { animation: none !important; } }
/* actions: taller, rounder, easy to hit */
.view--detail .actions { gap: 10px; margin: 6px 0 14px; }
.view--detail .action { min-height: 64px; border-radius: 18px; font-weight: 650; }
.view--detail .action--go { box-shadow: 0 10px 24px rgba(0, 114, 242, .28); }
/* hours: the weekly table is a list with today as a highlighted row */
.view--detail .hours { border-collapse: separate; border-spacing: 0 2px; margin-top: 6px; }
.view--detail .hours th, .view--detail .hours td { padding: 9px 12px; }
.view--detail .hours td { text-align: right; font-weight: 600; color: var(--fb-text); }
.view--detail .hours tr > :first-child { border-radius: 10px 0 0 10px; }
.view--detail .hours tr > :last-child { border-radius: 0 10px 10px 0; }
.view--detail .hours tr.is-today th, .view--detail .hours tr.is-today td { background: var(--fb-primary-soft); color: var(--fb-primary); font-weight: 700; }
:root[data-theme="dark"] .view--detail .hours tr.is-today th, :root[data-theme="dark"] .view--detail .hours tr.is-today td { color: #8CC4FF; }
/* contact / social links: bigger touch targets with icons */
.view--detail .links--row { gap: 8px; }
.view--detail .links--row a { min-height: 44px; padding: 0 16px; border-radius: 14px; font-weight: 600; font-size: 14px; }
.view--detail .links--row .ic { width: 18px; height: 18px; }
/* section labels keep their rhythm; blocks breathe a little more */
.view--detail .block { padding: 16px 0; }
