@charset "UTF-8";
/********************************************************/
/* -------------------------------------------
* 【rem単位の設定】
* 16pxを1remとした時の、1px分の計算用ベース
* padding: calc(24 * var(--px)); →24px相当
* font-size: calc(32 * var(--px)); → 32px相当
* ------------------------------------------- */
:root {
  --px: calc(1rem / 16);
}

/* -------------------------------------------
 * フォントサイズのroot
 * -------------------------------------------*/
:root {
  /* --- 1 to 10 --- */
  --f1: calc(1 * var(--px));
  --f2: calc(2 * var(--px));
  --f3: calc(3 * var(--px));
  --f4: calc(4 * var(--px));
  --f5: calc(5 * var(--px));
  --f6: calc(6 * var(--px));
  --f7: calc(7 * var(--px));
  --f8: calc(8 * var(--px));
  --f9: calc(9 * var(--px));
  --f10: calc(10 * var(--px));
  /* --- 11 to 20 --- */
  --f11: calc(11 * var(--px));
  --f12: calc(12 * var(--px));
  --f13: calc(13 * var(--px));
  --f14: clamp(calc(13 * var(--px)), calc(14 / 580 * 100vw), calc(14 * var(--px)));
  --f15: clamp(calc(14 * var(--px)), calc(15 / 580 * 100vw), calc(15 * var(--px)));
  --f16: clamp(calc(14 * var(--px)), calc(16 / 580 * 100vw), calc(16 * var(--px)));
  --f17: clamp(calc(14 * var(--px)), calc(17 / 580 * 100vw), calc(17 * var(--px)));
  --f18: clamp(calc(16 * var(--px)), calc(18 / 580 * 100vw), calc(18 * var(--px)));
  --f19: clamp(calc(18 * var(--px)), calc(19 / 580 * 100vw), calc(19 * var(--px)));
  --f20: clamp(calc(18 * var(--px)), calc(20 / 580 * 100vw), calc(20 * var(--px)));
  /* --- 21 to 30 --- */
  --f21: clamp(calc(18 * var(--px)), calc(21 / 580 * 100vw), calc(21 * var(--px)));
  --f22: clamp(calc(18 * var(--px)), calc(22 / 580 * 100vw), calc(22 * var(--px)));
  --f23: clamp(calc(18 * var(--px)), calc(23 / 580 * 100vw), calc(23 * var(--px)));
  --f24: clamp(calc(17 * var(--px)), calc(24 / 580 * 100vw), calc(24 * var(--px)));
  --f25: clamp(calc(18 * var(--px)), calc(25 / 580 * 100vw), calc(25 * var(--px)));
  --f26: clamp(calc(18 * var(--px)), calc(26 / 580 * 100vw), calc(26 * var(--px)));
  --f27: clamp(calc(18 * var(--px)), calc(27 / 580 * 100vw), calc(27 * var(--px)));
  --f28: clamp(calc(18 * var(--px)), calc(28 / 580 * 100vw), calc(28 * var(--px)));
  --f29: clamp(calc(18 * var(--px)), calc(29 / 580 * 100vw), calc(29 * var(--px)));
  --f30: clamp(calc(18 * var(--px)), calc(30 / 580 * 100vw), calc(30 * var(--px)));
  /* --- 31 to 40 --- */
  --f31: clamp(calc(18 * var(--px)), calc(31 / 580 * 100vw), calc(31 * var(--px)));
  --f32: clamp(calc(22 * var(--px)), calc(32 / 580 * 100vw), calc(32 * var(--px)));
  --f35: clamp(calc(22 * var(--px)), calc(35 / 580 * 100vw), calc(35 * var(--px)));
  --f36: clamp(calc(22 * var(--px)), calc(36 / 580 * 100vw), calc(36 * var(--px)));
  --f37: clamp(calc(20 * var(--px)), calc(37 / 580 * 100vw), calc(37 * var(--px)));
  --f38: clamp(calc(20 * var(--px)), calc(38 / 580 * 100vw), calc(38 * var(--px)));
  --f39: clamp(calc(20 * var(--px)), calc(39 / 580 * 100vw), calc(39 * var(--px)));
  --f40: clamp(calc(24 * var(--px)), calc(40 / 580 * 100vw), calc(40 * var(--px)));
  /* --- 41 to 50 --- */
  --f41: clamp(calc(24 * var(--px)), calc(41 / 580 * 100vw), calc(41 * var(--px)));
  --f42: clamp(calc(24 * var(--px)), calc(42 / 580 * 100vw), calc(42 * var(--px)));
  --f43: clamp(calc(24 * var(--px)), calc(43 / 580 * 100vw), calc(43 * var(--px)));
  --f44: clamp(calc(24 * var(--px)), calc(44 / 580 * 100vw), calc(44 * var(--px)));
  --f45: clamp(calc(24 * var(--px)), calc(45 / 580 * 100vw), calc(45 * var(--px)));
  --f46: clamp(calc(24 * var(--px)), calc(46 / 580 * 100vw), calc(46 * var(--px)));
  --f47: clamp(calc(24 * var(--px)), calc(47 / 580 * 100vw), calc(47 * var(--px)));
  --f48: clamp(calc(23 * var(--px)), calc(48 / 580 * 100vw), calc(48 * var(--px)));
  --f49: clamp(calc(25 * var(--px)), calc(49 / 580 * 100vw), calc(49 * var(--px)));
  --f50: clamp(calc(30 * var(--px)), calc(50 / 580 * 100vw), calc(50 * var(--px)));
  /* --- 51 to 60 --- */
  --f51: clamp(calc(30 * var(--px)), calc(51 / 580 * 100vw), calc(51 * var(--px)));
  --f52: clamp(calc(30 * var(--px)), calc(52 / 580 * 100vw), calc(52 * var(--px)));
  --f53: clamp(calc(30 * var(--px)), calc(53 / 580 * 100vw), calc(53 * var(--px)));
  --f54: clamp(calc(30 * var(--px)), calc(54 / 580 * 100vw), calc(54 * var(--px)));
  --f55: clamp(calc(30 * var(--px)), calc(55 / 580 * 100vw), calc(55 * var(--px)));
  --f56: clamp(calc(30 * var(--px)), calc(56 / 580 * 100vw), calc(56 * var(--px)));
  --f57: clamp(calc(30 * var(--px)), calc(57 / 580 * 100vw), calc(57 * var(--px)));
  --f58: clamp(calc(30 * var(--px)), calc(58 / 580 * 100vw), calc(58 * var(--px)));
  --f59: clamp(calc(30 * var(--px)), calc(59 / 580 * 100vw), calc(59 * var(--px)));
  --f60: clamp(calc(30 * var(--px)), calc(60 / 580 * 100vw), calc(60 * var(--px)));
  /* --- 61 to 70 --- */
  --f61: clamp(calc(30 * var(--px)), calc(61 / 580 * 100vw), calc(61 * var(--px)));
  --f62: clamp(calc(30 * var(--px)), calc(62 / 580 * 100vw), calc(62 * var(--px)));
  --f63: clamp(calc(30 * var(--px)), calc(63 / 580 * 100vw), calc(63 * var(--px)));
  --f64: clamp(calc(30 * var(--px)), calc(64 / 580 * 100vw), calc(64 * var(--px)));
  --f65: clamp(calc(30 * var(--px)), calc(65 / 580 * 100vw), calc(65 * var(--px)));
  --f66: clamp(calc(30 * var(--px)), calc(66 / 580 * 100vw), calc(66 * var(--px)));
  --f67: clamp(calc(30 * var(--px)), calc(67 / 580 * 100vw), calc(67 * var(--px)));
  --f68: clamp(calc(30 * var(--px)), calc(68 / 580 * 100vw), calc(68 * var(--px)));
  --f69: clamp(calc(30 * var(--px)), calc(69 / 580 * 100vw), calc(69 * var(--px)));
  --f70: clamp(calc(30 * var(--px)), calc(70 / 580 * 100vw), calc(70 * var(--px)));
  /* --- 71 to 80 --- */
  --f71: clamp(calc(30 * var(--px)), calc(71 / 580 * 100vw), calc(71 * var(--px)));
  --f72: clamp(calc(30 * var(--px)), calc(72 / 580 * 100vw), calc(72 * var(--px)));
  --f73: clamp(calc(30 * var(--px)), calc(73 / 580 * 100vw), calc(73 * var(--px)));
  --f74: clamp(calc(30 * var(--px)), calc(74 / 580 * 100vw), calc(74 * var(--px)));
  --f75: clamp(calc(30 * var(--px)), calc(75 / 580 * 100vw), calc(75 * var(--px)));
  --f76: clamp(calc(30 * var(--px)), calc(76 / 580 * 100vw), calc(76 * var(--px)));
  --f77: clamp(calc(30 * var(--px)), calc(77 / 580 * 100vw), calc(77 * var(--px)));
  --f78: clamp(calc(30 * var(--px)), calc(78 / 580 * 100vw), calc(78 * var(--px)));
  --f79: clamp(calc(30 * var(--px)), calc(79 / 580 * 100vw), calc(79 * var(--px)));
  --f80: clamp(calc(30 * var(--px)), calc(80 / 580 * 100vw), calc(80 * var(--px)));
  /* --- 81 to 90 --- */
  --f81: clamp(calc(30 * var(--px)), calc(81 / 580 * 100vw), calc(81 * var(--px)));
  --f82: clamp(calc(30 * var(--px)), calc(82 / 580 * 100vw), calc(82 * var(--px)));
  --f83: clamp(calc(30 * var(--px)), calc(83 / 580 * 100vw), calc(83 * var(--px)));
  --f84: clamp(calc(30 * var(--px)), calc(84 / 580 * 100vw), calc(84 * var(--px)));
  --f85: clamp(calc(30 * var(--px)), calc(85 / 580 * 100vw), calc(85 * var(--px)));
  --f86: clamp(calc(30 * var(--px)), calc(86 / 580 * 100vw), calc(86 * var(--px)));
  --f87: clamp(calc(30 * var(--px)), calc(87 / 580 * 100vw), calc(87 * var(--px)));
  --f88: clamp(calc(30 * var(--px)), calc(88 / 580 * 100vw), calc(88 * var(--px)));
  --f89: clamp(calc(30 * var(--px)), calc(89 / 580 * 100vw), calc(89 * var(--px)));
  --f90: clamp(calc(30 * var(--px)), calc(90 / 580 * 100vw), calc(90 * var(--px)));
  /* --- 91 to 100 --- */
  --f91: clamp(calc(30 * var(--px)), calc(91 / 580 * 100vw), calc(91 * var(--px)));
  --f92: clamp(calc(30 * var(--px)), calc(92 / 580 * 100vw), calc(92 * var(--px)));
  --f93: clamp(calc(30 * var(--px)), calc(93 / 580 * 100vw), calc(93 * var(--px)));
  --f94: clamp(calc(30 * var(--px)), calc(94 / 580 * 100vw), calc(94 * var(--px)));
  --f95: clamp(calc(30 * var(--px)), calc(95 / 580 * 100vw), calc(95 * var(--px)));
  --f96: clamp(calc(30 * var(--px)), calc(96 / 580 * 100vw), calc(96 * var(--px)));
  --f97: clamp(calc(30 * var(--px)), calc(97 / 580 * 100vw), calc(97 * var(--px)));
  --f98: clamp(calc(30 * var(--px)), calc(98 / 580 * 100vw), calc(98 * var(--px)));
  --f99: clamp(calc(30 * var(--px)), calc(99 / 580 * 100vw), calc(99 * var(--px)));
  --f100: clamp(calc(30 * var(--px)), calc(100 / 580 * 100vw), calc(100 * var(--px)));
  /* --- 101 to 110 --- */
  --f101: clamp(calc(30 * var(--px)), calc(101 / 580 * 100vw), calc(101 * var(--px)));
  --f102: clamp(calc(30 * var(--px)), calc(102 / 580 * 100vw), calc(102 * var(--px)));
  --f103: clamp(calc(30 * var(--px)), calc(103 / 580 * 100vw), calc(103 * var(--px)));
  --f104: clamp(calc(30 * var(--px)), calc(104 / 580 * 100vw), calc(104 * var(--px)));
  --f105: clamp(calc(30 * var(--px)), calc(105 / 580 * 100vw), calc(105 * var(--px)));
  --f106: clamp(calc(30 * var(--px)), calc(106 / 580 * 100vw), calc(106 * var(--px)));
  --f107: clamp(calc(30 * var(--px)), calc(107 / 580 * 100vw), calc(107 * var(--px)));
  --f108: clamp(calc(30 * var(--px)), calc(108 / 580 * 100vw), calc(108 * var(--px)));
  --f109: clamp(calc(30 * var(--px)), calc(109 / 580 * 100vw), calc(109 * var(--px)));
  --f110: clamp(calc(30 * var(--px)), calc(110 / 580 * 100vw), calc(110 * var(--px)));
  /* --- 111 to 120 --- */
  --f111: clamp(calc(30 * var(--px)), calc(111 / 580 * 100vw), calc(111 * var(--px)));
  --f112: clamp(calc(30 * var(--px)), calc(112 / 580 * 100vw), calc(112 * var(--px)));
  --f113: clamp(calc(30 * var(--px)), calc(113 / 580 * 100vw), calc(113 * var(--px)));
  --f114: clamp(calc(30 * var(--px)), calc(114 / 580 * 100vw), calc(114 * var(--px)));
  --f115: clamp(calc(30 * var(--px)), calc(115 / 580 * 100vw), calc(115 * var(--px)));
  --f116: clamp(calc(30 * var(--px)), calc(116 / 580 * 100vw), calc(116 * var(--px)));
  --f117: clamp(calc(30 * var(--px)), calc(117 / 580 * 100vw), calc(117 * var(--px)));
  --f118: clamp(calc(30 * var(--px)), calc(118 / 580 * 100vw), calc(118 * var(--px)));
  --f119: clamp(calc(30 * var(--px)), calc(119 / 580 * 100vw), calc(119 * var(--px)));
  --f120: clamp(calc(30 * var(--px)), calc(120 / 580 * 100vw), calc(120 * var(--px)));
}

