@charset "UTF-8";
/* ==========================================================================
   SLP WORKS フィッシングショーLP
   - CMSへのベタ貼り前提のため、全セレクタを .slp-lp 配下・slp- 接頭辞でスコープ
   - サイズはデザイン幅1440px基準。cqw（.slp-lp の幅基準）で縮小し、min() で1440px時の値を上限とする
     換算：デザイン値 Npx → min(Npx, N/14.4 cqw)
   - SP（コンテナ幅767px以下）は @container で個別に調整
   ========================================================================== */

/* --------------------------------------------------------------------------
   ベース・スコープ付きリセット
   -------------------------------------------------------------------------- */
/* CMSのページで body にブラウザ既定の margin(8px) が残るため、LPを含むページに限り打ち消す
   また、端末の解像度（DPR）によってはLPの高さ・幅の端数（1px未満）からページ地の白が
   線状に見えるため、ページ地をLPと同じ黒にする */
body:has(.slp-lp) {
  margin: 0;
  background-color: #000;
}
.slp-lp {
  --slp-black: #000;
  --slp-white: #fff;
  --slp-orange: #ff7817;
  --slp-gray: #6f6f6f;
  --slp-font-en: "Inter", "Helvetica Neue", Arial, sans-serif;
  --slp-font-ja: "Yu Gothic Pr6N", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
  --slp-gutter: min(82px, 5.694cqw);

  container-type: inline-size;
  container-name: slp;
  position: relative;
  width: 100%;
  /* hidden だとヘッダー追従（sticky）が効かないため clip を使用 */
  overflow-x: clip;
  background: var(--slp-black);
  color: var(--slp-white);
  font-family: var(--slp-font-ja);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
.slp-lp *,
.slp-lp *::before,
.slp-lp *::after {
  box-sizing: border-box;
}
/* リセットは :where() で詳細度をクラス1つ分(0,1,0)に揃え、後に書く各コンポーネントの指定を優先させる */
.slp-lp :where(h1, h2, h3, p, ul, li, figure) {
  margin: 0;
  padding: 0;
}
.slp-lp :where(ul) {
  list-style: none;
}
.slp-lp :where(img) {
  display: block;
  max-width: 100%;
  height: auto;
  border: 0;
}
.slp-lp :where(a) {
  color: inherit;
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   ヘッダー
   -------------------------------------------------------------------------- */
/* ヘッダー：PC・SP共通でスクロール追従
   ※ .slp-lp は container-type 指定により fixed の基準になってしまうため sticky で実装 */
.slp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: min(124px, 8.611cqw);
  padding: 0 min(61px, 4.236cqw) 0 min(51px, 3.542cqw);
  background: var(--slp-black);
}
.slp-header__logo img {
  width: min(272px, 18.889cqw);
}
.slp-nav__list {
  display: flex;
  align-items: center;
}
.slp-nav__item {
  display: flex;
  align-items: center;
  font-family: var(--slp-font-en);
  font-weight: 700;
  font-size: min(36px, 2.5cqw);
  line-height: 1.6;
  white-space: nowrap;
}
/* 区切り線 */
.slp-nav__item + .slp-nav__item::before {
  content: "";
  display: block;
  width: 2px;
  height: min(39px, 2.708cqw);
  margin: 0 min(26px, 1.806cqw);
  background: var(--slp-white);
}
.slp-nav__item a {
  transition: opacity .3s;
}
.slp-nav__item a:hover {
  opacity: .6;
}
/* ハンバーガーボタン（PCでは非表示、SPのみ表示） */
.slp-menu-btn {
  display: none;
}

/* --------------------------------------------------------------------------
   メインビジュアル
   -------------------------------------------------------------------------- */
.slp-hero {
  position: relative;
  aspect-ratio: 1440 / 960;
  overflow: hidden;
  background: #222;
  /* 横方向のフリックはスライダー操作に使い、縦スクロールのみブラウザに任せる */
  touch-action: pan-y;
}
.slp-hero__slides,
.slp-hero__slide {
  position: absolute;
  inset: 0;
}
.slp-hero__slide {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.slp-hero__slide.is-active {
  opacity: 1;
}
.slp-lp .slp-hero__slide img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}
.slp-hero__copy {
  position: absolute;
  inset: 0;
  font-family: var(--slp-font-en);
  line-height: 1.6;
  pointer-events: none;
}
.slp-hero__year,
.slp-hero__title-main,
.slp-hero__title-sub {
  position: absolute;
  white-space: nowrap;
}
.slp-hero__year {
  top: min(6px, .417cqw);
  left: min(74px, 5.139cqw);
  width: min(471px, 32.708cqw);
  color: var(--slp-orange);
  font-weight: 700;
  font-size: min(185px, 12.847cqw);
  text-align: center;
}
.slp-hero__title {
  font-size: inherit;
  font-weight: inherit;
}
.slp-hero__title-main,
.slp-hero__title-sub {
  left: min(82px, 5.694cqw);
  font-size: min(55px, 3.819cqw);
}
.slp-hero__title-main {
  top: min(225px, 15.625cqw);
  font-weight: 700;
}
.slp-hero__title-sub {
  top: min(289px, 20.069cqw);
  font-weight: 200;
  letter-spacing: .15em;
}
/* インジケーター（スライド数に応じてJSで生成） */
.slp-hero__dots {
  position: absolute;
  left: 50%;
  bottom: min(100px, 6.944cqw);
  display: flex;
  gap: min(17px, 1.181cqw);
  transform: translateX(-50%);
}
.slp-hero__dot {
  display: block;
  width: min(61px, 4.236cqw);
  height: max(3px, min(5px, .347cqw));
  padding: 0;
  border: 0;
  background: var(--slp-white);
  opacity: .4;
  cursor: pointer;
  transition: opacity .3s;
}
.slp-hero__dot.is-active {
  opacity: 1;
}

/* --------------------------------------------------------------------------
   本文共通
   -------------------------------------------------------------------------- */
.slp-body {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 var(--slp-gutter);
}
.slp-section + .slp-section {
  margin-top: min(96px, 6.667cqw);
}
/* ページ内リンクの着地点が追従ヘッダーに隠れないよう、ヘッダーの高さ分の余白を確保 */
.slp-section,
.slp-products {
  scroll-margin-top: min(124px, 8.611cqw);
}
.slp-heading {
  font-family: var(--slp-font-en);
  font-weight: 700;
  font-size: min(64px, 4.444cqw);
  line-height: 1.6;
}
.slp-heading__sub {
  display: block;
  margin-top: max(-28px, -1.944cqw);
  font-family: var(--slp-font-ja);
  font-weight: 500;
  font-size: min(24px, 1.667cqw);
  line-height: 1.6;
}

/* --------------------------------------------------------------------------
   新商品（Coming soon）
   -------------------------------------------------------------------------- */
.slp-products {
  padding: min(177px, 12.292cqw) 0;
  text-align: center;
}
.slp-products__soon-en {
  font-family: var(--slp-font-en);
  font-weight: 500;
  font-size: min(70px, 4.861cqw);
  line-height: 1.6;
  letter-spacing: .06em;
}
.slp-products__soon-ja {
  margin-top: min(16px, 1.111cqw);
  font-weight: 700;
  font-size: min(46px, 3.194cqw);
  line-height: 1.5;
}

/* --------------------------------------------------------------------------
   プロスタッフ
   -------------------------------------------------------------------------- */
.slp-staff .slp-heading {
  margin-bottom: min(29px, 2.014cqw);
}
.slp-staff__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: min(70px, 4.861cqw) min(40px, 2.778cqw);
}
.slp-staff__photo {
  aspect-ratio: 292 / 194;
  overflow: hidden;
  background: #222;
}
.slp-lp .slp-staff__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.slp-staff__name {
  margin-top: min(14px, .972cqw);
  font-weight: 700;
  font-size: min(32px, 2.222cqw);
  line-height: 1.6;
  white-space: nowrap;
}
.slp-staff__en {
  margin-left: min(12px, .833cqw);
  font-family: var(--slp-font-en);
  font-weight: 400;
  font-size: max(9px, min(15px, 1.042cqw));
}

