/* ==========================================================
   狭山池大遊祭 サイトスタイル（style.css）
   - 元のインライン style 属性を、同一内容ごとに 1 クラスへ集約
   - .cNNN : 通常時のスタイル / .hNN : ホバー時のスタイル（末尾にまとめて記載）
   - 画像パス (./assets/...) は、この CSS と同じ階層を基準にしています。
     style.css は HTML と同じフォルダに置いてください。
   ========================================================== */

/* ---------- Base ---------- */
html, body { margin: 0; padding: 0; }

/* アコーディオンや注意事項カードの開閉でページの高さが変わったときに、
   ブラウザが表示位置を自動調整して画面が勝手にスクロールしてしまう
   （scroll anchoring）のを防ぐ。 */
html {
  overflow-anchor: none;
  scroll-padding-top: calc(var(--header-h, 56px) + 8px);
}

/* ページ内リンク（例:「チケットを購入する」）でスムーズにスクロール。
   OSの「視差効果を減らす」設定がオンの人には、通常の即時移動にします。 */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
body { background: #FFF9F0; }
body.page-top { background: #EAF4FB; }
body.is-menu-open { overflow: hidden; }   /* メニュー展開中は背面スクロール停止 */

/* リンクの基本色（:where で詳細度を 0 にし、.cNNN 側の color を優先させる） */
:where(a) { color: #F97316; text-decoration: none; }
:where(a):hover { color: #7C3AED; }

/* お問い合わせフォーム */
input, textarea, select { font-family: inherit; }
input:focus, textarea:focus, select:focus { outline: 2px solid #F97316; outline-offset: 1px; }

/* 左右サイドの背景動画（任意・index.html のコメント参照） */
.side-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ==================== index.html ==================== */

/* ---------- index.html / Stage ---------- */

.c001 {
  display: grid;
  grid-template-columns: 1fr minmax(0, 480px) 1fr;
  align-items: stretch;
  background-color: #0F2A3A;
  background-image: repeating-linear-gradient(135deg, rgba(255,255,255,0.07) 0 14px, rgba(255,255,255,0.02) 14px 28px);
  background-attachment: fixed;
  overflow: hidden;
}

.c002 {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-shadow: inset -24px 0 48px -24px rgba(0,0,0,0.55);
}

.c003 {
  position: relative;
  z-index: 1;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  color: rgba(255,255,255,0.72);
  letter-spacing: 0.08em;
  text-align: center;
  line-height: 1.8;
  white-space: nowrap;
}

.c004 {
  container-type: inline-size;
  position: relative;
  z-index: 1;
  background: #FFFFFF;
  font-family: 'Open Sans', 'Zen Kaku Gothic New', system-ui, sans-serif;
  color: #1F2937;
  overflow: hidden;
}

/* ---------- index.html / FV / Hero ---------- */

.c005 {
  position: relative;
  background: url('./assets/fv.png') center top / cover no-repeat;
  padding: clamp(14px, 4.2cqw, 40px) clamp(12px, 3.6cqw, 32px) 0;
  height: 703px;
  overflow: hidden; /* 装飾写真(.c020)の余白がセクション外にはみ出し、
                        次のセクションとの境目に隙間が見えていたのを防ぐ */
}

.c006 {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: start;
  gap: clamp(4px, 1.5cqw, 16px);
  width: 100%;
  max-width: 425px;
  height: 215px;
}

.c007 {
  display: block;
  justify-self: center;
  align-self: center;
  margin-inline: auto;
  width: clamp(140px, 44cqw, 300px);
  max-width: 100%;
  height: auto;
  aspect-ratio: 1265 / 1243;
  object-fit: contain;
  position: absolute;
}

.c008 {
  max-width: 100%;
  height: 144px;
  display: block;
  object-fit: cover;
  width: 114px;
  aspect-ratio: 1117 / 1408;
  padding-top: 42px;
  padding-bottom: 42px;
}

.c009 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(6px, 1.8cqw, 16px);
  margin-top: clamp(10px, 3cqw, 28px);
}

.c010 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 20px);
}

.c011 {
  font-weight: 700;
  font-size: clamp(34px, 11.4cqw, 100px);
  line-height: 1;
  letter-spacing: -0.01em;
  font-family: 'Open Sans';
}

.c012 {
  background: #F97316;
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(14px, 4.2cqw, 36px);
  line-height: 1;
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 20px);
  border-radius: 8px;
  letter-spacing: 0.04em;
}

.c013 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 20px);
  font-weight: 700;
  font-size: clamp(18px, 5.4cqw, 46px);
  line-height: 1;
}

.c014 {
  width: 1px;
  align-self: stretch;
  background: #9CA3AF;
}

.c015 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 2.6cqw, 22px);
  margin-top: clamp(2px, 1cqw, 10px);
}

.c016 {
  display: block;
  flex: none;
  width: clamp(16px, 4.6cqw, 40px);
  height: auto;
}

.c017 {
  margin: 0;
  border: 2px solid #F97316;
  color: #F97316;
  font-weight: 700;
  font-size: clamp(18px, 5.6cqw, 48px);
  line-height: 1;
  padding: clamp(6px, 2cqw, 18px) clamp(14px, 4.4cqw, 40px);
  border-radius: 10px;
}

.c018 {
  display: block;
  flex: none;
  width: clamp(16px, 4.6cqw, 40px);
  height: auto;
  transform: scaleX(-1);
}

.c019 {
  position: relative;
  margin: clamp(12px, 3.4cqw, 32px) calc(-1 * clamp(12px, 3.6cqw, 32px)) 0;
}

.c020 {
  max-width: 100%;
  height: 91px;
  display: block;
  object-fit: cover;
  width: 166px;
  aspect-ratio: 1692 / 930;
  padding-top: 209px;
  padding-bottom: 209px;
}

.c021 {
  position: absolute;
  width: 222px;
  aspect-ratio: 1 / 1;
  border-radius: 50% 0 0 0;
  overflow: hidden;
  background: url('./assets/photo-lantern.png') center / cover no-repeat;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 8%;
  height: 166px;
  right: 0;
  top: 550px;
}

/* ---------- index.html / FV / Timeline ---------- */

.c022 {
  background: #FDF3E0;
  padding: clamp(16px, 4.4cqw, 40px) clamp(14px, 4cqw, 36px) clamp(6px, 2cqw, 16px);
}

.c023 {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  align-items: center;
  gap: clamp(10px, 3cqw, 28px);
}

.c024 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.6cqw, 22px);
  justify-content: center;
}

.c025 {
  width: clamp(30px, 9cqw, 76px);
  height: auto;
  flex: none;
  display: block;
}

.c026 {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.c027 {
  font-weight: 900;
  font-size: clamp(16px, 4.8cqw, 40px);
  line-height: 1.1;
}

.c028 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 32px);
  line-height: 1.1;
  color: #F97316;
  letter-spacing: 0.02em;
}

.c029 {
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.2;
}

.c030 {
  align-self: stretch;
  background: #E7D9BE;
}

.c031 {
  width: clamp(26px, 7.6cqw, 64px);
  height: auto;
  flex: none;
  display: block;
}

.c032 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 32px);
  line-height: 1.1;
  color: #7C3AED;
  letter-spacing: 0.02em;
}

/* ---------- index.html / FV / CTA ---------- */

.c033 {
  background: #FDF3E0;
  padding: clamp(14px, 4cqw, 36px) clamp(14px, 4cqw, 36px) clamp(20px, 5.4cqw, 48px);
}

.c034 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 4cqw, 36px);
  background: linear-gradient(90deg, #F97316 0%, #F9731699 40%, #7C3AED 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(20px, 6.2cqw, 52px);
  line-height: 1;
  padding: clamp(14px, 4.2cqw, 38px) clamp(16px, 4cqw, 36px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(124,58,237,0.28);
  letter-spacing: 0.02em;
}

.c035 {
  font-weight: 400;
}

.c036 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  text-align: center;
  font-family: Zen Kaku Gothic New;
  font-size: clamp(11px, 3.2cqw, 26px);
  color: #6B7280;
}

/* ---------- index.html / About ---------- */

.c037 {
  position: relative;
  background: #FFFAF0;
  padding: clamp(22px, 6cqw, 56px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
  overflow: hidden;
}

.c038 {
  position: absolute;
  left: -70px;
  top: 9px;
  width: 40%;
  height: auto;
  transform: rotate(-16deg);
  transform-origin: left top;
  padding-top: 24px;
}

.c039 {
  position: absolute;
  right: calc(-1 * clamp(14px, 4cqw, 36px));
  top: clamp(4px, 1.4cqw, 12px);
  width: 40%;
  height: auto;
  transform: rotate(7deg) scaleX(-1);
  transform-origin: right top;
}

.c040 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4px, 1.4cqw, 12px);
  text-align: center;
  padding-top: 54px;
}

.c041 {
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(14px, 4.2cqw, 34px);
  line-height: 1;
  color: #6B7280;
  letter-spacing: 0.04em;
  align-self: center;
  transform: translateX(clamp(-70px, -20cqw, -20px));
}

.c042 {
  margin: 0;
  font-weight: 900;
  font-size: clamp(22px, 6.8cqw, 58px);
  line-height: 1.25;
  letter-spacing: 0.01em;
  font-family: 'Kaisei Decol', serif;
}

.c043 {
  color: #F97316;
}

.c044 {
  margin: 0;
  font-family: 'Kaisei Decol', serif;
  font-weight: 700;
  font-size: clamp(12px, 3.6cqw, 30px);
  line-height: 1.5;
  color: #7C3AED;
}

.c045 {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(clamp(140px, 40cqw, 220px), 1fr));
  gap: clamp(8px, 2.4cqw, 20px);
  margin-top: clamp(18px, 5cqw, 44px);
}

.c046 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 18px);
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 12px;
  padding: clamp(10px, 3cqw, 22px);
  box-shadow: 0 2px 8px rgba(31,41,55,0.05);
}

