:root {
  /* ---------- BRAND COLORS ---------- */
  --color-primary: #26316e;
  --color-primary-hover: #3d468b;
  --color-primary-muted: #9093B0;

  --color-secondary: #f05834;
  --color-secondary-hover: #f86e4f;

  --color-accent-dark: #22389c;
  --color-accent-electric: #155dfc;

  /* ---------- GRADIENTS ---------- */
  --gradient-blue: linear-gradient(115deg, rgba(34, 56, 156, 0.07),rgba(34, 56, 156, 0.17),rgba(33, 40, 97, 0));
  --gradient-orange: linear-gradient(35deg, #f05834, #AF4029);

  /* ---------- NEUTRALS ---------- */
  --color-dark: #252841;
  --color-grey-800: #585858;
  --color-grey-muted: #d9d9d9;
  --color-grey-border: #dfdfdf;
  --color-bg-soft: #f3f3f3;

  /* ---------- STATUS COLORS ---------- */
  --color-success-bg: #d3ffe8;
  --color-success-border: #9ddebc;
  --color-success-text: #009045;

  --color-warning-bg: #fef2f2;
  --color-warning-border: #ffe2e2;
  --color-warning-text: #82181a;

  --color-info-bg: #eff6ff;
  --color-info-border: #dbeafe;
  --color-info-text: #1c398e;

  --color-danger-bg: #9f0712;

  /* ---------- TYPOGRAPHY ---------- */
 --font-heading: 'Nunito Sans', system-ui, sans-serif;
  --font-body: 'Nunito Sans', system-ui, sans-serif;

  --text-h1: 42px;
  --text-h2: 34px;
  --text-h3: 28px;
  --text-h4: 20px;
  --text-body: 16px;
  --text-small: 13px;

  /* ---------- UI ---------- */
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 18px;
  --radius-pill: 999px;

  --transition-fast: 150ms ease;
}


* {
  box-sizing: border-box;
}

html, body {
  overflow-x: hidden;
  width: 100%;
}


body {
  margin: 0;
  font-family: var(--font-body) !important;
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--color-grey-800);
  background-color: #ffffff;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading) !important;
}

h1 {
  font-size: var(--text-h1);
  font-weight: 700;
  line-height: 1.2;
}

h2 {
  font-size: var(--text-h2);
  font-weight: 700;
  line-height: 1.25;
}

h3 {
  font-size: var(--text-h3);
  font-weight: 600;
  line-height: 1.3;
}

h4 {
  font-size: var(--text-h4);
  font-weight: 500;
  line-height: 1.4;
}

p {
  margin: 0;
  font-size: var(--text-body);
  color: var(--color-grey-800);
  font-family: var(--font-body) !important;
}

small {
  font-size: var(--text-small);
  color: var(--color-grey-muted);
}

/* 
Buttons */

.btn {
  height: 44px;
  padding: 0 20px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 500;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition-fast);
  text-decoration: none;
  font-family: var(--font-body) !important;
  justify-content: center;
}

/* Blue buttons */
.btn-primary {
  background-color: var(--color-primary);
  color: #fff;
  font-size: var(--font-body);
}

.btn-primary:hover {
  background-color: var(--color-primary-hover);
}

.btn-primary-outline {
  background: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  font-size: var(--font-body);
}

.btn-primary-outline:hover {
  background-color: var(--color-primary);
  color: #fff;
}



/* Orange Buttons */

.btn-secondary {
  background-color: var(--color-secondary);
  color: #fff;
  font-size: var(--font-body);
}

.btn-secondary:hover {
  background-color: var(--color-secondary-hover);
}

.btn-secondary-outline {
  background: transparent;
  color: var(--color-secondary);
  border: 1px solid var(--color-secondary);
  font-size: var(--font-body);
}

.btn-secondary-outline:hover {
  background-color: var(--color-secondary);
  color: #fff;
}


.btn-pending,
.btn:disabled {
  background-color: #BCBFD0;
  color: #5E5E5E;
  cursor: not-allowed;
}


