@import url('https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700&display=swap');

body {
    font-family: 'Sarabun', sans-serif;
    scroll-behavior: smooth;
    overflow-x: hidden;
}

/* Animations & Effects */
.hover-animate { transition: color 0.3s ease; }
.hover-animate:hover { color: #198754 !important; }

.hover-scale { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.hover-scale:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(25, 135, 84, 0.3) !important; }

.hover-scale-sm { transition: transform 0.3s ease; }
.hover-scale-sm:hover { transform: translateX(5px); }

.image-hover-zoom { transition: transform 0.5s ease; cursor: pointer; display: block; }
.image-hover-zoom:hover { transform: scale(1.08); }

.text-shadow { text-shadow: 2px 2px 8px rgba(0,0,0,0.5); }

/* Animation Slide in/out */
.sliding-text { animation: slideInLeft 1.2s cubic-bezier(0.23, 1, 0.32, 1) forwards; opacity: 0; transform: translateX(-50px); }
.sliding-text-delay { animation: slideInLeft 1.2s cubic-bezier(0.23, 1, 0.32, 1) forwards 0.3s; opacity: 0; transform: translateX(-50px); }
.sliding-text-in { animation: slideInUp 1s ease-out forwards; }

@keyframes slideInLeft {
    to { opacity: 1; transform: translateX(0); }
}
@keyframes slideInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes pulseGlow {
    0% { box-shadow: 0 0 0 0 rgba(25, 135, 84, 0.7); }
    70% { box-shadow: 0 0 0 10px rgba(25, 135, 84, 0); }
    100% { box-shadow: 0 0 0 0 rgba(25, 135, 84, 0); }
}
.animate-pulse { animation: pulseGlow 2s infinite; }

/* Hero Section */
.hero-section {
    position: relative;
    height: 90vh; /* Responsive height */
    min-height: 500px;
}
.hero-img-animate {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.1);
    animation: zoomOutHero 10s linear infinite alternate;
}
@keyframes zoomOutHero {
    from { transform: scale(1.1); }
    to { transform: scale(1); }
}

.hero-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.4));
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

/* Service Card */
.service-card:hover .icon-wrapper {
    background-color: #198754 !important;
    color: white !important;
    transition: 0.3s;
}

/* Cookie Consent Banner */
.cookie-banner {
    position: fixed;
    bottom: -150px;
    left: 0;
    width: 100%;
    background-color: #212529;
    padding: 20px 0;
    z-index: 9999;
    transition: bottom 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    border-top: 3px solid #198754;
}
.cookie-banner.show { bottom: 0; }

/* Mobile Adjustments */
@media (max-width: 768px) {
    .hero-section { height: 75vh; }
    .hero-overlay h1 { font-size: 2.2rem; }
}