Shipping policy
/* ====== Shipping Timeline Styles (Levy Paw) ====== */
.lp-shipping-wrapper{
max-width:900px;
margin:0 auto 3rem auto;
font-family:inherit;
color:#1a1a1a;
line-height:1.5;
}
.lp-shipping-header{
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
gap:.75rem;
border:1px solid #dcdcdc;
border-radius:8px;
padding:.9rem 1rem;
background:#fff;
font-size:1rem;
font-weight:600;
}
.lp-ship-method-left{
display:flex;
align-items:center;
gap:.5rem;
flex-wrap:wrap;
font-size:1rem;
}
.lp-ship-icon-box{
width:38px;
height:38px;
border:2px solid #dcdcdc;
border-radius:8px;
display:flex;
align-items:center;
justify-content:center;
font-size:18px;
line-height:1;
}
.lp-pill{
background:#f6a500;
color:#fff;
font-size:.8rem;
font-weight:700;
line-height:1;
border-radius:999px;
padding:.4rem .6rem;
white-space:nowrap;
}
.lp-shipping-track{
border:1px solid #e5e7eb;
border-radius:8px;
background:#fff;
padding:1.25rem 1rem 1rem;
margin-top:1rem;
}
.lp-steps-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
text-align:center;
position:relative;
margin-bottom:1.5rem;
}
/* connector line behind icons */
.lp-steps-grid:before{
content:"";
position:absolute;
left:0;
right:0;
top:28px;
height:2px;
background:#dcdcdc;
z-index:1;
}
.lp-step{
position:relative;
z-index:2;
padding:0 .5rem;
}
.lp-step-icon{
width:36px;
height:36px;
border-radius:999px;
background:#fff;
border:2px solid #dcdcdc;
display:flex;
align-items:center;
justify-content:center;
font-size:18px;
margin:0 auto .5rem auto;
}
.lp-step-date{
font-weight:600;
font-size:1rem;
margin-bottom:.25rem;
}
.lp-step-label{
font-size:.9rem;
color:#4b5563;
line-height:1.4;
}
.lp-bullets{
font-size:.95rem;
color:#1a1a1a;
line-height:1.6;
}
.lp-bullets li{
margin-bottom:.75rem;
}
.lp-section-heading{
font-size:1.1rem;
font-weight:600;
margin:2.5rem 0 0.5rem;
display:flex;
align-items:center;
gap:.5rem;
}
.lp-section-heading span.emoji{
font-size:1.25rem;
line-height:1;
}
.lp-small-note{
font-size:.8rem;
color:#6b7280;
line-height:1.4;
margin-top:-.5rem;
margin-bottom:1rem;
}
/* mobile tweaks */
@media(max-width:600px){
.lp-shipping-header{
font-size:.95rem;
}
.lp-pill{
font-size:.7rem;
}
.lp-step-date{
font-size:.9rem;
}
.lp-step-label{
font-size:.8rem;
}
.lp-steps-grid:before{
top:26px;
}
.lp-step-icon{
width:32px;
height:32px;
font-size:16px;
}
}
(function(){
// BUSINESS DAY HELPERS
function addBusinessDays(startDate, days){
// clone date
let d = new Date(startDate.getTime());
let added = 0;
while(added < days){
d.setDate(d.getDate() + 1);
const day = d.getDay(); // 0 Sun .. 6 Sat
if(day !== 0 && day !== 6){
added++;
}
}
return d;
}
// RANGE STRING "Oct 28 - 29"
function formatRange(d1, d2){
const opts = { month:"short", day:"numeric" };
const part1 = d1.toLocaleDateString(undefined, opts);
const part2 = d2.toLocaleDateString(undefined, opts);
if(part1 === part2){
return part1;
} else {
return part1 + " - " + part2;
}
}
// SINGLE DATE "Oct 31 - Nov 03"
function formatRangeMaybeCrossMonth(d1, d2){
const optsSame = { month:"short", day:"numeric" };
const optsFull = { month:"short", day:"numeric" };
const sameMonth = (d1.getMonth() === d2.getMonth());
const p1 = d1.toLocaleDateString(undefined, optsFull);
const p2 = d2.toLocaleDateString(undefined, optsFull);
if(sameMonth){
return p1 + " - " + d2.getDate();
}else{
return p1 + " - " + p2;
}
}
// TODAY is "Order placed"
const today = new Date();
// CONSTANTS (YOUR BRAND PROMISES)
const PROCESS_MIN = 2; // business days
const PROCESS_MAX = 3;
const SHIP_STD_MIN = 5; // business days in transit
const SHIP_STD_MAX = 7;
const SHIP_EXP_MIN = 3;
const SHIP_EXP_MAX = 5;
const SHIP_INTL_MIN = 7;
const SHIP_INTL_MAX = 14;
// ---- STANDARD (US) ----
// orderShips window = today + 2 to +3 biz days
const stdShipSoon = addBusinessDays(today, PROCESS_MIN);
const stdShipLate = addBusinessDays(today, PROCESS_MAX);
// delivered window = shipSoon + 5biz .. shipLate + 7biz
const stdDelSoon = addBusinessDays(stdShipSoon, SHIP_STD_MIN);
const stdDelLate = addBusinessDays(stdShipLate, SHIP_STD_MAX);
// ---- EXPRESS (US) ----
const expShipSoon = addBusinessDays(today, PROCESS_MIN);
const expShipLate = addBusinessDays(today, PROCESS_MAX);
// delivered window = +3 .. +5 biz
const expDelSoon = addBusinessDays(expShipSoon, SHIP_EXP_MIN);
const expDelLate = addBusinessDays(expShipLate, SHIP_EXP_MAX);
// ---- INTERNATIONAL ----
const intlShipSoon = addBusinessDays(today, PROCESS_MIN);
const intlShipLate = addBusinessDays(today, PROCESS_MAX);
const intlDelSoon = addBusinessDays(intlShipSoon, SHIP_INTL_MIN);
const intlDelLate = addBusinessDays(intlShipLate, SHIP_INTL_MAX);
// FILL DOM
const root = document.getElementById("levypaw-shipping");
if(!root) return;
// "Order placed" == today's date
const orderPlacedText = today.toLocaleDateString(undefined,{month:"short",day:"numeric"});
root.querySelectorAll('[data-date="orderPlaced"]').forEach(el=>{
el.textContent = orderPlacedText;
});
// Standard ship + deliver
const stdShipText = formatRange(stdShipSoon,stdShipLate);
const stdDelText = formatRangeMaybeCrossMonth(stdDelSoon,stdDelLate);
root.querySelectorAll('[data-date="orderShips"]').forEach(el=>{
el.textContent = stdShipText;
});
root.querySelectorAll('[data-date="delivered"]').forEach(el=>{
el.textContent = stdDelText;
});
// Express ship + deliver
const expShipText = formatRange(expShipSoon,expShipLate);
const expDelText = formatRangeMaybeCrossMonth(expDelSoon,expDelLate);
root.querySelectorAll('[data-date="orderShipsExpress"]').forEach(el=>{
el.textContent = expShipText;
});
root.querySelectorAll('[data-date="deliveredExpress"]').forEach(el=>{
el.textContent = expDelText;
});
// Intl ship + deliver
const intlShipText = formatRange(intlShipSoon,intlShipLate);
const intlDelText = formatRangeMaybeCrossMonth(intlDelSoon,intlDelLate);
root.querySelectorAll('[data-date="orderShipsIntl"]').forEach(el=>{
el.textContent = intlShipText;
});
root.querySelectorAll('[data-date="deliveredIntl"]').forEach(el=>{
el.textContent = intlDelText;
});
})();
Standard Shipping (U.S.)
Most Popular
Order placed
Order ships
Delivered!
- The timing below reflects 2–3 business days for printing/processing + 5–7 business days shipping within the U.S.
- Printed in the USA with love 🐾
- Orders can be cancelled or modified within 2 hours of placing the order.
- Free U.S. shipping on orders over $60.
- When your package ships, we’ll email you a tracking number so you can follow it online.
Actual delivery may vary due to carrier delays, weekends, and holidays.
Express Shipping (U.S.)
Fastest
Order placed
Order ships
Delivered!
- Same 2–3 business day processing, then 3–5 business days in transit with our express carriers.
- Printed in the USA with love 🐾
- Perfect if you’re gifting and the calendar is getting a little “uh oh.”
Express timelines exclude weekends/holidays and can vary by destination.
International Shipping
Worldwide
Order placed
Order ships
Delivered!
- 2–3 business days to make your order, then 7–14 business days for international delivery.
- Your package may take extra time if it’s held by customs in your country.
- You’ll receive tracking when it ships, so you can follow the journey.
Customs fees or duties (if any) are the responsibility of the buyer.
💌
Need help with an order?
Email us at support@levypaw.com — we’re happy to help.