/* 共通スタイル（scroll-area） */
* {
  box-sizing: border-box;
}
[v-cloak] {
  visibility: hidden;
}
body {
  margin: 0;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f3f4f6;
  color: #111;
  font-family: sans-serif;
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
  overflow: hidden;
}

#app {
  display: contents;
}

.demo {
  width: min(420px, 100%);
  min-width: 0;
}

@media (width <= 576px) {
  body {
    padding: 16px;
  }
  .demo {
    width: 100%;
    max-width: 100%;
  }
}

.swipeTabs {
  width: 100%;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;

  .tabbar {
    background: #fff;
    border-bottom: 2px solid #e5e7eb;
    padding: 8px;

    .row {
      position: relative;
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      padding: 0;
      margin: 0;
    }

    .tab {
      position: relative;
      z-index: 1;
      user-drag: none;
      -webkit-user-drag: none;
      user-select: none;
      -webkit-user-select: none;

      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 42px;
      font-size: 1.2rem;
      padding: 4px 20px;

      border-radius: 999px;
      text-decoration: none;
      color: #555;
      font-weight: bold;
      transition: color 0.2s;

      &:hover {
        color: #3223b3;
      }
    }
  }

  .slides {
    display: flex;
    flex-wrap: nowrap;

    .panel {
      flex: 0 0 100%;
      scroll-snap-align: start;
      padding: 16px;
      min-height: 400px;

      h2 {
        margin: 0 0 16px;
        font-size: 1.125rem;
        font-weight: bold;
      }

      p {
        margin: 0 0 16px;
        font-size: 0.875rem;
        line-height: 1.6;
        color: #444;
      }

      .photo-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
        gap: 12px;
        margin-top: 16px;

        .photo-item {
          position: relative;
          width: 100%;
          aspect-ratio: 1;
          border-radius: 8px;
          overflow: hidden;
          background: #e5e7eb;

          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
          }
        }
      }
    }
  }
}
