/**
 * Hero and Homepage Styles
 */

/* Hero Section - Full Viewport Edge-to-Edge */
.hero-section {
    position: relative;
    height: 100vh;
    min-height: 600px;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* Mobile parallax using transform */
@supports (transform: translateZ(0)) {
    .hero-section {
        transform-style: preserve-3d;
    }
    
    .hero-section::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: inherit;
        background-attachment: fixed;
        transform: translateZ(-1px) scale(2);
        z-index: -1;
    }
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        135deg,
        rgba(44, 95, 45, 0.2) 0%,
        rgba(0, 0, 0, 0.3) 50%,
        rgba(35, 79, 30, 0.4) 100%
    );
    mix-blend-mode: multiply;
}

/* Organic overlay pattern */
.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='50' cy='50' r='40' fill='none' stroke='%23fff' stroke-opacity='0.03' stroke-width='0.5'/%3E%3Ccircle cx='25' cy='25' r='15' fill='%23fff' fill-opacity='0.02'/%3E%3Ccircle cx='75' cy='75' r='20' fill='%23fff' fill-opacity='0.02'/%3E%3C/svg%3E");
    background-size: 200px 200px;
    animation: float-pattern 30s linear infinite;
    z-index: 1;
    opacity: 0.5;
}

@keyframes float-pattern {
    0% { transform: translate(0, 0); }
    100% { transform: translate(-200px, -200px); }
}

.hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    color: white;
    padding: var(--spacing-lg);
    animation: fadeInUp 1s ease;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.site-title {
    font-size: clamp(3rem, 10vw, 5rem);
    font-weight: 700;
    font-family: var(--font-primary);
    margin-bottom: var(--spacing-md);
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.7), 0 2px 4px rgba(0, 0, 0, 0.9);
    letter-spacing: -0.02em;
    color: white;
    transform: perspective(500px) rotateY(0deg);
    transition: var(--transition-smooth);
}

.site-tagline {
    font-size: clamp(1.1rem, 3vw, 1.6rem);
    font-weight: 300;
    font-family: var(--font-primary);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.6);
    max-width: 700px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.95);
    line-height: 1.6;
}

/* Landscape Sections - Full Width */
.landscape-section {
    position: relative;
    height: 70vh;
    min-height: 600px;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%);
}

/* Mobile parallax for landscape sections */
@media (max-width: 768px) {
    .landscape-section {
        background-attachment: scroll;
        position: relative;
        height: 60vh;
        min-height: 500px;
    }
    
    .landscape-section::before {
        content: '';
        position: absolute;
        top: -10%;
        left: -10%;
        width: 120%;
        height: 120%;
        background: inherit;
        background-size: cover;
        background-position: center;
        will-change: transform;
        z-index: -1;
    }
}

.landscape-section.landscape-1 {
    height: 65vh;
    min-height: 550px;
}

.landscape-section.landscape-2 {
    height: 75vh;
    min-height: 650px;
}

.landscape-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(ellipse at center, transparent 0%, rgba(44, 95, 45, 0.1) 100%);
    mix-blend-mode: multiply;
}

.landscape-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    color: white;
    padding: var(--spacing-2xl) var(--spacing-lg) var(--spacing-xl);
    text-align: center;
}

.landscape-content h2 {
    font-size: clamp(2rem, 5vw, 3rem);
    font-family: var(--font-primary);
    margin-bottom: var(--spacing-md);
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.9), 0 2px 4px rgba(0, 0, 0, 1);
    color: white;
    letter-spacing: -0.02em;
}

.landscape-content p {
    font-size: clamp(1rem, 2vw, 1.3rem);
    font-family: var(--font-primary);
    max-width: 900px;
    margin: 0 auto;
    text-shadow: 0 3px 12px rgba(0, 0, 0, 0.8), 0 1px 3px rgba(0, 0, 0, 0.9);
    line-height: 1.7;
}

/* Page Hero Section - Fluid Design */
.page-hero-section {
    position: relative;
    height: 400px;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    background: linear-gradient(135deg, var(--forest-green) 0%, var(--pine-green) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    clip-path: ellipse(150% 100% at 50% 0);
}

.page-hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='leaf' x='0' y='0' width='100' height='100' patternUnits='userSpaceOnUse'%3E%3Cpath d='M50 10c0 20-10 30-20 40s-20 20-20 40c0-20 10-30 20-40s20-20 20-40z' fill='%23fff' fill-opacity='0.03'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='200' height='200' fill='url(%23leaf)'/%3E%3C/svg%3E");
    background-size: 200px 200px;
    animation: float-pattern 40s linear infinite reverse;
}

.page-hero-section .hero-overlay {
    background: radial-gradient(circle at center, transparent 0%, rgba(0, 0, 0, 0.2) 100%);
}

.page-hero-section .hero-content {
    animation: fadeInUp 0.8s ease;
}

.page-hero-section .page-title {
    font-size: clamp(2.5rem, 6vw, 4rem);
    font-weight: 700;
    font-family: var(--font-primary);
    margin-bottom: 0.5rem;
    text-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
    letter-spacing: -0.02em;
    color: white;
}

.page-hero-section .page-tagline {
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    font-weight: 300;
    font-family: var(--font-primary);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    color: rgba(255, 255, 255, 0.95);
}

/* Responsive - Enhanced Mobile Experience */
@media (max-width: 768px) {
    .hero-section {
        height: 100vh;
        min-height: 500px;
        background-attachment: scroll;
        position: relative;
    }
    
    /* Create parallax effect on mobile using transform */
    .hero-section::after {
        display: none;
    }
    
    .hero-section {
        background-attachment: scroll;
        will-change: transform;
    }
    
    /* Landscape sections height already defined above in mobile media query */
    
    .landscape-content {
        padding: var(--spacing-lg) var(--spacing-md);
    }
    
    .landscape-content h2 {
        font-size: 2rem;
    }
    
    .landscape-content p {
        font-size: 1rem;
    }
}