/* -------------------------------------------
 * メインコンテンツ幅
 * -------------------------------------------*/
:root {
  --main-width: calc(570 * var(--px));
}

/* -------------------------------------------
* カラー変数
* -------------------------------------------*/
:root {
  --red: #ee3435;
  --gray: #e7e4e4;
}

/* -------------------------------------------
 * フォントファミリー
 * -------------------------------------------*/
:root {
  --shippori: "Shippori Antique", sans-serif;
  --inter: "Inter", sans-serif;
}

/********************************************************/
html {
  font-size: 100%;
  -webkit-tap-highlight-color: transparent;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: clip;
  font-size: var(--f24);
  letter-spacing: -0.06em;
  color: #000;
  background: #fff;
  font-family: var(--shippori);
  font-weight: normal;
  height: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  line-height: 1.67;
  width: 100%;
}

/* -------------------------------------------
 * 共通スタイル
 * -------------------------------------------*/
a[href^="tel:"] {
  pointer-events: none;
}
@media (max-width: 834px) {
  a[href^="tel:"] {
    pointer-events: all;
  }
}

.inner {
  width: 80%;
  margin-inline: auto;
}

/* -------------------------------------------
 * 改行
 * -------------------------------------------*/
.no-scroll {
  overflow: hidden;
  height: 100svh;
}

