/* FitBlizu Ponudbe (docs/OFFERS.md): offer cards on gym/venue pages, the hub page, the map card pill and the
   "S ponudbo" chip state. Self-contained (the map shell does not load content.css); brand tokens from app.css. */
.fb-offers { margin: 24px 0; }
.fb-offers > h2, .fb-offers > h3 { margin: 0 0 12px; }
.fb-offer {
    position: relative; margin: 0 0 12px; padding: 16px; border: 1px solid var(--fb-border); border-radius: var(--fb-radius);
    background: var(--fb-surface); color: var(--fb-text); overflow-wrap: anywhere; scroll-margin-top: 80px;
}
.fb-offer.is-highlight { border-color: var(--fb-primary); box-shadow: 0 0 0 3px rgba(0, 114, 242, .18); }
.fb-offer__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; margin-bottom: 6px; }
.fb-offer__type {
    display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; font-size: 13px; font-weight: 650;
    background: var(--fb-accent-soft); color: var(--fb-navy);
}
.fb-offer__benefit { font-size: 20px; font-weight: 750; color: var(--fb-text); }
.fb-offer__was { font-size: 15px; color: var(--fb-text-muted); }
.fb-offer__title { margin: 0 0 6px; font-size: 18px; line-height: 1.3; }
.fb-offer__where { margin: 0 0 6px; font-weight: 600; }
.fb-offer__desc, .fb-offer__cond { margin: 0 0 8px; color: var(--fb-text-secondary); line-height: 1.5; }
.fb-offer__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 12px; font-size: 14px; color: var(--fb-text-muted); }
.fb-offer__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.fb-offer__note { margin: 8px 0 0; font-size: 13px; color: var(--fb-text-muted); }
.fb-offer__code { flex: 1 1 auto; }
.fb-offer__code > summary { list-style: none; }
.fb-offer__code > summary::-webkit-details-marker { display: none; }
.fb-offer__code p { margin: 10px 0 0; }
.fb-offer__code code { display: inline-block; padding: 4px 10px; border-radius: 8px; background: var(--fb-surface-secondary); font-size: 18px; font-weight: 700; letter-spacing: .04em; }
.fb-offers__disclaimer { margin: 4px 0 0; font-size: 13px; color: var(--fb-text-muted); }
.fb-offer-gone { margin: 0 0 16px; padding: 12px 16px; border-radius: var(--fb-radius); border: 1px solid var(--fb-warning); background: var(--fb-surface-secondary); }
.fb-offer-gone p { margin: 0 0 4px; }
.fb-offer-gone p:last-child { margin: 0; }

.fb-obtn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 16px; border: 1px solid transparent;
    border-radius: 12px; font: inherit; font-size: 15px; font-weight: 650; line-height: 1.2; text-decoration: none; cursor: pointer; max-width: 100%;
    -webkit-tap-highlight-color: transparent;
}
.fb-obtn:focus-visible { outline: none; box-shadow: var(--fb-focus); }
.fb-obtn--primary, .fb-obtn--primary:visited, .cpage a.fb-obtn--primary, .cpage a.fb-obtn--primary:visited { color: #fff; background: var(--fb-primary); text-decoration: none; }
.fb-obtn--primary:hover, .cpage a.fb-obtn--primary:hover { color: #fff; background: var(--fb-primary-strong); }
.fb-obtn--ghost, .cpage a.fb-obtn--ghost { color: var(--fb-text); background: var(--fb-surface); border-color: var(--fb-border); text-decoration: none; }
.fb-obtn--ghost:hover { border-color: var(--fb-primary); }
@media (max-width: 379px) { .fb-offer:not(.fb-offer--compact) .fb-offer__actions .fb-obtn, .fb-offer:not(.fb-offer--compact) .fb-offer__code { flex: 1 1 100%; } .fb-offer__code > summary { width: 100%; } }

/* map card pill ("Ponudba: …") inside the gym/venue popup */
.fb-offer-pill {
    display: flex; align-items: center; gap: 6px; margin: 6px 0 0; padding: 6px 10px; border-radius: 10px; font-size: 13px; font-weight: 600; line-height: 1.3;
    background: var(--fb-accent-soft); color: var(--fb-navy);
}
.fb-offer-pill svg { flex: 0 0 auto; width: 14px; height: 14px; }

/* hub page */
.fb-offer-hub__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 24px; }
.fb-offer-hub__owners { margin: 32px 0 0; padding: 16px; border-radius: var(--fb-radius); background: var(--fb-surface-secondary); }

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .fb-offer__type, :root:not([data-theme="light"]) .fb-offer-pill { background: rgba(6, 185, 135, .18); color: var(--fb-text); }
}
:root[data-theme="dark"] .fb-offer__type, :root[data-theme="dark"] .fb-offer-pill { background: rgba(6, 185, 135, .18); color: var(--fb-text); }
@media (prefers-reduced-motion: no-preference) { .fb-obtn { transition: background var(--fb-dur-fast) var(--fb-ease), border-color var(--fb-dur-fast) var(--fb-ease); } }
button.fb-offer-pill, a.fb-offer-pill {
    width: 100%; min-height: 36px; border: 0; font: inherit; font-size: 13px; font-weight: 600; text-align: left; text-decoration: none; cursor: pointer;
}
button.fb-offer-pill::before, a.fb-offer-pill::before { content: "🎁"; font-size: 13px; line-height: 1; }
button.fb-offer-pill:focus-visible, a.fb-offer-pill:focus-visible { outline: none; box-shadow: var(--fb-focus); }

