/* ==========================================================================
   THEME VARIABLES & CORE SETUP
   ========================================================================== */
:root {
   /* Color Palette: Limited Edition Technology */
   --clr-bg-deep: #040d09;
   --clr-bg-panel: #0a1711;
   --clr-bg-panel-hover: #10241a;
   --clr-primary: #d4ff00;
   /* Neon Chartreuse */
   --clr-secondary: #00f0b5;
   /* Cyber Teal */
   --clr-text-main: #ffffff;
   --clr-text-muted: #8ca398;
   --clr-border: rgba(212, 255, 0, 0.15);

   /* Typography */
   --font-display: 'Clash Display', 'Arial Black', sans-serif;
   --font-body: 'Satoshi', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

   /* Layout & Utilities */
   --container-max: 1400px;
   --radius-sm: 4px;
   --radius-md: 12px;
   --radius-lg: 20px;
   --radius-full: 9999px;

   /* Animations & Shadows */
   --transition-fast: 0.2s ease-in-out;
   --transition-bounce: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
   --transition-smooth: 0.6s cubic-bezier(0.22, 1, 0.36, 1);
   --glow-primary: 0 0 20px rgba(212, 255, 0, 0.3), 0 0 40px rgba(212, 255, 0, 0.1);
   --glow-secondary: 0 0 20px rgba(0, 240, 181, 0.3);
}

*,
*::before,
*::after {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

html {
   scroll-behavior: smooth;
   font-size: 16px;
   background: var(--clr-bg-deep);
}

body {
   font-family: var(--font-body);
   color: var(--clr-text-main);
   background-color: var(--clr-bg-deep);
   line-height: 1.6;
   overflow-x: hidden;
   -webkit-font-smoothing: antialiased;
}

/* Scrollbar */
::-webkit-scrollbar {
   width: 6px;
}

::-webkit-scrollbar-track {
   background: var(--clr-bg-deep);
}

::-webkit-scrollbar-thumb {
   background: var(--clr-bg-panel-hover);
   border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
   background: var(--clr-primary);
}

::selection {
   background: var(--clr-primary);
   color: #000;
}

a {
   text-decoration: none;
   color: inherit;
   outline: none;
}

ul,
ol {
   list-style: none;
}

img {
   max-width: 100%;
   height: auto;
   display: block;
}

.container {
   width: 100%;
   max-width: var(--container-max);
   margin: 0 auto;
   padding: 0 2rem;
}

/* ==========================================================================
   TYPOGRAPHY & BUTTONS
   ========================================================================== */
h1,
h2,
h3,
h4,
h5,
h6 {
   font-family: var(--font-display);
   font-weight: 700;
   line-height: 1.1;
}

.text-primary {
   color: var(--clr-primary);
}

.text-secondary {
   color: var(--clr-secondary);
}

.badge {
   display: inline-flex;
   align-items: center;
   padding: 0.5rem 1rem;
   background: rgba(212, 255, 0, 0.05);
   border: 1px solid var(--clr-border);
   color: var(--clr-primary);
   border-radius: var(--radius-full);
   font-size: 0.8rem;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 2px;
   margin-bottom: 1.5rem;
}

.section-title {
   font-size: clamp(2.5rem, 6vw, 4.5rem);
   margin-bottom: 1.5rem;
   text-transform: uppercase;
}

.section-desc {
   font-size: 1.125rem;
   color: var(--clr-text-muted);
   max-width: 600px;
   margin-bottom: 4rem;
}

/* Buttons */
.btn {
   display: inline-flex;
   justify-content: center;
   align-items: center;
   padding: 1rem 2.5rem;
   font-size: 1rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 1px;
   border-radius: var(--radius-sm);
   transition: var(--transition-bounce);
   cursor: pointer;
   position: relative;
   overflow: hidden;
   z-index: 1;
   border: none;
}

.btn-primary {
   background: var(--clr-primary);
   color: var(--clr-bg-deep);
}

.btn-primary::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: #fff;
   transition: var(--transition-bounce);
   z-index: -1;
}

.btn-primary:hover::before {
   left: 0;
}

.btn-primary:hover {
   box-shadow: var(--glow-primary);
   transform: translateY(-3px);
}

