@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Montserrat:wght@300;400;500;600;700&display=swap'); :root { --primary: #8B7355; --primary-dark: #6B5344; --primary-light: #D4C4B0; --accent: #C9A962; --accent-light: #E8D5A3; --warm-white: #FAF8F5; --cream: #F5F0E8; --text-dark: #2C2C2C; --text-light: #6B6B6B; --glass-bg: rgba(255, 255, 255, 0.85); --glass-border: rgba(255, 255, 255, 0.3); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Montserrat', sans-serif; background: var(--warm-white); color: var(--text-dark); overflow-x: hidden; } h1, h2, h3, h4, h5, h6 { font-family: 'Playfair Display', serif; font-weight: 600; } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Glassmorphism effect */ .glass { background: var(--glass-bg); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--glass-border); } /* Custom animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-50px); } to { opacity: 1; transform: translateX(0); } } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .animate-fade-up { animation: fadeInUp 0.8s ease-out forwards; } .animate-fade-in { animation: fadeIn 1s ease-out forwards; } .animate-slide-left { animation: slideInLeft 0.8s ease-out forwards; } .animate-float { animation: float 3s ease-in-out infinite; } /* Stagger animation delays */ .stagger-1 { animation-delay: 0.1s; } .stagger-2 { animation-delay: 0.2s; } .stagger-3 { animation-delay: 0.3s; } .stagger-4 { animation-delay: 0.4s; } /* Hover effects */ .hover-lift { transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease; } .hover-lift:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12); } .hover-scale { transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .hover-scale:hover { transform: scale(1.05); } /* Image overlay effect */ .image-overlay { position: relative; overflow: hidden; } .image-overlay::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, transparent 50%); opacity: 0; transition: opacity 0.4s ease; } .image-overlay:hover::after { opacity: 1; } .image-overlay img { transition: transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .image-overlay:hover img { transform: scale(1.1); } /* Custom button styles */ .btn-primary { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: white; padding: 14px 32px; border-radius: 50px; font-weight: 500; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(139, 115, 85, 0.3); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(139, 115, 85, 0.4); } .btn-secondary { background: white; color: var(--text-dark); padding: 14px 32px; border-radius: 50px; font-weight: 500; transition: all 0.3s ease; border: 2px solid var(--primary-light); } .btn-secondary:hover { background: var(--primary-light); border-color: var(--primary); } /* Section styling */ section { padding: 6rem 0; } .section-header { text-align: center; margin-bottom: 4rem; } .section-header h2 { font-size: clamp(2rem, 5vw, 3rem); color: var(--text-dark); margin-bottom: 1rem; position: relative; display: inline-block; } .section-header h2::after { content: ''; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); width: 60px; height: 3px; background: linear-gradient(90deg, var(--accent) 0%, var(--primary) 100%); border-radius: 2px; } .section-header p { color: var(--text-light); font-size: 1.125rem; max-width: 600px; margin: 1.5rem auto 0; } /* Card styling */ .card { background: white; border-radius: 20px; overflow: hidden; transition: all 0.4s ease; } .card:hover { box-shadow: 0 25px 50px rgba(0, 0, 0, 0.1); } /* Decorative elements */ .decorative-line { width: 80px; height: 3px; background: linear-gradient(90deg, var(--accent) 0%, var(--primary) 100%); border-radius: 2px; margin: 1rem 0; } /* Scroll indicator */ .scroll-indicator { animation: bounce 2s infinite; } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0) translateX(-50%); } 40% { transform: translateY(-10px) translateX(-50%); } 60% { transform: translateY(-5px) translateX(-50%); } } /* Responsive adjustments */ @media (max-width: 768px) { section { padding: 4rem 0; } .section-header h2 { font-size: 1.75rem; } .section-header p { font-size: 1rem; } }