/* --------------------------------------------------------------------------
   ブース（出展情報）
   -------------------------------------------------------------------------- */
/* 地図画像（PC）は見出しの上端から始まるため、見出しを地図より前面に出す */
.slp-booth .slp-heading,
.slp-booth__note {
  position: relative;
  z-index: 1;
}
/* 見出し下の注記（※情報は随時更新します） */
.slp-booth__note {
  margin-top: min(23px, 1.597cqw);
  font-size: max(10px, min(16px, 1.111cqw));
  line-height: 1.6;
}
/* 地図は本文の左右余白を打ち消して全幅（最大1440px）で表示
   PCは見出し＋注記の高さ分（113px＋23px＋26px）を上に重ねる。画像の下端は白背景エリアの上端まで */
.slp-booth__map {
  position: relative;
  margin: max(-162px, -11.25cqw) calc(var(--slp-gutter) * -1) 0;
}
.slp-booth__map-img {
  width: 100%;
}
/* SP用の地図（会場名込みの1枚画像）はPCでは非表示 */
.slp-booth__map-img--sp {
  display: none;
}
.slp-booth__venue {
  position: absolute;
  left: var(--x);
  top: var(--y);
  white-space: nowrap;
}
.slp-booth__place,
.slp-booth__date {
  display: block;
}
.slp-booth__place {
  font-weight: 700;
  font-size: min(32px, 2.222cqw);
  line-height: 1.35;
}
.slp-booth__date {
  font-weight: 500;
  font-size: min(24px, 1.667cqw);
  line-height: 1.6;
}
/* 詳細モーダルを開く会場（横浜・大阪）：ボタンの既定スタイルを打ち消す */
.slp-booth__venue-btn {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-align: left;
  white-space: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: opacity .3s;
}
/* クリックできることを示すアイコン（オレンジの丸に＋）。会場名の文字サイズに合わせて em で指定 */
.slp-booth__venue-btn .slp-booth__place::after {
  content: "";
  display: inline-block;
  width: .8em;
  height: .8em;
  margin-left: .3em;
  vertical-align: -.06em;
  border-radius: 50%;
  background:
    linear-gradient(var(--slp-white), var(--slp-white)) center / 48% 2px no-repeat,
    linear-gradient(var(--slp-white), var(--slp-white)) center / 2px 48% no-repeat,
    var(--slp-orange);
  transition: transform .3s ease;
}
.slp-booth__venue-btn:hover {
  opacity: .75;
}
.slp-booth__venue-btn:hover .slp-booth__place::after {
  transform: rotate(90deg);
}
.slp-booth__venue-btn:focus-visible {
  outline: 2px solid var(--slp-orange);
  outline-offset: 4px;
}

