/* AURALUX BRAND STYLES v5 */
.page-header.flex-middle { display: none !important; }
#top-bar { background: #1B2070 !important; }
#top-bar a, #top-bar span { color: rgba(255,255,255,.85) !important; }
#top-bar a:hover { color: #C9A227 !important; }
#footer { background: #0d1147 !important; }
#footer::before { content: ""; display: block; height: 4px; background: linear-gradient(90deg,#1B2070,#C9A227,#1B2070); }
#footer, #footer *:not(.ap-stat-n):not(.ap-stat-l) { color: rgba(255,255,255,.8) !important; }
#footer .widget-title { color: #C9A227 !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 1px !important; border-bottom: 2px solid rgba(201,162,39,.3) !important; padding-bottom: 10px !important; }
#footer a:hover { color: #C9A227 !important; }
.footer-bottom, #footer .footer-bottom { background: #090c36 !important; border-top: 1px solid rgba(201,162,39,.18) !important; }
#back-to-top, .back-to-top { background: #C9A227 !important; color: #1B2070 !important; }

/* HERO BANNER STYLES */
.ap-hero-video-wrap {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}
.ap-hero-video-iframe {
    position: absolute;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) scale(1.35) !important;
    width: 100vw !important;
    height: 56.25vw !important; /* 16:9 aspect ratio */
    min-width: 177.78vh !important; /* 16:9 aspect ratio for vertical heights */
    min-height: 100% !important;
    max-width: none !important;
    pointer-events: none !important;
    opacity: 0.6;
}
.ap-hero { position: relative; overflow: hidden; background: linear-gradient(135deg,#0d1147 0%,#1B2070 55%,#252d8f 100%) !important; padding: 80px 24px 90px; text-align: center; margin-bottom: 0 !important; }
.ap-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle,rgba(201,162,39,.25) 1.5px,transparent 1.5px); background-size: 30px 30px; animation: ap-drift 25s linear infinite; pointer-events: none; }
@keyframes ap-drift { 0% { background-position: 0 0; } 100% { background-position: 60px 60px; } }
.ap-hero::after { content: ""; position: absolute; top: -80px; left: 50%; transform: translateX(-50%); width: 700px; height: 400px; background: radial-gradient(ellipse,rgba(201,162,39,.22) 0%,transparent 68%); pointer-events: none; z-index: 0; }

.ap-ring { position: absolute; border-radius: 50%; border: 1px solid rgba(201,162,39,.18); pointer-events: none; z-index: 1; }
.ap-ring:nth-child(1) { width: 300px; height: 300px; top: 50%; left: 50%; margin: -150px 0 0 -150px; animation: ap-expand 8s ease-in-out 0s infinite; }
.ap-ring:nth-child(2) { width: 500px; height: 500px; top: 50%; left: 50%; margin: -250px 0 0 -250px; animation: ap-expand 8s ease-in-out 1.5s infinite; }
.ap-ring:nth-child(3) { width: 700px; height: 700px; top: 50%; left: 50%; margin: -350px 0 0 -350px; animation: ap-expand 8s ease-in-out 3s infinite; }
@keyframes ap-expand { 0%,100% { opacity: .55; transform: scale(1); } 50% { opacity: .12; transform: scale(1.06); } }

