:root {
    --gold: #c5a059;
    --green: #0e3b2e;
    --dark: #0f0f0f;
    --grey: #f4f4f4;
    --white: #ffffff;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Montserrat', sans-serif; color: #333; line-height: 1.6; background: var(--white); overflow-x: hidden; }

/* --- WIDER CONTAINER FIX --- */
/* Increased to 1600px so the banners feel "Full Width" on big screens */
.container { width: 92%; max-width: 1600px; margin: auto; }

/* --- GLOBAL VIDEO BACKGROUND FIX --- */
.hero-video, 
.section-bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%; /* Ensures it fills the parent */
    height: 100%;
    object-fit: cover; 
    z-index: 0;
}

/* --- HERO SECTION --- */
.hero { 
    position: relative; 
    height: 100vh; 
    display: flex; 
    align-items: center; 
    overflow: hidden; 
    background: var(--dark); 
    color: var(--white); 
}

.overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(14, 59, 46, 0.5), rgba(0,0,0,0.8)); z-index: 1; }
.hero-container { position: relative; z-index: 2; width: 100%; }
.logo-wrapper { margin-bottom: 30px; }
.brand-logo { height: 100px; width: auto; display: block; } /* Slightly larger logo */
h1 { font-family: 'Playfair Display', serif; font-size: 4.5rem; line-height: 1.1; margin-bottom: 25px; text-shadow: 0 2px 10px rgba(0,0,0,0.5); }
.hero-content p { font-size: 1.3rem; font-weight: 300; max-width: 800px; margin-bottom: 40px; border-left: 4px solid var(--gold); padding-left: 25px; }

/* BUTTONS */
.btn { display: inline-block; padding: 18px 40px; text-decoration: none; font-weight: 600; transition: 0.3s; text-transform: uppercase; letter-spacing: 1px; font-size: 0.9rem; }
.btn-primary { background: var(--gold); color: var(--white); margin-right: 15px; }
.btn-primary:hover { background: #b48e47; transform: translateY(-3px); }
.btn-outline { background: transparent; border: 2px solid var(--white); color: var(--white); }
.btn-outline:hover { background: var(--white); color: var(--dark); }
.btn-gold { background: var(--gold); color: var(--white); }
.btn-gold:hover { background: var(--white); color: var(--dark); }

/* --- SHARED CINEMATIC SECTION STYLES --- */
section { 
    position: relative; 
    width: 100%;
    overflow: hidden; 
}

.mission-section-bg, 
.industrial-section-bg, 
.sourcing-section-bg, 
.tech-section-bg,
.cta-section {
    min-height: 85vh; 
    display: flex;    
    align-items: center;
    padding: 100px 0;
}

.section-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 1; }
.section-overlay-dark { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1; } 
.relative-container { position: relative; z-index: 2; width: 100%; }

/* --- MISSION SECTION --- */
.mission-section-bg { color: var(--white); }
.mission-header { text-align: center; margin-bottom: 60px; }
.mission-header h2 { font-family: 'Playfair Display', serif; font-size: 3rem; margin-bottom: 15px; }
.mission-lead { font-size: 1.4rem; max-width: 900px; margin: auto; font-style: italic; }
.mission-grid-main { display: flex; flex-wrap: wrap; gap: 40px; }
.mission-box { 
    flex: 1; 
    min-width: 300px; 
    background: rgba(255, 255, 255, 0.95); 
    padding: 50px; 
    border-top: 5px solid var(--gold); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.2); 
    color: #333; 
}
.mission-box h3 { font-family: 'Playfair Display', serif; font-size: 2rem; margin-bottom: 15px; color: var(--green); }

