@charset "utf-8";

/* ==========================================================================
   Font Definition (Fractul)
   ========================================================================== */
@font-face {
  font-family: 'Fractul';
  src: url('/assets/fonts/Fractul-Regular.woff2') format('woff2'),
       url('/assets/fonts/Fractul-Regular.woff') format('woff'),
       url('/assets/fonts/Fractul-Regular.otf') format('opentype'),
       url('/assets/fonts/Fractul-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Fractul';
  src: url('/assets/fonts/Fractul-SemiBold.woff2') format('woff2'),
       url('/assets/fonts/Fractul-SemiBold.woff') format('woff'),
       url('/assets/fonts/Fractul-SemiBold.otf') format('opentype'),
       url('/assets/fonts/Fractul-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ==========================================================================
   Base & Utilities
   ========================================================================== */
.sfw-section {
  padding: 80px 0;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  color: #111;
  font-feature-settings: "palt";
}

.sfw-container {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .u-pc-only { display: none; }
}

/* テキストユーティリティ */
.sfw-text-center {
  text-align: center;
  line-height: 2;
  margin-bottom: 2rem;
  font-size: 14px;
}

.sfw-text-bold {
  font-weight: 700;
}

/* アニメーション */
.fadein {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s, transform 1s;
}

.fadein.show {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   Components (Headings, Buttons)
   ========================================================================== */
.sfw-heading {
  font-family: "Fractul", "Oswald", sans-serif;
  font-size: clamp(24px, 1.7vw + 17px, 48px);
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
  margin-bottom: clamp(16px, 0.6vw + 14px, 24px);
  text-transform: uppercase;
}

.sfw-heading--white {
  color: #fff;
}

.sfw-heading-sub {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(13px, 0.2vw + 12px, 16px);
  text-align: center;
  line-height: 1.8;
  margin-bottom: clamp(40px, 1.4vw + 35px, 60px);
}

.sfw-heading-small {
  font-family: "Fractul", "Oswald", sans-serif;
  font-size: 1.2rem;
  margin-bottom: 1rem;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
}

.sfw-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 280px;
  margin: 0 auto;
  padding: 1.2rem 2rem;
  text-decoration: none;
  font-weight: 700;
  transition: opacity 0.3s;
  text-align: center;
  line-height: 1.4;
  cursor: pointer;
}

.sfw-button:hover {
  opacity: 0.7;
}

.sfw-button--black {
  background: #111;
  color: #fff;
}

.sfw-button--white-outline {
  border: 1px solid #fff;
  color: #fff;
}

/* ==========================================================================
   Section: INTRO (Fixed V2)
   ========================================================================== */
.sfw-intro {
  text-align: center;
  padding-top: 60px;
  padding-bottom: 60px;
}

.sfw-intro__lead {
  font-family: "Fractul", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 28px;
  margin-bottom: 40px;
  line-height: 1.5;
  letter-spacing: 0.1rem;
}

.sfw-intro__text {
  font-family: "Fractul", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 38px;
  margin-bottom: 30px; /* 本文下のマージン */
  letter-spacing: 0.1rem;
}

/* divの中のpに対する指定は不要になったので削除 */

.sfw-intro__note {
  font-size: 14px;
  margin-top: 0;
  margin-bottom: 50px; /* 注釈の下にマージンを移動 */
  letter-spacing: 0.1rem;
}

/* 開催概要ボックス */
.sfw-info-box {
  max-width: 600px;
  margin: 0 auto;
  text-align: left;
  border: 1px solid #ccc;
  padding: 30px;
}

.sfw-info-list__row {
  display: flex;
  margin-bottom: 12px;
  align-items: baseline;
}

.sfw-info-list__row dt {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  width: 100px;
  flex-shrink: 0;
}

.sfw-info-list__row dd {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  margin: 0;
  line-height: 1.8;
}

.sfw-info-list__row dd .num {
  font-family: "Fractul", "Oswald", sans-serif !important;
  font-weight: 400;
  font-size: 16px;
  margin: 0 2px;
}

.sfw-info-list__row dd .day {
  font-family: "Fractul", "Oswald", sans-serif; /* 英語フォントに変更 */
  font-weight: 400;
  font-size: 12px;
  margin: 0 2px;
}

.sfw-info-list__row dd .badge {
  font-size: 12px;
  border: 1px solid #111;
  padding: 2px 6px;
  margin-left: 8px;
  vertical-align: middle;
}

.sfw-info-list__row dd .note {
  font-size: 12px;
}

@media screen and (max-width: 767px) {
  .sfw-intro__lead { font-size: 20px; }
  .sfw-intro__text { font-size: 14px; line-height: 32px; text-align: left; }
  .sfw-info-list__row { flex-direction: column; }
  .sfw-info-list__row dt { margin-bottom: 4px; font-weight: 700; }
  .sfw-info-box { padding: 20px; }
}

/* ==========================================================================
   Section: MARKET (Fixed)
   ========================================================================== */
.sfw-market {
  background-color: #C8E6D2;
  padding: 120px 0; /* 上下120pxに変更 */
  font-family: "Noto Sans JP", sans-serif;
}

.sfw-market__header {
  text-align: center;
  margin-bottom: 50px;
}

.sfw-market__title {
  text-align: center;
}

.sfw-market__title img {
  max-width: 100%;
  height: auto;
  width: 600px;
  display: block;
  margin: 0 auto;
}

.sfw-market__body {
  max-width: 900px;
  margin: 0 auto;
  color: #111;
}

/* 本文テキスト */
.sfw-market__text {
  text-align: center;
  font-size: 16px;
  font-weight: 300;
  line-height: 2.2;
  margin-bottom: 60px;
  letter-spacing: 0.1em;
}

.sfw-market__text .note {
  display: block;
  margin-top: 1em;
  font-size: 14px;
}

/* 右下の開催情報エリア */
.sfw-market__footer {
  display: flex;
  justify-content: flex-end;
  padding-right: 20px;
}

.sfw-market__info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  width: fit-content;
}

/* 開催場所: Noto Sans JP 18px */
.sfw-market__info .place {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400; /* 400に変更 */
  font-size: 18px;
  line-height: 1.4;
  margin: 0 0 10px 0;
}

/* 区切り線 */
.sfw-market__info .line {
  width: 260px;
  height: 1px;
  background-color: #000;
  margin-bottom: 10px;
}

/* 日時エリア */
.sfw-market__info .date {
  font-family: "Fractul", "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin: 0;
}

.sfw-market__info .date .day {
  font-size: 11px;
  font-weight: 300;
  margin: 0 2px;
}

@media screen and (max-width: 767px) {
  .sfw-market__text { font-size: 14px; text-align: left; }
  .sfw-market__footer { justify-content: center; padding-right: 0; margin-top: 40px; }
  .sfw-market__info { align-items: center; text-align: center; }
}

/* ==========================================================================
   Section: SHOPPING (Fixed V4)
   ========================================================================== */
.sfw-shopping {
  padding: 80px 0;
}

/* タイトル */
.sfw-shopping__title {
  font-family: "Fractul", "Oswald", sans-serif;
  font-weight: 600;
  font-size: 32px;
  text-align: center;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.sfw-shopping__body {
  max-width: 900px;
  margin: 0 auto;
}

/* 本文テキスト */
.sfw-shopping__text {
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 2.2;
  margin-bottom: 30px;
  letter-spacing: 0.1rem;
}

.sfw-shopping__text .small-en {
  font-size: 12px;
}

/* --- ツリー構造エリア --- */
.sfw-shopping__tree-area {
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  margin-bottom: 10px;
  padding-right: 20px;
}

/* 左側ブロック */
.sfw-shopping__tree-left {
  display: flex;
  align-items: center;
  padding-right: 0;
}

/* 黒いラベル: 字間追加 */
.sfw-shopping__tree-left .label {
  background-color: #000;
  color: #fff;
  padding: 6px 12px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0.05em; /* 字間追加 */
}

/* 横線: 40pxに設定（右のpaddingと一致させる） */
.sfw-shopping__tree-left .horiz-line {
  display: block;
  width: 40px; /* バランスを見て40pxに統一 */
  height: 1px;
  background-color: #000;
}

/* 右側ブロック */
.sfw-shopping__tree-right {
  border-left: 1px solid #000;
  padding-left: 40px; /* 線の長さと一致させる */
  display: flex;
  align-items: center;
}

/* 店舗リストテキスト */
.sfw-shopping__stores {
  text-align: right;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 2;
  color: #111;
  letter-spacing: 0.05em;
}

/* 店舗数カウント (計◯店舗) を小さく */
.sfw-shopping__stores .count {
  font-size: 12px;
}

/* --- フッター情報 --- */
.sfw-shopping__footer {
  display: flex;
  justify-content: flex-end;
  padding-right: 20px;
}

.sfw-shopping__info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  width: fit-content;
}

/* 区切り線 */
.sfw-shopping__info .line {
  width: 100%;
  min-width: 260px;
  height: 1px;
  background-color: #000;
  margin-bottom: 10px;
}

/* 日付 */
.sfw-shopping__info .date {
  font-family: "Fractul", "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin: 0;
}

.sfw-shopping__info .date .day {
  font-size: 11px;
  font-weight: 300;
  margin: 0 2px;
}

/* 注釈: 字間追加 */
.sfw-shopping__info .note {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 12px;
  margin: 2px 0 0 0;
  letter-spacing: 0.05em; /* 字間追加 */
}

/* SP対応 */
@media screen and (max-width: 767px) {
  .sfw-shopping__text { text-align: left; }
  
  .sfw-shopping__tree-area {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding-right: 0;
  }
  
  .sfw-shopping__tree-left {
    width: 100%;
    justify-content: center;
  }
  .sfw-shopping__tree-left .horiz-line {
    display: none;
  }
  
  .sfw-shopping__tree-right {
    border-left: none;
    border-top: 1px solid #ddd;
    padding-left: 0;
    padding-top: 20px;
  }
  
  .sfw-shopping__stores {
    text-align: center;
    font-size: 12px;
  }
  
  .sfw-shopping__footer {
    justify-content: center;
    padding-right: 0;
    margin-top: 40px;
  }
  .sfw-shopping__info { align-items: center; text-align: center; }
}


/* ==========================================================================
   Section Divider (Fixed)
   ========================================================================== */
.sfw-section-divider {
  width: 200px;
  height: 1px;
  background-color: #000;
  margin: 0 auto 80px; /* 0 auto 80pxに変更 */
}

/* ==========================================================================
   Section: CITY DRESSING (Fixed V2)
   ========================================================================== */
.sfw-dressing {
  padding: 0 0 80px 0;
}

/* タイトル */
.sfw-dressing__title {
  font-family: "Fractul", "Oswald", sans-serif;
  font-weight: 600;
  font-size: 32px;
  text-align: center;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* 本文 */
.sfw-dressing__text {
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 2.2;
  margin-bottom: 40px;
  letter-spacing: 0.1rem;
}

/* --- プロフィールボックス --- */
.sfw-dressing__profile-box {
  border: 1px solid #000;
  /* SHOPPINGの右端(padding-right: 20px)と合わせるため、左右に20pxのマージンを設定 */
  margin: 0 20px 40px; 
  position: relative;
  background: #fff;
  text-align: left;
}

/* 左上の黒ラベル */
.sfw-dressing__box-label {
  position: absolute;
  top: 0;
  left: 0;
  background-color: #000;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 12px;
  padding: 8px 18px;
  line-height: 1;
  letter-spacing: 0.05rem;
}

/* コンテンツエリア: パディングを少し狭く調整 */
.sfw-dressing__profile-content {
  padding: 50px 30px 30px; /* 60px 40px 40px から縮小 */
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

/* プロフ画像 */
.sfw-dressing__img {
  width: 200px;
  flex-shrink: 0;
}
.sfw-dressing__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* プロフ情報 */
.sfw-dressing__info {
  flex: 1;
  font-family: "Noto Sans JP", sans-serif;
  color: #111;
}

/* 名前 */
.sfw-dressing__name {
  font-family: "Fractul", "Oswald", sans-serif;
  font-weight: 400;
  font-size: 16px;
  margin-bottom: 20px;
  line-height: 1.4;
  display: flex;
  align-items: baseline;
}

.sfw-dressing__name .ja-name {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 12px;
  margin-left: 10px;
}

/* 紹介文: 字間追加 */
.sfw-dressing__bio {
  font-weight: 300;
  font-size: 14px;
  line-height: 2;
  margin-bottom: 20px;
  letter-spacing: 0.05em; /* 字間追加 */
}

.sfw-dressing__bio p {
  margin-bottom: 1.5em;
}
.sfw-dressing__bio p:last-child {
  margin-bottom: 0;
}

/* Instagram: 字間追加 */
.sfw-dressing__insta {
  font-family: "Fractul", sans-serif;
  font-weight: 400;
  font-size: 14px;
  margin-top: 20px;
  letter-spacing: 0.05em; /* 字間追加 */
}

/* --- 開催情報 (SHOPPINGと位置合わせ) --- */
.sfw-dressing__footer {
  display: flex;
  justify-content: flex-end;
  padding-right: 20px; /* SHOPPINGのpadding-right: 20pxと一致させる */
}

.sfw-dressing__location-info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  width: fit-content;
}

/* 場所 */
.sfw-dressing__location-info .place {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  margin-bottom: 10px;
}

/* 線 */
.sfw-dressing__location-info .line {
  width: 260px;
  height: 1px;
  background-color: #000;
  margin-bottom: 10px;
}

/* 日付 */
.sfw-dressing__location-info .date {
  font-family: "Fractul", "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
}
.sfw-dressing__location-info .date .day {
  font-size: 11px;
  font-weight: 300;
  margin: 0 2px;
}

/* SP対応 */
@media screen and (max-width: 767px) {
  .sfw-section-divider {
    margin: 40px auto;
  }
  
  /* スマホでは横マージンを戻す */
  .sfw-dressing__profile-box {
    margin: 0 0 40px; 
  }

  .sfw-dressing__profile-content {
    flex-direction: column;
    align-items: center;
    padding: 50px 20px 30px;
  }
  
  .sfw-dressing__img {
    width: 150px;
    margin-bottom: 20px;
  }
  
  .sfw-dressing__info {
    text-align: left;
    width: 100%;
  }
  
  .sfw-dressing__name {
    justify-content: center;
  }
  
  .sfw-dressing__footer {
    justify-content: center;
    padding-right: 0; /* スマホでは右パディング解除 */
    margin-top: 40px;
  }
  .sfw-dressing__location-info {
    align-items: center;
    text-align: center;
  }
}
/* ==========================================================================
   Section: EXHIBITION (Fixed V6)
   ========================================================================== */
.sfw-exhibition {
  padding: 0 0 80px 0;
}

/* タイトル */
.sfw-exhibition__title {
  font-family: "Fractul", "Oswald", sans-serif;
  font-weight: 600;
  font-size: 32px;
  text-align: center;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* サブタイトル */
.sfw-exhibition__subtitle {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-size: 16px;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 40px; 
  letter-spacing: 0.1rem;
}

/* --- 全幅ピンク背景エリア --- */
.sfw-exhibition__pink-wrapper {
  background-color: #e7d7d7;
  width: 100%;
  padding-bottom: 60px;
  margin-bottom: 40px; 
  margin-top: 80px; 
}

.sfw-exhibition__pink-wrapper .sfw-container {
  padding: 0;
}

/* コンテンツフレックス */
.sfw-exhibition__main-flex {
  display: flex;
  gap: 30px; 
  align-items: flex-start;
}

/* 左：KV画像 */
.sfw-exhibition__kv {
  flex: 0 0 42%; 
  margin-top: -40px; 
  position: relative;
  z-index: 1;
}

.sfw-exhibition__kv img {
  width: 100%;
  height: auto;
  display: block;
}

/* 右：説明テキスト */
.sfw-exhibition__desc {
  flex: 1;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 0.05rem;
  color: #111;
  padding-top: 60px; 
  padding-right: 20px;
}

.sfw-exhibition__desc p {
  margin-bottom: 2em;
}
.sfw-exhibition__desc p:last-child {
  margin-bottom: 0;
}
.sfw-exhibition__desc a {
  color: #111;
  text-decoration: underline;
  word-break: break-all;
}

/* --- ギャラリー (高さ・字間調整) --- */
.sfw-exhibition__gallery {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 20px; 
  margin-bottom: 40px; 
  flex-wrap: wrap;
}

.sfw-exhibition__gallery-item {
  text-align: center;
  width: auto; 
  flex: 0 0 auto;
}

.sfw-exhibition__gallery-item img {
  display: block;
  /* 高さを少し縮小 (240px -> 215px) これで収まるはずです */
  height: 215px; 
  width: auto;
  margin: 0 auto 10px;
  max-width: 100%;
}

/* キャプション: 字間0 */
.sfw-exhibition__gallery-item .caption {
  font-family: "Fractul", sans-serif;
  font-size: 9px;
  font-weight: 400;
  margin: 0;
  letter-spacing: 0; /* 0に変更 */
  white-space: nowrap;
}

/* --- プロフィールボックス --- */
.sfw-exhibition__profile-box {
  border: 1px solid #000;
  margin: 0 20px 40px;
  position: relative;
  background: #fff;
  text-align: left;
}

.sfw-exhibition__box-label {
  position: absolute;
  top: 0;
  left: 0;
  background-color: #000;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 12px;
  padding: 8px 18px;
  line-height: 1;
  letter-spacing: 0.05rem;
}

.sfw-exhibition__profile-content {
  padding: 50px 30px 30px;
}

.sfw-exhibition__profile-info {
  font-family: "Noto Sans JP", sans-serif;
  color: #111;
}

/* 名前 */
.sfw-exhibition__name {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  margin-bottom: 20px;
  line-height: 1.4;
}

.sfw-exhibition__name .kana {
  font-weight: 300;
  font-size: 12px;
  margin-left: 10px;
}

/* プロフィール本文 */
.sfw-exhibition__bio {
  font-weight: 300;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.05em;
}

/* --- 開催情報 --- */
.sfw-exhibition__footer {
  display: flex;
  justify-content: flex-end;
  padding-right: 20px;
}

.sfw-exhibition__location-info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  width: fit-content;
}

.sfw-exhibition__location-info .place {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.5;
  margin-bottom: 10px;
}
.sfw-exhibition__location-info .place .address {
  font-size: 14px;
  display: block;
}

.sfw-exhibition__location-info .line {
  width: 260px;
  height: 1px;
  background-color: #000;
  margin-bottom: 10px;
}

.sfw-exhibition__location-info .date-area {
  font-family: "Fractul", "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 0;
  line-height: 1.4;
}
.sfw-exhibition__location-info .date-area .day {
  font-size: 11px;
  font-weight: 300;
  margin: 0 2px;
}

.sfw-exhibition__location-info .note {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 12px;
  margin: 5px 0 0 0;
  letter-spacing: 0.05em;
}

/* SP対応 */
@media screen and (max-width: 767px) {
  .sfw-exhibition__main-flex {
    flex-direction: column;
  }
  .sfw-exhibition__kv {
    margin-top: -40px;
    width: 80%;
    margin-left: auto;
    margin-right: auto;
    flex: none;
  }
  .sfw-exhibition__desc {
    padding-top: 30px;
    padding-right: 20px;
    padding-left: 20px;
  }
  
  .sfw-exhibition__gallery-item {
    width: 48%;
    margin-bottom: 10px;
  }
  .sfw-exhibition__gallery-item img {
    height: auto;
    width: 100%;
  }
  
  .sfw-exhibition__profile-box {
    margin: 0 0 40px;
  }
  
  .sfw-exhibition__footer {
    justify-content: center;
    padding-right: 0;
    margin-top: 40px;
  }
  .sfw-exhibition__location-info {
    align-items: center;
    text-align: center;
  }
}
/* ==========================================================================
   Section: TALK SHOW (Fixed V3)
   ========================================================================== */
.sfw-talk {
  padding: 0 0 80px 0;
}

/* ラッパー */
.sfw-talk__wrapper {
  position: relative;
  padding-top: 24px;
  max-width: 900px;
  margin: 0 auto;
}

/* タイトル */
.sfw-talk__title {
  font-family: "Fractul", "Oswald", sans-serif;
  font-weight: 600;
  font-size: 32px;
  text-align: center;
  letter-spacing: 0.05em;
  background-color: #fff;
  padding: 0 30px;
  width: fit-content;
  margin: 0 auto;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  white-space: nowrap;
}

/* 枠線ボックス */
.sfw-talk__box {
  border: 1px solid #000;
  padding: 60px 40px 40px;
  background-color: transparent;
}

/* --- メインコンテンツ --- */
.sfw-talk__content {
  text-align: center;
  margin-bottom: 40px;
  font-family: "Noto Sans JP", sans-serif;
  color: #111;
  letter-spacing: 0.1rem;
}

/* ヘッドライン */
.sfw-talk__head {
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 30px;
}

/* スケジュールブロック */
.sfw-talk__schedule {
  margin-bottom: 30px;
}

.sfw-talk__schedule .date {
  font-family: "Fractul", "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 10px;
}
.sfw-talk__schedule .date .day {
  font-size: 11px;
  margin: 0 2px;
}

.sfw-talk__schedule .guest {
  font-size: 14px;
  font-weight: 300;
}
.sfw-talk__schedule .guest .job {
  font-size: 12px;
  font-weight: 300;
}

/* ファシリテーター */
.sfw-talk__facilitator {
  font-size: 14px; /* 16px -> 14pxに変更 */
  font-weight: 300;
  margin-bottom: 30px;
}
.sfw-talk__facilitator .job {
  font-size: 12px;
  font-weight: 300;
}

/* 会場情報・注釈 */
.sfw-talk__venue-info .place {
  font-size: 14px;
  font-weight: 400;
  margin-bottom: 10px;
}

.sfw-talk__venue-info .notes {
  font-size: 12px;
  font-weight: 300;
  line-height: 1.8;
}

/* --- 黒背景エリア (森岡書店) --- */
.sfw-talk__black-area {
  background-color: #000;
  color: #fff;
  padding: 30px;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif; /* 全体をNoto Sansに */
  letter-spacing: 0.1rem;
}

.sfw-talk__black-area .black-title {
  font-family: "Noto Sans JP", sans-serif; /* 明示的に指定 */
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 20px;
}

.sfw-talk__black-area .black-text {
  font-size: 14px;
  font-weight: 300; /* 400 -> 300に変更 */
  line-height: 2;
}

/* SP対応 */
@media screen and (max-width: 767px) {
  .sfw-talk__wrapper {
    padding-top: 20px;
  }
  .sfw-talk__title {
    font-size: 24px;
    padding: 0 15px;
  }
  .sfw-talk__box {
    padding: 50px 20px 30px;
  }
  
  .sfw-talk__black-area {
    padding: 30px 20px;
  }
  .sfw-talk__black-area .black-text {
    font-size: 14px;
    text-align: left;
  }
}

/* ==========================================================================
   Section: TCS (Fixed V2)
   ========================================================================== */
.sfw-tcs {
  background-color: #f2eeee;
  padding: 80px 0;
}

/* ロゴ: 中央配置を強化 */
.sfw-tcs__logo {
  text-align: center;
  margin-bottom: 40px;
}

.sfw-tcs__logo img {
  width: 400px;
  max-width: 100%;
  height: auto;
  display: block;   /* ブロック要素にして */
  margin: 0 auto;   /* 左右自動マージンで中央へ */
}

/* 説明テキスト */
.sfw-tcs__text {
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 2.2;
  margin-bottom: 40px; /* 60px -> 40px に短縮 */
  letter-spacing: 0.1rem;
}

/* 情報ボックス */
.sfw-tcs__info-box {
  border: 1px solid #000;
  max-width: 800px;
  margin: 0 auto;
  padding: 30px; /* 50px -> 30px に短縮 */
  background-color: transparent;
  text-align: left;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.1rem;
}

.sfw-tcs__info-box p {
  margin-bottom: 0;
}

/* URLのスタイル: Fractul w300 */
.sfw-tcs__info-box a {
  font-family: "Fractul", sans-serif;
  font-weight: 300;
  color: #111;
  text-decoration: none;
  letter-spacing: 0.05em;
}

/* SP対応 */
@media screen and (max-width: 767px) {
  .sfw-tcs__logo img {
    width: 250px;
  }
  
  .sfw-tcs__info-box {
    padding: 20px; /* スマホではさらに狭く */
    font-size: 13px;
    word-break: break-all;
  }
}
/* ==========================================================================
   Section: CREDITS
   ========================================================================== */
.sfw-credits {
  text-align: center;
  font-size: 11px;
}

.sfw-credits__list {
  display: inline-block;
  text-align: left;
  max-width: 800px;
  margin: 0 auto;
}

.sfw-credits__row {
  display: flex;
  margin-bottom: 1em;
  line-height: 1.6;
}

.sfw-credits__row dt {
  width: 120px;
  font-weight: 700;
  flex-shrink: 0;
}

.sfw-credits__row dd {
  margin: 0;
}

@media screen and (max-width: 767px) {
  .sfw-credits__row { flex-direction: column; margin-bottom: 1.5em; }
  .sfw-credits__row dt { margin-bottom: 0.2em; }
}

/* ==========================================================================
   Section: CONTACT
   ========================================================================== */
.sfw-contact {
  background-color: #000;
  color: #fff;
  text-align: center;
}

.sfw-contact__body {
  margin-top: 20px;
}

.sfw-contact__note {
  font-size: 11px;
  margin-top: 2rem;
  opacity: 0.7;
  line-height: 1.6;
}

/* ==========================================================================
   Section: ARCHIVE
   ========================================================================== */
.sfw-archive {
  padding: clamp(40px, 1.4vw + 35px, 60px) 0;
  text-align: center;
}

.sfw-archive__list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem 2rem;
  font-size: 11px;
}

.sfw-archive__list a {
  color: #999;
  text-decoration: none;
}
.sfw-archive__list a:hover {
  color: #111;
}

/* ==========================================================================
   SP Optimization & Fixes (Final V2)
   ========================================================================== */

/* SP用改行・表示制御クラス */
.u-sp-only { display: none; }

@media screen and (max-width: 767px) {
  /* 表示切り替え */
  .u-pc-only { display: none !important; }
  .u-sp-only { display: block !important; }

  /* --- 共通: コンテナ余白調整 --- */
  .sfw-container {
    padding: 0 20px;
  }
  
  /* --- 共通: 区切り罫線のマージン調整 --- */
  /* 上をさらに詰める (40px -> 20px) */
  .sfw-section-divider {
    margin: 20px auto 60px; 
  }
  
  /* --- 共通: テキストサイズ・配置の統一 --- */
  .sfw-intro__text,
  .sfw-market__text,
  .sfw-shopping__text,
  .sfw-dressing__text,
  .sfw-tcs__text {
    font-size: 14px;
    line-height: 2;
    text-align: center;
    text-align-last: center;
  }

  /* --- INTRO --- */
  .sfw-intro__lead {
    font-size: 18px;
    line-height: 1.6;
  }
  
  /* 追加: 開催概要の項目名と内容を細くする */
  .sfw-info-list__row dt,
  .sfw-info-list__row dd {
    font-weight: 300;
  }


  /* --- MARKET --- */
  .sfw-market__schedule {
    width: 100%;
    margin: 0;
    text-align: center;
  }

  /* --- SHOPPING --- */
  .sfw-shopping__tree-area {
    padding-right: 0;
    /* 縦積みにするスタイルを明示 */
    flex-direction: column;
    align-items: center;
    /* 「計115店舗」の下の余白を詰める (20px -> 8px) */
    gap: 8px; 
  }
  
  .sfw-shopping__tree-right {
    padding-top: 10px; /* 必要に応じてここも調整 */
    border-top: none; 
    padding-left: 0;   /* 左パディング解除 */
  }

  /* SP用の店舗リスト */
  .sfw-shopping__stores.u-sp-only {
    text-align: center;
    line-height: 2.4; 
    font-size: 13px;
  }

  /* --- CITY DRESSING --- */
  .sfw-dressing__profile-content {
    padding: 50px 20px 30px;
    text-align: left;
  }
  .sfw-dressing__info {
    text-align: left;
  }
  .sfw-dressing__location-info {
    align-items: center;
    text-align: center;
  }

  /* --- EXHIBITION --- */
  .sfw-exhibition__subtitle {
    font-size: 13px; 
    line-height: 2;
    margin-bottom: 60px; 
  }

  .sfw-exhibition__pink-wrapper {
    margin-top: 40px;
    padding-bottom: 40px;
    overflow: visible;
  }

  .sfw-exhibition__main-flex {
    flex-direction: column;
    gap: 0;
  }

  .sfw-exhibition__kv {
    margin-top: 0;
    transform: translateY(-40px);
    width: 80%;
    margin-left: auto;
    margin-right: auto;
    flex: none;
    z-index: 5;
  }

  .sfw-exhibition__desc {
    padding-top: 0;
    margin-top: 0;
    text-align: left;
    padding-left: 20px;
    padding-right: 20px;
    line-height: 1.8; 
  }

  .sfw-exhibition__gallery {
    gap: 10px;
    justify-content: space-between;
  }
  .sfw-exhibition__gallery-item {
    width: 48%;
    margin-bottom: 15px;
  }
  .sfw-exhibition__gallery-item img {
    height: auto;
    width: 100%;
  }

  /* --- TALK SHOW --- */
  .sfw-talk__box {
    padding: 50px 20px 30px;
  }
  
  .sfw-talk__schedule .guest {
    line-height: 2;
  }
  .sfw-talk__facilitator {
    line-height: 2;
  }

  .sfw-talk__black-area .black-text {
    text-align: left;
  }
  .sfw-talk__black-area .black-title {
    line-height: 1.8;
  }

  /* --- TCS --- */
  .sfw-tcs__info-box {
    text-align: left;
    font-size: 12px;
  }

  /* --- 共通: テキストサイズ・配置の統一 --- */
  .sfw-intro__text,
  .sfw-market__text,
  .sfw-shopping__text,
  .sfw-dressing__text,
  .sfw-tcs__text {
    font-size: 14px;
    line-height: 2;
    text-align: center;
    text-align-last: center;
    font-weight: 300; /* 追加: ここで強制的に細身に統一 */
  }

  /* 追加: INTROの注釈も中央寄せ・サイズ調整 */
  .sfw-intro__note {
    font-size: 12px; /* 注釈なので少し小さく */
    line-height: 1.8;
    text-align: center;
    margin-bottom: 40px;
    font-weight: 300;
  }
}

/* ==========================================================================
   Section: EMBODIMENT (Footer)
   ========================================================================== */
.sfw-embodiment {
  text-align: center;
  padding-bottom: 60px;
  color: #111;
}

/* タイトル: 他セクションと統一 */
.sfw-embodiment__title {
  font-family: "Fractul", "Oswald", sans-serif;
  font-weight: 600;
  font-size: 32px;
  text-align: center;
  margin-bottom: 60px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* リスト全体 */
.sfw-embodiment__list {
  max-width: 900px;
  margin: 0 auto;
}

/* 各項目 */
.sfw-embodiment__item {
  margin-bottom: 40px;
}

/* 項目名 (DT): Noto Sans, 16px, Weight 400 */
.sfw-embodiment__item dt {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 15px;
  letter-spacing: 0.05em;
}

/* 内容 (DD): Noto Sans, 14px, Weight 300 */
.sfw-embodiment__item dd {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 300;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-left: 0; /* ブラウザデフォルトのリセット */
}

/* SP対応 */
@media screen and (max-width: 767px) {
  .sfw-embodiment__title {
    font-size: 24px;
    margin-bottom: 40px;
  }

  .sfw-embodiment__item {
    margin-bottom: 40px;
  }
  
  .sfw-embodiment__item dt {
    font-size: 14px; /* スマホでは少し小さめに調整 */
    margin-bottom: 10px;
  }

  .sfw-embodiment__item dd {
    font-size: 12px; /* スマホでは12pxまたは13pxが見やすい */
    line-height: 1.8;
    padding: 0 10px; /* 画面端につかないように */
  }
  
  /* 画像サイズ調整 */
  .sfw-embodiment__item img {
    width: 150px !important;
  }
}

/* ==========================================================================
   EXHIBITION Profile Image Fix (Final)
   ========================================================================== */

/* コンテンツ全体をフレックスボックス化 */
.sfw-exhibition__profile-content {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

/* 画像エリア */
.sfw-exhibition__profile-img-area {
  flex: 0 0 200px;
  width: 200px;
}

.sfw-exhibition__profile-img-area img {
  width: 100%;
  height: auto;
  display: block;
}

/* クレジット表記（Fractulに変更） */
.sfw-exhibition__profile-img-area .credit {
  font-family: "Fractul", "Oswald", sans-serif; /* Fractul指定 */
  font-size: 12px;
  font-weight: 400;
  margin-top: 8px;
  line-height: 1.4;
  color: #111;
  text-align: left;
  letter-spacing: 0.05em; /* 英字フォントに合わせて少し字間を調整 */
}

/* テキストエリア */
.sfw-exhibition__profile-info {
  flex: 1;
}

/* --- スマホ対応 (SP) --- */
@media screen and (max-width: 767px) {
  .sfw-exhibition__profile-content {
    flex-direction: column;
    gap: 20px;
  }

  .sfw-exhibition__profile-img-area {
    flex: none;
    width: 160px;
    margin: 0; /* 左寄せ維持 */
  }
}

/* ==========================================================================
   Main Visual Slider
   ========================================================================== */
.main-visual {
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden; /* はみ出し防止 */
}

/* Swiper本体 */
.main-visual .swiper {
  width: 100%;
  height: auto;
}

/* 各スライド画像 */
.main-visual .swiper-slide img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover; /* 画面いっぱいに表示する場合 */
}

/* SP調整 (念のため) */
@media screen and (max-width: 767px) {
  .main-visual .swiper-slide img {
    width: 100%;
    height: auto;
  }
}

/* ==========================================================================
   Main Visual Wrapper (Force Reset)
   ========================================================================== */
/* 親要素含めて高さを自動に戻す */
#main .main-visual,
.sfw-mv-wrapper,
.main-visual,
.main-visual .swiper,
.main-visual .swiper-wrapper,
.main-visual .swiper-slide {
  width: 100% !important;
  height: auto !important; /* 強制的に画像なりに合わせる */
  min-height: 0 !important; /* 100vhなどの最小高さ指定を解除 */
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important; /* 念のため */
}

/* 画像自体の設定 */
.main-visual .swiper-slide img {
  display: block;
  width: 100%;
  height: auto !important;
  object-fit: contain; /* 念のため変更 */
  vertical-align: bottom; /* 画像下の微妙な隙間対策 */
}

/* スマホ用調整 */
@media screen and (max-width: 767px) {
  #main .main-visual {
    height: auto !important;
    min-height: 0 !important;
  }
}

/* ==========================================================================
   MARKET Address Fix
   ========================================================================== */
.sfw-market__info .address {
  font-size: 14px;       /* ご指定のサイズ */
  font-weight: 400;      /* 住所なので少し細め（標準）に設定 */
  display: inline-block; /* 表示崩れ防止 */
  margin-top: 5px;       /* 上の行と少し間隔をあける */
}

/* スマホでの微調整（念のため） */
@media screen and (max-width: 767px) {
  .sfw-market__info .address {
    font-size: 12px; /* スマホでは14pxだと少し大きい場合は12px、そのままで良ければこの行は削除 */
  }
}

/* ==========================================================================
   EXHIBITION Layout Fix (Contained Image)
   ========================================================================== */

/* --- 共通 (PC/SP) --- */

/* ピンクの背景エリア */
.sfw-exhibition__pink-wrapper {
  margin-top: 80px;      /* 上のセクションとの余白 */
  padding-top: 60px;     /* ピンク背景内の上余白 */
  padding-bottom: 60px;  /* ピンク背景内の下余白 */
  overflow: hidden;      /* 念のためはみ出し防止 */
}

/* 画像エリア (突き出し解除) */
.sfw-exhibition__kv {
  margin-top: 0 !important;
  margin-left: 0;
  transform: none !important; /* 位置移動を解除 */
  width: 45%; /* PCでの横幅比率 (テキストとのバランス) */
  flex: 0 0 45%;
}

.sfw-exhibition__kv img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* テキストエリア */
.sfw-exhibition__desc {
  width: 50%;
  padding-top: 0; /* 画像と上辺を合わせる */
}

/* Flexboxの配置調整 */
.sfw-exhibition__main-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start; /* 上揃え */
  gap: 40px;
}

/* --- スマホ対応 (SP) --- */
@media screen and (max-width: 767px) {
  .sfw-exhibition__pink-wrapper {
    margin-top: 40px;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .sfw-exhibition__main-flex {
    flex-direction: column; /* 縦積みに */
    gap: 30px;
  }

  .sfw-exhibition__kv {
    width: 100%;
    flex: none;
    margin: 0 auto; /* 中央配置 */
  }
  
  /* スマホの画像サイズ調整（大きすぎないように） */
  .sfw-exhibition__kv img {
    width: 100%;
    max-width: 400px; /* 必要であれば最大幅制限 */
    margin: 0 auto;
    display: block;
  }

  .sfw-exhibition__desc {
    width: 100%;
    padding: 0 10px; /* 左右に少し余白 */
    margin-top: 0;
  }
}

/* ==========================================================================
   EXHIBITION Spacing Fix (Gap Reduction)
   ========================================================================== */

/* PC/共通: ピンク背景の上の余白を詰める */
.sfw-exhibition__pink-wrapper {
  margin-top: 30px !important; /* 80px -> 30px に短縮 */
}

/* PC/共通: サブタイトルの下の余白も詰める（念のため） */
.sfw-exhibition__subtitle {
  margin-bottom: 20px !important;
}

/* スマホ (SP): さらに詰める場合 */
@media screen and (max-width: 767px) {
  .sfw-exhibition__pink-wrapper {
    margin-top: 20px !important; /* スマホはさらに狭く */
  }
  .sfw-exhibition__subtitle {
    margin-bottom: 15px !important;
  }
}

/* ==========================================================================
   Font Family Update (Client Request: All Helvetica/Hiragino)
   ========================================================================== */
body,
.sfw-intro__text,
.sfw-market__text,
.sfw-shopping__text,
.sfw-dressing__text,
.sfw-tcs__text,
.sfw-exhibition__desc,
p, a, li, dt, dd, th, td,
/* タイトル関連の追加クラス */
h1, h2, h3, h4, h5, h6,
.sfw-intro__lead,
.sfw-market__title,
.sfw-shopping__title,
.sfw-dressing__title,
.sfw-exhibition__title,
.sfw-exhibition__subtitle,
.sfw-talk__title,
.sfw-talk__head,
.sfw-embodiment__title,
.footer__title {
  /* Fractul等の指定を全て上書き */
  font-family: "Helvetica", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", "Meiryo", sans-serif !important;
  
  /* 念のため太さなどの調整が必要ならここに追加 */
  /* letter-spacing: 0.05em; */
}