body {
    background-color: #FFFFFF;
    color: #555555;
    -webkit-font-smoothing: antialiased;
    font-weight: 300;
}

h1, h2, h3, h4, h5, h6 { font-weight: 400; }

.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.is-visible { opacity: 1; transform: translate(0, 0); }

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }

.img-zoom-wrapper { overflow: hidden; position: relative; border-radius: inherit; }
.img-zoom { transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1); will-change: transform; }
.group:hover .img-zoom { transform: scale(1.04); }

.cursor-blink { animation: blink 1s step-end infinite; }
@keyframes blink { 50% { opacity: 0; } }

.marquee-mask {
    mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}

/* 首页服务五宫格：仅底部渐变压暗，便于标题可读 */
.home-service-card-scrim {
    pointer-events: none;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 42%;
    z-index: 1;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.52) 0%, rgba(0, 0, 0, 0.14) 52%, transparent 100%);
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #F5F5F7; }
::-webkit-scrollbar-thumb { background: #D1D5DB; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #f7941d; }

#navbar { transition: all 0.4s ease; border-bottom: 1px solid transparent; }
#navbar.scrolled {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 20px rgba(0,0,0,0.03);
    color: #222222;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
#navbar.transparent {
    background-color: transparent;
    color: #FFFFFF;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}

.nav-link { position: relative; padding-bottom: 4px; transition: color 0.3s; font-weight: 400; }
.nav-link:hover, .nav-link.active { color: #f7941d; }

.font-number { font-family: 'Jost', sans-serif; font-weight: 400; }

.tab-btn { border-top: 2px solid transparent; padding-top: 1rem; cursor: pointer; transition: all 0.3s; opacity: 0.6; }
.tab-btn.active { border-top-color: #f7941d; opacity: 1; }
.tab-btn.active h4 { color: #f7941d; }

.input-focus-ring:focus { outline: none; border-color: #f7941d; box-shadow: 0 0 0 1px rgba(247, 148, 29, 0.2); }

.modal-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.3); backdrop-filter: blur(3px);
    z-index: 100; display: none; opacity: 0; transition: opacity 0.3s ease;
    align-items: center; justify-content: center; padding: 1rem;
}
.modal-overlay.active { display: flex; opacity: 1; }
.modal-content {
    background: white; border-radius: 1rem; max-width: 600px; width: 100%;
    max-height: 80vh; overflow-y: auto; padding: 2.5rem;
    transform: translateY(20px); transition: transform 0.3s ease; box-shadow: 0 20px 40px rgba(0,0,0,0.05);
}
.modal-overlay.active .modal-content { transform: translateY(0); }