.btn-outline {
   background: transparent;
   color: var(--clr-primary);
   border: 1px solid var(--clr-primary);
}

.btn-outline:hover {
   background: var(--clr-primary);
   color: var(--clr-bg-deep);
   box-shadow: var(--glow-primary);
   transform: translateY(-3px);
}

/* ==========================================================================
   STRICT EXACT HEADER & FOOTER
   ========================================================================== */
.site-header {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   padding: 1.5rem 0;
   z-index: 1000;
   transition: var(--transition-smooth);
   background: transparent;
   border-bottom: 1px solid transparent;
}

.site-header.scrolled {
   padding: 1rem 0;
   background: rgba(4, 13, 9, 0.9);
   backdrop-filter: blur(12px);
   -webkit-backdrop-filter: blur(12px);
   border-bottom: 1px solid var(--clr-border);
}

.header-container {
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.logo img {
   height: 45px;
   filter: invert(1);
   transition: var(--transition-fast);
}

.main-nav ul {
   display: flex;
   gap: 2.5rem;
}

.main-nav a {
   font-size: 0.9rem;
   font-weight: 600;
   color: var(--clr-text-main);
   text-transform: uppercase;
   letter-spacing: 1px;
   position: relative;
   transition: var(--transition-fast);
}

.main-nav a:hover {
   color: var(--clr-primary);
}

.main-nav a::after {
   content: '';
   position: absolute;
   bottom: -6px;
   left: 0;
   width: 0;
   height: 2px;
   background: var(--clr-primary);
   transition: var(--transition-smooth);
}

.main-nav a:hover::after {
   width: 100%;
}

.mobile-menu-btn {
   display: none;
   background: none;
   border: none;
   color: var(--clr-primary);
   font-size: 2rem;
   cursor: pointer;
}

/* Strict Footer */
.site-footer {
   background: var(--clr-bg-panel);
   border-top: 1px solid var(--clr-border);
   padding: 6rem 0 2rem;
   margin-top: auto;
}

.footer-grid {
   display: grid;
   grid-template-columns: 2fr 1fr 1fr 1.5fr;
   gap: 4rem;
   margin-bottom: 4rem;
}

.footer-brand .logo img {
   height: 50px;
   margin-bottom: 1.5rem;
}

.footer-brand p {
   color: var(--clr-text-muted);
   font-size: 0.95rem;
   max-width: 300px;
}

.footer-title {
   font-size: 1.1rem;
   color: var(--clr-text-main);
   text-transform: uppercase;
   letter-spacing: 1px;
   margin-bottom: 1.5rem;
}

.footer-links li {
   margin-bottom: 1rem;
}

.footer-links a {
   color: var(--clr-text-muted);
   transition: var(--transition-fast);
   font-size: 0.95rem;
}

.footer-links a:hover {
   color: var(--clr-primary);
   padding-left: 8px;
}

.footer-contact li {
   color: var(--clr-text-muted);
   margin-bottom: 1rem;
   display: flex;
   align-items: flex-start;
   gap: 10px;
   font-size: 0.95rem;
}

.footer-contact strong {
   color: var(--clr-primary);
}

.footer-bottom {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding-top: 2rem;
   border-top: 1px solid var(--clr-border);
   color: var(--clr-text-muted);
   font-size: 0.85rem;
   text-transform: uppercase;
   letter-spacing: 1px;
}

/* ==========================================================================
   INDEX PAGES SECTIONS (12 Sections)
   ========================================================================== */

/* 1. Hero Section */
.hero {
   position: relative;
   min-height: 100vh;
   display: flex;
   align-items: center;
   padding-top: 100px;
   overflow: hidden;
}

.hero-grid {
   display: grid;
   grid-template-columns: 1.2fr 0.8fr;
   gap: 4rem;
   align-items: center;
   position: relative;
   z-index: 2;
}

.typing-text {
   color: var(--clr-primary);
   border-right: 2px solid var(--clr-primary);
   padding-right: 5px;
   animation: blink 0.8s infinite;
}

.hero-content h1 {
   font-size: clamp(3.5rem, 6vw, 5.5rem);
   margin-bottom: 1.5rem;
   line-height: 1;
}

.hero-content p {
   font-size: 1.25rem;
   color: var(--clr-text-muted);
   margin-bottom: 3rem;
   max-width: 600px;
}

.hero-actions {
   display: flex;
   gap: 1.5rem;
}

/* CSS 3D Abstract Visual */
.hero-visual {
   perspective: 1000px;
   display: flex;
   justify-content: center;
   align-items: center;
   height: 500px;
}

.cube-wrapper {
   position: relative;
   width: 250px;
   height: 250px;
   transform-style: preserve-3d;
   animation: floatSpin 20s infinite linear;
}

.cube-face {
   position: absolute;
   width: 100%;
   height: 100%;
   background: rgba(4, 13, 9, 0.8);
   border: 2px solid var(--clr-primary);
   display: flex;
   align-items: center;
   justify-content: center;
   font-family: var(--font-display);
   font-size: 2rem;
   color: var(--clr-secondary);
   box-shadow: inset 0 0 30px rgba(212, 255, 0, 0.2);
   backdrop-filter: blur(5px);
}

.cf-front {
   transform: translateZ(125px);
}

.cf-back {
   transform: rotateY(180deg) translateZ(125px);
}

.cf-right {
   transform: rotateY(90deg) translateZ(125px);
}

.cf-left {
   transform: rotateY(-90deg) translateZ(125px);
}

.cf-top {
   transform: rotateX(90deg) translateZ(125px);
   border-color: var(--clr-secondary);
   color: var(--clr-primary);
}

.cf-bottom {
   transform: rotateX(-90deg) translateZ(125px);
}

/* 2. Partners Marquee */
.partners {
   padding: 3rem 0;
   border-top: 1px solid var(--clr-border);
   border-bottom: 1px solid var(--clr-border);
   background: var(--clr-bg-panel);
   overflow: hidden;
}

.marquee {
   display: flex;
   width: 200%;
   animation: scrollLeft 30s linear infinite;
}

.marquee-item {
   flex: 1;
   text-align: center;
   font-family: var(--font-display);
   font-size: 1.5rem;
   color: var(--clr-text-muted);
   opacity: 0.5;
   text-transform: uppercase;
   letter-spacing: 2px;
}

/* 3. About / Vision */
.about {
   padding: 8rem 0;
   position: relative;
}

.about-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 4rem;
   align-items: center;
}

