/* ==========================================================================
   GLOBAL TYPOGRAPHY SYSTEM
   Family: Montserrat
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap');

:root {
  --font-primary: 'Montserrat', sans-serif;

  /* Font Weights */
  --fw-light: 300;
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;
}

/* Base resets & Application */
html, body {
  font-family: var(--font-primary) !important;
  font-weight: var(--fw-normal);
  letter-spacing: -0.01em; /* Modern clean look for Montserrat */
}

/* ----------------------------------
   Headings Hierarchy
   ---------------------------------- */
h1, .h1 { font-weight: var(--fw-bold) !important; }
h2, .h2 { font-weight: var(--fw-bold) !important; }
h3, .h3 { font-weight: var(--fw-semibold) !important; }
h4, .h4 { font-weight: var(--fw-semibold) !important; }
h5, .h5 { font-weight: var(--fw-semibold) !important; }
h6, .h6 { font-weight: var(--fw-semibold) !important; }

/* ----------------------------------
   Specific Components
   ---------------------------------- */

/* Hero Section */
.hero-title, .hero-headline, #hero-h1 {
  font-weight: var(--fw-bold) !important;
}

.hero-sub, .hero-desc, #hero-sub {
  font-weight: var(--fw-medium) !important;
}

/* Sections */
.section-title, #svc-heading h2 {
  font-weight: var(--fw-bold) !important;
}

.section-sub, .sub-heading {
  font-weight: var(--fw-semibold) !important;
}

/* Cards */
.card-title, .svc-name, .svc-card h3, .pricing-name, .port-title, .step-title, .zig-step-title {
  font-weight: var(--fw-semibold) !important;
}

/* Body & Paragraphs */
p, .svc-desc, .step-desc, .zig-step-desc, .port-desc, .faq-answer {
  font-weight: var(--fw-normal) !important;
}

/* Navigation */
nav a, .nav-link, .mobile-link {
  font-weight: var(--fw-medium) !important;
}

.dropdown-item, .mobile-dropdown-toggle {
  font-weight: var(--fw-medium) !important;
}

/* Buttons */
button, .btn, .btn-primary, .btn-outline, .btn-premium, .cta-btn, input[type="submit"] {
  font-weight: var(--fw-semibold) !important;
}

/* Forms */
label, .form-label {
  font-weight: var(--fw-medium) !important;
}

input, textarea, select, .cta-input {
  font-weight: var(--fw-normal) !important;
  font-family: var(--font-primary) !important;
}

/* Tables */
table th, .table-header {
  font-weight: var(--fw-semibold) !important;
}

table td, .table-cell {
  font-weight: var(--fw-normal) !important;
}

/* Footer */
footer h4, .footer-col h4, .footer-heading {
  font-weight: var(--fw-semibold) !important;
}

footer p, footer a, .footer-text, .footer-col ul li a {
  font-weight: var(--fw-normal) !important;
}

/* Badges */
.badge, .hero-badge, .section-label, .rank-badge, .zig-tag, .tag, .trust-badge {
  font-weight: var(--fw-semibold) !important;
}

/* Statistics & Counters */
.stat-val, .hero-stat-val, .result-num, .counter, .metric-value, .ch-num {
  font-weight: var(--fw-bold) !important;
}
.hero-stat-lbl, .result-label, .metric-label, .ch-label {
  font-weight: var(--fw-medium) !important;
}

/* Testimonials */
.testi-name, .client-name {
  font-weight: var(--fw-semibold) !important;
}

.testi-content, .testi-quote, .client-role {
  font-weight: var(--fw-normal) !important;
}

/* Blog / Articles */
.blog-title, .article-title {
  font-weight: var(--fw-semibold) !important;
}

.blog-content, .article-content, .blog-excerpt {
  font-weight: var(--fw-normal) !important;
}

/* Miscellaneous Helpers to override defaults */
b, strong {
  font-weight: var(--fw-bold) !important;
}


/* ----------------------------------
   Global Header Clearance Spacing
   ---------------------------------- */
.page-hero-section {
  padding-top: calc(5rem + 25px) !important; /* Mobile: 80px nav + 25px = 105px */
}

@media (min-width: 768px) {
  .page-hero-section {
    padding-top: calc(6rem + 35px) !important; /* Tablet: 96px nav + 35px = 131px */
  }
}

@media (min-width: 1024px) {
  .page-hero-section {
    padding-top: calc(6rem + 50px) !important; /* Desktop: 96px nav + 50px = 146px */
  }
}


/* Global Custom Cursor with Rocket Follower */
@media (pointer: fine) {
    body {
        cursor: none;
    }
    a, button, .cursor-pointer, input, select, textarea, .nav-link, .dropdown-item, .dropdown-toggle {
        cursor: none;
    }
    .custom-cursor {
        position: fixed; width: 8px; height: 8px; background: #1EBBD7; border-radius: 50%;
        pointer-events: none; z-index: 99999; transform: translate(-50%, -50%);
        transition: width 0.2s, height 0.2s, background 0.2s;
        box-shadow: 0 0 10px rgba(30, 187, 215, 0.5);
    }
    .custom-cursor.hover {
        width: 12px; height: 12px; background: #fff;
        box-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
    }
    .rocket-cursor {
        position: fixed; width: 30px; height: 30px; pointer-events: none;
        z-index: 99998; transform: translate(-50%, -50%);
        transition: transform 0.1s ease-out;
    }
    .rocket-cursor svg {
        width: 100%; height: 100%; filter: drop-shadow(0 0 8px rgba(30, 187, 215, 0.6));
    }
}


/* Global Custom Scrollbar */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
@media (max-width: 1024px) {
    ::-webkit-scrollbar { width: 8px; height: 8px; }
}
@media (max-width: 768px) {
    ::-webkit-scrollbar { width: 6px; height: 6px; }
}

::-webkit-scrollbar-track {
    background: #050505;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #1EBBD7, #1699A8);
    border-radius: 20px;
    border: 2px solid #050505;
    box-shadow: inset 0 0 10px rgba(30,187,215,0.4);
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #1699A8, #1EBBD7);
}

/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: #1EBBD7 #050505;
}


/* Global Text Selection */
::selection {
    background: #1EBBD7;
    color: #ffffff;
    text-shadow: none;
}

::-moz-selection {
    background: #1EBBD7;
    color: #ffffff;
    text-shadow: none;
}