.c047 {
  flex: none;
  width: 49px;
  height: 33px;
  display: block;
}

.c048 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.35;
}

.c049 {
  font-size: clamp(10px, 3cqw, 22px);
  color: #6B7280;
}

.c050 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
}

.c051 {
  max-width: 100%;
  height: 35px;
  display: block;
  object-fit: cover;
  width: 37px;
  aspect-ratio: 1274 / 1234;
}

.c052 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  color: #F97316;
}

.c053 {
  max-width: 100%;
  height: 45px;
  display: block;
  object-fit: cover;
  width: 44px;
  aspect-ratio: 1240 / 1268;
}

.c054 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  color: #7C3AED;
}

.c055 {
  max-width: 100%;
  height: 37px;
  display: block;
  object-fit: cover;
  width: 56px;
  aspect-ratio: 1536 / 1024;
}

.c056 {
  position: absolute;
  left: 77%;
  top: -33px;
  width: 40%;
  height: auto;
  transform: rotate(11deg);
  transform-origin: left top;
  padding-top: 24px;
}

/* ---------- index.html / About 02 / Concept ---------- */

.c057 {
  position: relative;
  background: #FFFCF5;
  padding: clamp(24px, 6.4cqw, 60px) clamp(14px, 4cqw, 36px) 0;
  overflow: hidden;
}

.c058 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(8px, 2.4cqw, 20px);
}

.c059 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.6cqw, 22px);
}

.c060 {
  font-weight: 900;
  font-size: clamp(34px, 11cqw, 96px);
  line-height: 0.9;
  color: #FBBF24;
  font-family: Open Sans;
}

.c061 {
  display: flex;
  flex-direction: column;
  gap: clamp(2px, 0.8cqw, 6px);
}

.c062 {
  font-weight: 700;
  font-size: clamp(10px, 2.8cqw, 22px);
  line-height: 1;
  letter-spacing: 0.18em;
  color: #F97316;
  font-family: Open Sans;
}

.c063 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1;
}

.c064 {
  height: 2px;
  background: #FBBF24;
  border-radius: 2px;
  margin-top: clamp(4px, 1.4cqw, 10px);
}

.c065 {
  max-width: 100%;
  height: 61px;
  display: block;
  object-fit: cover;
  width: 122px;
  aspect-ratio: 1774 / 887;
}

.c066 {
  margin: clamp(14px, 4cqw, 36px) 0 0;
  font-weight: 900;
  font-size: clamp(26px, 8.4cqw, 72px);
  line-height: 1.24;
  letter-spacing: -0.01em;
}

.c067 {
  margin: clamp(10px, 3cqw, 26px) 0 0;
  font-weight: 500;
  font-size: clamp(12px, 3.7cqw, 30px);
  line-height: 1.75;
}

.c068 {
  color: #7C3AED;
  font-weight: 700;
}

.c069 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(8px, 2.4cqw, 20px);
  margin-top: clamp(14px, 4cqw, 36px);
}

.c070 {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: url('./assets/photo-run.png') center / cover no-repeat;
}

.c071 {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(8px, 2.4cqw, 20px);
  background: rgba(249,115,22,0.92);
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 20px);
  display: flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 16px);
}

.c072 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(20px, 6.4cqw, 54px);
  line-height: 1;
  color: #FFFFFF;
  letter-spacing: 0.01em;
}

.c073 {
  font-weight: 700;
  font-size: clamp(12px, 3.6cqw, 30px);
  line-height: 1;
  color: #FFFFFF;
}

.c074 {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: url('./assets/photo-eat.png') center / cover no-repeat;
}

.c075 {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(8px, 2.4cqw, 20px);
  background: rgba(251,146,25,0.92);
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 20px);
  display: flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 16px);
}

.c076 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(20px, 6.4cqw, 54px);
  line-height: 1;
  color: #FFFFFF;
}

.c077 {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: url('./assets/photo-play.png') center / cover no-repeat;
}

.c078 {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(8px, 2.4cqw, 20px);
  background: rgba(124,58,237,0.92);
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 20px);
  display: flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 16px);
}

.c079 {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: url('./assets/photo-lantern.png') center / cover no-repeat;
}

.c080 {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(8px, 2.4cqw, 20px);
  background: rgba(109,40,217,0.92);
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 20px);
  display: flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 16px);
}

.c081 {
  margin: clamp(16px, 4.6cqw, 40px) 0 0;
  text-align: center;
  font-weight: 900;
  font-size: clamp(17px, 5.2cqw, 44px);
  line-height: 1.4;
}

.c082 {
  display: inline-block;
  white-space: nowrap;
  color: #F97316;
  font-family: Kaisei Decol;
}

.c083 {
  display: inline-block;
  white-space: nowrap;
  color: #EA9A17;
  font-family: Kaisei Decol;
}

.c084 {
  display: inline-block;
  white-space: nowrap;
  color: #7C3AED;
  font-family: Kaisei Decol;
}

.c085 {
  display: inline-block;
  white-space: nowrap;
  font-family: Kaisei Decol;
}

.c086 {
  height: 1px;
  background: #EFE0C8;
  margin: clamp(14px, 4cqw, 36px) 0 0;
}

.c087 {
  margin: clamp(14px, 4cqw, 36px) 0 0;
  text-align: center;
  font-weight: 500;
  font-size: clamp(12px, 3.6cqw, 30px);
  line-height: 1.8;
}

.c088 {
  display: block;
  width: calc(100% + 2 * clamp(14px, 4cqw, 36px));
  margin: clamp(6px, 1.6cqw, 14px) calc(-1 * clamp(14px, 4cqw, 36px)) 0;
  height: auto;
  padding-top: 0px;
}

.c089 {
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  width: 1122px;
  aspect-ratio: 1122 / 1402;
  padding-top: 0px;
}

/* ---------- index.html / Pickup 01 / Relay Marathon ---------- */

.c090 {
  background: #FFF8EC;
  padding: clamp(22px, 6cqw, 56px) 0 clamp(24px, 6.4cqw, 60px);
}

.c091 {
  padding: 0 clamp(14px, 4cqw, 36px);
}

.c092 {
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(31,41,55,0.07);
  padding: clamp(16px, 4.6cqw, 40px) clamp(14px, 4cqw, 34px);
  margin-top: clamp(18px, 5cqw, 44px);
}

.c093 {
  margin: 0;
  text-align: center;
  font-weight: 900;
  font-size: clamp(19px, 5.8cqw, 50px);
  line-height: 1;
}

.c094 {
  color: #1F2937;
}

.c095 {
  display: grid;
  gap: clamp(12px, 3.4cqw, 28px);
  margin-top: clamp(14px, 4cqw, 34px);
}

.c096 {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: clamp(10px, 3cqw, 24px);
  row-gap: clamp(4px, 1.2cqw, 10px);
}

.c097 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(26px, 8cqw, 68px);
  line-height: 1;
  color: #FBBF24;
}

.c098 {
  font-weight: 700;
  font-size: clamp(15px, 4.4cqw, 36px);
  line-height: 1.3;
}

.c099 {
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1.5;
  color: #6B7280;
}

.c100 {
  height: 1px;
  background: #F1E4CE;
}

.c101 {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: clamp(10px, 3cqw, 24px);
}

.c102 {
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(31,41,55,0.07);
  padding: clamp(16px, 4.6cqw, 40px) clamp(14px, 4cqw, 34px);
  margin-top: clamp(14px, 4cqw, 32px);
  position: relative;
}

.c103 {
  font-weight: 700;
  font-size: clamp(10px, 2.8cqw, 22px);
  line-height: 1;
  letter-spacing: 0.16em;
  color: #F97316;
}

.c104 {
  margin: clamp(5px, 1.6cqw, 14px) 0 0;
  font-weight: 900;
  font-size: clamp(19px, 5.6cqw, 48px);
  line-height: 1.2;
}

.c105 {
  margin: clamp(6px, 2cqw, 16px) 0 0;
  font-weight: 500;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.65;
  color: #374151;
}

.c106 {
  color: #F97316;
  font-weight: 700;
}

.c107 {
  display: block;
  width: 100%;
  height: auto;
  margin-top: clamp(12px, 3.4cqw, 28px);
  border-radius: 12px;
}

.c108 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 2cqw, 14px);
  margin-top: clamp(10px, 3cqw, 22px);
  border: 1px solid #F97316;
  color: #F97316;
  font-weight: 700;
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1;
  padding: clamp(10px, 3cqw, 24px) clamp(12px, 3.4cqw, 28px);
  border-radius: 999px;
}

.c109 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(6px, 2cqw, 16px);
  margin-top: clamp(12px, 3.4cqw, 28px);
  text-align: center;
}

.c110 {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.c111 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.2;
  color: #F97316;
}

.c112 {
  font-size: clamp(10px, 2.9cqw, 24px);
  line-height: 1.4;
  color: #6B7280;
}

.c113 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-left: 1px solid #F1E4CE;
  border-right: 1px solid #F1E4CE;
}

.c114 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: #F1E4CE;
  border: 1px solid #F1E4CE;
  border-radius: 10px;
  overflow: hidden;
  margin-top: clamp(12px, 3.4cqw, 28px);
}

.c115 {
  background: #FFFDF8;
  padding: clamp(8px, 2.4cqw, 18px);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.c116 {
  font-size: clamp(10px, 2.8cqw, 22px);
  color: #6B7280;
  line-height: 1.3;
}

.c117 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.2;
}

.c118 {
  margin-top: clamp(20px, 5.6cqw, 48px);
}

.c119 {
  display: grid;
  gap: clamp(10px, 3cqw, 24px);
  margin-top: clamp(12px, 3.4cqw, 28px);
}

.c120 {
  background: #F5FBFF;
  border: 1px solid #C9E4F5;
  border-radius: 14px;
  padding: clamp(14px, 4cqw, 32px);
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(12px, 3.4cqw, 28px);
  align-items: center;
}