.about-img-container {
   position: relative;
   border-radius: var(--radius-md);
   overflow: hidden;
}

.about-img-container::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: linear-gradient(45deg, rgba(212, 255, 0, 0.2), rgba(0, 240, 181, 0.2));
   z-index: 1;
   mix-blend-mode: overlay;
}

.about-img-container img {
   width: 100%;
   height: 600px;
   object-fit: cover;
   transition: var(--transition-smooth);
}

.about-img-container:hover img {
   transform: scale(1.05);
}

.stat-box-wrapper {
   display: flex;
   gap: 2rem;
   margin-top: 3rem;
}

.stat-box {
   background: var(--clr-bg-panel);
   padding: 2rem;
   border: 1px solid var(--clr-border);
   border-radius: var(--radius-sm);
   flex: 1;
   border-left: 4px solid var(--clr-primary);
}

.stat-box h3 {
   font-size: 3rem;
   color: var(--clr-primary);
   margin-bottom: 0.5rem;
   line-height: 1;
}

/* 4. Core Services (Glowing Cards) */
.services {
   padding: 8rem 0;
   background: var(--clr-bg-panel);
}

.services-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
   gap: 2rem;
}

.svc-card {
   background: var(--clr-bg-deep);
   border: 1px solid var(--clr-border);
   padding: 3rem;
   border-radius: var(--radius-md);
   transition: var(--transition-bounce);
   position: relative;
   overflow: hidden;
}

.svc-card::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 3px;
   background: linear-gradient(90deg, var(--clr-primary), var(--clr-secondary));
   transform: scaleX(0);
   transform-origin: left;
   transition: var(--transition-smooth);
}

.svc-card:hover::before {
   transform: scaleX(1);
}

