Dịch vụ trang trí Tết Đà Nẵng – Cát Decor 0931929333 – Trang trí Tết phong cách truyền thống và hiện đại, cho văn phòng công ty, store, nhà hàng,….
Trang trí tiệc Year End Party
27 tháng 2, 2026
{
“@context”: “https://schema.org”,
“@graph”: [
{
“@type”: “LocalBusiness”,
“@id”: “https://trangtrisinhnhatdanang.com/#business”,
“name”: “Cát Decor – Trang trí Đà Nẵng”,
“url”: “https://trangtrisinhnhatdanang.com”,
“telephone”: “+84931929333”,
“address”: {
“@type”: “PostalAddress”,
“streetAddress”: “194 Tố Hữu”,
“addressLocality”: “Quận Cẩm Lệ”,
“addressRegion”: “Đà Nẵng”,
“addressCountry”: “VN”
},
“geo”: {
“@type”: “GeoCoordinates”,
“latitude”: 16.034013,
“longitude”: 108.211048
},
“openingHoursSpecification”: {
“@type”: “OpeningHoursSpecification”,
“dayOfWeek”: [“Monday”,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”,”Sunday”],
“opens”: “08:00”,
“closes”: “21:00”
},
“priceRange”: “₫₫”,
“image”: “https://trangtrisinhnhatdanang.com/wp-content/uploads/2025/03/Cat-2025-cam-RGB-800×800.png”,
“description”: “Chuyên trang trí sinh nhật, sự kiện, tiệc cưới, khai trương tại Đà Nẵng và các tỉnh lân cận từ năm 2016.”
},
{
“@type”: “CollectionPage”,
“name”: “Trang Trí Sự Kiện – Portfolio Thực Tế”,
“url”: “https://trangtrisinhnhatdanang.com/mau-tiec-hoan-thanh/trang-tri-su-kien-catdecor/”,
“description”: “Bộ sưu tập các mẫu trang trí sự kiện đã hoàn thiện của Cát Decor tại Đà Nẵng.”,
“publisher”: { “@id”: “https://trangtrisinhnhatdanang.com/#business” }
},
{
“@type”: “ItemList”,
“name”: “Danh sách mẫu trang trí sự kiện”,
“numberOfItems”: 10,
“itemListElement”: [
{ “@type”: “ListItem”, “position”: 1, “name”: “Trang trí tiệc Year End Party”, “url”: “https://trangtrisinhnhatdanang.com/trang-tri-tiec-year-end-party/” },
{ “@type”: “ListItem”, “position”: 2, “name”: “Trang trí Ngày Phụ Nữ 20/10”, “url”: “https://trangtrisinhnhatdanang.com/trang-tri-ngay-phu-nu-viet-nam-20-10-tai-da-nang/” },
{ “@type”: “ListItem”, “position”: 3, “name”: “Gói tổ chức tiệc 8/3 cho công ty”, “url”: “https://trangtrisinhnhatdanang.com/goi-to-chuc-tiec-8-3-cho-cong-ty/” },
{ “@type”: “ListItem”, “position”: 4, “name”: “Dịch vụ trang trí Tết công ty Đà Nẵng”, “url”: “https://trangtrisinhnhatdanang.com/dich-vu-trang-tri-tet-cong-ty-da-nang/” },
{ “@type”: “ListItem”, “position”: 5, “name”: “Trang trí kỷ yếu trường lớp Đà Nẵng”, “url”: “https://trangtrisinhnhatdanang.com/trang-tri-truong-lop-ki-yeu-da-nang/” }
]
},
{
“@type”: “FAQPage”,
“mainEntity”: [
{
“@type”: “Question”,
“name”: “Cát Decor trang trí sự kiện những loại nào?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Cát Decor chuyên trang trí: khai trương, tiệc công ty, Year End Party, Gala Dinner, ngày lễ 8/3 – 20/10, kỷ yếu, cầu hôn, tiệc Tết và lễ hội tại Đà Nẵng và các tỉnh lân cận.”
}
},
{
“@type”: “Question”,
“name”: “Chi phí trang trí sự kiện tại Cát Decor bao nhiêu?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Chi phí phụ thuộc vào quy mô và yêu cầu. Cát Decor tư vấn miễn phí và báo giá chi tiết trong vòng 15 phút qua hotline 0931 929 333 hoặc Zalo.”
}
},
{
“@type”: “Question”,
“name”: “Cát Decor có nhận trang trí ngoài Đà Nẵng không?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Có. Cát Decor nhận trang trí tại Đà Nẵng, Huế, Hội An, Quảng Nam và các tỉnh miền Trung. Liên hệ để biết chi phí di chuyển.”
}
}
]
}
]
}
/* ══════════════════════════════════════════
DESIGN: Luxury Editorial – warm gold & deep charcoal
Vietnamese warmth meets high-end event brand
══════════════════════════════════════════ */
:root {
–gold: #C9A84C;
–gold-light: #E8C97A;
–gold-pale: #F5EDD0;
–deep: #1A1208;
–charcoal: #2D2416;
–warm-mid: #6B5533;
–cream: #FAF6EE;
–white: #FFFFFF;
–accent-red: #9B2335;
–text-body: #3D2F1A;
–ff-display: ‘Playfair Display’, Georgia, serif;
–ff-script: ‘Dancing Script’, cursive;
–ff-body: ‘Be Vietnam Pro’, sans-serif;
–shadow-sm: 0 2px 12px rgba(26,18,8,.08);
–shadow-md: 0 8px 32px rgba(26,18,8,.14);
–shadow-lg: 0 20px 60px rgba(26,18,8,.2);
–radius: 4px;
–transition: .35s cubic-bezier(.22,.61,.36,1);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
font-family: var(–ff-body);
background: var(–cream);
color: var(–text-body);
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
/* ─── Scrollbar ─── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(–cream); }
::-webkit-scrollbar-thumb { background: var(–gold); border-radius: 3px; }
/* ─── Selection ─── */
::selection { background: var(–gold-pale); color: var(–deep); }
/* ══ HEADER ══ */
.site-header {
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
background: rgba(250,246,238,.92);
backdrop-filter: blur(16px) saturate(1.4);
border-bottom: 1px solid rgba(201,168,76,.25);
padding: 0 clamp(1.5rem, 5vw, 4rem);
height: 68px;
display: flex; align-items: center; justify-content: space-between;
transition: box-shadow var(–transition);
}
.site-header.scrolled { box-shadow: var(–shadow-md); }
.logo {
display: flex; align-items: center; gap: .6rem;
text-decoration: none;
font-family: var(–ff-display);
font-weight: 700;
font-size: 1.35rem;
color: var(–deep);
letter-spacing: -.02em;
}
.logo-badge {
width: 38px; height: 38px; border-radius: 50%;
background: linear-gradient(135deg, var(–gold) 0%, var(–gold-light) 100%);
display: flex; align-items: center; justify-content: center;
font-size: .8rem; color: var(–deep); font-weight: 800;
}
.header-cta {
display: flex; align-items: center; gap: 1rem;
}
.btn-call {
display: flex; align-items: center; gap: .45rem;
background: var(–gold);
color: var(–deep);
font-family: var(–ff-body);
font-weight: 600;
font-size: .85rem;
padding: .55rem 1.2rem;
border-radius: 100px;
text-decoration: none;
letter-spacing: .02em;
transition: background var(–transition), transform var(–transition);
}
.btn-call:hover { background: var(–gold-light); transform: translateY(-1px); }
.btn-call svg { width: 14px; height: 14px; }
/* ══ HERO ══ */
.hero {
margin-top: 68px;
min-height: 88vh;
display: grid;
grid-template-columns: 1fr 1fr;
overflow: hidden;
position: relative;
}
.hero-text-col {
padding: clamp(3rem, 8vw, 7rem) clamp(2rem, 5vw, 5rem);
display: flex; flex-direction: column; justify-content: center;
background: var(–cream);
position: relative; z-index: 2;
}
.hero-eyebrow {
display: inline-flex; align-items: center; gap: .6rem;
font-size: .78rem; font-weight: 600;
letter-spacing: .16em; text-transform: uppercase;
color: var(–gold);
margin-bottom: 1.4rem;
}
.hero-eyebrow::before {
content: ”; display: block;
width: 30px; height: 1px;
background: var(–gold);
}
.hero-title {
font-family: var(–ff-display);
font-size: clamp(2.4rem, 5vw, 4.2rem);
line-height: 1.1;
color: var(–deep);
font-weight: 900;
margin-bottom: .5rem;
}
.hero-title em {
font-style: italic;
color: var(–gold);
display: block;
}
.hero-subtitle {
font-family: var(–ff-script);
font-size: 1.6rem;
color: var(–warm-mid);
margin-bottom: 1.8rem;
}
.hero-desc {
font-size: 1.05rem;
line-height: 1.75;
color: var(–warm-mid);
max-width: 480px;
margin-bottom: 2.4rem;
}
.hero-actions {
display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
}
.btn-primary {
background: var(–deep);
color: var(–gold-pale);
font-family: var(–ff-body);
font-weight: 600;
font-size: .92rem;
padding: .9rem 2rem;
border-radius: var(–radius);
text-decoration: none;
letter-spacing: .04em;
transition: all var(–transition);
display: inline-block;
}
.btn-primary:hover { background: var(–charcoal); transform: translateY(-2px); box-shadow: var(–shadow-md); }
.btn-outline {
border: 1.5px solid var(–gold);
color: var(–warm-mid);
font-family: var(–ff-body);
font-weight: 500;
font-size: .92rem;
padding: .9rem 2rem;
border-radius: var(–radius);
text-decoration: none;
transition: all var(–transition);
}
.btn-outline:hover { background: var(–gold-pale); }
.hero-stats {
display: flex; gap: 2rem;
margin-top: 3rem;
padding-top: 2rem;
border-top: 1px solid rgba(201,168,76,.3);
}
.stat { display: flex; flex-direction: column; }
.stat-num {
font-family: var(–ff-display);
font-size: 1.9rem;
font-weight: 900;
color: var(–deep);
line-height: 1;
}
.stat-label { font-size: .78rem; color: var(–warm-mid); letter-spacing: .04em; margin-top: .2rem; }
.hero-image-col {
position: relative;
overflow: hidden;
}
.hero-image-col::after {
content: ”;
position: absolute; inset: 0;
background: linear-gradient(to right, var(–cream) 0%, transparent 30%);
z-index: 1;
}
.hero-img {
width: 100%; height: 100%;
object-fit: cover;
transform: scale(1.05);
transition: transform 8s ease-out;
}
.hero-img.loaded { transform: scale(1); }
.hero-badge {
position: absolute; bottom: 2.5rem; right: 2.5rem; z-index: 10;
background: var(–deep);
color: var(–gold-pale);
padding: 1rem 1.5rem;
border-radius: var(–radius);
font-size: .78rem;
font-weight: 500;
letter-spacing: .04em;
box-shadow: var(–shadow-lg);
display: flex; align-items: center; gap: .5rem;
}
.hero-badge-dot {
width: 8px; height: 8px; border-radius: 50%;
background: #4ADE80;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%,100% { opacity: 1; transform: scale(1); }
50% { opacity: .6; transform: scale(1.4); }
}
/* ══ SECTION COMMON ══ */
section { padding: clamp(3.5rem, 8vw, 6rem) clamp(1.5rem, 5vw, 4rem); }
.section-label {
font-size: .75rem; font-weight: 600;
letter-spacing: .2em; text-transform: uppercase;
color: var(–gold);
display: flex; align-items: center; gap: .6rem;
margin-bottom: 1rem;
}
.section-label::after {
content: ”; flex: 1;
height: 1px; background: rgba(201,168,76,.4);
max-width: 60px;
}
.section-title {
font-family: var(–ff-display);
font-size: clamp(1.8rem, 3.5vw, 2.8rem);
font-weight: 700;
color: var(–deep);
line-height: 1.2;
}
.section-title span { color: var(–gold); font-style: italic; }
.section-desc {
font-size: 1rem; line-height: 1.7;
color: var(–warm-mid);
max-width: 560px;
margin-top: .8rem;
}
/* ══ FILTER TABS ══ */
.filter-wrap {
background: var(–deep);
padding: 1.2rem clamp(1.5rem, 5vw, 4rem);
display: flex; align-items: center; gap: .6rem;
overflow-x: auto; white-space: nowrap;
scrollbar-width: none;
position: sticky; top: 68px; z-index: 50;
}
.filter-wrap::-webkit-scrollbar { display: none; }
.filter-label {
font-size: .72rem; font-weight: 600;
letter-spacing: .14em; text-transform: uppercase;
color: rgba(255,255,255,.4);
margin-right: .5rem;
flex-shrink: 0;
}
.filter-btn {
padding: .45rem 1.1rem;
border-radius: 100px;
background: transparent;
border: 1px solid rgba(255,255,255,.15);
color: rgba(255,255,255,.65);
font-family: var(–ff-body);
font-size: .82rem;
font-weight: 500;
cursor: pointer;
flex-shrink: 0;
transition: all var(–transition);
}
.filter-btn:hover { border-color: var(–gold); color: var(–gold-light); }
.filter-btn.active {
background: var(–gold);
border-color: var(–gold);
color: var(–deep);
font-weight: 700;
}
/* ══ PORTFOLIO GRID ══ */
.portfolio-section { background: var(–cream); }
.portfolio-header {
display: flex; justify-content: space-between; align-items: flex-end;
flex-wrap: wrap; gap: 1rem;
margin-bottom: 2.5rem;
}
.portfolio-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.5px;
}
/* Featured first card */
.portfolio-grid .card:first-child {
grid-column: 1 / 3;
grid-row: 1 / 3;
}
.card {
position: relative;
overflow: hidden;
cursor: pointer;
display: block;
text-decoration: none;
background: var(–charcoal);
}
.card::after {
content: ”;
position: absolute; inset: 0;
background: linear-gradient(to top, rgba(26,18,8,.85) 0%, rgba(26,18,8,.1) 55%, transparent 100%);
transition: opacity var(–transition);
}
.card:hover::after { opacity: .7; }
.card-img {
width: 100%;
aspect-ratio: 4/3;
object-fit: cover;
display: block;
transition: transform .6s cubic-bezier(.25,.46,.45,.94);
filter: brightness(.95) saturate(1.05);
}
.card:first-child .card-img { aspect-ratio: auto; height: 100%; }
.card:hover .card-img { transform: scale(1.06); }
.card-content {
position: absolute; bottom: 0; left: 0; right: 0;
padding: 1.4rem 1.6rem;
z-index: 2;
transform: translateY(8px);
transition: transform var(–transition);
}
.card:hover .card-content { transform: translateY(0); }
.card-tag {
display: inline-block;
background: var(–gold);
color: var(–deep);
font-size: .7rem; font-weight: 700;
letter-spacing: .1em; text-transform: uppercase;
padding: .22rem .65rem;
border-radius: 2px;
margin-bottom: .6rem;
}
.card-title {
font-family: var(–ff-display);
font-size: 1.05rem;
font-weight: 700;
color: var(–white);
line-height: 1.35;
margin-bottom: .35rem;
}
.card:first-child .card-title { font-size: 1.5rem; }
.card-date {
font-size: .75rem;
color: rgba(255,255,255,.55);
letter-spacing: .04em;
}
.card-arrow {
position: absolute; top: 1.2rem; right: 1.2rem;
width: 36px; height: 36px; border-radius: 50%;
background: rgba(255,255,255,.1);
backdrop-filter: blur(8px);
display: flex; align-items: center; justify-content: center;
opacity: 0; transform: scale(.7);
transition: all var(–transition);
z-index: 3;
}
.card:hover .card-arrow { opacity: 1; transform: scale(1); }
.card-arrow svg { width: 14px; height: 14px; color: white; }
/* ══ SERVICES STRIP ══ */
.services-section {
background: var(–deep);
padding-top: clamp(3rem, 6vw, 5rem);
padding-bottom: clamp(3rem, 6vw, 5rem);
}
.services-section .section-title { color: var(–gold-pale); }
.services-section .section-label { color: var(–gold); }
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1.5px;
margin-top: 2.5rem;
}
.service-card {
background: rgba(255,255,255,.04);
border: 1px solid rgba(201,168,76,.12);
padding: 2rem 1.8rem;
transition: all var(–transition);
text-decoration: none;
display: flex; flex-direction: column;
gap: 1rem;
}
.service-card:hover {
background: rgba(201,168,76,.08);
border-color: rgba(201,168,76,.4);
transform: translateY(-3px);
}
.service-icon {
font-size: 2rem;
line-height: 1;
}
.service-name {
font-family: var(–ff-display);
font-size: 1.05rem;
font-weight: 700;
color: var(–gold-pale);
line-height: 1.3;
}
.service-desc {
font-size: .83rem;
color: rgba(245,237,208,.55);
line-height: 1.6;
}
.service-arrow {
margin-top: auto;
font-size: .78rem;
color: var(–gold);
letter-spacing: .06em;
font-weight: 600;
text-decoration: none;
display: flex; align-items: center; gap: .4rem;
}
/* ══ FAQ ══ */
.faq-section { background: var(–gold-pale); }
.faq-wrap {
display: grid;
grid-template-columns: 1fr 1.6fr;
gap: 4rem;
align-items: start;
max-width: 1100px;
}
.faq-list { margin-top: 2.5rem; }
.faq-item {
border-top: 1px solid rgba(26,18,8,.12);
overflow: hidden;
}
.faq-question {
width: 100%; text-align: left;
background: none; border: none; cursor: pointer;
padding: 1.3rem 0;
font-family: var(–ff-body);
font-size: .97rem;
font-weight: 600;
color: var(–deep);
display: flex; justify-content: space-between; align-items: center;
gap: 1rem;
transition: color var(–transition);
}
.faq-question:hover { color: var(–gold); }
.faq-icon {
flex-shrink: 0;
width: 22px; height: 22px; border-radius: 50%;
border: 1.5px solid var(–gold);
display: flex; align-items: center; justify-content: center;
transition: all var(–transition);
font-size: .9rem; color: var(–gold); line-height: 1;
}
.faq-item.open .faq-icon { background: var(–gold); color: var(–deep); transform: rotate(45deg); }
.faq-answer {
max-height: 0; overflow: hidden;
font-size: .93rem; line-height: 1.7;
color: var(–warm-mid);
transition: max-height .4s ease, padding .4s ease;
}
.faq-item.open .faq-answer {
max-height: 200px;
padding-bottom: 1.2rem;
}
/* ══ CTA BANNER ══ */
.cta-section {
background: linear-gradient(135deg, var(–deep) 0%, var(–charcoal) 50%, #3D2010 100%);
padding: clamp(3rem, 7vw, 5.5rem) clamp(1.5rem, 5vw, 4rem);
text-align: center;
position: relative; overflow: hidden;
}
.cta-section::before {
content: ”;
position: absolute; inset: 0;
background: radial-gradient(ellipse at 50% 0%, rgba(201,168,76,.15) 0%, transparent 70%);
}
.cta-title {
font-family: var(–ff-display);
font-size: clamp(2rem, 4.5vw, 3.5rem);
font-weight: 900;
color: var(–white);
line-height: 1.15;
position: relative; z-index: 1;
}
.cta-title em { color: var(–gold); font-style: italic; }
.cta-sub {
color: rgba(255,255,255,.6);
font-size: 1rem; line-height: 1.6;
margin: 1.2rem auto 2.5rem;
max-width: 480px;
position: relative; z-index: 1;
}
.cta-actions {
display: flex; justify-content: center; align-items: center;
gap: 1rem; flex-wrap: wrap;
position: relative; z-index: 1;
}
.btn-gold {
background: var(–gold);
color: var(–deep);
font-weight: 700;
font-size: .95rem;
padding: .9rem 2.2rem;
border-radius: var(–radius);
text-decoration: none;
letter-spacing: .04em;
transition: all var(–transition);
display: inline-block;
}
.btn-gold:hover { background: var(–gold-light); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(201,168,76,.35); }
.btn-ghost {
border: 1.5px solid rgba(255,255,255,.25);
color: rgba(255,255,255,.75);
font-size: .93rem;
padding: .9rem 2rem;
border-radius: var(–radius);
text-decoration: none;
transition: all var(–transition);
}
.btn-ghost:hover { border-color: var(–gold); color: var(–gold); }
/* ══ FOOTER ══ */
.site-footer {
background: var(–deep);
padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 5vw, 4rem) 2rem;
display: grid;
grid-template-columns: 1.5fr 1fr 1fr;
gap: 3rem;
}
.footer-brand {}
.footer-logo {
font-family: var(–ff-display);
font-size: 1.5rem; font-weight: 900;
color: var(–gold-pale);
margin-bottom: .5rem;
}
.footer-tagline {
font-size: .82rem;
color: rgba(245,237,208,.45);
letter-spacing: .06em; text-transform: uppercase;
margin-bottom: 1.2rem;
}
.footer-contact {
display: flex; flex-direction: column; gap: .5rem;
}
.footer-contact a {
color: rgba(245,237,208,.7);
text-decoration: none;
font-size: .87rem;
display: flex; align-items: center; gap: .5rem;
transition: color var(–transition);
}
.footer-contact a:hover { color: var(–gold); }
.footer-col-title {
font-family: var(–ff-display);
font-size: .95rem; font-weight: 700;
color: var(–gold-pale);
margin-bottom: 1rem;
letter-spacing: .04em;
}
.footer-links {
display: flex; flex-direction: column; gap: .5rem;
list-style: none;
}
.footer-links li a {
color: rgba(245,237,208,.55);
text-decoration: none;
font-size: .85rem;
transition: color var(–transition);
display: flex; align-items: center; gap: .4rem;
}
.footer-links li a::before {
content: ‘→’; color: var(–gold); opacity: 0;
transform: translateX(-4px);
transition: all var(–transition);
font-size: .75rem;
}
.footer-links li a:hover { color: var(–gold-pale); }
.footer-links li a:hover::before { opacity: 1; transform: translateX(0); }
.footer-bottom {
background: rgba(0,0,0,.25);
padding: 1rem clamp(1.5rem, 5vw, 4rem);
display: flex; justify-content: space-between; align-items: center;
flex-wrap: wrap; gap: .5rem;
}
.footer-copy {
font-size: .78rem;
color: rgba(245,237,208,.35);
letter-spacing: .04em;
}
.footer-seo-links {
display: flex; gap: 1.2rem; flex-wrap: wrap;
}
.footer-seo-links a {
font-size: .75rem;
color: rgba(245,237,208,.3);
text-decoration: none;
transition: color var(–transition);
}
.footer-seo-links a:hover { color: var(–gold); }
/* ══ ANIMATIONS ══ */
.fade-up {
opacity: 0;
transform: translateY(30px);
transition: opacity .7s ease, transform .7s ease;
}
.fade-up.visible {
opacity: 1;
transform: translateY(0);
}
.fade-up:nth-child(2) { transition-delay: .1s; }
.fade-up:nth-child(3) { transition-delay: .2s; }
.fade-up:nth-child(4) { transition-delay: .3s; }
/* ══ RESPONSIVE ══ */
@media (max-width: 900px) {
.hero { grid-template-columns: 1fr; min-height: auto; }
.hero-image-col { height: 50vw; }
.hero-image-col::after { background: linear-gradient(to top, var(–cream) 0%, transparent 40%); }
.portfolio-grid { grid-template-columns: 1fr 1fr; }
.portfolio-grid .card:first-child { grid-column: 1 / 3; grid-row: auto; }
.faq-wrap { grid-template-columns: 1fr; gap: 1.5rem; }
.site-footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
.portfolio-grid { grid-template-columns: 1fr; }
.portfolio-grid .card:first-child { grid-column: auto; }
.site-footer { grid-template-columns: 1fr; gap: 2rem; }
.hero-stats { gap: 1.5rem; }
.services-grid { grid-template-columns: 1fr 1fr; }
}
/* ══ BREADCRUMB ══ */
.breadcrumb {
padding: .9rem clamp(1.5rem, 5vw, 4rem);
background: var(–white);
border-bottom: 1px solid rgba(201,168,76,.15);
margin-top: 68px;
}
.breadcrumb ol {
list-style: none;
display: flex; flex-wrap: wrap; gap: .3rem;
align-items: center;
font-size: .78rem;
color: var(–warm-mid);
}
.breadcrumb ol li + li::before { content: ‘›’; margin-right: .3rem; color: var(–gold); }
.breadcrumb a { color: var(–warm-mid); text-decoration: none; }
.breadcrumb a:hover { color: var(–gold); }
.breadcrumb [aria-current] { color: var(–deep); font-weight: 600; }
/* remove margin-top on hero since breadcrumb is before it */
.hero { margin-top: 0; }
/* ══ DECORATIVE DIVIDER ══ */
.ornament {
text-align: center;
padding: .5rem 0;
color: var(–gold);
font-size: 1rem;
opacity: .6;
letter-spacing: .5em;
}
Cát Decor
Chuyên nghiệp trong từng chi tiết
Từ Year End Party, khai trương đến Gala Dinner — Cát Decor biến không gian bình thường thành sân khấu ấn tượng với thiết kế riêng cho từng sự kiện.
Mẫu đã hoàn thiện
Mỗi không gian là một câu chuyện riêng. Xem qua các mẫu thực tế đã thực hiện.
27 tháng 2, 2026
5 tháng 10, 2025
12 tháng 2, 2025
3 tháng 1, 2025
21 tháng 12, 2024
23 tháng 8, 2024
7 tháng 5, 2024
14 tháng 3, 2024
Dịch vụ
Từ ý tưởng đến thi công – một đầu mối, trọn vẹn sự kiện.
Hỏi & Đáp
Chưa rõ điều gì? Đọc nhanh bên cạnh hoặc gọi trực tiếp 0931 929 333 để được tư vấn miễn phí.
Tư vấn miễn phí · Thiết kế theo yêu cầu · Báo giá trong 15 phút · Phục vụ toàn Đà Nẵng và miền Trung
// ── Header scroll shadow ──
const header = document.getElementById(‘site-header’);
window.addEventListener(‘scroll’, () => {
header.classList.toggle(‘scrolled’, window.scrollY > 20);
}, { passive: true });
// ── Intersection Observer: fade-up animations ──
const fadeEls = document.querySelectorAll(‘.fade-up’);
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) { e.target.classList.add(‘visible’); obs.unobserve(e.target); }
});
}, { threshold: .1, rootMargin: ‘0px 0px -40px 0px’ });
fadeEls.forEach(el => obs.observe(el));
// ── Portfolio filter ──
function filterCards(cat, btn) {
document.querySelectorAll(‘.filter-btn’).forEach(b => {
b.classList.remove(‘active’);
b.setAttribute(‘aria-pressed’, ‘false’);
});
btn.classList.add(‘active’);
btn.setAttribute(‘aria-pressed’, ‘true’);
document.querySelectorAll(‘#portfolio-grid .card’).forEach(card => {
const show = cat === ‘all’ || card.dataset.cat === cat;
card.style.display = show ? ‘block’ : ‘none’;
card.style.animation = show ? ‘none’ : ”;
if (show) { setTimeout(() => card.classList.add(‘visible’), 50); }
});
}
// ── FAQ accordion ──
function toggleFaq(btn) {
const item = btn.closest(‘.faq-item’);
const isOpen = item.classList.contains(‘open’);
document.querySelectorAll(‘.faq-item.open’).forEach(i => {
i.classList.remove(‘open’);
i.querySelector(‘.faq-question’).setAttribute(‘aria-expanded’, ‘false’);
});
if (!isOpen) {
item.classList.add(‘open’);
btn.setAttribute(‘aria-expanded’, ‘true’);
}
}
// ── Lazy image fade-in ──
document.querySelectorAll(‘img[loading=”lazy”]’).forEach(img => {
img.style.opacity = ‘0’;
img.style.transition = ‘opacity .5s ease’;
img.addEventListener(‘load’, () => img.style.opacity = ‘1’);
if (img.complete) img.style.opacity = ‘1’;
});
Dịch vụ trang trí Tết Đà Nẵng – Cát Decor 0931929333 – Trang trí Tết phong cách truyền thống và hiện đại, cho văn phòng công ty, store, nhà hàng,….
DỊCH VỤ TRANG TRÍ TẾT TRUNG THU ĐÀ NẴNG đẹp , tinh tế , giá rẻ và luôn đem lại sự hài lòng cho quý khách hàng . Gọi ngay đến chúng tôi để được tư vấn nhé . Tự hào giới thiệu trung thu 2023 – 2024 🌟🌕 Chào mừng mùa Trung thu – […]
TRANG TRÍ TRUNG THU ĐÀ NẴNG 2023 Trang Trí Trung Thu và Những Cách Làm Đẹp Trung Thu Trung Thu, còn gọi là Tết Trung Thu, là một trong những lễ hội truyền thống quan trọng và được yêu thích nhất tại nhiều nước châu Á, đặc biệt là tại Việt Nam. TRANG TRÍ TRUNG […]
TRANG TRÍ KHAI TRƯƠNG ĐÀ NẴNG đẹp dành cho các cửa hàng / showroom cần nét tính tế , đẹp và giá cả hợp lý dành cho các bạn nè ! CÁT DECOR gửi đến quý khách hàng gói trang trí khai trương giá rẻ với rất nhiều mô hình mẫu mã để quý khách […]
Trang trí Trung Thu Đà Nẵng – Cát Decor . Trang trí Trung Thu nhiều mẫu đa dạng, truyền thống và hiện đại, phù hợp với nhiều yêu cầu của bạn
Trang trí họp lớp tại Đà Nẵng, một số mẫu tiệc đẹp, nhiều phong cách cho phông nền trang trí