.c121 {
  display: block;
  flex: none;
  width: clamp(48px, 14cqw, 112px);
  height: auto;
}

.c122 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 2.4cqw, 20px);
}

.c123 {
  font-weight: 700;
  font-size: clamp(15px, 4.4cqw, 36px);
  line-height: 1.2;
}

.c124 {
  font-size: clamp(10px, 3cqw, 24px);
  line-height: 1.3;
  color: #6B7280;
}

.c125 {
  margin: clamp(4px, 1.4cqw, 12px) 0 0;
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1.5;
  color: #4B5563;
}

.c126 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-weight: 900;
  font-size: clamp(22px, 6.6cqw, 56px);
  line-height: 1;
}

.c127 {
  font-size: clamp(13px, 3.8cqw, 30px);
}

.c128 {
  font-weight: 500;
  font-size: clamp(11px, 3.2cqw, 26px);
  color: #6B7280;
}

.c129 {
  background: #FFF8F1;
  border: 1px solid #F8D8BC;
  border-radius: 14px;
  padding: clamp(14px, 4cqw, 32px);
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(12px, 3.4cqw, 28px);
  align-items: center;
}

.c130 {
  background: #F6FBF4;
  border: 1px solid #CDE8C6;
  border-radius: 14px;
  padding: clamp(14px, 4cqw, 32px);
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(12px, 3.4cqw, 28px);
  align-items: center;
}

.c131 {
  max-width: 100%;
  height: 62px;
  display: block;
  object-fit: cover;
  width: 62px;
  aspect-ratio: 1254 / 1254;
}

.c132 {
  margin: clamp(6px, 2cqw, 16px) 0 0;
  font-size: clamp(9px, 2.7cqw, 22px);
  line-height: 1.5;
  color: #6B7280;
}

.c133 {
  margin: clamp(12px, 3.4cqw, 28px) 0 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0;
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 14px;
  overflow: hidden;
}

.c134 {
  padding: clamp(9px, 2.6cqw, 20px) clamp(10px, 3cqw, 24px);
  font-size: clamp(11px, 3.1cqw, 26px);
  line-height: 1.4;
  color: #6B7280;
  background: #FFFDF8;
  border-bottom: 1px solid #F5EBD9;
  white-space: nowrap;
}

.c135 {
  margin: 0;
  padding: clamp(9px, 2.6cqw, 20px) clamp(10px, 3cqw, 24px);
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.4;
  border-bottom: 1px solid #F5EBD9;
}

.c136 {
  padding: clamp(9px, 2.6cqw, 20px) clamp(10px, 3cqw, 24px);
  font-size: clamp(11px, 3.1cqw, 26px);
  line-height: 1.4;
  color: #6B7280;
  background: #FFFDF8;
  white-space: nowrap;
}

.c137 {
  margin: 0;
  padding: clamp(9px, 2.6cqw, 20px) clamp(10px, 3cqw, 24px);
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.4;
}

.c138 {
  font-weight: 500;
  font-size: clamp(9px, 2.7cqw, 22px);
  color: #6B7280;
}

.c139 {
  padding: clamp(16px, 4.6cqw, 40px) 0 0;
}

.c140 {
  position: relative;
  overflow: hidden;
}

.c141 {
  display: block;
  width: 100%;
  height: auto;
}

.c142 {
  position: absolute;
  inset: 0;
}

.c143 {
  position: absolute;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
  padding: 0 clamp(12px, 3.4cqw, 28px);
  top: 76.5%;
}

.c144 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 24px);
  background: linear-gradient(90deg, #FB923C 0%, #F97316 55%, #EA580C 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(14px, 4.2cqw, 34px);
  line-height: 1;
  padding: clamp(13px, 4cqw, 34px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}

/* ---------- index.html / Pickup 02 / Sky Lantern ---------- */

.c145 {
  background: #FFF9F2;
}

.c146 {
  position: relative;
  background: url('./assets/photo-lantern.png') center / cover no-repeat;
  color: #FFFFFF;
  padding: clamp(22px, 6cqw, 56px) clamp(14px, 4cqw, 36px) 0;
}

.c147 {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(16,27,58,0.82) 0%, rgba(30,36,80,0.55) 42%, rgba(58,36,80,0.72) 100%);
}

.c148 {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: clamp(6px, 2cqw, 16px);
}

.c149 {
  font-weight: 700;
  font-size: clamp(10px, 2.8cqw, 22px);
  line-height: 1;
  letter-spacing: 0.16em;
  color: #FDBA74;
}

.c150 {
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(18px, 5.4cqw, 44px);
  line-height: 1;
  color: #FDBA74;
}

.c151 {
  position: relative;
  margin: clamp(6px, 2cqw, 16px) 0 0;
  font-weight: 900;
  font-size: clamp(30px, 9.6cqw, 82px);
  line-height: 1.02;
  letter-spacing: 0.01em;
}

.c152 {
  position: relative;
  margin: clamp(4px, 1.4cqw, 12px) 0 0;
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1;
  color: #E9D5FF;
}

.c153 {
  position: relative;
  margin: clamp(14px, 4cqw, 36px) calc(-1 * clamp(14px, 4cqw, 36px)) 0;
  aspect-ratio: 375 / 240;
}

.c154 {
  max-width: 100%;
  height: 130px;
  display: block;
  object-fit: cover;
  width: 195px;
  aspect-ratio: 1536 / 1024;
}

.c155 {
  position: relative;
  margin: clamp(14px, 4cqw, 34px) 0 0;
  font-weight: 500;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.8;
  color: #E5E7EB;
}

.c156 {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: clamp(10px, 3cqw, 24px);
  border-left: 3px solid #F97316;
  padding: clamp(4px, 1.4cqw, 12px) 0 clamp(4px, 1.4cqw, 12px) clamp(10px, 3cqw, 24px);
  margin: clamp(16px, 4.6cqw, 40px) 0 clamp(22px, 6cqw, 56px);
}

.c157 {
  display: flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 16px);
}

.c158 {
  font-weight: 700;
  font-size: clamp(14px, 4cqw, 32px);
  line-height: 1;
}

.c159 {
  background: #F97316;
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(9px, 2.6cqw, 20px);
  line-height: 1;
  padding: clamp(3px, 1cqw, 8px) clamp(6px, 1.8cqw, 14px);
  border-radius: 5px;
  letter-spacing: 0.04em;
}

.c160 {
  font-weight: 700;
  font-size: clamp(30px, 9.4cqw, 80px);
  line-height: 1;
}

.c161 {
  font-weight: 700;
  font-size: clamp(10px, 2.9cqw, 23px);
  line-height: 1;
  letter-spacing: 0.12em;
  color: #FDBA74;
}

.c162 {
  padding: clamp(22px, 6cqw, 56px) clamp(14px, 4cqw, 36px) 0;
}

.c163 {
  margin: clamp(5px, 1.6cqw, 14px) 0 0;
  font-weight: 900;
  font-size: clamp(19px, 5.6cqw, 48px);
  line-height: 1.25;
}

.c164 {
  display: grid;
  gap: clamp(10px, 3cqw, 24px);
  margin-top: clamp(14px, 4cqw, 34px);
}

.c165 {
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 14px;
  overflow: hidden;
}

.c166 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 20px);
  padding: clamp(10px, 3cqw, 22px) clamp(12px, 3.4cqw, 26px) 0;
}

.c167 {
  flex: none;
  width: clamp(38px, 11cqw, 88px);
  height: clamp(38px, 11cqw, 88px);
  border: 2px solid #F97316;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: #F97316;
}

.c168 {
  font-size: clamp(7px, 2cqw, 15px);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.c169 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(15px, 4.4cqw, 36px);
}

.c170 {
  font-weight: 700;
  font-size: clamp(10px, 2.9cqw, 23px);
  line-height: 1;
  letter-spacing: 0.1em;
  color: #F97316;
}

.c171 {
  font-weight: 700;
  font-size: clamp(14px, 4.1cqw, 34px);
  line-height: 1.3;
}

.c172 {
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.3;
  color: #374151;
}

.c173 {
  margin-top: clamp(10px, 3cqw, 22px);
  aspect-ratio: 375 / 130;
  background: url('./assets/photo-lantern-receive.png') center / cover no-repeat;
}

.c174 {
  margin-top: clamp(10px, 3cqw, 22px);
  aspect-ratio: 375 / 130;
  background: url('./assets/lantern2.jpg') center / cover no-repeat;
}

.c175 {
  margin-top: clamp(10px, 3cqw, 22px);
  aspect-ratio: 375 / 130;
  background: url('./assets/lantern3.jpg ') center / cover no-repeat;
}

.c176 {
  margin-top: clamp(10px, 3cqw, 22px);
  aspect-ratio: 375 / 130;
  background: url('./assets/lantern1.jpg') center / cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c177 {
  margin: clamp(6px, 2cqw, 16px) 0 0;
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.5;
  color: #7C3AED;
}

.c178 {
  background: #FFFFFF;
  border: 1px solid #EBDCC4;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(31,41,55,0.07);
  padding: clamp(14px, 4cqw, 34px);
  margin-top: clamp(12px, 3.4cqw, 28px);
}

.c179 {
  display: flex;
  align-items: center;
  gap: clamp(10px, 3cqw, 24px);
}

.c180 {
  flex: none;
  width: clamp(24px, 3cqw, 48px);
  aspect-ratio: 3 / 4;
  border-radius: 8px;
  object-fit: cover;
  display: block;
}

.c181 {
  display: flex;
  flex-direction: column;
  gap: clamp(4px, 1.2cqw, 10px);
}

.c182 {
  display: flex;
  align-items: baseline;
  gap: clamp(6px, 2cqw, 16px);
}

.c183 {
  font-size: clamp(11px, 3.2cqw, 26px);
  color: #6B7280;
}

.c184 {
  font-weight: 900;
  font-size: clamp(20px, 6cqw, 52px);
  line-height: 1;
  letter-spacing: 0.04em;
}

.c185 {
  font-size: clamp(10px, 3cqw, 24px);
  line-height: 1.5;
  color: #374151;
}

.c186 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-size: clamp(9px, 2.7cqw, 22px);
  line-height: 1.5;
  color: #6B7280;
}

