
/* AST MOTION SYSTEM — premium motion, GPU-friendly transforms */
:root{--ast-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:100px}
body{scroll-behavior:smooth}
::selection{background:#ffb21a;color:#111}
.header{transition:background .45s ease,box-shadow .45s ease,height .45s ease,border-color .45s ease}
.header.is-scrolled{background:rgba(8,8,8,.96);box-shadow:0 14px 40px #0009;border-color:#ffb21a33}
.nav a{position:relative;transition:color .25s ease}
.nav a:after{content:'';position:absolute;bottom:-9px;left:0;width:100%;height:2px;background:#ffb21a;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ast-ease)}
.nav a:hover:after,.nav a[aria-current='page']:after{transform:scaleX(1)}
.hero-grid{transform:translate3d(0,var(--hero-grid-y,0px),0);will-change:transform}
.hero-machine{transform:translate3d(0,var(--hero-parallax,0px),0);will-change:transform}
.hero-copy{animation:heroEnter 1.15s var(--ast-ease) both}
.hero-copy .eyebrow{animation:heroEnter .9s .1s var(--ast-ease) both}
.hero-copy h1{animation:heroEnter 1.1s .2s var(--ast-ease) both}
.hero-copy>p{animation:heroEnter 1.1s .35s var(--ast-ease) both}
.hero-actions{animation:heroEnter 1.1s .5s var(--ast-ease) both}
.hero-facts{animation:heroEnter 1.1s .65s var(--ast-ease) both}
.hero-machine .machine-glow{animation:machineGlow 5s ease-in-out infinite}
.hero-machine .excavator{animation:machineFloat 6s ease-in-out infinite}
.hero-bottom span:last-child{animation:scrollHint 2.2s ease-in-out infinite}
.reveal{opacity:0;transform:translate3d(0,55px,0) scale(.975);filter:blur(5px);transition:opacity .85s var(--ast-ease),transform .95s var(--ast-ease),filter .85s ease;transition-delay:var(--reveal-delay,0ms)}
.reveal.visible{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
.equipment-card{transform-style:preserve-3d;position:relative;isolation:isolate;transition:border-color .35s ease,box-shadow .4s ease,transform .5s var(--ast-ease)}
.equipment-card:hover{box-shadow:0 20px 55px #000a,0 0 0 1px #ffb21a33;transform:translateY(-9px)}
.equipment-card:before{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;background:radial-gradient(300px circle at var(--pointer-x,50%) var(--pointer-y,50%),#ffb21a18,transparent 75%);transition:opacity .35s ease}
.equipment-card:hover:before{opacity:1}
.equipment-card .equipment-photo{transition:transform .85s var(--ast-ease),filter .65s ease!important}
.equipment-card:hover .equipment-photo{transform:scale(1.105)!important}
.order-btn,.direct-action,.modal-action,.btn,.contact-widget-trigger{position:relative;overflow:hidden}
.btn:after,.order-btn:after,.direct-action:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff30 48%,transparent 72%);transform:translateX(-130%);transition:transform .65s ease;pointer-events:none}
.btn:hover:after,.order-btn:hover:after,.direct-action:hover:after{transform:translateX(130%)}
.service-item{transition:padding-left .45s var(--ast-ease),background .35s ease}
.service-item:hover{background:linear-gradient(90deg,#ffb21a0c,transparent 70%)}
.about-visual:before{animation:aboutOrbit 18s linear infinite}
.about-visual:after{animation:aboutOrbit 13s linear infinite reverse}
.about-stamp{animation:stampBreathe 6s ease-in-out infinite}
.modal-backdrop.open .modal{animation:modalRise .45s var(--ast-ease) both}
.contact-section{position:relative;isolation:isolate}
.contact-section:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 15% 50%,#fff4,transparent 55%);pointer-events:none}
.ast-scroll-progress{position:fixed;left:0;top:0;width:100%;height:3px;z-index:100;background:transparent;pointer-events:none}
.ast-scroll-progress>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#e88b00,#ffd15d);transform:scaleX(0);transform-origin:left;will-change:transform;box-shadow:0 0 13px #ffb21a80}
.ast-back-top{position:fixed;bottom:100px;right:22px;z-index:17;display:grid;place-items:center;width:42px;height:42px;background:#171717;border:1px solid #ffb21a88;color:#ffb21a;border-radius:50%;font-size:19px;cursor:pointer;opacity:0;transform:translateY(15px);pointer-events:none;transition:opacity .35s,transform .35s var(--ast-ease),background .25s}
.ast-back-top.show{opacity:1;transform:translateY(0);pointer-events:auto}
.ast-back-top:hover{background:#ffb21a;color:#111}
@keyframes heroEnter{from{opacity:0;transform:translateY(35px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes machineFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes machineGlow{0%,100%{opacity:.65;transform:scale(.98)}50%{opacity:1;transform:scale(1.07)}}
@keyframes scrollHint{0%,100%{transform:translateY(0);opacity:.65}50%{transform:translateY(6px);opacity:1}}
@keyframes aboutOrbit{from{transform:translate(-50%,-50%) rotate(0deg) scaleX(1.07)}to{transform:translate(-50%,-50%) rotate(360deg) scaleX(1.07)}}
@keyframes stampBreathe{0%,100%{filter:drop-shadow(0 0 4px #ffb21a18)}50%{filter:drop-shadow(0 0 18px #ffb21a60)}}
@keyframes modalRise{from{opacity:0;transform:translateY(25px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:700px){.reveal{transform:translateY(24px);filter:none}.hero-machine{will-change:auto}.ast-back-top{right:14px;bottom:88px;width:37px;height:37px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.hero-copy,.hero-copy *, .hero-machine .excavator,.hero-machine .machine-glow,.hero-bottom span,.about-visual:before,.about-visual:after,.about-stamp{animation:none!important}.reveal{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}.hero-grid,.hero-machine{transform:none!important}.ast-scroll-progress>span{transition:none!important}.equipment-card:hover{transform:none!important}.equipment-card .equipment-photo{transform:none!important}.modal-backdrop.open .modal{animation:none!important}}

/* Mobile hero layout: keep the entire excavator and its caption inside viewport. */
@media(max-width:640px){
  .hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;height:auto;padding:128px 5% 32px;overflow:hidden}
  .hero-copy{width:100%;max-width:100%;flex:none}
  .hero h1{font-size:clamp(37px,10.6vw,52px);letter-spacing:-2.4px;overflow-wrap:normal}
  .hero-actions{flex-wrap:wrap}
  .hero-facts{margin-top:34px;gap:18px}
  .hero-machine{
    position:relative;top:auto;right:auto;left:auto;bottom:auto;
    width:100%;max-width:480px;margin:18px auto 0;
    opacity:1;transform:none!important;flex:none;
  }
  .hero-machine .excavator{display:block;width:100%;height:auto;overflow:hidden}
  .hero-machine .machine-label{
    position:relative;right:auto;bottom:auto;
    display:block;text-align:right;white-space:normal;
    font-size:8px;letter-spacing:1.2px;margin:0 3% 8px;
  }
  .hero-bottom{
    position:relative;left:auto;right:auto;bottom:auto;
    width:100%;margin-top:12px;gap:10px;flex-wrap:wrap;
  }
}
@media(min-width:641px) and (max-width:900px){
  .hero-machine{right:-3%;width:53%;top:345px}
  .machine-label{right:10%;font-size:8px}
}

/* Client-requested additions: service eligibility and clear catalog calls to action */
.client-types{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:18px;max-width:570px;position:relative;z-index:3}
.client-types span{display:inline-flex;align-items:center;min-height:30px;padding:7px 11px;border:1px solid #a88338;background:#ffb21a15;border-radius:4px;color:#f6e6bf;font-size:10px;font-weight:800;letter-spacing:.1px}
.client-types span:before{content:'✓';color:#ffb21a;margin-right:7px}
.client-types small{color:#b5b5b5;font-size:10px;line-height:1.5;letter-spacing:.1px}
.catalog-grid .order-btn{background:#ffb21a;color:#111;border-color:#ffb21a;box-shadow:0 5px 16px #ffb21a22;text-align:center;border-radius:3px;min-height:45px;font-size:11px;letter-spacing:.2px}
.catalog-grid .order-btn span{color:#111}
.catalog-grid .order-btn:hover{background:#e9c74a;border-color:#e9c74a;box-shadow:0 8px 25px #ffb21a55;transform:translateY(-2px)}
.catalog-grid .order-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:640px){.client-types{margin-top:14px;gap:6px}.client-types span{font-size:9px;padding:6px 8px;min-height:28px}.client-types small{display:block;width:100%;font-size:9px}.hero-facts{margin-top:25px}}