/* --- INDUSTRIAL SECTION --- */
.industrial-section-bg { color: var(--white); }
.section-title { font-family: 'Playfair Display', serif; font-size: 3.5rem; text-align: center; color: var(--gold); margin-bottom: 15px; }
.section-subtitle { text-align: center; margin-bottom: 70px; text-transform: uppercase; letter-spacing: 3px; font-size: 1rem; }
.specs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 40px; }
.spec-card { padding: 50px; border: 1px solid rgba(197, 160, 89, 0.4); background: rgba(0,0,0,0.7); transition: 0.3s; }
.spec-card:hover { border-color: var(--gold); background: rgba(0,0,0,0.9); }
.spec-card h3 { color: var(--gold); margin-bottom: 15px; font-size: 1.8rem; font-family: 'Playfair Display', serif; }

/* --- SOURCING & TECH SECTIONS --- */
.sourcing-section-bg { color: var(--white); }
.sourcing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; }
.source-card { 
    padding: 40px; 
    background: rgba(255,255,255,0.1); 
    border-left: 4px solid var(--gold);
    backdrop-filter: blur(5px);
}
.source-card h3 { font-family: 'Playfair Display', serif; font-size: 1.6rem; color: var(--gold); margin-bottom: 10px; }
.source-card p { font-size: 1rem; color: #f0f0f0; }

.tech-section-bg { color: var(--white); }
.tech-grid { display: flex; flex-wrap: wrap; gap: 50px; justify-content: center; }
.tech-box { 
    flex: 1; 
    min-width: 400px; 
    background: rgba(14, 59, 46, 0.9); 
    padding: 50px; 
    border: 1px solid var(--gold);
}
.tech-list { margin-top: 20px; list-style: none; }
.tech-list li { margin-bottom: 15px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 10px; font-size: 1rem; }
.tech-list li::before { content: "•"; color: var(--gold); display: inline-block; width: 1em; margin-left: -1em; }

/* --- NEW TRACEABILITY / ORIGIN GALLERY STYLES --- */
.origin-section { background: var(--white); padding: 120px 0; }
.origin-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 40px; 
    margin-top: 60px; 
}
.origin-item { 
    background: #fff;
    box-shadow: 0 15px 40px rgba(0,0,0,0.08); /* Nice card shadow */
    padding-bottom: 25px;
    border-radius: 8px; /* Rounded corners */
    overflow: hidden;
    text-align: center;
    border-bottom: 4px solid var(--gold); /* Status bar look */
    transition: transform 0.3s ease;
}
.origin-item:hover {
    transform: translateY(-10px); /* Lifts up on hover */
}

.media-wrapper {
    width: 100%;
    height: 250px; /* Taller images */
    background: #000;
    margin-bottom: 20px;
}
.media-wrapper img, .media-wrapper video { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    cursor: pointer; 
    transition: 0.3s; 
}
.media-wrapper video:hover, .media-wrapper img:hover { 
    opacity: 0.9;
}

/* Typography for the Cards */
.origin-item h3 { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.2rem; 
    color: var(--green); 
    margin-bottom: 5px; 
}
.origin-item p { 
    font-size: 0.9rem; 
    color: #888; 
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* --- CONTACT SECTION --- */
.cta-section { 
    color: var(--white); 
    text-align: center; 
}
.cta-section h2 { font-family: 'Playfair Display', serif; font-size: 3rem; margin-bottom: 25px; color: var(--gold); }
.cta-section p { font-size: 1.4rem; margin-bottom: 50px; max-width: 900px; margin-left: auto; margin-right: auto; opacity: 0.95; }

.footer { padding: 50px 0; background: #050505; text-align: center; color: #666; font-size: 0.9rem; letter-spacing: 1px; }

/* CINEMA OVERLAY */
.video-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.95); z-index: 9999; justify-content: center; align-items: center; flex-direction: column; }
.video-overlay.active { display: flex; }
#overlay-video-player { max-width: 90%; max-height: 85%; box-shadow: 0 0 30px rgba(0,0,0,0.8); border: 2px solid var(--gold); outline: none; }
.close-overlay-btn { position: absolute; top: 20px; right: 30px; color: var(--gold); font-size: 50px; line-height: 1; cursor: pointer; transition: 0.3s; z-index: 10000; }
.close-overlay-btn:hover { color: var(--white); transform: scale(1.1); }