/* ============================================================
   MM Geomatics Surveys ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Modern Animations
   Scroll reveal, hover lifts, banner parallax
   No external dependencies beyond WOW.js (already loaded)
   ============================================================ */

/* ---------- Scroll Reveal Base ---------- */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.7s ease, transform 0.7s ease;
    will-change: opacity, transform;
}
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Stagger children */
.reveal-stagger > * {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal-stagger.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0.05s; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.15s; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.25s; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.35s; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 0.45s; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 0.55s; }
.reveal-stagger.is-visible > *:nth-child(7) { transition-delay: 0.65s; }
.reveal-stagger.is-visible > *:nth-child(8) { transition-delay: 0.75s; }

/* ---------- Service / Department Cards ---------- */
.services-post {
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 10px;
    padding: 30px 22px;
    margin-bottom: 30px;
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
    position: relative;
    overflow: hidden;
}
.services-post::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,67,46,0.06), rgba(255,67,46,0.0));
    opacity: 0;
    transition: opacity 0.35s ease;
}
.services-post:hover {
    transform: translateY(-10px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.12);
    border-color: #ff432e;
}
.services-post:hover::before { opacity: 1; }
.service-icon {
    width: 80px;
    height: 80px;
    margin-bottom: 18px;
    border-radius: 50%;
    padding: 20px;
    background: #fff3f1;
    color: #111;
    font-size: 32px;
    line-height: 40px;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.35s ease, color 0.35s ease;
}

.services-post:hover .service-icon {
    transform: scale(1.08) rotate(-3deg);
    color: #fff;
    background: #ff432e;
}

/* Service icon entrance: settles after card background fades in */
.service-icon.reveal {
	opacity: 0;
	transform: scale(0.8) rotate(-5deg);
	transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.service-icon.reveal.is-visible {
	opacity: 1;
	transform: scale(1) rotate(0);
}
.services-post h2 {
    font-size: 20px;
    margin-bottom: 12px;
    transition: color 0.3s ease;
}
.services-post:hover h2 { color: #ff432e; }
.services-post ul li {
    font-size: 14px;
    color: #555;
    padding: 3px 0;
    border-bottom: 1px dashed #eee;
}

/* ---------- Banner Animation ---------- */
.banner .intro-text h1 {
    animation: fadeUp 1s ease both;
}
.banner .intro-text p:nth-of-type(1) { animation: fadeUp 1.1s ease 0.2s both; }
.banner .intro-text p:nth-of-type(2) { animation: fadeUp 1.1s ease 0.4s both; }
.banner .intro-text .btn { animation: fadeUp 1.1s ease 0.6s both; }
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}
.banner .overlay {
    background: linear-gradient(120deg, rgba(20,20,20,0.82), rgba(255,67,46,0.25));
    animation: overlayShift 8s ease-in-out infinite alternate;
}
@keyframes overlayShift {
    from { background-position: 0% 50%; }
    to   { background-position: 100% 50%; }
}

/* ---------- Portfolio Hover Zoom ---------- */
.portfolio-item {
    overflow: hidden;
    border-radius: 8px;
    position: relative;
}
.portfolio-item img {
    transition: transform 0.5s ease;
}
.portfolio-item:hover img { transform: scale(1.08); }
.portfolio-caption {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: rgba(255,67,46,0.92);
    color: #fff;
    padding: 14px;
    transform: translateY(100%);
    transition: transform 0.4s ease;
}
.portfolio-item:hover .portfolio-caption { transform: translateY(0); }

/* ---------- Team Cards ---------- */
.team-member {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.team-member:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.15);
}
.team-member img {
    width: 100%;
    border-bottom: 4px solid #ff432e;
}

/* ---------- Section heading accent ---------- */
.section-title h2 {
    position: relative;
    display: inline-block;
    padding-bottom: 14px;
}
.section-title h2::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 70px;
    height: 3px;
    background: #ff432e;
    transform: translateX(-50%) scaleX(0);
    transition: transform 0.6s ease;
}
.section-title.is-visible h2::after { transform: translateX(-50%) scaleX(1); }

@media (prefers-reduced-motion: reduce) {
    .reveal, .reveal-stagger > *, .banner .intro-text h1,
    .banner .intro-text p, .banner .intro-text .btn { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
}
