html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, sans-serif; }

/* Sticky header — solid by default, frosted-glass once the user scrolls. */
.site-header.is-scrolled {
    background-color: rgba(255, 255, 255, 0.72);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    backdrop-filter: saturate(180%) blur(14px);
    box-shadow: 0 4px 20px -8px rgba(0, 0, 0, 0.18);
    border-bottom-color: rgba(229, 231, 235, 0.6);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .site-header.is-scrolled { background-color: rgba(255, 255, 255, 0.95); }
}
.dropzone.is-dragging { background-color: #FEE2E2; border-color: #C8102E; }
.dropzone.is-invalid { border-color: #DC2626; background-color: #FEF2F2; }
.form-input.is-invalid { border-color: #DC2626; background-color: #FEF2F2; }
.form-input.is-invalid:focus { border-color: #DC2626; box-shadow: 0 0 0 1px #DC2626; }

/* Contact drawer */
.contact-drawer.is-open { transform: translateX(0); }
.contact-backdrop.is-open { display: block; }
body.drawer-open { overflow: hidden; }

/* Process step connector — dashed line between numbered circles */
.process-steps { position: relative; }
.process-step { position: relative; }
@media (min-width: 768px) {
    .process-step:not(:last-child)::after {
        content: '';
        position: absolute;
        top: 1.5rem;
        left: calc(50% + 1.75rem);
        right: calc(-50% + 1.75rem);
        border-top: 2px dashed #d4d4d4;
        z-index: 0;
    }
}
.process-step-num {
    position: relative;
    z-index: 1;
}

/* Hero overlay helper used across pages */
.hero-overlay { background: linear-gradient(90deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.6) 50%, rgba(0,0,0,0.2) 100%); }
.hero-overlay-soft { background: linear-gradient(90deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.2) 100%); }