/* Badges */
.badge {
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
}

.badge-entity {
  background: #E0E7FF;
  color: #3730A3;
}

.btn-paywall {
  padding: 10px 22px;
  border-radius: var(--radius-pill);
  border: 2px solid var(--color-secondary);
  color: var(--color-secondary);
  background: transparent;
  font-weight: 600;
}


/* Primary Header */
.main-header {
        background: #fff;
        box-shadow: 0 0 40px rgba(0,0,0,0.10);
       
        transition: box-shadow 300ms ease;
        position: sticky !important;
        top: 0;
        z-index: 1050;
      }

      .navbar-brand img {
        height: 42px;
      }

      /* Desktop center nav */
      .nav-center {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: min(920px, calc(100% - 240px));
        min-width: 720px;
        display: flex;
        justify-content: center;
      }

      .nav-center .navbar-nav {
        flex-wrap: nowrap;
        justify-content: center;
        width: 100%;
      }

      .navbar-nav {
        gap: 40px;
      }

      .nav-link {
        font-family: var(--font-heading) !important;
        font-size: 14px;
        padding: 24px 0;
        color: var(--color-grey-800);
        text-align: left;
        text-transform: uppercase;
      }

      .nav-link:hover {
        color: var(--color-primary);
      }

      .current-menu-item .nav-link {
        color: var(--color-secondary) !important;
        font-weight: 700;
      }

      /* Active indicator (desktop only) */
      .nav-indicator {
        position: absolute;
        bottom: 0;
        height: 3px;
        border-radius: 2px;
        background: var(--gradient-orange);
        transition: all 300ms ease;
        left: 0;
        width: 0;
        opacity: 0;
      }

      /* Auth */
      .btn-login {
        font-family: var(--font-heading) !important;
        border: 1px solid var(--color-secondary);
        color: var(--color-secondary);
        padding: 8px 18px;
        border-radius: var(--radius-md);
        background: transparent;
        text-decoration: none;
        display: inline-block;
        cursor: pointer;
      }
      
      .btn-login:hover {
        text-decoration: none;
        color: var(--color-secondary);
      }

      .user-menu {
        display: flex;
        align-items: center;
        gap: 10px;
        font-family: var(--font-heading) !important;
        cursor: pointer;
      }

      .user-menu img {
        width: 36px;
        height: 36px;
        border-radius: 50%;
      }

      /* ---------- AUTH STATE ---------- */
      .auth-logged-in {
        display: none;
      }

      body.is-logged-in .auth-logged-out {
        display: none;
      }

      body.is-logged-in .auth-logged-in {
        display: flex;
      }

      /* ---------- OFFCANVAS ---------- */
      .offcanvas {
        width: 85vw;
        max-width: 360px;
      }

      .offcanvas-body {
        display: flex;
        flex-direction: column;
        padding: 20px;
      }

      .mobile-nav-links .nav-link {
        padding: 14px 0;
        font-size: 16px;
        text-align: left;
      }

      .mobile-auth {
        margin-top: auto;
        padding-top: 16px;
        border-top: 1px solid var(--color-grey-border);
      }

      /* Hide desktop underline on mobile */
      @media (max-width: 991px) {
        .nav-center {
          display: none;
        }

        .nav-indicator {
          display: none;
        }
      }

      .hero-section {
  padding: 100px 0;
  overflow: hidden;
}

.hero-title {
  
  margin-bottom: 24px;
  line-height: 1.4;
  color: var(--color-dark);
}

.hero-desc {
  max-width: 520px;
  margin-bottom: 32px;
}

.image-card {
  border-radius: var(--radius-lg);
  /* border: 2px solid var(--color-grey-border); */
  /* box-shadow: 0 0 20px rgba(0,0,0,0.15); */
  overflow: hidden;
}

.image-card img {
  width: 100%;
  height: auto;
  display: block;
}

/* Mobile adjustments */
@media (max-width: 991px) {
  .hero-title {
    font-size: 32px;
  }
}