.svc-card:hover {
   transform: translateY(-10px);
   border-color: rgba(212, 255, 0, 0.5);
   box-shadow: var(--glow-primary);
}

.svc-icon {
   font-size: 2.5rem;
   margin-bottom: 1.5rem;
   color: var(--clr-secondary);
}

.svc-card h3 {
   font-size: 1.5rem;
   margin-bottom: 1rem;
}

.svc-card p {
   color: var(--clr-text-muted);
}

/* 5. Campaign Reports Mockup */
.reports {
   padding: 8rem 0;
}

.dashboard-mockup {
   background: var(--clr-bg-panel);
   border: 1px solid var(--clr-border);
   border-radius: var(--radius-lg);
   overflow: hidden;
   box-shadow: 0 30px 60px rgba(0, 0, 0, 0.8);
}

.dash-head {
   background: var(--clr-bg-deep);
   padding: 1rem 2rem;
   border-bottom: 1px solid var(--clr-border);
   display: flex;
   gap: 10px;
}

.d-dot {
   width: 12px;
   height: 12px;
   border-radius: 50%;
   background: #ff5f56;
}

.d-dot:nth-child(2) {
   background: #ffbd2e;
}

.d-dot:nth-child(3) {
   background: #27c93f;
}

.dash-body {
   display: grid;
   grid-template-columns: 1fr 2.5fr;
   padding: 3rem;
   gap: 3rem;
}

.metrics-col {
   display: flex;
   flex-direction: column;
   gap: 1.5rem;
}

.m-card {
   background: var(--clr-bg-deep);
   padding: 1.5rem;
   border: 1px solid var(--clr-border);
   border-radius: var(--radius-sm);
}

.m-card h4 {
   font-size: 0.9rem;
   color: var(--clr-text-muted);
   text-transform: uppercase;
   margin-bottom: 0.5rem;
}

.m-card .val {
   font-size: 2rem;
   font-family: var(--font-display);
   color: var(--clr-primary);
}

.chart-col {
   display: flex;
   align-items: flex-end;
   gap: 1.5rem;
   height: 100%;
   padding-bottom: 2rem;
   border-bottom: 1px solid var(--clr-border);
   position: relative;
}

.c-bar {
   flex: 1;
   background: var(--clr-bg-panel-hover);
   border-radius: 4px 4px 0 0;
   position: relative;
   transform-origin: bottom;
   animation: growUp 1.5s ease-out forwards;
   opacity: 0;
}

.c-bar.active {
   background: linear-gradient(to top, var(--clr-secondary), var(--clr-primary));
}

/* 6. ROI Calculator */
.calculator {
   padding: 8rem 0;
   background: linear-gradient(to bottom, var(--clr-bg-deep), var(--clr-bg-panel));
}

.calc-wrapper {
   max-width: 900px;
   margin: 0 auto;
   background: var(--clr-bg-deep);
   border: 1px solid var(--clr-primary);
   padding: 4rem;
   border-radius: var(--radius-lg);
   box-shadow: var(--glow-primary);
}

.calc-label {
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
   margin-bottom: 2rem;
}

.calc-label span {
   font-size: 1.25rem;
   color: var(--clr-text-muted);
   text-transform: uppercase;
}

.calc-label h2 {
   font-size: 3.5rem;
   color: var(--clr-primary);
   line-height: 1;
}

/* Custom Slider */
input[type=range] {
   -webkit-appearance: none;
   width: 100%;
   background: transparent;
   margin-bottom: 4rem;
}

input[type=range]::-webkit-slider-runnable-track {
   width: 100%;
   height: 4px;
   background: var(--clr-border);
   border-radius: 2px;
   cursor: pointer;
}

input[type=range]::-webkit-slider-thumb {
   height: 30px;
   width: 30px;
   border-radius: 50%;
   background: var(--clr-primary);
   cursor: pointer;
   -webkit-appearance: none;
   margin-top: -13px;
   box-shadow: 0 0 15px rgba(212, 255, 0, 0.5);
}

.calc-results {
   display: grid;
   grid-template-columns: 1fr 1fr 1fr;
   gap: 2rem;
   text-align: center;
   border-top: 1px solid var(--clr-border);
   padding-top: 3rem;
}

