/* Ameratex motion layer. Everything here is decorative; content stays visible without JS. */
@keyframes ax-pulse{0%{box-shadow:0 0 0 0 rgba(212,42,34,.6)}70%{box-shadow:0 0 0 14px rgba(212,42,34,0)}100%{box-shadow:0 0 0 0 rgba(212,42,34,0)}}
@keyframes ax-dot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.35}}
@keyframes ax-grid{to{background-position:48px 48px,48px 48px}}
@keyframes ax-glow{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-3%,2%) scale(1.06)}}
@keyframes ax-stripes{to{background-position:0 40px}}
@keyframes ax-flow{to{stroke-dashoffset:-60}}
@keyframes ax-draw{to{stroke-dashoffset:0}}
@keyframes ax-drip{0%{transform:translateY(-10px);opacity:0}15%{opacity:1}80%{opacity:1}100%{transform:translateY(46px);opacity:0}}
@keyframes ax-spin{to{transform:rotate(360deg)}}
@keyframes ax-rock{0%,100%{transform:rotate(0)}50%{transform:rotate(-8deg)}}
@keyframes ax-steam{0%{transform:translateY(0) scaleX(1);opacity:0}25%{opacity:.55}100%{transform:translateY(-46px) scaleX(1.4);opacity:0}}
@keyframes ax-shimmer{0%,80%,100%{opacity:1}90%{opacity:.45}}
@keyframes ax-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}
@keyframes ax-van{from{transform:translateX(-120%)}to{transform:translateX(0)}}
@keyframes ax-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}

/* live "on call" dot */
.ax-live{display:inline-flex;align-items:center;gap:.45rem}
.ax-live i{width:8px;height:8px;border-radius:50%;background:#3ddc84;display:inline-block;animation:ax-dot 1.6s ease-in-out infinite}

/* call buttons breathe */
header.site .btn-red,.callbar .btn-red,.ax-cta .btn-red{animation:ax-pulse 2.2s ease-out infinite}

/* hero atmosphere */
.hero::after{animation:ax-grid 14s linear infinite}
.hero::before{animation:ax-glow 12s ease-in-out infinite}
.banner{background-size:auto 40px;animation:ax-stripes 2.4s linear infinite}

/* hero illustration */
.ax-pipe{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:ax-draw 1.4s cubic-bezier(.6,0,.2,1) .2s forwards}
.ax-flow{fill:none;stroke-linecap:round;stroke-width:4;stroke-dasharray:6 14;animation:ax-flow 1.1s linear infinite;opacity:0;transition:opacity .6s ease 1.5s}
.ax-ready .ax-flow{opacity:.9}
.ax-drop{transform-box:fill-box;animation:ax-drip 2.6s ease-in infinite}
.ax-drop:nth-child(2){animation-delay:.9s}
.ax-drop:nth-child(3){animation-delay:1.7s}
.ax-badge{transform-box:fill-box;transform-origin:center;animation:ax-spin 18s linear infinite}
.ax-wrench{transform-box:fill-box;transform-origin:50% 0;animation:ax-rock 3.2s ease-in-out infinite}
.ax-steam path{transform-box:fill-box;transform-origin:center bottom;animation:ax-steam 3s ease-out infinite}
.ax-steam path:nth-child(2){animation-delay:1s}
.ax-steam path:nth-child(3){animation-delay:2s}
.ax-light{animation:ax-shimmer 2.8s ease-in-out infinite}

/* van drives in on the story card */
.ax-van{animation:ax-van 1.4s cubic-bezier(.2,.8,.2,1) both;animation-play-state:paused}
.in .ax-van,.ax-van.go{animation-play-state:running}
.ax-wheel{transform-box:fill-box;transform-origin:center;animation:ax-spin .5s linear 3;animation-play-state:paused}
.in .ax-wheel,.ax-van.go .ax-wheel{animation-play-state:running}
.ax-body{animation:ax-bob 1.2s ease-in-out infinite}

/* scroll reveal (only when JS is running) */
.ax-js .rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.ax-js .rv.in{opacity:1;transform:none}
.ax-js .rv-l{transform:translateX(-30px)}
.ax-js .rv-r{transform:translateX(30px)}
.ax-js .rv-l.in,.ax-js .rv-r.in{transform:none}

/* cards lift */
.card,.review,.cc,.stat,.ax-svc{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.card:hover,.review:hover,.ax-svc:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.35),0 0 0 1px var(--sky)}
.card:hover .icon svg,.ax-svc:hover .icon svg{animation:ax-wiggle .5s ease}
.stat:hover{transform:translateY(-3px);border-color:var(--red)}
.chips span{transition:transform .2s ease,border-color .2s ease}
.chips span:hover{transform:translateY(-2px);border-color:var(--sky)}
.review .stars svg{animation:ax-shimmer 3.4s ease-in-out infinite}
.review .stars svg:nth-child(2){animation-delay:.15s}
.review .stars svg:nth-child(3){animation-delay:.3s}
.review .stars svg:nth-child(4){animation-delay:.45s}
.review .stars svg:nth-child(5){animation-delay:.6s}

