@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap');

:root {
    --primary: #eab308;        /* Yellow-500 */
    --primary-hover: #ca8a04;  /* Yellow-600 */
    --bg-dark: #09090b;        /* Zinc-950 */
    --bg-light: #f8fafc;       /* Slate-50 */
    --text-dark: #e4e4e7;      /* Zinc-200 */
    --text-light: #18181b;     /* Zinc-900 */
    --sidebar-box-bg: #003B5C; /* Dark Blue for Sidebar Label */
}

/* --- GLOBAL RESET & SCROLLBAR --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Inter', sans-serif;
    background-color: var(--bg-dark);
    color: var(--text-dark);
    overflow: hidden; /* Prevent body scroll, handled by .snap-container */
    transition: background-color 0.5s ease, color 0.5s ease;
    line-height: 1.6;
}

/* Hide Scrollbar Globally */
::-webkit-scrollbar { display: none; }
* { -ms-overflow-style: none; scrollbar-width: none; }

/* --- SCROLL SNAP CONTAINER --- */
.snap-container {
    height: 100vh;
    width: 100vw;
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
    position: relative;
}

/* Sections act as slides */
section {
    height: 100vh;
    width: 100%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    overflow: hidden; 
    position: relative;
}

/* Footer Specific Fix for Height */
footer {
    min-height: 100vh;
    height: auto;
    width: 100%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    overflow-y: auto; 
    position: relative;
}

/* Fix for footer content clipping on small screens */
footer {
    overflow-y: auto; 
}

/* --- LIGHT MODE LOGIC --- */
body.light-mode {
    background-color: var(--bg-light);
    color: var(--text-light);
    --sidebar-box-bg: #005eb8; /* Lighter Blue */
}

