/* Core Variables */
:root {
    --accent: #D4AF37; /* Muted Gold from logo/brand */
    --black: #111111;
    --off-white: #f8f8f8;
    --border: #e5e5e5;
}

body {
    background-color: #ffffff;
    color: var(--black);
    font-family: 'Manrope', sans-serif;
    overflow-x: hidden;
}

h1, h2, h3, h4, .serif {
    font-family: 'Playfair Display', serif;
}

.cinzel {
    font-family: 'Cinzel', serif;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #fff;
}
::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--black);
}

/* Animations */
.fade-up {
    /* opacity: 0; Removed to ensure visibility if JS fails or delays */
    /* transform: translateY(40px); */
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Marquee Animation */
.marquee-container {
    overflow: hidden;
    white-space: nowrap;
}
.marquee-content {
    display: inline-block;
    animation: marquee 20s linear infinite;
}
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Image Hover Zoom */
.img-zoom-container {
    overflow: hidden;
}
.img-zoom {
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.group:hover .img-zoom {
    transform: scale(1.05);
}

/* Loader */
#loader {
    position: fixed;
    inset: 0;
    background: #fff;
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.6s ease;
}

/* =========================================
   GSAP & Feature Specific Styles
   ========================================= */

/* Prevent footer from rising during async SPA page transitions */
#main-content {
    min-height: 100vh;
}

/* General Section Wrapper */
.section {
    position: relative;
    width: 100%;
}

/* Takeover Sections */
.takeover {
    /* For pinned elements, overflow: hidden helps avoid scrollbar flicker */
    overflow: hidden; 
}
.takeover-card {
    position: relative;
    z-index: 10;
    transform-origin: center center;
    /* Initial state handled by GSAP */
}

/* Expertise Stacked Cards */
.expertise-wrapper {
    position: relative;
}
.expertise-card {
    width: 100%;
    /* Sticky ensures they stack naturally before GSAP enhancement */
    position: sticky; 
    top: 100px; 
    transition: transform 0.3s ease-out; /* Fallback */
}

/* Horizontal Scroll */
.horizontal {
    /* Required for pinning */
    height: 100vh;
    width: 100%;
    overflow: hidden; 
}
.horizontal-track {
    display: flex;
    height: 100%;
    align-items: center;
    /* Width will be very wide */
    width: max-content; 
}
.panel {
    /* Adjust width in HTML classes or here */
    height: auto;
}

/* Multi-step Form */
.form-step {
    transition: all 0.5s ease-in-out;
}
.form-step.active {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}

/* Performance */
.will-change-transform {
    will-change: transform;
}