.c187 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 26px);
  margin-top: clamp(12px, 3.4cqw, 28px);
  background: linear-gradient(90deg, #F97316 0%, #A855F7 60%, #7C3AED 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(15px, 4.5cqw, 38px);
  line-height: 1;
  padding: clamp(13px, 4cqw, 34px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(124,58,237,0.3);
}

.c188 {
  margin: clamp(8px, 2.4cqw, 18px) 0 0;
  text-align: center;
  font-size: clamp(9px, 2.7cqw, 22px);
  color: #6B7280;
}

.c189 {
  display: grid;
  gap: clamp(10px, 3cqw, 22px);
  margin-top: clamp(12px, 3.4cqw, 28px);
}

.c190 {
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 14px;
  padding: clamp(12px, 3.6cqw, 30px);
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(10px, 3cqw, 22px);
  align-items: start;
}

.c191 {
  max-width: 100%;
  height: 58px;
  display: block;
  object-fit: cover;
  width: 58px;
  aspect-ratio: 1254 / 1254;
}

.c192 {
  display: flex;
  flex-direction: column;
  gap: clamp(3px, 1cqw, 8px);
}

.c193 {
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1.6;
  color: #4B5563;
}

.c194 {
  max-width: 100%;
  height: 61px;
  display: block;
  object-fit: cover;
  width: 61px;
  aspect-ratio: 1254 / 1254;
}

.c195 {
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 14px;
  padding: clamp(12px, 3.6cqw, 30px);
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(10px, 3cqw, 22px);
  align-items: center;
}

.c196 {
  max-width: 100%;
  height: 65px;
  display: block;
  object-fit: cover;
  width: 65px;
  aspect-ratio: 1254 / 1254;
}

.c197 {
  padding: clamp(22px, 6cqw, 56px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
}

.c198 {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(8px, 2.4cqw, 18px);
  align-items: start;
  background: #FFFDF8;
  border: 1px solid #F1E4CE;
  border-radius: 12px;
  padding: clamp(11px, 3.2cqw, 26px);
}

.c199 {
  width: clamp(22px, 6.4cqw, 48px);
  height: auto;
  display: block;
}

.c200 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.3;
}

.c201 {
  font-size: clamp(11px, 3.1cqw, 25px);
  line-height: 1.6;
  color: #4B5563;
}

.c202 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 2.4cqw, 18px);
  margin: clamp(14px, 4cqw, 32px) auto 0;
  max-width: 78%;
  width: 100%;
  border: 1px solid #1F2937;
  background: transparent;
  color: #1F2937;
  font-family: inherit;
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1;
  padding: clamp(11px, 3.2cqw, 26px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  cursor: pointer;
}

.c203 {
  position: relative;
  background: url('./assets/photo-lantern-wide.png') center / cover no-repeat;
  color: #FFFFFF;
  padding: clamp(22px, 6cqw, 56px) clamp(14px, 4cqw, 36px) clamp(26px, 7cqw, 64px);
  overflow: hidden;
}

.c204 {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,18,48,0.72) 0%, rgba(34,22,58,0.6) 50%, rgba(60,30,50,0.74) 100%);
}

.c205 {
  position: relative;
}

.c206 {
  max-width: 100%;
  height: 76px;
  display: block;
  object-fit: cover;
  width: 229px;
  aspect-ratio: 2172 / 724;
}

.c207 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 20px);
  margin-top: clamp(12px, 3.4cqw, 28px);
  font-weight: 900;
  font-size: clamp(18px, 5.4cqw, 46px);
  line-height: 1;
}

.c208 {
  background: #F97316;
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(10px, 2.9cqw, 23px);
  line-height: 1;
  padding: clamp(4px, 1.2cqw, 10px) clamp(7px, 2cqw, 16px);
  border-radius: 6px;
}

.c209 {
  width: 1px;
  align-self: stretch;
  background: rgba(255,255,255,0.5);
}

.c210 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 26px);
  margin-top: clamp(16px, 4.6cqw, 40px);
  background: linear-gradient(90deg, #FBBF24 0%, #F97316 50%, #A855F7 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(15px, 4.5cqw, 38px);
  line-height: 1;
  padding: clamp(13px, 4cqw, 34px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}

/* ---------- index.html / Other Contents / Enjoy All Day ---------- */

.c211 {
  background: linear-gradient(180deg, #EAF6FD 0%, #F7FBFE 40%, #FFFDF7 100%);
  padding: clamp(22px, 6cqw, 56px) 0 clamp(24px, 6.4cqw, 60px);
}

.c212 {
  position: relative;
  padding: clamp(14px, 4cqw, 34px) clamp(14px, 4cqw, 36px) clamp(18px, 5cqw, 44px);
  background: url('./assets/photo-05-bg.png') center top / cover no-repeat;
  min-height: 332px;
}

.c213 {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(8px, 2.4cqw, 20px);
}

.c214 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(28px, 9cqw, 76px);
  line-height: 0.9;
  color: #2563EB;
}

.c215 {
  font-weight: 700;
  font-size: clamp(10px, 2.8cqw, 22px);
  line-height: 1;
  letter-spacing: 0.16em;
  color: #3B82F6;
}

.c216 {
  flex: none;
  width: clamp(56px, 16cqw, 128px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: #F97316;
  color: #FFFFFF;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
  text-align: center;
}

.c217 {
  font-size: clamp(9px, 2.6cqw, 20px);
  font-weight: 700;
}

.c218 {
  font-size: clamp(16px, 4.8cqw, 40px);
  font-weight: 900;
}

.c219 {
  position: relative;
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-weight: 900;
  font-style: italic;
  font-size: clamp(24px, 7.6cqw, 66px);
  line-height: 1.05;
}

.c220 {
  color: #22C55E;
}

.c221 {
  color: #3B82F6;
}

.c222 {
  position: relative;
  margin: clamp(6px, 2cqw, 16px) 0 0;
  font-weight: 900;
  font-size: clamp(21px, 6.4cqw, 56px);
  line-height: 1.25;
}

.c223 {
  position: relative;
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.5;
  color: #7C3AED;
}

.c224 {
  position: relative;
  margin: clamp(10px, 3cqw, 24px) 0 0;
  font-weight: 500;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.8;
  color: #374151;
  max-width: 280px;
}

.c225 {
  display: grid;
  gap: clamp(14px, 4cqw, 32px);
  margin-top: clamp(16px, 4.6cqw, 40px);
  padding: 0 clamp(14px, 4cqw, 36px);
}

.c226 {
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(31,41,55,0.08);
  overflow: hidden;
}

.c242 {
  background: #FFFFFF;
  border: 1px solid #E5EAF0;
  border-radius: 14px;
  overflow: hidden;
}

.c227 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 20px);
  padding: clamp(10px, 3cqw, 22px) clamp(12px, 3.4cqw, 26px);
}

.c228 {
  flex: none;
  background: #F59E0B;
  color: #FFFFFF;
  border-radius: 8px;
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 18px);
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.c229 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(16px, 4.8cqw, 40px);
}

.c230 {
  font-weight: 900;
  font-size: clamp(16px, 4.8cqw, 40px);
  line-height: 1.2;
}

.c231 {
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.3;
  color: #F59E0B;
}

.c232 {
  margin: 0;
  padding: clamp(10px, 3cqw, 22px) clamp(12px, 3.4cqw, 26px);
  font-size: clamp(11px, 3.3cqw, 27px);
  line-height: 1.6;
  color: #374151;
}

.c233 {
  flex: none;
  background: #EF6C6C;
  color: #FFFFFF;
  border-radius: 8px;
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 18px);
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.c234 {
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.3;
  color: #EF6C6C;
}

.c235 {
  flex: none;
  background: #22C55E;
  color: #FFFFFF;
  border-radius: 8px;
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 18px);
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.c236 {
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.3;
  color: #22C55E;
}

.c237 {
  flex: none;
  background: #9333EA;
  color: #FFFFFF;
  border-radius: 8px;
  padding: clamp(5px, 1.6cqw, 14px) clamp(8px, 2.4cqw, 18px);
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.c238 {
  font-weight: 700;
  font-size: clamp(11px, 3.3cqw, 27px);
  line-height: 1.4;
  color: #9333EA;
}

.c239 {
  display: flex;
  align-items: baseline;
  gap: clamp(8px, 2.4cqw, 20px);
  flex-wrap: wrap;
}

.c240 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(22px, 6.8cqw, 58px);
  line-height: 1;
}

.c241 {
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(12px, 3.6cqw, 30px);
  line-height: 1.4;
}

.c242 {
  background: #FFFFFF;
  border: 1px solid #E5EAF0;
  border-radius: 14px;
  overflow: hidden;
}

.c243 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 18px);
  padding: clamp(10px, 3cqw, 22px) clamp(12px, 3.4cqw, 26px);
}

.c244 {
  flex: none;
  width: clamp(24px, 7cqw, 52px);
  height: auto;
  display: block;
}

.c245 {
  font-weight: 700;
  font-size: clamp(14px, 4.1cqw, 34px);
  line-height: 1.2;
}

.c246 {
  display: block;
  width: 100%;
  height: auto;
  margin-top: clamp(22px, 6cqw, 56px);
}

/* ---------- index.html / Event Info / Access ---------- */