.res-item p {
   color: var(--clr-text-muted);
   text-transform: uppercase;
   font-size: 0.9rem;
   margin-bottom: 0.5rem;
}

.res-item h3 {
   font-size: 2.5rem;
   color: var(--clr-secondary);
}

/* 7. Industries (Hover Grid) */
.industries {
   padding: 8rem 0;
}

.ind-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 1.5rem;
}

.ind-card {
   height: 300px;
   position: relative;
   border-radius: var(--radius-md);
   overflow: hidden;
   cursor: pointer;
}

.ind-card img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   opacity: 0.4;
   transition: var(--transition-smooth);
   filter: grayscale(100%);
}

.ind-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(to top, rgba(4, 13, 9, 1), transparent);
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   padding: 2rem;
   transition: var(--transition-fast);
}

.ind-card:hover img {
   transform: scale(1.1);
   opacity: 0.8;
   filter: grayscale(0%);
}

.ind-card:hover .ind-overlay {
   background: linear-gradient(to top, rgba(212, 255, 0, 0.8), transparent);
}

.ind-card:hover .ind-overlay h3 {
   color: var(--clr-bg-deep);
}

/* 8. Results / Case Studies (Before & After concept) */
.results {
   padding: 8rem 0;
   background: var(--clr-bg-panel);
}

.res-flex {
   display: flex;
   flex-direction: column;
   gap: 2rem;
}

.res-row {
   background: var(--clr-bg-deep);
   border: 1px solid var(--clr-border);
   border-radius: var(--radius-md);
   padding: 3rem;
   display: flex;
   justify-content: space-between;
   align-items: center;
   transition: var(--transition-fast);
}

.res-row:hover {
   border-color: var(--clr-primary);
   transform: translateX(10px);
}

.res-brand {
   font-size: 1.5rem;
   font-family: var(--font-display);
}

.res-metrics {
   display: flex;
   gap: 4rem;
}

.r-met span {
   display: block;
   font-size: 0.9rem;
   color: var(--clr-text-muted);
   text-transform: uppercase;
}

.r-met strong {
   font-size: 2rem;
   color: var(--clr-secondary);
}

/* 9. Testimonials */
.testimonials {
   padding: 8rem 0;
}

.test-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 2rem;
}

.test-box {
   background: var(--clr-bg-panel);
   border: 1px solid var(--clr-border);
   padding: 3rem;
   border-radius: var(--radius-sm);
   position: relative;
}

.test-box::before {
   content: '"';
   position: absolute;
   top: 1rem;
   right: 2rem;
   font-size: 5rem;
   color: rgba(212, 255, 0, 0.1);
   font-family: serif;
   line-height: 1;
}

.test-box p {
   font-size: 1.1rem;
   color: var(--clr-text-muted);
   margin-bottom: 2rem;
   font-style: italic;
}

.test-author {
   display: flex;
   gap: 1rem;
   align-items: center;
}

.author-avatar {
   width: 50px;
   height: 50px;
   border-radius: 50%;
   background: var(--clr-border);
}

/* 10. FAQ Accordion */
.faq {
   padding: 8rem 0;
   background: var(--clr-bg-panel);
}

.faq-container {
   max-width: 800px;
   margin: 0 auto;
}

.faq-item {
   border-bottom: 1px solid var(--clr-border);
}

.faq-question {
   width: 100%;
   text-align: left;
   background: none;
   border: none;
   padding: 2rem 0;
   font-size: 1.25rem;
   font-weight: 700;
   color: var(--clr-text-main);
   cursor: pointer;
   display: flex;
   justify-content: space-between;
   align-items: center;
   font-family: var(--font-body);
}

.faq-icon {
   color: var(--clr-primary);
   font-size: 1.5rem;
   transition: var(--transition-fast);
}

.faq-answer {
   max-height: 0;
   overflow: hidden;
   transition: max-height 0.3s ease-out;
}

.faq-answer p {
   padding-bottom: 2rem;
   color: var(--clr-text-muted);
}

.faq-item.active .faq-icon {
   transform: rotate(45deg);
}

.faq-item.active .faq-answer {
   max-height: 300px;
}

/* Arbitrary large height for smooth open */

