/* Extra styles — blog, accessibility, homepage enhancements */

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sr-only:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}

.blog-content h2{margin-top:2rem;font-size:1.25rem;font-weight:600;color:#0f172a}
.blog-content p{line-height:1.75;margin-top:1rem}
.blog-content a{color:#ea580c;text-decoration:underline}
.blog-content ul,.blog-content ol{margin-top:1rem;padding-left:1.5rem}

.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.portfolio-card.hidden{display:none}

/* Hero gradient glow */
.hero-glow{
  background:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(234,88,12,0.22) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 90% 80%, rgba(234,88,12,0.08) 0%, transparent 50%);
}

/* Section heading accent */
.section-heading h2::after{
  content:'';
  display:block;
  width:3rem;
  height:3px;
  margin:0.75rem auto 0;
  border-radius:2px;
  background:linear-gradient(90deg,#ea580c,#f97316);
}

/* Stat counter */
.stat-counter.is-animating{opacity:1}

/* Stats ribbon — overlaps hero, 4-up row on desktop */
.stats-ribbon-wrap{
  position:relative;
  z-index:20;
  margin-top:-2.75rem;
  padding:0 1rem 2.5rem;
}

.stats-ribbon{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:72rem;
  margin:0 auto;
  background:#fff;
  border-radius:1rem;
  border:1px solid rgba(15,23,42,0.07);
  box-shadow:0 18px 48px rgba(15,23,42,0.1),0 4px 12px rgba(15,23,42,0.04);
  overflow:hidden;
}

.stats-ribbon__item{
  padding:1.5rem 1rem;
  text-align:center;
  position:relative;
  transition:background .25s ease;
}

.stats-ribbon__item:hover{
  background:rgba(234,88,12,0.04);
}

/* dividers — mobile 2x2 */
.stats-ribbon__item:nth-child(1)::after,
.stats-ribbon__item:nth-child(3)::after{
  content:'';
  position:absolute;
  top:22%;
  right:0;
  width:1px;
  height:56%;
  background:linear-gradient(180deg,transparent,#e2e8f0,transparent);
}

.stats-ribbon__item:nth-child(1)::before,
.stats-ribbon__item:nth-child(2)::before{
  content:'';
  position:absolute;
  left:10%;
  right:10%;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,#e2e8f0,transparent);
}

@media (min-width:768px){
  .stats-ribbon{grid-template-columns:repeat(4,minmax(0,1fr))}

  .stats-ribbon__item::before{display:none}

  .stats-ribbon__item:nth-child(1)::after,
  .stats-ribbon__item:nth-child(2)::after,
  .stats-ribbon__item:nth-child(3)::after{
    content:'';
    position:absolute;
    top:22%;
    right:0;
    width:1px;
    height:56%;
    background:linear-gradient(180deg,transparent,#e2e8f0,transparent);
  }
}

.stats-ribbon__value{
  margin:0;
  font-size:2rem;
  font-weight:800;
  line-height:1;
  color:#0f172a;
  letter-spacing:-0.02em;
}

.stats-ribbon__plus{
  color:#ea580c;
}

.stats-ribbon__label{
  margin:0.45rem 0 0;
  font-size:0.8rem;
  font-weight:500;
  line-height:1.35;
  color:#64748b;
}

@media (min-width:640px){
  .stats-ribbon-wrap{margin-top:-3.25rem;padding:0 1.5rem 3rem}
  .stats-ribbon__item{padding:1.85rem 1.25rem}
  .stats-ribbon__value{font-size:2.35rem}
  .stats-ribbon__label{font-size:0.875rem}
}

/* WhatsApp float pulse */
.whatsapp-float{
  animation:wa-pulse 2.5s ease-in-out infinite;
}
@keyframes wa-pulse{
  0%,100%{box-shadow:0 4px 14px rgba(37,211,102,0.4)}
  50%{box-shadow:0 4px 24px rgba(37,211,102,0.65)}
}

/* Mobile sticky bar — prevent content hidden behind bar */
@media (max-width:767px){
  body{padding-bottom:4.5rem}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .whatsapp-float{animation:none}
  .service-card,.portfolio-home-card{transition:none}
}
