.f-offers { @apply my-6; } .f-offers-grid { @apply flex flex-wrap justify-center gap-8; } .f-card { @apply bg-[--f-bg] text-[--f-text] border border-[--f-offers-border] rounded-2xl shadow-md p-6 relative flex flex-col gap-4; /* przewijanie uwzględnia sticky navbar */ scroll-margin-top: calc(var(--f-navbar-height, 84px) + 16px); flex: 1 1 100%; max-width: 26rem; transition: transform 220ms ease, box-shadow 220ms ease; } .f-card:hover { @apply shadow-lg; transform: translateY(-3px); } .f-card-popular { border: 2px solid var(--f-offers-popular); background: var(--f-offers-popular-bg); } .f-card-badge { @apply absolute top-3 right-3 bg-[--btn-background] text-[--btn-text] text-sm font-semibold px-3 py-1 rounded-full; } /* HEADER */ .f-card-header { @apply flex flex-col items-start gap-1; } .f-card-name { @apply text-xl font-semibold; } .f-card-price { @apply text-3xl font-extrabold text-[--f-offers-price]; } /* FEATURES */ .f-card-features { @apply list-none p-0 m-0; } .f-card-row { @apply grid grid-cols-[2fr_1fr] gap-2 py-2 border-b border-[--f-offers-border] items-center; } .f-card-row:last-child { border-bottom: none; } .f-card-label { @apply text-sm font-medium opacity-80; } .f-card-value { @apply text-sm font-semibold text-right; } .f-card-value.yes { @apply text-green-600; } .f-card-value.no { @apply text-red-600 opacity-60; } /* INTELIGENTNY UKŁAD – OD MD↑ */ @media (min-width: 768px) { .f-card { flex: 1 1 300px; max-width: 360px; } /* 4 karty → 2 + 2 */ .f-count-4 .f-card { flex: 0 1 calc(50% - 2rem); max-width: 420px; } /* 5 kart → 3 + 2 */ .f-count-5 .f-card { flex: 0 1 calc(33% - 2rem); } .f-count-5 .f-card:nth-child(n + 4) { flex: 0 1 calc(50% - 2rem); max-width: 420px; } /* 7 kart → 3 + 3 + 1 (środek) */ .f-count-7 .f-card { flex: 0 1 calc(33% - 2rem); } .f-count-7 .f-card:last-child { flex: 0 1 calc(33% - 2rem); margin-left: auto; margin-right: auto; } /* 8 kart → 3 + 3 + 2 */ .f-count-8 .f-card { flex: 0 1 calc(33% - 2rem); } .f-count-8 .f-card:nth-child(n + 7) { flex: 0 1 calc(50% - 2rem); max-width: 420px; } /* 10 kart → 3 + 3 + 3 + 1 */ .f-count-10 .f-card:last-child { flex: 0 1 calc(33% - 2rem); margin-left: auto; margin-right: auto; } } /* ========================================= TARGET — PODŚWIETLENIE PAKIETU PO KLIKNIĘCIU ========================================== */ .f-card.is-target { outline: none; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.45), 0 10px 25px rgba(15, 23, 42, 0.18); transform: translateY(-6px) scale(1.01); position: relative; background-color: var(--f-navbar-background); z-index: 2; } .f-card.is-target:hover { transform: translateY(-6px) scale(1.01); } /* JAMBOX — GRID KANAŁÓW (MODAL) */ .jmb-channels-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.9rem; align-items: stretch; } .jmb-channel-card { position: relative; perspective: 1000px; background: var(--f-bg); color: var(--f-text); border-radius: 0.75rem; border: 1px solid rgba(148, 163, 184, 0.25); box-shadow: 0 1px 2px rgba(15, 23, 42, 0.15); min-height: 170px; height: 100%; padding: 0; overflow: hidden; -webkit-tap-highlight-color: transparent; touch-action: manipulation; cursor: pointer; } .jmb-channel-inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; transition: transform 0.6s ease; } /* DESKTOP: flip na hover */ @media (hover: hover) and (pointer: fine) { .jmb-channel-card:hover .jmb-channel-inner { transform: rotateY(180deg); } } /* MOBILE/TAP: flip po klasie */ .jmb-channel-card.is-flipped .jmb-channel-inner { transform: rotateY(180deg); } .jmb-channel-face { position: absolute; inset: 0; padding: 0.75rem 0.5rem; display: flex; flex-direction: column; justify-content: space-between; text-align: center; backface-visibility: hidden; -webkit-backface-visibility: hidden; } .jmb-channel-front { transform: rotateY(0deg); } .jmb-channel-back { transform: rotateY(180deg); text-align: left; justify-content: flex-start; gap: 0.5rem; } .jmb-channel-logo { max-width: 90px; max-height: 60px; margin: 0 auto 0.5rem auto; display: block; object-fit: contain; } .jmb-channel-name { font-size: 0.85rem; font-weight: 600; margin-bottom: 0.15rem; } .jmb-channel-number { font-size: 0.75rem; color: rgba(148, 163, 184, 0.95); } .jmb-channel-back-title { font-size: 0.9rem; font-weight: 700; } .jmb-channel-desc { font-size: 0.85rem; line-height: 1.35; opacity: 0.92; overflow: auto; scrollbar-width: thin; scrollbar-color: rgba(148, 163, 184, 0.55) transparent; } .jmb-channel-desc::-webkit-scrollbar { width: 10px; } .jmb-channel-desc::-webkit-scrollbar-thumb { background: rgba(148, 163, 184, 0.45); border-radius: 9999px; border: 3px solid transparent; background-clip: content-box; } .jmb-channel-desc::-webkit-scrollbar-track { background: transparent; } /* --------------------------------- */ .f-section-acc .f-accordion-header { @apply flex items-center justify-between gap-3; } .f-accordion-header-right { @apply flex items-center gap-3; } .f-acc-chevron { @apply opacity-60 text-sm; } .f-floating-total { @apply fixed bottom-5 right-5 z-[10000]; @apply pointer-events-auto; } /* kółko */ .f-floating-total-circle { @apply w-24 h-24 md:w-32 md:h-32 rounded-full; @apply flex flex-col items-center justify-center text-center; @apply shadow-xl ; @apply bg-[--link-hover-light] ; /* text-[--f-text] ; */ /* border-[--f-border-color]; */ @apply backdrop-blur-md; } /* kwota */ .f-floating-total-amount { @apply text-lg md:text-xl font-bold leading-none; color: hsla(45, 100%, 92%, 1); } /* jednostka */ .f-floating-total-unit { @apply my-1 text-xs md:text-sm opacity-70; color: hsla(45, 100%, 92%, 1); }