/* ==============================================
   mobile.css  —  GOT THE LIFE
   スマートフォン / タブレット 対応スタイル
   768px 以下に適用
   ============================================== */

/* はみ出し防止（モバイル全体） */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

@media (max-width: 768px) {

    /* 本文フォントウェイト全体変更 */
  .work-desc        { font-weight: 400; }
  .about-text       { font-weight: 400; }
  .contact-desc,
  .contact-desc2    { font-weight: 400; }


  /* =============================================
     HEADER  — ナビそのまま横並び（ハンバーガーなし）
     ============================================= */
  .header {
    padding: 12px 20px;
    overflow: hidden;  /* ヘッダー内のはみ出しを防ぐ */
  }

  .logo img {
    width: 56px;
    height: 56px;
    margin-left: 0 !important;  /* PCの margin-left: 100px を強制リセット */
  }

  /* ハンバーガーボタンは完全非表示 */
  .hamburger {
    display: none !important;
  }

  /* ナビは横並びのまま、サイズだけ縮小 */
  .nav {
    display: flex !important;
    position: static;
    background: none;
    z-index: auto;
  }

  .nav ul {
    flex-direction: row;
    gap: 16px;
    align-items: center;
  }

  .nav a {
    font-size: 14px;
    letter-spacing: 1.5px;
    color: #9c8f7a;
  }
/* =============================================
   FIRST VIEW — 縦積み（テキスト → 写真）
   ============================================= */
.fv {
  min-height: auto;
}

.fv-inner {
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 0 24px;
}

.fv-deco-circle {
  width: 150vw;
  top: -60vw;
  left: -35vw;
}

.fv-text {
  padding: 110px 0 0;
}

.fv-title {
  white-space: normal;      /* モバイルは改行を許可 */
  font-size: 22px;
  line-height: 1.9;
  margin-bottom: 16px;
  text-align: center;
}

.fv-lead {
  font-size: 13px;
  line-height: 2.2;
  text-align: center;
}

.fv-photo {
  width: min(70vw, 320px);
}

  /* =============================================
     WORKS SECTION
     ============================================= */
  .works {
    padding-bottom: 80px;
  }

  .works-inner {
    padding: 0 20px;
  }

  .works-heading {
    padding-top: 64px;
    margin-bottom: 28px;
  }

  .works-heading-title {
    letter-spacing: 6px;
  }

  .works-filter {
    gap: 20px;
    margin-bottom: 28px;
  }

  .work-row {
    padding: 40px 0 0;
  }

  /* ② 画像は横幅100%基準で自然な高さに（aspect-ratioを解除） */
  .work-image-wrap {
    aspect-ratio: unset;
    height: auto;
  }

  .work-image {
    height: auto;
    object-fit: contain;
    object-position: center top;
  }

  .work-row-foot {
    margin-top: 20px;
    padding-bottom: 36px;
    gap: 0;
  }

  .work-num-col {
    width: 52px;
  }

  .work-index {
    font-size: 36px;
  }

  .work-info-col {
    padding-right: 12px;
  }

  .work-title {
    font-size: 20px;
  }

  .work-desc {
    font-size: 14px;
    line-height: 2;
  }

  .work-view-link {
    display: none;
  }

  /* =============================================
     ③ GRAPHIC GRID → スライドショー（モバイルのみ）
     ============================================= */

  /* masonry グリッドを解除してスライドコンテナに変更 */
  .graphic-grid {
    columns: unset;
    column-gap: unset;
    position: relative;
    width: 70%;           /* 幅を絞って小さめに */
    margin: 0 auto;       /* 中央寄せ */
    overflow: hidden;
  }

  /* 各アイテムを重ね表示（スライド） */
  .graphic-item {
    display: none;          /* JS で active のみ表示 */
    width: 100%;
    margin-bottom: 0;
    background-color: #ece8e3;
  }

  .graphic-item.slide-active {
    display: block;
  }

  /* スライド内画像：幅基準で表示、縦長になりすぎない上限を設定 */
  .graphic-item .work-image {
    width: 100%;
    max-width: 100%;
    max-height: 260px;      /* 縦長すぎる画像を抑制 */
    height: auto;
    object-fit: contain;    /* 画像全体が見えるように */
    object-position: center;
  }

  /* ドットインジケーター */
  .slide-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
  }

  .slide-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: #d4c9bc;
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background-color 0.25s ease;
  }

  .slide-dot.is-active {
    background-color: #6b5f52;
  }

  /* 左右スワイプ矢印 */
  .slide-prev,
  .slide-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(250,248,245,0.7);
    border: none;
    cursor: pointer;
    padding: 8px 12px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    color: #6b5f52;
    z-index: 10;
    line-height: 1;
  }

  .slide-prev { left: 0; }
  .slide-next { right: 0; }

  /* スライドラッパー（JSで.graphic-gridの外側に生成） */
  .graphic-slideshow-wrap {
    position: relative;
  }

  /* =============================================
     ABOUT SECTION
     ============================================= */
  .about {
    padding-bottom: 80px;
  }

  .about-inner {
    padding: 0 20px;
  }

  .about-heading {
    padding-top: 64px;
    margin-bottom: 40px;
  }

  .about-heading-title {
    letter-spacing: 6px;
  }

  .about-body {
    flex-direction: column;
    gap: 24px;
  }

  /* ④ 写真を小さく（幅50%）・中央寄せ、アニメーション無効 */
  .about-photo {
    width: 50%;
    margin: 0 auto;
  }

  .about-photo.js-reveal-left {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* テキストエリア：横スライドをフェードインに変更 */
  .about-content.js-reveal-right {
    transform: none !important;               /* 横移動をキャンセル */
    transition: opacity 0.9s ease !important; /* フェードのみ */
  }

  .about-name {
    font-size: clamp(20px, 5.5vw, 30px);
  }

  .about-text {
    font-size: 14px;
    line-height: 2;
  }

  /* =============================================
     CONTACT SECTION
     ============================================= */
  .contact {
    padding: 100px 24px;
  }

  .contact-title {
    letter-spacing: 8px;
  }

  .contact-desc {
    font-size: 14px;
  }

  .contact-btn {
    padding: 18px 40px;
    font-size: 13px;
    letter-spacing: 2px;
  }

}


/* ==============================================
   超小型スクリーン（480px以下）
   ============================================== */
@media (max-width: 480px) {

  .work-num-col {
    display: none;
  }

  .work-info-col {
    padding-right: 0;
  }

  /* 写真はさらに少し広げる */
  .about-photo {
    width: 65%;
    margin: 0 auto;
  }

  .fv-mobile {
    min-height: 500px;
  }

}
