/* ===== グローバル: 禁則処理（全ページ） ===== */
html {
  line-break: strict;
}

/* ===== グローバル: デザイン基準を1920に変更・上限撤廃 (PCのみ) ===== */
@media (min-width: 769px) {
  :root {
    --board: 1920;
    --max: 9999px;
  }
}

/* ===== p-homeIntro: 背景色を p-home 側に委譲 =====
 * .p-homeIntro 自体は透明にし、p-home がスクロール量に応じて背景色を可変
 * (.p-homeIntro がビューポート内のあいだ #B8BDC1、それ以外は --colorBg)
 */
.p-homeIntro {
  background-color: transparent;
  padding-top: clamp(480px, 10vw / var(--board) * 10 * 1055, var(--max) * 1055); /* 既存 785 → +270 */
}
.p-homeIntro__catchEn {
  top: clamp(80px, 10vw / var(--board) * 10 * 519, var(--max) * 519); /* 既存 249 → +270 */
}
.p-homeIntro__catchJa {
  top: clamp(240px, 10vw / var(--board) * 10 * 798, var(--max) * 798); /* 既存 528 → +270 */
}
@media (max-width: 768px) {
  .p-homeIntro {
    padding-top: 119.4666666667vw; /* 既存 83.47vw → +36vw (270/750*100) */
  }
  .p-homeIntro__catchEn {
    top: 67.6vw; /* 既存 31.6vw → +36vw */
  }
  .p-homeIntro__catchJa {
    top: 92.9333333333vw; /* 既存 56.93vw → +36vw */
  }
}
.p-home.is-introBgActive {
  background-color: #B8BDC1;
}

/* ===== p-homeIntro: 背景2段階表示 =====
 * .--bg2 は bg1 と同位置・同サイズで重ね、bg1 より遅れて表示
 * 位置・サイズは既存 .p-homeIntro__bg のスタイルがそのまま効く
 */
.p-homeIntro__bg {
  transition: opacity 1s ease; /* 既存 0.5s → 1s（2倍遅く） */
}
.p-homeMv {
  transition: opacity 1s ease;
}
.p-homeMv.is-hidden {
  opacity: 0;
}
.p-homeIntro__bg.--bg2 {
  z-index: 2; /* bg1 (z-index:1) より上に重ねる */
}
/* ===== p-homeIntro: 日本語テキストと英文の間の区切り線 =====
 * 1px の細線、幅 60px 相当（既存システムの clamp パターン）
 */
.p-homeIntro__line {
  width: clamp(40px, 10vw / var(--board) * 10 * 60, var(--max) * 60);
  height: 1px;
  margin-top: clamp(30px, 10vw / var(--board) * 10 * 60, var(--max) * 60);
  background-color: var(--colorBlack);
}

/* ===== p-homeIntro: 英文テキスト =====
 * Noto Sans JP Regular / 18px / left / letter-spacing 1.26px (≒0.07em) / line-height 36px (=2)
 */
