/* AventisOne — effects that Elementor cannot express natively.
   Type, colour, buttons, forms and images are controlled in Elementor:
   Site Settings > Global Colors / Global Fonts / Theme Style / Custom CSS.
   Nothing in this file duplicates those. */

/* Marquee strip (Home) */
@keyframes av-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.av-marquee { overflow: hidden; width: 100%; }
.av-marquee__track { display: flex; width: max-content; animation: av-marquee 26s linear infinite; will-change: transform; }
.av-marquee__group { display: flex; align-items: center; }
.av-marquee__word { font-family: 'Archivo', sans-serif; font-weight: 800; font-stretch: 115%; text-transform: uppercase; letter-spacing: .06em; font-size: clamp(1.4rem, 2.6vw, 2.2rem); color: var(--e-global-color-text); padding: 0 28px; white-space: nowrap; line-height: 1.1; }
.av-marquee__dot { font-size: clamp(1.4rem, 2.6vw, 2.2rem); padding: 0; line-height: 1; }
@media (prefers-reduced-motion: reduce) { .av-marquee__track { animation: none; } }

/* 3D hero mount + scroll cue */
.av-hero3d { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.av-hero3d aventis-hero3d { position: absolute; inset: 0; display: block; }
@keyframes av-bounce { 0%,100% { transform: translateY(0); opacity: .9; } 50% { transform: translateY(9px); opacity: .4; } }
.av-scroll-cue { width: 22px; height: 36px; border: 1.5px solid rgba(255,255,255,.3); border-radius: 12px; display: flex; justify-content: center; padding-top: 7px; margin: 0 auto; }
.av-scroll-cue span { display: block; width: 3px; height: 8px; border-radius: 2px; background: var(--e-global-color-primary); animation: av-bounce 1.8s ease-in-out infinite; }

/* Reveal on scroll (paired with aventis.js IntersectionObserver) */
.av-r { opacity: 0; transform: translateY(28px); transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); will-change: opacity, transform; }
.av-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .av-r { opacity: 1; transform: none; transition: none; } }

/* Accessibility: skip link + comfortable touch targets */
.av-skip { position: absolute; left: -9999px; top: 0; z-index: 9999; background: var(--e-global-color-text); color: var(--e-global-color-a46314b4); font-family: 'Archivo', sans-serif; font-weight: 700; padding: 14px 22px; border-radius: 0 0 8px 0; }
.av-skip:focus { left: 0; }
.elementor-location-footer a { display: inline-block; min-height: 24px; padding: 6px 2px; line-height: 1.5; }
.elementor-location-footer .elementor-icon-list-item a { min-height: 44px; display: flex; align-items: center; padding: 8px 4px; }
.elementor-location-footer .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* Form details Theme Style has no control for */
.elementor-form .elementor-field-textual::placeholder { color: var(--e-global-color-fc41aa73); opacity: 1; }
.elementor-form .elementor-field-type-textarea textarea { border-radius: 14px; resize: vertical; }
.elementor-form .elementor-field-type-acceptance { display: flex; align-items: flex-start; gap: 12px; }
.elementor-form .elementor-field-type-acceptance input[type="checkbox"] { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--e-global-color-primary); }
.elementor-form .elementor-field-type-acceptance .elementor-field-option label { font-family: 'Archivo', sans-serif; font-size: .92rem; line-height: 1.55; text-transform: none; letter-spacing: 0; color: var(--e-global-color-1a738657); }