/**
 * UDAT Core — Shared Functional CSS
 *
 * This file is loaded automatically for ALL sites before the site-specific CSS.
 * It contains functional rules that are not site-styling (animations, utilities,
 * structural classes). Do NOT put brand colours, fonts, or design tokens here.
 *
 * Site-specific styling goes in /assets/css/sites/{slug}.css
 */

/* ============ SCROLL ANIMATIONS ============ */
[data-uc-anim] { opacity: 0; transition-property: opacity, transform; transition-timing-function: ease-out; }
[data-uc-anim].uc-anim-visible { opacity: 1; transform: none !important; }
[data-uc-anim="fade-in"] { }
[data-uc-anim="slide-up"] { transform: translateY(30px); }
[data-uc-anim="slide-down"] { transform: translateY(-30px); }
[data-uc-anim="slide-left"] { transform: translateX(30px); }
[data-uc-anim="slide-right"] { transform: translateX(-30px); }
[data-uc-anim="zoom-in"] { transform: scale(0.9); }
[data-uc-anim="zoom-out"] { transform: scale(1.1); }

/* ============ STRUCTURAL ============ */
.uc-block-outer { /* Outer wrapper for all blocks — carries CSS classes and style overrides */ }
.uc-row-single-inner { /* Single-column row inner — no constraints, child blocks handle their own max-width */ }

/* ============ UTILITY CLASSES ============ */
.uc-text-center { text-align: center; }
.uc-text-right { text-align: right; }
.uc-text-left { text-align: left; }
.uc-hidden { display: none !important; }
.uc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* ============ NAV ALIGNMENT ============ */
.ucf-nav-align-center .ucf-nav-inner > ul { justify-content: center; }
.ucf-nav-align-right .ucf-nav-inner > ul { justify-content: flex-end; }

/* ============ NAV LOGO ============ */
.ucf-nav-logo { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; margin-right: 20px; }
.ucf-nav-logo:hover { text-decoration: none; }
.ucf-nav-logo img { width: auto; display: block; }
.ucf-nav-logo-text { font-weight: 700; font-size: 1.2em; white-space: nowrap; }

/* Logo position: above */
.ucf-nav-logo-above .ucf-nav-inner { flex-direction: column; align-items: center; }
.ucf-nav-logo-above .ucf-nav-logo { margin: 8px 0; }
/* Logo position: right */
.ucf-nav-logo-right .ucf-nav-inner { flex-direction: row-reverse; }
.ucf-nav-logo-right .ucf-nav-logo { margin-right: 0; margin-left: 20px; }