.p-homeIntro__text.--en {
  margin-top: clamp(30px, 10vw / var(--board) * 10 * 60, var(--max) * 60); /* 日本語テキスト間と同じ */
  font-family: var(--fontGothic);
  font-size: clamp(12px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.07em;
  text-align: left;
  color: var(--colorBlack);
}

/* SP: 既存 .p-homeIntro__text のSPサイズ(35相当)に対し、英文はやや小さめ */
@media (max-width: 768px) {
  .p-homeIntro__line {
    width: clamp(0px, 10vw / var(--board) * 10 * 120, var(--max) * 120);
    margin-top: clamp(0px, 10vw / var(--board) * 10 * 100, var(--max) * 100);
  }
  .p-homeIntro__text.--en {
    margin-top: 13.3333333333vw; /* 既存 .p-homeIntro__text 同士の SP マージンと同じ */
    font-size: clamp(0px, 10vw / var(--board) * 10 * 28, var(--max) * 28);
    line-height: 2;
    letter-spacing: 0.07em;
  }
}

@media (min-width: 769px) {
  .p-homeAbout__textBox {
    height: auto;
  }
}

/* ===== about: p-aboutMovie の padding-top を除去 (PC/SP 両方) ===== */
.p-aboutMovie {
  padding-top: 0;
}

/* ===== about: p-aboutMovie__ttl に SP のみ padding-top 50相当 ===== */
@media (max-width: 768px) {
  .p-aboutMovie__ttl {
    padding-top: 6.6666666667vw;
  }
}

/* ===== m-mvPlate: 下端を 2px はみ出させてサブピクセル隙間を防ぐ ===== */
.m-mvPlate {
  bottom: -2px;
}
/* SP のみ: 全ページ共通で位置が低いため 30 相当（4vw）上にずらす */
@media (max-width: 768px) {
  .m-mvPlate {
    transform: translateY(-4vw);
  }
}

/* SP: judgeMv の m-mvPlate 高さを半分に（既存 46.93vw → 23.47vw） */
@media (max-width: 768px) {
  .p-judgeMv .m-mvPlate {
    height: 23.4666666667vw;
  }
}

/* SP の .p-judge ページのみ: 上で m-mvPlate を 4vw 上げた分、見出しも追従させる */
@media (max-width: 768px) {
  .p-judge .m-aboutWhatHead {
    margin-top: -15.6vw; /* 既存 -11.6vw + -4vw */
  }
}

/* ===== judge: p-judgeIntro に padding-top 160 相当 / top -1px (隙間防止) ===== */
.p-judgeIntro {
  top: -1px;
  padding-top: clamp(48px, 10vw / var(--board) * 10 * 160, var(--max) * 160);
}
/* SP のみ padding-top を 20 相当に縮小 */
@media (max-width: 768px) {
  .p-judgeIntro {
    padding-top: calc(20 / 750 * 100vw);
  }
}

/* ===== regulation: SP の p-regulationHead__lead を 30 相当に / __ttl 幅 459 相当 ===== */
@media (max-width: 768px) {
  .p-regulation .p-regulationHead__lead {
    font-size: calc(30 / 750 * 100vw);
  }
  .p-regulation .p-regulationHead__ttl {
    width: calc(459 / 750 * 100vw);
    font-size: calc(100 / 750 * 100vw);
  }
}

/* ===== judge: p-judgeSalon の上下 padding を 235 相当に (PC のみ。SP は既存 padding:0 維持) ===== */
@media (min-width: 769px) {
  .p-judgeSalon {
    padding-top: clamp(80px, 10vw / var(--board) * 10 * 235, var(--max) * 235);
    padding-bottom: clamp(80px, 10vw / var(--board) * 10 * 235, var(--max) * 235);
  }
  .p-judgeSalon__samples {
    max-width: clamp(320px, 10vw / var(--board) * 10 * 710, var(--max) * 710);
    gap: clamp(20px, 10vw / var(--board) * 10 * 70, var(--max) * 70);
  }
  .p-judgeSalon__photoMain img {
    -o-object-position: 30% center;
       object-position: 30% center;
  }
}

/* ===== about: history の年号テキストを SVG 画像に差し替え =====
 * HTML 側で <p class="p-aboutHistory__year"><img ...></p> に変更
 * 画像サイズは w96 h38 相当
 */
@media (min-width: 769px) {
  .p-aboutHistory__year img {
    display: block;
    width: clamp(48px, 10vw / var(--board) * 10 * 96, var(--max) * 96);
    height: clamp(20px, 10vw / var(--board) * 10 * 38, var(--max) * 38);
  }
}

/* ===== about: p-aboutCatch の padding-bottom を拡大 (PC: 1000 → 1300) ===== */
@media (min-width: 769px) {
  .p-aboutCatch {
    padding-bottom: clamp(80px, 10vw / var(--board) * 10 * 1300, var(--max) * 1300);
  }
}

@media (min-width: 769px) {
  /* ===== p-homeJudge__photo: object-position を左10%に寄せる ===== */
  .p-homeJudge__photo img {
    -o-object-position: 5% center;
       object-position: 5% center;
  }

  /* ===== p-homeArchives__lead: 右寄せ ===== */
  .p-homeArchives__lead {
    text-align: right;
  }
}

/* ===== p-homePamphlet__yearList button: フォントを Noto Sans JP / 一段階太く (PC/SP) ===== */
.p-homePamphlet__yearList button {
  font-family: var(--fontGothic);
  font-weight: 500;
}

/* SP のみ: li 間の gap を大きく (元: 14 / 40 → 20 / 60) */
@media (max-width: 768px) {
  .p-homePamphlet__yearList {
    gap: calc(20 / 750 * 100vw) calc(60 / 750 * 100vw);
  }
}

/* ===== p-homePamphlet__sliderWrap: padding-top をやや大きく =====
 * PC: 既存 479 → 540
 * SP: active slide が scale(1.205) で上に約 6〜7vw はみ出すぶんを確保
 */
@media (min-width: 769px) {
  .p-homePamphlet__sliderWrap {
    padding-top: clamp(40px, 10vw / var(--board) * 10 * 540, var(--max) * 540);
  }
}
@media (max-width: 768px) {
  .p-homePamphlet__sliderWrap {
    padding-top: 8vw;
    padding-bottom: 8vw;
  }
}

/* ===== p-homePamphlet スライド: track の overflow を visible に =====
 * 拡大表示時に slide が track の幅を超えてもクリップされないようにする
 */
.p-homePamphlet__slider .splide__track {
  overflow: visible;
}

/* PC のみ: スライダー自体は左右を clip にして、active 拡大の左切れを padding で吸収。
 *   - overflow-x: clip / overflow-y: visible で縦の拡大ぶんは見せる
 *   - padding-left 40 で active が左に拡大しても切れない
 *   - padding 分右にずれるぶん、ラッパーの左マージンを 40 だけ縮める (-756 → -716)
 */
@media (min-width: 769px) {
  .p-homePamphlet__slider {
    overflow-x: clip;
    overflow-y: visible;
    padding-left: clamp(20px, 10vw / var(--board) * 10 * 40, var(--max) * 40);
  }
  .p-homePamphlet__sliderWrap {
    margin-left: calc(-1 * clamp(0px, 10vw / var(--board) * 10 * 716, var(--max) * 716));
  }
}

/* ===== p-homePamphlet スライド: アクティブ拡大方式に切替 =====
 * Splide の fixedWidth を縮小後サイズ(395/363)に変更（JS側）
 * → 全 slide の box が縮小サイズで詰まる（余白なし）
 * → is-active のみ scale(1.205) で本来の大きさに拡大表示
 * 既存 style.css の scale(0.83) / scale(1) ロジックを反転して上書き
 */
.p-homePamphlet__slider .splide__slide a {
  transform: scale(1);
  transform-origin: center center;
}
.p-homePamphlet__slider .splide__slide.is-active a {
  transform: scale(1.205);
  position: relative;
  z-index: 2; /* 拡大時に隣 slide の上に乗せる */
}

/* アクティブ slide の画像に内側余白 (PC: 70 63 = 元の1.4倍) */
.p-homePamphlet__slider .splide__slide.is-active .p-homePamphlet__sliderImg {
  padding: clamp(28px, 10vw / var(--board) * 10 * 60, var(--max) * 60) clamp(25px, 10vw / var(--board) * 10 * 63, var(--max) * 63);
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .p-homePamphlet__slider .splide__slide.is-active .p-homePamphlet__sliderImg {
    padding: calc(45 / 750 * 100vw) calc(52 / 750 * 100vw);
  }
}

.p-homePamphlet__sliderImg {
  aspect-ratio: auto;
  height: calc(532 / 1920 * 100vw);
}
.p-homePamphlet__sliderImg img {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
}
@media (max-width: 768px) {
  .p-homePamphlet__sliderImg {
    height: calc(489 / 750 * 100vw);
  }
}

/* 非アクティブ slide の画像に内側余白 (PC: 30 27 = 元の60%) */
.p-homePamphlet__slider .splide__slide:not(.is-active) .p-homePamphlet__sliderImg {
  padding: clamp(12px, 10vw / var(--board) * 10 * 46, var(--max) * 46) clamp(10px, 10vw / var(--board) * 10 * 46, var(--max) * 46);
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .p-homePamphlet__slider .splide__slide:not(.is-active) .p-homePamphlet__sliderImg {
    padding: calc(32 / 750 * 100vw) calc(32 / 750 * 100vw);
  }
}

/* アクティブ slide のみ右側の余白(gap)を倍に (PC のみ)
 * Splide が inline で margin-right を付与するため !important で上書き
 */
@media (min-width: 769px) {
  .p-homePamphlet__slider .splide__slide.is-active {
    margin-right: calc(80 / 1920 * 100vw) !important;
  }
}

/* SP は active/非active で同じ量、左右均等に margin を付与
 * JS 側で gap:0 にしているため、CSS で左右均等な margin を追加
 */
@media (max-width: 768px) {
  .p-homePamphlet__slider .splide__slide {
    margin-left: calc(46 / 750 * 100vw);
    margin-right: calc(46 / 750 * 100vw) !important; /* Splide の inline gap=0 だが念のため固定 */
  }
}

/* ===== p-homeAwardItem__desc: セクション別の幅指定 =====
 * 既存 PC は 597。--salon = 557、--selfie = 535
 */
@media (min-width: 769px) {
  .p-homeAwardItem__desc {
    text-align: justify;
    text-align-last: end;
  }
  .p-homeAwardItem.--salon .p-homeAwardItem__desc {
    width: clamp(0px, 10vw / var(--board) * 10 * 557, var(--max) * 557);
  }
  .p-homeAwardItem.--selfie .p-homeAwardItem__desc {
    width: clamp(0px, 10vw / var(--board) * 10 * 585, var(--max) * 585);
  }
}

/* ===== p-homeMv__bg: 不要な padding-top / img の height・scale を除去 =====
 * 既存の padding-top:40相当 と img の height:100% + scale(1.08) が表示を歪めていたため打ち消す
 */
@media (min-width: 769px) {
  .p-homeMv__bg {
    padding-top: 0;
  }
  .p-homeMv__bg img {
    height: auto;
    transform: none;
  }
}
/* SP のみ: height:100% / scale(1) / フォーカス位置を少し左へ / margin-top 縮小 */
@media (max-width: 768px) {
  .p-homeMv__bg img {
    height: 100%;
    transform: scale(1);
    margin-top: clamp(0px, 10vw / var(--board) * 10 * 30, var(--max) * 30); /* 既存 60 → 30 */
  }
}

/* ===== p-homeMv: catchBottom の右端を sideText の右端に揃える =====
 * sideText の right = 80 相当、その内側 __text は width:100% → 右端=80
 * catchBottom の既存 right=25 をそれに合わせる（PC のみ。SP は既存値=0.8vw を維持）
 */
@media (min-width: 769px) {
  .p-homeMv__catchBottom {
    right: clamp(24px, 10vw / var(--board) * 10 * 80, var(--max) * 80);
  }
}
@media (max-width: 768px) {
  .p-homeMv__catchBottom {
    right: 5vw;
  }
  .p-homeAbout::after {
    display: none;
  }
  .p-homeMv__bg {
    width: 124vw;
    height: 124vw;
    inset: 29vw auto auto -8vw;
  }
  .p-aboutAwards__cardText {
    bottom: 8%;
  }
  .p-awardSchedule__item + .p-awardSchedule__item::before {
    border-width: calc(20 / 750 * 100vw) calc(11.5 / 750 * 100vw) 0 calc(11.5 / 750 * 100vw);
  }
  .p-award[class~="--salon"] .p-awardEntry__arrow {
    margin: 50vw 0 0;
  }
  .p-award[class~="--selfie"] .p-awardEntry__arrow {
    top: 30.6vw;
  }
  .p-judgeMv + .m-aboutWhatHead::before {
    top: 11vw;
	height: 60%;
  }
  .p-judgeCard__bar {
    top: -1px;
  }
  .p-regulation .p-regulationMovie {
    margin-top: 18.6666666667vw;
    padding-top: 0;
  }
  .p-regulation .p-regulationMovie__ttl {
    font-size: calc(70 / 750 * 100vw);
  }
  .p-regulation .p-regulationSec__lead {
    font-size: calc(26 / 750 * 100vw);
  }
  .p-judgeWiseman__personPhoto img {
    transform: scale(1.9);
    -o-object-position: 50% -400%;
       object-position: 50% -400%;
  }
}

/* ========================================
  p-awardPrizeAlt: creative-design-award GOLD 専用
======================================== */
.p-awardPrizeAlt {
  display: grid;
  grid-template-columns:
    clamp(50px, 10vw / var(--board) * 10 * 80, var(--max) * 80)
    1fr
    clamp(0px, 10vw / var(--board) * 10 * 225, var(--max) * 225);
  grid-template-rows: repeat(5, auto);
  gap: 0 clamp(18px, 10vw / var(--board) * 10 * 40, var(--max) * 40);
  width: 100%;
  margin: 0;
  padding: 0;
}
/* num: col1 — row1,3,4,5 (row2はschedule行なのでnumなし) */
.p-awardPrizeAlt__num {
  grid-column: 1;
  display: flex;
  align-items: center;
  padding-top: clamp(0px, 10vw / var(--board) * 10 * 2, var(--max) * 2);
  padding-right: clamp(10px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  border-right: 2px solid #8e7e52;
  color: var(--rankAccent);
  font-weight: var(--weightRegular);
  font-size: clamp(22px, 10vw / var(--board) * 10 * 38, var(--max) * 38);
  font-family: var(--fontGothic);
  line-height: 1;
}
/* nth-child でグリッド配置（DOM順: num,body,photoMain,schedule,num,body,num,body,photoSub,num,body） */
.p-awardPrizeAlt > :nth-child(1)  { grid-column: 1; grid-row: 1 / 3; } /* num 01 */
.p-awardPrizeAlt > :nth-child(2)  { grid-column: 2; grid-row: 1; }     /* body 01 */
.p-awardPrizeAlt > :nth-child(3)  { grid-column: 3; grid-row: 1 / 4; } /* photoMain */
.p-awardPrizeAlt > :nth-child(4)  { grid-column: 2; grid-row: 2; }     /* schedule */
.p-awardPrizeAlt > :nth-child(5)  { grid-column: 1; grid-row: 3; }     /* num 02 */
.p-awardPrizeAlt > :nth-child(6)  { grid-column: 2; grid-row: 3; }     /* body 02 */
.p-awardPrizeAlt > :nth-child(7)  { grid-column: 1; grid-row: 4; }     /* num 03 */
.p-awardPrizeAlt > :nth-child(8)  { grid-column: 2; grid-row: 4; }     /* body 03 */
.p-awardPrizeAlt > :nth-child(9)  { grid-column: 3; grid-row: 4 / 6; } /* photoSub */
.p-awardPrizeAlt > :nth-child(10) { grid-column: 1; grid-row: 5; }     /* num 04 */
.p-awardPrizeAlt > :nth-child(11) { grid-column: 2; grid-row: 5; }     /* body 04 */
/* body: col2 共通 */
.p-awardPrizeAlt__body {
  padding-top: clamp(2px, 10vw / var(--board) * 10 * 4, var(--max) * 4);
}
/* row3-5: 上に46相当のマージン（row1-2間はgapなし） */
.p-awardPrizeAlt > :nth-child(5),
.p-awardPrizeAlt > :nth-child(6),
.p-awardPrizeAlt > :nth-child(7),
.p-awardPrizeAlt > :nth-child(8),
.p-awardPrizeAlt > :nth-child(9),
.p-awardPrizeAlt > :nth-child(10),
.p-awardPrizeAlt > :nth-child(11) {
  margin-top: clamp(0px, 10vw / var(--board) * 10 * 46, var(--max) * 46);
}
.p-awardPrizeAlt__ttl {
  color: var(--rankAccent);
  letter-spacing: 0.07em;
  font-weight: var(--weightRegular);
  font-size: clamp(14px, 10vw / var(--board) * 10 * 25, var(--max) * 25);
  font-family: var(--fontGothic);
  line-height: 1.4;
}
.p-awardPrizeAlt__ttl small {
  font-weight: var(--weightRegular);
  font-size: clamp(12px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
}
.p-awardPrizeAlt__note {
  margin-top: clamp(6px, 10vw / var(--board) * 10 * 12, var(--max) * 12);
  color: #231815;
  letter-spacing: 0.07em;
  font-weight: var(--weightRegular);
  font-size: clamp(12px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
  font-family: var(--fontGothic);
  line-height: 1.7;
}
.p-awardPrizeAlt__photoMain,
.p-awardPrizeAlt__photoSub,
.p-awardPrizeAlt__schedule {
  margin: 0;
}
.p-awardPrizeAlt__photoMain img,
.p-awardPrizeAlt__photoSub img {
  width: 100%;
  height: auto;
}
.p-awardPrizeAlt__photoSub figcaption {
  text-align: center;
  font-size: clamp(12px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
}
/* PC: noteと同じスタイル */
.p-awardPrizeAlt__schedule {
  margin-top: clamp(6px, 10vw / var(--board) * 10 * 12, var(--max) * 12);
  color: #231815;
  letter-spacing: 0.07em;
  font-weight: var(--weightRegular);
  font-size: clamp(12px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
  font-family: var(--fontGothic);
  line-height: 1.7;
}
.p-awardPrizeAlt__schedule > p {
  margin: 0;
}
/* SP: 2カラム、nth-childで明示配置 */
@media (max-width: 768px) {
  .p-awardPrizeAlt {
    grid-template-columns: 9.3333333333vw 1fr;
    grid-template-rows: repeat(7, auto);
    margin-top: calc(58 / 750 * 100vw);
  }
  .p-awardPrizeAlt > :nth-child(n) {
    margin-top: 0;
  }
  .p-awardPrizeAlt > :nth-child(1)  { grid-column: 1; grid-row: 1 / 4; } /* num 01 */
  .p-awardPrizeAlt > :nth-child(2)  { grid-column: 2; grid-row: 1; }     /* body 01 */
  .p-awardPrizeAlt > :nth-child(3)  { grid-column: 2; grid-row: 2; }     /* photoMain */
  .p-awardPrizeAlt > :nth-child(4)  { grid-column: 2; grid-row: 3; }     /* schedule */
  .p-awardPrizeAlt > :nth-child(5)  { grid-column: 1; grid-row: 4; }     /* num 02 */
  .p-awardPrizeAlt > :nth-child(6)  { grid-column: 2; grid-row: 4; }     /* body 02 */
  .p-awardPrizeAlt > :nth-child(7)  { grid-column: 1; grid-row: 5 / 7; } /* num 03 */
  .p-awardPrizeAlt > :nth-child(8)  { grid-column: 2; grid-row: 5; }     /* body 03 */
  .p-awardPrizeAlt > :nth-child(9)  { grid-column: 2; grid-row: 6; }     /* photoSub */
  .p-awardPrizeAlt > :nth-child(10) { grid-column: 1; grid-row: 7; }     /* num 04 */
  .p-awardPrizeAlt > :nth-child(11) { grid-column: 2; grid-row: 7; }     /* body 04 */
  /* num: SP スタイル */
  .p-awardPrizeAlt__num {
    display: flex;
    align-items: center;
    align-self: stretch;
    justify-content: flex-start;
    padding: 0;
    border-right-width: 1px;
    border-right-color: #8e7e52;
    color: var(--rankAccent);
    letter-spacing: -0.02em;
    font-weight: var(--weightRegular);
    font-size: 4.9333333333vw;
    font-family: var(--fontGothic);
    line-height: 1.1891891892;
  }
  /* body: SP スタイル */
  .p-awardPrizeAlt__body {
    padding-top: 0;
  }
  .p-awardPrizeAlt__ttl {
    color: var(--rankAccent);
    letter-spacing: 0.07em;
    font-weight: var(--weightRegular);
    font-size: 4.2666666667vw;
    font-family: var(--fontGothic);
    line-height: 1.15625;
  }
  .p-awardPrizeAlt__ttl small {
    letter-spacing: 0.07em;
    font-size: 3.3333333333vw;
  }
  .p-awardPrizeAlt__note {
    margin-top: 2.6666666667vw;
    color: var(--colorBlack);
    letter-spacing: 0.07em;
    font-weight: var(--weightRegular);
    font-size: 2.6666666667vw;
    font-family: var(--fontGothic);
    line-height: 2.2;
  }
  /* photoMain: SP */
  .p-awardPrizeAlt > :nth-child(3) {
    width: calc(225 / 750 * 100vw);
    margin-top: calc(70 / 750 * 100vw);
  }
  /* photoSub: SP */
  .p-awardPrizeAlt > :nth-child(9) {
    width: calc(225 / 750 * 100vw);
    margin-top: calc(41 / 750 * 100vw);
  }
  .p-awardPrizeAlt__photoSub figcaption {
    margin-top: calc(25 / 750 * 100vw);
  }
  /* schedule: SP 枠付きボックス型 */
  .p-awardPrizeAlt > :nth-child(4) {
    display: inline-block;
    width: calc(333 / 750 * 100vw);
    margin-top: calc(45 / 750 * 100vw);
    padding: clamp(10px, 10vw / var(--board) * 10 * 20, var(--max) * 20) calc(20 / 750 * 100vw);
    border: 1px solid #707070;
    font-size: 2.6666666667vw;
  }
  /* row間マージン */
  .p-awardPrizeAlt > :nth-child(5),
  .p-awardPrizeAlt > :nth-child(6),
  .p-awardPrizeAlt > :nth-child(7),
  .p-awardPrizeAlt > :nth-child(8),
  .p-awardPrizeAlt > :nth-child(10),
  .p-awardPrizeAlt > :nth-child(11) {
    margin-top: calc(46 / 750 * 100vw);
  }
}

/* ===== PC のみ: 各種レイアウト・サイズ調整 ===== */
@media (min-width: 769px) {
  /* homeAwardItem: creative の num top除去 */
  .p-homeAwardItem.--creative .p-homeAwardItem__num {
    top: 0;
  }

  /* header subMenu 位置調整 */
  .header__subMenu {
    top: clamp(0px, 10vw / var(--board) * 10 * 98, var(--max) * 80);
  }
  .--top:not(.is-fixed) .header__subMenu {
    top: clamp(0px, 10vw / var(--board) * 10 * 156, var(--max) * 156);
    padding-top: clamp(0px, 10vw / var(--board) * 10 * 0, var(--max) * 0);
  }
  .header__subMenu.--regulation {
    top: clamp(0px, 10vw / var(--board) * 10 * 98, var(--max) * 80);
  }
  .--top:not(.is-fixed) .header__subMenu.--regulation {
    top: clamp(0px, 10vw / var(--board) * 10 * 156, var(--max) * 156);
    padding-top: clamp(0px, 10vw / var(--board) * 10 * 0, var(--max) * 0);
  }

  /* header navBtn: FIX時のみ */
  .header.--top.is-fixed .header__navList > li.--btn > a {
    padding-top: clamp(0px, 10vw / var(--board) * 10 * 9, var(--max) * 9);
    padding-bottom: clamp(0px, 10vw / var(--board) * 10 * 9, var(--max) * 9);
  }
  .header.--top.is-fixed .header__navList > li.--btn > a .__en {
    line-height: 1.3;
  }

  /* regulation: topNote 左寄せ */
  .p-regulationSec__topNote {
    text-align: left;
  }

  /* creative-design-award: MV画像フォーカス位置 */
  .p-award[class~="--creative"] .p-awardMv .m-mvPhoto img {
    -o-object-position: 40% 25%;
       object-position: 40% 25%;
  }

  /* aboutAwards */
  .p-aboutAwards {
    margin-top: clamp(var(--max) * -750, 10vw / var(--board) * 10 * -750, 0px);
    padding-bottom: clamp(80px, 10vw / var(--board) * 10 * 276, var(--max) * 276);
  }
  .p-aboutAwards__head {
    padding-left: clamp(0px, 10vw / var(--board) * 10 * 225, var(--max) * 225);
    padding-right: clamp(0px, 10vw / var(--board) * 10 * 225, var(--max) * 225);
  }

  /* m-linkBtn */
  .m-linkBtn {
    mix-blend-mode: normal;
    font-size: clamp(12px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
  }

  /* homeAbout */
  .p-homeAbout {
    height: clamp(0px, 10vw / var(--board) * 10 * 1569, var(--max) * 1569);
    background-color: #fff;
  }
  .p-homeAbout::after {
    height: clamp(0px, 10vw / var(--board) * 10 * 643, var(--max) * 643);
    z-index: 0;
  }
  .p-homeAbout__bg {
    top: clamp(0px, 10vw / var(--board) * 10 * 172, var(--max) * 172);
    height: clamp(0px, 10vw / var(--board) * 10 * 1048, var(--max) * 1048);
  }
  .p-homeAbout__textBox {
    top: clamp(0px, 10vw / var(--board) * 10 * 628, var(--max) * 628);
  }
  .p-homeAbout__movieBox {
    top: clamp(0px, 10vw / var(--board) * 10 * 830, var(--max) * 830);
  }

  /* homeArchives */
  .p-homeArchives__inner {
    top: clamp(0px, 10vw / var(--board) * 10 * 343, var(--max) * 343);
    left: auto;
    right: clamp(0px, 10vw / var(--board) * 10 * 225, var(--max) * 225);
  }

  /* awardSchedule 三角 */
  .p-awardSchedule__item + .p-awardSchedule__item::before {
    border-width: clamp(10px, 10vw / var(--board) * 10 * 20, var(--max) * 20) clamp(6px, 10vw / var(--board) * 10 * 11.5, var(--max) * 11.5) 0 clamp(6px, 10vw / var(--board) * 10 * 11.5, var(--max) * 11.5);
  }

  /* awardPrize__rankCount */
  .p-awardPrize__rankCount {
    font-size: clamp(12px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
  }

  /* awardContainer__side */
  .p-awardContainer__side {
    height: auto;
  }

  /* ===== clamp固定px値 → var(--board)/var(--max) 変換 ===== */

  /* aboutAwards */
  .p-aboutAwards__num {
    width: clamp(44px, 10vw / var(--board) * 10 * 68, var(--max) * 68);
    height: clamp(44px, 10vw / var(--board) * 10 * 68, var(--max) * 68);
    font-size: clamp(13px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
  }
  .p-aboutAwards__cardText {
    bottom: clamp(24px, 10vw / var(--board) * 10 * 43, var(--max) * 43);
    padding: 0 clamp(14px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
  .p-aboutAwards__cardLead {
    font-size: clamp(12px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
  }
  .p-aboutAwards__cardTtl {
    margin-top: clamp(var(--max) * -8, 10vw / var(--board) * 10 * -8, 0px);
    font-size: clamp(24px, 10vw / var(--board) * 10 * 46, var(--max) * 46);
  }
  .p-aboutAwards__cardBtn {
    gap: clamp(10px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
    margin-top: clamp(12px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
    padding: 0 clamp(12px, 10vw / var(--board) * 10 * 20, var(--max) * 20) 0 clamp(22px, 10vw / var(--board) * 10 * 40, var(--max) * 40);
    width: clamp(160px, 10vw / var(--board) * 10 * 252, var(--max) * 252);
    height: clamp(44px, 10vw / var(--board) * 10 * 63, var(--max) * 63);
    font-size: clamp(13px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
  }

  /* aboutHistory */
  .p-aboutHistory__lead {
    font-size: clamp(16px, 10vw / var(--board) * 10 * 30, var(--max) * 30);
  }
  .p-aboutHistory__ttl {
    font-size: clamp(60px, 10vw / var(--board) * 10 * 180, var(--max) * 180);
  }
  .p-aboutHistory__item {
    margin-bottom: clamp(24px, 10vw / var(--board) * 10 * 58, var(--max) * 58);
    -moz-column-gap: clamp(16px, 10vw / var(--board) * 10 * 35, var(--max) * 35);
         column-gap: clamp(16px, 10vw / var(--board) * 10 * 35, var(--max) * 35);
    grid-template-columns: clamp(48px, 10vw / var(--board) * 10 * 96, var(--max) * 96) clamp(20px, 10vw / var(--board) * 10 * 39, var(--max) * 39) 1fr;
  }
  .p-aboutHistory__year {
    font-size: clamp(22px, 10vw / var(--board) * 10 * 38, var(--max) * 38);
  }
  .p-aboutHistory__event {
    font-size: clamp(13px, 10vw / var(--board) * 10 * 22, var(--max) * 22);
  }

  /* aboutBrand */
  .p-aboutBrand__bgText {
    font-size: clamp(120px, 10vw / var(--board) * 10 * 400, var(--max) * 400);
  }
  .p-aboutBrand__ttl {
    font-size: clamp(16px, 10vw / var(--board) * 10 * 25, var(--max) * 25);
    font-weight: 600;
  }
  .p-aboutBrand__desc p {
    font-size: clamp(13px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }

  /* aboutCatch */
  .p-aboutCatch__bg {
    top: clamp(var(--max) * -1300, 10vw / var(--board) * 10 * -1300, 0px);
  }

  /* judgeIntro */
  .p-judgeIntro__ttl {
    font-size: clamp(36px, 10vw / var(--board) * 10 * 69, var(--max) * 69);
  }
  .p-judgeIntro__tag {
    width: clamp(240px, 10vw / var(--board) * 10 * 368, var(--max) * 368);
    height: clamp(32px, 10vw / var(--board) * 10 * 40, var(--max) * 40);
    font-size: clamp(13px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
  .p-judgeIntro__desc p {
    font-size: clamp(13px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
  .p-judgeIntro__photoMain {
    top: 27.785869%;
  }

  /* judgeCreative */
  .p-judgeCreative {
    padding-top: clamp(0px, 10vw / var(--board) * 10 * 50, var(--max) * 50);
  }
  .p-judgeCreative__bgText {
    font-size: clamp(280px, 10vw / var(--board) * 10 * 800, var(--max) * 800);
  }
  .p-judgeCreative__category {
    gap: clamp(6px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
    font-size: clamp(36px, 10vw / var(--board) * 10 * 85, var(--max) * 85);
  }
  .p-judgeCreative__desc p {
    font-size: clamp(13px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }

  /* judgeCard */
  .p-judgeCard__name {
    gap: clamp(8px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
  }
  .p-judgeCard__brand {
    font-size: clamp(13px, 10vw / var(--board) * 10 * 19, var(--max) * 19);
  }

  /* judgeSpecial */
  .p-judgeSpecial__ttl {
    font-size: clamp(36px, 10vw / var(--board) * 10 * 85, var(--max) * 85);
  }
  .p-judgeSpecial__desc p {
    font-size: clamp(13px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
  .p-judgeSpecialCard__name {
    font-size: clamp(14px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
  .p-judgeSpecialCard__role {
    font-size: clamp(11px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
  }
  .p-judgeSpecialCard__photo img {
    height: 101%;
  }
  .p-judgeSpecialCard__year .__num {
    font-size: clamp(14px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
  .p-judgeSpecialCard__year .__label {
    font-size: clamp(11px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
  }

  /* judgeWiseman */
  .p-judgeWiseman__ttl {
    font-size: clamp(36px, 10vw / var(--board) * 10 * 85, var(--max) * 85);
  }
  .p-judgeWiseman__desc p {
    font-size: clamp(13px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
  .p-judgeWiseman__personName {
    gap: clamp(8px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
    font-size: clamp(14px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  }
}

/* ===== regulation: Movie セクションの padding-top 除去 + ttl 半分上にはみ出す ===== */
.p-regulationMovie {
  padding-top: 0;
  padding-bottom: clamp(20px, 10vw / var(--board) * 10 * 40, var(--max) * 40); /* 既存 80 → 40 */
}
.p-regulationMovie__ttl,
.p-regulationMovie__sub,
.p-regulationMovie__player {
  position: relative;
  top: -0.5em;
}
.p-regulationMovie__sub {
  margin-top: 0;
}
.p-regulationMovie__player {
  margin-top: clamp(12px, 10vw / var(--board) * 10 * 25, var(--max) * 25); /* 既存 50 → 25 */
}

/* ===== regulation: --last の下余白を padding → margin に変更 ===== */
.p-regulationSec--last {
  padding-bottom: 0;
  margin-bottom: clamp(60px, 10vw / var(--board) * 10 * 160, var(--max) * 160);
}

/* ===== regulation: btnArrow のサイズ ===== */
.p-regulationEntry__btnArrow {
  width: clamp(16px, 10vw / var(--board) * 10 * 31.5, var(--max) * 31.5);
  height: clamp(16px, 10vw / var(--board) * 10 * 31.5, var(--max) * 31.5);
}

/* ===== regulation: ttl セミボールド ===== */
.p-regulationEntry__ttl {
  font-weight: 600;
}

/* ===== regulation: btn ピル型（PC/SP共通） ===== */
.p-regulationEntry__btn {
  border-radius: 9999px;
}
/* ===== regulation: btn サイズ（PC のみ） ===== */
@media (min-width: 769px) {
  .p-regulationEntry__btn {
    width: clamp(280px, 10vw / var(--board) * 10 * 776, var(--max) * 776);
    height: clamp(48px, 10vw / var(--board) * 10 * 81, var(--max) * 81);
    gap: clamp(8px, 10vw / var(--board) * 10 * 19, var(--max) * 19);
  }
}

/* ===== regulation: checkBox の gap ===== */
.p-regulationEntry__checkBox {
  gap: clamp(12px, 10vw / var(--board) * 10 * 24, var(--max) * 24);
  padding: 0;
}

/* ===== regulation: checkMark を relative に / 位置リセット ===== */
.p-regulationEntry__checkMark {
  position: relative;
  top: auto;
  right: auto;
  transform: none;
}

/* ===== regulation: disabled時のチェックボックス背景グレー ===== */
.p-regulationEntry__checkInput:disabled + .p-regulationEntry__checkBox {
  background-color: #999;
}

/* ===== regulation: Online注釈のぶら下げインデント ===== */
.p-regulationOnline__note {
  padding-left: 1em;
  text-indent: -1em;
  letter-spacing: 0.07em;
}

/* ===== regulation: bgText の改行防止 ===== */
.p-regulationSec__bgText {
  white-space: nowrap;
}

/* ===== award: photoSubs img の aspect-ratio 打ち消し ===== */
.p-awardPrize__photoSubs img {
  aspect-ratio: auto;
}

/* ===== salon-style-award: Prize リストの下余白 ===== */
.p-award[class~="--salon"] .p-awardPrize__list.is-salon {
  margin-bottom: clamp(0px, 10vw / var(--board) * 10 * 70, var(--max) * 70);
}

/* ===== salon-style-award SP: p-awardSec/p-awardAbout の min-height 除去 + padding-bottom 追加 ===== */
@media (max-width: 768px) {
  .p-award #award.p-awardSec {
    min-height: auto;
  }
  .p-award[class~="--salon"] #award.p-awardSec {
    min-height: auto;
    padding-bottom: 11.8666666667vw;
  }
}

/* ===== regulation: disabled時、文字のopacityは1を維持 ===== */
.p-regulationEntry__btn[aria-disabled=true] {
  opacity: 1;
  border-color: rgba(255, 255, 255, 0.5);
  background-color: rgba(255, 255, 255, 0.1);
}
.p-regulationEntry__btn[aria-disabled=true] .p-regulationEntry__btnArrow {
  opacity: 0.5;
}

/* ===== award SP: p-awardPrize__list を flex→grid に変更（Safari flex+grid ネスト対策） ===== */
@media (max-width: 768px) {
  .p-award .p-awardPrize__list {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 6.6666666667vw;
  }
  .p-award .p-awardPrize .p-awardPrize__rank[class~="--silver"] .p-awardPrize__list {
    row-gap: 5.0666666667vw;
  }
  .p-award .p-awardPrize .p-awardPrize__rank[class~="--bronze"] .p-awardPrize__list {
    row-gap: 4.8vw;
  }
}

/* ===== TOP SP: about_bg / award_intro のSP画像出し分け対応 ===== */
@media (max-width: 768px) {
  .p-homeAbout__bg img {
    aspect-ratio: 750 / 1177;
  }
  .p-homeAbout__bg {
    height: auto;
    max-height: 186.5333333333vw;
    overflow: hidden;
  }
}

/* ===== selfie-award: エントリー画像を上下中央揃え ===== */
.p-award[class~="--selfie"] .p-awardEntry__stepImg {
  align-items: center;
}

/* ========================================
  ローディング loading
======================================== */
.loading {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  overflow: hidden;
  animation: loadingOut 0s 3s ease 1 forwards;
}

.loading_overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  animation: loadingOverlay 1s 2s ease 1 forwards;
  transform-origin: right center;
}

.loading_overlay1 {
  background: #ccc;
  animation-delay: 2.2s;
}

.loading_overlay2 {
  background: #999;
  animation-delay: 2.1s;
}

.loading_overlay3 {
  background: #333;
  animation-delay: 2s;
}

.loading_logo {
  width: clamp(60px, 10vw / var(--board) * 10 * 115, var(--max) * 115);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
  opacity: 0;
  animation:
    loadingLogo-in 1s 0.2s ease 1 forwards,
    loadingLogo-out 0.3s 2.2s ease 1 forwards;
}

.loading_logo img {
  width: 100%;
}

@keyframes loadingOverlay {
  0% {
    transform: scale(1, 1);
  }

  100% {
    transform: scale(0, 1);
  }
}

@keyframes loadingLogo-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes loadingLogo-out {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes loadingOut {
  0% {
    transform: translateX(0);
    visibility: visible;
  }

  100% {
    transform: translateX(-100%);
    visibility: hidden;
  }
}

/* ========================================
  MV 出現アニメーション（ローディング終了後）
  ローディング完了=3s、そこから順にフェードイン
======================================== */
/* MV要素 + ナビ: 初期非表示 */
.p-homeMv__bg,
.p-homeMv__logo,
.p-homeMv__catchTop,
.p-homeMv__catchBottom,
.p-homeMv__lead,
.p-homeMv__logoText,
.p-homeMv__sideText,
.header.--top .header__navList > li {
  opacity: 0;
}

/* 左からフェードイン */
.p-homeMv__catchTop,
.p-homeMv__logo,
.p-homeMv__logoText,
.p-homeMv__lead {
  animation: mvFromLeft 0.8s ease forwards;
}

/* 右からフェードイン */
.p-homeMv__catchBottom,
.p-homeMv__sideText {
  animation: mvFromRight 0.8s ease forwards;
}

/* 下からフェードイン */
.p-homeMv__bg,
.header.--top .header__navList > li {
  animation: mvFromBottom 0.8s ease forwards;
}

/* 第1波 (3s): キャッチ + ロゴテキスト */
.p-homeMv__catchTop    { animation-delay: 3s; }
.p-homeMv__logoText    { animation-delay: 3s; }
.p-homeMv__catchBottom { animation-delay: 3s; }

/* 第2波 (3.6s): リード + ロゴ + サイドテキスト — 第1波完了0.2s前に開始 */
.p-homeMv__lead     { animation-delay: 3.6s; }
.p-homeMv__logo     { animation-delay: 3.6s; }
.p-homeMv__sideText { animation-delay: 3.6s; }

/* 第3波 (4.2s): 背景 — 第2波完了0.2s前に開始 */
.p-homeMv__bg { animation-delay: 4.2s; }

/* 第4波 (4.3s〜): ナビ 左から順に — bgとほぼ同時 */
.header.--top .header__navList > li:nth-child(1) { animation-delay: 4.3s; }
.header.--top .header__navList > li:nth-child(2) { animation-delay: 4.45s; }
.header.--top .header__navList > li:nth-child(3) { animation-delay: 4.6s; }
.header.--top .header__navList > li:nth-child(4) { animation-delay: 4.75s; }
.header.--top .header__navList > li:nth-child(5) { animation-delay: 4.9s; }

@keyframes mvFromLeft {
  0% { opacity: 0; transform: translateX(-30px); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes mvFromRight {
  0% { opacity: 0; transform: translateX(30px); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes mvFromBottom {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}


/* ========================================
  Lenis 慣性スクロール
======================================== */
html.lenis, html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto;
}