.c247 {
  background: linear-gradient(180deg, #EAF6FD 0%, #FFFDF7 35%, #FFF9F0 100%);
  padding: clamp(22px, 6cqw, 56px) 0 clamp(24px, 6.4cqw, 60px);
}

.c248 {
  position: relative;
  padding: clamp(18px, 5cqw, 44px) clamp(14px, 4cqw, 36px) clamp(180px, 50cqw, 440px);
  background: url('./assets/sayamaike3.jpg') center bottom / cover no-repeat;
}

.c249 {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.24) 46%, rgba(255,255,255,0) 70%);
}

.c250 {
  position: relative;
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-weight: 900;
  font-style: italic;
  font-size: clamp(23px, 7.2cqw, 62px);
  line-height: 1.05;
}

.c251 {
  position: relative;
  margin: clamp(6px, 2cqw, 16px) 0 0;
  font-weight: 900;
  font-size: clamp(22px, 6.6cqw, 56px);
  line-height: 1.2;
}

.c252 {
  position: relative;
  margin: clamp(10px, 3cqw, 24px) 0 0;
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(15px, 4.6cqw, 38px);
  line-height: 1.5;
}

.c253 {
  margin: clamp(-24px, -6cqw, -12px) 0 0;
  position: relative;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(31,41,55,0.1);
  padding: clamp(14px, 4cqw, 34px);
  display: grid;
  gap: clamp(12px, 3.4cqw, 28px);
}

.c254 {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(10px, 3cqw, 22px);
  align-items: center;
}

.c255 {
  width: 43px;
  height: 39px;
  display: block;
}

.c256 {
  font-size: clamp(11px, 3.1cqw, 25px);
  line-height: 1.3;
  color: #6B7280;
}

.c257 {
  margin: 0;
  font-weight: 700;
  font-size: clamp(15px, 4.4cqw, 36px);
  line-height: 1.3;
}

.c258 {
  width: 46px;
  height: 41px;
  display: block;
}

.c259 {
  width: 44px;
  height: 51px;
  display: block;
}

.c260 {
  width: 53px;
  height: 37px;
  display: block;
}

.c261 {
  font-weight: 500;
  font-size: clamp(10px, 2.9cqw, 23px);
  color: #6B7280;
}

.c262 {
  position: relative;
  margin-top: clamp(12px, 3.4cqw, 28px);
  aspect-ratio: 4 / 3;
  border-radius: 12px;
  overflow: hidden;
  background-color: #E7EEE4;
  background-image: repeating-linear-gradient(135deg, rgba(31,41,55,0.07) 0 10px, rgba(255,255,255,0.4) 10px 20px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.c263 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.c264 {
  position: absolute;
  left: clamp(8px, 2.4cqw, 20px);
  top: clamp(8px, 2.4cqw, 20px);
  display: flex;
  align-items: center;
  gap: clamp(5px, 1.6cqw, 12px);
  background: #FFFFFF;
  color: #1F2937;
  font-weight: 700;
  font-size: clamp(11px, 3.1cqw, 25px);
  line-height: 1;
  padding: clamp(8px, 2.4cqw, 18px) clamp(11px, 3.2cqw, 24px);
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(31,41,55,0.18);
}

.c265 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 2cqw, 14px);
  margin-top: clamp(10px, 3cqw, 22px);
  border: 1px solid #3B82F6;
  color: #2563EB;
  font-weight: 700;
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1;
  padding: clamp(10px, 3cqw, 24px) clamp(12px, 3.4cqw, 28px);
  border-radius: 999px;
}

.c266 {
  margin: clamp(8px, 2.4cqw, 18px) 0 0;
  font-size: clamp(9px, 2.7cqw, 22px);
  line-height: 1.5;
  color: #6B7280;
}

.c267 {
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  width: 1752px;
  aspect-ratio: 1752 / 898;
}

.c268 {
  padding: clamp(24px, 6.4cqw, 60px) clamp(14px, 4cqw, 36px) 0;
  text-align: center;
}

.c269 {
  font-weight: 700;
  font-size: clamp(10px, 2.8cqw, 22px);
  line-height: 1;
  letter-spacing: 0.2em;
  color: #22C55E;
}

.c270 {
  margin: clamp(6px, 2cqw, 16px) 0 0;
  font-weight: 900;
  font-size: clamp(24px, 7.2cqw, 62px);
  line-height: 1.2;
}

.c271 {
  width: clamp(60px, 17cqw, 140px);
  height: 2px;
  margin: clamp(10px, 3cqw, 22px) auto 0;
  background: linear-gradient(90deg, #F97316, #3B82F6);
}

.c272 {
  margin: clamp(12px, 3.4cqw, 28px) 0 0;
  font-weight: 500;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.8;
  color: #374151;
}

.c273 {
  display: grid;
  gap: clamp(10px, 3cqw, 22px);
  margin-top: clamp(14px, 4cqw, 34px);
  padding: 0 clamp(14px, 4cqw, 36px);
}

.c274 {
  background: #FFFFFF;
  border-radius: 14px;
  box-shadow: 0 3px 12px rgba(31,41,55,0.07);
  padding: clamp(13px, 3.8cqw, 32px);
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(10px, 3cqw, 22px);
  align-items: start;
}

.c275 {
  width: 82px;
  height: 82px;
  display: block;
  border-radius: 10px;
}

.c276 {
  font-size: clamp(11px, 3.3cqw, 27px);
  line-height: 1.7;
  color: #374151;
}

.c277 {
  width: 80px;
  height: 80px;
  display: block;
  border-radius: 10px;
}

.c278 {
  width: 74px;
  height: 74px;
  display: block;
  border-radius: 10px;
}

.c279 {
  background: #FFFFFF;
  border-radius: 14px;
  box-shadow: 0 3px 12px rgba(31,41,55,0.07);
  padding: clamp(13px, 3.8cqw, 32px);
}

.c280 {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(10px, 3cqw, 22px);
  align-items: start;
}

.c281 {
  width: 58px;
  height: 51px;
  display: block;
  border-radius: 10px;
}

.c282 {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: clamp(8px, 2.4cqw, 20px);
  align-items: center;
  margin-top: clamp(12px, 3.4cqw, 28px);
  background: #F1F7FF;
  border-radius: 12px;
  padding: clamp(12px, 3.4cqw, 28px) clamp(10px, 3cqw, 22px);
  text-align: center;
}

.c283 {
  display: flex;
  flex-direction: column;
  gap: clamp(4px, 1.4cqw, 12px);
}

.c284 {
  font-weight: 700;
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1.3;
  color: #2563EB;
}

.c285 {
  font-weight: 900;
  font-size: clamp(17px, 5.2cqw, 44px);
  line-height: 1;
}

.c286 {
  align-self: stretch;
  background: #CFE0F5;
}

.c287 {
  margin: clamp(8px, 2.4cqw, 18px) 0 0;
  font-size: clamp(9px, 2.7cqw, 22px);
  line-height: 1.6;
  color: #6B7280;
}

.c288 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 2.4cqw, 18px);
  margin: clamp(6px, 2cqw, 14px) auto 0;
  width: 100%;
  max-width: 78%;
  border: 1px solid #1F2937;
  color: #1F2937;
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1;
  padding: clamp(11px, 3.2cqw, 26px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  background: #FFFFFF;
}

.c289 {
  position: relative;
  margin-top: clamp(20px, 5.6cqw, 48px);
  aspect-ratio: 375 / 210;
  overflow: hidden;
}

.c290 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ---------- index.html / Ticket / Choose ---------- */

.c291 {
  background: #FFF9F0;
  padding: clamp(22px, 6cqw, 56px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
}

.c292 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(28px, 9cqw, 76px);
  line-height: 0.9;
  color: #FBBF24;
}

.c293 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-weight: 900;
  font-size: clamp(21px, 6.4cqw, 56px);
  line-height: 1.25;
}

.c294 {
  margin: clamp(10px, 3cqw, 24px) 0 0;
  font-weight: 500;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.8;
  color: #374151;
}

.c295 {
  display: grid;
  gap: clamp(14px, 4cqw, 32px);
  margin-top: clamp(16px, 4.6cqw, 40px);
}

.c296 {
  background: #FFFFFF;
  border: 2px solid #FBD5B5;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(31,41,55,0.08);
  overflow: hidden;
}

.c297 {
  position: relative;
  aspect-ratio: 375 / 170;
  background: url('./assets/photo-run.png') center 40% / cover no-repeat;
}

.c298 {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0) 80%);
}

.c299 {
  position: absolute;
  left: clamp(10px, 3cqw, 24px);
  top: clamp(10px, 3cqw, 24px);
  margin: 0;
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(12px, 3.6cqw, 30px);
  line-height: 1.4;
  color: #FFFFFF;
}

.c300 {
  padding: clamp(14px, 4cqw, 32px);
}

.c301 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 18px);
}

.c302 {
  flex: none;
  width: clamp(30px, 8.6cqw, 66px);
  height: clamp(30px, 8.6cqw, 66px);
  border-radius: 50%;
  background: #F97316;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: ui-monospace, monospace;
  font-size: clamp(6px, 1.8cqw, 12px);
  color: #FFF7ED;
}

.c303 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(17px, 5.2cqw, 44px);
  line-height: 1.1;
  color: #F97316;
}

.c304 {
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1;
}

.c305 {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 18px);
  margin-top: clamp(12px, 3.4cqw, 28px);
}

.c306 {
  background: #F97316;
  color: #FFFFFF;
  font-weight: 900;
  font-size: clamp(16px, 4.8cqw, 40px);
  line-height: 1;
  padding: clamp(7px, 2.2cqw, 18px) clamp(12px, 3.4cqw, 28px);
  border-radius: 999px;
}

.c307 {
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1;
  letter-spacing: 0.08em;
  color: #F97316;
}

.c308 {
  margin: clamp(12px, 3.4cqw, 28px) 0 0;
  display: grid;
  gap: clamp(9px, 2.6cqw, 20px);
}

.c309 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 2.4cqw, 18px);
  border-bottom: 1px solid #F3E7D3;
  padding-bottom: clamp(7px, 2.2cqw, 16px);
}

.c310 {
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.3;
}

