/* LinkBuilders theme styles (Tailwind utilities load from the CDN) */
    body { font-family: 'Inter', sans-serif; -webkit-font-smoothing: antialiased; }

    /* Brand gradient utilities */
    .bg-brand-gradient { background-image: linear-gradient(135deg, #8B2CF5 0%, #3B6EF6 55%, #2AA8F5 100%); }
    .text-brand-gradient {
      background-image: linear-gradient(90deg, #8B2CF5 0%, #3B6EF6 55%, #2AA8F5 100%);
      -webkit-background-clip: text; background-clip: text; color: transparent;
    }
    .btn-gradient {
      background-image: linear-gradient(135deg, #8B2CF5 0%, #3B6EF6 60%, #2AA8F5 120%);
      background-size: 160% 160%; background-position: 0% 50%;
      transition: background-position .5s ease, transform .3s ease, box-shadow .3s ease;
    }
    .btn-gradient:hover { background-position: 100% 50%; }

    /* Nav hover underline */
    .nav-link { position: relative; }
    .nav-link::after {
      content: ''; position: absolute; left: 0; bottom: -6px; height: 2px; width: 100%;
      background-image: linear-gradient(90deg, #8B2CF5, #3B6EF6);
      transform: scaleX(0); transform-origin: right; transition: transform .3s ease; border-radius: 2px;
    }
    .nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); transform-origin: left; }

    /* Burger animation */
    .burger span { display:block; height:2px; width:22px; background:#111827; border-radius:2px; transition: transform .3s ease, opacity .2s ease; }
    .burger span + span { margin-top:5px; }
    .burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .burger.open span:nth-child(2) { opacity: 0; }
    .burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    /* Mobile menu */
    #mobileMenu { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
    #mobileMenu.open { grid-template-rows: 1fr; }
    #mobileMenu > div { overflow: hidden; }

    /* Hero aura */
    .aura { filter: blur(90px); opacity: .45; }
    @keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
    .float { animation: floaty 6s ease-in-out infinite; }
    .float-delay { animation: floaty 7s ease-in-out infinite; animation-delay: -3s; }

    /* FAQ */
    .faq-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
    .faq-item.open .faq-body { grid-template-rows: 1fr; }
    .faq-body > div { overflow: hidden; }
    .faq-item.open .faq-icon { transform: rotate(45deg); color:#fff; border-color: transparent; background-image: linear-gradient(135deg,#8B2CF5,#3B6EF6); }

    /* Budget dropdown */
    .dd-list { opacity: 0; transform: translateY(-6px); pointer-events: none; transition: opacity .2s ease, transform .2s ease; }
    .dd.open .dd-list { opacity: 1; transform: translateY(0); pointer-events: auto; }
    .dd.open .dd-chevron { transform: rotate(180deg); }

    .table-wrap { scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; }

    /* Reveal on scroll */
    .reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
    .reveal.in { opacity: 1; transform: none; }
    @media (prefers-reduced-motion: reduce) {
      .reveal { opacity: 1; transform: none; transition: none; }
      .float, .float-delay { animation: none; }
      * { scroll-behavior: auto !important; }
    }
  
/* ---------- WordPress additions ---------- */
.lb-has-adminbar { top: 32px; }
@media screen and (max-width: 782px) { .lb-has-adminbar { top: 46px; } }
@media screen and (max-width: 600px) { .lb-has-adminbar { top: 0; position: absolute; } }

.custom-logo { max-height: 44px; width: auto; }

/* Pagination */
.lb-pagination ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.lb-pagination a, .lb-pagination span {
  display: grid; place-items: center; min-width: 2.75rem; height: 2.75rem; padding: 0 .9rem;
  border: 1px solid #e2e8f0; border-radius: 9999px; background: #fff;
  font-size: .875rem; font-weight: 600; color: #475569; transition: all .2s ease;
}
.lb-pagination a:hover { border-color: #3B6EF6; color: #3B6EF6; }
.lb-pagination .current { color: #fff; border-color: transparent; background-image: linear-gradient(135deg,#8B2CF5,#3B6EF6); }

/* Comments */
.lb-comments ol { list-style: none; padding: 0; }
.lb-comments .children { list-style: none; margin-top: 1.25rem; padding-left: 1.5rem; border-left: 2px solid #e2e8f0; }
.lb-comments .comment-body { border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1.25rem 1.5rem; background: #fff; }
.lb-comments .comment-author { display: flex; align-items: center; gap: .75rem; font-weight: 600; color: #111827; }
.lb-comments .comment-author img { border-radius: 9999px; }
.lb-comments .comment-metadata { margin-top: .25rem; font-size: .75rem; color: #94a3b8; }
.lb-comments .comment-content { margin-top: .75rem; color: #475569; font-size: .95rem; line-height: 1.7; }
.lb-comments .reply a { font-size: .8rem; font-weight: 600; color: #3B6EF6; }
.lb-comments .comment-form label { display: block; font-size: .875rem; font-weight: 600; color: #111827; margin-bottom: .35rem; }
.lb-comments .comment-form input[type="text"], .lb-comments .comment-form input[type="email"],
.lb-comments .comment-form input[type="url"], .lb-comments .comment-form textarea {
  width: 100%; border: 1px solid #cbd5e1; border-radius: .5rem; padding: .75rem 1rem; font-size: .875rem; outline: none;
}
.lb-comments .comment-form input:focus, .lb-comments .comment-form textarea:focus { border-color: #3B6EF6; box-shadow: 0 0 0 4px #dbeafe; }
.lb-comments .comment-form p { margin-top: 1rem; }
.lb-comments .comment-notes, .lb-comments .logged-in-as { font-size: .85rem; color: #64748b; }

/* Core block alignment helpers */
.alignwide { max-width: 64rem; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption-text, figcaption { font-size: .85rem; color: #64748b; text-align: center; }
.sticky, .bypostauthor, .gallery-caption { }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
