/*
Theme Name: U2Code Product Addons Website
Theme URI: http://plugins.loc/spa-website/
Author: u2code
Author URI: https://u2code.com
Description: Marketing website theme for the U2Code Product Addons for WooCommerce plugin. Tailwind-based landing page with documentation, contact form and theme options for integrations and FAQs.
Version: 2.0.0
Requires at least: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: spa-website
*/

/* Dotted "builder canvas" background pattern */
.spa-dot-grid {
    background-image: radial-gradient(rgba(148, 163, 184, 0.35) 1px, transparent 1px);
    background-size: 22px 22px;
}

.spa-dot-grid-dark {
    background-image: radial-gradient(rgba(99, 102, 241, 0.35) 1px, transparent 1px);
    background-size: 22px 22px;
}

/* Hide scrollbars on carousel tracks while keeping them scrollable */
.spa-no-scrollbar {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.spa-no-scrollbar::-webkit-scrollbar {
    display: none;
}

/* Scroll-reveal animation (paired with IntersectionObserver in main.js) */
.scroll-animate {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.scroll-animate.is-visible {
    opacity: 1;
    transform: none;
}

/* Table Row Active State (used by docs/content tables) */
.table-row-active {
    background-color: rgb(238 242 255);
}

.table-row-active td,
.table-row-active span {
    font-weight: 700;
    color: rgb(79 70 229 / var(--tw-bg-opacity, 1));
}

/* Push the fixed site header below the WP admin bar for logged-in users */
body.admin-bar header.fixed {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar header.fixed {
        top: 46px;
    }
}

/* ─── Content lightbox ───────────────────────────────────────────
   Images inside post content open full size (assets/js/lightbox.js).
   The affordance is applied by the script, so an image only looks
   clickable once it actually is — if the script fails to load, the
   image stays an ordinary image rather than a lie. */
.spa-lightbox-trigger {
	cursor: zoom-in;
	transition: opacity 0.15s ease;
}

.spa-lightbox-trigger:hover {
	opacity: 0.92;
}

/* A wrapping link must not add its own underline/colour to the image. */
.spa-lightbox-content a:has( > .spa-lightbox-trigger ) {
	text-decoration: none;
}

/* Animated gradient sweep for bg-clip-text headline accents */
.spa-gradient-animate {
    background-size: 200% auto;
}

@media (prefers-reduced-motion: no-preference) {
    .spa-gradient-animate {
        animation: spa-gradient-shift 4s linear infinite;
    }
}

@keyframes spa-gradient-shift {
    to {
        background-position: 200% center;
    }
}