/* Text color overrides for Light Mode */
body.light-mode .text-zinc-300 { color: #52525b; }
body.light-mode .text-zinc-400 { color: #71717a; }
body.light-mode .text-zinc-500 { color: #a1a1aa; }

/* Border overrides */
body.light-mode .border-white\/5,
body.light-mode .border-white\/10 { border-color: rgba(0,0,0,0.1); }
body.light-mode .border-white\/20 { border-color: rgba(0,0,0,0.2); }

/* Switch Section Backgrounds to White */
body.light-mode section.bg-black { background-color: #ffffff; }

/* --- HERO SLIDER LIGHT MODE FIX --- */
body.light-mode #home .text-white { color: #ffffff; }
body.light-mode #home .text-zinc-300 { color: #d4d4d8; }
body.light-mode #home .text-zinc-400 { color: #a1a1aa; }
body.light-mode #home .text-yellow-400 { color: #facc15; }

/* --- FOOTER & COPYRIGHT FIXES --- */
body.light-mode footer {
    background-color: #000000;
    color: white; 
}
body.light-mode footer .text-zinc-300 { color: #d4d4d8; }
body.light-mode footer .text-zinc-400 { color: #a1a1aa; }
body.light-mode footer .text-zinc-500 { color: #71717a; }
body.light-mode footer .bg-black { background-color: #000000; }
body.light-mode footer .border-zinc-900 { border-color: #18181b; } 

/* Fix Footer Single Line Issue */
.footer-copyright-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    text-align: center;
    width: 100%;
}

@media (min-width: 768px) {
    .footer-copyright-group {
        flex-direction: row;
        width: auto;
        white-space: nowrap;
        gap: 0.5rem;
    }
    
    .footer-copyright-group span {
        white-space: nowrap;
    }
}

/* --- ICON TOGGLING --- */
#sun-icon { display: none; }
#moon-icon { display: block; }
body.light-mode #sun-icon { display: block; }
body.light-mode #moon-icon { display: none; }

/* --- TYPOGRAPHY & UTILITIES --- */
.font-serif { font-family: 'Playfair Display', serif; }

.dot-pattern {
    background-image: radial-gradient(rgba(128, 128, 128, 0.2) 1px, transparent 1px);
    background-size: 30px 30px;
}

/* --- MODERN HERO STYLES --- */
.modern-gradient {
    background: linear-gradient(
        to right, 
        rgba(0,0,0,0.85) 0%, 
        rgba(0,0,0,0.6) 50%, 
        rgba(0,0,0,0.2) 100%
    );
}

.glass-panel {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
}

@keyframes slideUpFadeIn {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideDownFadeOut {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-30px); }
}

.anim-target { opacity: 0; }
.animate-enter { animation: slideUpFadeIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.animate-exit { animation: slideDownFadeOut 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards; }

.stagger-1 { animation-delay: 0.1s; }
.stagger-2 { animation-delay: 0.2s; }
.stagger-3 { animation-delay: 0.3s; }
.stagger-4 { animation-delay: 0.4s; }

/* --- NAVIGATION LINKS --- */
.nav-link { 
    position: relative; 
    padding-bottom: 4px; 
    font-size: 14px; 
    font-weight: 500; 
    letter-spacing: 0.02em; 
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
}

.nav-link::after {
    content: ''; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    width: 0%; 
    height: 2px;
    background-color: var(--primary); 
    transition: width 0.3s ease;
}

.nav-link:hover::after { width: 100%; }

/* --- DROPDOWN MENUS --- */
.group { position: relative; height: 100%; display: flex; align-items: center; }

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: max-content;
    min-width: 180px;
    background-color: rgba(9, 9, 11, 0.95);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0 0 4px 4px;
    padding: 8px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 50;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
}

.group:hover .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }

.dropdown-item {
    display: block;
    padding: 12px 24px;
    font-size: 13px;
    color: #a1a1aa;
    transition: all 0.2s;
    border-left: 2px solid transparent;
    text-align: left;
    text-decoration: none;
}

.dropdown-item:hover {
    color: white;
    background-color: rgba(255, 255, 255, 0.05);
    border-left-color: var(--primary);
}

body.light-mode .dropdown-menu { background-color: rgba(255, 255, 255, 0.98); border-color: rgba(0, 0, 0, 0.1); }
body.light-mode .dropdown-item { color: #52525b; }
body.light-mode .dropdown-item:hover { color: black; background-color: rgba(0, 0, 0, 0.05); }

/* --- SIDEBAR NAVIGATION --- */
#page-sidebar {
    position: fixed;
    right: 30px; 
    top: 50%; 
    transform: translateY(-50%);
    z-index: 100; 
    flex-direction: column; 
    gap: 24px;
    pointer-events: auto;
}

.sidebar-item { 
    cursor: pointer; 
    display: flex; 
    align-items: center; 
    justify-content: flex-end; 
    position: relative; 
    height: 40px; 
}

.sidebar-pill {
    width: 6px; 
    height: 30px; 
    border: 1px solid rgba(128, 128, 128, 0.5);
    border-radius: 9999px; 
    transition: all 0.4s ease; 
    margin-left: 12px;
    background: transparent;
}

.sidebar-item.active .sidebar-pill { border-color: var(--primary); height: 45px; box-shadow: 0 0 10px rgba(234, 179, 8, 0.4); }

.sidebar-label-wrapper {
    display: flex; align-items: center; opacity: 0; transform: translateX(20px);
    transition: all 0.5s cubic-bezier(0.25, 1, 0.5, 1); pointer-events: none;
}

.sidebar-line { width: 30px; height: 2px; background-color: var(--primary); transform: scaleX(0); transform-origin: right; transition: transform 0.4s ease; }

.sidebar-label-box {
    background-color: var(--sidebar-box-bg); color: white; font-size: 14px;
    font-weight: 600; padding: 8px 16px; white-space: nowrap; border-radius: 2px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}

.sidebar-item:hover .sidebar-label-wrapper, .sidebar-item.temp-visible .sidebar-label-wrapper { opacity: 1; transform: translateX(0); }
.sidebar-item:hover .sidebar-line, .sidebar-item.temp-visible .sidebar-line { transform: scaleX(1); }

/* --- SERVICE CARDS --- */
.service-item { position: relative; overflow: hidden; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); height: 100%; }
.service-item::before {
    content: ''; position: absolute; top: 0; left: 0; width: 2px; height: 0%;
    background-color: var(--primary); transition: height 0.5s ease;
}
.service-item:hover::before { height: 100%; }
.service-item:hover { transform: translateY(-5px); box-shadow: 0 20px 40px -10px rgba(0,0,0,0.2); }

#services {
    height: auto; min-height: 100vh; overflow: visible; display: flex; align-items: center; 
    padding-top: 6rem; padding-bottom: 6rem;
}

/* --- MOBILE MENU --- */
#mobile-menu.open { transform: translateX(0); }
.mobile-nav-link {
    color: #a1a1aa; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transition: color 0.2s, border-color 0.2s; text-decoration: none; font-size: 1.125rem;
}
.mobile-nav-link:hover { color: white; border-bottom-color: var(--primary); }

body.light-mode #mobile-menu { background-color: #ffffff; box-shadow: -10px 0 20px rgba(0, 0, 0, 0.1); }
body.light-mode .mobile-nav-link { color: #52525b; border-bottom-color: rgba(0, 0, 0, 0.1); }
body.light-mode .mobile-nav-link:hover { color: black; border-bottom-color: var(--primary); }

/* ==========================================
   CONTENT COPY PROTECTION
   ========================================== */

/* Disable text selection everywhere */
body {
    -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none; /* Old versions of Firefox */
    -ms-user-select: none; /* Internet Explorer/Edge */
    user-select: none; /* Non-prefixed version, currently supported by Chrome, Edge, Opera and Firefox */
}

/* ENABLE text selection ONLY inside form inputs so users can type */
input, textarea, select {
    -webkit-touch-callout: default !important;
    -webkit-user-select: auto !important;
    -moz-user-select: auto !important;
    -ms-user-select: auto !important;
    user-select: auto !important;
}

/* Prevent image dragging and saving */
img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
}