.ap-hero-inner { position: relative; z-index: 2; max-width: 760px; margin: 0 auto; }
.ap-badge-pill { display: inline-flex; align-items: center; gap: 8px; background: rgba(201,162,39,.15) !important; border: 1px solid rgba(201,162,39,.45) !important; border-radius: 50px; padding: 8px 22px; margin-bottom: 26px; animation: ap-in .7s cubic-bezier(.16,1,.3,1) 0s both; }
.ap-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: #C9A227 !important; animation: ap-pulse 2s ease-in-out infinite; flex-shrink: 0; }
@keyframes ap-pulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: .5; } }
.ap-badge-pill span { font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 2px !important; color: #C9A227 !important; }

.ap-hero-h { display: block; font-size: 48px !important; font-weight: 900 !important; color: #ffffff !important; letter-spacing: -1px; line-height: 1.15; margin: 0 0 18px; padding: 0; animation: ap-in .75s cubic-bezier(.16,1,.3,1) .1s both; }
.ap-hero-h em { font-style: normal; color: #C9A227 !important; }

.ap-hero-sub { display: block; font-size: 16.5px !important; color: rgba(255,255,255,.82) !important; line-height: 1.7; max-width: 600px; margin: 0 auto 32px; animation: ap-in .75s cubic-bezier(.16,1,.3,1) .2s both; }
.ap-divider { display: inline-flex; align-items: center; gap: 12px; animation: ap-in .75s cubic-bezier(.16,1,.3,1) .3s both; }
.ap-divider-line { width: 70px; height: 2px; border-radius: 2px; background: linear-gradient(90deg,transparent,#C9A227); }
.ap-divider-line.r { background: linear-gradient(270deg,transparent,#C9A227); }
.ap-divider-dot { width: 10px; height: 10px; border-radius: 50%; background: #C9A227; box-shadow: 0 0 16px #C9A227,0 0 32px rgba(201,162,39,.5); }
@keyframes ap-in { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }

/* BODY & CARDS */
.ap-body { max-width: 1180px; margin: 0 auto; padding: 60px 24px 40px; }
.ap-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 26px; margin-bottom: 50px; }

@keyframes ap-card-rise { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }
.ap-card { position: relative; overflow: hidden; background: #fff !important; border: 2px solid rgba(27,32,112,.12) !important; border-radius: 22px; padding: 0 0 28px; text-align: center; display: flex; flex-direction: column; align-items: center; box-shadow: 0 4px 24px rgba(27,32,112,.08); opacity: 0; animation: ap-card-rise .7s cubic-bezier(.16,1,.3,1) forwards; transition: transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,border-color .3s ease; }
.ap-card:nth-child(1) { animation-delay: .15s; }
.ap-card:nth-child(2) { animation-delay: .28s; }
.ap-card:nth-child(3) { animation-delay: .41s; }
.ap-card:nth-child(4) { animation-delay: .54s; }
.ap-card:hover { transform: translateY(-14px) !important; box-shadow: 0 32px 64px -10px rgba(27,32,112,.32) !important; border-color: #1B2070 !important; }
.ap-card::before { content: ""; position: absolute; top: 0; left: -120%; width: 70%; height: 100%; background: linear-gradient(90deg,transparent,rgba(201,162,39,.12),transparent); transition: left .55s ease; pointer-events: none; z-index: 1; }
.ap-card:hover::before { left: 130%; }

.ap-strip { width: 100%; height: 6px; border-radius: 21px 21px 0 0; background: linear-gradient(90deg,#1B2070,#C9A227) !important; flex-shrink: 0; transition: height .3s ease; }
.ap-card:hover .ap-strip { height: 8px; }

.ap-logo { width: calc(100% - 32px); height: 116px; display: flex; align-items: center; justify-content: center; background: #f0f2ff; border: 1px solid rgba(27,32,112,.07); border-radius: 14px; padding: 12px; margin: 18px 16px 0; overflow: hidden; flex-shrink: 0; transition: transform .35s ease,background .3s ease,box-shadow .35s ease; }
.ap-card:hover .ap-logo { transform: scale(1.06); background: #fff; box-shadow: 0 6px 22px rgba(27,32,112,.12); }
.ap-logo img { max-height: 72px !important; max-width: 82% !important; object-fit: contain !important; display: block !important; width: auto !important; height: auto !important; margin: 0 auto !important; }

.ap-lbl { display: inline-block; margin: 18px 0 10px; font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 1.2px !important; padding: 5px 14px; border-radius: 30px; background: rgba(27,32,112,.06) !important; color: #1B2070 !important; border: 1px solid rgba(27,32,112,.14) !important; }
.ap-name { display: block; font-size: 22px !important; font-weight: 800 !important; color: #1B2070 !important; letter-spacing: -.4px; margin: 0 0 6px; padding: 0 14px; }
.ap-line { display: block; width: 32px; height: 3px; border-radius: 2px; background: linear-gradient(90deg,#1B2070,#C9A227) !important; margin: 0 auto 14px; transition: width .35s ease; }
.ap-card:hover .ap-line { width: 62px; }
.ap-desc { display: block; font-size: 13.5px !important; color: #556270 !important; line-height: 1.65; margin: 0; padding: 0 16px; flex-grow: 1; }

/* STATS BAR */
@keyframes ap-stat-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.ap-stats { display: grid; grid-template-columns: repeat(3,1fr); background: linear-gradient(135deg,#0d1147,#1B2070,#252d8f); border-radius: 20px; overflow: hidden; box-shadow: 0 20px 60px rgba(27,32,112,.3); margin-bottom: 24px; }
.ap-stat { padding: 40px 20px; text-align: center; border-right: 1px solid rgba(255,255,255,.08); opacity: 0; animation: ap-stat-in .7s cubic-bezier(.16,1,.3,1) forwards; }
.ap-stat:nth-child(1) { animation-delay: .6s; }
.ap-stat:nth-child(2) { animation-delay: .75s; }
.ap-stat:nth-child(3) { animation-delay: .9s; }
.ap-stat:last-child { border-right: none; }
.ap-stat-n { display: block !important; font-size: 44px !important; font-weight: 900 !important; color: #C9A227 !important; line-height: 1; margin-bottom: 10px; text-shadow: 0 0 20px rgba(201,162,39,.4); }
.ap-stat-l { display: block !important; font-size: 11.5px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 2px !important; color: rgba(255,255,255,.7) !important; }

@media (prefers-reduced-motion: reduce) { .ap-hero::before, .ap-ring, .ap-badge-dot, .ap-hero-h, .ap-hero-sub, .ap-divider, .ap-card, .ap-stat { animation: none !important; } .ap-card, .ap-card:hover, .ap-logo, .ap-logo:hover { transition: none !important; transform: none !important; } }

@media (max-width: 960px) { .ap-grid { grid-template-columns: repeat(2,1fr) !important; } .ap-hero-h { font-size: 36px !important; } .ap-stats { grid-template-columns: 1fr !important; } .ap-stat { border-right: none !important; border-bottom: 1px solid rgba(255,255,255,.08) !important; } }
@media (max-width: 520px) { .ap-grid { grid-template-columns: 1fr !important; } .ap-hero-h { font-size: 28px !important; } }

/* INTERACTIVE JS ENHANCEMENTS */
.reveal-item {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
}

.reveal-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.tilt-card {
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease, border-color 0.25s ease;
    transform-style: preserve-3d;
    backface-visibility: hidden;
}
