@keyframes zoomUp {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.15); /* 拡大率 */
  }
}

.system-list {
  margin-bottom: 0;
}

.system-ttl {
  margin-bottom: 0;
}

/* hover系
-------------------------------------*/
.p-event .system-list li a:hover {
  text-decoration: none;
}

/* タイトルには下線を残したい場合 */
.p-event .system-list li a:hover .system-ttl {
  text-decoration: underline;
}

.p-link .p-link__item a:hover {
  text-decoration: none;
}

.p-link .p-link__item a:hover .num,
.p-link .p-link__item a:hover h2,
.p-link .p-link__item a:hover .txt {
  text-decoration: underline;
}

.p-link02 .p-link02__con-right .link-list li a:hover {
  text-decoration: none;
}

.p-link02 .p-link02__con-right .link-list li a:hover p {
  text-decoration: underline;
}

/* ========================================
  @media screen and (min-width: 768px),print
======================================== */
@media screen and (min-width: 768px), print {
  /* fv
-------------------------------------*/
  .p-fv {
    left: 50%;
    transform: translateX(-50%);
    margin-inline: auto;
    overflow: hidden;
    position: absolute;
    top: 0;
    width: min(100%, 1920px);
  }

  .p-fv .l-fv {
    position: relative;
  }

  .p-fv .p-fv__ttl {
    bottom: 107px;
    color: #ffffff;
    font-size: 42px;
    font-weight: 400;
    left: 95px;
    left: clamp(48px, calc(16px + 4.1667vw), 96px);
    letter-spacing: 0.06em;
    line-height: 1;
    margin-inline: auto;
    position: absolute;
    width: min(95%, 1736px);
  }

  .p-fv .p-fv__ttl span {
    display: block;
    font-size: 22px;
    font-weight: 400;
    letter-spacing: 0.0125em;
    line-height: 1;
    margin-bottom: 12px;
  }

  .p-fv .p-fv__slider-img .add-animation {
    animation: zoomUp 10s linear 0s normal both;
  }

  .p-fv .p-fv__slider-img img {
    height: auto;
    width: 100%;
  }

  /* concept
-------------------------------------*/
  .p-concept {
    margin-bottom: 185px;
    padding-block: 1014px 0;
    padding-block: clamp(20rem, -8.917rem + 60.24vw, 63.375rem) 0;
  }

  .p-concept .l-inner.l-concept {
    margin-left: auto;
    width: min(95%, 1539px);
  }

  .p-concept .p-concept__con {
    display: grid;
    gap: 0 13.4%;
    grid-template-columns: 24.7% 61.9%;
    align-items: center;
  }

  .p-concept .p-concept__con-left .en {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 67px;
  }

  .p-concept .p-concept__con-left h2 {
    font-size: 26px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.6153846154;
    margin-bottom: 45px;
    white-space: nowrap;
  }

  .p-concept .p-concept__con-left .txt {
    margin-bottom: 38px;
  }

  .p-concept .p-concept__con-left .txt p {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.7142857143;
    margin-bottom: 38px;
  }

  .p-concept .p-concept__con-left .txt p:last-child {
    margin-bottom: 0;
  }

  .p-concept .p-concept__con-right img {
    height: auto;
    width: 100%;
  }

  /* btn
-------------------------------------*/
  .c-btn {
    align-items: center;
    display: flex;
    gap: 0 16px;
  }

  .c-btn span {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.84px;
    line-height: 1;
  }

  /* event
-------------------------------------*/
  .p-event {
    background-color: #fffffc; /* 背景色を指定 */
    background-image: url(../images/index/event_bg.jpg); /* 画像を指定 */
    background-position: bottom center; /* 画像の位置を指定 */
    background-repeat: no-repeat; /* 画像を繰り返さない */
    background-size: 90%; /* 画像のサイズ調整（必要に応じて変更） */
    margin-bottom: 208px;
  }

  .p-event .l-inner.l-event {
    margin-inline: auto;
    padding-block: 0 48px;
    width: min(95%, 1728px);
  }

  .p-event .c-sec__en {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 8px;
    text-align: center;
  }

  .p-event .c-sec__ttl {
    font-size: 28px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.2857142857;
    margin-bottom: 40px;
    text-align: center;
  }

  .p-event .system-list {
    display: grid;
    gap: 0 40px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(90%, 1536px);
    margin-inline: auto;
  }

  .p-event .system-list li {
    display: grid;
    grid-row: span 4;
    grid-template-rows: subgrid;
  }

  .p-event .system-list li,
  .p-event .system-list li a {
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
  }

  .p-event .system-list li a {
    display: inherit;
    grid-row: inherit;
    grid-template-rows: inherit;
  }

  .p-event .system-pic {
    margin-bottom: 9px;
  }

  .p-event .system-pic img {
    height: auto;
    width: 100%;
  }

  .p-event .icon {
    color: #ffffff;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.0625;
    margin-bottom: 16px;
    padding-inline: 35px;
    width: -moz-fit-content;
    width: fit-content;
  }

  .p-event .icon.icon01 {
    background: #5c5a48;
  }

  .p-event .icon.icon02 {
    background: #706d59;
  }

  .p-event .icon.icon03 {
    background: #85847d;
  }

  .p-event .system-ttl {
    border-bottom: 1px solid #7a7a7a;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.1428571429em;
    line-height: 1.5714285714;
    margin-bottom: 12px;
    padding-block: 0 16px;
  }

  .p-event .system-bottom {
    color: #7a7a7a;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .p-event .wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 0 4px;
  }

  .p-event .system-place {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5384615385;
  }

  .p-event .system-date {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5384615385;
  }

  .p-event .system-time {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5384615385;
    min-width: 0;
    overflow-wrap: anywhere;
  }

   /* life
-------------------------------------*/
  .p-life {
    margin-bottom: 138px;
  }

  .p-life .l-inner.l-life {
    position: relative;
  }

  .p-life .p-life__box-wrapper {
    height: 100%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 9;
  }

  .p-life .p-life__box {
    height: 100vh;
    height: 100svh;
    margin-inline: auto;
    position: sticky;
    top: 0;
    width: min(95%, 1541px);
  }

  .p-life .p-life__box a {
    pointer-events: auto;
  }

  .p-life .p-life__box-inner {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    padding-top: 100px;
  }

  .p-life .p-life__ttl {
    color: #ffffff;
  }

  .p-life .p-life__ttl .en {
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 8px;
  }

  .p-life .p-life__ttl h2 {
    font-size: 28px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.2857142857;
  }

  .p-life .p-life__nav {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    position: relative;
    top: 39px;
  }

  .p-life .p-life__nav-list {
    display: grid;
    gap: 30px 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    position: relative;
  }

  .p-life .p-life__nav-list::after {
    background: #bebcb0;
    content: "";
    height: 100%;
    left: 50%;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 0.6px;
  }

  .p-life .p-life__nav-item a {
    background: #bebcb0;
    border: 0.675px solid #bebcb0;
    border-radius: 50%;
    display: block;
    height: 13px;
    margin-inline: auto;
    position: relative;
    width: 13px;
    z-index: 1;
  }

  .p-life .p-life__nav-item a.is-active {
    background: #ffffff;
    height: 20px;
    margin-inline: auto;
    width: 20px;
    border: none;
  }

  .p-life .p-life__items {
    position: relative;
    z-index: 1;
  }

  .p-life .p-life__items::after {
    content: "";
    display: block;
    height: 100vh;
  }

  .p-life .p-life__item {
    height: 100vh;
    height: 100svh;
    position: sticky;
    top: 0;
  }

  .p-life .p-life__item:not(:first-child) {
    margin-top: 24vh;
  }

  .p-life .p-life__item.--life01 {
    z-index: 1;
  }

  .p-life .p-life__item.--life02 {
    z-index: 2;
  }

  .p-life .p-life__item.--life03 {
    z-index: 3;
  }

  /* フェード切り替え(旧仕様)。上からかぶさる紙芝居風の動きに変更したいとの要望でコメントアウト
  .p-life .p-life__item-view {
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: center;
    opacity: 0;
    position: absolute;
    transition: opacity 0.8s ease;
    pointer-events: none;
  }

  .p-life .p-life__item.--life01 .p-life__item-view {
    background: url(../images/index/life01_bg.jpg) no-repeat center/cover;
    opacity: 1;
    pointer-events: auto;
  }

  .p-life .p-life__item.--life02 .p-life__item-view {
    background: url(../images/index/life02_bg.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.--life03 .p-life__item-view {
    background: url(../images/index/life03_bg.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.is-shown .p-life__item-view {
    opacity: 1;
    pointer-events: auto;
  }
  */

  .p-life .p-life__item-view {
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: center;
    position: absolute;
    transform: translateY(100%);
    transition: transform 0.8s ease;
    pointer-events: none;
  }

  .p-life .p-life__item.--life01 .p-life__item-view {
    background: url(../images/index/life01_bg.jpg) no-repeat center/cover;
    transform: translateY(0);
    pointer-events: auto;
  }

  .p-life .p-life__item.--life02 .p-life__item-view {
    background: url(../images/index/life02_bg.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.--life03 .p-life__item-view {
    background: url(../images/index/life03_bg.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.is-shown .p-life__item-view {
    transform: translateY(0);
    pointer-events: auto;
  }

  .p-life .p-life__item-box {
    background: #f7f6f0;
    margin-inline: auto;
    padding-block: 64px 65px;
    position: relative;
    width: min(95%, 486px);
    z-index: 1;
  }

  .p-life .p-life__item-box .num {
    font-size: 22px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 12px;
    text-align: center;
  }

  .p-life .p-life__item-box .en {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 49px;
    text-align: center;
  }

  .p-life .p-life__item-box h3 {
    font-size: 26px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1;
    margin-bottom: 31px;
    text-align: center;
  }

  .p-life .p-life__item-box .img {
    margin-bottom: 32px;
    margin-inline: auto;
    width: min(95%, 360px);
  }

  .p-life .p-life__item-box .img img {
    height: auto;
    width: 100%;
  }

  .p-life .p-life__item-box .txt {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.1428571429em;
    line-height: 1.8571428571;
    text-align: center;
  }

  .p-life .c-btn {
    display: flex;
    justify-content: flex-end;
    color: #ffffff;
    margin-block: -73px 0;
    position: relative;
    z-index: 10;
    left: calc(50% + 503px);
    width: 170px;
  }

  .p-life .c-btn span {
    color: #ffffff;
  }

  /* works
-------------------------------------*/
  .p-works {
    margin-bottom: 195px;
  }

  .p-works .l-inner.l-works {
    margin-inline: auto;
    width: min(95%, 1342px);
  }

  .p-works .p-works__top {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 69px;
  }

  .p-works .c-sec__en {
    font-size: 26px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
  }

  .p-works .system-list {
    display: grid;
    gap: 8.6% 13.8%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .p-works .system-list li a {
    color: #403f3f;
  }

  .p-works .system-pic {
    margin-bottom: 30px;
  }

  .p-works .system-pic img {
    height: 420px;
    width: 100%;
  }

  .p-works .system-ttl {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2;
    margin-bottom: 0px;
  }

  .p-works .system-area {
    color: #787777;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2;
  }

  /* link
-------------------------------------*/
  .p-link {
    margin-bottom: 140px;
  }

  .p-link .l-inner.l-link {
    background: url(../images/index/link_bg.jpg) repeat top center/cover;
    margin-inline: auto;
    padding-block: 120px 103px;
    width: min(95%, 1728px);
  }

  .p-link .p-link__items {
    display: grid;
    gap: 0 54px;
    gap: 0 3.5%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-inline: auto;
    width: min(95%, 1536px);
  }

  .p-link .p-link__item {
    display: grid;
    grid-row: span 4;
    grid-template-rows: subgrid;
  }

  .p-link .p-link__item a {
    color: #ffffff;
    display: inherit;
    grid-row: inherit;
    grid-template-rows: inherit;
  }

  .p-link .p-link__item a .num {
    align-items: center;
    display: flex;
    gap: 0 18px;
    margin-bottom: 66px;
  }

  .p-link .p-link__item a .num span {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
  }

  .p-link .p-link__item a h2 {
    font-size: 24px;
    font-size: clamp(1.25rem, 1.083rem + 0.35vw, 1.5rem);
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.1666666667;
    margin-bottom: 32px;
  }

  .p-link .p-link__item a .txt {
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0em;
    line-height: 2;
    margin-bottom: 42px;
  }

  .p-link .p-link__item a .arrow {
    background: #52524d;
    border-radius: 26.249px;
    color: #cbcbcb;
    padding-block: 5px 2px;
    width: 71px;
  }

  .p-link .p-link__item a .arrow span {
    display: block;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1;
    text-align: center;
  }

  /* owner
-------------------------------------*/
  .p-owner {
    margin-bottom: 189px;
  }

  .p-owner .l-inner.l-owner {
    margin-inline: auto;
    width: min(95%, 1540px);
  }

  .p-owner .p-owner__con {
    align-items: center;
    display: grid;
    gap: 0 8.2%;
    grid-template-columns: 22.5% 50.3%;
    justify-content: flex-end;
  }

  .p-owner .c-sec__en {
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 8px;
  }

  .p-owner .c-sec__ttl {
    font-size: 28px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.2857142857;
    margin-bottom: 171px;
    white-space: nowrap;
  }

  .p-owner .p-owner__con-right img {
    height: auto;
    width: 100%;
  }

  /* link02
-------------------------------------*/
  .p-link02 {
    margin-bottom: 181px;
  }

  .p-link02 .l-inner.l-link02 {
    margin-inline: auto;
    width: min(95%, 1532px);
  }

  .p-link02 .p-link02__con {
    align-items: center;
    display: grid;
    gap: 0 6%;
    grid-template-columns: 62.8% 31.8%;
  }

  .p-link02 .p-link02__con-left img {
    height: auto;
    width: 100%;
  }

  .p-link02 .p-link02__con-right .link-list {
    display: grid;
    gap: 30px 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 51px;
  }

  .p-link02 .p-link02__con-right .link-list li a {
    align-items: center;
    border-bottom: 1px solid #d9d9d9;
    display: flex;
    justify-content: space-between;
    padding-block: 0 29px;
    padding-inline: 0 107px;
    padding-inline: 0 clamp(1.5rem, -1.958rem + 7.2vw, 6.688rem);
    color: #403f3f;
  }

  .p-link02 .p-link02__con-right .link-list li a p {
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.6875;
  }

  .p-link02 .p-link02__con-right .link-list li a span {
    color: #595757;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1;
  }

  .p-link02 .p-link02__con-right .sns {
    display: flex;
    justify-content: space-between;
    width: min(95%, 286px);
  }

  .p-link02 .p-link02__con-right .sns li a {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    padding-inline: 0 13px;
    position: relative;
    color: #403f3f;
  }

  .p-link02 .p-link02__con-right .sns li a::after {
    content: "→";
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    position: absolute;
    right: -13px;
    top: 50%;
    transform: translateY(-50%) rotate(-40.954deg);
  }

  /* column
-------------------------------------*/
  .p-column {
    margin-bottom: 143px;
  }

  .p-column .l-inner.l-column {
    margin-inline: auto;
    width: min(95%, 1540px);
  }

  .p-column .p-column__con {
    display: grid;
    gap: 0 7.9%;
    grid-template-columns: 18.7% 60.7%;
    justify-content: flex-end;
  }

  .p-column .c-sec__en {
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 22px;
  }

  .p-column .c-sec__ttl {
    font-size: 28px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.2857142857;
    margin-bottom: 59px;
  }

  .p-column .system-list {
    display: grid;
    gap: 0 31px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .p-column .system-pic {
    margin-bottom: 22px;
  }

  .p-column .system-pic img {
    height: 180px;
    height: clamp(5.625rem, 1.875rem + 7.81vw, 11.25rem);
    width: 100%;
  }

  .p-column .system-category-set {
    color: #787777;
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    font-weight: 400;
    gap: 0 8px;
    letter-spacing: 0em;
    line-height: 1.6846153846;
    margin-bottom: 7px;
  }

  .p-column .system-date {
    color: #787777;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.6846153846;
    margin-bottom: 5px;
  }

  .p-column .system-ttl {
    color: #403f3f;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5642857143;
    margin-bottom: 0;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1450px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1450px) {
  .p-life .c-btn {
    display: flex;
    justify-content: flex-end;
    color: #ffffff;
    margin-block: -5.034vw 0;
    position: relative;
    z-index: 10;
    left: calc(50% + 34.69vw);
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1400px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1400px) {
  .p-works .system-list {
    display: grid;
    gap: 6.357vw 13.286vw;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .p-works .system-list li a {
    color: #403f3f;
  }

  .p-works .system-pic {
    margin-bottom: 2.143vw;
  }

  .p-works .system-pic img {
    height: 30vw;
    width: 100%;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1300px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .p-concept .p-concept__con {
    display: grid;
    gap: 0 13%;
    grid-template-columns: 35.7% 50.9%;
    align-items: center;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1200px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1200px) {
  .p-life .c-btn {
    left: calc(50% + 24.69vw);
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1050px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1050px) {
  .p-life .c-btn {
    margin-block: 1.966vw 0;
  }

  .p-owner .p-owner__con {
    gap: 0 17.2%;
  }
}

/* ========================================
@media screen and (min-width: 768px) and (max-width: 950px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 950px) {
  .p-column .p-column__con {
    grid-template-columns: 23.7% 60.7%;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:850px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 850px) {
  .p-link02 .p-link02__con-right .sns li a {
    padding-inline: 0 9px;
  }
}

/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
  /* fv
-------------------------------------*/
  .p-fv {
    left: 0;
    margin-inline: auto;
    overflow: hidden;
    position: absolute;
    top: 0;
    width: 100%;
  }

  .p-fv .l-fv {
    position: relative;
  }

  .p-fv .p-fv__ttl {
    bottom: 19.734vw;
    color: #ffffff;
    font-size: 6.763vw;
    font-weight: 400;
    left: 6.522vw;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-inline: auto;
    position: absolute;
    width: min(95%, 86.9vw);
  }

  .p-fv .p-fv__ttl span {
    font-size: 3.623vw;
    font-weight: 400;
    letter-spacing: 0.0125333333em;
    line-height: 1;
    margin-bottom: 1.932vw;
    display: block;
  }

  .p-fv .p-fv__slider-img .add-animation {
    animation: zoomUp 5s linear 0s normal both;
  }

  .p-fv .p-fv__slider-img img {
    height: auto;
    width: 100%;
  }

  /* concept
-------------------------------------*/
  .p-concept {
    margin-bottom: 23.155vw;
    padding-block: 168.237vw 0;
  }

  .p-concept .l-inner.l-concept {
    margin: 0;
    margin-inline: auto;
    width: min(95%, 87.8vw);
  }

  .p-concept .p-concept__con {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .p-concept .p-concept__con-left {
    display: contents;
  }

  .p-concept .p-concept__con-left .en {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 9.662vw;
    order: 1;
  }

  .p-concept .p-concept__con-left h2 {
    font-size: 5.314vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.7272727273;
    margin-bottom: 10.246vw;
    order: 2;
  }

  .p-concept .p-concept__con-left .txt {
    margin-bottom: 9.662vw;
    order: 4;
  }

  .p-concept .p-concept__con-left .txt p {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.7142857143;
    margin-bottom: 8.831vw;
  }

  .p-concept .p-concept__con-left .txt p:last-child {
    margin-bottom: 0;
  }

  .p-concept .p-concept__con-left .c-btn {
    margin-inline: auto;
    order: 5;
  }

  .p-concept .p-concept__con-right {
    margin-bottom: 12.319vw;
    order: 3;
  }

  .p-concept .p-concept__con-right img {
    height: auto;
    width: 100%;
  }

  .c-btn {
    align-items: center;
    display: flex;
    gap: 0 3.865vw;
  }

  .c-btn span {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
  }

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

  .p-event .l-inner.l-event {
    margin-inline: auto;
    padding-block: 0 13.319vw;
    width: min(95%, 88.8888888889vw);
  }

  .p-event .c-sec__en {
    font-size: 2.899vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 1.932vw;
    text-align: center;
  }

  .p-event .c-sec__ttl {
    font-size: 5.797vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.25;
    margin-bottom: 2.415vw;
    text-align: center;
  }

  .p-event .system-list {
    display: block;
  }

  .p-event .system-pic {
    margin-bottom: 5.314vw;
  }

  .p-event .system-pic img {
    height: auto;
    width: 100%;
  }

  .p-event .icon {
    color: #ffffff;
    font-size: 3.865vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.2;
    margin-bottom: 3.865vw;
    padding-inline: 7.937vw;
    width: -moz-fit-content;
    width: fit-content;
  }

  .p-event .icon.icon01 {
    background: #5c5a48;
  }

  .p-event .icon.icon02 {
    background: #706d59;
  }

  .p-event .icon.icon03 {
    background: #85847d;
  }

  .p-event .system-ttl {
    border-bottom: 1px solid #7a7a7a;
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0.1428571429em;
    line-height: 1.5714285714;
    margin-bottom: 2.899vw;
    padding-block: 0 3.865vw;
  }

  .p-event .system-bottom {
    color: #7a7a7a;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .p-event .wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 0 5vw;
  }

  .p-event .system-place {
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5384615385;
  }

  .p-event .system-date {
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5384615385;
  }

  .p-event .system-time {
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5384615385;
  }

  .slick-track {
    display: flex;
  }

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

  .p-event .prev-arrow {
    position: absolute;
    right: calc(50% + 7vw);
    bottom: -10vw;
    z-index: 11;
  }

  .p-event .next-arrow {
    position: absolute;
    left: calc(50% + 7vw);
    bottom: -10vw;
    z-index: 11;
  }

  /* life
-------------------------------------*/
  .p-life {
    margin-bottom: 19.324vw;
  }

  .p-life .l-inner.l-life {
    position: relative;
  }

  .p-life .p-life__box-wrapper {
    height: 100%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10;
  }

  .p-life .p-life__box {
    height: 100vh;
    height: 100svh;
    position: sticky;
    top: 0;
  }

  .p-life .p-life__box a {
    pointer-events: auto;
  }

  .p-life .p-life__box-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    padding-block: 14.493vw 53.14vw;
    width: min(95%, 77.2vw);
    margin-inline: auto;
  }

  .p-life .p-life__ttl {
    color: #ffffff;
    text-align: center;
  }

  .p-life .p-life__ttl .en {
    font-size: 2.899vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 0;
  }

  .p-life .p-life__ttl h2 {
    font-size: 5.797vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.2858333333;
  }

  .p-life .p-life__nav {
  }

  .p-life .p-life__nav-list {
    gap: 0 3.382vw;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    display: grid;
    width: 14.734vw;
    position: relative;
  }

  .p-life .p-life__nav-list::after {
    height: 0.145vw;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 90%;
    background: #bebcb0;
    content: "";
    position: absolute;
  }

  .p-life .p-life__nav-item a {
    height: 1.932vw;
    width: 1.932vw;
    background: #bebcb0;
    border-radius: 50%;
    display: block;
    position: relative;
    z-index: 1;
  }

  .p-life .p-life__nav-item a.is-active {
    /* height: 2.657vw;
    width: 2.657vw; */
    background: #f7f6f0;
    scale: 1.35;
  }

  .p-life .p-life__items {
    position: relative;
    z-index: 1;
  }

  .p-life .p-life__items::after {
    content: "";
    display: block;
    height: 100vh;
  }

  .p-life .p-life__item {
    height: 100vh;
    height: 100svh;
    position: sticky;
    top: 0;
  }

  /* フェード切り替え(旧仕様)。上からかぶさる紙芝居風の動きに変更したいとの要望でコメントアウト
  .p-life .p-life__item-view {
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: center;
    opacity: 0;
    position: absolute;
    transition: opacity 0.8s ease;
  }
  */

  .p-life .p-life__item-view {
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: center;
    position: absolute;
    transform: translateY(100%);
    transition: transform 0.8s ease;
  }

  .p-life .p-life__item:not(:first-child) {
    margin-top: 16vh;
  }

  .p-life .p-life__item.--life01 {
    z-index: 1;
  }

  .p-life .p-life__item.--life02 {
    z-index: 2;
  }

  .p-life .p-life__item.--life03 {
    z-index: 3;
  }

  /* フェード切り替え(旧仕様)。上からかぶさる紙芝居風の動きに変更したいとの要望でコメントアウト
  .p-life .p-life__item.--life01 .p-life__item-view {
    background: url(../images/index/life01_bg_sp.jpg) no-repeat center/cover;
    opacity: 1;
  }

  .p-life .p-life__item.--life02 .p-life__item-view {
    background: url(../images/index/life02_bg_sp.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.--life03 .p-life__item-view {
    background: url(../images/index/life03_bg_sp.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.is-shown .p-life__item-view {
    opacity: 1;
  }
  */

  .p-life .p-life__item.--life01 .p-life__item-view {
    background: url(../images/index/life01_bg_sp.jpg) no-repeat center/cover;
    transform: translateY(0);
  }

  .p-life .p-life__item.--life02 .p-life__item-view {
    background: url(../images/index/life02_bg_sp.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.--life03 .p-life__item-view {
    background: url(../images/index/life03_bg_sp.jpg) no-repeat center/cover;
  }

  .p-life .p-life__item.is-shown .p-life__item-view {
    transform: translateY(0);
  }

  .p-life .p-life__item-box {
    padding-block: 7.246vw 7.662vw;
    width: min(87%, 86.9565217391vw);
    margin-inline: auto;
    background: #f7f6f0;
    text-align: center;
  }

  .p-life .p-life__item-box .num {
    font-size: 3.865vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 4vw;
  }

  .p-life .p-life__item-box .en {
    font-size: 2.415vw;
    font-weight: 400;
    letter-spacing: 0.062em;
    line-height: 1;
    margin-bottom: 5.797vw;
  }

  .p-life .p-life__item-box h3 {
    font-size: 4.831vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1;
    margin-bottom: 4.831vw;
  }

  .p-life .p-life__item-box .img {
    margin-bottom: 3.797vw;
    width: min(95%, 64.2512077295vw);
    margin-inline: auto;
  }

  .p-life .p-life__item-box .txt {
    font-size: 2.899vw;
    font-weight: 400;
    letter-spacing: 0.125em;
    line-height: 1.8333333333;
  }

  .p-life .c-btn {
    display: flex;
    justify-content: flex-end;
    margin-inline: auto;
    margin-top: 4.831vw;
    width: min(95%, 86.9vw);
    color: #ffffff;
  }

  .p-life .c-btn span {
    color: #ffffff;
  }

  .p-life .c-btn span img {
    width: 18.357vw;
    height: auto;
  }

  /* works
-------------------------------------*/
  .p-works {
    margin-bottom: 13.043vw;
  }

  .p-works .l-inner.l-works {
    display: grid;
    margin-inline: auto;
    width: min(95%, 86.9vw);
  }

  .p-works .p-works__top {
    display: contents;
  }

  .p-works .c-sec__en {
    font-size: 4.831vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 6.797vw;
    order: 1;
    text-align: center;
  }

  .p-works .c-btn {
    justify-content: center;
    order: 3;
  }

  .p-works .system-list {
    display: grid;
    gap: 5.797vw 7.488vw;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 13.043vw;
    order: 2;
  }

  .p-works .system-pic img {
    height: 51.208vw;
    width: 100%;
  }

  .p-works .system-ttl {
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.3846153846;
    margin-bottom: 2vw;
  }

  .p-works .system-area {
    color: #787777;
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.0769230769;
  }

  /* link
-------------------------------------*/
  .p-link {
    margin-bottom: 10.628vw;
  }

  .p-link .l-inner.l-link {
    background: url(../images/index/link_bg.jpg) repeat top center/cover;
    margin-inline: auto;
    padding-block: 18.841vw 24.841vw;
    width: min(95%, 91.7vw);
  }

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

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

  .p-link .p-link__item a {
    color: #fff;
  }

  .p-link .p-link__item a .num {
    align-items: center;
    display: flex;
    gap: 0 4.348vw;
    margin-bottom: 7.971vw;
  }

  .p-link .p-link__item a .num span {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
  }

  .p-link .p-link__item a h2 {
    font-size: 5.314vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.2727272727;
    margin-bottom: 5vw;
  }

  .p-link .p-link__item a .txt {
    font-size: 3.382vw;
    font-weight: 300;
    letter-spacing: 0em;
    line-height: 2;
    margin-bottom: 5.797vw;
  }

  .p-link .p-link__item a .arrow {
    background: #52524d;
    border-radius: 5.538vw;
    color: #cbcbcb;
    padding-block: 0.483vw;
    width: 14.976vw;
  }

  .p-link .p-link__item a .arrow span {
    display: block;
    font-size: 5.797vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1;
    text-align: center;
  }

  /* owner
-------------------------------------*/
  .p-owner {
    margin-bottom: 19.807vw;
  }

  .p-owner .l-inner.l-owner {
    margin-inline: auto;
    width: min(95%, 86.9vw);
  }

  .p-owner .p-owner__con {
    display: grid;
    gap: 0.382vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .p-owner .p-owner__con-left {
    display: contents;
  }

  .p-owner .c-sec__en {
    font-size: 2.899vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 1.932vw;
    order: 1;
    text-align: center;
  }

  .p-owner .c-sec__ttl {
    font-size: 5.797vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.25;
    margin-bottom: 3.382vw;
    order: 2;
    text-align: center;
  }

  .p-owner .c-btn {
    justify-content: flex-end;
    order: 4;
  }

  .p-owner .p-owner__con-right {
    margin-bottom: 4.831vw;
    order: 3;
  }

  .p-owner .p-owner__con-right img {
    height: auto;
    width: 100%;
  }

  .p-owner .slick-track {
    display: flex;
  }

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

  .p-owner .prev-arrow {
    bottom: -9.662vw;
    position: absolute;
    right: calc(50% + 0px);
    z-index: 11;
  }

  .p-owner .next-arrow {
    bottom: -9.662vw;
    left: calc(50% + 0px);
    position: absolute;
    z-index: 11;
  }

  /* link02
-------------------------------------*/
  .p-link02 {
    margin-bottom: 26.812vw;
  }

  .p-link02 .l-inner.l-link02 {
    margin-inline: auto;
    width: min(95%, 86.9vw);
  }

  .p-link02 .p-link02__con {
    display: grid;
    gap: 7.729vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .p-link02 .p-link02__con-left img {
    height: auto;
    width: 100%;
  }

  .p-link02 .p-link02__con-right .link-list {
    display: grid;
    gap: 5.797vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 8.628vw;
  }

  .p-link02 .p-link02__con-right .link-list li a {
    align-items: center;
    border-bottom: 1px solid #d9d9d9;
    display: flex;
    justify-content: space-between;
    padding-block: 0 5.797vw;
    padding-inline: 6.522vw 9.522vw;
  }

  .p-link02 .p-link02__con-right .link-list li a p {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.9285714286;
  }

  .p-link02 .p-link02__con-right .link-list li a span {
    color: #595757;
    font-size: 5.763vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1;
  }

  .p-link02 .p-link02__con-right .sns {
    display: flex;
    justify-content: center;
    gap: 0 0vw;
  }

  .p-link02 .p-link02__con-right .sns li a {
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    padding-inline: 0 11.14vw;
    position: relative;
    color: #403f3f;
  }

  .p-link02 .p-link02__con-right .sns li a::after {
    content: "→";
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    position: absolute;
    right: 5.86vw;
    top: 50%;
    transform: translateY(-50%) rotate(-40.954deg);
    color: #403f3f;
  }

  /* column
-------------------------------------*/
  .p-column {
    margin-bottom: 32.048vw;
  }

  .p-column .l-inner.l-column {
    width: 100%;
  }

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

  .p-column .c-sec__en {
    font-size: 2.899vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 1;
    margin-bottom: 1.932vw;
    text-align: center;
  }

  .p-column .c-sec__ttl {
    font-size: 5.797vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.25;
    margin-bottom: 5.797vw;
    text-align: center;
  }

  .p-column .system-list {
    display: block;
  }

  .p-column .system-list li {
    margin-inline: 1.932vw;
  }

  .p-column .system-list li a {
    display: block;
  }

  .p-column .system-pic {
    margin-bottom: 6vw;
  }

  .p-column .system-pic img {
    height: 43.478vw;
    width: 100%;
  }

  .p-column .system-category-set {
    color: #787777;
    display: flex;
    flex-wrap: wrap;
    font-size: 3.14vw;
    font-weight: 400;
    gap: 0 1.932vw;
    letter-spacing: 0em;
    line-height: 1.6846153846;
    margin-bottom: 1.691vw;
  }

  .p-column .system-date {
    color: #787777;
    font-size: 3.14vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.6846153846;
    margin-bottom: 1.208vw;
  }

  .p-column .system-ttl {
    color: #403f3f;
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.5642857143;
    margin-bottom: 0;
  }

  .p-column .prev-arrow {
    position: absolute;
    right: calc(50% + 7vw);
    bottom: -13vw;
    z-index: 11;
  }

  .p-column .next-arrow {
    position: absolute;
    left: calc(50% + 7vw);
    bottom: -13vw;
    z-index: 11;
  }
}

/* ========================================
@media screen and (min-width:620px) and ( max-width:767px) {
======================================== */
@media screen and (min-width:620px) and ( max-width:767px) {
    .p-life .p-life__box-inner {
        padding-block: 6.493vw 26.14vw;       
    }
}

/* ========================================
@media screen and (min-width:320px) and ( max-width:413px) {
======================================== */
@media screen and (min-width:320px) and ( max-width:413px) {
    .p-life .p-life__box-inner {
        padding-block: 8.493vw 35.14vw;
    }
}