/* "learn more" links on service cards */
.card .more{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--white);text-decoration:none}
.card .more svg{width:18px;height:18px;transition:transform .2s ease;color:var(--red)}
.card .more:hover svg{transform:translateX(4px)}

/* footer service links */
.ax-links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:1.4rem}
.ax-links a{color:var(--text);text-decoration:none;font-weight:600}
.ax-links a:hover{color:var(--white);text-decoration:underline}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important}
  .ax-js .rv{opacity:1;transform:none}
  .ax-pipe{stroke-dashoffset:0}
  .ax-flow{display:none}
}
/* services dropdown + mobile menu */
nav.links{align-items:center}
.dd{position:relative}
.dd-btn{font:inherit;font-weight:600;font-size:.95rem;color:var(--navy-brand);background:none;border:0;padding:.4rem 0;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem}
.dd-btn .chev{width:16px;height:16px;transition:transform .2s ease}
.dd:hover .dd-btn,.dd-btn[aria-expanded=true]{color:var(--red-brand)}
.dd:hover .chev,.dd-btn[aria-expanded=true] .chev{transform:rotate(180deg)}
.dd-menu{position:absolute;top:100%;left:-14px;min-width:250px;background:var(--white);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.28);border-top:4px solid var(--red-brand);padding:8px;display:grid;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.dd:hover .dd-menu,.dd:focus-within .dd-menu,.dd.open .dd-menu{opacity:1;visibility:visible;transform:none}
.dd-menu a{display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem;border-radius:8px;color:var(--navy-brand);text-decoration:none;font-weight:600}
.dd-menu a svg{width:20px;height:20px;color:var(--red-brand);flex:none}
.dd-menu a:hover{background:#eef3fa;color:var(--red-brand)}
.dd-menu a.all{border-top:1px solid #e3e9f2;margin-top:4px;border-radius:0 0 8px 8px;color:var(--red-brand)}
.menu-btn{display:none;width:44px;height:44px;border:2px solid #d5deea;border-radius:10px;background:var(--white);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}
.menu-btn span{display:block;width:20px;height:2.5px;background:var(--navy-brand);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.menu-btn[aria-expanded=true] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-btn[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded=true] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.mnav{background:var(--white);border-top:1px solid #e3e9f2;max-height:calc(100vh - 90px);overflow:auto}
.mnav .wrap{display:grid;padding-block:.6rem 1rem}
.mnav a{display:flex;align-items:center;gap:.7rem;padding:.8rem .2rem;color:var(--navy-brand);text-decoration:none;font-weight:600;border-bottom:1px solid #eef2f7}
.mnav a svg{width:20px;height:20px;color:var(--red-brand)}
.mnav-h{margin:.9rem 0 .2rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--red-brand)}
@media (max-width:900px){.menu-btn{display:flex}header.site .wrap{gap:.6rem}header.site .wrap > a.btn{margin-left:auto}}
@media (min-width:901px){.mnav{display:none!important}}

header.site .mnav .wrap{display:grid;justify-content:stretch;align-items:stretch;gap:0;padding-block:.4rem 1rem}
@media (max-width:900px){header.site .wrap > a.btn{order:2}.menu-btn{order:3}}
