*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { font-family: 'Inter', system-ui, sans-serif; color: #1e293b; background: #fff; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }

/* ── NAV ── */
#site-header { background: transparent; }
#site-header.scrolled { background: rgba(255,255,255,0.97); backdrop-blur-md; box-shadow: 0 1px 0 rgba(0,0,0,0.06); }
#site-header.scrolled .nav-link { color: #475569; }
#site-header.scrolled .nav-link:hover { color: #0d9488; }
#site-header.scrolled .font-serif { color: #1e293b; }
#site-header.scrolled .font-serif span { color: #334155; }

.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background: #0d9488; transition: width 0.3s; }
.nav-link:hover::after { width: 100%; }

/* Mobile menu */
#mobile-menu.open { opacity: 1; pointer-events: all; }
#mobile-menu .mobile-link { font-size: 1.1rem; }
.menu-line { transition: all 0.3s ease; }
#menu-btn.active .menu-line:nth-child(1) { transform: rotate(45deg) translate(3px, 3px); }
#menu-btn.active .menu-line:nth-child(2) { opacity: 0; }
#menu-btn.active .menu-line:nth-child(3) { transform: rotate(-45deg) translate(3px, -3px); width: 24px; }

/* ── HERO ── */
.hero { position: relative; }
.hero-bg { position: absolute; inset: 0; }
.hero-img { animation: heroZoom 20s ease-in-out infinite alternate; }
@keyframes heroZoom { from { transform: scale(1); } to { transform: scale(1.08); } }
.hero-overlay { background: linear-gradient(135deg, rgba(15,23,42,0.72) 0%, rgba(13,148,136,0.45) 100%); }
.hero-eyebrow { animation: fadeUp 0.8s 0.3s both; }
.hero-title { animation: fadeUp 0.8s 0.5s both; }
.hero-subtitle { animation: fadeUp 0.8s 0.7s both; }
.hero-ctas { animation: fadeUp 0.8s 0.9s both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

.hero-scroll { animation: fadeUp 0.8s 1.2s both; }
@keyframes scroll-line { 0% { opacity: 0; transform: scaleY(0); transform-origin: top; } 50% { opacity: 1; } 100% { opacity: 0; transform: scaleY(1); transform-origin: top; } }
.animate-scroll-line { animation: scroll-line 1.8s ease-in-out infinite; }

/* ── BUTTONS ── */
.btn-primary { display: inline-flex; align-items: center; background: #0d9488; color: #fff; padding: 14px 28px; border-radius: 100px; font-size: 0.875rem; font-weight: 500; letter-spacing: 0.02em; transition: all 0.3s; border: none; cursor: pointer; }
.btn-primary:hover { background: #0f766e; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(13,148,136,0.3); }
.btn-ghost { display: inline-flex; align-items: center; background: transparent; color: #fff; padding: 14px 28px; border-radius: 100px; font-size: 0.875rem; font-weight: 400; letter-spacing: 0.02em; border: 1px solid rgba(255,255,255,0.35); transition: all 0.3s; cursor: pointer; }
.btn-ghost:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.6); }
.btn-primary-white { display: inline-flex; align-items: center; background: #fff; color: #0d9488; padding: 14px 28px; border-radius: 100px; font-size: 0.875rem; font-weight: 500; letter-spacing: 0.02em; transition: all 0.3s; border: none; cursor: pointer; gap: 8px; }
.btn-primary-white:hover { background: #f0fdfa; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(255,255,255,0.2); }
.btn-ghost-white { display: inline-flex; align-items: center; background: transparent; color: #fff; padding: 14px 28px; border-radius: 100px; font-size: 0.875rem; font-weight: 400; letter-spacing: 0.02em; border: 1px solid rgba(255,255,255,0.35); transition: all 0.3s; cursor: pointer; }
.btn-ghost-white:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.6); }

/* ── SECTION HEADERS ── */
.section-eyebrow { display: block; }
.section-title { font-family: 'Playfair Display', Georgia, serif; }
.section-line { width: 48px; height: 1px; background: linear-gradient(to right, #0d9488, transparent); }

/* ── TRUST BAR ── */
.trust-item { opacity: 0; transform: translateY(16px); transition: all 0.5s; }
.trust-item.visible { opacity: 1; transform: translateY(0); }
.trust-icon { transition: transform 0.3s; }
.trust-item:hover .trust-icon { transform: scale(1.1); }

/* ── SERVICE CARDS ── */
.service-card { opacity: 0; transform: translateY(24px); transition: all 0.5s; }
.service-card.visible { opacity: 1; transform: translateY(0); }

/* ── GALLERY ── */
.gallery-item { opacity: 0; transform: scale(0.96); transition: all 0.6s; overflow: hidden; }
.gallery-item.visible { opacity: 1; transform: scale(1); }
.gallery-item img { transition: transform 0.7s ease; }
.gallery-item:hover img { transform: scale(1.05); }

/* ── CTA BANNER ── */
.cta-banner { position: relative; }
.cta-bg { position: absolute; inset: 0; }
.cta-img { animation: ctaZoom 25s ease-in-out infinite alternate; }
@keyframes ctaZoom { from { transform: scale(1); } to { transform: scale(1.1); } }
.cta-overlay { background: linear-gradient(135deg, rgba(15,23,42,0.8) 0%, rgba(13,148,136,0.6) 100%); }

/* ── CONTACT FORM ── */
.form-label { display: block; margin-bottom: 6px; }
.form-input { width: 100%; padding: 12px 16px; border: 1px solid #e2e8f0; border-radius: 10px; background: #fff; color: #1e293b; font-family: 'Inter', sans-serif; font-size: 0.9rem; font-weight: 300; transition: all 0.25s; outline: none; }
.form-input::placeholder { color: #94a3b8; }
.form-input:focus { border-color: #0d9488; box-shadow: 0 0 0 3px rgba(13,148,136,0.1); }
.form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px; cursor: pointer; }
.form-textarea { resize: vertical; min-height: 100px; line-height: 1.6; }

/* ── CONTACT INFO ── */
.contact-info-item { opacity: 0; transform: translateX(-16px); transition: all 0.5s; }
.contact-info-item.visible { opacity: 1; transform: translateX(0); }
.contact-icon { transition: transform 0.3s; }
.contact-info-item:hover .contact-icon { transform: scale(1.1); }

/* ── FOOTER ── */
footer a { transition: color 0.2s; }

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
    .hero-title { font-size: 2.5rem; }
    .section-title { font-size: 2.25rem; }
    .cta-title { font-size: 2.25rem; }
    .about-img-float { display: none; }
}
@media (max-width: 640px) {
    .hero-title { font-size: 2rem; }
    .section-title { font-size: 1.875rem; }
    .cta-title { font-size: 1.75rem; }
    #site-header { padding: 0 1rem; }
}
