<style>
/* ================== OVERLAY WRAPPER ================== */
#delivery-overlay {
position: fixed;
right: 24px;
bottom: 24px;
width: 100%;
max-width: 36rem;
z-index: 9999;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
font-family: inherit;
}
#delivery-overlay {
z-index: 10;
}
/* ================== CARD ================== */
#delivery-overlay .card {
position: relative;
display: flex;
gap: 16px;
padding: 16px 40px 16px 16px;
border-radius: 16px;
background: rgba(255,255,255,0.9);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid #e5e7eb;
box-shadow: 0 20px 40px rgba(0,0,0,.15);
overflow: hidden;
}
/* decorative blur */
#delivery-overlay .blur-bg {
position: absolute;
top: -40px;
right: -40px;
width: 96px;
height: 96px;
background: rgba(59,130,246,0.12);
border-radius: 50%;
filter: blur(32px);
pointer-events: none;
}
/* ================== ICON ================== */
#delivery-overlay .icon-wrap {
flex-shrink: 0;
background: #dbeafe;
color: #2563eb;
padding: 10px;
border-radius: 999px;
}
/* ================== TEXT ================== */
#delivery-overlay .content {
display: flex;
flex-direction: column;
gap: 6px;
}
#delivery-overlay h3 {
margin: 0;
font-size: 1.4rem;
font-weight: 700;
color: #111827;
display: flex;
align-items: center;
gap: 8px;
}
#delivery-overlay p {
margin: 0;
font-size: 1.4rem;
color: #4b5563;
line-height: 1.4;
}
#delivery-overlay .bold {
font-weight: 700;
color: #111827;
}
/* badge */
#delivery-overlay .badge {
font-size: 10px;
font-weight: 700;
background: #2563eb;
color: #fff;
padding: 2px 6px 0;
border-radius: 999px;
text-transform: uppercase;
letter-spacing: .08em;
}
/* timer row */
#delivery-overlay .timer {
display: flex;
align-items: center;
gap: 6px;
margin-top: 4px;
font-size: 1rem;
color: #6b7280;
}
/* ================== CLOSE BUTTON ================== */
#delivery-overlay .close-btn {
position: absolute;
top: 8px;
right: 8px;
width: 28px;
height: 28px;
border-radius: 999px;
border: none;
background: transparent;
cursor: pointer;
color: #9ca3af;
display: flex;
align-items: center;
justify-content: center;
}
#delivery-overlay .close-btn:hover {
background: #f3f4f6;
color: #4b5563;
}
/* ================== ANIMATIONS ================== */
@keyframes slideIn {
from { transform: translateX(100%); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
@keyframes fadeOut {
from { opacity: 1; }
to { opacity: 0; }
}
#delivery-overlay.show {
opacity: 1;
pointer-events: auto;
}
#delivery-overlay.slide-in {
animation: slideIn .5s cubic-bezier(.16,1,.3,1) forwards;
}
#delivery-overlay.fade-out {
animation: fadeOut .3s ease forwards;
}
/* ================== MOBILE ================== */
@media (max-width: 480px) {
#delivery-overlay {
right: 12px;
left: 12px;
max-width: none;
}
}
</style>
<!-- ================== HTML ================== -->
<div id="delivery-overlay">
<div class="card">
<div class="blur-bg"></div>
<div class="icon-wrap">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2"/>
<path d="M15 18H9"/>
<path d="M19 18h2a1 1 0 0 0 1-1v-5l-4-4h-3v10a1 1 0 0 0 1 1Z"/>
<circle cx="7" cy="18" r="2"/>
<circle cx="17" cy="18" r="2"/>
</svg>
</div>
<div class="content">
<h3>
Fast Delivery
<span class="badge">Next Day</span>
</h3>
<p>
All orders placed before <span class="bold">5:00 PM</span> are delivered Next Day.
</p>
<div class="timer" style="display: none;">
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"/>
<polyline points="12 6 12 12 16 14"/>
</svg>
<span id="delivery-timer">Time remaining: --h --m --s</span>
</div>
</div>
</div>
</a>
<button class="close-btn" id="close-overlay" aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 6 6 18"/>
<path d="m6 6 12 12"/>
</svg>
</button>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
const overlay = document.getElementById('delivery-overlay');
const closeBtn = document.getElementById('close-overlay');
const timerEl = document.getElementById('delivery-timer');
if (!overlay || !closeBtn || !timerEl) return;
// -------- show overlay --------
setTimeout(() => {
overlay.classList.add('show', 'slide-in');
}, 1500);
closeBtn.addEventListener('click', () => {
overlay.classList.remove('slide-in');
overlay.classList.add('fade-out');
setTimeout(() => overlay.style.display = 'none', 300);
});
// -------- UK TIME COUNTDOWN --------
function getUKNow() {
const parts = new Intl.DateTimeFormat('en-GB', {
timeZone: 'Europe/London',
year: 'numeric', month: 'numeric', day: 'numeric',
hour: 'numeric', minute: 'numeric', second: 'numeric',
hour12: false
}).formatToParts(new Date());
const g = t => parts.find(p => p.type === t).value;
return new Date(g('year'), g('month') - 1, g('day'), g('hour'), g('minute'), g('second'));
}
function updateTimer() {
const now = getUKNow();
const cutoff = new Date(now);
cutoff.setHours(17, 30, 0, 0); // 5:30 PM UK
if (now >= cutoff) cutoff.setDate(cutoff.getDate() + 1);
const diff = cutoff - now;
if (diff <= 0) return;
const s = Math.floor(diff / 1000);
const h = Math.floor(s / 3600);
const m = Math.floor((s % 3600) / 60);
const sec = s % 60;
timerEl.textContent =
`Time remaining: ${String(h).padStart(2,'0')}h ` +
`${String(m).padStart(2,'0')}m ` +
`${String(sec).padStart(2,'0')}s`;
}
updateTimer();
setInterval(updateTimer, 1000);
});
</script>
JBOPGDCMO30ML-6
In stock
Only 2 left
Johnson's Baby Oil Pure and Gentle Daily Care Moisturising Oil 300ml - Pack of 6
Special Price
£14.04
Regular Price
£18.59
ORDER WITHIN:
FREE DELIVERY OVER £29.99
Only applicable to Mainland UK
<h4><span style="color: #46a74e;">DESCRIPTION</span></h4>
<p><span style="color: #000000;">The simplest baby care products are often the most reliable and Johnson's Baby Oil Pure and Gentle Daily Care is a perfect example of that. A clean, carefully formulated moisturising oil that does exactly what it sets out to do: lock in moisture, protect delicate skin from dryness, and leave it feeling soft, smooth, and comfortable every single day without unnecessary additives or complicated ingredients.
</span></p>
<p><span style="color: #000000;">The lightweight formula is designed to spread easily and absorb well without the heavy, greasy feeling that puts many parents off using oils in daily baby care routines. Applied to damp skin immediately after bathing, when the skin's surface still holds water, it traps that natural moisture beneath a protective barrier for significantly longer-lasting hydration than applying to dry skin alone. It's a simple technique that makes a noticeable difference to how soft and well-hydrated skin remains throughout the day.
</span></p>
<p><span style="color: #000000;">The pH-balanced, hypoallergenic formula has been developed to minimise the risk of irritation on sensitive or reactive skin, making it a safe and gentle choice for newborns as well as older babies, children, and adults who prefer a mild, straightforward everyday moisturising oil. There are no harsh chemicals, no unnecessary additives - just a focused, effective formula built around gentle daily care.
</span></p>
<p><span style="color: #000000;">It works equally well as a baby massage oil, the lightweight texture allowing hands to move smoothly and comfortably across skin for those calm, bonding post-bath sessions that benefit both skin health and the relationship between parent and child.
The 300ml bottle is a generous, practical everyday size that offers excellent value for a product used consistently as part of a daily routine.
</span></p>
<h4><span style="color: #46a74e;">BENEFITS</span></h4>
<ul>
<li>Lightweight, non-greasy formula that locks in moisture without heavy residue
</li>
<li>Ideal applied to damp post-bath skin for maximum moisture retention
</li>
<li>pH-balanced and hypoallergenic - gentle and safe for sensitive newborn skin
</li>
<li>Maintains skin softness and prevents dryness with consistent daily use
</li>
<li>Suitable for newborns, babies, children, and adults with sensitive skin
</li>
<li>Free from harsh chemicals - a clean, focused moisturising formula
</li>
<li>Works beautifully as a baby massage oil for calm post-bath bonding routines
</li>
<li>Generous 300ml bottle, excellent value for regular daily moisturising use
</li>
</ul>
<h4><span style="color: #46a74e;">DIRECTIONS</span></h4>
<p><span style="color: #000000;">Apply to clean skin after bath or shower. Gently massage until absorbed. Use daily for best results.</span></p>
<h4><span style="color: #46a74e;">WARNINGS</span></h4>
<p><span style="color: #000000;">Keep out of reach of children to avoid drinking or accidental inhalation which can cause serious injury. Should breathing problems occur, consult a doctor immediately. For external use only.</span></p>
<p><span style="color: #000000;">Straightforward, effective, and completely dependable, a pure and gentle daily care oil that keeps delicate skin soft, protected, and healthy from the very first use.</span></p>
| EAN | 3574669909143 |
|---|---|
| Brands | Johnsons |
| Type | Moisturizing Oil |
| Pack of | Pack of 6 |
| Color | Clear |
| Size | 300 ML |
| Brand | Johnson’s |
| Ingredients | [FPT1350], Paraffinum Liquidum, Isopropyl Palmitate, Parfum |
| Age Level | Newborn and above |
| Skin Type | Sensitive, dry, normal |
| Tear Free | No |
| Tear Free | Yes |
| Bottle Material | Squeeze Bottle |
| Bottle Features | Plastic |
| Flow Teat | Easy to use |
| Weaning Stage | Flow Teat |
| Safety Warning | keep out of reach of children to avoid drinking or accidental inhalation which can cause serious injury. Should breathing problems occur, consult a doctor immediately. For external use only. |
| Unit Type | ML |
| Features | Gentle moisturizing formula |
Write Your Own Review
<div class="element products-slider see-also-div" style="max-width: 1440px; margin: auto;">
</div>





