:root { --font-main: 'Times New Roman', Times, serif; --font-serif: 'Times New Roman', Times, serif; }
html { text-rendering: optimizeLegibility !important; -webkit-font-smoothing: antialiased; font-feature-settings: "kern" 1; }
body { font-family: var(--font-main); letter-spacing: -0.015em; color: #1a1a1a; }
.text-serif { font-family: var(--font-serif) !important; letter-spacing: -0.02em; }

.project-swiper { width: 100%; height: 500px; border-radius: 2rem; }
@media (max-width: 768px) { .project-swiper { height: 350px; border-radius: 1.5rem; } }
.swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
.swiper-button-next, .swiper-button-prev { color: #fff; background: rgba(0,0,0,0.3); width: 45px; height: 45px; border-radius: 50%; backdrop-filter: blur(5px); }
.swiper-button-next::after, .swiper-button-prev::after { font-size: 18px; font-weight: bold; }
.premium-shadow { box-shadow: 0 30px 60px -12px rgba(0,0,0,0.25); }

.article-body-content { font-family: 'Times New Roman', Times, serif; color: #374151; font-size: 1.125rem; line-height: 1.8; }
.article-body-content h2 { font-size: 1.75rem; font-weight: 700; margin: 2rem 0 1rem; color: #111827; font-family: var(--font-main); }
.article-body-content h3 { font-size: 1.4rem; font-weight: 700; margin: 1.5rem 0 0.75rem; color: #1f2937; font-family: var(--font-main); }
.article-body-content p { margin-bottom: 1.5rem; }
.article-body-content ul { list-style-type: disc; margin-left: 1.5rem; margin-bottom: 1.5rem; }
.article-body-content ol { list-style-type: decimal; margin-left: 1.5rem; margin-bottom: 1.5rem; }
.article-body-content li { margin-bottom: 0.5rem; }
.article-body-content img { max-width: 100%; height: auto; border-radius: 0.75rem; margin: 2rem auto; display: block; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1); }
.article-body-content strong, .article-body-content b { font-weight: 700; color: #111827; }
.article-body-content a { color: #dc2626; text-decoration: underline; text-underline-offset: 4px; }

.contact-buttons { position: fixed; bottom: 30px; left: 20px; display: flex; flex-direction: column; gap: 12px; z-index: 40; }
.btn-contact { width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; box-shadow: 0 4px 20px rgba(0,0,0,0.15); transition: all 0.3s ease; position: relative; }
.btn-contact:hover { transform: translateY(-3px); }
.btn-zalo { background: #0068ff; }
.btn-messenger { background: #0084ff; }
.btn-phone { background: #dc2626; animation: pulse-red 2s infinite; }

@keyframes pulse-red {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.7); }
  70% { transform: scale(1); box-shadow: 0 0 0 15px rgba(220, 38, 38, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(220, 38, 38, 0); }
}