/* --------------------------------------------------------------------------
   会場詳細モーダル（dialog 要素）
   showModal() で最前面レイヤー（top layer）に表示されるため、.slp-lp の container-type の影響を受けない
   中身のサイズは画面基準の px と @media で指定する
   -------------------------------------------------------------------------- */
/* モーダル表示中は背面のスクロールを止める
   （body に overflow を指定すると追従ヘッダーの sticky の基準が変わるため html のみに指定） */
html:has(.slp-modal[open]) {
  overflow: hidden;
  scrollbar-gutter: stable;
}
.slp-modal {
  width: min(760px, calc(100% - 32px));
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--slp-white);
  font-family: var(--slp-font-ja);
  font-size: 15px;
  line-height: 1.7;
}
.slp-modal[open] {
  animation: slp-modal-in .3s ease;
}
.slp-modal::backdrop {
  background: rgba(0, 0, 0, .75);
}
.slp-modal[open]::backdrop {
  animation: slp-modal-fade .3s ease;
}
@keyframes slp-modal-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
}
@keyframes slp-modal-fade {
  from {
    opacity: 0;
  }
}
.slp-modal__inner {
  position: relative;
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #555 transparent;
  padding: 48px 48px 40px;
  border-top: 4px solid var(--slp-orange);
  background: #161616;
}
/* 閉じるボタン（×） */
.slp-modal__close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  transition: opacity .3s;
}
.slp-modal__close::before,
.slp-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 2px;
  margin: -1px 0 0 -12px;
  background: var(--slp-white);
}
.slp-modal__close::before {
  transform: rotate(45deg);
}
.slp-modal__close::after {
  transform: rotate(-45deg);
}
.slp-modal__close:hover {
  opacity: .6;
}
.slp-modal__close:focus-visible {
  outline: 2px solid var(--slp-orange);
  outline-offset: -4px;
}
.slp-modal__area {
  color: var(--slp-orange);
  font-family: var(--slp-font-en);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .15em;
  line-height: 1.4;
}
.slp-modal__title {
  margin-top: 4px;
  font-weight: 700;
  font-size: 26px;
  line-height: 1.4;
}
.slp-modal__info {
  margin: 28px 0 0;
}
.slp-modal__row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 24px;
  padding: 20px 0;
  border-top: 1px solid rgba(255, 255, 255, .2);
}
.slp-modal__row:last-child {
  padding-bottom: 0;
}
.slp-modal__label {
  color: var(--slp-orange);
  font-weight: 700;
}
.slp-modal__body {
  margin: 0;
}
.slp-modal__lead {
  font-weight: 700;
  font-size: 17px;
}
.slp-modal__list {
  margin-top: 6px;
}
.slp-modal__list li + li {
  margin-top: 2px;
}
.slp-modal__note {
  display: block;
  font-size: 13px;
  color: rgba(255, 255, 255, .7);
}
/* 料金表（互換モードでは table に文字サイズ・色が継承されないため明示的に inherit） */
.slp-modal__price {
  width: 100%;
  border-collapse: collapse;
  color: inherit;
  font: inherit;
}
.slp-modal__price th,
.slp-modal__price td {
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, .15);
  text-align: right;
  white-space: nowrap;
}
.slp-modal__price th:first-child {
  padding-left: 0;
  text-align: left;
  white-space: normal;
}
.slp-modal__price td:last-child,
.slp-modal__price th:last-child {
  padding-right: 0;
}
.slp-modal__price thead th {
  padding-top: 0;
  color: rgba(255, 255, 255, .7);
  font-weight: 500;
  font-size: 13px;
}
.slp-modal__price tbody th {
  font-weight: 700;
}
.slp-modal__notes {
  margin-top: 12px;
  font-size: 13px;
  color: rgba(255, 255, 255, .75);
}
.slp-modal__notes li {
  padding-left: 1em;
  text-indent: -1em;
}
.slp-modal__notes li + li {
  margin-top: 4px;
}
@media (max-width: 767px) {
  .slp-modal {
    font-size: 14px;
  }
  .slp-modal__inner {
    padding: 40px 20px 28px;
  }
  .slp-modal__title {
    font-size: 20px;
  }
  .slp-modal__info {
    margin-top: 20px;
  }
  .slp-modal__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 16px 0;
  }
  .slp-modal__lead {
    font-size: 15px;
  }
  .slp-modal__price th,
  .slp-modal__price td {
    padding: 6px 8px;
  }
  .slp-modal__notes {
    font-size: 12px;
  }
}

