/* AZZDA V13 | Premium motion for the REST of the site, based on Deep Research V3.
 * Scope: hero, navigation, services, transport, comparison, products, gallery,
 * process, FAQ, contacts, dialogs and footer.  #riepu-riki and its drawer excluded.
 * No external dependencies, no palette replacement. Respect reduced-motion.
 */
:root{
  --az-motion-tap:110ms;
  --az-motion-fast:160ms;
  --az-motion-mid:260ms;
  --az-motion-reveal:360ms;
  --az-motion-modal:200ms;
  --az-motion-stagger:50ms;
  --az-motion-ease-out:cubic-bezier(.22,1,.36,1);
  --az-motion-ease-in-out:cubic-bezier(.4,0,.2,1);
}
/* CORE-003: content is visible without JS. Reveal only opts in after script boots. */
html:not(.js-motion) .reveal {opacity:1!important;transform:none!important}
html.js-motion .reveal:not(.gallery-item){
  transition-duration:var(--az-motion-reveal)!important;
  transition-timing-function:var(--az-motion-ease-out)!important;
}
html.js-motion .reveal-delay{transition-delay:var(--az-motion-stagger)!important}
html.js-motion .reveal-delay-2{transition-delay:calc(var(--az-motion-stagger) * 2)!important}
/* CORE-002 and HERO-004: only one decorative continuous movement per viewport. */
.site-bg .bg-square,.site-bg .bg-line{animation:none!important}
.hero .hero-image{animation:none!important;transform:none!important}
.azzda-strip-wall .azzda-photo-track{animation-play-state:paused!important}
.hero.az-motion-paused .azzda-photo-track,
.icon-strip.az-motion-paused .azzda-photo-track,
.process.az-motion-paused .photo-wall-track{animation-play-state:paused!important}
/* NAV-001/002/003/005: existing navigation geometry retained. */
.header{transition:background-color var(--az-motion-mid) var(--az-motion-ease-in-out),box-shadow var(--az-motion-mid) var(--az-motion-ease-out)!important}
.header.az-scrolled{box-shadow:0 9px 26px rgba(12,54,90,.10)}
.nav a::after{transition:transform var(--az-motion-fast) var(--az-motion-ease-out)!important}
.nav a[aria-current="location"]::after{transform:scaleX(1)}
.nav a:focus-visible,.nav-phone:focus-visible,.brand:focus-visible,.menu-toggle:focus-visible{
  outline:2px solid var(--blue)!important;outline-offset:4px;
}
.menu-toggle span{transition:transform var(--az-motion-fast) var(--az-motion-ease-out),opacity var(--az-motion-fast) ease!important}
/* CORE-004: feedback is immediate; click navigation never waits for animation. */
.hero .btn,.nav-meta .btn,.contact-side .btn,.footer .btn,
.services-carousel .carousel-controls button,.stats-products .inline-controls button,
.gallery-filters button,.contact-side a,.contact-side button{
  transition-duration:var(--az-motion-fast)!important;
  transition-timing-function:var(--az-motion-ease-out)!important;
}
.hero .btn:active,.nav-meta .btn:active,.contact-side .btn:active,
.services-carousel .carousel-controls button:active,.stats-products .inline-controls button:active,
.gallery-filters button:active{transform:scale(.985)!important}
/* HERO-001/003/005/007: small staged entrance, CTAs never hidden or disabled. */
@keyframes az-premium-enter {from{opacity:.83;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
.hero-copy.is-visible h1{animation:az-premium-enter var(--az-motion-reveal) var(--az-motion-ease-out) both}
.hero-copy.is-visible .hero-text{animation:az-premium-enter var(--az-motion-reveal) var(--az-motion-ease-out) 40ms both}
.hero-copy.is-visible .hero-actions{animation:az-premium-enter 320ms var(--az-motion-ease-out) 75ms both}
.hero-overlay{transition:none!important}
.hero .quick-card:is(:hover,:focus-visible) .quick-card-icon,
.hero .quick-card:is(:hover,:focus-visible) svg{transform:translateY(-2px)}
.hero .quick-card svg{transition:transform var(--az-motion-fast) var(--az-motion-ease-out)}
/* BEN-001/002/003: subtle icon response; preserve the blue theme and text contrast. */
.icon-strip .info-card.quick-card,
.icon-strip .quick-card{transition:box-shadow var(--az-motion-mid) var(--az-motion-ease-out),border-color var(--az-motion-mid) ease!important}
.icon-strip .quick-card svg{transition:transform var(--az-motion-fast) var(--az-motion-ease-out)}
.icon-strip .quick-card:is(:hover,:focus-visible) svg{transform:translateY(-2px)}
/* SERV-001/002/003/004/005: image never enlarges beyond card, press/focus visible. */
.services .service-card,
.services .service-card.is-main,
.services .service-card.is-side-peek{
  transition:transform var(--az-motion-mid) var(--az-motion-ease-out),border-color var(--az-motion-mid) ease,box-shadow var(--az-motion-mid) ease!important;
}
.services .service-card:is(:hover,:focus-visible){transform:translateY(-3px)!important}
.services .service-card img{transition:transform var(--az-motion-mid) var(--az-motion-ease-out)!important}
.services .service-card:is(:hover,:focus-visible) img{transform:scale(1.02)!important}
.services .services-ambient,.gallery .gallery-ambient{
  transition:opacity var(--az-motion-mid) var(--az-motion-ease-in-out)!important;
}
.services .carousel-window.az-dragging{cursor:grabbing}
.services .carousel-window.az-dragging .service-card{user-select:none}
.services .prev:focus-visible,.services .next:focus-visible,
.services .service-card:focus-visible{outline:2px solid var(--blue)!important;outline-offset:4px}
/* TRNS-001/002/004: very mild image motion; no card tilt. */
.transport .media-tile{transition:border-color var(--az-motion-mid) ease,box-shadow var(--az-motion-mid) ease!important}
.transport .media-tile img{transition:transform var(--az-motion-mid) var(--az-motion-ease-out)!important}
.transport .media-tile:is(:hover,:focus-visible) img{transform:scale(1.02)!important}
.transport .transport-ambient{transition:opacity var(--az-motion-mid) var(--az-motion-ease-in-out)!important}
.transport .media-tile:focus-visible{outline:2px solid var(--blue)!important;outline-offset:4px}
/* COMP-001/004/005/006: animate only position of divider via input, not the photos. */
.compare-section .compare-image,
.compare-section img{animation:none!important;transition:none!important}
#compareRange:focus-visible{outline:3px solid var(--blue)!important;outline-offset:6px;border-radius:12px}
#compareRange:active{cursor:ew-resize}
/* PROD-001/002/003/006: contained product image and clear action arrow. */
.stats-products .product-card img{transition:transform var(--az-motion-mid) var(--az-motion-ease-out)!important}
.stats-products .product-card:is(:hover,:focus-visible) img{transform:scale(1.02)!important}
.stats-products .product-track{transition:transform 340ms var(--az-motion-ease-out)!important}
.stats-products .product-card i{transition:transform var(--az-motion-fast) var(--az-motion-ease-out)!important}
.stats-products .product-card:is(:hover,:focus-visible) i{transform:translateX(3px)}
.stats-products .product-card:focus-visible{outline:2px solid var(--blue)!important;outline-offset:4px}
/* GALL-001/002/004/006/007: stable filter and gentle hover, no heavy blur tween. */
.gallery-grid{view-transition-name:az-gallery}
::view-transition-old(az-gallery){animation:140ms ease-out both fade-out}
::view-transition-new(az-gallery){animation:180ms ease-out both fade-in}
@keyframes fade-out{to{opacity:0}}
@keyframes fade-in{from{opacity:.4}to{opacity:1}}
.gallery .gallery-item,
.gallery .gallery-item.reveal{
  transition:transform var(--az-motion-mid) var(--az-motion-ease-out),border-color var(--az-motion-fast) ease,box-shadow var(--az-motion-mid) ease!important;
}
.gallery .gallery-item:is(:hover,:focus-visible),
.gallery .gallery-item.reveal:is(:hover,:focus-visible){transform:translateY(-3px) scale(1.005)!important}
.gallery .gallery-item img{transition:transform var(--az-motion-mid) var(--az-motion-ease-out)!important}
.gallery .gallery-item:is(:hover,:focus-visible) img{transform:scale(1.02)!important}
.gallery .gallery-item:focus-visible,.gallery-filters button:focus-visible{
  outline:2px solid var(--blue)!important;outline-offset:4px;
}
.gallery-filters button[aria-pressed="true"]{cursor:default}
/* PROC-001/003: manual pause for movement over 5s; no text is covered. */
.process .az-process-pause{
  position:absolute;right:max(18px,calc((100vw - 1240px)/2 + 18px));top:24px;z-index:6;
  padding:8px 13px;border:1px solid var(--line-strong);border-radius:999px;
  background:var(--card-2);color:var(--text);font-size:.75rem;font-weight:750;
  cursor:pointer;box-shadow:0 4px 16px rgba(22,85,143,.12);
  transition:border-color var(--az-motion-fast) ease,box-shadow var(--az-motion-fast) ease;
}
.process .az-process-pause:is(:hover,:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.process .process-grid > *{transition:box-shadow var(--az-motion-mid) ease,border-color var(--az-motion-mid) ease}
/* FAQ-001/002/003/005: grid accordion avoids animating height:auto. */
.faq-contact .faq-answer{
  display:grid!important;grid-template-rows:0fr;overflow:hidden;
  opacity:0;visibility:hidden;padding-top:0!important;padding-bottom:0!important;
  transition:grid-template-rows var(--az-motion-mid) var(--az-motion-ease-in-out),opacity var(--az-motion-fast) ease,visibility 0s linear var(--az-motion-mid)!important;
  animation:none!important;
}
.faq-contact .faq-answer-inner{min-height:0;overflow:hidden}
.faq-contact .faq-item.open .faq-answer{
  grid-template-rows:1fr;opacity:1;visibility:visible;padding-bottom:18px!important;
  transition:grid-template-rows var(--az-motion-mid) var(--az-motion-ease-in-out),opacity var(--az-motion-fast) ease,visibility 0s!important;
}
.faq-contact .faq-item button span{display:inline-block;transition:transform var(--az-motion-fast) var(--az-motion-ease-out)}
.faq-contact .faq-item.open button span{transform:rotate(45deg)}
.faq-contact .faq-item button:focus-visible{outline:2px solid var(--blue)!important;outline-offset:3px}
/* CNTC-001/002/004/005/006: no fake links or delayed calls. */
.contact-side a:focus-visible,.contact-side button:focus-visible,
.contact-bottom a:focus-visible,.footer a:focus-visible{
  outline:2px solid var(--blue)!important;outline-offset:3px;
}
.contact-side .contact-arrow,.footer a svg{transition:transform var(--az-motion-fast) var(--az-motion-ease-out)}
.contact-side a:is(:hover,:focus-visible) .contact-arrow{transform:translate(2px,-2px)}
/* MOD-001/002/003: composited modal entrance; no timeout in close interaction. */
.modal .modal-panel{transition:opacity var(--az-motion-modal) var(--az-motion-ease-out),transform var(--az-motion-modal) var(--az-motion-ease-out)!important}
.modal.open .modal-panel{transform:translateY(0) scale(1)!important;opacity:1!important}
.modal [data-close-modal]:focus-visible{outline:2px solid var(--blue)!important;outline-offset:3px}
/* FOOT-001/002/004: subtle footer link response. */
.footer a{transition:color var(--az-motion-fast) ease,opacity var(--az-motion-fast) ease!important}
.footer a:is(:hover,:focus-visible){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
/* Small devices: no phantom hover, pause continuous decorative layers. */
@media(hover:none), (pointer:coarse){
  .services .service-card:is(:hover,:focus-visible),
  .gallery .gallery-item:is(:hover,:focus-visible),
  .gallery .gallery-item.reveal:is(:hover,:focus-visible){transform:none!important}
  .contact-side a:active{opacity:.88}
  .hero .azzda-photo-track{animation-play-state:paused!important}
}
@media(max-width:540px){
  .process .az-process-pause{top:10px;right:12px;font-size:.70rem;padding:7px 10px}
}
/* Reduced motion: all new effects are immediate; site content and controls remain. */
@media(prefers-reduced-motion:reduce){
  html.js-motion .reveal,html.js-motion .reveal:not(.gallery-item){opacity:1!important;transform:none!important;transition:none!important}
  .hero-copy.is-visible :is(h1,.hero-text,.hero-actions){animation:none!important}
  .site-bg .bg-square,.site-bg .bg-line,
  .hero .hero-image,.hero .azzda-photo-track,
  .icon-strip .azzda-photo-track,.process .photo-wall-track{animation:none!important}
  .hero .btn,.nav-meta .btn,.contact-side .btn,
  .services .service-card,.services .service-card img,.services .services-ambient,
  .transport .media-tile,.transport .media-tile img,.transport .transport-ambient,
  .stats-products .product-card img,.stats-products .product-track,
  .gallery .gallery-item,.gallery .gallery-item.reveal,.gallery .gallery-item img,
  .faq-contact .faq-answer,.faq-contact .faq-item button span,.modal .modal-panel,
  .footer a,.header,.process .az-process-pause{animation:none!important;transition:none!important}
  .faq-contact .faq-answer{visibility:hidden!important;opacity:0!important}
  .faq-contact .faq-item.open .faq-answer{visibility:visible!important;opacity:1!important}
  ::view-transition-old(az-gallery),::view-transition-new(az-gallery){animation:none!important}
}
/* NAV-003 and CORE-006: compact mobile navigation, smooth but never blocking. */
@media(max-width:920px){
  .header .nav{transition:opacity var(--az-motion-fast) ease,transform var(--az-motion-mid) var(--az-motion-ease-out)!important}
  .header .nav a:focus-visible{outline:2px solid var(--blue)!important;outline-offset:0}
}
/* Sticky header never hides headings when using section navigation. */
.hero[id],.section[id],.compare-section[id],.faq-contact[id]{scroll-margin-top:132px}

/* With JavaScript disabled all FAQ answers remain readable; no interaction dependency. */
html:not(.az-js-enabled) .faq-contact .faq-answer{
  display:block!important;visibility:visible!important;opacity:1!important;
  grid-template-rows:1fr!important;padding-bottom:18px!important;
}
