/*
 * WordPress-only additions on top of the original site CSS (app.css).
 * Everything here uses the original tokens: MidnightGreen #033, MagicMint #9fc,
 * Water #cff, radius-4xl 2rem / 3xl 1.5rem.
 */

/* Page fade-in (original: gsap body opacity 0 → 1 in .4s). */
html.aj-js body { opacity: 0; }
html.aj-js body.aj-ready { opacity: 1; }
/* Safety net if scripts fail to run: show everything. */
html.aj-fallback body { opacity: 1 !important; }
html.aj-fallback [style*="opacity: 0"], html.aj-fallback .opacity-0 { opacity: 1 !important; transform: none !important; filter: none !important; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
[hidden] { display: none !important; }

/* Admin bar must not push the sticky nav under it. */
body.admin-bar nav[data-aj-nav] { top: 32px; }
@media (max-width: 782px) { body.admin-bar nav[data-aj-nav] { top: 46px; } }

/* Utilities used by WP templates that the original bundle does not contain. */
.aspect-video { aspect-ratio: 16 / 9; }
.max-w-6xl { max-width: 72rem; }

/* ---------- Blog cards ---------- */
.aj-blog-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 768px) { .aj-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1180px) { .aj-blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1180px) { .aj-blog-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.aj-card { display: flex; flex-direction: column; background: #f5f5f5; border-radius: 2rem; overflow: hidden; padding: .5rem; color: inherit; text-decoration: none; transition: background-color .3s; }
.aj-card:hover { background: #efefef; }
.aj-card__media { aspect-ratio: 3 / 2; border-radius: 1.5rem; overflow: hidden; background: rgb(0 51 51 / .06); display: flex; align-items: center; justify-content: center; }
.aj-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22,1,.36,1); }
.aj-card:hover .aj-card__img { transform: scale(1.04); }
.aj-card__img--logo { width: 40%; height: auto; object-fit: contain; opacity: .9; }
.aj-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; padding: 1.25rem 1.25rem 1.5rem; flex: 1; }
.aj-card__date { font-size: .875rem; opacity: .6; }
.aj-card__title { font-size: 1.25rem; font-weight: 700; line-height: 1.3; }
.aj-card__excerpt { opacity: .9; font-size: .95rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.aj-card__more { margin-top: auto; display: inline-block; isolation: isolate; }
.aj-card:hover .aj-card__more { color: var(--color-MagicMint); }
.aj-card:hover .aj-card__more > span.absolute { transform: translateY(0); }

.aj-pagination { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.aj-pagination .page-numbers { min-width: 2.5rem; height: 2.5rem; padding: 0 1rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; border: 1px solid rgb(0 51 51 / .15); font-size: .875rem; transition: background-color .3s, color .3s; }
.aj-pagination a.page-numbers:hover { background: var(--color-MidnightGreen); color: #fff; }
.aj-pagination .page-numbers.current { background: var(--color-MidnightGreen); color: #fff; border-color: var(--color-MidnightGreen); }

/* ---------- Article / page content ---------- */
.aj-prose { max-width: 56rem; font-size: 1.0625rem; line-height: 1.9; color: var(--color-MidnightGreen); }
.aj-lang-en .aj-prose { line-height: 1.6; }
.aj-prose > * + * { margin-top: 1.1em; }
.aj-prose h1, .aj-prose h2, .aj-prose h3, .aj-prose h4, .aj-prose h5, .aj-prose h6 { font-family: var(--font-bigvesta); font-weight: 400; line-height: 1.35; margin-top: 1.8em; margin-bottom: .4em; letter-spacing: -.01em; }
.aj-lang-en .aj-prose h1, .aj-lang-en .aj-prose h2, .aj-lang-en .aj-prose h3, .aj-lang-en .aj-prose h4 { font-family: var(--font-fragment-sans); }
.aj-prose h1 { font-size: 2.25rem; }
.aj-prose h2 { font-size: 1.875rem; }
.aj-prose h3 { font-size: 1.5rem; }
.aj-prose h4, .aj-prose h5, .aj-prose h6 { font-size: 1.2rem; }
.aj-prose strong, .aj-prose b { font-weight: 600; }
.aj-prose a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgb(0 51 51 / .35); }
.aj-prose a:hover { text-decoration-color: currentColor; }
.aj-prose ul, .aj-prose ol { padding-inline-start: 1.4em; }
.aj-prose ul { list-style: disc; }
.aj-prose ol { list-style: decimal; }
.aj-prose li + li { margin-top: .35em; }
.aj-prose li::marker { color: rgb(0 51 51 / .5); }
.aj-prose img, .aj-prose video, .aj-prose iframe { max-width: 100%; height: auto; border-radius: 1.5rem; }
.aj-prose figure { margin-inline: 0; }
.aj-prose figcaption { font-size: .875rem; opacity: .6; text-align: center; margin-top: .5em; }
.aj-prose blockquote { border-inline-start: 3px solid var(--color-MagicMint); padding: .5em 1.2em; background: rgb(153 255 204 / .15); border-radius: 0 1rem 1rem 0; }
.aj-prose table { width: 100%; border-collapse: collapse; font-size: .95em; display: block; overflow-x: auto; }
.aj-prose th, .aj-prose td { border: 1px solid rgb(0 51 51 / .12); padding: .6em .9em; text-align: start; }
.aj-prose th { background: rgb(0 51 51 / .04); font-weight: 600; }
.aj-prose hr { border: 0; border-top: 1px solid rgb(0 51 51 / .12); margin: 2.5em 0; }
/* Leftovers of builder markup without its CSS: keep icons/buttons sane. */
.aj-prose svg { width: 1.25em; height: 1.25em; display: inline-block; vertical-align: -.2em; }
.aj-prose form, .aj-prose .fluentform, .aj-prose style, .aj-prose script { display: none !important; }
.aj-prose .elementor-button, .aj-prose .wp-block-button__link { display: inline-block; background: var(--color-MidnightGreen); color: var(--color-Water); border-radius: 9999px; padding: .5em 1.4em; text-decoration: none; font-size: .9rem; }

/* WhatsApp pulse ring (framer: scale 1 → 1.5, opacity .5 → 0, 2s, infinite). */
@keyframes aj-pulse { from { transform: scale(1); opacity: .5; } to { transform: scale(1.5); opacity: 0; } }
[data-aj-pulse] { animation: aj-pulse 2s ease-out infinite; }

/* Footer cursor follower spin (5s linear infinite). */
@keyframes aj-spin { to { transform: rotate(360deg); } }
[data-aj-cursor-spin] { animation: aj-spin 5s linear infinite; }

/* Reduced motion: skip scroll/entrance choreography. */
@media (prefers-reduced-motion: reduce) {
	body { opacity: 1 !important; }
	[data-aj-pulse], [data-aj-cursor-spin] { animation: none; }
}
