/* ==========================================================================
   Leather Repair South Florida — effects & animation layer
   Performance + mobile safe: only transform/opacity, IntersectionObserver
   driven (NO scroll-position handlers), and gated by prefers-reduced-motion.
   ========================================================================== */

/* ---- keyframes ---- */
@keyframes ltShimmer { 0% { left:-60%; } 100% { left:140%; } }
@keyframes ltPulse   { 0%,100% { box-shadow:0 10px 26px rgba(226,27,27,.40);} 50% { box-shadow:0 12px 42px rgba(226,27,27,.85);} }
@keyframes ltFloat   { 0%,100% { transform:translateY(0);} 50% { transform:translateY(-6px);} }

/* ==========================================================================
   Scroll reveal (only hides content when motion is allowed, so reduced-motion
   users always see everything)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  .lt-reveal{
    opacity:0;
    transform:translateY(32px);
    will-change:opacity, transform;
    transition:opacity .75s cubic-bezier(.16,.84,.34,1),
               transform .75s cubic-bezier(.16,.84,.34,1);
  }
  .lt-reveal.lt-zoom { transform:scale(.92); }
  .lt-reveal.lt-left { transform:translateX(-42px); }
  .lt-reveal.lt-right{ transform:translateX(42px); }
  .lt-reveal.is-visible{ opacity:1; transform:none; }
}

/* ==========================================================================
   Hover lifts / image zoom
   ========================================================================== */
.lt-step, .lt-ig-card, .news_box{
  transition:transform .38s cubic-bezier(.16,.84,.34,1), box-shadow .38s ease;
}
.lt-step:hover{
  transform:translateY(-8px);
  box-shadow:0 20px 44px rgba(0,0,0,.5);
  border-color:#e21b1b;
}
.lt-ig-card:hover{ transform:translateY(-6px); }
.news_box figure{ overflow:hidden; }
.news_box figure img{ transition:transform .65s cubic-bezier(.16,.84,.34,1); }
.news_box:hover figure img{ transform:scale(1.09); }
.news_box:hover{ box-shadow:0 16px 38px rgba(0,0,0,.18); }

/* ==========================================================================
   CTA buttons — shimmer sweep + pulse glow
   ========================================================================== */
.lt-quote-open, .lt-quote-submit{ position:relative; overflow:hidden; }
.lt-quote-open::after, .lt-quote-submit::after{
  content:""; position:absolute; top:0; left:-60%; width:45%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-20deg); pointer-events:none;
}
@media (prefers-reduced-motion: no-preference){
  .lt-quote-open{ animation:ltPulse 2.6s ease-in-out infinite; }
  .lt-quote-open:hover::after, .lt-quote-submit:hover::after{ animation:ltShimmer .9s ease; }
}

/* ==========================================================================
   Animated heading underline
   ========================================================================== */
.lt-quote-title, .lt-ig-head h2, .section_head_widget h2{ position:relative; display:inline-block; }
.lt-quote-title::after, .lt-ig-head h2::after, .section_head_widget h2::after{
  content:""; display:block; height:4px; width:0; margin:14px auto 0; border-radius:2px;
  background:linear-gradient(90deg,#e21b1b,#ff5a3c); transition:width .85s ease .15s;
}
.lt-quote-band.is-visible .lt-quote-title::after,
.lt-ig-head.is-visible h2::after,
.section_head_widget.is-visible h2::after{ width:92px; }

/* ==========================================================================
   Stats strip (animated count-up)
   ========================================================================== */
.lt-stats{ background:#111; color:#fff; padding:50px 0; text-align:center; }
.lt-stats-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:28px; max-width:1000px; margin:0 auto; }
.lt-stat{ flex:1 1 180px; max-width:240px; }
.lt-stat-num{
  font-family:'Oswald',sans-serif; font-weight:700; font-size:54px; line-height:1; color:#e21b1b;
}
.lt-stat-num .lt-suffix{ color:#fff; }
.lt-stat-label{
  font-family:'Lato',sans-serif; font-size:14px; letter-spacing:.05em; text-transform:uppercase;
  color:#b9b9b9; margin-top:10px;
}

/* ==========================================================================
   Floating mobile "Free Quote" button (injected by lt-effects.js)
   ========================================================================== */
.lt-fab{
  position:fixed; right:16px; bottom:16px; z-index:2147482000;
  display:inline-flex; align-items:center; gap:6px;
  background:#e21b1b; color:#fff; border:0; cursor:pointer; text-decoration:none;
  font-family:'Oswald',sans-serif; font-weight:700; font-size:15px; letter-spacing:.02em; text-transform:uppercase;
  padding:13px 20px; border-radius:50px;
  box-shadow:0 10px 30px rgba(226,27,27,.55);
}
@media (prefers-reduced-motion: no-preference){
  .lt-fab{ animation:ltPulse 2.4s ease-in-out infinite, ltFloat 3.2s ease-in-out infinite; }
}
@media (min-width:992px){ .lt-fab{ display:none; } }  /* phones & tablets only */

@media (max-width:600px){
  .lt-stat-num{ font-size:44px; }
  .lt-stats-grid{ gap:22px; }
}
