/* ============================================
   MAC 2026 - Responsive Styles (Mobile First)
   ============================================ */

/* ---- Mobile: < 576px ---- */
@media (max-width: 575.98px) {
  :root {
    --space-section: 3rem;
  }

  .hero__layout {
    flex-direction: column;
    gap: var(--space-xl);
  }

  .hero__logo-img {
    width: 180px;
  }

  .hero__text-col {
    text-align: center;
  }

  .hero__title {
    font-size: 2rem;
  }

  .hero__tagline {
    font-size: var(--fs-base);
  }

  .hero__info {
    flex-direction: column;
    justify-content: center;
    gap: var(--space-xs);
    font-size: var(--fs-sm);
  }

  .hero__info-divider {
    display: none;
  }

  .hero__actions {
    flex-direction: column;
    align-items: center;
  }

  .hero__actions .btn {
    width: 100%;
    max-width: 300px;
  }

  .about-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .about__organizer-card {
    position: relative;
    bottom: auto;
    left: auto;
    right: auto;
    margin-top: var(--space-lg);
  }

  .about__organizer-info {
    flex-direction: column;
    text-align: center;
  }

  .counters {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-md);
  }

  .counter__number {
    font-size: var(--fs-2xl);
  }

  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
  }

  .craft-extra__grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .desafio-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .desafio__highlights {
    grid-template-columns: 1fr;
    gap: var(--space-sm);
  }

  .venue-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .venue__map iframe {
    height: 300px;
  }

  .countdown {
    gap: var(--space-md);
  }

  .countdown__number {
    font-size: var(--fs-2xl);
    min-width: 60px;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-item--featured {
    grid-column: span 1;
    grid-row: span 1;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .footer__bottom .flex-between {
    flex-direction: column;
    text-align: center;
    gap: var(--space-xs);
  }

  .schedule-days {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .ticket-card__header {
    flex-direction: column;
    gap: var(--space-sm);
    text-align: center;
  }

  .section__title::after {
    width: 60px;
  }

  .container {
    padding: 0 var(--space-md);
  }
}

/* ---- Tablet: 576px - 767px ---- */
@media (min-width: 576px) and (max-width: 767.98px) {
  .about-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .about__organizer-card {
    position: relative;
    bottom: auto;
    left: auto;
    right: auto;
    margin-top: var(--space-lg);
  }

  .grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .craft-extra__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .desafio-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .venue-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-xl);
  }

  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-item--featured {
    grid-column: span 2;
    grid-row: span 1;
  }
}

/* ---- Mobile & Tablet: < 768px (Hamburger Menu) ---- */
@media (max-width: 767.98px) {
  .navbar__menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(27, 58, 75, 0.97);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-md);
    transform: translateX(100%);
    transition: transform 0.4s var(--ease-out);
    z-index: var(--z-overlay);
  }

  .navbar__menu--open {
    transform: translateX(0);
  }

  .navbar__menu .navbar__link {
    font-size: var(--fs-xl);
    font-weight: var(--fw-semibold);
    padding: var(--space-sm) var(--space-lg);
  }

  .navbar__hamburger {
    display: flex;
  }

  .navbar__cta {
    display: none;
  }

  .scroll-indicator {
    bottom: 25px;
  }
}

/* ---- Tablet Landscape: 768px - 1023px ---- */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .about-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl);
  }

  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-xl);
  }

  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .navbar__link {
    font-size: var(--fs-xs);
    padding: var(--space-xs) var(--space-2xs);
  }
}

/* ---- Desktop: 1024px+ ---- */
@media (min-width: 1024px) {
  .navbar__cta {
    display: inline-flex;
  }

  .gallery-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .gallery-item--featured {
    grid-column: span 2;
    grid-row: span 2;
  }
}

/* ---- Large Desktop: 1200px+ ---- */
@media (min-width: 1200px) {
  .container {
    padding: 0 var(--space-xl);
  }
}

/* ---- Hover support (non-touch) ---- */
@media (hover: hover) {
  .gallery-item:hover img {
    transform: scale(1.08);
  }

  .gallery-item:hover::after {
    opacity: 1;
  }

  .gallery-item:hover .gallery-item__overlay {
    transform: translateY(0);
    opacity: 1;
  }
}

/* ---- Touch devices: show overlay always ---- */
@media (hover: none) {
  .gallery-item::after {
    opacity: 0.5;
  }

  .gallery-item__overlay {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---- Print ---- */
@media print {
  .navbar,
  .hero__sparks,
  .scroll-indicator,
  .lightbox,
  .parallax-container,
  .section-divider {
    display: none !important;
  }

  .section {
    padding: 2rem 0;
    break-inside: avoid;
  }

  body {
    color: #000;
    background: #fff;
  }
}
