/* NW2 Addons Styles */
:root {
    --nw2-brand-dark: #0D0D0D;
    --nw2-brand-orange: #F27127;
    --nw2-brand-blue-1: #174873;
    --nw2-brand-blue-2: #3A668C;
}

/* Heading */
.nw2-heading { font-family: 'Montserrat', sans-serif; font-weight: 800; text-transform: uppercase; letter-spacing: -0.05em; line-height: 1.1; margin: 0; }
.nw2-heading span.char { display: inline-block; } /* For split text */

/* Text */
.nw2-text { font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.6; color: rgba(255,255,255,0.8); }

/* Button */
.nw2-btn { display: inline-block; padding: 15px 35px; background: var(--nw2-brand-orange); color: #fff; font-family: 'Montserrat', sans-serif; font-weight: 600; text-transform: uppercase; text-decoration: none; border-radius: 50px; transition: all 0.3s ease; letter-spacing: 1px; font-size: 14px; }
.nw2-btn:hover { background: #fff; color: var(--nw2-brand-dark); transform: translateY(-2px); }

/* Marquee */
.nw2-marquee-container { overflow: hidden; white-space: nowrap; display: flex; width: 100%; background: rgba(13, 13, 13, 0.5); padding: 30px 0; border-top: 1px solid rgba(255,255,255,0.1); border-bottom: 1px solid rgba(255,255,255,0.1); backdrop-filter: blur(5px); }
.nw2-marquee-track { display: flex; animation: nw2-marquee var(--marquee-speed, 20s) linear infinite; }
.nw2-marquee-content { display: flex; align-items: center; gap: 4rem; padding-right: 4rem; }
.nw2-marquee-text { font-family: 'Montserrat', sans-serif; font-size: 2.5rem; color: rgba(255,255,255,0.4); text-transform: uppercase; font-weight: 300; }
.nw2-marquee-dot { width: 12px; height: 12px; background: var(--nw2-brand-orange); border-radius: 50%; }
@keyframes nw2-marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* Card */
.nw2-card { border: 1px solid rgba(255,255,255,0.1); padding: 2.5rem; border-radius: 1rem; background: rgba(255,255,255,0.05); backdrop-filter: blur(10px); transition: transform 0.3s ease; }
.nw2-card:hover { transform: translateY(-5px); background: rgba(255,255,255,0.08); }
.nw2-card-title { display: block; font-size: 3.5rem; font-family: 'Montserrat', sans-serif; font-weight: 800; color: var(--nw2-brand-orange); margin-bottom: 0.5rem; line-height: 1; }
.nw2-card-subtitle { font-size: 0.875rem; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.05em; font-family: 'Inter', sans-serif; }

/* Carousel */
.nw2-carousel-wrapper { width: 100%; padding-bottom: 40px; }
.nw2-carousel-slide { height: 400px; border-radius: 1rem; overflow: hidden; position: relative; }
.nw2-carousel-link { display: block; width: 100%; height: 100%; text-decoration: none; }
.nw2-carousel-img { width: 100%; height: 100%; background-size: cover; background-position: center; transition: transform 0.5s ease; }
.nw2-carousel-slide:hover .nw2-carousel-img { transform: scale(1.05); }
.nw2-carousel-content { position: absolute; bottom: 0; left: 0; width: 100%; padding: 2rem; background: linear-gradient(to top, rgba(0,0,0,0.9), transparent); color: #fff; }
.nw2-carousel-title { font-family: 'Montserrat', sans-serif; font-size: 1.5rem; font-weight: 700; margin: 0 0 5px 0; color: #fff; }
.nw2-carousel-category { font-family: 'Inter', sans-serif; font-size: 0.875rem; color: var(--nw2-brand-orange); text-transform: uppercase; letter-spacing: 1px; }
.nw2-swiper-next, .nw2-swiper-prev { color: #fff !important; }

/* 3D Background */
.nw2-3d-bg-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; opacity: 1; }

/* MENU FULLSCREEN STYLES */
.nw2-menu-container { position: relative; z-index: 9999; }
.nw2-hamburger { background: transparent; border: none; cursor: pointer; display: flex; flex-direction: column; gap: 6px; padding: 10px; position: relative; z-index: 10000; }
.nw2-line { width: 30px; height: 2px; background-color: var(--nw2-brand-orange); transition: all 0.3s ease-in-out; transform-origin: left center; }

.nw2-menu-container.is-open .nw2-line-1 { transform: rotate(45deg); }
.nw2-menu-container.is-open .nw2-line-2 { opacity: 0; width: 0; }
.nw2-menu-container.is-open .nw2-line-3 { transform: rotate(-45deg); }

.nw2-fullscreen-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(13, 13, 13, 0.95); backdrop-filter: blur(15px); display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.5s cubic-bezier(0.77, 0, 0.175, 1); z-index: 9998; }
.nw2-menu-container.is-open .nw2-fullscreen-overlay { opacity: 1; pointer-events: auto; }

.nw2-overlay-content { text-align: center; transform: translateY(50px); transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1); transition-delay: 0.1s; }
.nw2-menu-container.is-open .nw2-overlay-content { transform: translateY(0); }

.nw2-menu-nav ul { list-style: none; padding: 0; margin: 0; }
.nw2-menu-nav li { margin: 20px 0; overflow: hidden; }
.nw2-menu-nav a { font-family: 'Montserrat', sans-serif; font-size: 4rem; font-weight: 800; color: #fff; text-decoration: none; text-transform: uppercase; transition: color 0.3s; display: inline-block; position: relative; }
.nw2-menu-nav a:hover { color: var(--nw2-brand-orange); }
.nw2-menu-nav a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0%; height: 4px; background: var(--nw2-brand-orange); transition: width 0.3s ease; }
.nw2-menu-nav a:hover::after { width: 100%; }

/* Variant: Side Drawer */
.variant-side_drawer .nw2-fullscreen-overlay { width: 450px; left: auto; right: -450px; opacity: 1; transition: right 0.5s cubic-bezier(0.77, 0, 0.175, 1); box-shadow: -10px 0 30px rgba(0,0,0,0.5); }
.variant-side_drawer.is-open .nw2-fullscreen-overlay { right: 0; }
@media (max-width: 768px) {
    .variant-side_drawer .nw2-fullscreen-overlay { width: 100vw; right: -100vw; }
    .nw2-menu-nav a { font-size: 2.5rem; }
}

/* Variant: Cyberpunk */
.variant-cyberpunk .nw2-fullscreen-overlay { background: repeating-linear-gradient(0deg, rgba(0,0,0,0.15), rgba(0,0,0,0.15) 1px, transparent 1px, transparent 2px), rgba(10, 10, 15, 0.95); }
.variant-cyberpunk .nw2-menu-nav a { font-family: 'Courier New', Courier, monospace; letter-spacing: 2px; }
.variant-cyberpunk .nw2-menu-nav a:hover { color: #fff !important; text-shadow: 3px 0 #0ff, -3px 0 #f0f; animation: nw2-glitch-text 0.2s infinite; }
.variant-cyberpunk .nw2-menu-nav a::after { display: none; }

@keyframes nw2-glitch-text {
    0% { transform: translate(0) }
    20% { transform: translate(-3px, 1px) }
    40% { transform: translate(-1px, -2px) }
    60% { transform: translate(3px, 1px) }
    80% { transform: translate(1px, -1px) }
    100% { transform: translate(0) }
}

/* Variant: Circular Reveal */
.variant-circular_reveal .nw2-fullscreen-overlay {
    opacity: 1;
    clip-path: circle(0px at var(--origin-x, 90vw) var(--origin-y, 50px));
    transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1);
    align-items: center;
    justify-content: flex-start;
}
.variant-circular_reveal.is-open .nw2-fullscreen-overlay {
    clip-path: circle(150vmax at var(--origin-x, 90vw) var(--origin-y, 50px));
}
.variant-circular_reveal .nw2-overlay-content {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    text-align: left;
    padding-left: 10vw;
    transform: none;
}
.variant-circular_reveal .nw2-menu-nav ul { counter-reset: nw2-menu-counter; }
.variant-circular_reveal .nw2-menu-nav li { counter-increment: nw2-menu-counter; overflow: hidden; margin: 15px 0; }
.variant-circular_reveal .nw2-menu-nav a {
    font-size: 5rem;
    display: inline-flex;
    align-items: center;
    transform: translateY(100%);
    opacity: 0;
}
.variant-circular_reveal .nw2-menu-nav a::before {
    content: "0" counter(nw2-menu-counter);
    font-size: 1.5rem;
    font-family: 'Inter', sans-serif;
    font-weight: 300;
    margin-right: 40px;
    color: var(--nw2-brand-orange);
    transform: translateY(-15px);
}
@media (max-width: 768px) {
    .variant-circular_reveal .nw2-menu-nav a { font-size: 3rem; }
    .variant-circular_reveal .nw2-menu-nav a::before { font-size: 1rem; margin-right: 20px; transform: translateY(-10px); }
    .variant-circular_reveal .nw2-overlay-content { padding-left: 5vw; }
}

/* 3D Background Container Extension */
.nw2-has-3d-bg {
    position: relative;
    z-index: 0;
}
.nw2-has-3d-bg > .nw2-container-bg {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none; /* Allows clicking elements inside the container */
}
