  /* Tighten any section that contains the .hero-bg (your Contact hero) */
  section:has(.hero-bg) {
    padding-top: 1.25rem;      /* was py-20 / sm:py-28 */
    padding-bottom: 1.25rem;
    scroll-margin-top: 6rem;   /* nicer anchor jump under sticky header */
  }
  @media (min-width: 640px) {
    section:has(.hero-bg) { padding-top: 1.75rem; padding-bottom: 1.5rem; }
  }

  /* Reduce the inner hero’s big padding (p-10 sm:p-14 md:p-16) */
  .hero-bg {
    padding-block: 1.25rem 1rem;  /* top | bottom */
    padding-inline: 1.25rem;
  }
  @media (min-width: 640px) {      /* sm */
    .hero-bg { padding-block: 1.5rem 1.25rem; padding-inline: 2rem; }
  }
  @media (min-width: 768px) {      /* md */
    .hero-bg { padding-block: 1.75rem 1.25rem; padding-inline: 3rem; }
  }

  /* Optional: nudge even closer if header is tall */
  /* section:has(.hero-bg) { margin-top: -0.25rem; } */





  /* Summary caret + animation */
  details summary { list-style: none; }
  details summary::-webkit-details-marker { display: none; }
  details summary { position: relative; padding-right: 1.25rem; }
  details summary::after {
    content: "▸"; position: absolute; right: 0; top: 0;
    transition: transform .2s ease;
    opacity: .7;
  }
  details[open] summary::after { transform: rotate(90deg); }

  details[open] > *:not(summary) {
    animation: faq-reveal .2s ease;
  }
  @keyframes faq-reveal {
    from { opacity: 0; transform: translateY(-2px); }
    to   { opacity: 1; transform: translateY(0); }
  }




  .contact-spinner {
    width: 14px; height: 14px; border-radius: 50%;
    border: 2px solid #2c5ff6; border-top-color: transparent;
    display: inline-block; vertical-align: middle;
    animation: contact-spin .8s linear infinite;
  }
  @keyframes contact-spin { to { transform: rotate(360deg); } }

  .contact-dot {
    width: 10px; height: 10px; border-radius: 50%;
    display: inline-block; vertical-align: middle;
  }
  .contact-dot.ok    { background: #16a34a; }  /* green-600 */
  .contact-dot.error { background: #dc2626; }  /* red-600 */






/* 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 */
  }
}