.br-sp {
  display: none;
}
@media (max-width: 834px) {
  .br-sp {
    display: block;
  }
}

.no-br-sp {
  display: block;
}
@media (max-width: 834px) {
  .no-br-sp {
    display: none;
  }
}

/* -------------------------------------------
 * 見出し
 * -------------------------------------------*/
.sec__title-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  line-height: 1.8;
  margin-bottom: 4rem;
}
@media (max-width: 834px) {
  .sec__title-wrap {
    margin-bottom: 2rem;
  }
}

.sec__title--ja {
  font-size: var(--f24);
}

.sec__title--en {
  font-size: var(--f18);
}

.sec__title-wrap--left {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.sec__title-wrap--center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

/* -------------------------------------------
 * ボタン、リンク
 * -------------------------------------------*/
/*  ボタン共通 */
.base-button {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 1.2em 0.5em;
  border-radius: 100vmax;
  border: solid 1px #000;
  background: #000;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1.2;
  font-size: var(--f20);
  position: relative;
  -webkit-transition: background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1);
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@media (any-hover: hover) {
  .base-button:hover {
    -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
}

.button--center {
  margin-inline: auto;
}

/* -------------------------------------------
 * ヘッダー
 * -------------------------------------------*/
.header__logo {
  top: calc(27 * var(--px));
  left: calc(30 * var(--px));
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: calc(212 * var(--px));
  height: auto;
  display: block;
  position: relative;
  z-index: 999;
}

.header__logo-img {
  width: 100%;
  height: auto;
}

/* -------------------------------------------
 * フッター
 * -------------------------------------------*/
.footer {
  padding-block: min(18.1506849315vw, 106 * var(--px)) min(15.0684931507vw, 88 * var(--px));
  z-index: 10;
}

.footer__marquee img {
  height: min(36.301369863vw, 212 * var(--px));
}

.footer__button {
  width: 80%;
  margin-top: min(11.1301369863vw, 65 * var(--px));
  margin-inline: auto;
  font-size: var(--f30);
}

.footer__copy {
  color: #fff;
  text-align: center;
  font-size: var(--f15);
  font-family: var(--inter);
  margin-top: min(14.5547945205vw, 85 * var(--px));
}

/* -------------------------------------------
 * レイアウト
 * -------------------------------------------*/
.main {
  max-width: var(--main-width);
  margin-inline: auto;
  background: var(--red);
  overflow: hidden;
  position: relative;
  z-index: 500;
  border-inline: calc(5 * var(--px)) solid #000;
}
@media (max-width: 581px) {
  .main {
    border-inline: none;
  }
}

.pc-content {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 0;
  background-color: var(--red);
}

@media (max-width: 1100px) {
  .pc-content__inner {
    max-width: var(--main-width);
    width: 100%;
    margin-inline: auto;
    position: relative;
    z-index: 500;
  }
}

.pc-content__marquee {
  opacity: 20%;
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.pc-content__marquee img {
  height: calc(317 * var(--px));
  width: auto;
  display: block;
}

.aside-info,
.aside-nav {
  width: calc((100% - var(--main-width)) / 2);
  height: 100%;
  position: absolute;
  top: 0;
}

.aside-info {
  left: 0;
}

.aside-nav {
  right: 0;
}

/* -------------------------------------------
 * PC時インフォサイド
 * -------------------------------------------*/
.aside-info__content {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: calc(35 * var(--px));
  width: min(66.8%, 369 * var(--px));
  container-type: inline-size;
}
@media (max-width: 1399px) {
  .aside-info__content {
    width: 90%;
  }
}

.aside-info__button {
  width: 86%;
  font-size: 5.45cqi;
}

.aside-info__links {
  font-size: var(--f14);
  gap: 1.5em;
  position: fixed;
  bottom: calc(27 * var(--px));
  left: calc(30 * var(--px));
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  z-index: 100;
}
.aside-info__links li:not(:last-child) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5em;
}
.aside-info__links li:not(:last-child)::after {
  background: #000;
  content: "";
  display: block;
  width: 1px;
  height: 1em;
}

/* -------------------------------------------
 * PC時ナビサイド
 * -------------------------------------------*/
.header__nav-list {
  width: 63%;
  max-width: calc(340 * var(--px));
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  container-type: inline-size;
}
@media (max-width: 1399px) {
  .header__nav-list {
    width: 80%;
  }
}

.header__nav-link {
  width: 22.5cqi;
  background: #000;
  padding: 0.3em 0.2em;
  text-align: center;
  display: block;
  overflow: hidden;
}
.header__nav-link img {
  display: block;
  width: 100%;
  height: auto;
}

.pc-content .header__nav-link {
  -webkit-transition: background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1);
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), background 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), color 0.3s cubic-bezier(0.08, 0.355, 0.11, 1), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@media (any-hover: hover) {
  .pc-content .header__nav-link:hover {
    -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
}

.aside-nav__sns-links {
  position: fixed;
  top: calc(23 * var(--px));
  right: calc(16 * var(--px));
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: calc(14 * var(--px));
}
@media (max-width: 1100px) {
  .aside-nav__sns-links {
    display: none;
  }
}
.aside-nav__sns-links > li:nth-child(1) .aside-nav__sns-links-item img {
  width: calc(23 * var(--px));
}
.aside-nav__sns-links > li:nth-child(2) .aside-nav__sns-links-item img {
  width: calc(17 * var(--px));
}
.aside-nav__sns-links > li:nth-child(3) .aside-nav__sns-links-item img {
  width: calc(25 * var(--px));
}

/* -------------------------------------------
 * SP時ヘッダー
 * -------------------------------------------*/
@media (max-width: 1100px) {
  .pc-content .header {
    display: none;
  }
}

.sp-content {
  display: none;
}
@media (max-width: 1100px) {
  .sp-content {
    display: block;
  }
}

.sp-content > * {
  display: none;
}
.sp-content > * .header__logo {
  display: none;
  position: static;
  max-width: calc(291 * var(--px));
  width: 42%;
}
@media (max-width: 1100px) {
  .sp-content > * .header__logo {
    display: block;
  }
}

.header-sp {
  display: contents;
}
@media (max-width: 1100px) {
  .header-sp {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    z-index: 100;
    padding-top: calc(15 * var(--px));
    padding-inline: calc(15 * var(--px));
  }
}

.header-sp__buttons {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: calc(8 * var(--px));
  width: 41%;
}
@media (max-width: 1100px) {
  .header-sp__buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.header-sp__button {
  aspect-ratio: 150/60;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: 100vmax;
  container-type: inline-size;
}

.header-sp__button--entry {
  background: #fff;
}
.header-sp__button--entry img {
  width: 60.6cqi;
  height: auto;
}

.aside-info__visual {
  max-width: calc(369 * var(--px));
  display: grid;
  grid-template-columns: 191fr 181fr;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.aside-info__visual-text {
  position: relative;
  z-index: 1;
}

.aside-info__visual-img {
  position: relative;
  z-index: 2;
  margin-left: -4%;
}

.header-sp__button--menu {
  background: #000;
}
.header-sp__button--menu img {
  width: 51.3cqi;
  height: auto;
}

/* SPメニュー全面は clip-path で開閉（PCでは DOM をまたぐだけ） */
.header__menu-panel {
  display: contents;
}

@media (max-width: 1100px) {
  .sp-content .header__menu-panel {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    position: fixed;
    z-index: 150;
    inset: 0;
    width: 100%;
    height: 100dvh;
    margin: 0;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(30 * var(--px));
    background-color: var(--red);
    clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
    visibility: hidden;
    pointer-events: none;
    -webkit-transition: clip-path 0.14s ease-in, visibility 0s linear 0.14s;
    transition: clip-path 0.14s ease-in, visibility 0s linear 0.14s;
  }
  .sp-content .header.is-active .header__menu-panel {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    -webkit-transition: clip-path 0.3s cubic-bezier(0.19, 1, 0.22, 1), visibility 0s;
    transition: clip-path 0.3s cubic-bezier(0.19, 1, 0.22, 1), visibility 0s;
    visibility: visible;
    pointer-events: auto;
  }
}
.sp-content .header {
  display: block;
  position: absolute;
  z-index: 3;
  width: 100%;
  background: transparent;
}
@media (max-width: 1100px) {
  .sp-content .header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.sp-content .header-sp {
  position: relative;
  z-index: 200;
  width: 100%;
  background: transparent;
  max-width: calc(560 * var(--px));
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  -webkit-transition: opacity 0.3s, visibility 0.3s;
  transition: opacity 0.3s, visibility 0.3s;
  position: relative;
  z-index: 999;
  position: fixed;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.sp-content .header-sp.is-scrolled {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.sp-content .aside-nav {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}
.sp-content .aside-info {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}
.sp-content .header__nav-list {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}
.sp-content .aside-info,
.sp-content .aside-info__content,
.sp-content .aside-nav,
.sp-content .header__nav-list,
.sp-content .aside-info__links {
  position: static;
  -webkit-transform: unset;
          transform: unset;
}
.sp-content .aside-info,
.sp-content .aside-nav {
  width: auto;
  display: block;
}
.sp-content .aside-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.sp-content .aside-info__links {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.sp-content .aside-info {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.sp-content .aside-info__button {
  width: 72%;
  font-size: 4.7cqi;
}
.sp-content .aside-info__visual {
  width: 86%;
}
.sp-content .header__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.sp-content .aside-nav {
  margin-top: 18vw;
  height: auto;
  position: relative;
  z-index: 2;
}
.sp-content .header__nav-list {
  max-width: none;
}
.sp-content .header__nav-link {
  width: 18.5cqi;
}
.sp-content .aside-info {
  margin-top: -15vw;
  position: relative;
  z-index: 1;
}
@media (max-width: 499px) {
  .sp-content .aside-info {
    margin-top: -21vw;
  }
}
.sp-content .aside-info__links {
  margin-top: 3em;
}
@media (max-width: 834px) {
  .sp-content .aside-info__links {
    font-size: calc(12 * var(--px));
  }
}

/* -------------------------
 * パララックス
 * ------------------------- */
.js-parallax-mv {
  width: 100%;
  aspect-ratio: 750/999;
  overflow: hidden;
}
.js-parallax-mv img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center bottom;
     object-position: center bottom;
}

/* -------------------------------------------
 * marquee
 * -------------------------------------------*/
.marquee-container {
  overflow: hidden;
  /* はみ出しを隠す */
  width: 100%;
  padding: 10px 0;
}

.marquee-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  /* 中身の幅に合わせる */
  will-change: transform;
  /* アニメーションの設定 */
  -webkit-animation: marquee-animation linear infinite;
          animation: marquee-animation linear infinite;
  -webkit-animation-duration: var(--marquee-duration, 20s);
          animation-duration: var(--marquee-duration, 20s);
}

.marquee-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.marquee-item {
  white-space: nowrap;
  padding: 0 2em;
  font-weight: bold;
}

@-webkit-keyframes marquee-animation {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    /* JSで計算した「1セット分の幅」だけ左に動かす */
    -webkit-transform: translateX(var(--marquee-half));
            transform: translateX(var(--marquee-half));
  }
}

@keyframes marquee-animation {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    /* JSで計算した「1セット分の幅」だけ左に動かす */
    -webkit-transform: translateX(var(--marquee-half));
            transform: translateX(var(--marquee-half));
  }
}
/* -------------------------------------------
 * ホバーでズーム
 * -------------------------------------------*/
.hover-zoom {
  -webkit-transition: 0.1s;
  transition: 0.1s;
}
@media (any-hover: hover) {
  .hover-zoom:hover .hover-zoom-bg {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
}

.hover-zoom-bg {
  -webkit-transition: -webkit-transform 0.1s;
  transition: -webkit-transform 0.1s;
  transition: transform 0.1s;
  transition: transform 0.1s, -webkit-transform 0.1s;
}

/* -------------------------------------------
 * ホバーで矢印が動く（Material Symbols を疑似要素で二重表示）
 * -------------------------------------------*/
.hover-with-arrow__arrow-icon {
  position: relative;
  overflow: hidden;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.hover-with-arrow__arrow-icon::before, .hover-with-arrow__arrow-icon::after {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  font-family: "Material Symbols Outlined";
  font-size: var(--f15);
  line-height: 1;
  color: #fff;
  content: "arrow_forward";
  -webkit-transition: none;
  transition: none;
}
.hover-with-arrow__arrow-icon::before {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.hover-with-arrow__arrow-icon::after {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

@media (any-hover: hover) {
  .hover-with-arrow:hover .hover-with-arrow__arrow-icon::before, .hover-with-arrow:hover .hover-with-arrow__arrow-icon::after {
    -webkit-transition: -webkit-transform 0.2s ease;
    transition: -webkit-transform 0.2s ease;
    transition: transform 0.2s ease;
    transition: transform 0.2s ease, -webkit-transform 0.2s ease;
  }
  .hover-with-arrow:hover .hover-with-arrow__arrow-icon::before {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  .hover-with-arrow:hover .hover-with-arrow__arrow-icon::after {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

/* -------------------------------------------
 * サイドの白ライン
 * -------------------------------------------*/
.section__side-lines {
  position: relative;
}
.section__side-lines::before, .section__side-lines::after {
  background: #fff;
  content: "";
  display: inline-block;
  position: absolute;
  width: calc(1 * var(--px));
  height: 100%;
  top: 0;
  z-index: 0;
  pointer-events: none;
}
.section__side-lines::before {
  left: 5%;
}
.section__side-lines::after {
  right: 5%;
}

/* -------------------------------------------
 * メニュー閉じるボタン
 * -------------------------------------------*/
.pc-content .header__close-button {
  display: none;
}

@media (max-width: 1100px) {
  .sp-content .header__close-button {
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 2;
    width: calc(69 * var(--px));
    height: calc(69 * var(--px));
    padding: 0;
    border: none;
    border-radius: calc(1 * var(--px));
    background: rgba(0, 0, 0, 0.2);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    cursor: pointer;
    color: #000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .sp-content .header.is-active .header__close-button {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .sp-content .header__close-button__icon {
    font-family: "Material Symbols Outlined";
    font-size: calc(53 * var(--px));
    font-weight: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: calc(3.5 * var(--px));
    font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
    display: inline-block;
    -webkit-font-smoothing: antialiased;
  }
}/*# sourceMappingURL=style.css.map */