.c311 {
  margin: 0;
  font-weight: 900;
  font-size: clamp(16px, 4.8cqw, 40px);
  line-height: 1;
}

.c312 {
  font-size: clamp(11px, 3.2cqw, 26px);
}

.c313 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 2.4cqw, 18px);
}

.c314 {
  margin-top: clamp(12px, 3.4cqw, 28px);
  border-top: 1px dashed #F0C9A6;
  padding-top: clamp(10px, 3cqw, 22px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(6px, 2cqw, 14px);
}

.c315 {
  font-weight: 700;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1;
}

.c316 {
  font-weight: 900;
  font-size: clamp(15px, 4.4cqw, 36px);
  line-height: 1;
  color: #F97316;
}

.c317 {
  background: #F97316;
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(9px, 2.6cqw, 20px);
  line-height: 1;
  padding: clamp(3px, 1cqw, 8px) clamp(6px, 1.8cqw, 14px);
  border-radius: 5px;
}

.c318 {
  margin: clamp(6px, 2cqw, 14px) 0 0;
  font-size: clamp(9px, 2.7cqw, 22px);
  line-height: 1.5;
  color: #6B7280;
}

.c319 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 24px);
  margin-top: clamp(12px, 3.4cqw, 28px);
  background: linear-gradient(90deg, #FB923C 0%, #F97316 55%, #EA580C 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(14px, 4.2cqw, 34px);
  line-height: 1;
  padding: clamp(13px, 4cqw, 34px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(249,115,22,0.3);
}

.c320 {
  background: #FFFFFF;
  border: 2px solid #DCC9F5;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(31,41,55,0.08);
  overflow: hidden;
}

.c321 {
  position: relative;
  aspect-ratio: 375 / 170;
  background: url('./assets/photo-lantern.png') center / cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c322 {
  flex: none;
  width: clamp(30px, 8.6cqw, 66px);
  height: clamp(30px, 8.6cqw, 66px);
  border-radius: 8px;
  background: #7C3AED;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: ui-monospace, monospace;
  font-size: clamp(6px, 1.8cqw, 12px);
  color: #F3E8FF;
}

.c323 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(17px, 5.2cqw, 44px);
  line-height: 1.1;
  color: #7C3AED;
}

.c324 {
  background: #7C3AED;
  color: #FFFFFF;
  font-weight: 900;
  font-size: clamp(16px, 4.8cqw, 40px);
  line-height: 1;
  padding: clamp(7px, 2.2cqw, 18px) clamp(12px, 3.4cqw, 28px);
  border-radius: 999px;
}

.c325 {
  font-weight: 700;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1;
  letter-spacing: 0.08em;
  color: #7C3AED;
}

.c326 {
  display: flex;
  align-items: baseline;
  gap: clamp(10px, 3cqw, 24px);
  margin-top: clamp(12px, 3.4cqw, 28px);
}

.c327 {
  font-weight: 900;
  font-size: clamp(21px, 6.4cqw, 54px);
  line-height: 1;
  color: #7C3AED;
  letter-spacing: 0.02em;
}

.c328 {
  margin: clamp(12px, 3.4cqw, 28px) 0 0;
  display: grid;
  gap: clamp(8px, 2.4cqw, 18px);
}

.c329 {
  display: flex;
  align-items: baseline;
  gap: clamp(12px, 3.4cqw, 28px);
}

.c330 {
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1;
  min-width: clamp(52px, 15cqw, 120px);
}

.c331 {
  margin: 0;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.4;
}

.c332 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 24px);
  margin-top: clamp(14px, 4cqw, 32px);
  background: linear-gradient(90deg, #9333EA 0%, #7C3AED 55%, #5B21B6 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(14px, 4.2cqw, 34px);
  line-height: 1;
  padding: clamp(13px, 4cqw, 34px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(124,58,237,0.3);
}

/* ---------- index.html / Notice / Accordion ---------- */

.c333 {
  background: #FFFDF7;
  padding: clamp(22px, 6cqw, 56px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
}

.c334 {
  display: grid;
  gap: clamp(8px, 2.4cqw, 18px);
  margin-top: clamp(14px, 4cqw, 34px);
}

.c335 {
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 12px;
  overflow: hidden;
}

.c336 {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 18px);
  padding: clamp(12px, 3.4cqw, 28px) clamp(12px, 3.4cqw, 26px);
  font-weight: 700;
  font-size: clamp(13px, 3.7cqw, 30px);
  line-height: 1.3;
}

.c337 {
  flex: 1;
}

.c338 {
  flex: none;
  font-weight: 400;
  font-size: clamp(16px, 4.6cqw, 38px);
  line-height: 1;
  color: #9CA3AF;
}

.c339 {
  padding: 0 clamp(12px, 3.4cqw, 26px) clamp(14px, 4cqw, 30px) clamp(42px, 12.4cqw, 92px);
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1.8;
  color: #4B5563;
}

/* ---------- index.html / FAQ ---------- */

.c340 {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.4cqw, 18px);
  padding: clamp(12px, 3.4cqw, 28px) clamp(12px, 3.4cqw, 26px);
  font-weight: 700;
  font-size: clamp(13px, 3.7cqw, 30px);
  line-height: 1.35;
}

.c341 {
  flex: none;
  width: clamp(22px, 6.4cqw, 48px);
  height: clamp(22px, 6.4cqw, 48px);
  border-radius: 50%;
  background: #FFF1E7;
  color: #EA580C;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: clamp(11px, 3.2cqw, 26px);
}

/* ---------- index.html / Last CTA ---------- */

.c342 {
  position: relative;
  background: linear-gradient(180deg, #1B1D42 0%, #3A2450 55%, #6B3A3F 100%);
  color: #FFFFFF;
  padding: clamp(24px, 6.4cqw, 60px) clamp(14px, 4cqw, 36px) clamp(26px, 7cqw, 64px);
  overflow: hidden;
}

.c343 {
  position: absolute;
  inset: 0;
  background: url('./assets/photo-lantern.png') center / cover no-repeat;
}

.c344 {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(16,20,50,0.72) 0%, rgba(40,26,64,0.66) 55%, rgba(60,32,48,0.7) 100%);
}

.c345 {
  font-weight: 900;
  font-style: italic;
  font-size: clamp(26px, 8.4cqw, 70px);
  line-height: 0.9;
  color: rgba(255,255,255,0.45);
}

.c346 {
  margin: clamp(10px, 3cqw, 26px) 0 0;
  font-weight: 900;
  font-size: clamp(24px, 7.4cqw, 64px);
  line-height: 1.25;
}

.c347 {
  color: #FDBA74;
}

.c348 {
  margin: clamp(10px, 3cqw, 24px) 0 0;
  font-weight: 500;
  font-size: clamp(12px, 3.5cqw, 28px);
  line-height: 1.8;
  color: #E5E7EB;
}

.c349 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(13px, 3.9cqw, 32px);
  line-height: 1.5;
  color: #FED7AA;
}

.c350 {
  margin-top: clamp(16px, 4.6cqw, 40px);
  border-top: 1px solid rgba(255,255,255,0.25);
  padding-top: clamp(14px, 4cqw, 34px);
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 2cqw, 14px);
}

.c351 {
  font-weight: 900;
  font-size: clamp(24px, 7.4cqw, 64px);
  line-height: 1;
}

.c352 {
  background: #F97316;
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(10px, 3cqw, 24px);
  line-height: 1;
  padding: clamp(4px, 1.4cqw, 12px) clamp(8px, 2.2cqw, 18px);
  border-radius: 6px;
}

.c353 {
  font-weight: 900;
  font-size: clamp(20px, 6.2cqw, 52px);
  line-height: 1.2;
}

.c354 {
  font-weight: 700;
  font-size: clamp(13px, 3.9cqw, 32px);
  line-height: 1.4;
}

.c355 {
  align-self: flex-start;
  margin-top: clamp(6px, 2cqw, 14px);
  border: 2px solid #FDBA74;
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(14px, 4.2cqw, 34px);
  line-height: 1;
  padding: clamp(8px, 2.4cqw, 20px) clamp(14px, 4cqw, 32px);
  border-radius: 8px;
}

.c356 {
  display: grid;
  gap: clamp(10px, 3cqw, 22px);
  margin-top: clamp(18px, 5cqw, 44px);
}

.c357 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 24px);
  background: linear-gradient(90deg, #FB923C 0%, #F97316 55%, #EA580C 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(15px, 4.5cqw, 38px);
  line-height: 1;
  padding: clamp(13px, 4cqw, 34px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.3);
}

.c358 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 24px);
  background: linear-gradient(90deg, #9333EA 0%, #7C3AED 55%, #5B21B6 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: clamp(15px, 4.5cqw, 38px);
  line-height: 1;
  padding: clamp(13px, 4cqw, 34px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.3);
}

/* ---------- index.html / Footer ---------- */

.c359 {
  background: #FFFFFF;
  padding: clamp(20px, 5.6cqw, 48px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
  display: grid;
  gap: clamp(14px, 4cqw, 32px);
}

.c360 {
  flex: none;
  width: clamp(56px, 16cqw, 128px);
  height: auto;
  display: block;
}

.c361 {
  display: grid;
  gap: clamp(3px, 1cqw, 8px);
  font-size: clamp(10px, 3cqw, 24px);
  line-height: 1.6;
  color: #4B5563;
}

.c362 {
  border-top: 1px solid #F1E4CE;
  padding-top: clamp(12px, 3.4cqw, 28px);
  display: grid;
  gap: clamp(8px, 2.4cqw, 18px);
}

.c363 {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 2.4cqw, 20px) clamp(14px, 4cqw, 32px);
  font-size: clamp(10px, 3cqw, 24px);
  line-height: 1.4;
}

.c364 {
  font-size: clamp(9px, 2.7cqw, 22px);
  line-height: 1.4;
  color: #6B7280;
}