/* --------------------------------------------------------------------------
   白背景エリア（コンテンツ・リンク）
   -------------------------------------------------------------------------- */
.slp-white {
  padding: min(81px, 5.625cqw) 0;
  background: var(--slp-white);
  color: var(--slp-black);
}
.slp-white .slp-section + .slp-section {
  margin-top: min(52px, 3.611cqw);
}
.slp-contents .slp-heading,
.slp-link .slp-heading {
  margin-bottom: min(52px, 3.611cqw);
}

/* コンテンツ */
.slp-contents__list {
  display: grid;
  grid-template-columns: repeat(4, min(214px, 14.861cqw));
  justify-content: center;
  column-gap: min(65px, 4.514cqw);
}
.slp-contents__item a {
  display: block;
  transition: opacity .3s;
}
.slp-contents__item a:hover {
  opacity: .7;
}
.slp-lp .slp-contents__item img {
  width: 100%;
}
/* ラベルは画像より幅が広くなる場合があるため、flex の中央揃えで左右均等にはみ出させる
   （text-align: center だけでは、幅を超えたテキストが左詰めになる） */
.slp-contents__label {
  display: flex;
  justify-content: center;
  font-weight: 700;
  font-size: min(24px, 1.667cqw);
  line-height: 1.6;
  text-align: center;
  white-space: nowrap;
}
/* SNS */
.slp-sns {
  display: flex;
  justify-content: center;
  gap: min(37px, 2.569cqw);
  margin-top: min(42px, 2.917cqw);
}
.slp-sns__item a {
  display: block;
  transition: opacity .3s;
}
.slp-sns__item a:hover {
  opacity: .7;
}
.slp-sns__item img {
  width: min(70px, 4.861cqw);
}

