* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Noto Sans', sans-serif; color: #333; }
html { scroll-behavior: smooth; }

/* Hero carousel */
.hero-slide { display: none; opacity: 0; transition: opacity 0.8s ease; }
.hero-slide.active { display: block; opacity: 1; }

/* Hero slide text animations */
@keyframes heroSlideUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
.hero-slide-content > * { opacity: 0; }
.hero-slide.active .hero-slide-content > * {
    animation: heroSlideUp 0.6s ease forwards;
}
.hero-slide.active .hero-slide-content > *:nth-child(1) { animation-delay: 0.2s; }
.hero-slide.active .hero-slide-content > *:nth-child(2) { animation-delay: 0.4s; }
.hero-slide.active .hero-slide-content > *:nth-child(3) { animation-delay: 0.6s; }

/* Link hover effect */
.link-hover { transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 4px; }
.link-hover:hover { gap: 8px; }
.link-hover svg { transition: transform 0.3s ease; }
.link-hover:hover svg { transform: translateX(3px); }

/* Card hover */
.card-hover { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,0.1); }

/* Service icon float */
.service-icon { transition: transform 0.3s ease; }
.service-icon:hover { transform: translateY(-4px); }

/* Back to top */
#backToTop { opacity: 0; pointer-events: none; transition: all 0.3s ease; }
#backToTop.visible { opacity: 1; pointer-events: auto; }

/* Input focus */
input:focus, textarea:focus { outline: none; border-color: #255075 !important; }

/* Blog content typography */
.blog-content h2 { font-size: 1.5rem; font-weight: 700; color: #255075; margin-top: 2.5rem; margin-bottom: 1rem; }
.blog-content h3 { font-size: 1.25rem; font-weight: 700; color: #255075; margin-top: 2rem; margin-bottom: 0.75rem; }
.blog-content p { margin-bottom: 1.25rem; }
.blog-content a { color: #255075; }
.blog-content a:hover { text-decoration: underline; }
.blog-content img { border-radius: 0.5rem; margin: 1.5rem 0; }
.blog-content ul, .blog-content ol { margin: 1rem 0; padding-left: 1.5rem; }
.blog-content ul { list-style-type: disc; }
.blog-content ol { list-style-type: decimal; }
.blog-content li { margin-bottom: 0.5rem; }
.blog-content blockquote { border-left: 4px solid #255075; padding: 1rem 1.5rem; margin: 1.5rem 0; font-style: italic; color: #6b7280; background: #f9fafb; border-radius: 0 0.5rem 0.5rem 0; }
.blog-content strong { color: #1a1a2e; }
.blog-content iframe,
.blog-content .ql-video { width: 100%; aspect-ratio: 16/9; border: none; border-radius: 0.5rem; margin: 1.5rem 0; display: block; }