.c365 {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-shadow: inset 24px 0 48px -24px rgba(0,0,0,0.55);
}

/* ==================== privacy.html ==================== */

.c366 {
  container-type: inline-size;
  max-width: 1024px;
  margin: 0 auto;
  background: #FFFDF7;
  font-family: 'Open Sans', 'Zen Kaku Gothic New', system-ui, sans-serif;
  color: #1F2937;
  min-height: 100vh;
}

/* ---------- privacy.html / Privacy / Header ---------- */

.c367 {
  background: #FFF8EC;
  padding: clamp(20px, 5.6cqw, 48px) clamp(14px, 4cqw, 36px) clamp(18px, 5cqw, 44px);
  border-bottom: 1px solid #F1E4CE;
}

.c368 {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 14px);
  font-weight: 700;
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1;
}

.c369 {
  margin: clamp(16px, 4.6cqw, 40px) 0 0;
  font-weight: 700;
  font-size: clamp(10px, 2.8cqw, 22px);
  line-height: 1;
  letter-spacing: 0.18em;
  color: #F97316;
}

.c370 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-weight: 900;
  font-size: clamp(24px, 7.2cqw, 62px);
  line-height: 1.25;
}

.c371 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-family: 'Zen Kurenaido', cursive;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.5;
  color: #7C3AED;
}

/* ---------- privacy.html / Privacy / Body ---------- */

.c372 {
  padding: clamp(20px, 5.6cqw, 48px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
  display: grid;
  gap: clamp(16px, 4.6cqw, 40px);
}

.c373 {
  display: grid;
  gap: clamp(6px, 2cqw, 14px);
}

.c374 {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: clamp(8px, 2.4cqw, 18px);
  font-weight: 700;
  font-size: clamp(15px, 4.4cqw, 36px);
  line-height: 1.35;
}

.c375 {
  flex: none;
  font-weight: 900;
  font-style: italic;
  font-size: clamp(17px, 5cqw, 42px);
  line-height: 1;
  color: #FBBF24;
}

.c376 {
  margin: 0;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.9;
  color: #374151;
}

.c377 {
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 16px;
  padding: clamp(14px, 4cqw, 34px);
  display: grid;
  gap: clamp(6px, 2cqw, 14px);
}

.c378 {
  flex: none;
  font-weight: 900;
  font-style: italic;
  font-size: clamp(17px, 5cqw, 42px);
  line-height: 1;
  color: #F97316;
}

.c379 {
  margin: 0;
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.6;
}

.c380 {
  margin: 0;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.7;
  color: #374151;
}

.c381 {
  margin: 0;
  font-size: clamp(10px, 2.9cqw, 23px);
  line-height: 1.6;
  color: #6B7280;
}

/* ---------- privacy.html / Privacy / Footer ---------- */

.c382 {
  background: #FFFFFF;
  border-top: 1px solid #F1E4CE;
  padding: clamp(18px, 5cqw, 44px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
  display: grid;
  gap: clamp(10px, 3cqw, 22px);
}

.c383 {
  flex: none;
  width: clamp(48px, 14cqw, 112px);
  height: auto;
  display: block;
}

/* ==================== terms.html ==================== */

/* ---------- terms.html / Terms / Body ---------- */

.c384 {
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 16px;
  padding: clamp(14px, 4cqw, 34px);
  display: grid;
  gap: clamp(8px, 2.4cqw, 18px);
}

.c385 {
  margin: clamp(4px, 1.4cqw, 12px) 0 0;
  padding-left: clamp(18px, 5cqw, 40px);
  display: grid;
  gap: clamp(4px, 1.4cqw, 12px);
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.8;
  color: #374151;
}

.c386 {
  margin: clamp(4px, 1.4cqw, 12px) 0 0;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.9;
  color: #374151;
}

.c387 {
  margin: clamp(4px, 1.4cqw, 12px) 0 0;
  background: #FFF4E6;
  border-left: 3px solid #F97316;
  padding: clamp(10px, 3cqw, 22px) clamp(12px, 3.4cqw, 26px);
  font-size: clamp(11px, 3.1cqw, 25px);
  line-height: 1.8;
  color: #92400E;
}

.c388 {
  margin: clamp(4px, 1.4cqw, 12px) 0 0;
  font-weight: 700;
  font-size: clamp(13px, 3.8cqw, 30px);
  line-height: 1.6;
}

/* ==================== tokushoho.html ==================== */

/* ---------- tokushoho.html / Legal / Header ---------- */

.c389 {
  margin: clamp(8px, 2.4cqw, 20px) 0 0;
  font-weight: 900;
  font-size: clamp(22px, 6.6cqw, 56px);
  line-height: 1.3;
}

/* ---------- tokushoho.html / Legal / Body ---------- */

.c390 {
  padding: clamp(20px, 5.6cqw, 48px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
  display: grid;
  gap: clamp(14px, 4cqw, 32px);
}

.c391 {
  margin: 0;
  background: #FFF4E6;
  border-left: 3px solid #F97316;
  padding: clamp(10px, 3cqw, 22px) clamp(12px, 3.4cqw, 26px);
  font-size: clamp(11px, 3.1cqw, 25px);
  line-height: 1.8;
  color: #92400E;
}

.c392 {
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 14px;
  overflow: hidden;
}

.c393 {
  padding: clamp(10px, 3cqw, 22px) clamp(10px, 3cqw, 24px);
  font-size: clamp(11px, 3.1cqw, 25px);
  line-height: 1.4;
  color: #6B7280;
  background: #FFFDF8;
  border-bottom: 1px solid #F5EBD9;
}

.c394 {
  margin: 0;
  padding: clamp(10px, 3cqw, 22px) clamp(10px, 3cqw, 24px);
  font-weight: 700;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.5;
  border-bottom: 1px solid #F5EBD9;
}

.c395 {
  font-weight: 500;
  font-size: clamp(10px, 2.9cqw, 23px);
  color: #C2410C;
}

.c396 {
  margin: 0;
  padding: clamp(10px, 3cqw, 22px) clamp(10px, 3cqw, 24px);
  font-weight: 700;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.5;
  border-bottom: 1px solid #F5EBD9;
  color: #C2410C;
}

.c397 {
  padding: clamp(10px, 3cqw, 22px) clamp(10px, 3cqw, 24px);
  font-size: clamp(11px, 3.1cqw, 25px);
  line-height: 1.4;
  color: #6B7280;
  background: #FFFDF8;
}

.c398 {
  margin: 0;
  padding: clamp(10px, 3cqw, 22px) clamp(10px, 3cqw, 24px);
  font-weight: 700;
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.5;
  color: #C2410C;
}

/* ==================== contact.html ==================== */

/* ---------- contact.html / Contact / Form ---------- */

.c399 {
  padding: clamp(20px, 5.6cqw, 48px) clamp(14px, 4cqw, 36px) clamp(24px, 6.4cqw, 60px);
}

.c400 {
  margin: 0 0 clamp(16px, 4.6cqw, 40px);
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.9;
  color: #374151;
}

.c401 {
  display: grid;
  gap: clamp(14px, 4cqw, 32px);
  background: #FFFFFF;
  border: 1px solid #F1E4CE;
  border-radius: 16px;
  padding: clamp(16px, 4.6cqw, 40px);
}

.c402 {
  display: grid;
  gap: clamp(8px, 2.4cqw, 18px);
}

.c403 {
  display: flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 14px);
  font-weight: 700;
  font-size: clamp(13px, 3.7cqw, 30px);
  line-height: 1.3;
}

.c404 {
  background: #F97316;
  color: #FFFFFF;
  font-size: clamp(9px, 2.5cqw, 20px);
  line-height: 1;
  padding: clamp(3px, 1cqw, 8px) clamp(6px, 1.8cqw, 14px);
  border-radius: 4px;
}

.c405 {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 2.4cqw, 18px);
}

.c406 {
  display: flex;
  align-items: center;
  gap: clamp(6px, 2cqw, 12px);
  border: 1px solid #F1E4CE;
  border-radius: 999px;
  padding: clamp(9px, 2.6cqw, 20px) clamp(12px, 3.4cqw, 26px);
  font-size: clamp(11px, 3.2cqw, 26px);
  line-height: 1;
  cursor: pointer;
  background: #FFFDF8;
}

.c407 {
  accent-color: #F97316;
  width: clamp(14px, 4cqw, 24px);
  height: clamp(14px, 4cqw, 24px);
}

.c408 {
  accent-color: #7C3AED;
  width: clamp(14px, 4cqw, 24px);
  height: clamp(14px, 4cqw, 24px);
}

.c409 {
  accent-color: #9CA3AF;
  width: clamp(14px, 4cqw, 24px);
  height: clamp(14px, 4cqw, 24px);
}

.c410 {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #E2D5BC;
  border-radius: 10px;
  background: #FFFDF8;
  padding: clamp(11px, 3.2cqw, 26px) clamp(12px, 3.4cqw, 26px);
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.4;
  color: #1F2937;
}

.c411 {
  border: 1px solid #9CA3AF;
  color: #6B7280;
  font-size: clamp(9px, 2.5cqw, 20px);
  line-height: 1;
  padding: clamp(3px, 1cqw, 8px) clamp(6px, 1.8cqw, 14px);
  border-radius: 4px;
}

.c412 {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #E2D5BC;
  border-radius: 10px;
  background: #FFFDF8;
  padding: clamp(11px, 3.2cqw, 26px) clamp(12px, 3.4cqw, 26px);
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.7;
  color: #1F2937;
  resize: vertical;
}

.c413 {
  margin: 0;
  font-size: clamp(10px, 2.9cqw, 23px);
  line-height: 1.7;
  color: #6B7280;
}

.c414 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqw, 24px);
  background: linear-gradient(90deg, #FB923C 0%, #F97316 55%, #EA580C 100%);
  border: 0;
  color: #FFFFFF;
  font-family: inherit;
  font-weight: 700;
  font-size: clamp(15px, 4.5cqw, 38px);
  line-height: 1;
  padding: clamp(14px, 4.2cqw, 36px) clamp(14px, 4cqw, 32px);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(249,115,22,0.3);
  cursor: pointer;
}