/* 11. CTA Section */
.cta {
   padding: 10rem 0;
   text-align: center;
   position: relative;
   overflow: hidden;
}

.cta::before {
   content: '';
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 800px;
   height: 800px;
   background: radial-gradient(circle, rgba(212, 255, 0, 0.1) 0%, transparent 70%);
   z-index: -1;
}

.cta-form {
   max-width: 600px;
   margin: 3rem auto 0;
   display: flex;
   flex-direction: column;
   gap: 1.5rem;
}

.form-input {
   width: 100%;
   padding: 1.25rem;
   background: var(--clr-bg-panel);
   border: 1px solid var(--clr-border);
   border-radius: var(--radius-sm);
   color: var(--clr-text-main);
   font-family: var(--font-body);
   font-size: 1rem;
   transition: var(--transition-fast);
}

.form-input:focus {
   outline: none;
   border-color: var(--clr-primary);
   background: var(--clr-bg-deep);
}

select.form-input {
   appearance: none;
}

/* 12. Live Chat Widget */
.chat-btn {
   position: fixed;
   bottom: 30px;
   right: 30px;
   width: 60px;
   height: 60px;
   background: var(--clr-primary);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1.5rem;
   color: var(--clr-bg-deep);
   cursor: pointer;
   box-shadow: var(--glow-primary);
   z-index: 999;
   transition: var(--transition-bounce);
}

.chat-btn:hover {
   transform: scale(1.1);
}

.chat-window {
   position: fixed;
   bottom: 100px;
   right: 30px;
   width: 320px;
   background: var(--clr-bg-panel);
   border: 1px solid var(--clr-primary);
   border-radius: var(--radius-md);
   box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
   z-index: 999;
   opacity: 0;
   pointer-events: none;
   transform: translateY(20px);
   transition: var(--transition-fast);
   overflow: hidden;
}

.chat-window.active {
   opacity: 1;
   pointer-events: auto;
   transform: translateY(0);
}

.chat-header {
   background: var(--clr-primary);
   color: var(--clr-bg-deep);
   padding: 1rem;
   font-weight: 700;
   display: flex;
   justify-content: space-between;
}

.close-chat {
   cursor: pointer;
   font-size: 1.2rem;
}

.chat-body {
   padding: 1.5rem;
   height: 250px;
   overflow-y: auto;
   display: flex;
   flex-direction: column;
   gap: 1rem;
}

.chat-bubble {
   background: var(--clr-bg-deep);
   padding: 1rem;
   border: 1px solid var(--clr-border);
   border-radius: 10px 10px 10px 0;
   font-size: 0.9rem;
   align-self: flex-start;
}

.chat-footer {
   display: flex;
   border-top: 1px solid var(--clr-border);
}

.chat-footer input {
   flex: 1;
   padding: 1rem;
   background: var(--clr-bg-deep);
   border: none;
   color: #fff;
   outline: none;
}

.chat-footer button {
   padding: 0 1rem;
   background: var(--clr-primary);
   border: none;
   color: #000;
   font-weight: bold;
   cursor: pointer;
}

/* ==========================================================================
   LEGAL / INTERNAL PAGES
   ========================================================================== */
.page-hero {
   padding: 12rem 0 4rem;
   border-bottom: 1px solid var(--clr-border);
   text-align: center;
   background: var(--clr-bg-panel);
}

.legal-content {
   padding: 6rem 0;
}

.legal-wrapper {
   max-width: 900px;
   margin: 0 auto;
}

.legal-wrapper h2 {
   font-size: 2rem;
   color: var(--clr-primary);
   margin: 3rem 0 1.5rem;
}

.legal-wrapper p {
   font-size: 1.1rem;
   color: var(--clr-text-muted);
   margin-bottom: 1.5rem;
}

/* Contact Page specific */
.contact-grid {
   display: grid;
   grid-template-columns: 1fr 1.5fr;
   gap: 4rem;
   margin-top: 4rem;
}

.contact-info {
   background: var(--clr-bg-panel);
   padding: 3rem;
   border: 1px solid var(--clr-border);
   border-radius: var(--radius-sm);
   border-top: 4px solid var(--clr-primary);
}

