.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-accordion-item { @apply rounded-xl border overflow-hidden bg-[--f-background]; border-color: rgba(148, 163, 184, 0.6); } .f-accordion-header { @apply w-full flex items-center justify-between gap-4 px-4 py-2 cursor-pointer; background: rgba(148, 163, 184, 0.06); border: none; outline: none; } .f-accordion-header-left { @apply flex items-center gap-1; } .f-modal-phone-name { @apply font-medium ml-2; } .f-modal-phone-price { @apply font-semibold whitespace-nowrap; } .f-accordion-body { @apply px-4 pt-2 pb-3; border-top: 1px solid rgba(148, 163, 184, 0.4); } .f-accordion-item.is-open .f-accordion-header { background: color-mix(in srgb, var(--fuz-accent, #2563eb) 8%, transparent); } .f-modal-section { @apply mb-6; } .f-radio-item { @apply grid items-start gap-3 px-3 py-2 cursor-pointer; grid-template-columns: auto 1fr auto; grid-template-areas: "check main price" "below below below"; border-bottom: 1px solid rgba(148, 163, 184, 0.4); background: var(--f-background); } .f-radio-item:last-child { border-bottom: none; } .f-radio-check input { @apply mt-1; } .f-radio-name { @apply font-medium; } .f-radio-price { @apply whitespace-nowrap font-semibold; } .f-radio-details { @apply pl-10 pr-3 pb-3 -mt-1 text-sm; } .f-addon-list { @apply flex flex-col gap-2; } .f-addon-item { @apply grid items-start gap-3 px-3 py-2 cursor-pointer; border-bottom: 1px solid rgba(148, 163, 184, 0.4); grid-template-columns: auto 1fr auto; background: var(--f-background); } .f-addon-item:last-child { border-bottom: none; } .f-addon-checkbox { @apply flex items-center justify-center; align-items: center; margin-top: 0.1rem; } .f-addon-checkbox input[type="checkbox"] { width: 1.05rem; height: 1.05rem; transform: scale(1.05); accent-color: var(--fuz-accent, #2563eb); cursor: pointer; } .f-addon-main { @apply flex flex-col gap-0.5; min-width: 0; } .f-addon-name { @apply font-medium; } .f-addon-desc { @apply text-sm opacity-85; } .f-addon-more { @apply text-sm underline opacity-80; } .f-addon-price { @apply font-semibold whitespace-nowrap; justify-self: end; text-align: right; min-width: 140px; } .f-addon-price-total { margin-top: 0.15rem; font-size: 0.9em; font-weight: 600; opacity: 0.85; white-space: nowrap; color: var(--fuz-accent, #2563eb); } .f-addon-item--qty { grid-template-columns: auto 1fr auto auto; align-items: start; } .f-addon-item--qty .f-addon-checkbox { visibility: hidden; width: 1.05rem; height: 1.05rem; transform: scale(1.05); } .f-addon-item--qty .f-addon-qty { justify-self: end; display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 0.05rem; } .f-addon-qty-value { min-width: 2ch; text-align: center; } @media (max-width: 640px) { .f-addon-item--qty { grid-template-columns: auto 1fr auto; grid-template-areas: "slot main price" "slot qty price"; } .f-addon-item--qty .f-addon-checkbox { grid-area: slot; } .f-addon-item--qty .f-addon-main { grid-area: main; } .f-addon-item--qty .f-addon-qty { grid-area: qty; justify-self: start; } .f-addon-item--qty .f-addon-price { grid-area: price; } } .f-summary { @apply pt-2; } .f-summary-list { @apply flex flex-col gap-1 mt-2 p-4 rounded-xl; background: rgba(148, 163, 184, 0.07); } .f-summary-row, .f-summary-total { @apply flex items-center justify-between; } .f-summary-row span:last-child { @apply font-medium whitespace-nowrap; } .f-summary-total { @apply mt-1 pt-2; border-top: 1px solid rgba(148, 163, 184, 0.4); } .f-summary-total span:last-child { @apply font-bold; font-size: 1.25rem; color: var(--fuz-accent, #2563eb); } .f-floating-total { @apply fixed bottom-5 right-5 z-[10000]; @apply pointer-events-auto select-none; touch-action: none; } .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 relative overflow-hidden; @apply bg-[--f-addons-background]; @apply backdrop-blur-md; box-shadow: 0 18px 35px hsla(221 47% 11% / 0.28), 0 6px 14px hsla(221 47% 11% / 0.18), inset 0 1px 0 hsla(0 0% 100% / 0.22), inset 0 -10px 18px hsla(221 47% 11% / 0.25); background-image: radial-gradient(120% 120% at 30% 20%, hsla(0 0% 100% / 0.22) 0%, transparent 55%), radial-gradient(140% 140% at 70% 80%, hsla(221 47% 11% / 0.22) 0%, transparent 60%); } .f-floating-total-circle::before { content: ""; position: absolute; inset: -30% -30% auto -30%; height: 70%; border-radius: 9999px; background: radial-gradient(closest-side, hsla(0 0% 100% / 0.28), transparent 70%); transform: rotate(-12deg); pointer-events: none; } .f-floating-total-circle::after { content: ""; position: absolute; inset: 0; border-radius: 9999px; border: 1px solid hsla(0 0% 100% / 0.16); box-shadow: inset 0 0 0 1px hsla(221 47% 11% / 0.18); pointer-events: none; } .f-floating-total-amount { @apply text-lg md:text-xl font-bold leading-none text-[--f-addons-text]; } .f-floating-total-unit { @apply my-1 text-xs md:text-sm opacity-70 text-[--f-addons-text]; } @keyframes fuz-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } } .f-floating-total:hover .f-floating-total-circle { animation: fuz-bounce 420ms ease-in-out; } .f-floating-total:active .f-floating-total-circle { transform: translateY(-4px) scale(1.02); } @media (hover: hover) and (pointer: fine) { .f-floating-total:hover .f-floating-total-circle { transform: translateY(-2px) scale(1.02); box-shadow: 0 22px 44px hsla(221 47% 11% / 0.32), 0 8px 18px hsla(221 47% 11% / 0.20), inset 0 1px 0 hsla(0 0% 100% / 0.24), inset 0 -12px 20px hsla(221 47% 11% / 0.28); transition: transform 180ms ease, box-shadow 180ms ease; } } .f-addon-below { grid-column: 1 / -1; /* pełna szerokość */ @apply pt-1; } .f-addon-below { grid-column: 1 / -1; /* od kolumny main */ } .f-radio-check { grid-area: check; } .f-radio-main { grid-area: main; min-width: 0; } .f-radio-price { grid-area: price; justify-self: end; text-align: right; } .f-radio-below { grid-area: below; @apply text-sm opacity-85; justify-self: start; text-align: left; } .f-addon-price { @apply font-semibold whitespace-nowrap; justify-self: end; text-align: right; min-width: 140px; } /* ✅ DLA QTY — nie trzymaj 140px, bo na mobile wypycha */ .f-addon-item--qty .f-addon-price { min-width: 110px; /* było 140px */ } /* ✅ DLA QTY na małych ekranach jeszcze ciaśniej */ @media (max-width: 640px) { .f-addon-item--qty .f-addon-price { min-width: 96px; } /* opcjonalnie: minimalnie mniejsza czcionka w cenie w QTY */ .f-addon-item--qty .f-addon-price, .f-addon-item--qty .f-addon-price-total { font-size: 0.95em; } }