/* ベース */
:root {
    --bg: #f7f4ef;
    --text: #333;
    --accent: #d65a2f;
    --dark: #1e1e1e;
  }
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif;
    color: var(--text);
    background: var(--bg);
    line-height: 1.7;
    scroll-behavior: smooth;
    font-family: 'Noto Serif JP';
  }
  img {
    max-width: 100%;
    display: block;
  }
  
  /* 固定ヘッダー */
  .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  background: url("images/header-bg.jpg") center/cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.5rem;
  z-index: 1000;
  backdrop-filter: none;
}
.site-header .logo img {
  height: 20px;        /* ロゴの高さを統一 */
  display: block;
}
  .site-header .logo {
    font-weight: 700;
    letter-spacing: 0.04em;
  }
  .nav {
    display: flex;
    gap: 1rem;
  }
  .nav a {
    position: relative;
    text-decoration: none;
    color: #000;
    font-size: 0.9rem;
  }
  .nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px; /* テキスト下に余白 */
  width: 100%;
  height: 1px;
  background-color: #000; /* 下線色（お好みで変更可能） */
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}

.nav a:hover::after {
  transform: scaleX(1);
}
  .nav-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 1.4rem;
  }
  
  /* ヒーロー */
  .hero {
  position: relative;
  height: 100vh;
  overflow: hidden;
}

.slider {
  position: absolute;
  inset: 0;
  background: #000;
  overflow: hidden;
}

.slider .slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  animation-name: fadeSlide;
  animation-duration: 96s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  animation-play-state: paused;
}

/* スライド画像と順番 */
.slider .slide1  { background-image: url("images/slide1.jpg");  animation-delay: 0s; }
.slider .slide2  { background-image: url("images/slide2.jpg");  animation-delay: 6s; }
.slider .slide3  { background-image: url("images/slide3.jpg");  animation-delay: 12s; }
.slider .slide4  { background-image: url("images/slide4.jpg");  animation-delay: 18s; }
.slider .slide5  { background-image: url("images/slide5.jpg");  animation-delay: 24s; }
.slider .slide6  { background-image: url("images/slide6.jpg");  animation-delay: 30s; }
.slider .slide7  { background-image: url("images/slide7.jpg");  animation-delay: 36s; }
.slider .slide8  { background-image: url("images/slide8.jpg");  animation-delay: 42s; }
.slider .slide9  { background-image: url("images/slide9.jpg");  animation-delay: 48s; }
.slider .slide10 { background-image: url("images/slide10.jpg"); animation-delay: 54s; }
.slider .slide11 { background-image: url("images/slide11.jpg"); animation-delay: 60s; }
.slider .slide12 { background-image: url("images/slide12.jpg"); animation-delay: 66s; }
.slider .slide13 { background-image: url("images/slide13.jpg"); animation-delay: 72s; }
.slider .slide14 { background-image: url("images/slide14.jpg"); animation-delay: 78s; }
.slider .slide15 { background-image: url("images/slide15.jpg"); animation-delay: 84s; }
.slider .slide16 { background-image: url("images/slide16.jpg"); animation-delay: 90s; }


/* 間なしクロスフェード */
@keyframes fadeSlide {
  0%   { opacity: 0; }
  3%   { opacity: 1; }   /* 素早くフェードイン */
  27%  { opacity: 1; }   /* 表示維持 */
  30%  { opacity: 0; }   /* 素早くフェードアウト */
  100% { opacity: 0; }
}

.slider::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1;
  pointer-events: none;
}

.hero-overlay {
  position: relative;
  z-index: 2;
  /* ここをフルサイズにして中央寄せにする */
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;     /* 縦中央 */
  justify-content: center; /* 横中央 */
  text-align: center;
  padding: 0;
  background: none;        /* 背景グラデを消すなら */
}


/* 暗くしたい場合だけ！色を薄くしたくないならここを0.3〜0.4で調整 */
.slider::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1;
  pointer-events: none;
}
/* ===== スライドショーここまで ===== */

/* ロゴを画像より上に出す */
.hero-overlay {
  position: relative;
  z-index: 2; /* ← overlayより上 */
  height: 100%;
  display: grid;
  place-items: center;
  text-align: center;
}
  .hero-logo {
    width: min(280px, 70vw);
    margin-bottom: 1rem;
  }
  /* タブレット以上 */
@media (min-width: 768px) {
  .hero-logo {
    width: 380px;
  }
}
/* PC大きめ */
@media (min-width: 1024px) {
  .hero-logo {
    width: 520px;
  }
}
  
  /* 共通セクション */
  .section {
    padding: 4.5rem 1.5rem;
    text-align: center;
  }
  .inner {
    max-width: 1100px;
    margin: 0 auto;
  }
  .section h2 {
    margin-bottom: 1.5rem;
    font-size: clamp(1.6rem, 2.4vw, 2.1rem);
  }
  .section-about {
    
    background-size: cover;
    background-position: center;
  }
  .statement {
    background: none;
    padding: 1.5rem;
    border-left: none;
    margin-bottom: 2rem;
    font-weight: bold;
  }
  .event-info {
  display: inline-block;    /* 中央に置きつつ中身は左寄せ */
  text-align: left;
}
.event-info h3 {
  text-align: center;
}
  .event-info ul {
  list-style: none;
  padding: 0;
  margin: 0;
  font-weight: bold;
  text-align: left;
}

