/* Accessibility: visible focus ring for interactive cards */
.focus-ring,
.focus-ring:focus,
.focus-ring:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 171, 0, 0.5), 0 0 0 6px #fff; /* primary-ish ring with offset */
}

/* Utility class to apply when needed */
.ring-primary {
  box-shadow: 0 0 0 3px rgba(34, 122, 255, 0.5), 0 0 0 6px #fff;
}
/*
 * Beggy - CSS Styles
 *
 * This project uses Tailwind CSS via CDN for styling.
 * See the HTML templates for Tailwind utility classes.
 *
 * This file is kept for any custom styles that may be needed
 * beyond Tailwind's utility classes.
 */

/* Text Size Accessibility Mode */
body.text-large {
  font-size: 112.5%; /* 18px base instead of 16px */
}

body.text-large h1 {
  font-size: 2.25rem; /* larger than default 2rem */
}

body.text-large h2 {
  font-size: 1.875rem; /* larger than default 1.5rem */
}

body.text-large h3 {
  font-size: 1.5rem; /* larger than default 1.25rem */
}

body.text-large .text-xs {
  font-size: 0.875rem; /* slightly larger */
}

body.text-large .text-sm {
  font-size: 1rem; /* slightly larger */
}

body.text-large .text-base {
  font-size: 1.125rem; /* slightly larger */
}

body.text-large .text-lg {
  font-size: 1.25rem; /* slightly larger */
}

body.text-large .text-xl {
  font-size: 1.5rem; /* slightly larger */
}

body.text-large .text-2xl {
  font-size: 1.875rem; /* slightly larger */
}

/* Header Authentication State Management */
/* All visibility is controlled by body class: user-logged-in or user-logged-out */

/* Logged-out specific elements (only visible when logged out) */
.auth-logged-out {
  display: none;
}

body.user-logged-out .auth-logged-out {
  display: inline-block;
}

/* Logged-in specific elements (only visible when logged in) */
.auth-logged-in {
  display: none;
}

body.user-logged-in .auth-logged-in {
  display: inline-block;
}

/* Desktop navigation (hidden on mobile, flex on desktop) */
@media (min-width: 768px) {
  .nav-desktop {
    display: flex !important;
  }
  
  .nav-mobile-menu {
    display: none !important;
  }
}

/* Mobile navigation (visible on mobile, hidden on desktop) */
@media (max-width: 767px) {
  .nav-desktop {
    display: none !important;
  }
  
  .nav-mobile-menu {
    display: flex !important;
  }
}

/* Image Carousel Styles */
.image-carousel {
  position: relative;
  background: #f5f5f4;
  min-height: 400px;
}

.carousel-container {
  position: relative;
  width: 100%;
  height: 100%;
}

.carousel-image {
  display: none;
  width: 100%;
  height: auto;
  max-height: 600px;
  object-fit: contain;
  transition: opacity 0.3s ease-in-out;
}

.carousel-image.active {
  display: block;
}

/* Navigation Buttons */
.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.carousel-btn:hover {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.carousel-btn:active {
  transform: translateY(-50%) scale(0.95);
}

.carousel-prev {
  left: 16px;
}

.carousel-next {
  right: 16px;
}

.carousel-btn svg {
  color: #292524;
}

/* Image Counter */
.carousel-counter {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 500;
  z-index: 10;
}

/* Dot Indicators */
.carousel-dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}

.carousel-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  border: 2px solid rgba(255, 255, 255, 0.8);
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}

.carousel-dot:hover {
  background: rgba(255, 255, 255, 0.8);
  transform: scale(1.2);
}

.carousel-dot.active {
  background: rgba(255, 171, 0, 0.9);
  border-color: rgba(255, 171, 0, 1);
}

/* Mobile Responsiveness */
@media (max-width: 640px) {
  .carousel-btn {
    width: 40px;
    height: 40px;
  }
  
  .carousel-prev {
    left: 8px;
  }
  
  .carousel-next {
    right: 8px;
  }
  
  .carousel-counter {
    top: 8px;
    right: 8px;
    font-size: 12px;
    padding: 4px 10px;
  }
  
  .carousel-dots {
    bottom: 8px;
  }
  
  .carousel-dot {
    width: 8px;
    height: 8px;
  }
}
