/* Google Fonts */
@import url(‘https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Inter:wght@400;500;600;700&display=swap’);
/* CSS Variables for Light Mode */
.kz-blog-wrapper {
–kz-bg: #ffffff;
–kz-text: #334155;
–kz-heading: #0f172a;
–kz-muted: #64748b;
–kz-border: #e2e8f0;
–kz-card-bg: #f8fafc;
–kz-card-hover-border: #6366f1;
–kz-accent: #6366f1;
–kz-accent-hover: #4f46e5;
–kz-gradient-1: #4f46e5;
–kz-gradient-2: #9333ea;
–kz-badge-gen-bg: rgba(37, 99, 235, 0.1);
–kz-badge-gen-text: #2563eb;
–kz-alert-bg: #fef2f2;
–kz-alert-border: #fca5a5;
–kz-alert-heading: #991b1b;
–kz-alert-text: #dc2626;
–kz-alert-item-bg: #ffffff;
–kz-alert-item-border: #fecaca;
–kz-warn-bg: #fffbeb;
–kz-warn-border: #fcd34d;
–kz-warn-heading: #b45309;
–kz-warn-text: #d97706;
–kz-info-bg: linear-gradient(145deg, #f8fafc, #f1f5f9);
–kz-info-card-bg: #ffffff;
–kz-info-border: #c7d2fe;
–kz-pill-bg: #f1f5f9;
–kz-pill-text: #475569;
–kz-timeline-line: #cbd5e1;
–kz-timeline-dot: #ffffff;
font-family: ‘Inter’, -apple-system, BlinkMacSystemFont, sans-serif;
background-color: var(–kz-bg);
color: var(–kz-text);
line-height: 1.6;
padding: 20px;
border-radius: 16px;
max-width: 900px;
margin: 0 auto;
box-sizing: border-box;
}
/* Typography */
.kz-blog-wrapper p { margin-bottom: 16px; word-break: normal; }
.kz-blog-wrapper strong { color: var(–kz-heading); }
.kz-blog-wrapper h2, .kz-blog-wrapper h3 {
font-family: ‘Space Grotesk’, sans-serif;
color: var(–kz-heading);
margin-top: 0;
}
.kz-blog-wrapper h2 {
font-size: 1.4rem; margin-top: 40px; margin-bottom: 24px;
border-bottom: 1px solid var(–kz-border); padding-bottom: 12px;
display: flex; align-items: center; gap: 10px;
}
.kz-blog-wrapper h3 { font-size: 1.15rem; margin-bottom: 12px; }
/* Utility Classes */
.kz-text-muted { color: var(–kz-muted); }
.kz-text-accent { color: var(–kz-accent); }
.kz-text-heading { color: var(–kz-heading); }
/* Layout & Components */
.kz-hero-img {
width: 100%; height: auto; border-radius: 12px; margin-bottom: 32px;
border: 1px solid var(–kz-border);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.kz-flex-center { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.kz-grid-2 { display: grid; grid-template-columns: 1fr; gap: 16px; }
/* Flags */
.kz-flag {
width: 24px; height: 16px; border-radius: 2px;
object-fit: cover; display: inline-block; vertical-align: middle;
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
/* Cards */
.kz-card {
background-color: var(–kz-card-bg);
border: 1px solid var(–kz-border);
border-radius: 12px; padding: 20px; position: relative;
}
.kz-card:hover {
border-color: var(–kz-card-hover-border);
transform: translateY(-2px); transition: all 0.3s ease;
}
/* ——————————————-
HORIZONTAL TIMELINE (Responsive Magic)
——————————————- */
.kz-hz-timeline {
display: flex;
flex-direction: column;
gap: 30px;
margin: 40px 0 50px 0; /* Tăng margin đáy để chống đè */
position: relative;
align-items: stretch; /* Ngăn chiều cao bị sập */
}
.kz-hz-timeline::before {
content: ”; position: absolute;
top: 22px; bottom: 22px; left: 50%;
transform: translateX(-50%); width: 2px;
background-color: var(–kz-border); z-index: 1;
}
.kz-hz-step {
position: relative; z-index: 2;
display: flex; flex-direction: column;
width: 100%;
}
.kz-hz-dot {
width: 44px; height: 44px;
background-color: var(–kz-bg); border: 3px solid var(–kz-accent);
border-radius: 50%; margin: 0 auto 16px;
display: flex; align-items: center; justify-content: center;
font-weight: 700; font-size: 1rem; color: var(–kz-accent);
z-index: 2; position: relative;
box-shadow: 0 0 0 6px var(–kz-bg);
}
.kz-hz-content {
background: var(–kz-card-bg); border: 1px solid var(–kz-border);
border-radius: 12px; padding: 20px; text-align: left; transition: all 0.3s ease;
flex: 1 1 auto; /* Cực quan trọng để thẻ tự đẩy chiều cao */
display: flex; flex-direction: column;
position: relative; z-index: 3; min-height: 100%; box-sizing: border-box;
}
.kz-hz-content:hover {
border-color: var(–kz-accent);
box-shadow: 0 8px 20px rgba(0,0,0,0.08); transform: translateY(-4px);
}
.kz-hz-date {
font-size: 0.85rem; font-weight: 700; text-transform: uppercase;
letter-spacing: 1px; margin-bottom: 8px; display: block;
}
.kz-hz-phase-badge {
position: absolute; top: 0; right: 0;
font-size: 0.6rem; font-weight: 700; text-transform: uppercase;
letter-spacing: 0.5px; padding: 6px 10px;
border-bottom-left-radius: 12px; border-top-right-radius: 11px; z-index: 10;
}
.kz-hz-fee-box {
background-color: rgba(99, 102, 241, 0.05); border: 1px solid rgba(99, 102, 241, 0.2);
padding: 12px 16px; border-radius: 8px; margin-top: 16px; margin-bottom: 16px;
}
/* Vertical Timeline List */
.kz-timeline {
border-left: 2px solid var(–kz-timeline-line);
margin-left: 12px; padding-left: 24px; margin-top: 24px;
}
.kz-timeline-step-vt { position: relative; margin-bottom: 32px; }
.kz-timeline-step-vt::before {
content: ‘📍’; font-size: 14px; position: absolute;
left: -35px; top: 2px;
background-color: var(–kz-timeline-dot); border-radius: 50%;
}
/* Alert & Warning Boxes */
.kz-alert-box {
background-color: var(–kz-alert-bg); border: 1px solid var(–kz-alert-border);
border-radius: 12px; padding: 20px; margin: 30px 0; clear: both;
}
.kz-alert-box h2 { border-bottom: none; margin-top: 0; padding-bottom: 0; margin-bottom: 12px; color: var(–kz-alert-heading); }
.kz-alert-item {
background: var(–kz-alert-item-bg); border: 1px solid var(–kz-alert-item-border);
padding: 14px; border-radius: 8px; display: flex; align-items: center; gap: 10px;
}
.kz-warn-box {
background-color: var(–kz-warn-bg); border: 1px solid var(–kz-warn-border);
border-left: 4px solid #f59e0b; border-radius: 8px; padding: 20px; margin-bottom: 40px;
}
/* Info Box */
.kz-info-box {
background: var(–kz-info-bg); border: 1px solid var(–kz-info-border);
border-radius: 12px; padding: 24px; margin-top: 40px;
}
.kz-info-card {
background: var(–kz-info-card-bg); padding: 20px; border-radius: 12px;
border: 1px solid var(–kz-border);
}
/* Fixed Lists to prevent Theme overrides */
ul.kz-ul {
list-style: none !important;
padding-left: 0 !important;
margin: 0 0 16px 0 !important;
display: flex;
flex-direction: column;
gap: 12px !important;
}
ul.kz-ul li {
margin: 0 !important;
padding: 0 !important;
display: flex !important;
align-items: flex-start !important;
gap: 10px !important;
line-height: 1.5;
}
.kz-emoji {
flex-shrink: 0; /* Chống méo icon */
}
.kz-text-content {
flex: 1;
word-break: normal !important; /* Chống rớt chữ giữa từ */
}
.kz-pill {
display: inline-block; background-color: var(–kz-pill-bg); color: var(–kz-pill-text);
font-size: 0.85rem; padding: 6px 12px; border-radius: 6px; margin-right: 8px; margin-bottom: 8px; font-weight: 500;
}
.kz-button {
display: inline-flex; align-items: center; justify-content: center; gap: 8px;
background-color: var(–kz-accent); color: #ffffff; padding: 12px 24px; text-decoration: none; border-radius: 8px;
font-weight: 600; margin-top: 16px; transition: background-color 0.2s;
width: 100%; text-align: center;
}
.kz-button:hover { background-color: var(–kz-accent-hover); color: #ffffff;}
/* FAQ Styles */
.kz-faq-container {
margin-top: 40px;
}
.kz-faq-item {
background: var(–kz-card-bg);
border: 1px solid var(–kz-border);
border-radius: 12px;
margin-bottom: 16px;
overflow: hidden;
transition: all 0.3s ease;
}
.kz-faq-item:hover {
border-color: var(–kz-accent);
}
.kz-faq-summary {
padding: 16px 20px;
font-weight: 600;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
user-select: none;
color: var(–kz-heading);
list-style: none; /* Hide default triangle in Firefox */
}
.kz-faq-summary::-webkit-details-marker {
display: none; /* Hide default triangle in Chrome/Safari */
}
.kz-faq-summary::after {
content: ‘+’;
font-size: 1.5rem;
line-height: 1;
font-weight: 400;
color: var(–kz-accent);
transition: transform 0.3s ease;
}
.kz-faq-item[open] .kz-faq-summary {
border-bottom: 1px solid var(–kz-border);
margin-bottom: 16px;
}
.kz-faq-item[open] .kz-faq-summary::after {
content: ‘−’;
transform: rotate(180deg);
}
.kz-faq-content {
padding: 0 20px 20px 20px;
color: var(–kz-text);
font-size: 0.95rem;
}
/* ——————————————-
DESKTOP MEDIA QUERY (PC / Tablet Landscape)
——————————————- */
@media (min-width: 768px) {
.kz-blog-wrapper { padding: 40px; }
.kz-blog-wrapper h2 { font-size: 1.7rem; }
.kz-grid-2 { grid-template-columns: repeat(2, 1fr); gap: 20px; }
/* Change Vertical Line to Horizontal Line */
.kz-hz-timeline {
flex-direction: row;
justify-content: space-between;
gap: 20px;
align-items: stretch; /* Đảm bảo các thẻ cao bằng nhau */
}
.kz-hz-timeline::before {
top: 22px; bottom: auto; left: 16.6%; right: 16.6%;
width: auto; height: 2px; transform: none;
}
.kz-hz-step { flex: 1 1 0; text-align: center; }
.kz-hz-content { margin-top: 0; padding: 24px; }
.kz-button { width: auto; }
.kz-info-box { padding: 32px; }
}
Starting in 2026, European Union customs authorities will introduce a mandatory customs processing fee for small parcels imported into the EU.
📊 What does this fee support?
✅ Administrative processing
✅ Customs inspections
✅ Operational & staffing costs
* The fee applies to goods imported from outside the EU, including print-on-demand apparel and streetwear products sold at Kozmozcyber.
🗓️ Timeline & Fee Structure
1
Transitional Phase Jan 1 – Feb 28
Italy
Fee: €2 / item
Fees during this period are invoiced collectively on March 15, 2026.
2
Early Impl. March 1, 2026
France & Italy
Fee: €2 / item
Fee collected immediately during customs clearance.
3
General Impl. July 1, 2026
EU & UK
Fee: €3 / item
Mandatory across all remaining EU member states and Great Britain.
⚠️ Important Disclaimer
How the Fee Is Collected
❌ Not charged by our store
❌ Not a shipping carrier fee
❌ Not included at checkout
🏛️ Mandatory government fee
🚨 Action Required: Accurate Contact Info
To ensure you receive the customs payment notification and avoid delivery failures, you must provide absolutely correct information at checkout:
👉 A valid Email Address
👉 A working Phone Number
👉 Your IOSS Number (if applicable)
Note: If incorrect contact details are provided, customs authorities will not be able to reach you.
🔄 Collection Process
1. Parcel Arrival
When your parcel arrives in the destination country, customs authorities will process the shipment to determine if it is subject to the new fee.
2. Payment Notification
If applicable, you will receive a notification to pay the fee via one of these methods:
📧 Email 💬 SMS 📞 Phone Call 📄 Official Notice
3. Direct Payment
The payment must be completed directly according to the instructions provided by your local customs or the designated clearance authority.
ℹ️ If the fee is not paid:
• The parcel may be held indefinitely at customs.
• The package may be returned to the sender.
• The goods may be disposed of.
* Policies and procedures may vary slightly depending on the destination country.
💡 What This Means for Your Order
If you are ordering from Kozmozcyber to be shipped to France (Mar 1+), Italy (Jan 1+), or Any EU country/UK (Jul 1+), you may require an additional €2–€3 per item paid directly to customs during import processing.
This fee DOES NOT include:
✖ Product price
✖ Shipping cost
✖ VAT already paid
If you have questions before placing an order to the EU or UK, our support team is ready to help.
✉️ [email protected]
❓ Frequently Asked Questions
Why do I have to pay this if I already paid for shipping?
Shipping costs paid at checkout only cover the transportation of your parcel from our facility to your delivery address. The customs processing fee is a separate, government-imposed charge by your local authorities for the administrative work of clearing your package into the country.
Will I be charged on every single order?
Yes, this new regulation applies a flat fee (€2 or €3 depending on your country and timeline) to every individual small parcel imported from outside the EU/UK. This is unavoidable and applies to all international e-commerce orders, not just Kozmozcyber.
What happens if I refuse to pay the customs fee?
If the fee is not paid within the timeframe specified by your local customs authority, your parcel will not be cleared for delivery. It may be held indefinitely, returned to the sender, or destroyed by customs. Please note that we cannot issue refunds for orders abandoned due to unpaid customs fees.