.c415 {
  margin-top: clamp(16px, 4.6cqw, 40px);
  background: #FFF8EC;
  border: 1px solid #F1E4CE;
  border-radius: 14px;
  padding: clamp(14px, 4cqw, 32px);
  display: grid;
  gap: clamp(5px, 1.6cqw, 12px);
}

.c416 {
  font-weight: 700;
  font-size: clamp(13px, 3.7cqw, 30px);
  line-height: 1.3;
}

.c417 {
  font-size: clamp(12px, 3.4cqw, 28px);
  line-height: 1.7;
  color: #374151;
}

.c418 {
  font-size: clamp(10px, 2.9cqw, 23px);
  line-height: 1.6;
  color: #6B7280;
}

/* リレーマラソン「エントリー」ボタン: 最大396pxで中央寄せ（.c143 の中の a） */
.c143 > a { width: 100%; max-width: 396px; box-sizing: border-box; }

/* ==================== Site background (day/evening/night crossfade) ====================
   左右のパネルを、1枚の横長画像の「両端の窓」として見せる。
   画面全体を覆う1枚のレイヤーをページの一番奥に敷き、本文列(.c004)の
   白い背景で真ん中を隠すことで、1枚の写真が本文の裏でつながって見える。 */
:root {
  --op-day: 1;
  --op-evening: 0;
  --op-night: 0;
}
.site-bg-wrap {
  /* z-index は指定しない。.c001 自身の背景より手前、
     本文列(.c004、z-index:1)より奥に来るのは、この重なり順で決まる。 */
  position: fixed;
  inset: 0;
  overflow: hidden;
}
/* スクロールが既定の位置（ページの1/3・2/3地点）に達した瞬間、
   0.4秒かけてふわっとぼやけてから、1秒かけて元の鮮明さに戻る。
   （JS側で .is-switching を付け外しして発火させる） */
.site-bg-wrap.is-switching {
  animation: site-bg-blur-pulse 1.4s ease;
}
@keyframes site-bg-blur-pulse {
  0%   { filter: blur(0); }
  28%  { filter: blur(8px); }
  100% { filter: blur(0); }
}
.site-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.4s ease;
}
/* 晴れ（ページ上 1/3）*/
.site-bg--day {
  background-image: url('./assets/sayamaike-asa.png');
  opacity: var(--op-day);
}
/* 夕方（ページ中 1/3）*/
.site-bg--evening {
  background-image: url('./assets/sayamaike-yugata.png');
  opacity: var(--op-evening);
}
/* 夜（ページ下 1/3）*/
.site-bg--night {
  background-image: url('./assets/sayamaike-yoru.png');
  opacity: var(--op-night);
}

/* ==================== Responsive ==================== */
/* スマホ幅ではPC用の左右サイド枠を非表示にし、本文を画面幅いっぱいに使う */
@media (max-width: 600px) {
  .stage { grid-template-columns: minmax(0, 1fr); }
  .stage-side { display: none; }
}

/* コンテンツカード（CONTENT01〜04／謎解き・ぶら下がりチャレンジ等）:
   PCでカーソルを合わせるとふわっと浮き上がる演出。
   タッチ端末（ホバーできない端末）や「視差効果を減らす」設定では動かさない。 */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .c226,
  .c242 {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    will-change: transform;
  }
  .c226:hover,
  .c242:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 28px rgba(31,41,55,0.16);
  }
  .c226 img.c141,
  .c242 img.c141 {
    transition: transform 0.35s ease;
  }
  .c226:hover img.c141,
  .c242:hover img.c141 {
    transform: scale(1.04);
  }

  /* 購入・エントリー系ボタン（チケット購入／リレー参加／ランタン予約）:
     カーソルを合わせるとふわっと浮き上がる。 */
  .h01,
  .h03,
  .h04 {
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
    will-change: transform;
  }
  .h01:hover,
  .h03:hover,
  .h04:hover {
    transform: translateY(-4px);
  }
}

/* ==================== Hover ==================== */

.h01:hover {
  filter: brightness(1.06);
  box-shadow: 0 8px 24px rgba(124,58,237,0.36);
}

.h02:hover {
  background: #F97316;
  color: #FFFFFF;
}

.h03:hover {
  filter: brightness(1.06);
}

.h04:hover {
  filter: brightness(1.06);
  box-shadow: 0 8px 24px rgba(124,58,237,0.38);
}

.h05:hover {
  background: #1F2937;
  color: #FFFFFF;
}

.h06:hover {
  background: #3B82F6;
  color: #FFFFFF;
}

/* ==================== 追従ヘッダー＋ハンバーガーメニュー ====================
   header-menu.html から分離。全ページ共通で使用。 */
:root {
  --header-h: 56px;
  --col-max: 480px;          /* コンテンツ列の最大幅 */
  --orange: #F97316;
  --purple: #7C3AED;
  --ink: #1F2937;
  --line: #F1E4CE;
}

.site-header,
.site-menu {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: var(--col-max);
  box-sizing: border-box;
  font-family: 'Open Sans', 'Zen Kaku Gothic New', system-ui, sans-serif;
}

/* ヘッダー */
.site-header {
  top: 0;
  z-index: 50;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px 0 14px;
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 2px 12px rgba(31, 41, 55, 0.08);
}
.site-header__brand {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ink);
  text-decoration: none;
}
.site-header__logo { display: block; height: 40px; width: auto; }
.site-header__name {
  font-weight: 900;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.site-header__date {
  display: block;
  font-weight: 700;
  font-size: 11px;
  color: var(--orange);
}
.site-header__actions { display: flex; align-items: center; gap: 8px; }
.site-header__ticket {
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--orange) 0%, var(--purple) 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
  text-decoration: none;
}
.site-header__ticket:hover { filter: brightness(1.08); }

/* ハンバーガーボタン */
.menu-btn {
  position: relative;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: var(--ink);
  cursor: pointer;
}
.menu-btn__bar {
  position: absolute;
  left: 12px;
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: #FFFFFF;
  transition: transform .25s, top .25s, opacity .2s;
}
.menu-btn__bar:nth-child(1) { top: 14px; }
.menu-btn__bar:nth-child(2) { top: 21px; }
.menu-btn__bar:nth-child(3) { top: 28px; }
.menu-btn[aria-expanded="true"] .menu-btn__bar:nth-child(1) { top: 21px; transform: rotate(45deg); }
.menu-btn[aria-expanded="true"] .menu-btn__bar:nth-child(2) { opacity: 0; }
.menu-btn[aria-expanded="true"] .menu-btn__bar:nth-child(3) { top: 21px; transform: rotate(-45deg); }

/* メニュー本体 */
.site-menu {
  top: var(--header-h);
  bottom: 0;
  z-index: 49;
  overflow-y: auto;
  padding: 20px 20px 32px;
  background: #FFFDF7;
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s, visibility .2s;
}
.site-menu.is-open { opacity: 1; visibility: visible; }

.site-menu__copy {
  margin: 0;
  font-family: 'Zen Kurenaido', cursive;
  font-size: 16px;
  line-height: 1.5;
  color: var(--purple);
}
.site-menu__list { margin: 14px 0 0; padding: 0; list-style: none; }
.site-menu__item { border-bottom: 1px solid var(--line); }
.site-menu__link {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 56px;
  color: var(--ink);
  text-decoration: none;
}
.site-menu__link:hover { color: var(--orange); }
.site-menu__en {
  flex: none;
  width: 110px;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--orange);
}
.site-menu__ja { flex: 1; font-weight: 700; font-size: 15px; line-height: 1.4; }
.site-menu__arrow { flex: none; font-size: 14px; color: #9CA3AF; }

.site-menu__ctas { display: grid; gap: 10px; margin-top: 22px; }
.site-menu__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  border-radius: 999px;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
}
.site-menu__cta:hover { filter: brightness(1.06); }
.site-menu__cta--relay   { background: linear-gradient(90deg, #FB923C 0%, #F97316 55%, #EA580C 100%); }
.site-menu__cta--lantern { background: linear-gradient(90deg, #9333EA 0%, #7C3AED 55%, #5B21B6 100%); }

.site-menu__sub {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 24px;
  font-size: 12px;
  line-height: 1.4;
}
.site-menu__sub a { color: var(--orange); text-decoration: none; }
.site-menu__sub a:hover { color: var(--purple); }

/* ヘッダー分の上余白（各ページの先頭に1つ置く） */
.header-spacer { height: var(--header-h); }

/* ==================== 写真スクロール（マーキー） ====================
   scroll.html から分離。About（狭山池大遊祭とは）の直後に配置。 */
.photo-marquee {
  --speed: 40s;            /* 1周の時間。小さいほど速い */
  --photo-w: clamp(150px, 42vw, 360px);
  --gap: clamp(8px, 2.4vw, 18px);

  overflow: hidden;
  background: #FFF9F0;
  padding: 0 0 clamp(20px, 5.6vw, 48px);
}
.photo-marquee__track {
  display: flex;
  gap: var(--gap);
  width: max-content;
  padding-right: var(--gap);   /* 2周目とのつなぎ目の余白 */
  animation: photo-marquee var(--speed) linear infinite;
  will-change: transform;
}
.photo-marquee__img {
  flex: none;
  display: block;
  width: var(--photo-w);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
}
/* マウスを乗せると一時停止（不要なら削除） */
.photo-marquee:hover .photo-marquee__track { animation-play-state: paused; }

@keyframes photo-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
/* 「視差効果を減らす」設定の人には止めて表示 */
@media (prefers-reduced-motion: reduce) {
  .photo-marquee__track { animation: none; }
}
/* SEO用：画面上は非表示だが、検索エンジンや読み上げには伝わる見出し */
.vh-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}