Shipping Policy — Cottagecore Clothes
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&family=Lora:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&display=swap');
:root {
--cream: #f7f2ea;
--warm-white: #fdfaf5;
--sage: #7a8c6e;
--sage-light: #a8b89a;
--brown: #6b4f3a;
--brown-light: #c4a882;
--dark: #2c2416;
--muted: #8a7a6a;
--rose: #c4846a;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--warm-white);
color: var(--dark);
font-family: 'Lora', serif;
overflow-x: hidden;
}
/* ── HERO ── */
.hero {
background: var(--dark);
padding: 100px 80px 80px;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
inset: 0;
background-image:
radial-gradient(circle at 75% 50%, rgba(122,140,110,0.18) 0%, transparent 55%),
radial-gradient(circle at 10% 80%, rgba(196,168,130,0.1) 0%, transparent 45%);
}
.hero-botanical {
position: absolute;
right: 80px;
top: 50%;
transform: translateY(-50%);
opacity: 0.12;
width: 240px;
}
.eyebrow {
font-family: 'Jost', sans-serif;
font-weight: 300;
font-size: 11px;
letter-spacing: 0.25em;
text-transform: uppercase;
color: var(--sage-light);
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 12px;
position: relative;
z-index: 2;
opacity: 0;
animation: fadeUp 0.7s ease 0.1s forwards;
}
.eyebrow::before {
content: '';
display: block;
width: 32px;
height: 1px;
background: var(--sage-light);
}
.hero-title {
font-family: 'Playfair Display', serif;
font-size: clamp(38px, 5vw, 62px);
line-height: 1.1;
color: var(--cream);
margin-bottom: 24px;
max-width: 600px;
position: relative;
z-index: 2;
opacity: 0;
animation: fadeUp 0.7s ease 0.25s forwards;
}
.hero-title em {
font-style: italic;
color: var(--sage-light);
}
.hero-subtitle {
font-size: 16px;
line-height: 1.8;
color: rgba(247,242,234,0.6);
max-width: 520px;
margin-bottom: 48px;
position: relative;
z-index: 2;
opacity: 0;
animation: fadeUp 0.7s ease 0.4s forwards;
}
/* ── STAT ROW ── */
.stat-row {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 2px;
position: relative;
z-index: 2;
opacity: 0;
animation: fadeUp 0.7s ease 0.55s forwards;
}
.stat-card {
background: rgba(255,255,255,0.04);
border: 1px solid rgba(255,255,255,0.07);
padding: 28px 24px;
transition: background 0.3s;
}
.stat-card:hover { background: rgba(255,255,255,0.07); }
.stat-icon {
font-size: 22px;
margin-bottom: 14px;
display: block;
}
.stat-value {
font-family: 'Playfair Display', serif;
font-size: 22px;
color: var(--cream);
margin-bottom: 6px;
line-height: 1.2;
}
.stat-label {
font-family: 'Jost', sans-serif;
font-size: 11px;
letter-spacing: 0.1em;
color: rgba(247,242,234,0.4);
text-transform: uppercase;
}
/* ── CONTENT ── */
.content {
max-width: 800px;
margin: 0 auto;
padding: 80px 40px 100px;
}
/* ── POLICY BLOCK ── */
.policy-block {
margin-bottom: 56px;
opacity: 0;
transform: translateY(24px);
transition: opacity 0.7s ease, transform 0.7s ease;
}
.policy-block.visible {
opacity: 1;
transform: translateY(0);
}
.block-header {
display: flex;
align-items: center;
gap: 16px;
margin-bottom: 20px;
}
.block-icon {
width: 44px;
height: 44px;
background: var(--cream);
border: 1px solid rgba(196,168,130,0.4);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
flex-shrink: 0;
}
.block-title {
font-family: 'Playfair Display', serif;
font-size: 22px;
color: var(--dark);
}
.block-body {
font-size: 15px;
line-height: 1.9;
color: var(--muted);
padding-left: 60px;
}
.block-body p { margin-bottom: 14px; }
.block-body p:last-child { margin-bottom: 0; }
/* ── HIGHLIGHT BOX ── */
.highlight-box {
background: var(--cream);
border-left: 3px solid var(--sage);
border-radius: 0 4px 4px 0;
padding: 24px 28px;
margin: 20px 0 20px 60px;
font-size: 15px;
line-height: 1.8;
color: var(--dark);
}
.highlight-box strong {
font-family: 'Playfair Display', serif;
font-weight: 500;
color: var(--brown);
display: block;
margin-bottom: 6px;
}
/* ── WARNING BOX ── */
.warning-box {
background: rgba(196,132,106,0.08);
border-left: 3px solid var(--rose);
border-radius: 0 4px 4px 0;
padding: 24px 28px;
margin: 20px 0 20px 60px;
font-size: 15px;
line-height: 1.8;
color: var(--dark);
}
.warning-box strong {
font-family: 'Playfair Display', serif;
font-weight: 500;
color: var(--rose);
display: block;
margin-bottom: 6px;
}
/* ── LIST ── */
.policy-list {
list-style: none;
padding: 0;
margin: 16px 0 0 60px;
}
.policy-list li {
font-size: 15px;
line-height: 1.7;
color: var(--muted);
padding: 10px 0;
border-bottom: 1px solid rgba(196,168,130,0.2);
display: flex;
align-items: baseline;
gap: 12px;
}
.policy-list li:last-child { border-bottom: none; }
.policy-list li::before {
content: '✦';
font-size: 8px;
color: var(--sage);
flex-shrink: 0;
position: relative;
top: -1px;
}
/* ── DELIVERY TABLE ── */
.delivery-table {
margin: 20px 0 0 60px;
border: 1px solid rgba(196,168,130,0.3);
border-radius: 4px;
overflow: hidden;
}
.delivery-row {
display: grid;
grid-template-columns: 1fr auto;
gap: 20px;
align-items: center;
padding: 18px 24px;
border-bottom: 1px solid rgba(196,168,130,0.2);
transition: background 0.2s;
}
.delivery-row:last-child { border-bottom: none; }
.delivery-row:hover { background: var(--cream); }
.delivery-row-header {
background: var(--cream);
font-family: 'Jost', sans-serif;
font-size: 10px;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--muted);
}
.delivery-region {
font-size: 14px;
color: var(--dark);
display: flex;
align-items: center;
gap: 10px;
}
.delivery-region span { font-size: 18px; }
.delivery-time {
font-family: 'Playfair Display', serif;
font-size: 16px;
color: var(--sage);
white-space: nowrap;
font-style: italic;
}
/* ── DIVIDER ── */
.divider {
display: flex;
align-items: center;
gap: 20px;
margin: 56px 0;
}
.divider-line {
flex: 1;
height: 1px;
background: linear-gradient(to right, transparent, var(--brown-light), transparent);
}
.divider-icon { color: var(--sage); font-size: 14px; }
/* ── PROTECTION BANNER ── */
.protection-banner {
background: var(--sage);
border-radius: 4px;
padding: 48px 56px;
margin: 0 0 56px;
position: relative;
overflow: hidden;
opacity: 0;
transform: translateY(24px);
transition: opacity 0.7s ease, transform 0.7s ease;
}
.protection-banner.visible {
opacity: 1;
transform: translateY(0);
}
.protection-banner::before {
content: '🛡';
position: absolute;
right: 48px;
top: 50%;
transform: translateY(-50%);
font-size: 80px;
opacity: 0.15;
}
.protection-banner-label {
font-family: 'Jost', sans-serif;
font-size: 10px;
letter-spacing: 0.25em;
text-transform: uppercase;
color: rgba(247,242,234,0.6);
margin-bottom: 12px;
}
.protection-banner-title {
font-family: 'Playfair Display', serif;
font-size: 28px;
color: var(--cream);
margin-bottom: 12px;
}
.protection-banner-title em {
font-style: italic;
color: rgba(247,242,234,0.75);
}
.protection-banner-body {
font-size: 15px;
line-height: 1.8;
color: rgba(247,242,234,0.7);
max-width: 480px;
}
/* ── CONTACT BANNER ── */
.contact-banner {
background: var(--dark);
border-radius: 4px;
padding: 48px 56px;
display: grid;
grid-template-columns: 1fr auto;
gap: 40px;
align-items: center;
opacity: 0;
transform: translateY(24px);
transition: opacity 0.7s ease, transform 0.7s ease;
}
.contact-banner.visible {
opacity: 1;
transform: translateY(0);
}
.contact-banner-title {
font-family: 'Playfair Display', serif;
font-size: 26px;
color: var(--cream);
margin-bottom: 10px;
}
.contact-banner-title em {
font-style: italic;
color: var(--sage-light);
}
.contact-banner-body {
font-size: 14px;
line-height: 1.7;
color: rgba(247,242,234,0.55);
}
.contact-btn {
display: inline-flex;
align-items: center;
gap: 10px;
background: var(--sage);
color: var(--cream);
text-decoration: none;
padding: 16px 32px;
border-radius: 2px;
font-family: 'Jost', sans-serif;
font-size: 12px;
letter-spacing: 0.15em;
text-transform: uppercase;
white-space: nowrap;
transition: background 0.25s ease;
}
.contact-btn:hover { background: var(--sage-light); }
/* ── ANIMATIONS ── */
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
/* ── RESPONSIVE ── */
@media (max-width: 768px) {
.hero { padding: 60px 32px; }
.hero-botanical { display: none; }
.stat-row { grid-template-columns: 1fr 1fr; }
.content { padding: 48px 24px 80px; }
.block-body { padding-left: 0; }
.highlight-box, .warning-box, .policy-list, .delivery-table { margin-left: 0; }
.contact-banner { grid-template-columns: 1fr; padding: 36px 32px; }
.protection-banner { padding: 40px 36px; }
.protection-banner::before { display: none; }
}
Policies
Shipping.
Fast, free & worldwide.
We ship to the USA, UK, Australia, Germany and everywhere in between. Here's everything you need to know before you order.
🌍
Worldwide
Free shipping
⏱
3–7 days
Processing time
📦
7–15 days
USA, UK, AU, EU
🔁
60 days
Customer protection
Yes — we ship worldwide, and in most cases shipping is completely free. No minimum order, no hidden fees at checkout.
All transactions are processed in US dollars.
Our partner warehouses in China handle fulfilment and shipping for all orders.
Ordering multiple items?
Different products may ship from different warehouses and arrive in separate packages. This is normal — don't worry if your first parcel arrives without everything.
Orders are typically processed within 3–7 business days. Once your order has been dispatched, you'll receive a tracking number by email so you can follow its journey.
After processing, estimated delivery times are:
🇺🇸 USA
7–15 business days
🇬🇧 United Kingdom
7–15 business days
🇦🇺 Australia & New Zealand
7–15 business days
🇪🇺 Europe
7–15 business days
🇨🇦 Canada
7–15 business days
🌍 Rest of world
Up to 60 days
Planning for a specific occasion?
If you need an item for an event on a specific date, we recommend ordering at least a month in advance. We can't guarantee delivery by a set date, so please plan accordingly.
Customer Protection Policy
Order didn't arrive?
We've got you covered.
If your order does not arrive within 60 days of placing it, you are eligible for a full refund or reshipping — your choice. No arguments, no hoops to jump through.
Custom fees are rare but may apply depending on your country's import regulations. Buyers are responsible for any applicable customs or import fees after the items have been shipped.
If you're unsure whether your country charges import duties on clothing, we recommend checking with your local customs authority before ordering.
If an item in your order turns out to be out of stock after purchase, you have two options:
- Receive an automatic full refund for that item to your original payment method
- Choose an alternative product within the same price range
We'll contact you by email as soon as we know, so you're never left waiting without an explanation.
Because we work with multiple warehouses, items in your order can ship separately and arrive on different days. If something is still missing after a reasonable wait, email us at hi@cottagecoreclothes.com with your name and order number and we'll track it down.
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) entry.target.classList.add('visible');
});
}, { threshold: 0.1 });
document.querySelectorAll('.policy-block, .contact-banner, .protection-banner').forEach(el => observer.observe(el));