
 :root {
            --primary-color: #8B4513;
            --secondary-color: #D2B48C;
            --accent-color: #F5DEB3;
            --text-dark: #2c3e50;
        }

html{            
    scroll-behavior: smooth;
}
        
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.6;
            color: var(--text-dark);
        }
        
        .hero-section {
            background: 
                linear-gradient(rgba(139, 69, 19, 0.6), rgba(210, 180, 140, 0.6)),
                url('../images/sala1.avif');
            background-size: cover;
            background-position: center;
            background-attachment: fixed;
            color: white;
            height: 90vh;
            display: flex;
            align-items: center;
            position: relative;
            overflow: hidden;
        }
        
        .hero-section::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="wood" patternUnits="userSpaceOnUse" width="100" height="100"><rect width="100" height="100" fill="%23f5deb3" opacity="0.05"/><path d="M0 20h100M0 40h100M0 60h100M0 80h100" stroke="%23d2b48c" stroke-width="0.5" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23wood)"/></svg>') repeat;
            opacity: 0.3;
        }
        
        .hero-content {
            position: relative;
            z-index: 2;
        }
        
        .section-title {
            color: var(--primary-color);
            font-weight: 700;
            margin-bottom: 2rem;
            position: relative;
        }
        
        .section-title::after {
            content: '';
            width: 50px;
            height: 3px;
            background: var(--secondary-color);
            position: absolute;
            bottom: -10px;
            left: 0;
        }
        
        .feature-card {
            background: white;
            border-radius: 15px;
            padding: 2rem;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            border: 2px solid var(--accent-color);
            height: 100%;
        }
        
        .feature-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 40px rgba(0,0,0,0.15);
        }
        
        .feature-icon {
            color: var(--primary-color);
            font-size: 2.5rem;
            margin-bottom: 1rem;
        }
        
        .image-gallery {
            padding: 0;
            margin: 0;
        }
        
        .gallery-item {
            position: relative;
            overflow: hidden;
            border-radius: 15px;
            margin-bottom: 1rem;
            height: 300px;
            /* background: var(--accent-color); */
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary-color);
            font-size: 1.2rem;
            text-align: center;
            transition: all 0.3s ease;
        }
        
        .gallery-item:hover {
            transform: scale(1.02);
            box-shadow: 0 15px 30px rgba(0,0,0,0.2);
        }
        
        .gallery-main {
            height: 400px;
        }
        
        .photos .item {
            position: relative;
            overflow: hidden;
        }
        /* Apply only from md (≥768px) */
        @media (min-width: 768px) {
        .photos .item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            aspect-ratio: 4/3; /* or 16/9 */
        }
        }

                
        .info-box {
            background: linear-gradient(135deg, var(--accent-color) 0%, white 100%);
            border-radius: 15px;
            padding: 2rem;
            border-left: 5px solid var(--primary-color);
            margin-bottom: 2rem;
        }
        
        .map-container {
            border-radius: 15px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            height: 400px;
            background: var(--accent-color);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary-color);
            font-size: 1.2rem;
        }
        
        .review-section {
            background: linear-gradient(135deg, var(--accent-color) 0%, white 100%);
            padding: 4rem 0;
            overflow: hidden;
        }
        
        .reviews-container {
            position: relative;
            width: 100%;
            overflow: hidden;
        }
        
        .reviews-track {
            display: flex;
            animation: scroll 40s linear infinite;
            width: max-content; /* fits content automatically */
        }

        @keyframes scroll {
            0% {
                transform: translateX(0);
            }
            100% {
                transform: translateX(-50%);
            }
        }

                
        .review-card {
            background: white;
            border-radius: 20px;
            padding: 2rem;
            margin: 0 1rem;
            flex: 0 0 auto;              /* prevent shrinking */
            max-width: 400px;            /* limit width */
            width: 100%;                 /* allow responsive shrink */
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            border: 2px solid var(--accent-color);
            word-break: break-word;      /* break long words if needed */

            /* KEY: Flexbox layout */
            display: flex;
            flex-direction: column;
            min-height: 300px; /* Set a minimum height for consistency */
        }

        .review-text {
            white-space: normal;         /* allow multiple lines */
            overflow: visible;           /* no clipping */
            text-overflow: unset;        /* no truncation */
            margin-bottom: 15px;
            
            /* KEY: This will grow to fill available space */
            flex-grow: 1;
        }
        
        .review-avatar {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            background: var(--secondary-color);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 1.5rem;
            font-weight: bold;
            margin: 0 auto 1rem;
        }
        
        .review-stars {
            color: #FFD700;
            font-size: 1.2rem;
            margin-bottom: 1rem;
            text-align: center;
        }
        
        .review-author {
            font-weight: bold;
            color: var(--primary-color);
            text-align: center;
        }

        .review-source {
            text-align: right;
            font-size: 0.9rem;
            color: var(--text-dark);
            /* margin-top: 1rem; */
            margin-top: auto;
            margin-bottom: 0;
        }
        
        .contact-section {
            background: linear-gradient(135deg, var(--secondary-color) 0%, var(--accent-color) 100%);
            padding: 4rem 0;
            margin-top: 4rem;
        }
        
        .btn-wood {
            background: var(--primary-color);
            border: none;
            color: white;
            padding: 12px 30px;
            border-radius: 25px;
            font-weight: 600;
            transition: all 0.3s ease;
        }
        
        .btn-wood:hover {
            background: #654321;
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0,0,0,0.2);
            color: white;
        }
        
        .badge-wood {
            background: var(--primary-color);
            color: white;
            padding: 0.5rem 1rem;
            border-radius: 20px;
            font-size: 0.9rem;
            margin: 0.2rem;
        }
        
        @media (max-width: 768px) {
            .hero-section {
                height: 85vh;
            }
            
            .gallery-item {
                height: 200px;
            }
            
            .gallery-main {
                height: 250px;
            }
        }

        .photo-gallery {
  color:#313437;
  background-color:#fff;
}

