/* ===================================================================
   BASE THEME
=================================================================== */
:root{
    /* Complementary Eco-Minimal Palette */
    --color-primary:#1abc9c;           /* turquesa hoja */
    --color-primary-dark:#14927a;
    --color-secondary:#ff6f61;         /* coral flor */
    --color-secondary-dark:#e15146;
    --color-accent:#ffd166;            /* sol */
    --color-neutral-100:#ffffff;
    --color-neutral-900:#111111;
    --color-gray-700:#555555;
    --color-gray-400:#bdbdbd;
    --radius-sm:6px;
    --radius-lg:18px;

    /* Typography */
    --font-heading:'Space Grotesk', sans-serif;
    --font-body:'DM Sans', sans-serif;

    /* Shadows */
    --shadow-xs:0 2px 4px rgba(0,0,0,.06);
    --shadow-md:0 6px 12px rgba(0,0,0,.12);
    --shadow-lg:0 12px 24px rgba(0,0,0,.18);

    /* Transitions */
    --motion-fast:150ms cubic-bezier(.4,0,.2,1);
    --motion-bounce:.6s cubic-bezier(.34,1.56,.64,1);

    /* Layout */
    --container-width:1200px;
    --gutter:1.5rem;
}

/* ===================================================================
   GLOBAL RESETS
=================================================================== */
html{
    scroll-behavior:smooth;
    box-sizing:border-box;
    font-size:16px;
}
*,*:before,*:after{box-sizing:inherit;}
body{
    margin:0;
    font-family:var(--font-body);
    color:var(--color-neutral-900);
    background:var(--color-background, #f9fafb);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--color-primary);text-decoration:none;transition:color var(--motion-fast);}
a:hover,a:focus{color:var(--color-primary-dark);outline:none;text-decoration:underline;}

.container{
    width:90%;
    max-width:var(--container-width);
    margin:0 auto;
    padding-left:var(--gutter);
    padding-right:var(--gutter);
}

/* ===================================================================
   TYPOGRAPHY
=================================================================== */
h1,h2,h3,h4,h5,h6{
    font-family:var(--font-heading);
    line-height:1.2;
    margin:0 0 .5em;
    color:var(--color-neutral-900);
    text-align:center;
}
.section-title{text-shadow:1px 1px 3px rgba(0,0,0,.2);}

/* ===================================================================
   BUTTONS
=================================================================== */
.btn,
button,
input[type='submit']{
    appearance:none;
    display:inline-block;
    padding:.75rem 1.75rem;
    font-family:var(--font-heading);
    font-weight:600;
    border:none;
    border-radius:var(--radius-sm);
    background:var(--color-secondary);
    color:var(--color-neutral-100);
    cursor:pointer;
    transition:transform var(--motion-fast),background var(--motion-fast);
}
.btn-primary{background:var(--color-primary);}
.btn-secondary{background:var(--color-secondary);}
.btn:hover,
button:hover,
input[type='submit']:hover{
    transform:translateY(-3px);
    background:var(--color-secondary-dark);
}
.btn-primary:hover{background:var(--color-primary-dark);}
.btn:active{transform:scale(.97);}

/* ===================================================================
   HEADER
=================================================================== */
.site-header{
    position:sticky;
    top:0;
    width:100%;
    z-index:1000;
    background:rgba(255,255,255,.9);
    backdrop-filter:saturate(180%) blur(12px);
    box-shadow:var(--shadow-xs);
}
.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:.75rem 0;
}
.logo{
    font-family:var(--font-heading);
    font-size:1.4rem;
    font-weight:700;
    color:var(--color-primary);
}
.main-nav ul{
    list-style:none;
    display:flex;
    gap:1.25rem;
    margin:0;
    padding:0;
}
.main-nav a{
    font-weight:500;
    position:relative;
}
.main-nav a::after{
    content:'';
    position:absolute;
    left:0;
    bottom:-4px;
    width:0;
    height:2px;
    background:var(--color-primary);
    transition:width var(--motion-fast);
}
.main-nav a:hover::after{width:100%;}
/* Burger */
.burger{display:none;flex-direction:column;gap:4px;background:none;border:none;padding:0;margin:0;cursor:pointer;}
.burger span{display:block;width:24px;height:2px;background:var(--color-neutral-900);transition:all var(--motion-fast);}

/* ===================================================================
   HERO
=================================================================== */
.hero-section{
    position:relative;
    width:100%;
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    color:var(--color-neutral-100);
    padding:6rem 0 8rem;
}
.hero-content{
    text-align:center;
    max-width:760px;
    margin:0 auto;
}
.hero-section p.lead{
    font-size:1.25rem;
    margin:1.25rem auto 2rem;
    color:var(--color-neutral-100);
}

/* ===================================================================
   SUSTAINABILITY
=================================================================== */
.sustainability-section{
    padding:4rem 0;
    background:linear-gradient(135deg,#e8f5e9 0%,#ffffff 100%);
}
.toggle-wrapper{margin-top:2rem;text-align:center;}
.toggle{display:none;}
.toggle-label{
    display:inline-block;
    background:var(--color-primary);
    color:#fff;
    padding:.5rem 1rem;
    border-radius:var(--radius-sm);
    cursor:pointer;
    transition:background var(--motion-fast);
}
.toggle:checked + .toggle-label{background:var(--color-primary-dark);}
.toggle-content{
    max-height:0;
    overflow:hidden;
    transition:max-height var(--motion-fast);
}
.toggle:checked ~ .toggle-content{max-height:300px;}

/* ===================================================================
   RESOURCES
=================================================================== */
.resources-section{
    padding:4rem 0;
    background:linear-gradient(180deg,#ffffff 0%,#f1fbf9 100%);
}
.resources-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:1.5rem;
    margin-top:2rem;
}
.card{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    background:#fff;
    border-radius:var(--radius-sm);
    box-shadow:var(--shadow-xs);
    padding:1.25rem;
    transition:transform var(--motion-fast),box-shadow var(--motion-fast);
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.card-content h3{font-size:1rem;margin-bottom:.5rem;color:var(--color-neutral-900);}
.card-content p{font-size:.875rem;color:var(--color-gray-700);}

/* ===================================================================
   NEWS
=================================================================== */
.news-section{padding:4rem 0;}
.carousel{position:relative;overflow:hidden;margin-top:2rem;}
.carousel-track{
    display:flex;
    transition:transform var(--motion-bounce);
}
.carousel-slide{
    min-width:100%;
    padding:0 var(--gutter);
    box-sizing:border-box;
}
.carousel-slide h3{margin-top:1rem;font-size:1.25rem;}
.carousel-button{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    background:rgba(0,0,0,.5);
    color:#fff;
    border:none;
    border-radius:50%;
    width:40px;height:40px;
    cursor:pointer;
}
.carousel-button.prev{left:10px;}
.carousel-button.next{right:10px;}
.image-container{
    width:100%;
    height:240px;
    overflow:hidden;
    border-radius:var(--radius-sm);
    display:flex;
    align-items:center;
    justify-content:center;
}
.image-container img{
    height:100%;
    width:100%;
    object-fit:cover;
    margin:0 auto;
}

/* ===================================================================
   CAREERS
=================================================================== */
.careers-section{
    padding:4rem 0;
    background-size:cover;
    background-repeat:no-repeat;
    background-position:center;
}
.careers-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:1.5rem;
    margin-top:2rem;
}
.careers-grid .card-image{
    width:100%;
    height:220px;
    overflow:hidden;
}
.careers-grid .card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    margin:0 auto;
}

/* ===================================================================
   CONTACT
=================================================================== */
.contact-section{padding:4rem 0;}
.contact-form{max-width:640px;margin:2rem auto 0;}
.form-group{display:flex;flex-direction:column;margin-bottom:1.25rem;}
.form-group label{margin-bottom:.5rem;font-weight:600;}
.form-group input,
.form-group textarea{
    padding:.75rem 1rem;
    border:1px solid var(--color-gray-400);
    border-radius:var(--radius-sm);
    font-family:inherit;
    font-size:1rem;
}
.form-group input:focus,
.form-group textarea:focus{outline:none;border-color:var(--color-primary);}
.slider-wrapper{align-items:center;}
.slider-wrapper output{margin-left:.5rem;font-weight:600;}

/* ===================================================================
   FOOTER
=================================================================== */
.site-footer{
    background:var(--color-neutral-900);
    color:var(--color-neutral-100);
    padding:3rem 0 2rem;
}
.footer-inner{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:2rem;
    margin-bottom:2rem;
}
.site-footer h3,
.site-footer h4{text-shadow:none;color:var(--color-neutral-100);}
.footer-links ul,
.footer-social ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem;}
.footer-links a,
.footer-social a{color:var(--color-neutral-100);transition:color var(--motion-fast);}
.footer-links a:hover,
.footer-social a:hover{color:var(--color-accent);}
.copyright{text-align:center;font-size:.875rem;color:var(--color-gray-400);}