/* ---- Offer card look + motion (owner 2026-10-12: "druga barva, lepše, malo motion") ----------------------------------
   Green family of the brand (--fb-green): tinted card, green accent bar, solid green type pill. Motion = once when the card
   appears (rise + one light sweep, the gift icon wiggles); hover replays the sweep. Off for prefers-reduced-motion. */
.fb-offer {
    overflow: hidden;
    background: color-mix(in srgb, var(--fb-green) 9%, var(--fb-surface));
    border-color: color-mix(in srgb, var(--fb-green) 45%, var(--fb-border));
    box-shadow: inset 4px 0 0 var(--fb-green);
}
.fb-offer.is-highlight { border-color: var(--fb-green); box-shadow: inset 4px 0 0 var(--fb-green), 0 0 0 3px rgba(6, 185, 135, .25); }
.fb-offer .fb-offer__type { background: var(--fb-green); color: var(--fb-navy); }
:root[data-theme="dark"] .fb-offer .fb-offer__type { background: var(--fb-green); color: var(--fb-navy); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .fb-offer .fb-offer__type { background: var(--fb-green); color: var(--fb-navy); } }
.fb-offers__h { color: var(--fb-green) !important; }
.fb-offers__gift { display: inline-flex; transform-origin: 50% 70%; }
.fb-offers__gift .ic { width: 15px; height: 15px; }

.fb-offer::after {
    content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 45%; pointer-events: none;
    background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .22) 50%, transparent 100%);
    transform: translateX(-130%) skewX(-18deg); opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
    .fb-offer { animation: fb-offer-in .45s var(--fb-ease-out) both; }
    .fb-offer::after { animation: fb-offer-sweep 1.1s .45s var(--fb-ease) 1 both; }
    .fb-offer:hover::after { animation: fb-offer-sweep 1s var(--fb-ease) 1 both; }
    .fb-offers__gift { animation: fb-gift-wiggle .9s .35s var(--fb-ease) 1 both; }
    .fb-offer .fb-obtn--primary { transition: transform var(--fb-dur-fast) var(--fb-ease), background var(--fb-dur-fast) var(--fb-ease); }
    .fb-offer .fb-obtn--primary:active { transform: scale(.97); }
}
@keyframes fb-offer-in { from { opacity: 0; transform: translateY(8px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes fb-offer-sweep { 0% { transform: translateX(-130%) skewX(-18deg); opacity: 1; } 100% { transform: translateX(260%) skewX(-18deg); opacity: 1; } }
@keyframes fb-gift-wiggle { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-14deg); } 40% { transform: rotate(11deg); } 60% { transform: rotate(-7deg); } 80% { transform: rotate(3deg); } }

/* compact card in the gym panel / mobile sheet: CTA + "Podrobnosti" stay side by side even at 320 px */
.fb-offer--compact .fb-offer__actions { flex-wrap: nowrap; gap: 6px; }
.fb-offer--compact .fb-offer__actions > * { flex: 1 1 0; min-width: 0; }
.fb-offer--compact .fb-offer__actions .fb-obtn, .fb-offer--compact .fb-offer__code > summary { width: 100%; min-height: 44px; padding: 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fb-offer--compact .fb-offer__code[open] { flex-basis: 100%; }
.fb-offer--compact .fb-offer__actions:has(.fb-offer__code[open]) { flex-wrap: wrap; }
.fb-offer--compact .fb-offer__actions > .fb-offer__code, .fb-offer--compact .fb-offer__actions > a.fb-offer__cta { flex: 1.7 1 0; } /* Alpine <template>s are children too: no :first-child */
.fb-offer--compact .fb-offer__actions > .fb-offer__more, .fb-offer--compact .fb-offer__actions > .fb-offer__share { flex: 1 1 0; }
@media (max-width: 359px) { .fb-offer--compact .fb-offer__actions .fb-obtn, .fb-offer--compact .fb-offer__code > summary { font-size: 13px; padding: 0 8px; } }