.photo-gallery p {
  color:#7d8285;
}

.photo-gallery h2 {
  font-weight:bold;
  margin-bottom:40px;
  padding-top:40px;
  color:inherit;
}

@media (max-width:767px) {
  .photo-gallery h2 {
    margin-bottom:25px;
    padding-top:25px;
    font-size:24px;
  }
}

.photo-gallery .intro {
  font-size:16px;
  max-width:500px;
  margin:0 auto 40px;
}

.photo-gallery .intro p {
  margin-bottom:0;
}

.photo-gallery .photos {
  padding-bottom:20px;
}

.photo-gallery .item {
  padding-bottom:30px;
}

/* Scroll Arrow Styles */
        .scroll-arrow {
            position: absolute;
            bottom: 70px;
            left: 50%;
            transform: translateX(-50%);
            cursor: pointer;
            z-index: 10;
            transition: all 0.3s ease;
        }

        .scroll-arrow:hover {
            transform: translateX(-50%) translateY(-3px);
            color: #FFE4B5;
        }

        .scroll-arrow i {
            font-size: 2rem;
            color: white;
            animation: bounce 2s infinite;
        }

        /* Bounce Animation */
        @keyframes bounce {
            0%, 20%, 50%, 80%, 100% {
                transform: translateY(0);
            }
            40% {
                transform: translateY(-10px);
            }
            60% {
                transform: translateY(-5px);
            }
        }

        /* Pulse effect on hover */
        .scroll-arrow:hover i {
            animation: bounce 2s infinite, pulse 1s infinite;
        }

        @keyframes pulse {
            0% {
                opacity: 1;
            }
            50% {
                opacity: 0.7;
            }
            100% {
                opacity: 1;
            }
        }

        .form-control.is-invalid {
            border-color: #dc3545;
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
        }

        .form-control.is-valid {
            border-color: #28a745;
            box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
        }

        .invalid-feedback {
            display: block;
            width: 100%;
            margin-top: 0.25rem;
            font-size: 0.875em;
            color: #dc3545;
        }

        .valid-feedback {
            display: block;
            width: 100%;
            margin-top: 0.25rem;
            font-size: 0.875em;
            color: #28a745;
        }