.event-info li {
  display: flex;
  padding-left: 1.5rem;
  gap: 0rem;          /* ラベルと内容の間 */
  align-items: flex-start;
  margin-bottom: 0.4rem;
}

/* ラベル部分（開催日：とか会場：とか） */
.event-info li strong {
  display: inline-block;
  min-width: 7.5rem;     /* ← ここで「左列の幅」を決める */
  font-weight: 700;
}

/* 2行以上になっても左で揃える */
.event-info li span {
  flex: 1;
}
  .event-info li + li {
    margin-top: 0.4rem;
  }
  
  /* アーカイブ */
  .section-archive {
    
    background-size: cover;
    background-position: center;
  }
  .archive-lead {
    margin-bottom: 2rem;
  }
  .archive-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
  .archive-item h3 {
    margin-bottom: 0.7rem;
  }
  .video-wrap {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
  }
  .video-wrap iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border: 0;
  }
  
  /* クレジット */
  .section-credit .credit-columns {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1.2fr 1.6fr 1.2fr;  /* ←ここで中央をガッと広げる */
  text-align: left;
}

/* 各カラム内のタイトル（h3）は中央のままでも良い場合はこのまま */
.section-credit h3 {
  text-align: center;
  margin-bottom: 0.5rem;
}

/* 各カラムの中のpタグを左寄せ */
.section-credit p {
  text-align: left;
  line-height: 1.7;
  margin: 0;
}
.section-credit p br {
  display: none; /* いったんbrを消す */
}
.credit-columns {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1.2fr 1.6fr 1.2fr;  /* ← 中央（プロジェクトチーム）を広く */
}

/* 中身を行そろえにする */
.credit-block .credit-lines {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.credit-row {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;      /* 複数行でも上をそろえる */
}

.credit-label {
  min-width: 6.5rem;            /* ←揃えたい幅（調整してください） */
  font-weight: 700;
  flex: 0 0 6.5rem;
}

.credit-body {
  flex: 1;
  line-height: 1.5;
}

/* 参加アーティストだけはちょっと幅を広くしておくと揃いやすい */
.credit-artists .credit-label {
  min-width: 3.2rem;            /* 2022 / 2023 / 2024 用にちょい狭め */
  flex: 0 0 3.2rem;
}

/* 小さい画面では縦に崩れても読みやすく */
@media (max-width: 600px) {
  .credit-row {
    flex-direction: row;    /* 基本は横 */
    flex-wrap: wrap;
  }
  .credit-label {
    flex: 0 0 4.5rem;
  }
}

/* プロジェクトチームだけ項目幅を広くする */
.credit-team .credit-label {
  min-width: 12rem;   /* ←お好みで 8.5rem～10rem の間で */
  flex: 0 0 12rem;
}
/* 主催・後援・助成だけ隙間を詰める（約1/3に） */
.credit-org .credit-row {
  gap: 0.25rem;  /* 0.75rem の 1/3 くらい */
}
.credit-team .credit-body {
  flex: 1 1 auto;          /* ← これが一番効く */
  max-width: none;         /* ← 1100pxとかに制限されないようにしておく */
}
.credit-org .credit-label {
  min-width: 3rem;
  flex: 0 0 3rem;
}
.credit-org .credit-body {
  flex: 1 1 auto;
  max-width: none; 
}

@media (max-width: 1100px) {
  .section-credit .credit-columns {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  }
}

  
  /* SNS紹介 */
  .section-sns {
    background: #f1efe9;
    text-align: center;
  }
  .section-sns h2 {
  margin-bottom: 1.5rem;
}
.section-sns .insta-wrap {
  display: flex;
  flex-wrap: wrap;          /* 幅が狭くなったら折れる */
  gap: 1rem;
  justify-content: center;  /* 中央に寄せて並べる */
}
  .section-sns .instagram-media {
  flex: 1 1 320px;          /* 最低320pxで、あとは伸びる */
  max-width: 360px !important;
  width: 100% !important;
  margin: 0;                /* インラインstyleでつくmarginを打ち消し */
}
  
  
  /* お問い合わせ */
  .section-contact {
    text-align: center;
  }
  .btn {
    display: inline-block;
    background: var(--accent);
    background-color: #000;
    color: #fff;
    text-decoration: none;
    padding: 0.9rem 1.5rem;
    border-radius: 9999px;
    font-weight: 600;
  }
  .btn:hover {
  background-color: #666;  /* 濃いグレー（好みで調整可） */
}
  
  /* フッター */
  .site-footer {
    text-align: center;
    padding: 1rem 1.5rem 1rem;
    font-size: 0.85rem;
    color: #fff;
    background: url("images/header-bg.jpg") center/cover no-repeat;
  }
  
  /* レスポンシブ（スマホ） */
  @media (max-width: 900px) {
    .nav {
      position: absolute;
      top: 56px;
      right: 0;
      background: rgba(247, 244, 239, 0.95);
      flex-direction: column;
      gap: 0;
      min-width: 190px;
      display: none;
    }
    .nav a {
      padding: 0.7rem 1rem;
      border-bottom: 1px solid rgba(0,0,0,0.04);
    }
    .nav.nav-open {
      display: flex;
    }
    .nav-toggle {
      display: block;
    }
    .hero {
      min-height: 520px;
    }
    .statement {
      margin-right: 0;
    }
    .sns-embed iframe {
      min-height: 460px;
    }
  }
  