.contact-info h3 {
   margin-bottom: 2rem;
   font-size: 1.5rem;
}

.info-block {
   margin-bottom: 1.5rem;
}

.info-block span {
   display: block;
   font-size: 0.8rem;
   text-transform: uppercase;
   color: var(--clr-secondary);
   margin-bottom: 0.5rem;
}

/* ==========================================================================
   ANIMATIONS & KEYFRAMES
   ========================================================================== */
@keyframes blink {

   0%,
   100% {
      border-color: transparent;
   }

   50% {
      border-color: var(--clr-primary);
   }
}

@keyframes floatSpin {
   0% {
      transform: rotateX(0deg) rotateY(0deg) translateY(0);
   }

   50% {
      transform: rotateX(180deg) rotateY(180deg) translateY(-20px);
   }

   100% {
      transform: rotateX(360deg) rotateY(360deg) translateY(0);
   }
}

@keyframes scrollLeft {
   0% {
      transform: translateX(0);
   }

   100% {
      transform: translateX(-50%);
   }
}

@keyframes growUp {
   from {
      opacity: 0;
      transform: scaleY(0);
   }

   to {
      opacity: 1;
      transform: scaleY(1);
   }
}

.reveal {
   opacity: 0;
   transform: translateY(50px);
   transition: 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.active {
   opacity: 1;
   transform: translateY(0);
}

/* ==========================================================================
   MEDIA QUERIES (Deep Responsiveness)
   ========================================================================== */
@media (max-width: 1200px) {
   .ind-grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .hero-content h1 {
      font-size: 4rem;
   }

   .dash-body {
      grid-template-columns: 1fr;
   }

   .chart-col {
      height: 300px;
      margin-top: 2rem;
   }
}

@media (max-width: 992px) {
   .hero-grid {
      grid-template-columns: 1fr;
      text-align: center;
   }

   .hero-content {
      order: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
   }

   .hero-visual {
      order: 1;
      height: 300px;
      margin-bottom: 2rem;
   }

   .about-grid {
      grid-template-columns: 1fr;
   }

   .test-grid {
      grid-template-columns: 1fr 1fr;
   }

   .contact-grid {
      grid-template-columns: 1fr;
   }

   .footer-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 2rem;
   }

   .res-row {
      flex-direction: column;
      align-items: flex-start;
      gap: 2rem;
   }
}

@media (max-width: 768px) {

   /* Mobile Menu */
   .main-nav {
      position: fixed;
      top: 0;
      right: -100%;
      width: 300px;
      height: 100vh;
      background: var(--clr-bg-panel);
      border-left: 1px solid var(--clr-primary);
      flex-direction: column;
      justify-content: center;
      align-items: center;
      transition: var(--transition-smooth);
      z-index: 999;
   }

   .main-nav.active {
      right: 0;
   }

   .main-nav ul {
      flex-direction: column;
      align-items: center;
      gap: 2rem;
   }

   .mobile-menu-btn {
      display: block;
      z-index: 1001;
      position: relative;
   }

   .header-cta {
      display: none;
   }

   .calc-wrapper {
      padding: 2rem;
   }

   .calc-results {
      grid-template-columns: 1fr;
      gap: 2rem;
   }

   .calc-label {
      flex-direction: column;
      align-items: flex-start;
      gap: 1rem;
   }

   .test-grid {
      grid-template-columns: 1fr;
   }

   .footer-grid {
      grid-template-columns: 1fr;
      text-align: center;
   }

   .footer-contact li {
      justify-content: center;
   }

   .footer-bottom {
      flex-direction: column;
      gap: 1rem;
   }

   .hero-actions {
      flex-direction: column;
      width: 100%;
      max-width: 300px;
   }

   .stat-box-wrapper {
      flex-direction: column;
   }
}

@media (max-width: 480px) {
   .ind-grid {
      grid-template-columns: 1fr;
   }

   .hero-content h1 {
      font-size: 3rem;
   }

   .section-title {
      font-size: 2.5rem;
   }

   .res-metrics {
      flex-direction: column;
      gap: 1.5rem;
   }

   .chat-window {
      width: calc(100% - 40px);
      right: 20px;
      bottom: 100px;
   }
}