@keyframes scroll-left {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-100%);
  }
}

@keyframes scroll-up {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-100%);
  }
}

@keyframes bounce {
  0% {
    transform: translate(0, 0);
  }

  25% {
    transform: translate(0, -2px);
  }

  50% {
    transform: translate(0, 0);
  }

  75% {
    transform: translate(0, -2px);
  }

  100% {
    transform: translate(0, 0);
  }
}

#index main {
  width: min(100%, 1920px);
  margin-inline: auto;
}

/* ========================================
  @media screen and (min-width: 768px),print
======================================== */
@media screen and (min-width: 768px), print {
  /* FV：スライダー（2枚）。数値は1920px基準のデザイン値を vw で縮小（上限は1920px時のpx） */
  .p-fv {
    margin-inline: auto;
    margin-top: 10px; /* ヘッダー(120px)と#index .l-headerのmargin-bottom(-130px)の差を戻し、デザイン通りy=0から開始 */
    max-width: 1920px;
    position: relative;
    width: 100%;
  }

  .p-fv .p-fv__slides:not(.slick-initialized) .p-fv__slide:not(:first-child) {
    display: none;
  }

  .p-fv .slick-list,
  .p-fv .slick-track {
    margin-bottom: 0;
  }

  .p-fv .p-fv__slide {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    min-height: min(55.208vw, 1060px);
    position: relative;
  }

  .p-fv .p-fv__slide--01 {
    background-image: url(../images/index/fv_slide01.jpg);
  }

  .p-fv .p-fv__slide--02 {
    background-image: url(../images/index/fv_slide02.jpg);
  }

  .p-fv .p-fv__ttl {
    position: absolute;
  }

  .p-fv .p-fv__ttl img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-fv .p-fv__slide--01 .p-fv__ttl {
    left: min(10.683vw, 205.12px);
    top: min(10.932vw, 209.89px);
    width: min(78.889vw, 1514.67px);
  }

  .p-fv .p-fv__slide--02 .p-fv__ttl {
    left: min(7.055vw, 135.46px);
    top: min(12.266vw, 235.51px);
    width: min(51.052vw, 980.18px);
  }

  /* 「リフォーム」スタンプ：XDの左上の点（1438.34, 502.43）を起点に-5°回転 */
  .p-fv .p-fv__stamp {
    left: min(74.914vw, 1438.34px);
    position: absolute;
    top: min(26.168vw, 502.43px);
    transform: rotate(-5deg);
    transform-origin: left top;
    width: min(18.780vw, 360.57px);
  }

  .p-fv .p-fv__stamp img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-fv .p-fv__txt {
    position: absolute;
    width: min(45vw, 650px);
  }

  .p-fv .p-fv__slide--01 .p-fv__txt {
    left: min(10.833vw, 208px);
    top: min(25.208vw, 484px);
  }

  .p-fv .p-fv__slide--02 .p-fv__txt {
    left: min(9.896vw, 190px);
    top: min(35.469vw, 681px);
  }

  .p-fv .p-fv__txt p.top {
    color: #ffffff;
    font-size: 22px;
    font-size: clamp(1rem, 0.75rem + 0.52vw, 1.375rem);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 2.0909090909;
    margin-bottom: 12px;
  }

  .p-fv .p-fv__txt p.bottom {
    color: #ffffff;
    font-size: 16px;
    font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 1.875;
    margin-bottom: 0;
  }

  .p-fv .p-fv__slide--02 .p-fv__txt p.top,
  .p-fv .p-fv__slide--02 .p-fv__txt p.bottom {
    color: #c5c5c5;
  }

  .p-fv .p-fv__slide--01 .p-fv__txt p.bottom span {
    display: block;
    white-space: nowrap;
  }

  .p-fv .p-fv__loop {
    bottom: 0;
    left: 0;
    overflow: hidden;
    pointer-events: none;
    position: absolute;
    width: 100%;
  }

  .p-fv .p-fv__loop-wrap {
    align-items: center;
    display: flex;
    gap: 0 62px;
    width: 200%;
  }

  .p-fv .p-fv__slider {
    animation: scroll-left 30s linear infinite;
  }

  .p-fv .p-fv__slider p {
    color: #dedbd7;
    font-size: 205px;
    font-size: clamp(8.75rem, 6.042rem + 5.64vw, 12.813rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1;
    opacity: 0.17;
    white-space: nowrap;
  }

  .p-policy {
    background: #9c8724;
  }

  .p-policy .l-inner.l-policy {
    align-items: center;
    display: flex;
    gap: 0 96px;
    padding-inline: 97px 0;
  }

  .p-policy .c-policy__ttl img {
    height: auto;
    width: 217px;
    position: relative;
    top: -12px;
  }

  .p-policy .p-policy__items {
    align-items: center;
    display: flex;
    gap: 0 118px;
  }

  .p-policy .p-policy__item {
    position: relative;
  }

  .p-policy .p-policy__item:last-child::after {
    content: none;
  }

  .p-policy .p-policy__item::after {
    background: url(../images/index/policy_line.svg) no-repeat center
      center/contain;
    content: "";
    height: 152px;
    position: absolute;
    right: -99px;
    top: 50%;
    transform: translateY(-50%);
    width: 96px;
  }

  .p-policy .p-policy__item img {
    height: auto;
    width: 297px;
  }

  .p-tech {
    background: url(../images/index/tech_bg_v2.jpg) no-repeat top center/cover;
    height: 896px;
    height: clamp(35rem, 21rem + 29.17vw, 56rem);
    margin-inline: auto;
    max-width: 1920px;
    width: 100%;
  }

  .p-tech .l-inner.l-tech {
    display: flex;
    height: 100%;
    justify-content: space-between;
    margin-inline: auto;
    overflow: hidden;
    width: min(95%, 1650px);
  }

  .p-tech .c-tech__ttl {
    margin-left: auto;
    margin-right: 3.385vw;
    position: relative;
    top: 243px;
    top: clamp(7rem, -1rem + 13.5vw, 15.1875rem);
  }

  .p-tech .c-tech__ttl span {
    color: #ffffff;
    display: block;
    font-size: 77px;
    font-size: clamp(3.125rem, 2rem + 2.34vw, 4.813rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1.038961039;
    margin-bottom: 54px;
  }

  .p-tech .c-tech__ttl span:last-child {
    margin-bottom: 0;
  }

  .p-tech .c-tech__ttl span:not(:first-child) {
    left: 41px;
    letter-spacing: 0.05em;
    position: relative;
  }

  .p-tech .l-inner.l-loop {
    height: 100%;
    overflow: hidden;
  }

  .p-tech .p-tech__loop-wrap {
    display: grid;
    gap: 40px 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    height: 100%;
  }

  .p-tech .p-tech__slider {
    animation: scroll-up 30s linear infinite;
  }

  .p-tech .p-tech__slider img {
    width: 198px;
    width: clamp(8.75rem, 6.333rem + 5.03vw, 12.375rem);
    height: auto;
  }

  .p-trouble {
    background: url(../images/index/trouble_bg.jpg) no-repeat top center/cover;
    margin-bottom: -300px;
    margin-inline: auto;
    max-width: 1920px;
    width: 100%;
  }

  .p-trouble .l-inner.l-trouble {
    padding-block: 112px 184px;
  }

  .p-trouble .c-trouble__en {
    margin-bottom: 45px;
    text-align: center;
  }

  .p-trouble .c-trouble__ttl {
    background: #bca32b;
    font-size: 68px;
    font-size: clamp(2.5rem, 1.333rem + 2.43vw, 4.25rem);
    font-weight: 900;
    letter-spacing: 0em;
    line-height: 1.0441176471;
    margin-inline: auto;
    padding-block: 24px;
    position: relative;
    text-align: center;
    width: min(95%, 964px);
    margin-bottom: 27px;
  }

  .p-trouble .c-trouble__ttl::after {
    background: url(../images/index/trouble_triangle.svg) no-repeat center
      center/contain;
    bottom: -32px;
    content: "";
    height: 56px;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    width: 73px;
  }

  .p-trouble .p-trouble__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 221px;
    margin-inline: auto;
    width: min(95%, 1220px);
    position: relative;
    left: -17px;
  }

  .p-trouble .p-trouble__item:nth-child(2) {
    position: relative;
    top: 113px;
    left: -42px;
  }

  .p-trouble .p-trouble__item:nth-child(3) {
    position: relative;
    top: 33px;
    left: 13px;
  }

  .p-trouble .p-trouble__item:nth-child(4) {
    position: relative;
    top: 152px;
    left: -45px;
  }

  .p-trouble .p-trouble__item .img {
    margin-bottom: -218px;
  }

  .p-trouble .p-trouble__item .img img {
    height: auto;
    width: 100%;
  }

  .p-trouble .p-trouble__item .bottom {
    display: flex;
    justify-content: center;
    place-items: center;
    position: relative;
    left: 13px;
  }

  .p-trouble .p-trouble__item .bottom img {
    height: auto;
    left: 24px;
    position: relative;
    width: 134px;
  }

  .p-trouble .p-trouble__item .bottom p {
    background: #bca32b;
    font-size: 23px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.4782608696;
    padding-block: 14px 14px;
    padding-inline: 12px;
    position: relative;
    width: -moz-fit-content;
    width: fit-content;
    z-index: 10;
  }

  .p-trouble .p-trouble__txt {
    color: #ffffff;
    font-size: 50px;
    font-size: clamp(2.5rem, 2.083rem + 0.87vw, 3.125rem);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.98;
    text-align: center;
  }

  .p-trouble .p-trouble__txt span {
    color: #bca32b;
  }

  .p-policy02 {
    background-image: url(../images/index/policy02_bg.png); /* 画像を指定 */
    background-position: top center; /* 画像の位置を指定 */
    background-repeat: no-repeat; /* 画像を繰り返さない */
    background-size: auto; /* 画像のサイズ調整（必要に応じて変更） */
    margin-inline: auto;
    max-width: 1920px;
    width: 100%;
  }

  .p-policy02 .l-inner.l-policy02 {
    padding-block: 224px 0px;
    overflow: hidden;
  }

  .p-policy02 .c-policy02__en {
    color: #e8e8e8;
    font-size: 309px;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: -370px;
    text-align: center;
  }

  .p-policy02 .c-policy02__ttl {
    font-size: 78px;
    font-size: min(78px, 5.8vw);
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.6025641026;
    margin-bottom: 164px;
    text-align: center;
    position: relative;
    left: 2px;
  }

  /* POLICY：画像を右寄せ(x=900〜1772)・暗い帯を左(0〜994)に置き、文字は画像の上に重ねる（1920px基準を%換算） */
  .p-policy02 .p-policy02__bg {
    background:
      linear-gradient(180deg, #dedbd7 0, #dedbd7 min(5.469vw, 105px), rgba(222, 219, 215, 0) min(5.469vw, 105px)),
      linear-gradient(90deg, #302c17 37.4%, #070707 88.86%);
    padding-block: 0 167px;
    width: 100%;
  }

  .p-policy02 .p-policy02__items {
    display: grid;
    gap: 170px 0;
    gap: clamp(0rem, -7.083rem + 14.76vw, 10.625rem) 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 101px;
    width: 100%;
  }

  .p-policy02 .p-policy02__con {
    display: block;
    position: relative;
  }

  .p-policy02 .p-policy02__con::before {
    background: #1c190d;
    bottom: 0;
    content: "";
    height: 82.5%;
    left: 0;
    position: absolute;
    width: 51.771%;
  }

  .p-policy02 .p-policy02__con-right {
    margin-left: 46.875%;
    position: relative;
    width: 45.417%;
    z-index: 1;
  }

  .p-policy02 .p-policy02__con-left {
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 2;
  }

  .p-policy02 .p-policy02__con-left .num {
    color: #b7b2ab;
    font-size: 139px;
    font-size: clamp(3.25rem, 7.24vw, 8.688rem);
    font-weight: 400;
    left: 21.354%;
    letter-spacing: 0.05em;
    line-height: 1;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 36px;
    top: min(1.875vw, 36px);
  }

  .p-policy02 .p-policy02__con-left .bottom {
    color: #ffffff;
    left: 21.354%;
    padding: 0;
    position: absolute;
    top: 212px;
    top: min(11.042vw, 212px);
    width: 41%;
  }

  .p-policy02 .p-policy02__item:nth-child(2) .p-policy02__con-left .bottom {
    top: 208px;
    top: min(10.833vw, 208px);
  }

  .p-policy02 .p-policy02__con-left .bottom h3 {
    font-size: 62px;
    font-size: clamp(1.375rem, 3.229vw, 3.875rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.129;
    margin-bottom: 28px;
    margin-bottom: min(1.458vw, 28px);
  }

  .p-policy02 .p-policy02__con-left .bottom p.lead {
    color: #ffffff;
    font-size: 30px;
    font-size: clamp(0.75rem, 1.5625vw, 1.875rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.6666666667;
    margin-bottom: 8px;
    margin-bottom: min(0.417vw, 8px);
  }

  .p-policy02 .p-policy02__con-left .bottom p.lead--top {
    margin-bottom: 5px;
    margin-bottom: min(0.26vw, 5px);
  }

  /* 英文の位置はデザイン値に合わせて項目ごとに調整 */
  .p-policy02 .p-policy02__item:nth-child(1) .p-policy02__con-left .bottom p.lead {
    margin-bottom: 37px;
    margin-bottom: min(1.927vw, 37px);
  }

  .p-policy02 .p-policy02__item:nth-child(2) .p-policy02__con-left .bottom h3 {
    margin-bottom: 40px;
    margin-bottom: min(2.083vw, 40px);
  }

  .p-policy02 .p-policy02__item:nth-child(3) .p-policy02__con-left .bottom p.lead {
    margin-bottom: 29px;
    margin-bottom: min(1.51vw, 29px);
  }

  .p-policy02 .p-policy02__con-left .bottom p.f-en {
    color: #413d36;
    font-size: 14px;
    font-size: clamp(0.5rem, 0.729vw, 0.875rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 2.4285714286;
  }

  .p-policy02 .p-policy02__con-right img {
    height: auto;
    width: 100%;
  }

  .p-policy02 .c-policy02__btn {
    margin-inline: auto;
    width: min(95%, 821px);
  }

  .p-policy02 .c-policy02__btn a {
    background: #1b100d;
    border: 2px solid #fff;
    border-radius: 44px;
    color: #ffffff;
    display: block;
    display: block;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9545454545;
    padding-block: 20px;
    position: relative;
    position: relative;
    text-align: center;
    transition: all 0.3s ease;
  }

  .p-policy02 .c-policy02__btn a::after {
    background: url(../images/index/policy02_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 34px;
    position: absolute;
    right: 27px;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.3s ease;
    width: 34px;
  }

  .p-policy02 .c-policy02__btn a:hover {
    background: #ffffff;
    color: #1b100d;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-policy02 .c-policy02__btn a:hover::after {
    background: url(../images/index/policy02_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-reform {
    background: #dedbd7;
    margin-bottom: 66px;
  }

  .p-reform .l-inner.l-reform {
    padding-block: 174px 200px;
  }

  .p-reform .c-reform__en {
    font-size: 140px;
    font-size: clamp(4.375rem, 1.458rem + 6.08vw, 8.75rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9857142857;
    margin-bottom: -70px;
    margin-bottom: clamp(-70px, calc(-6.66667px - 3.29861vw), -32px);
    text-align: center;
  }

  .p-reform .c-reform__ttl {
    font-size: 42px;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5952380952;
    margin-bottom: 72px;
    text-align: center;
  }

  .p-reform .p-reform__items {
    display: grid;
    gap: 130px 103px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-inline: auto;
    width: min(85%, 1500px);
  }

  .p-reform .p-reform__item a:hover {
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-reform .p-reform__item a:hover .top::before {
    transform: scale(1.1);
  }

  .p-reform .p-reform__item .top {
    margin-bottom: 31px;
    margin-inline: auto;
    overflow: hidden;
    padding-block: 143px 124px;
    position: relative;
    text-align: center;
    width: 100%;
  }

  .p-reform .p-reform__item .top::before {
    content: "";
    inset: 0;
    position: absolute;
    transition: transform 0.4s ease;
  }

  .p-reform .p-reform__item .top.--item01::before {
    background: url(../images/index/reform_item01.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top.--item02::before {
    background: url(../images/index/reform_item02.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top.--item03::before {
    background: url(../images/index/reform_item03.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top.--item04::before {
    background: url(../images/index/reform_item04.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top .en {
    position: relative;
    z-index: 1;
    margin-bottom: 8px;
  }

  .p-reform .p-reform__item .top .txt {
    background: #1b100d;
    color: #ffffff;
    font-size: 20px;
    font-size: clamp(0.625rem, 0.208rem + 0.87vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 2;
    margin-inline: auto;
    padding: 0px 11px;
    position: relative;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content;
    z-index: 1;
  }

  .p-reform .p-reform__item .wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
  }

  .p-reform .p-reform__item .wrap .left h3 {
    font-size: 50px;
    font-size: clamp(1.5rem, 0.417rem + 2.26vw, 3.125rem);
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.12;
  }

  .p-reform .p-reform__item .wrap .right img {
    width: 54px;
    width: clamp(2.5rem, 1.917rem + 1.22vw, 3.375rem);
    height: auto;
  }

  .p-reform .p-reform__item .bottom-txt {
    border-bottom: 1px solid #b7b2ab;
    font-size: 20px;
    font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    padding-block: 0 24px;
  }

  /* 代表挨拶（MESSAGE）。1920px基準のデザイン値。横位置は%、縦は積み上げ＋px */
  .p-message {
    background: #201710;
    margin-inline: auto;
    margin-top: -66px; /* 直前の.p-reformのmargin-bottom(66px)を打ち消し、リフォームメニューと隙間なく接する */
    margin-bottom: 67px; /* デザインの「写真の下端→WORKS見出し」の間隔 */
    max-width: 1920px;
    position: relative;
    width: 100%;
  }

  .p-message .l-inner.l-message {
    padding-block: 159px 0;
    position: relative;
  }

  .p-message .c-message__en {
    color: #302b24;
    font-size: 236px;
    font-size: clamp(7.5rem, 3.4rem + 9.46vw, 14.75rem);
    font-weight: 400;
    left: 11.3vw;
    left: min(11.3vw, 217px);
    letter-spacing: 0.05em;
    line-height: 1;
    position: absolute;
    top: 160px;
    writing-mode: vertical-rl;
  }

  .p-message .p-message__top,
  .p-message .p-message__mid {
    margin-left: 33.073%;
    position: relative;
    width: 52%;
  }

  .p-message .c-message__ttl {
    color: #ffffff;
    font-size: 53px;
    font-size: clamp(2rem, 1.2rem + 1.75vw, 3.3125rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin-bottom: 82px;
  }

  .p-message .p-message__top .p-message__txt {
    width: 679px;
    width: min(calc(36.2vw - 6px), 689px);
  }

  .p-message .p-message__txt p {
    color: #ffffff;
    font-size: 20px;
    font-size: clamp(0.875rem, 0.625rem + 0.52vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
  }

  .p-message .p-message__txt p + p {
    margin-top: 40px;
  }

  .p-message .p-message__txt--02 {
    margin-top: 40px;
  }

  .p-message .p-message__img {
    display: grid;
    gap: 40px 0;
    left: 36.198vw;
    left: min(36.198vw, 695px);
    position: absolute;
    top: 84px;
    width: min(23.438vw, 450px);
  }

  .p-message .p-message__img li img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-message .p-message__em {
    margin-left: -12px;
    margin-top: 69px;
  }

  .p-message .p-message__em span {
    background: #000000;
    color: #ffffff;
    display: block;
    font-size: 46px;
    font-size: clamp(1.625rem, 0.9rem + 1.646vw, 2.875rem);
    font-weight: 900;
    height: 55px;
    letter-spacing: 0.03em;
    line-height: 49px;
    margin-bottom: 16.5px;
    padding-inline: 12px;
    white-space: nowrap;
    width: fit-content;
  }

  .p-message .p-message__em span:first-child {
    min-width: min(26.198vw, 503px);
  }

  .p-message .p-message__em span:not(:first-child) {
    min-width: min(23.438vw, 450px);
  }

  .p-message .p-message__em span em {
    color: #d4bb47;
    font-style: normal;
  }

  .p-message .p-message__mid {
    margin-top: 234px;
  }

  .p-message .p-message__mid::before,
  .p-message .p-message__mid::after {
    background: #ffffff;
    content: "";
    height: 100px;
    left: 187px;
    left: min(9.74vw, 187px);
    position: absolute;
    width: 1px;
  }

  .p-message .p-message__mid::before {
    top: -163.5px;
  }

  .p-message .p-message__mid::after {
    top: 422.5px;
  }

  .p-message .p-message__photo {
    left: -33.073vw;
    left: max(-33.073vw, -635px);
    position: absolute;
    top: 40px;
    width: min(27.604vw, 530px);
  }

  .p-message .p-message__photo img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-message .p-message__quote {
    margin-block: 26px 43px;
    margin-left: -12px;
  }

  .p-message .p-message__quote span {
    background: #d4bb47;
    color: #000000;
    display: block;
    font-size: 40px;
    font-size: clamp(1.5rem, 0.8rem + 1.417vw, 2.5rem);
    font-weight: 900;
    height: 55px;
    letter-spacing: 0.0115em;
    line-height: 55px;
    margin-bottom: 18px;
    padding-inline: 12px;
    width: fit-content;
    white-space: nowrap;
  }

  .p-message .p-message__quote span.p-message__quote-sp {
    display: none;
  }

  .p-message .p-message__quote span.p-message__quote-pc:first-child {
    min-width: min(43.229vw, 830px);
  }

  .p-message .p-message__quote span.p-message__quote-pc + span {
    min-width: min(33.438vw, 642px);
    padding-left: 29px;
  }

  .p-message .p-message__end {
    color: #ffffff;
    margin-left: 33.073%;
    margin-top: 229px;
    padding-bottom: 174px;
  }

  .p-message .p-message__end span {
    display: block;
    font-size: 32px;
    font-size: clamp(1.25rem, 0.7rem + 1.15vw, 2rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.75;
  }

  .p-message .p-message__end span em {
    color: #d4bb47;
    font-style: normal;
  }

  .p-message .p-message__bg img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-works {
    margin-bottom: 200px;
  }

  .p-works .c-works__en {
    font-size: 140px;
    font-size: clamp(4.375rem, 1.458rem + 6.08vw, 8.75rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9857142857;
    margin-bottom: -71px;
    margin-bottom: clamp(-71px, calc(-6px - 3.38542vw), -32px);
    text-align: center;
  }

  .p-works .c-works__ttl {
    font-size: 74px;
    font-size: clamp(2.5rem, 1.083rem + 2.95vw, 4.625rem);
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5945945946;
    margin-bottom: 95px;
    text-align: center;
  }

  .p-works .system-list {
    display: grid;
    gap: 94px 60px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 93px;
    margin-inline: auto;
    width: min(95%, 1620px);
  }

  .p-works .system-pic .ba {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 20px;
  }

  .p-works .system-pic .ba__img img {
    height: 300px;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  .p-works .system-pic .ba__label {
    color: #ffffff;
    font-size: 22px;
    font-size: clamp(0.875rem, 0.542rem + 0.69vw, 1.375rem);
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: 1.6;
    text-align: center;
  }

  .p-works .system-pic .ba__label.before {
    background: #545454;
  }

  .p-works .system-pic .ba__label.after {
    background: #1b100d;
  }

  .p-works .system-category {
    margin-bottom: 0px;
  }

  .p-works .system-category span {
    font-size: 14px;
    font-size: clamp(0.625rem, 0.458rem + 0.35vw, 0.875rem);
    font-weight: 700;
    letter-spacing: 0em;
    line-height: 2;
    padding: 2px 11px;
    background: #302C17;
    border-radius: 4px;
    width: fit-content;
  }

  .p-works .system-ttl {
    font-size: 28px;
    font-size: clamp(1.25rem, 0.917rem + 0.69vw, 1.75rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: 0px;
  }

  .p-works .system-meta {
    color: #7a7a7a;
    font-size: 20px;
    font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.6;
  }

  .p-works .c-works__btn {
    margin-inline: auto;
    width: min(95%, 451px);
  }

  .p-works .c-works__btn a {
    background: #fff;
    border: 2px solid #1b100d;
    border-radius: 44px;
    display: block;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9545454545;
    padding-block: 20px 20px;
    position: relative;
    text-align: center;
    transition: all 0.3s ease;
  }

  .p-works .c-works__btn a:hover {
    background: #1b100d;
    color: #ffffff;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-works .c-works__btn a:hover::after {
    background: url(../images/index/works_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-works .c-works__btn a::after {
    background: url(../images/index/works_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 34px;
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
  }

  .p-bnr02 {
    background: url(../images/index/bnr_bg.jpg) no-repeat top center/cover;
    margin-inline: auto;
    max-width: 1920px;
    width: 100%;
  }

  .p-bnr02 .l-inner.l-bnr02 {
    padding-block: 180px 140px;
  }

  .p-bnr02 .p-bnr02__img {
    margin-inline: auto;
    width: min(95%, 1100px);
  }

  .p-bnr02 .p-bnr02__img img {
    height: auto;
    width: 100%;
  }

  .p-instagram {
    background: #dedbd7;
  }

  .p-instagram .l-inner.l-instagram {
    padding-block: 87px 0;
  }

  .p-instagram .c-instagram__en {
    font-size: 70px;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.7285714286;
    margin-bottom: -22px;
    text-align: center;
  }

  .p-instagram .c-instagram__ttl {
    font-size: 40px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.825;
    margin-bottom: 40px;
    text-align: center;
  }

  .p-instagram .p-instagram__items {
    display: grid;
    gap: 0 40px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: -66px;
    margin-bottom: clamp(-66px, calc(94px - 8.33333vw), 30px);
    margin-inline: auto;
    width: min(85%, 1240px);
    position:relative;
    z-index: 10;
  }

  .p-instagram .p-instagram__item {
    background: #ffffff;
    padding-block: 40px;
    padding-inline: 29px;
  }

  .p-instagram .ttl {
    align-items: center;
    display: flex;
    gap: 0 20px;
    justify-content: center;
    margin-bottom: 28px;
  }

  .p-instagram .ttl h3 {
    font-size: 27px;
    font-size: clamp(1.25rem, 0.958rem + 0.61vw, 1.688rem);
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5925925926;
  }

  .p-instagram .items {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 30px;
  }

  .p-instagram .items li a {
    display: block;
  }

  .p-instagram .items li a img {
    height: auto;
    width: 100%;
  }

  .p-instagram .link {
    margin-inline: auto;
    width: min(95%, 209px);
  }

  .p-instagram .link a {
    border-bottom: 2px solid #1b100d;
    display: block;
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 2;
    padding-block: 0 0px;
    position: relative;
  }

  .p-instagram .link a::after {
    background: url(../images/index/instagram_arrow.svg) no-repeat center
      center/contain;
    content: "";
    height: 24px;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
  }

  .p-instagram .p-instagram__icon {
    animation: bounce 0.3s infinite;
    margin-inline: auto;
    width: min(95%, 1612px);
  }

  .p-youtube {
    background: url(../images/index/youtube_bg.jpg) no-repeat top center/cover;
    margin-inline: auto;
    max-width: 1920px;
    width: 100%;
  }

  .p-youtube .l-inner.l-youtube {
    padding-block: 6px 60px;
  }

  .p-youtube .c-youtube__en {
    color: #ffffff;
    font-size: 70px;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 3.0142857143;
    margin-bottom: -57px;
    text-align: center;
  }

  .p-youtube .c-youtube__ttl {
    color: #ffffff;
    font-size: 40px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.825;
    margin-bottom: 25px;
    text-align: center;
  }

  .p-youtube .p-youtube__items {
    display: grid;
    gap: 0 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 60px;
    margin-inline: auto;
    width: min(85%, 1220px);
  }

  .p-youtube .p-youtube__item {
    background: #ffffff;
    margin-inline: 10px;
    padding-block: 30px 15px;
    padding-inline: 30px;
    padding-inline: clamp(0.938rem, 0.313rem + 1.3vw, 1.875rem);
  }

  .p-youtube .p-youtube__item a {
    display: block;
  }

  .p-youtube .p-youtube__item a .system-pic {
    margin-bottom: 14px;
  }

  .p-youtube .p-youtube__item a .system-pic img {
    height: 180px;
    width: 100%;
  }

  .p-youtube .p-youtube__item a h3 {
    font-size: 20px;
    font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin-bottom: -9px;
  }

  .p-youtube .p-youtube__item a .arrow {
    text-align: right;
    position: relative;
    left: 13px;
    left: clamp(0rem, -0.542rem + 1.13vw, 0.813rem);
  }

  .p-youtube .p-youtube__item a .arrow img {
    width: 54px;
    width: clamp(2rem, 1.083rem + 1.91vw, 3.375rem);
  }

  .p-youtube .c-youtube__btn {
    margin-inline: auto;
    width: min(95%, 450px);
  }

  .p-youtube .c-youtube__btn a {
    background: #1b100d;
    border: 2px solid #fff;
    border-radius: 53px;
    color: #ffffff;
    display: block;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9545454545;
    padding-block: 20px;
    position: relative;
    position: relative;
    text-align: center;
    transition: all 0.3s ease;
  }

  .p-youtube .c-youtube__btn a:hover {
    background: #ffffff;
    color: #1b100d;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-youtube .c-youtube__btn a:hover::after {
    background: url(../images/index/youtube_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-youtube .c-youtube__btn a::after {
    background: url(../images/index/youtube_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 13px;
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 13px;
  }

  .p-about {
    background: #302c17;
  }

  .p-about .l-inner.l-about {
    padding-block: 144px 130px;
  }

  .p-about .p-about__con {
    display: grid;
    grid-template-columns: 49.99% 65.98%;
    margin-bottom: 90px;
    margin-inline: auto;
    width: min(95%, 1455px);
    position: relative;
    left: -110px;
  }

  .p-about .p-about__con-left {
    left: 240px;
    position: relative;
    top: 90px;
  }

  .p-about .c-about__en {
    color: #ffffff;
    font-size: 140px;
    font-size: clamp(4.375rem, 1.458rem + 6.08vw, 8.75rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9857142857;
    margin-bottom: -46px;
  }

  .p-about .c-about__ttl {
    color: #ffffff;
    font-size: 30px;
    font-size: clamp(1.25rem, 0.833rem + 0.87vw, 1.875rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 2.4333333333;
    margin-bottom: 146px;
  }

  .p-about .p-about__txt {
    color: #ffffff;
    font-size: 70px;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5857142857;
    margin-bottom: 37px;
    white-space: nowrap;
  }

  .p-about .p-about__txt02 {
    color: #ffffff;
    font-size: 20px;
    font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    width: min(95%, 665px);
  }

  .p-about .p-about__con-right img {
    height: auto;
    width: 100%;
  }

  .p-about .p-about__con02 {
    display: grid;
    grid-template-columns: 48.1% 51.9%;
    margin-left: auto;
    width: min(95%, 1560px);
  }

  .p-about .p-about__con02-left img {
    height: 100%;
    width: 100%;
    object-fit: cover;
  }

  .p-about .p-about__con02-right {
    background: #1c190d;
    color: #ffffff;
    padding-block: 65px;
    padding-block: clamp(2rem, 0.625rem + 2.86vw, 4.063rem);
    padding-inline: 50px;

  }

  .p-about .p-about__con02-right p {
    font-size: 20px;
    font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: 1px;
  }

  .p-about .p-about__con02-right .link {
    margin-bottom: 34px;
  }

  .p-about .p-about__con02-right .link a {
    color: #ffffff;
    font-size: 20px;
    font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    -webkit-text-decoration: underline;
    text-decoration: underline;
  }

  .p-about .p-about__con02-right .btn {
    width: min(95%, 357px);
  }

  .p-about .p-about__con02-right .btn a {
    border: 2px solid #fff;
    border-radius: 44px;
    color: #ffffff;
    display: block;
    font-size: 22px;
    font-size: clamp(1.125rem, 0.958rem + 0.35vw, 1.375rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9545454545;
    text-align: center;
    -webkit-text-decoration: none;
    padding-block: 19px 21px;
    position: relative;
    text-decoration: none;
    transition: all 0.3s ease;
  }

  .p-about .p-about__con02-right .btn a::after {
    background: url(../images/index/about_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 34px;
    height: clamp(1.25rem, 0.667rem + 1.22vw, 2.125rem);
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    width: clamp(1.25rem, 0.667rem + 1.22vw, 2.125rem);
  }

  .p-about .p-about__con02-right .btn a:hover {
    background: #ffffff;
    color: #1b100d;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-about .p-about__con02-right .btn a:hover::after {
    background: url(../images/index/about_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-link {
    background: #dedbd7;
  }

  .p-link .l-inner.l-link {
    padding-block: 130px 123px;
  }

  .p-link .p-link__items {
    display: grid;
    gap: 0 21px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-inline: auto;
    width: min(90%, 1180px);
  }

  .p-link .p-link__item a {
    display: block;
  }

  .p-link .p-link__item a img {
    height: auto;
    margin-bottom: 19px;
    width: 100%;
  }

  .p-link .p-link__item a p {
    font-size: 20px;
    font-size: clamp(0.875rem, 0.625rem + 0.52vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    text-align: center;
  }

  .p-seo {
    background: #dedbd7;
  }

  .p-seo .l-inner.l-seo {
    margin-inline: auto;
    padding-block: 46px 47px;
    width: min(85%, 1000px);
  }

  .p-seo p {
    color: #6b6863;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2.1428571429;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1750px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1750px) {
  .p-works .system-list {
    display: grid;
    gap: 5.371vw 3.429vw;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 5.314vw;
    margin-inline: auto;
    width: min(85%, 1620px);
  }

  .p-works .system-pic .ba__img img {
    height: 17.143vw;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1600px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .p-policy .l-inner.l-policy {
    align-items: center;
    display: flex;
    gap: 0 6vw;
    padding-inline: 6.063vw 0;
  }

  .p-policy .c-policy__ttl img {
    height: auto;
    width: 13.563vw;
    position: relative;
    top: -0.75vw;
  }

  .p-policy .p-policy__items {
    align-items: center;
    display: flex;
    gap: 0 7.375vw;
  }

  .p-policy .p-policy__item::after {
    background: url(../images/index/policy_line.svg) no-repeat center
      center/contain;
    content: "";
    height: 9.5vw;
    position: absolute;
    right: -6.187vw;
    top: 50%;
    transform: translateY(-50%);
    width: 6vw;
  }

  .p-policy .p-policy__item img {
    height: auto;
    width: 18.563vw;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1550px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1550px) {
  .p-about .p-about__con {
    display: grid;
    grid-template-columns: 50.2% 52.2%;
    margin-bottom: 10.806vw;
    margin-inline: auto;
    width: min(95%, 1455px);
    position: relative;
    left: -7.097vw;
  }

  .p-about .p-about__con-left {
    left: 15.484vw;
    position: relative;
    top: 5.806vw;
  }

  .p-about .c-about__en {
    color: #ffffff;
    font-size: 9.032vw;
    font-size: clamp(4.375rem, 1.458rem + 6.08vw, 8.75rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9857142857;
    margin-bottom: -2.968vw;
  }

  .p-about .c-about__ttl {
    margin-bottom: 9.419vw;
  }

  .p-about .p-about__txt {
    margin-bottom: 2.387vw;
    font-size: 4.516vw;
  }

  .p-about .p-about__con-right img {
    height: auto;
    width: 100%;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1450px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1450px) {
  .p-reform .p-reform__items {
    display: grid;
    gap: 8.966vw 7.103vw;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-inline: auto;
    width: min(85%, 1500px);
  }

  .p-reform .p-reform__item .top.--item01 .en img {
    width: 28.207vw;
    height: auto;
  }

  .p-reform .p-reform__item .top.--item02 .en img {
    width: 34.414vw;
    height: auto;
  }

  .p-reform .p-reform__item .top.--item03 .en img {
    width: 36.897vw;
    height: auto;
  }

  .p-reform .p-reform__item .top.--item04 .en img {
    width: 22.966vw;
    height: auto;
  }

  .p-youtube .p-youtube__item a .system-pic img {
    height: 12.414vw;
    width: 100%;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1300px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .p-trouble .p-trouble__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 17vw;
    margin-inline: auto;
    width: min(95%, 1220px);
    position: relative;
    left: -1.308vw;
  }

  .p-trouble .p-trouble__item:nth-child(2) {
    position: relative;
    top: 8.692vw;
    left: -3.231vw;
  }

  .p-trouble .p-trouble__item:nth-child(3) {
    position: relative;
    top: 2.538vw;
    left: 1vw;
  }

  .p-trouble .p-trouble__item:nth-child(4) {
    position: relative;
    top: 11.692vw;
    left: -3.462vw;
  }

  .p-trouble .p-trouble__item .img {
    margin-bottom: -16.769vw;
  }

  .p-trouble .p-trouble__item .img img {
    height: auto;
    width: 100%;
  }

  .p-trouble .p-trouble__item .bottom {
    display: flex;
    justify-content: center;
    place-items: center;
    position: relative;
    left: 1vw;
  }

  .p-trouble .p-trouble__item .bottom img {
    height: auto;
    left: 1.846vw;
    position: relative;
    width: 10.308vw;
  }

  .p-trouble .p-trouble__item .bottom p {
    background: #bca32b;
    font-size: 1.769vw;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.4782608696;
    padding-block: 1.077vw 1.077vw;
    padding-inline: 0.923vw;
    position: relative;
    width: -moz-fit-content;
    width: fit-content;
    z-index: 10;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1100px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1100px) {
  .p-policy02 .c-policy02__en {
    color: #e8e8e8;
    font-size: 28.091vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: -33.636vw;
    text-align: center;
  }

  .p-policy02 .c-policy02__ttl {
    font-size: 5.8vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.6025641026;
    margin-bottom: 11.818vw;
    text-align: center;
    position: relative;
    left: 3.273vw;
  }
}

/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
  /* スライダー（slickのz-index:3設定）より前面にSPヘッダー（ロゴ）を出す */
  .sp-header {
    background: transparent; /* 背面のヒーロー写真をそのまま見せる（元は写真が上に重なって見えなかった） */
    position: relative;
    z-index: 5;
  }

  /* FV：スライダー（2枚）。数値は414px基準のデザイン値を vw に換算 */
  .p-fv {
    background-color: #070a0f;
    margin-top: 0.75vw; /* sp-headerとmargin-bottom(-15vw)の差を戻し、デザイン通りy=0から開始 */
    position: relative;
    width: 100%;
  }

  .p-fv .p-fv__slides:not(.slick-initialized) .p-fv__slide:not(:first-child) {
    display: none;
  }

  .p-fv .slick-list,
  .p-fv .slick-track {
    margin-bottom: 0;
  }

  .p-fv .p-fv__slide {
    background-position: top center;
    background-repeat: no-repeat;
    background-size: 100% auto;
    min-height: 264.014vw;
    position: relative;
  }

  .p-fv .p-fv__slide::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #000000 100%);
    content: "";
    height: 38.647vw;
    left: 0;
    position: absolute;
    top: 82.126vw;
    width: 100%;
  }

  .p-fv .p-fv__slide--01 {
    background-image: url(../images/index/fv_slide01_sp.jpg);
  }

  .p-fv .p-fv__slide--02 {
    background-image: url(../images/index/fv_slide02_sp.jpg);
  }

  .p-fv .p-fv__ttl {
    position: absolute;
  }

  .p-fv .p-fv__ttl img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-fv .p-fv__slide--01 .p-fv__ttl {
    left: 8.792vw;
    top: 101.543vw;
    width: 80.826vw;
  }

  .p-fv .p-fv__slide--02 .p-fv__ttl {
    left: 3.184vw;
    top: 96.103vw;
    width: 91.747vw;
  }

  /* 「リフォーム」スタンプ：XDの左上の点（299, 547.85）を起点に-5°回転 */
  .p-fv .p-fv__stamp {
    left: 72.222vw;
    position: absolute;
    top: 132.331vw;
    transform: rotate(-5deg);
    transform-origin: left top;
    width: 21.849vw;
  }

  .p-fv .p-fv__stamp img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-fv .p-fv__txt {
    left: 8.937vw;
    position: absolute;
    top: 170.5vw;
    width: 82.126vw;
  }

  .p-fv .p-fv__txt p.top {
    color: #c5c5c5;
    font-size: 5.797vw;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.8333333333;
    margin-bottom: 7.8vw;
    white-space: nowrap;
  }

  .p-fv .p-fv__txt p.bottom {
    color: #c5c5c5;
    font-size: 4.348vw;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.6666666667;
    margin-bottom: 0;
  }

  .p-fv .p-fv__txt p.bottom span {
    display: block;
  }

  .p-fv .p-fv__txt p.bottom span + span {
    margin-top: 7.246vw;
  }

  .p-fv .p-fv__loop {
    left: 0;
    overflow: hidden;
    pointer-events: none;
    position: absolute;
    top: 136.9vw;
    width: 100%;
  }

  .p-fv .l-inner.l-loop {
    overflow: hidden;
    width: 100%;
  }

  .p-fv .p-fv__loop-wrap {
    align-items: center;
    display: flex;
    gap: 0 7.246vw;
    width: 200%;
  }

  .p-fv .p-fv__slider {
    animation: scroll-left 30s linear infinite;
  }

  .p-fv .p-fv__slider p {
    color: #dedbd7;
    font-size: 18.116vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 2;
    opacity: 0.17;    white-space: nowrap;
  }

  .p-policy {
    background: #9c8724;
  }

  .p-policy .l-inner.l-policy {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    padding-block: 3.106vw 5.797vw;
    /* padding-inline: 3.14vw 0; */
  }

  .p-policy .c-policy__ttl {
    text-align: center;
    margin-bottom: -1vw;
  }

  .p-policy .c-policy__ttl img {
    height: auto;
    width: 31.618vw;
  }

  .p-policy .p-policy__items {
    display: grid;
    gap: 0 2.415vw;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-inline: auto;
    width: min(95%, 95.8937198068vw);
  }

  .p-policy .p-policy__item {
    position: static;
  }

  .p-policy .p-policy__item:last-child::after {
    display: none;
  }

  .p-policy .p-policy__item::after {
    content: none;
  }

  .p-policy .p-policy__item img {
    height: auto;
    width: 100%;
  }

  .p-tech {
    background-color: #070a0f; /* 背景色を指定 */
    background-image: url(../images/index/tech_bg_v2_sp.jpg); /* 画像を指定 */
    background-position: bottom center; /* 画像の位置を指定 */
    background-repeat: no-repeat; /* 画像を繰り返さない */
    background-size: contain; /* 画像のサイズ調整（必要に応じて変更） */
    height: 153.623vw;
  }

  .p-tech .l-inner.l-tech {
    display: grid;
    height: 100%;
    overflow: visible;
    padding-block: 11.353vw 0;
    padding-inline: 6.039vw 0;
    position: relative;
    width: 100%;
  }

  .p-tech .l-inner.l-tech::after {
    background: url(../images/index/tech_en.svg) no-repeat center center/contain;
    bottom: 5.314vw;
    content: "";
    height: 130.918vw;
    position: absolute;
    right: -11.594vw;
    width: 29.227vw;
  }

  .p-tech .c-tech__ttl {
    position: relative;
    top: 4.831vw;
  }

  .p-tech .c-tech__ttl span {
    color: #ffffff;
    display: block;
    font-size: 7.246vw;
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1.0666666667;
    margin-bottom: 5.68vw;
  }

  .p-tech .c-tech__ttl span:last-child {
    margin-bottom: 0;
  }

  .p-tech .c-tech__ttl span:not(:first-child) {
    left: 5vw;
    letter-spacing: 0.05em;
    position: relative;
  }

  .p-tech .p-tech__en img {
    height: auto;
    width: 29.227vw;
  }

  .p-trouble {
    background: url(../images/index/trouble_bg.jpg) no-repeat top center/cover;
    margin-bottom: -11.986vw;
    margin-inline: auto;
    width: 100%;
  }

  .p-trouble .l-inner.l-trouble {
    padding-block: 15.942vw 32.647vw;
  }

  .p-trouble .c-trouble__en {
    margin-bottom: 3.797vw;
    text-align: center;
  }

  .p-trouble .c-trouble__en img {
    height: auto;
    width: 46.135vw;
  }

  .p-trouble .c-trouble__ttl {
    background: url(../images/index/trouble_txt_bg_sp.svg) no-repeat center
      center/contain;
    color: #ffffff;
    font-size: 6.763vw;
    font-weight: 900;
    letter-spacing: 0em;
    line-height: 1.25;
    margin-bottom: 2.662vw;
    margin-inline: auto;
    padding-block: 2.657vw 5.797vw;
    position: relative;
    text-align: center;
    width: min(95%, 62.8019323671vw);
  }

  .p-trouble .c-trouble__ttl::after {
    content: none;
  }

  .p-trouble .p-trouble__items {
    display: grid;
    gap: 4.696vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 15.391vw;
    width: 100%;
  }

  .p-trouble .p-trouble__item:nth-child(2) {
    position: static;
    top: 0;
  }

  .p-trouble .p-trouble__item:nth-child(3) {
    position: static;
    top: 0;
  }

  .p-trouble .p-trouble__item:nth-child(4) {
    position: static;
    top: 0;
  }

  .p-trouble .p-trouble__item .img {
    margin-bottom: -5.797vw;
  }

  .p-trouble .p-trouble__item .img img {
    height: auto;
    width: 100%;
  }

  .p-trouble .p-trouble__item .bottom {
    align-items: center;
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    justify-content: center;
    justify-items: center;
    place-items: center;
  }

  .p-trouble .p-trouble__item .bottom img {
    height: auto;
    left: 0;
    position: static;
    width: 100%;
  }

  .p-trouble .p-trouble__item .bottom p {
    background: #bca32b;
    font-size: 4.348vw;
    font-weight: 700;
    left: -1.932vw;
    letter-spacing: 0.02em;
    line-height: 1.6666666667;
    padding-block: 2.348vw 3.106vw;
    padding-inline: 2.899vw;
    position: relative;
    width: 76.812vw;
  }

  .p-trouble .p-trouble__txt {
    color: #ffffff;
    font-size: 4.831vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 2;
    text-align: center;
  }

  .p-trouble .p-trouble__txt span {
    color: #bca32b;
  }

  .p-policy02 {
    background: #dedbd7;
    position: relative;
  }

  .p-policy02::before {
    content: "";
    display: block;
    width: 100%;
    height: 113px;
    background: url(../images/index/policy02_bg_sp.png) no-repeat center
      center / contain;
    position: absolute;
    top: -20vw;
    left: 0;
  }

  .p-policy02 .l-inner.l-policy02 {
    padding-block: 0vw 0;
    position: relative;
    top: -4vw;
  }

  .p-policy02 .c-policy02__en {
    color: #e8e8e8;
    font-size: 28.261vw;
    font-weight: 400;
    left: -1.57vw;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: -33.816vw;
    position: relative;
    text-align: center;
    top: 4.35vw;
  }

  .p-policy02 .c-policy02__ttl {
    font-size: 7.005vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.3448275862;
    margin-bottom: 5.32vw;
    position: relative; /* 背面の「POLICY」大文字（position: relative）より手前に出す */
    text-align: center;
  }

  .p-policy02 .p-policy02__bg {
    background: linear-gradient(180deg, rgba(48, 44, 23, 0) 0, rgba(48, 44, 23, 0) 19.15vw, #302c17 19.15vw); /* 明るい帯は01の暗いパネルの上端まで */
    padding-block: 0 12.908vw;
    width: 100%;
  }

  .p-policy02 .p-policy02__items {
    display: grid;
    gap: 5.386vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 13.077vw;
    margin-inline: auto;
    width: min(95%, 94.2vw);
  }

  .p-policy02 .p-policy02__con {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .p-policy02 .p-policy02__con-left .num {
    color: #b7b2ab;
    font-size: 19.324vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: -19.493vw;
    padding-inline: 0px 0;
    text-align: center;
  }

  .p-policy02 .p-policy02__con-left .bottom {
    background: #1c190d;
    color: #ffffff;
    height: 62.802vw;
    padding-block: 16.15vw 0;
    padding-inline: 0px 0;
  }

  .p-policy02 .p-policy02__item:nth-child(2) .p-policy02__con-left .bottom {
    padding-block: 15.667vw 0;
  }

  .p-policy02 .p-policy02__con-left .bottom h3 {
    font-size: 8.454vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.3428571429;
    margin-bottom: 3.52vw;
    white-space: nowrap;
    margin-inline: auto;
    width: min(95%, 83.231884058vw);
  }

  .p-policy02 .p-policy02__con-left .bottom p.lead {
    color: #ffffff;
    font-size: 4.348vw;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.6666666667;
    margin-bottom: 2vw;
    margin-inline: auto;
    white-space: nowrap;
    width: min(95%, 83.231884058vw);
  }

  .p-policy02 .p-policy02__item:nth-child(1) .p-policy02__con-left .bottom p.lead {
    margin-bottom: 2.5vw;
  }

  .p-policy02 .p-policy02__item:nth-child(2) .p-policy02__con-left .bottom p.lead--top {
    margin-bottom: 2.97vw;
  }

  .p-policy02 .p-policy02__item:nth-child(2) .p-policy02__con-left .bottom h3 {
    margin-bottom: 3.28vw;
  }

  .p-policy02 .p-policy02__con-left .bottom p.f-en {
    color: #6b6863;
    font-size: 1.932vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.75;
    margin-inline: auto;
    width: min(95%, 83.231884058vw);
  }

  .p-policy02 .p-policy02__con-right img {
    height: auto;
    width: 100%;
  }

  .p-policy02 .c-policy02__btn {
    margin-inline: auto;
    width: min(95%, 82.1vw);
  }

  .p-policy02 .c-policy02__btn a {
    background: #1b100d;
    border: 1px solid #fff;
    border-radius: 8.454vw;
    color: #ffffff;
    display: block;
    display: block;
    font-size: 5.314vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9545454545;
    padding-block: 3.314vw;
    position: relative;
    position: relative;
    text-align: center;
    transition: all 0.3s ease;
  }

  .p-policy02 .c-policy02__btn a::after {
    background: url(../images/index/policy02_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 6.28vw;
    position: absolute;
    right: 8.213vw;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.3s ease;
    width: 6.28vw;
  }

  .p-policy02 .c-policy02__btn a:hover {
    background: #ffffff;
    color: #1b100d;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-policy02 .c-policy02__btn a:hover::after {
    background: url(../images/index/policy02_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-reform {
    background: #dedbd7;
    margin-bottom: 11vw;
  }

  .p-reform .l-inner.l-reform {
    padding-block: 10.493vw 13.493vw;
  }

  .p-reform .c-reform__en {
    font-size: 14.251vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9830508475;
    margin-bottom: 0;
    text-align: center;
    margin-bottom: -6vw;
  }

  .p-reform .c-reform__ttl {
    font-size: 6.28vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5769230769;
    margin-bottom: 6.246vw;
    text-align: center;
  }

  .p-reform .p-reform__items {
    display: grid;
    gap: 6.493vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-inline: auto;
    width: min(95%, 86.9vw);
  }

  .p-reform .p-reform__item a:hover .top::before {
    transform: scale(1.1);
  }

  .p-reform .p-reform__item .top {
    margin-bottom: 2.831vw;
    margin-inline: auto;
    overflow: hidden;
    padding-block: 23.014vw 21.014vw;
    position: relative;
    text-align: center;
    width: 100%;
  }

  .p-reform .p-reform__item:last-child .top {
    padding-block: 23.014vw 13.014vw;
  }

  .p-reform .p-reform__item .top::before {
    content: "";
    inset: 0;
    position: absolute;
    transition: transform 0.4s ease;
  }

  .p-reform .p-reform__item .top.--item01 .en img {
    height: auto;
    width: 64.082vw;
  }

  .p-reform .p-reform__item .top.--item01::before {
    background: url(../images/index/reform_item01_sp.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top.--item02 .en img {
    height: auto;
    width: 72.082vw;
  }

  .p-reform .p-reform__item .top.--item02::before {
    background: url(../images/index/reform_item02_sp.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top.--item03 .en img {
    height: auto;
    width: 77.082vw;
  }

  .p-reform .p-reform__item .top.--item03::before {
    background: url(../images/index/reform_item03_sp.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top.--item04 .en img {
    height: auto;
    width: 52.082vw;
  }

  .p-reform .p-reform__item .top.--item04::before {
    background: url(../images/index/reform_item04_sp.jpg) no-repeat top
      center/cover;
  }

  .p-reform .p-reform__item .top .en {
    position: relative;
    z-index: 1;
    margin-bottom: 3vw;
  }

  .p-reform .p-reform__item .top .txt {
    background: #1b100d;
    color: #ffffff;
    font-size: 3.382vw;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 2.3;
    margin-inline: auto;
    padding: 0vw 2.657vw;
    position: relative;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content;
    z-index: 1;
  }

  .p-reform .p-reform__item .top .txt.bottom {
    margin-block: 0.725vw 0;
  }

  .p-reform .p-reform__item .wrap {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2.623vw;
    align-items: center;
  }

  .p-reform .p-reform__item .wrap .left h3 {
    font-size: 7.729vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.25;
    white-space: nowrap;
  }

  .p-reform .p-reform__item .wrap .right img {
    height: auto;
    width: 6.28vw;
  }

  .p-reform .p-reform__item .bottom-txt {
    border-bottom: 1px solid #b7b2ab;
    font-size: 4.83vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.6;
    padding-block: 0 4.831vw;
  }

  /* 代表挨拶（MESSAGE）。414px基準のデザイン値を vw に換算 */
  .p-message {
    background: #201710;
    margin-top: -11vw; /* 直前の.p-reformのmargin-bottom(11vw)を打ち消す */
    margin-bottom: 11.35vw; /* デザインの「写真の下端→WORKS見出し」の間隔 */
    position: relative;
    width: 100%;
  }

  .p-message .l-inner.l-message {
    padding: 17.12vw 7.729vw 0;
    position: relative;
  }

  .p-message .c-message__en {
    color: #302b24;
    font-size: 23.913vw;
    font-weight: 400;
    left: 5.314vw;
    letter-spacing: 0.05em;
    line-height: 1;
    position: absolute;
    top: 13.45vw;
    white-space: nowrap;
  }

  .p-message .c-message__ttl {
    color: #ffffff;
    font-size: 9.662vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin-bottom: 10.725vw;
    position: relative;
    text-align: center;
  }

  .p-message .p-message__txt p {
    color: #ffffff;
    font-size: 4.348vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
  }

  .p-message .p-message__txt p + p {
    margin-top: 8.76vw;
  }

  .p-message .p-message__img {
    display: grid;
    gap: 0 2.415vw;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-block: 10.7vw 10.9vw;
  }

  .p-message .p-message__img li img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-message .p-message__em {
    margin-block: 3.14vw 0;
    margin-left: -2.657vw;
  }

  .p-message .p-message__em span {
    background: #000000;
    color: #ffffff;
    display: block;
    font-size: 6.522vw;
    font-weight: 900;
    height: 10.386vw;
    letter-spacing: 0.05em;
    line-height: 10.386vw;
    margin-bottom: 0.9vw;
    padding-inline: 2.657vw;
    white-space: nowrap;
    width: fit-content;
  }

  .p-message .p-message__em span em {
    color: #d4bb47;
    font-style: normal;
  }

  .p-message .p-message__mid {
    display: flex;
    flex-direction: column;
    margin-top: 33.6vw;
    position: relative;
  }

  .p-message .p-message__mid .p-message__txt--03 {
    order: 1;
  }

  .p-message .p-message__mid .p-message__quote {
    order: 2;
  }

  .p-message .p-message__mid .p-message__photo {
    order: 3;
  }

  .p-message .p-message__mid .p-message__txt--04 {
    order: 4;
  }

  .p-message .p-message__mid::before {
    background: #ffffff;
    content: "";
    height: 18.1vw;
    left: calc(50% - 1px);
    position: absolute;
    top: -25.36vw;
    width: 1px;
  }

  .p-message .p-message__mid::after {
    display: none;
  }

  .p-message .p-message__photo img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-message .p-message__quote {
    margin-block: 2.17vw 0;
    margin-left: -2.657vw;
    width: 87.2vw;
  }

  .p-message .p-message__quote span.p-message__quote-pc {
    display: none;
  }

  .p-message .p-message__quote span {
    background: #d4bb47;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    color: #000000;
    font-size: 6.522vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 11.7vw;
    padding: 0.5vw 2.415vw;
  }

  .p-message .p-message__mid .p-message__photo {
    margin-block: 7.99vw 8.28vw;
  }

  .p-message .p-message__end {
    color: #ffffff;
    margin-top: 7.24vw;
    padding-bottom: 15.4vw;
  }

  .p-message .p-message__end span {
    display: block;
    font-size: 5.797vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9583333333;
    white-space: nowrap;
  }

  .p-message .p-message__end span + span {
    margin-top: 11.35vw;
  }

  .p-message .p-message__end span em {
    color: #d4bb47;
    font-style: normal;
  }

  .p-message .p-message__bg img {
    display: block;
    height: auto;
    width: 100%;
  }

  .p-works {
    margin-bottom: 16.908vw;
  }

  .p-works .c-works__en {
    font-size: 14.251vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9830508475;
    margin-bottom: -6vw;
    text-align: center;
  }

  .p-works .c-works__ttl {
    font-size: 8.696vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5833333333;
    margin-bottom: 9.111vw;
    text-align: center;
  }

  .p-works .system-list {
    display: grid;
    gap: 9.111vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 11.527vw;
    margin-inline: auto;
    width: min(95%, 91.9vw);
  }

  .p-works .system-pic .ba {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 2.899vw;
  }

  .p-works .system-pic .ba__img img {
    height: 55.072vw;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  .p-works .system-pic .ba__label {
    color: #ffffff;
    font-size: 3.865vw;
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: 1.8;
    text-align: center;
  }

  .p-works .system-pic .ba__label.before {
    background: #545454;
  }

  .p-works .system-pic .ba__label.after {
    background: #1b100d;
  }

  .p-works .system-category {
    margin-bottom: 0vw;
  }

  .p-works .system-category span {
    font-size: 3.382vw;
    font-weight: 700;
    letter-spacing: 0em;
    line-height: 2;
    padding: 0.8vw 2.4vw;
    border-radius: 4px;
    background: #302c17;
    border-radius: 0.966vw;
    color: #ffffff;
    margin-bottom: 0vw;
    width: -moz-fit-content;
    width: fit-content;
  }

  .p-works .system-ttl {
    font-size: 5.314vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: 0vw;
  }

  .p-works .system-meta {
    color: #7a7a7a;
    font-size: 3.865vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
  }

  .p-works .c-works__btn {
    margin-inline: auto;
    width: min(95%, 82.1vw);
  }

  .p-works .c-works__btn a {
    background: #fff;
    border: 1px solid #1b100d;
    border-radius: 8.454vw;
    display: block;
    font-size: 5.314vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9545454545;
    text-align: center;
    transition: all 0.3s ease;
    position: relative;
    padding-block: 3vw;
  }

  .p-works .c-works__btn a:hover {
    background: #1b100d;
    color: #ffffff;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-works .c-works__btn a:hover::after {
    background: url(../images/index/works_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-works .c-works__btn a::after {
    background: url(../images/index/works_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 6.28vw;
    position: absolute;
    right: 8.213vw;
    top: 50%;
    transform: translateY(-50%);
    width: 6.28vw;
  }

  .p-bnr02 {
    background: url(../images/index/bnr_bg_sp.jpg) no-repeat top center/cover;
    margin-inline: auto;
    width: 100%;
  }

  .p-bnr02 .l-inner.l-bnr02 {
    padding-block: 13.077vw 12.077vw;
  }

  .p-bnr02 .p-bnr02__img {
    margin-inline: auto;
    width: min(95%, 89.3vw);
  }

  .p-bnr02 .p-bnr02__img img {
    height: auto;
    width: 100%;
  }

  .p-instagram {
    background: #dedbd7;
  }

  .p-instagram .l-inner.l-instagram {
    padding-block: 11.976vw 0;
  }

  .p-instagram .c-instagram__en {
    font-size: 14.251vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9830508475;
    margin-bottom: -7vw;
    text-align: center;
  }

  .p-instagram .c-instagram__ttl {
    font-size: 6.28vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.5769230769;
    margin-bottom: 9.768vw;
    text-align: center;
  }

  .p-instagram .p-instagram__items {
    display: grid;
    gap: 7.246vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 7.246vw;
    margin-inline: auto;
    width: min(95%, 91.7vw);
  }

  .p-instagram .p-instagram__item {
    background: #ffffff;
    padding-block: 9.628vw;
    padding-inline: 5.005vw;
  }

  .p-instagram .ttl {
    align-items: center;
    display: flex;
    gap: 0 3.246vw;
    justify-content: center;
    margin-bottom: 5.729vw;
  }

  .p-instagram .ttl h3 {
    font-size: 6.522vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5925925926;
  }

  .p-instagram .items {
    display: grid;
    gap: 1vw;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 5.937vw;
  }

  .p-instagram .items li a {
    display: block;
  }

  .p-instagram .items li a img {
    height: auto;
    width: 100%;
  }

  .p-instagram .link {
    margin-inline: auto;
    width: min(95%, 51.1vw);
  }

  .p-instagram .link a {
    border-bottom: 2px solid #1b100d;
    display: block;
    font-size: 5.797vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.8333333333;
    padding-block: 0 1.208vw;
    position: relative;
  }

  .p-instagram .link a::after {
    background: url(../images/index/instagram_arrow.svg) no-repeat center
      center/contain;
    content: "";
    height: 5.797vw;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 5.797vw;
  }

  .p-instagram .p-instagram__icon {
    text-align: center;
    width: 100%;
    animation: bounce 0.3s infinite;
  }

  .p-instagram .p-instagram__icon img {
    height: auto;
    width: 16.667vw;
  }

  .p-youtube {
    background: url(../images/index/youtube_bg_sp.jpg) no-repeat top
      center/cover;
    margin-inline: auto;
    width: 100%;
  }

  .p-youtube .l-inner.l-youtube {
    padding-block: 10.976vw 14.493vw;
  }

  .p-youtube .c-youtube__en {
    color: #ffffff;
    font-size: 14.251vw;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9830508475;
    margin-bottom: -7vw;
    text-align: center;
  }

  .p-youtube .c-youtube__ttl {
    color: #ffffff;
    font-size: 6.28vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.5769230769;
    margin-bottom: 9.768vw;
    text-align: center;
  }

  .p-youtube .p-youtube__items {
    display: block;
    width: 100%;
    margin-bottom: 12vw;
  }

  .p-youtube .p-youtube__item {
    background: #ffffff;
    margin-inline: 2.415vw;
    padding-block: 5.246vw 3.623vw;
    padding-inline: 6.246vw;
  }

  .p-youtube .p-youtube__item a {
    display: block;
  }

  .p-youtube .p-youtube__item a .system-pic {
    margin-bottom: 3.382vw;
  }

  .p-youtube .p-youtube__item a .system-pic img {
    height: 37.44vw;
    width: 100%;
  }

  .p-youtube .p-youtube__item a h3 {
    font-size: 4.831vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin-bottom: 0;
  }

  .p-youtube .p-youtube__item a .arrow {
    margin-left: auto;
    text-align: right;
  }

  .p-youtube .p-youtube__item a .arrow img {
    display: inline-block;
    height: auto;
    width: 11.353vw;
  }

  .p-youtube .c-youtube__btn {
    margin-inline: auto;
    width: min(95%, 82.1vw);
  }

  .p-youtube .c-youtube__btn a {
    background: #1b100d;
    border: 2px solid #fff;
    border-radius: 12.802vw;
    color: #ffffff;
    display: block;
    font-size: 5.314vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.0909090909;
    padding-block: 2.522vw;
    position: relative;
    position: relative;
    text-align: center;
    transition: all 0.3s ease;
  }

  .p-youtube .c-youtube__btn a:hover {
    background: #ffffff;
    color: #1b100d;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-youtube .c-youtube__btn a:hover::after {
    background: url(../images/index/youtube_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-youtube .c-youtube__btn a::after {
    background: url(../images/index/youtube_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 3.14vw;
    position: absolute;
    right: 7.246vw;
    top: 50%;
    transform: translateY(-50%);
    width: 3.14vw;
  }

  .slick-track {
    display: flex;
  }

  .slick-slide {
    height: auto !important;
  }

  .p-about {
    background: #302c17;
  }

  .p-about .l-inner.l-about {
    padding-block: 9.976vw 13.077vw;
  }

  .p-about .p-about__con {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    padding-inline: 0;
    width: 100%;
    margin-bottom: 10vw;
  }

  .p-about .p-about__con-left {
    display: contents;
  }

  .p-about .c-about__en {
    color: #ffffff;
    font-size: 14.251vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9830508475;
    margin-bottom: -7vw;
    order: 1;
    text-align: center;
  }

  .p-about .c-about__ttl {
    color: #ffffff;
    font-size: 6.28vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.5769230769;
    margin-bottom: 9.111vw;
    order: 2;
    text-align: center;
  }

  .p-about .p-about__txt {
    color: #ffffff;
    font-size: 7.488vw;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.5806451613;
    margin-bottom: 8.111vw;
    order: 4;
    text-align: center;
  }

  .p-about .p-about__txt02 {
    font-size: 4.831vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-inline: auto;
    order: 5;
    width: min(95%, 84.5410628019vw);
    color: #fff;
  }

  .p-about .p-about__con-right {
    margin-bottom: 9.251vw;
    order: 3;
  }

  .p-about .p-about__con-right img {
    height: auto;
    width: 100%;
  }

  .p-about .p-about__con02 {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-inline: auto;
    width: min(95%, 84.5410628019vw);
  }

  .p-about .p-about__con02-left img {
    height: auto;
    width: 100%;
  }

  .p-about .p-about__con02-right {
    background: #1c190d;
    color: #ffffff;
    padding-block: 6.488vw 12.077vw;
    padding-inline: 5.865vw 0vw;
  }

  .p-about .p-about__con02-right p {
    font-size: 4.831vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: 0.899vw;
  }

  .p-about .p-about__con02-right .link {
    margin-bottom: 4.696vw;
  }

  .p-about .p-about__con02-right .link a {
    color: #ffffff;
    font-size: 4.831vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    -webkit-text-decoration: underline;
    text-decoration: underline;
  }

  .p-about .p-about__con02-right .btn {
    width: min(95%, 76.811594vw);
  }

  .p-about .p-about__con02-right .btn a {
    border: 1px solid #fff;
    border-radius: 12.802vw;
    color: #ffffff;
    display: block;
    font-size: 5.314vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9545454545;
    text-align: center;
    -webkit-text-decoration: none;
    padding-block: 3.454vw 2.488vw;
    position: relative;
    text-decoration: none;
    transition: all 0.3s ease;
  }

  .p-about .p-about__con02-right .btn a::after {
    background: url(../images/index/about_btn.svg) no-repeat center
      center/contain;
    content: "";
    height: 8.213vw;
    position: absolute;
    right: 7.246vw;
    top: 50%;
    transform: translateY(-50%);
    width: 8.213vw;
  }

  .p-about .p-about__con02-right .btn a:hover {
    background: #ffffff;
    color: #1b100d;
    -webkit-text-decoration: none;
    text-decoration: none;
  }

  .p-about .p-about__con02-right .btn a:hover::after {
    background: url(../images/index/about_btn_hover.svg) no-repeat center
      center/contain;
  }

  .p-link {
    background: #dedbd7;
  }

  .p-link .l-inner.l-link {
    padding-block: 13.908vw 12.908vw;
  }

  .p-link .p-link__items {
    display: grid;
    gap: 10.043vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-inline: auto;
    width: min(95%, 91.7vw);
  }

  .p-link .p-link__item a {
    display: block;
  }

  .p-link .p-link__item a img {
    height: auto;
    margin-bottom: 4.039vw;
    width: 100%;
  }

  .p-link .p-link__item a p {
    font-size: 4.831vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2;
    text-align: center;
  }

  .p-seo {
    background: #dedbd7;
  }

  .p-seo .l-inner.l-seo {
    margin-inline: auto;
    padding-block: 9.87vw 9.662vw;
    width: min(95%, 86.7vw);
  }

  .p-seo p {
    color: #6b6863;
    font-size: 2.899vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.6666666667;
  }
}