/* ===================================================================
   UTILITY & HELPER CLASSES
=================================================================== */
[data-parallax]{background-attachment:fixed;}
.is-two-thirds{grid-column:span 2;}
.text-center{text-align:center;}
.glass{
    background:rgba(255,255,255,.25);
    backdrop-filter:blur(16px) saturate(120%);
    border-radius:var(--radius-lg);
}
.read-more{
    display:inline-block;
    margin-top:.5rem;
    font-weight:600;
}
.read-more::after{
    content:' →';
    transition:transform var(--motion-fast);
}
.read-more:hover::after{transform:translateX(4px);}

/* Success Page */
.success-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:2rem;
}

/* Terms & Privacy */
.terms-page,
.privacy-page{padding-top:100px;padding-bottom:4rem;}

/* ===================================================================
   ANIMATIONS
=================================================================== */
@keyframes bounce-in{
    0%{opacity:0;transform:scale(.8);}
    60%{opacity:1;transform:scale(1.05);}
    100%{transform:scale(1);}
}
[data-aos="fade-up"]{opacity:1;transform:translateY(40px);}
[data-aos="fade-up"].aos-animate{animation:bounce-in var(--motion-bounce) forwards;}

/* ===================================================================
   RESPONSIVE
=================================================================== */
@media(max-width:768px){
    .main-nav{position:fixed;inset:0 0 0 40%;background:#fff;transform:translateX(100%);transition:transform var(--motion-fast);display:flex;align-items:center;justify-content:center;}
    .main-nav ul{flex-direction:column;gap:2rem;}
    .burger{display:flex;}
    .burger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
    .burger.active span:nth-child(2){opacity:0;}
    .burger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}
    .nav-open .main-nav{transform:translateX(0);}
}