/* リンク（バナーの間に縦の区切り線） */
.slp-link__list {
  display: flex;
  justify-content: center;
  align-items: center;
}
.slp-link__item {
  display: flex;
  align-items: center;
}
.slp-link__item + .slp-link__item::before {
  content: "";
  display: block;
  width: 2px;
  height: min(108px, 7.5cqw);
  margin: 0 min(49px, 3.403cqw);
  background: var(--slp-black);
}
.slp-link__item a {
  display: block;
  width: min(250px, 17.361cqw);
  transition: opacity .3s;
}
.slp-link__item--daiwa a {
  width: min(123px, 8.542cqw);
}
.slp-link__item--wide a {
  width: min(267px, 18.542cqw);
}
.slp-link__item a:hover {
  opacity: .7;
}
.slp-lp .slp-link__item img {
  width: 100%;
}

/* --------------------------------------------------------------------------
   フッター
   -------------------------------------------------------------------------- */
.slp-footer {
  display: flex;
  align-items: center;
  gap: min(54px, 3.75cqw);
  height: min(123px, 8.542cqw);
  padding: 0 min(80px, 5.556cqw);
  background: var(--slp-gray);
  /* ページ末尾の端数の隙間（1px未満）にページ地の黒が見えないよう、グレーを下へ少し延長 */
  box-shadow: 0 2px 0 var(--slp-gray);
}
.slp-footer__logo {
  width: min(272px, 18.889cqw);
}
.slp-footer__copy {
  font-family: var(--slp-font-en);
  font-weight: 700;
  font-size: min(24px, 1.667cqw);
  line-height: 1.6;
}
/* フッターナビ（PCでは非表示、SPのみ表示） */
.slp-footer__nav {
  display: none;
}

/* --------------------------------------------------------------------------
   スクロール表示アニメーション（JS有効時のみ）
   -------------------------------------------------------------------------- */
