/* Website Design Agency — custom styles (supplements Tailwind CDN) */

html { scroll-behavior: smooth; }

/* Line clamp utilities (Tailwind CDN core includes these in v3.3+, kept as fallback) */
.line-clamp-1, .line-clamp-2, .line-clamp-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.line-clamp-1 { -webkit-line-clamp: 1; }
.line-clamp-2 { -webkit-line-clamp: 2; }
.line-clamp-3 { -webkit-line-clamp: 3; }

/* FAQ accordion */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details > summary .faq-chevron { transition: transform .25s ease; }
details[open] > summary .faq-chevron { transform: rotate(180deg); }
details[open] > summary { color: #1d4ed8; }

/* Mega menu hover (desktop) */
@media (min-width: 1024px) {
  .group-mega .mega-panel {
    opacity: 0; visibility: hidden; transform: translateY(8px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s;
  }
  .group-mega:hover .mega-panel, .group-mega:focus-within .mega-panel {
    opacity: 1; visibility: visible; transform: translateY(0);
  }
}

/* Focus visibility for a11y */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid #2563eb; outline-offset: 2px;
}

/* Subtle card hover lift */
.hover-lift { transition: transform .2s ease, box-shadow .2s ease; }
.hover-lift:hover { transform: translateY(-3px); }

/* Star ratings */
.stars i { color: #f59e0b; }

/* Print cleanliness */
@media print {
  header, footer, .lead-form, .no-print { display: none !important; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
