/* insights minimal spinner */
.insights-spinner {
  width: 16px; height: 16px;
  border: 2px solid rgba(0,0,0,0.15);
  border-top-color: currentColor;
  border-radius: 50%;
  display: inline-block;
  animation: insights-spin .7s linear infinite;
}
@keyframes insights-spin { to { transform: rotate(360deg); } }

/* line clamp fallback if Tailwind plugin not enabled */
.line-clamp-2, .line-clamp-3 {
  display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;
}
.line-clamp-2 { -webkit-line-clamp: 2; }
.line-clamp-3 { -webkit-line-clamp: 3; }


/* --- INSIGHTS PAGE: tighten spacing between the two sections --- */

/* 1) Pull the hero closer and trim its bottom padding */
section:first-of-type {
  padding-top: 1.5rem;   /* was py-20/sm:py-28 */
  padding-bottom: 1rem;  /* reduce space under hero */
}

/* 2) Pull the insights list up and keep a modest bottom */
#insights {
  padding-top: 0.75rem;  /* reduce gap above cards */
  padding-bottom: 2rem;
}

/* 3) Gently reduce padding inside the hero card */
section .hero-bg {
  padding: 1.25rem !important;
}

/* 4) Tweak internal top margins inside the insights section */
#insights #insightsGrid { margin-top: 0.75rem; }            /* was mt-8 */
#insights > div > .mt-8 { margin-top: 0.75rem !important; } /* grid + pager */

/* 5) Responsive refinements */
@media (min-width: 640px) {
  section:first-of-type { padding-top: 2rem;  padding-bottom: 1.25rem; }
  #insights { padding-top: 1rem; }
  section .hero-bg { padding: 1.5rem !important; }
}
@media (min-width: 768px) {
  section:first-of-type { padding-top: 2.5rem; padding-bottom: 1.5rem; }
  #insights { padding-top: 1.25rem; }
  section .hero-bg { padding: 1.75rem !important; }
}





/* Hide Contact on mobile, show Theme */
@media (max-width: 767.98px) {
  a[href="../contact/"] {
    display: none !important;
  }
  #themeToggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
}

/* Desktop/tablet: show Theme (and restore Contact, just in case) */
@media (min-width: 768px) {
  a[href="../contact/"] {
    display: inline-flex !important;
  }
  #themeToggle {
    display: inline-flex !important; /* override Tailwind's hidden */
    align-items: center;
    justify-content: center;
  }
}





/* Base color so the hamburger is visible */
#menuBtn {
  color: #0f172a;              /* dark slate (icon color) */
  background: rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.12);
}

/* Dark mode variant (if you use a .dark class on <html> or <body>) */
.dark #menuBtn {
  color: #f8fafc;              /* near-white */
  background: rgba(148, 163, 184, 0.10);
  border-color: rgba(148, 163, 184, 0.25);
}

/* Hover / active feedback */
#menuBtn:hover {
  background: rgba(15, 23, 42, 0.12);
}
.dark #menuBtn:hover {
  background: rgba(148, 163, 184, 0.18);
}

/* Focus ring without Tailwind (fallback) */
#menuBtn:focus-visible {
  outline: 2px solid #6366f1;  /* indigo */
  outline-offset: 2px;
  border-color: #6366f1;
}

/* Optional: ensure it's above bg overlays if any */
#menuBtn { z-index: 20; }


#menuBtn { color: #0f172a; }        /* dark slate on light */
.dark #menuBtn { color: #f8fafc; }  /* near-white on dark */




/* ===== Mobile footer grid (apply after Tailwind) ===== */
@media (max-width: 639.98px) {
  /* Make the main footer grid 2 columns on mobile */
  footer .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important; /* a bit tighter */
    align-items: start;
  }

  /* Brand block spans full width on the first row */
  footer .grid > div:first-child {
    grid-column: 1 / -1 !important;
    text-align: center;
  }

  /* Center headings + lists for all columns */
  footer .grid > div h4 {
    text-align: center;
    margin-bottom: 6px;
  }
  footer .grid > div ul {
    margin-top: 6px !important;
    text-align: center;
  }
  footer .grid > div ul li {
    margin: 6px 0 !important;
  }

  /* Center social icons row */
  footer .grid > div .flex.gap-3 {
    justify-content: center;
  }

  /* Slightly reduce paddings in the container */
  footer .mx-auto {
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  /* Tighten the copyright strip */
  footer .border-t.pt-6 {
    padding-top: 10px !important;
  }
}

/* Optional: smaller social icons on very small screens */
@media (max-width: 380px) {
  footer .size-9 {
    width: 34px !important;
    height: 34px !important;
  }
  footer .h-5.w-5 {
    width: 18px !important;
    height: 18px !important;
  }
  
}


/* Center the brand row on mobile */
@media (max-width: 639.98px) {
  footer .grid > div:first-child > .flex.items-center {
    justify-content: center !important; /* center the logo + text */
  }
  /* optional: ensure the block spans full width + centers text */
  footer .grid > div:first-child {
    grid-column: 1 / -1 !important;
    text-align: center;
  }
}


/* Center the FOLLOW column on small screens */
@media (max-width: 639.98px) {
  /* The Follow column is the last item in your footer grid */
  footer .grid > div:last-child {
    grid-column: 1 / -1;     /* span full width */
    text-align: center;       /* center the heading */
  }
  footer .grid > div:last-child .mt-3.flex {
    justify-content: center;  /* center the social icons row */
  }
}