.slp-lp.slp-js .slp-fade {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s ease, transform .8s ease;
}
.slp-lp.slp-js .slp-fade.is-inview {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .slp-lp.slp-js .slp-fade {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .slp-hero__slide {
    transition: none;
  }
  .slp-modal[open],
  .slp-modal[open]::backdrop {
    animation: none;
  }
}

/* ==========================================================================
   SP（コンテナ幅767px以下）
   ========================================================================== */
@container slp (max-width: 767px) {
  /* コンテナ自身にはクエリが効かないため子要素側で上書き */
  .slp-body {
    --slp-gutter: 5.333cqw;
  }

  /* ヘッダー（SPデザイン：高さ57px / ロゴ幅130px / ハンバーガー線34×2px・間隔10px） */
  .slp-header {
    height: 15.2cqw;
    padding: 0 1.6cqw 0 5.333cqw;
  }
  .slp-section,
  .slp-products {
    scroll-margin-top: 15.2cqw;
  }
  .slp-header__logo img {
    width: 34.667cqw;
  }

  /* ハンバーガーボタン */
  .slp-menu-btn {
    position: relative;
    display: block;
    width: 13.333cqw;
    height: 13.333cqw;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .slp-menu-btn__line {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 9.067cqw;
    height: 2px;
    margin: -1px 0 0 -4.533cqw;
    background: var(--slp-white);
    transition: transform .3s ease, opacity .3s ease;
  }
  .slp-menu-btn__line:nth-child(1) {
    transform: translateY(-2.667cqw);
  }
  .slp-menu-btn__line:nth-child(3) {
    transform: translateY(2.667cqw);
  }
  /* 開いている時は × に変形 */
  .slp-header.is-menu-open .slp-menu-btn__line:nth-child(1) {
    transform: rotate(45deg);
  }
  .slp-header.is-menu-open .slp-menu-btn__line:nth-child(2) {
    opacity: 0;
  }
  .slp-header.is-menu-open .slp-menu-btn__line:nth-child(3) {
    transform: rotate(-45deg);
  }

  /* メニュー本体：ヘッダー直下にドロップダウン表示 */
  .slp-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--slp-black);
    border-top: 1px solid rgba(255, 255, 255, .2);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-2.133cqw);
    transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s;
  }
  .slp-header.is-menu-open .slp-nav {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: opacity .3s ease, transform .3s ease;
  }
  .slp-nav__list {
    display: block;
    padding: 2.133cqw 5.333cqw 4.267cqw;
  }
  .slp-nav__item {
    display: block;
    font-size: 4.8cqw;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
  }
  /* PC用の区切り線はSPでは使わない */
  .slp-nav__item + .slp-nav__item::before {
    display: none;
  }
  .slp-nav__item a {
    display: block;
    padding: 4.267cqw 0;
    text-align: center;
  }

  /* メインビジュアル */
  .slp-hero {
    aspect-ratio: 375 / 320;
  }
  .slp-lp .slp-hero__slide img {
    object-position: 30% center;
  }
  .slp-hero__year {
    top: 0;
    left: 5.333cqw;
    width: auto;
    font-size: 21.333cqw;
    text-align: left;
  }
  .slp-hero__title-main,
  .slp-hero__title-sub {
    left: 5.333cqw;
    font-size: 7.467cqw;
  }
  .slp-hero__title-main {
    top: 27.2cqw;
  }
  .slp-hero__title-sub {
    top: 36cqw;
  }
  .slp-hero__dots {
    bottom: 5.333cqw;
    gap: 2.133cqw;
  }
  .slp-hero__dot {
    width: 9.6cqw;
    height: 3px;
  }

  /* 本文共通 */
  .slp-section + .slp-section {
    margin-top: 16cqw;
  }
  .slp-heading {
    font-size: 9.6cqw;
  }
  .slp-heading__sub {
    margin-top: -2.133cqw;
    font-size: 3.467cqw;
  }

  /* 新商品 */
  .slp-products {
    padding: 18.667cqw 0;
  }
  .slp-products__soon-en {
    font-size: 7.2cqw;
    letter-spacing: .02em;
  }
  .slp-products__soon-ja {
    margin-top: 2.133cqw;
    font-size: 3.733cqw;
  }

  /* プロスタッフ */
  .slp-staff .slp-heading {
    margin-bottom: 4.267cqw;
  }
  .slp-staff__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6.4cqw 4.267cqw;
  }
  .slp-staff__name {
    margin-top: 2.133cqw;
    font-size: 4.267cqw;
    line-height: 1.5;
  }
  .slp-staff__en {
    display: block;
    margin-left: 0;
    font-size: 2.667cqw;
    line-height: 1.4;
  }

  /* ブース：SP用の地図画像（会場名込み）を表示し、その下に会場リストを表示 */
  .slp-booth__note {
    margin-top: 1.067cqw;
    font-size: 3.2cqw;
  }
  .slp-booth__map {
    margin-top: 1.067cqw;
  }
  .slp-booth__map-img--pc {
    display: none;
  }
  .slp-booth__map-img--sp {
    display: block;
  }
  .slp-booth__list {
    display: grid;
    gap: 3.2cqw;
    margin-top: 4.267cqw;
    padding: 0 var(--slp-gutter);
  }
  .slp-booth__venue {
    position: static;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 3.2cqw;
    padding-left: 2.667cqw;
    border-left: 2px solid var(--slp-orange);
  }
  /* 詳細モーダルを開く会場は、ボタン内を他の会場と同じ横並びにする */
  .slp-booth__venue-btn {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 3.2cqw;
    width: 100%;
  }
  .slp-booth__place {
    font-size: 4.267cqw;
  }
  .slp-booth__date {
    font-size: 3.2cqw;
  }

  /* 白背景エリア：会場リストとの間は黒地で余白をとる */
  .slp-white {
    margin-top: 16cqw;
    padding: 10.667cqw 0 12.8cqw;
  }
  .slp-white .slp-section + .slp-section {
    margin-top: 12.8cqw;
  }
  .slp-contents .slp-heading,
  .slp-link .slp-heading {
    margin-bottom: 4.267cqw;
  }

  /* コンテンツ：ラベルを読める大きさにするため2列で表示 */
  .slp-contents__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5.333cqw 4.267cqw;
  }
  .slp-contents__label {
    margin-top: 1.067cqw;
    font-size: 3.467cqw;
  }
  .slp-sns {
    gap: 4.267cqw;
    margin-top: 6.4cqw;
  }
  .slp-sns__item img {
    width: 11.733cqw;
  }

  /* リンク：2列で表示し、区切り線は使わない */
  .slp-link__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4.267cqw;
  }
  .slp-link__item {
    justify-content: center;
    min-height: 12.8cqw;
  }
  .slp-link__item + .slp-link__item::before {
    display: none;
  }
  .slp-link__item a,
  .slp-link__item--wide a {
    width: 40cqw;
  }
  .slp-link__item--daiwa a {
    width: 19.733cqw;
  }

  /* フッター（SPデザイン：ナビ14px / ロゴ幅130px / コピーライト8px） */
  .slp-footer {
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    height: auto;
    padding: 5.067cqw 5.333cqw 7.467cqw;
  }
  .slp-footer__nav {
    display: block;
  }
  .slp-footer__nav-list {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .slp-footer__nav-item {
    display: flex;
    align-items: center;
    font-family: var(--slp-font-en);
    font-weight: 700;
    font-size: 3.733cqw;
    line-height: 1.6;
    white-space: nowrap;
  }
  /* 区切り線 */
  .slp-footer__nav-item + .slp-footer__nav-item::before {
    content: "";
    display: block;
    width: 1px;
    height: 3.467cqw;
    margin: 0 4.267cqw;
    background: var(--slp-white);
  }
  .slp-footer__logo {
    width: 34.667cqw;
    margin-top: 6.4cqw;
  }
  .slp-footer__copy {
    margin-top: 1.067cqw;
    font-size: 2.133cqw;
    text-align: center;
  }
}
