/* ========================================
   Shared Components Across Kam² Sites
   ======================================== */

/* ========================================
   Font Awesome Icons - Shared Utilities
   ======================================== */

/* Ensure icons are always properly sized */
.fa, .fas, .far, .fal, .fab {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}

/* Icon sizing utilities */
.icon-xs { font-size: 0.75em; }
.icon-sm { font-size: 0.875em; }
.icon-lg { font-size: 1.25em; }
.icon-xl { font-size: 1.5em; }
.icon-2x { font-size: 2em; }
.icon-3x { font-size: 3em; }

/* ========================================
   Social Media Links
   Common pattern across wedding and consulting sites
   ======================================== */
.ww-social-links,
.social-icons {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
}

.ww-social-links a,
.social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.ww-social-links a:hover,
.social-icons a:hover {
  transform: scale(1.1);
  opacity: 0.8;
}

/* ========================================
   Card Components
   ======================================== */
.card {
  border-radius: 0.5rem;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
  transform: translateY(-4px);
}

.card-img-top {
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* ========================================
   Section Headers
   ======================================== */
.ww-title {
  text-align: center;
  margin-bottom: 2rem;
}

/* ========================================
   Responsive Utilities
   ======================================== */
@media (max-width: 768px) {
  .ww-social-links,
  .social-icons {
    gap: 0.5rem;
  }
}

/* ========================================
   Accessibility Enhancements
   ======================================== */

/* Focus visible styles */
a:focus-visible,
button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
  
  /* Allow essential UI transitions to remain functional */
  .button,
  .btn,
  a,
  input,
  select,
  textarea {
    transition-duration: 0.1s !important;
  }
}
