Versa Oliwa Extra Virgin · 2 × 1L
Dwie puszki 1L.Święty spokój na dwa miesiące gotowania. W zestawie: 2 × 1 litr - 279 zł zamiast 298 zł. Z darmową dostawą. Wolisz mniejsze puszki? Zobacz zestaw 4 × 250 ml → Polife nole 413 mg/kg Dwa razy więcej niż sklepowa średnia (200) Kwasowość 0,21% Norma UE dopuszcza 0,8% Od drzewa do tłoczni 4 godziny Branżowy standard: kilka dni Odmiana Geracese, jeden gaj, zbiory 2025/26 Zero mieszanek Liczby sprawdza niezależne laboratorium AIPO. Pobierz certyfikat (PDF) → Z waszych kuchni. < > @majenakarnia @wrobellaura @patkersx @imvictoriaveronica @majenakarnia @patkersx @gotujzdiego @zbozna_piekarnia @tomasztraczszef @bartek_chef Więcej na @versami.pl Codziennie. Nie na specjalną okazję. Zupełnie szczerze: większość tej puszki zejdzie ci na chleb. Reszta: pomidor, jajko sadzone, burrata, makaron dokończony łyżką już na talerzu. Nagle wszyscy pytają, co zmieniłeś. Na ciepło radzi sobie tak samo: ryba, cebula, risotto, warzywa z piekarnika. Trzyma do 180°C i dalej jest sobą. Rośnie tu i tylko tu. Sto kilometrów jońskiego wybrzeża Kalabrii (Włochy). I nigdzie indziej. Botanicznie osobna, niespokrewniona z żadną inną włoską odmianą; miejscowi mówią na nią Grossa di Gerace. Zbiór ręczny, początek października: oliwka wciąż zielona, twarda, pełna polifenoli. W sklepie jej nie znajdziesz. Dlaczego puszka, nie butelka? Światło i tlen postarzają oliwę szybciej niż czas. Puszka odcina jedno i drugie. Otwierasz ją tak świeżą, jak ją zamknęliśmy. Duże opakowanie kusi ceną za litr. Ale oliwa to walka z czasem: od dnia tłoczenia tylko traci. Otwarty kanister przegrywa ją powoli, ostatnie dwa litry nigdy nie smakują jak pierwsze. Litr w puszce, zużyty w miesiąc, nie daje czasowi szans. .versa-ugc { --vugc-ink: #0C081C; --vugc-graphite: #1D1A16; /* Section sits on the theme's CORAL #FF5E33 band: STONE fails contrast there (~2:1), so secondary text uses GRAPHITE (5.5:1). Restore #69614F if the band goes light again. */ --vugc-muted: #1D1A16; --vugc-border: #E3DDCE; --vugc-accent: #CCFF00; --vugc-card-bg: transparent; --vugc-cutline-bg: #EFE7D3; --vugc-gap: 12px; --vugc-radius: 0px; --vugc-arrow: 44px; --vugc-arrow-inset: 6px; --vugc-arrow-clearance: 18px; --vugc-font-heading: 'Stolzl', sans-serif; --vugc-font-body: 'DM Sans', system-ui, -apple-system, sans-serif; --vugc-media-object-fit: cover; /* Uniform zoom (X+Y): 1 = off. Try 1.02–1.04 to hide thin screenshot/phone bezels; clip grows from center. */ --vugc-media-zoom: 1.02; box-sizing: border-box; display: block; width: 100%; max-width: 100%; min-width: 0; margin: 0 auto; padding-block: clamp(2.5rem, 6vmin, 5rem); padding-inline: 0; font-family: var(--vugc-font-body); color: var(--vugc-ink); background: transparent; overflow-x: clip; overflow-y: hidden; isolation: isolate; direction: ltr; unicode-bidi: isolate; } @media (min-width: 640px) { .versa-ugc { --vugc-gap: 28px; } } .versa-ugc *, .versa-ugc *::before, .versa-ugc *::after { box-sizing: border-box; } .versa-ugc__shell { width: 100%; max-width: 100%; min-width: 0; margin-inline: auto; overflow-x: clip; } .versa-ugc__inner { width: 100%; max-width: min(1040px, 100%); min-width: 0; margin-inline: auto; padding-left: max(1rem, env(safe-area-inset-left, 0px)); padding-right: max(1rem, env(safe-area-inset-right, 0px)); overflow-x: clip; display: flex; flex-direction: column; align-items: stretch; } .versa-ugc__header { width: 100%; max-width: min(45rem, 100%); min-width: 0; margin-inline: auto; margin-bottom: clamp(1.25rem, 3vmin, 2.5rem); text-align: center; direction: ltr; overflow-wrap: anywhere; } .versa-ugc__header .versa-ugc__eyebrow { font-family: var(--vugc-font-heading); font-size: clamp(0.625rem, 0.5rem + 0.5vmin, 0.6875rem); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vugc-muted); margin: 0 0 0.875rem; text-align: center; white-space: normal; } .versa-ugc__header .versa-ugc__title { font-family: var(--vugc-font-heading); font-size: clamp(1.125rem, 0.45rem + 2.2vmin, 2.25rem); line-height: 1.2; font-weight: 400; letter-spacing: -0.02em; margin: 0; color: var(--vugc-ink); overflow-wrap: anywhere; word-break: break-word; hyphens: auto; text-align: center; white-space: normal; display: block; } .versa-ugc__viewport { position: relative; /* Stop the nowrap track min-content width from propagating into theme grid/flex ancestors (Shopify PDP blowout fix) */ contain: inline-size; width: 100%; min-width: 0; max-width: 100%; overflow-x: clip; overflow: hidden; } .versa-ugc__track { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: var(--vugc-gap); list-style: none; margin: 0; padding: 0.25rem 0 0; width: 0; max-width: 100%; min-width: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; scroll-padding-inline: 0; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; touch-action: pan-x manipulation; scrollbar-width: none; } .versa-ugc__track::-webkit-scrollbar { display: none; } .versa-ugc__track>.versa-ugc__card { margin: 0; padding: 0; list-style: none; } .versa-ugc__card { flex: 0 0 auto; width: 100%; max-width: 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: normal; background: var(--vugc-card-bg); border-radius: var(--vugc-radius); overflow: hidden; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; } @media (min-width: 640px) { .versa-ugc .versa-ugc__track>.versa-ugc__card { width: calc((100% - var(--vugc-gap)) / 2); max-width: calc((100% - var(--vugc-gap)) / 2); } } @media (min-width: 900px) { .versa-ugc .versa-ugc__track>.versa-ugc__card { width: calc((100% - 2 * var(--vugc-gap)) / 3); max-width: calc((100% - 2 * var(--vugc-gap)) / 3); } } .versa-ugc__card--hide { display: none !important; } @media (prefers-reduced-motion: reduce) { .versa-ugc__track { scroll-behavior: auto; } .versa-ugc__arrow, .versa-ugc__card, .versa-ugc__media img, .versa-ugc__media video { transition: none; } } .versa-ugc__media { position: relative; width: 100%; min-width: 0; margin: 0; aspect-ratio: 9 / 16; background: transparent; overflow: hidden; float: none; isolation: isolate; border-radius: var(--vugc-radius) var(--vugc-radius) 0 0; } /* Play/pause toggle on video cards (in-palette: lime dot, ink glyph). Injected by the carousel JS into every media box that holds a video. */ .versa-ugc__playpause { position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border-radius: 999px; border: 0; padding: 0; cursor: pointer; z-index: 2; background-color: var(--vugc-accent); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5l9 5.5-9 5.5z' fill='%230C081C'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: 55% center; background-size: 16px; } .versa-ugc__playpause.is-playing { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 6h3.2v12H8zM12.8 6H16v12h-3.2z' fill='%230C081C'/%3E%3C/svg%3E"); background-position: center; } .versa-ugc__playpause:focus-visible { outline: 2px solid var(--vugc-ink); outline-offset: 2px; } .versa-ugc__media img, .versa-ugc__media video { width: 100%; height: 100%; max-width: none; object-fit: var(--vugc-media-object-fit); object-position: center center; display: block; float: none; transform: scale(var(--vugc-media-zoom)); transform-origin: center center; background: transparent; } @media (max-width: 639px) { .versa-ugc__inner { padding-left: max(12px, env(safe-area-inset-left, 0px)); padding-right: max(12px, env(safe-area-inset-right, 0px)); } .versa-ugc .versa-ugc__card { flex: 0 0 auto; /* Near-full-width card with a right-edge peek of the next card */ width: calc(100% - 48px); max-width: none; align-items: stretch !important; justify-content: flex-start !important; } .versa-ugc .versa-ugc__media { align-self: stretch !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important; position: relative; left: auto; right: auto; aspect-ratio: 4 / 5; height: auto; } .versa-ugc .versa-ugc__media img, .versa-ugc .versa-ugc__media video { margin: 0 !important; float: none !important; position: relative; left: auto; right: auto; object-fit: cover; object-position: center center; } .versa-ugc .versa-ugc__meta { align-self: stretch !important; width: 100% !important; max-width: 100% !important; align-items: center !important; text-align: center !important; margin: 0 !important; } .versa-ugc .versa-ugc__meta>* { text-align: center !important; max-width: 100%; } } .versa-ugc__meta { padding: 0.75rem 1rem 1rem; display: flex; flex-direction: column; gap: 0.375rem; min-width: 0; } @media (min-width: 640px) { .versa-ugc__meta { padding: clamp(0.75rem, 1.5vw, 1rem) clamp(0.75rem, 1.5vw, 1rem) clamp(0.875rem, 1.8vw, 1.25rem); } } .versa-ugc__handle { font-size: clamp(0.8125rem, 0.8rem + 0.35vw, 0.875rem); font-weight: 500; color: var(--vugc-ink); overflow-wrap: anywhere; line-height: 1.4; } .versa-ugc__role { font-size: clamp(0.6875rem, 0.65rem + 0.35vw, 0.75rem); color: var(--vugc-muted); margin-bottom: 0.125rem; overflow-wrap: anywhere; line-height: 1.4; } .versa-ugc__quote { font-size: clamp(0.8125rem, 0.78rem + 0.35vw, 0.875rem); line-height: 1.55; color: var(--vugc-ink); font-style: italic; overflow-wrap: anywhere; } /* Caption bar inside the card (Fishwife-style): centered handle on cream */ .versa-ugc__cutline { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 10px 12px 12px; background: var(--vugc-cutline-bg); text-align: center; align-items: center; /* Equal card heights: the bar stretches to the tallest card's bottom line (track is align-items: stretch), text stays centered. */ flex: 1 0 auto; justify-content: center; font-family: var(--vugc-font-body); line-height: 1.4; } .versa-ugc__cutline-name { font-size: 13px; color: var(--vugc-graphite); } .versa-ugc__cutline-credit { font-family: var(--vugc-font-heading); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vugc-graphite); } /* Cards without a cutline still close with a cream bar */ .versa-ugc__card>.versa-ugc__media:last-child { border-radius: var(--vugc-radius); } .versa-ugc__controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; } .versa-ugc__masthead { font-family: var(--vugc-font-heading); font-size: clamp(22px, 2.8vw, 30px); line-height: 1.05; font-weight: 400; letter-spacing: -0.025em; color: var(--vugc-ink); margin: 0; } .versa-ugc__masthead::before, .versa-ugc__masthead::after { content: none !important; display: none !important; } .versa-ugc__nav { display: flex; align-items: center; gap: 2px; flex-shrink: 0; } .versa-ugc__arrow { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; background: transparent; border: none; color: var(--vugc-ink); cursor: pointer; font-family: var(--vugc-font-heading); font-size: 22px; line-height: 1; font-weight: 400; } .versa-ugc__arrow:disabled { color: var(--vugc-muted); opacity: 0.4; cursor: default; } .versa-ugc__arrow:focus-visible { outline: 2px solid var(--vugc-ink); outline-offset: 2px; } .versa-ugc__media--end { background: var(--vugc-ink); } .versa-ugc__end { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; width: 100%; height: 100%; text-decoration: none; } .versa-ugc__end svg { width: 44%; height: auto; } .versa-ugc__end span { font-family: var(--vugc-font-body); font-size: 13px; color: var(--vugc-accent); } .versa-ugc__end:focus-visible { outline: 2px solid var(--vugc-accent); outline-offset: -4px; } @supports selector(:has(*)) { .shopify-section:has(.versa-ugc) { max-width: 100%; overflow-x: clip; } } (function () { var root = document.querySelector('.versa-ugc'); if (!root) return; var track = root.querySelector('.versa-ugc__track'); if (!track) return; // Videos: seek to data-start (e.g. 20s) on load and on loop end var videos = root.querySelectorAll('.versa-ugc__media video'); videos.forEach(function (v) { var startAt = parseFloat(v.getAttribute('data-start')) || 0; v.muted = true; v.playsInline = true; var p0 = v.play(); if (p0 && p0.catch) p0.catch(function () { }); var media = v.closest('.versa-ugc__media') || v.parentElement; var toggle = document.createElement('button'); toggle.type = 'button'; toggle.className = 'versa-ugc__playpause'; toggle.setAttribute('aria-label', 'Odtwórz lub zatrzymaj wideo'); media.appendChild(toggle); function syncToggle() { toggle.classList.toggle('is-playing', !v.paused); } v.addEventListener('play', syncToggle); v.addEventListener('pause', syncToggle); syncToggle(); toggle.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); if (v.paused) { v.dataset.userPaused = '0'; var pp = v.play(); if (pp && pp.catch) pp.catch(function () { }); } else { v.dataset.userPaused = '1'; v.pause(); } }); function seekStart() { try { v.currentTime = startAt; } catch (e) { } } v.addEventListener('loadedmetadata', seekStart); v.addEventListener('ended', function () { seekStart(); var p = v.play(); if (p && p.catch) p.catch(function () { }); }); // Failsafe: if metadata is already cached on first paint if (v.readyState >= 1) seekStart(); }); var liveCards = Array.from(track.querySelectorAll('.versa-ugc__card:not(.versa-ugc__card--hide)')); // Frames in view get full colour (--live) and, if video, playback; the rest rest muted if ('IntersectionObserver' in window && liveCards.length) { var cardObserver = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { var card = entry.target; var v = card.querySelector('video'); if (entry.isIntersecting) { card.classList.add('versa-ugc__card--live'); if (v && v.dataset.userPaused !== '1') { var p = v.play(); if (p && p.catch) p.catch(function () { }); } } else { card.classList.remove('versa-ugc__card--live'); if (v) v.pause(); } }); }, { threshold: 0.6 } ); liveCards.forEach(function (card) { cardObserver.observe(card); }); } var isDown = false, startX = 0, startScroll = 0, didDrag = false; track.addEventListener('mousedown', function (e) { isDown = true; didDrag = false; startX = e.pageX; startScroll = track.scrollLeft; track.style.cursor = 'grabbing'; }); track.addEventListener('mouseleave', function () { isDown = false; track.style.cursor = ''; }); track.addEventListener('mouseup', function () { isDown = false; track.style.cursor = ''; }); track.addEventListener('mousemove', function (e) { if (!isDown) return; var dx = e.pageX - startX; if (Math.abs(dx) > 4) didDrag = true; track.scrollLeft = startScroll - dx; }); track.addEventListener( 'click', function (e) { if (didDrag) { e.preventDefault(); e.stopPropagation(); } }, true ); // Fraction counter + prev/next arrows var prevBtn = root.querySelector('[data-vugc-prev]'); var nextBtn = root.querySelector('[data-vugc-next]'); var countEl = root.querySelector('.versa-ugc__count'); function cardStep() { if (liveCards.length < 2) return liveCards[0] ? liveCards[0].offsetWidth : 0; return liveCards[1].getBoundingClientRect().left - liveCards[0].getBoundingClientRect().left; } function pad(n) { return (n < 10 ? '0' : '') + n; } function updateControls() { var s = cardStep(); var maxScroll = track.scrollWidth - track.clientWidth; var i = s ? Math.round(track.scrollLeft / s) : 0; if (track.scrollLeft >= maxScroll - 2) i = liveCards.length - 1; if (i < 0) i = 0; if (i > liveCards.length - 1) i = liveCards.length - 1; if (countEl) countEl.textContent = pad(i + 1) + ' / ' + pad(liveCards.length); if (prevBtn) prevBtn.disabled = track.scrollLeft = maxScroll - 2; } if (prevBtn && nextBtn) { prevBtn.addEventListener('click', function () { track.scrollBy({ left: -cardStep(), behavior: 'smooth' }); }); nextBtn.addEventListener('click', function () { track.scrollBy({ left: cardStep(), behavior: 'smooth' }); }); var ticking = false; track.addEventListener( 'scroll', function () { if (ticking) return; ticking = true; requestAnimationFrame(function () { ticking = false; updateControls(); }); }, { passive: true } ); window.addEventListener('resize', updateControls); updateControls(); } // Calm auto-advance: one card every few seconds, smooth + snapped, // loops after the last frame, pauses on hover/touch, only while the // section is on screen, off entirely under reduced motion var reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; if (!reduceMotion) { var AUTO_MS = 4000; var autoTimer = null; var sectionInView = true; function autoAdvance() { var maxScroll = track.scrollWidth - track.clientWidth; if (track.scrollLeft >= maxScroll - 2) { track.scrollTo({ left: 0, behavior: 'smooth' }); } else { track.scrollBy({ left: cardStep(), behavior: 'smooth' }); } } function stopAuto() { if (autoTimer) { clearInterval(autoTimer); autoTimer = null; } } function startAuto() { stopAuto(); if (sectionInView && document.visibilityState !== 'hidden') { autoTimer = setInterval(autoAdvance, AUTO_MS); } } if (window.matchMedia && window.matchMedia('(hover: hover)').matches) { track.addEventListener('pointerenter', stopAuto); track.addEventListener('pointerleave', startAuto); } track.addEventListener('touchstart', stopAuto, { passive: true }); track.addEventListener('touchend', startAuto, { passive: true }); if (prevBtn && nextBtn) { prevBtn.addEventListener('click', startAuto); nextBtn.addEventListener('click', startAuto); } document.addEventListener('visibilitychange', startAuto); if ('IntersectionObserver' in window) { var autoVisObserver = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { sectionInView = entry.isIntersecting; startAuto(); }); }, { threshold: 0.3 } ); autoVisObserver.observe(root); } else { startAuto(); } } })(); Versa zaczęła się od jednej puszki. Przywiezionej z Włoch do Krakowa. Znajomi prosili o więcej. Potem ich znajomi. Potem restauracje. cała historia → Zbiory 2025/26: jeden rok, jedna partia. Jak się skończy, następna za rok. Dwa litry to dwa miesiące codziennego gotowania. Drugą puszkę otwierasz tak świeżą, jak pierwszą.
More you might like
Related
Versa Oliwa Extra Virgin
Related
Versa Oliwa Extra Virgin · 4 × 250 ml
Related
Oliwa czosnkowa z Krety – oliwa z oliwek extra virgin 250 ml
Related