/* ===== Responsive ===== */

/* Large tablets */
@media (max-width: 1024px) {
  .masonry-gallery {
    columns: 3;
  }
  .hero-title {
    font-size: 2.4rem;
  }
}

/* Tablet */
@media (max-width: 900px) {
  :root {
    --max-width: 100%;
  }
  .page-wrapper {
    padding: 0 var(--space-md) var(--space-lg);
  }
  .hero {
    min-height: 440px;
  }
  .hero-title {
    font-size: 2rem;
  }
  .masonry-gallery {
    columns: 3;
  }
  .island-map-grid {
    gap: var(--space-md);
  }
  .footer-info-grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
}

/* Mobile landscape */
@media (max-width: 768px) {
  .grid-2 {
    grid-template-columns: 1fr;
  }
  .hero {
    min-height: 380px;
  }
  .hero-content {
    padding: var(--space-2xl) var(--space-lg);
  }
  .hero-title {
    font-size: 1.75rem;
  }
  .hero-subtitle {
    font-size: 0.88rem;
  }
  .hero-decoration {
    display: none;
  }
  .nav-brand {
    font-size: 0.85rem;
  }
  .nav-links {
    overflow-x: auto;
    padding-bottom: 2px;
  }
  .region-card-header {
    height: 220px;
  }
  .region-card-title {
    font-size: 1.3rem;
  }
  .region-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
  .masonry-gallery {
    columns: 2;
  }
  .island-map-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-sm);
  }
  .footer-info-grid {
    grid-template-columns: 1fr;
  }
}

/* Mobile portrait */
@media (max-width: 480px) {
  body {
    font-size: 13px;
  }
  .hero {
    min-height: 340px;
  }
  .hero-title {
    font-size: 1.45rem;
  }
  .hero-badge {
    font-size: 0.65rem;
    padding: 5px 14px;
  }
  h2 {
    font-size: 1.25rem;
  }
  .card {
    padding: var(--space-lg);
  }
  .region-card-header {
    height: 180px;
    margin: calc(-1 * var(--space-lg));
    margin-bottom: var(--space-lg);
  }
  .region-card-title {
    font-size: 1.15rem;
  }
  .region-gallery {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xs);
  }
  .masonry-gallery {
    columns: 2;
    column-gap: var(--space-sm);
  }
  .nav-link {
    font-size: 0.68rem;
    padding: 5px 10px;
  }
  .island-map-grid {
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--space-xs);
  }
  .hero-meta {
    flex-direction: column;
    gap: var(--space-sm);
  }
  .hero-divider {
    display: none;
  }
  .back-to-top {
    right: var(--space-md);
    bottom: 70px;
    width: 38px;
    height: 38px;
  }
}
