﻿@charset "UTF-8";
/**
 * apexcommunity css 1.1.1
 * Released on: 11,2025
 */
@import url('https://fonts.googleapis.com/css2?family=Ramabhadra&display=swap');

@keyframes linebuttonArrowAnim {
    0% {
        transform: translate(.6rem)
    }
    75% {
        transform: translate(0)
    }
    to {
        transform: translate(0)
    }
}
@keyframes linebuttonBackArrowAnim {
    0% {
        transform: translate(-.6rem)
    }
    75% {
        transform: translate(0)
    }
    to {
        transform: translate(0)
    }
}
@keyframes linebuttonDownArrowAnim {
    0% {
        transform: translateY(.6rem)
    }
    75% {
        transform: translate(0)
    }
    to {
        transform: translate(0)
    }
}
@keyframes linebuttonUpArrowAnim {
    0% {
        transform: translateY(-.6rem)
    }
    75% {
        transform: translate(0)
    }
    to {
        transform: translate(0)
    }
}

.red_txt{
    color: #B81649;    
}

/*--------------------------------
flex
---------------------------------*/
.flex{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
	flex-wrap: wrap; /* 折返し指定 */
}
.flex_list{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
	flex-wrap: wrap; /* 折返し指定 */
}

/*! destyle.css v2.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
*, :after, :before {
    border-style: solid;
    border-width: 0;
    box-sizing: border-box
}
body, html {
  height: 100%;
  margin: 0;
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif; /* Noto指定 */
}
main {
    display: block;
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif; /* Noto指定 */
}
.main {
    background-color: #e3dcd3;
    padding-bottom: 10rem;
    position: relative;
    z-index: 1;
    padding-top: 10rem;
}
.index_news_none{
    display: none;    
}
/*--------------------------------
header
---------------------------------*/
/* ヘッダー文字色を白に統一 */
.header,
.header * {
  color: #FFF;
}

/* リンクの通常色 */
.header__nav__list__item__link,
.header__nav__nested__list__item__link{
  color: #FFF;
  text-decoration: none; /* 必要に応じて */
  transition: color 0.3s ease; /* ホバー時の色変化をスムーズに */
    font-weight: 600;

}

/* リンクホバー時に黄色にする */
.header__nav__list__item__link:hover .hoverRoll__text span,
.header__nav__nested__list__item__link:hover .hoverRoll__text span {
  color: #FFF000;
}

/* モバイルハンバーガーやCloseボタンも白に */
.header__toggle span,
.header__toggle:before,
.header__toggle:after{
  background-color: #FFF;
  color: #FFF;
}
.header__nav__close {
  color: #FFF;
}
.hoverRoll__text span+span {
    left: 0;
    position: absolute;
    top: calc(100% + 2px)
}
.hoverRoll.hover .hoverRoll__text span {
    animation: textRollOver .75s cubic-bezier(.19, 1, .22, 1) 0s 1 normal none
}

@keyframes textRollOver {
    0% {
        transform: translateY(0)
    }
    to {
        transform: translateY(calc(-100% - 2px))
    }
}
/*--------------------------------
slide_bx
---------------------------------*/
.slide_bx {
    width: auto;
    height: calc(100svh + 23rem);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    position: relative;
    min-height: 350px; /* 最小高さ */
    background-color: #e3dcd3;
}

.index__hero {
    color: #fff;
    height: calc(100svh + 23rem);
    position: relative;
    width: 100%;
}

.index__hero__visual {
    position: relative;   /* 全画像を重ねる基準 */
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.index__hero__visual__image {
    position: absolute; /* 全てのスライドを重ねる */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;         /* 初期は非表示 */
    transition: opacity 1s ease-in-out, transform 6s cubic-bezier(.19,1,.22,1);
}

.index__hero__visual__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.1);
}

/* 現在表示中のスライドだけ表示 */
.index__hero__visual[data-position="1"] .index__hero__visual__image:nth-child(1),
.index__hero__visual[data-position="2"] .index__hero__visual__image:nth-child(2),
.index__hero__visual[data-position="3"] .index__hero__visual__image:nth-child(3),
.index__hero__visual[data-position="4"] .index__hero__visual__image:nth-child(4) {
    opacity: 1;
    transform: scale(1);
}

/* ヒーロータイトル */
.index__hero__title {
    bottom: 35rem;
    left: 8rem;
    position: absolute;
    z-index: 1;
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif;
}

.index__hero__title__en {
    font-size: max(8.8rem, 10px);
    letter-spacing: 0;
    line-height: 1.0416666667em;
    font-weight: 600;
}

.index__hero__title__logo {
    width: 30rem;
    height: 3.5rem;
    margin-top: 1.2rem;
    position: relative;
}
.index__hero__title__logo img {
    width: 100%;
    height: 100%;
    display: block;
}

/* ページャー */
.index__hero__pager {
    bottom: 20rem;
    height: 8.8rem;
    position: absolute;
    right: 8rem;
    width: 11.6rem;
    z-index: 1;
}

.index__hero__pager__bar {
    background-color: hsla(0,0%,100%,.5);
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: .1rem;
}

.index__hero__pager__bar__progress {
    background-color: #fff;
    height: 100%;
    left: 50%;
    position: absolute;
    top: 0;
    transform: translate(-50%) scaleY(0);
    transform-origin: center top;
    width: .3rem;
}

.index__hero__pager.rollback .index__hero__pager__bar__progress {
    transform: translate(-50%) scaleY(0);
    transform-origin: center bottom;
    transition: transform 1s cubic-bezier(.19, 1, .22, 1);
}

.index__hero__pager.playing .index__hero__pager__bar__progress {
    transform: translate(-50%) scaleY(1);
    transform-origin: center top;
    transition: transform 7s linear;
}

.index__hero__pager__num {
    display: block;
    font-family: 'Ramabhadra', sans-serif;
    font-size: max(1.6rem, 10px);
    height: 2rem;
    letter-spacing: 0;
    line-height: 1.25em;
    position: absolute;
    right: 0;
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    width: 10rem;
}

.index__hero__pager__num__current {
    display: inline-block;
    font-size: 0;
    height: 2rem;
    overflow: hidden;
    vertical-align: top;
}

.index__hero__pager__num__current span {
    display: block;
    font-size: max(1.6rem, 10px);
    line-height: 1.25em;
    text-align: center;
    width: 100%;
}

.index__hero__pager.rollback .index__hero__pager__num__current span {
    animation: pagenumRoll 1s cubic-bezier(.19,1,.22,1) 0s 1 normal both;
}

@keyframes pagenumRoll {
    0% { transform: translateY(0); }
    100% { transform: translateY(-100%); }
}

.index__hero__pager__num__max {
    vertical-align: top;
}

/*--------------------------------
index__works
---------------------------------*/

.index__works {
  height: auto;
  margin-top: -22.7rem;
  position: relative;
  width: 100%;
  z-index: 5;
}

.index__works__title {
  color: #fff;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  width: calc(100% - 16rem)
}

.index__works__carousel {
  margin-top: 3rem;
  position: relative;
  width: 100%
}

.index__works__carousel__viewport {
  height: auto;
  overflow: hidden;
  padding: 0 8rem;
  position: relative;
  width: 100%
}

.index__works__carousel__container {
  align-content: stretch;
  display: flex;
  flex-flow: row nowrap;
  height: auto;
  justify-content: flex-start;
  position: relative;
  width: 410rem
}

.index__works__carousel__container .worksitem {
  flex: 0 0 39rem;
  width: 39rem
}

.index__works__carousel__container .worksitem+.worksitem {
  margin-left: 2rem
}

.index__works__carousel__container .dummyAfter,
.index__works__carousel__container .dummyBefore {
  align-content: stretch;
  display: flex;
  flex-flow: row nowrap;
  height: 100%;
  justify-content: flex-start;
  position: absolute;
  top: 0;
  width: 100%
}

.index__works__carousel__container .dummyBefore {
  left: 0;
  transform: translateX(-100%)
}

.index__works__carousel__container .dummyAfter {
  right: 0;
  transform: translateX(100%)
}

.widegallery {
  height: auto;
  margin: 20rem auto;
  position: relative;
  width: 128rem
}

.widegallery__viewport {
  aspect-ratio: 3/1;
  display: flex;
  flex-flow: row nowrap;
  height: auto;
  overflow: hidden;
  position: relative;
  width: 100%
}

.widegallery__image {
  flex: 0 0 64rem;
  height: 100%;
  left: 0;
  position: relative;
  top: 0;
  width: 64rem
}

.widegallery__image img {
  display: block;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%
}

.widegallery__container {
  animation: indexWorksCarouselScroll 60s linear 0s infinite normal both;
  display: flex;
  flex-flow: row nowrap;
  height: 100%;
  position: relative;
  width: 100%
}

.widegallery__container .dummyAfter {
  display: flex;
  flex-flow: row nowrap;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  transform: translateX(100%);
  width: 100%
}

@keyframes indexWorksCarouselScroll {
  0% {
    transform: translateX(0)
  }

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

.widegallery.size-2 .widegallery__container {
  animation-duration: 20s;
  width: 128rem
}

.widegallery.size-3 .widegallery__container {
  animation-duration: 30s;
  width: 192rem
}

.widegallery.size-4 .widegallery__container {
  animation-duration: 40s;
  width: 256rem
}

.widegallery.size-5 .widegallery__container {
  animation-duration: 50s;
  width: 320rem
}

.widegallery.size-6 .widegallery__container {
  animation-duration: 60s;
  width: 384rem
}

.widegallery.size-7 .widegallery__container {
  animation-duration: 70s;
  width: 448rem
}

.widegallery.size-8 .widegallery__container {
  animation-duration: 80s;
  width: 512rem
}

.widegallery__bar {
  background-color: hsla(0, 0%, 100%, .5);
  bottom: 4rem;
  display: block;
  height: .1rem;
  left: calc(50% - 16rem);
  position: absolute;
  width: 32rem;
  z-index: 10
}

.widegallery__bar__progress {
  animation: progresBarAnimationDefault 60s linear 0s infinite normal both;
  background-color: #fff;
  display: block;
  height: .3rem;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) scaleX(0);
  transform-origin: left center;
  width: 100%
}

@keyframes progresBarAnimationDefault {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  98.33333333% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  98.33333334% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

.widegallery.size-2 .widegallery__bar__progress {
  animation: progresBarAnimationsize-2 20s linear 0s infinite normal both
}

@keyframes progresBarAnimationsize-2 {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  95% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  95.0001% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

.widegallery.size-3 .widegallery__bar__progress {
  animation: progresBarAnimationsize-3 30s linear 0s infinite normal both
}

@keyframes progresBarAnimationsize-3 {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  96.6667% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  96.6668% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

.widegallery.size-4 .widegallery__bar__progress {
  animation: progresBarAnimationsize-4 40s linear 0s infinite normal both
}

@keyframes progresBarAnimationsize-4 {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  97.5% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  97.5001% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

.widegallery.size-5 .widegallery__bar__progress {
  animation: progresBarAnimationsize-5 50s linear 0s infinite normal both
}

@keyframes progresBarAnimationsize-5 {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  98% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  98.0001% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

.widegallery.size-6 .widegallery__bar__progress {
  animation: progresBarAnimationsize-6 60s linear 0s infinite normal both
}

@keyframes progresBarAnimationsize-6 {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  98.3333% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  98.3334% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

.widegallery.size-7 .widegallery__bar__progress {
  animation: progresBarAnimationsize-7 70s linear 0s infinite normal both
}

@keyframes progresBarAnimationsize-7 {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  98.5714% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  98.5715% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

.widegallery.size-8 .widegallery__bar__progress {
  animation: progresBarAnimationsize-8 80s linear 0s infinite normal both
}

@keyframes progresBarAnimationsize-8 {
  0% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center
  }

  98.75% {
    animation-timing-function: linear;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left center
  }

  98.7501% {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(1);
    transform-origin: right center
  }

  to {
    animation-timing-function: cubic-bezier(.19, 1, .22, 1);
    transform: translateY(-50%) scaleX(0);
    transform-origin: right center
  }
}

@media (max-width:820px) {
  .widegallery {
    margin: 10rem auto;
    width: 100%
  }

  .widegallery__viewport {
    aspect-ratio: 375/210;
    padding: 0 3rem
  }

  .widegallery__image {
    flex: 0 0 31.5rem;
    width: 31.5rem
  }

  .widegallery.size-2 .widegallery__container {
    width: 63rem
  }

  .widegallery.size-3 .widegallery__container {
    width: 94.5rem
  }

  .widegallery.size-4 .widegallery__container {
    width: 126rem
  }

  .widegallery.size-5 .widegallery__container {
    width: 157.5rem
  }

  .widegallery.size-6 .widegallery__container {
    width: 189rem
  }

  .widegallery.size-7 .widegallery__container {
    width: 220.5rem
  }

  .widegallery.size-8 .widegallery__container {
    width: 252rem
  }

  .widegallery__bar {
    bottom: 2rem;
    height: .1rem;
    left: calc(50% - 9.8rem);
    width: 19.6rem
  }
}

.worksitem {
  display: block;
  width: 39rem
}

.worksitem,
.worksitem__thumb {
  height: auto;
  position: relative
}

.worksitem__thumb {
  aspect-ratio: 3/2;
  width: 100%
}

.worksitem__thumb img {
  display: block;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%
}

.worksitem__title {
  font-size: max(1.6rem, 10px);
  letter-spacing: 0;
  line-height: 1.625em;
  margin-top: 1.5rem
}

.worksitem__terms {
  color: rgba(26, 26, 26, .5);
  font-size: max(1.2rem, 10px);
  letter-spacing: 0;
  line-height: 2em;
  margin-top: .4rem
}

.worksitem__terms__term {
  display: inline-block;
  vertical-align: top
}

.worksitem__link {
    margin-top: 1.7rem;
}
.index__works__carousel__container a{
    text-decoration: none!important;
    color: #696969;
    font-weight: 600;
}
.index__works__carousel__container a:hover{
    color: #00B090;
}



/*--------------------------------
news
---------------------------------*/


.index__news {
    align-items: flex-start;
    background-color: #e3dcd3;
    display: flex;
    flex-flow: row nowrap;
    height: auto;
    justify-content: flex-start;
    position: relative;
    width: 100%;
    max-width: 1480px;
    margin-left: auto;
    margin-right: auto;
    padding: 20rem auto;
    margin-top: 20rem;
}

.index__news a:link{
    text-decoration: none;
}
.index__news__title {
    flex: 0 0 15%;
    height: auto;
    width: 15%
}
.index__news__thumb__image {
    flex: 0 0 85%;
    height: auto;
    width: 85%
}
.index__news__thumb__image img {
    display: block;
    -o-object-fit: cover;
    object-fit: cover;
    opacity: .001;
    transform: scale(1.05);
    width: 100%;
}
.index__news__thumb[data-position="0"]
.index__news__thumb__image:first-child img,
.index__news__thumb[data-position="1"]
.index__news__thumb__image:nth-child(2) img,
.index__news__thumb[data-position="2"]
.index__news__thumb__image:nth-child(3) img,
.index__news__thumb[data-position="3"]
.index__news__thumb__image:nth-child(4) img {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0s linear, transform 6s cubic-bezier(.19, 1, .22, 1)
}
.index__news__list {
    flex: 0 0 60%;
    height: auto;
    margin: 0 0 0 auto;
    width: 60%;
}
.index__news__list__link {
    display: block;
    height: auto;
    padding: 4.5rem 3rem 1.5rem 0;
    position: relative;
    width: 100%
}
.index__news__list__link:before {
    background-color: #1a1a1a;
    bottom: 0;
    content: "";
    display: block;
    height: .1rem;
    left: 0;
    position: absolute;
    width: 100%
}
.index__news__list__link:first-child {
    padding-top: 2rem
}
.index__news__list__link:first-child .index__news__list__link__date {
    top: 0
}
.index__news__list__link:first-child .index__news__list__link__tags {
    top: 2.5rem
}
.index__news__list__link.current .index__news__list__link__title:before {
    background-color: #1a1a1a;
    border-radius: 50%;
    content: "";
    display: block;
    height: .8rem;
    left: -2rem;
    pointer-events: none;
    position: absolute;
    top: .8rem;
    width: .8rem
}
body:not(.touch) .index__news__list__link:hover:after {
    animation: linebuttonArrowAnim 1s cubic-bezier(.19, 1, .22, 1) 0s infinite
}
.index__news__list__link.hover-active .index__news__list__link__title:before {
  background-color: #1a1a1a;
  border-radius: 50%;
  content: "";
  display: block;
  height: .8rem;
  left: -2rem;
  pointer-events: none;
  position: absolute;
  top: .8rem;
  width: .8rem;
  opacity: 1;
  transform: scale(1);
  transition: all 0.3s cubic-bezier(.19,1,.22,1);
}

.index__news__list__link__date {
    color: rgba(26, 26, 26, .5);
    font-size: max(1.1rem, 12px);
    left: 0;
    letter-spacing: 0;
    line-height: 1.1666666667em;
    position: absolute;
    top: 2.5rem
}
.index__news__list__link__title {
    color: #1a1a1a;
    font-size: max(1.2rem, 10px);
    letter-spacing: 0;
    line-height: 1.7142857143em;
    position: relative;
    width: calc(100% - 13rem)
}
.index__news__list__link__tags {
    color: rgba(26, 26, 26, .5);
    display: flex;
    flex-flow: row wrap;
    font-size: max(1rem, 12px);
    letter-spacing: 0;
    line-height: 1.1666666667em;
    position: absolute;
    right: 1rem;
    top: 5rem;
}
.index__news__list__link__tags__tag {
    display: inline-block
}
/* ==============================
   index__works 重なり調整（レスポンシブ対応 完全版）
   既存コードを残しつつ上書き
   ============================== */

/* ---------- PC・大きめ画面（1680px以上） ---------- */
@media (max-width:1480px) {
.index__news{
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    }
.index__hero__title__en {
    font-size:800%;
}
}
/* ---------- PC・大きめ画面（1680px以上） ---------- */
@media (min-width:1081px) {
  .index__works {
    margin-top: -22.7rem; /* 既存PCの重なり量 */
    position: relative;
    z-index: 5;
  }
   
}
/* ---------- タブレット〜PC（1080px以下） ---------- */
@media (max-width:1080px) {
  .index__works {
    margin-top: -10rem; /* ヒーローに重なる量 */
    position: relative;
    z-index: 5;
  }
}

/* ---------- タブレット（880px以下） ---------- */
@media (max-width:880px) {
 .slide_bx {
    width: auto;
    height: 100svh;
    min-height: 350px; /* 最小高さ */
}
    .index__hero {
    position: relative;
    height: 100svh;     /* ヒーロー全体を画面いっぱいに */
    min-height: 350px;
    overflow: hidden;
  }

  .index__works {
    position: relative;
    margin-top: -22.7rem;  /* 既存のPC用重なり量 */
    z-index: 5;
  }
    .index__hero__pager{
    display: none;
    }
    .index__hero__title__en {
    font-size:600%;
}
    .index__hero__title {
    bottom: 25rem;
    left: 4rem;
}
    .index__hero__title__logo {
    width: 20rem;
    height: 3.5rem;
    margin-top: 1.2rem;
    position: relative;
}
  .index__works__title {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ---------- スマホ（820px以下） ---------- */
@media (max-width:820px) {
  .index__works {
    margin-top: -12rem; /* ヒーロー重なり量調整 */
    position: relative;
    z-index: 5;
    width: 100%;
  }

  .index__works__carousel__viewport {
    padding: 0 1.5rem;
  }

    .index__hero__title {
    bottom: 15rem;
    left: 3rem;
}
}

/* ---------- 小型スマホ（680px以下） ---------- */
@media (max-width:680px) {
  .index__works {
    margin-top: -10rem; /* ヒーロー重なり量調整 */
  }
    .index__hero__title__en {
    font-size:450%;
}
    .index__hero__title {
    left: 3rem;
}
  .index__works__carousel {
    margin-top: 2rem;
    position: relative;
    width: 100%
  }

  .index__works__carousel__viewport {
    padding: 0 3rem
  }

  .index__works__carousel__container {
    width: 210rem
  }

  .index__works__carousel__container .worksitem {
    flex: 0 0 19.5rem;
    width: 19.5rem
  }

  .index__works__carousel__container .worksitem+.worksitem {
    margin-left: 1.5rem
  }
}

/* ---------- 小型スマホ（580px以下） ---------- */
@media (max-width:580px) {
  .index__works {
    margin-top: -8rem; /* ヒーロー重なり量調整 */
  }
    .index__hero__title__en {
    font-size:350%;
}
    .index__hero__title {
    left: 1rem;
    bottom: 10rem;
}
  .index__works__title {
    width: 95%;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ---------- 超小型スマホ（380px以下） ---------- */
@media (max-width:380px) {
  .index__works {
    margin-top: -6rem; /* ヒーロー重なり量調整 */
  }
}

/* ---------- 追加の安全上書き（常にヒーローより前面表示） ---------- */
.index__works {
  z-index: 5 !important;
  position: relative !important;
}

/* ---------- worksitem のサイズ調整（スマホ対応） ---------- */
@media (max-width:820px) {
  .worksitem {
    width: 19.5rem !important;
    display: block;
    height: auto;
    position: relative;
  }

  .worksitem__title {
    font-size: max(1.4rem, 10px);
    height: 24px;
    overflow: hidden;
    position: relative;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.7142857143em;
    margin-top: 1.5rem;
    width: 100%;
  }

  .worksitem__terms {
    color: rgba(26, 26, 26, 0.5);
    font-size: max(1rem, 10px);
    line-height: 1.6em;
    margin-top: 0;
  }

  .worksitem__link {
    margin-top: 0.4rem;
  }
/* ---------- widegallery スマホ対応 ---------- */
  .widegallery {
    margin: 10rem auto;
    width: 100%;
  }

  .widegallery__viewport {
    aspect-ratio: 375/210;
    padding: 0 3rem;
  }

  .widegallery__image {
    flex: 0 0 31.5rem;
    width: 31.5rem;
  }

  .widegallery.size-2 .widegallery__container { width: 63rem; }
  .widegallery.size-3 .widegallery__container { width: 94.5rem; }
  .widegallery.size-4 .widegallery__container { width: 126rem; }
  .widegallery.size-5 .widegallery__container { width: 157.5rem; }
  .widegallery.size-6 .widegallery__container { width: 189rem; }
  .widegallery.size-7 .widegallery__container { width: 220.5rem; }
  .widegallery.size-8 .widegallery__container { width: 252rem; }

  .widegallery__bar {
    bottom: 2rem;
    height: 0.1rem;
    left: calc(50% - 9.8rem);
    width: 19.6rem;
  }

.index__news {
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif;
    display: flex;
    padding: 0rem 3rem;
    flex-wrap: wrap; /* ← wrapが重要！（折り返し許可） */
}

  /* 上段：2カラム */
  .index__news__title {
    flex: 0 0 50%;
    width: 50%;
    height: auto;
  }

  .index__news__thumb__image {
    flex: 0 0 50%;
    width: 50%;
    height: auto;
  }

  /* 下段：1カラム */
  .index__news__list {
    flex: 0 0 100%;
    width: 100%;
    height: auto;
    margin: 0; /* auto削除：中央寄せ不要 */
  }

.index__news__thumb {
    position: relative;
    height: 200px; /* 適宜調整 */
}

.index__news__thumb__image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    display: none;       /* 初期非表示 */
    opacity: 0;
    transition: opacity 0.5s ease; /* フェードアニメーション */
    z-index: 0;
}

/* showクラスが付いた画像だけ表示 */
.index__news__thumb__image img.show {
    display: block;
    opacity: 1;
    z-index: 1;
}

/* 黒丸 */
.index__news__list__link.current .index__news__list__link__title::before {
    content: "";
    display: block;
    width: 0.8rem;
    height: 0.8rem;
    background-color: #1a1a1a;
    border-radius: 50%;
    position: absolute;
    left: -2rem;
    top: 0.8rem;
}
    
    .index__news__list__link {
    padding: 3.8rem 2rem 1.3rem 10px
    }
    .index__news__list__link:after {
        bottom: 1.7rem;
        right: 1rem
    }
    .index__news__list__link:first-child {
        padding-top: 3.8rem
    }
    .index__news__list__link:first-child .index__news__list__link__date {
        top: 2rem
    }
    .index__news__list__link:first-child .index__news__list__link__tags {
        bottom: 1.5rem;
        top: auto
    }
    .index__news__list__link.current .index__news__list__link__title:before {
        height: .6rem;
        left: -1.2rem;
        top: .5rem;
        width: .6rem
    }
    .index__news__list__link__date {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1.2em;
        top: 2rem
    }
    .index__news__list__link__title {
        font-size: max(1.2rem, 12px);
        letter-spacing: 0;
        line-height: 1.3333333333em;
        width: auto
    }
    .index__news__list__link__tags {
        bottom: 1.5rem;
        display: flex;
        flex-flow: row wrap;
        font-size: max(1rem, 10px);
        justify-content: flex-end;
        letter-spacing: 0;
        line-height: 1.2em;
        position: absolute;
        right: 3rem;
        text-align: right;
        top: auto;
        width: 9rem
    }
.index__news__list__link__tags__tag {
    display: none;
}
    .headinggroup__title{
        font-size: 26px;
    }
}
/* ==================================================
   SERVICE（事業サービス）：完全レスポンシブ版
   680px以下でも横並び維持、同比率で縮小
================================================== */

#service {
    width: 100%;
    background-color: #fff;
    margin-left: auto;
    margin-right: auto;
    padding-top: 85px;
    padding-bottom: 85px;
    transition: all 0.3s ease;
}

.service_bx {
    width: 100%;
    background-color: #fff;
    margin-left: auto;
    margin-right: auto;
    max-width: 1480px;
    transition: all 0.3s ease;
}

.service__label {
    font-size: max(1.2rem, 10px);
    letter-spacing: 0;
    line-height: 1.1666666667em;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

.service__title {
    font-size: max(2.6rem, 14px);
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.0833333333em;
    margin-top: 1rem;
    text-align: center;
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif;
}

.service__txt {
    font-size: max(1.6rem, 12px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.0833333333em;
    text-align: center;
    margin-top: 20px;
    margin-bottom: 40px;
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif;
}

.service_btn_bx {
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: nowrap; /* 横並び固定 */
    transition: all 0.3s ease;
}

.service_btn_bx li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    color: #1a1a1a;
    text-decoration: none;
    font-size: 1.4rem;
    font-weight: 600;
    transition: all 0.3s ease;
}

/* 個別色指定 */
.service_btn_a a { background-color: #FFDCD3; }
.service_btn_b a { background-color: #D3EEE7; }
.service_btn_c a { background-color: #FFEEBA; }

/* ホバー時の色と拡大 */
.service_btn_a a:hover { background-color: #FFB8A8; }
.service_btn_b a:hover { background-color: #A8DDD3; }
.service_btn_c a:hover { background-color: #FFE180; }
.service_btn_bx li a:hover { transform: scale(1.08); }

/* linebutton / boxbutton のレスポンシブ対応 */
.linebutton, .boxbutton {
    display: block;
    font-size: max(1.4rem, 12px);
    line-height: 1.8333333333em;
    padding: 0.6rem 3rem 1.6rem 0;
    position: relative;
    width: 100%;
    transition: all 0.3s ease;
}

/* ---------- 1080px以下 ---------- */
@media (max-width: 1080px) {
    #service { padding-top: 70px; padding-bottom: 70px; }
    .service_bx { width: 94%; }

    .service__label { font-size: max(1.2rem, 10px); }
    .service__title { font-size: max(2.4rem, 13px); margin-top: 0.8rem; }
    .service__txt { font-size: max(1.5rem, 11px); margin-top: 1.8rem; margin-bottom: 3rem; line-height: 1.7em; }

    .service_btn_bx li a { width: 200px; height: 200px; font-size: max(1.3rem, 10px); }
    .service_btn_bx { gap: 2rem; }
}

/* ---------- 820px以下 ---------- */
@media (max-width: 820px) {
    #service { padding-top: 60px; padding-bottom: 60px; }
    .service_bx { width: 94%; }

    .service__title { font-size: max(2.2rem, 12px); }
    .service__txt { font-size: max(1.4rem, 10px); line-height: 1.8em; margin-top: 1.5rem; margin-bottom: 3rem; }

    .service_btn_bx li a { width: 180px; height: 180px; font-size: max(1.2rem, 10px); }
    .service_btn_bx { gap: 1.8rem; flex-wrap: nowrap; justify-content: center; } /* 横並び維持 */
    
}

/* ---------- 680px以下 ---------- */
@media (max-width: 680px) {
      /* 上段：2カラム */
  .index__news__title {
    flex: 0 0 100%;
    width: 100%;
    height: auto;
    text-align: center;
    font-size: 24px;
  }

  .index__news__thumb__image {
    display: none;
  }
    #service { padding-top: 50px; padding-bottom: 50px; }
    .service_bx { width: 92%; }

    .service__label { font-size: 12px; }
    .service__title { font-size: 24px; margin-top: 0.6rem; }
    .service__txt { font-size: max(1.3rem, 10px); line-height: 1.7em; margin-top: 1.2rem; margin-bottom: 2rem; padding: 0 1rem; }
    .service_btn_bx{
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    }
    .service_btn_bx li a {
    width: 120px;
    height: 120px;
    font-size: max(1.1rem, 8px);
}
    .service_btn_bx { gap: 1.5rem; flex-wrap: nowrap; justify-content: center; } /* 縦積みせず横並び */
    .service_btn_bx li a:hover { transform: scale(1.05); }
.index__news {
    width: 100%;
    padding: 0rem auto;
    margin-top: 8rem;
}
    .headinggroup__title{
    font-size: 24px;
    text-align: center;
    }
}
@media (max-width: 420px) {
    .service__txt{
    font-size: 12px;
    text-align: justify;
    }
.service_btn_bx li a {
    width: 100px;
    height: 100px;
    font-size: 12px;
    margin-left: auto;
    margin-right: auto;
}
.index__news {
    padding: 0rem auto;
    margin-top: 10rem;
}
    .main {
    padding-bottom: 5rem;
}
}
@media (max-width: 370px) {
.service_btn_bx li a {
    width: 80px;
    height: 80px;
    font-size: 10px;
    margin-left: auto;
    margin-right: auto;
}

}
/*--------------------------------
management
---------------------------------*/
#management {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9比率 */
  overflow: hidden;
}

#management::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../images/top/management_bg.png');
    background-size: cover;
    background-position: center center;
    z-index: 0;
    margin: 0px;
}
#management::after {
 content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.4);
	background-image: radial-gradient(#111 30%, transparent 31%), radial-gradient(#111 30%, transparent 31%);
	background-size: 4px 4px;
	background-position: 0 0, 2px 2px;
  z-index: 1;
}
.management_bx {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  position: absolute;
  top: 50.25%; 
  left: 50%;
  transform: translate(-50%, -50%); /* 真ん中配置 */
  text-align: center;
  z-index: 2; /* オーバーレイより上 */
}
.management_bx a{
    color: #fff!important;
    text-decoration: none;
}
.management__label {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}

.management__title {
  font-size: max(2.6rem, 14px);
  font-weight: 600;
  letter-spacing: 0;
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif; /* Noto指定 */
  line-height: 1.0833333333em;
  margin-top: 1rem;
    text-align: center;
    margin-bottom: 60px;
}
.management__subtitle {
    font-size: max(3rem, 18px);
    font-weight: 600;
    letter-spacing: 0;
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif; /* Noto指定 */
    line-height: 1.0833333333em;
    margin-top: 2rem;
    text-align: center;
    width: 100%;

}
.management__txt{
    font-size: max(1.6rem, 12px);
    font-weight: 400;
    letter-spacing: 0;
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif; /* Noto指定 */
    line-height: 2em;
    text-align: center;
    margin-top: 20px;
    margin-bottom: 0px;
    width: 100%;
}
.management__day{
    font-size: max(1.4rem, 11px);
    line-height: 2em;
    text-align: center;
    margin-top: 0px;
}
.management__area{
    font-size: max(5rem, 20px);
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif; /* Noto指定 */
    
}
.management__btn {
    margin: 40px auto 0px;
    color: #FFFFFF;
}
.management__btn a{
    color: #FFFFFF!important;
    text-decoration: none;
    font-size: 24px;
    text-align: left;
}
.management__btn .linebutton{
    color: #FFFFFF;
    width: 20em;
    margin-left: auto;
    margin-right: auto;
    border-bottom: 1px solid #fff;
    cursor: pointer
}

.management__btn .index__news__list__link {
    display: block;
    height: auto;
    padding: 0rem 3rem 1.5rem 0;
    position: relative;
    width: 15em;
}
.management__btn .index__news__list__link:before {
    background-color: #fff;
    bottom: 0;
    content: "";
    display: block;
    left: 0;
    position: absolute;
}
.management__btn .index__news__list__link:after {
    border-color: transparent transparent transparent #fff;
    border-style: solid;
}

/* ==================================================
   management：レスポンシブ対応拡張
================================================== */

/* ---------- 1080px以下 ---------- */
@media (max-width: 1080px) {
  .management_bx {
    width: 92%;
  }

  .management__title {
    font-size: max(2.2rem, 14px);
    margin-bottom: 4rem;
  }

  .management__subtitle {
    font-size: max(2.4rem, 16px);
  }

  .management__txt {
    font-size: max(1.4rem, 11px);
    line-height: 1.9em;
  }

  .management__area {
    font-size: max(4rem, 18px);
  }

  .management__btn .index__news__list__link {
    width: 13em;
    padding: 0 2rem 1rem 0;
  }

  .management__btn .linebutton {
    width: 18em;
  }
}

/* ---------- 820px以下（タブレット・小画面） ---------- */
@media (max-width: 820px) {
  #management {
    padding-top: 70%; /* 背景比率を少し縦長に */
  }

  .management_bx {
    width: 94%;
    top: 50%;
    transform: translate(-50%, -50%);
  }

  .management__label {
    font-size: max(1.4rem, 10px);
  }

  .management__title {
    font-size: max(2rem, 12px);
    margin-bottom: 3rem;
  }

  .management__subtitle {
    font-size: max(2rem, 12px);
    margin-top: 1.6rem;
  }

  .management__txt {
    font-size: max(1.3rem, 10px);
    line-height: 1.8em;
    margin-top: 1.2rem;
  }

  .management__area {
    font-size: max(3.2rem, 14px);
    margin-top: 1.5rem;
  }

  .management__btn {
    margin-top: 3rem;
  }

  .management__btn .index__news__list__link {
    width: 12em;
    padding: 0 1.6rem 1rem 0;
  }

  .management__btn .linebutton {
    font-size: max(1.2rem, 10px);
    width: 16em;
    padding: .8rem 2rem 1rem 0;
  }

  .management__btn .linebutton:after {
    right: 1rem;
  }
}

/* ---------- 680px以下（スマホ） ---------- */
@media (max-width: 680px) {
  #management {
    padding-top: 120%; /* 背景を縦に長くして読みやすく */
  }
#management::before {
    background-image: url('../images/top/management_bg.png');
    background-size: cover;
    background-position: right center;
}
  .management_bx {
    width: 92%;
    top: 48%;
    transform: translate(-50%, -48%);
  }

  .management__label {
    font-size: 12px;
    margin-bottom: 0.3rem;
  }

  .management__title {
    font-size: 24px;
    margin-bottom: 1.5rem;
  }

  .management__subtitle {
    font-size: 20px;
    line-height: 1.5em;
    margin-top: 1rem;
  }

  .management__txt {
    font-size: 12px;
    line-height: 1.7em;
    margin-top: 1rem;
    text-align: justify;
  }
    .management__day{
    font-size: 10px;
        
    }
  .management__area {
    font-size: max(2.8rem, 12px);
    margin-top: 1rem;
  }

  .management__btn {
    margin: 1rem auto 0;
  }

  .management__btn a {
    font-size: 14px;
  }

  .management__btn .linebutton {
    width: 100%;
    max-width: 200px;
    padding: .8rem 1.5rem 1rem 0;
  }

  .management__btn .index__news__list__link {
    width: 100%;
    padding: 0 1.2rem 1rem 0;
  }
}
    /*--------------------------------
index__about
---------------------------------*/
#about {
  width: 100%;
  background-color: #e3dcd3;
}

.about_bx {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  max-width: 1480px!important;
}

.index__about {
  align-content: flex-start;
  background-color: #e3dcd3;
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  padding: 20rem 0;
  position: relative;
  z-index: 1;
  transition: all 0.4s ease;
}

.index__about__images {
  flex: 0 0 calc(40% + 16rem);
  height: auto;
  overflow: hidden;
  position: relative;
  width: calc(40% + 16rem);
  transition: all 0.4s ease;

}

.index__about__images__image {
  height: 100%;
  position: absolute;
  width: 100%;
  z-index: 0;
}

.index__about__images__image img {
  display: block;
  height: 100%;
  object-fit: cover;
  opacity: 0.001;
  transform: scale(1.05);
  width: 100%;
}

.index__about__images[data-position="0"] .index__about__images__image:first-child img,
.index__about__images[data-position="1"] .index__about__images__image:nth-child(2) img,
.index__about__images[data-position="2"] .index__about__images__image:nth-child(3) img,
.index__about__images[data-position="3"] .index__about__images__image:nth-child(4) img,
.index__about__images[data-position="4"] .index__about__images__image:nth-child(5) img,
.index__about__images[data-position="5"] .index__about__images__image:nth-child(6) img {
  opacity: 1;
  transform: scale(1);
  transition: opacity 0s linear, transform 6s cubic-bezier(.19, 1, .22, 1);
}

.index__about__body {
  flex: 0 0 calc(60% - 7rem);
  padding: 0 1rem 0 6rem;
  width: calc(60% - 7rem);
  transition: all 0.4s ease;
}

  .index__about__body ul{
    padding: 0;
    margin: 0;
  }
.index__about__nav {
  margin-top: 4rem;
}

.index__about__nav__item {
  position: relative;
}

.index__about__nav__item.current:before {
  background-color: #1a1a1a;
  border-radius: 50%;
  content: "";
  display: block;
  height: 0.8rem;
  left: -2rem;
  position: absolute;
  top: 3.4rem;
  width: 0.8rem;
}

.index__about__nav__item__link {
  padding: 2.7rem 3rem 1.7rem 0;
}

.index__about__nav__item__link:after {
  top: calc(50% + 0.05rem);
}

.index__about__nav__item a {
  text-decoration: none !important;
  color: #696969;
  font-weight: 600;
}

.index__about__nav__item:hover,
.index__about__nav__item a:hover {
  color: #00b090;
}

/* ================================
   レスポンシブ調整
================================ */

/* 1480px以下：全体スケールをなめらかに縮小 */
@media screen and (max-width: 1680px) {
  .about_bx {
    width: 90%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  max-width: 1380px!important;
  }


  .index__about {
    padding: 8rem 0;
  }

  .index__about__body {
    padding: 0 2rem 0 4rem;
  }
}

/* 1080px以下：左右比率を縮小 */
@media screen and (max-width: 1080px) {
  .index__about__images {
    flex: 0 0 45%;
    width: 45%;
  }
  .index__about__body {
    flex: 0 0 55%;
    width: 55%;
    padding: 0 2rem;
  }
}

/* 820px以下：左右の余白縮小・フォント調整 */
@media screen and (max-width: 820px) {
.about_bx {
    width: 95%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .index__about {
    width: 100%;
    padding: 6rem 0;
    display: flex;
    flex-direction: column; /* 縦積み */
  }
 .index__about__images {
    display: none
  }
.index__about__body{
  flex: 0 0 100%;
  padding: 0rem;
  width: 100%;
  transition: all 0.4s ease;
}
  .index__about__nav__item__link {
    padding: 2rem 2rem 1rem 0;
  }
}

/* 680px以下：縦積みレイアウト */
@media screen and (max-width: 680px) {
  .index__about {
  }

  .index__about__images {
    display: none
  }

  .index__about__images__image {
    position: relative;
  }

  .index__about__images__image img {
    height: auto;
    width: 100%;
  }

  .index__about__body {
    width: 100%;
    flex: 0 0 auto;
    padding: 0 2rem;
  }

  .index__about__nav {
    margin-top: 3rem;
  }

  .index__about__nav__item__link {
    display: block;
    padding: 1.5rem 1rem;
    font-size: 1.6rem;
  }
}

/* 480px以下：モバイル最適化 */
@media screen and (max-width: 480px) {
  .index__about {
    padding: 4rem 0;
  }

  .index__about__body {
    padding: 0 1.5rem;
  }

  .index__about__nav__item__link {
    font-size: 1.4rem;
    padding: 1.2rem 0.5rem;
  }
}





/*--------------------------------
linebutton
---------------------------------*/
.linebutton {
  display: block;
  position: relative;
  width: 100%
}

.linebutton:before {
  background-color: #1a1a1a;
  bottom: 0;
  height: 1px;
  left: 0;
  width: 100%;
  font-size: max(1.4rem, 12px);
  letter-spacing: 0;
  line-height: 1.8333333333em;
}

.linebutton:after,
.linebutton:before {
  content: "";
  display: block;
  position: absolute
}

.linebutton:after {
  border-color: transparent transparent transparent #1a1a1a;
  border-style: solid;
  border-width: .45rem 0 .45rem .8rem;
  height: 0;
  right: 2rem;
  top: calc(50% - .2rem);
  width: 0
}

.linebutton--ja {
  font-size: max(1.4rem, 10px);
  letter-spacing: 0;
  line-height: 1.5714285714em
}

.linebutton--external:after {
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: contain;
  border: none;
  content: "";
  display: block;
  height: 1rem;
  position: absolute;
  right: 2rem;
  top: calc(50% - 1rem);
  width: 1rem
}

.linebutton--back {
  padding: .6rem 0 1.6rem 3rem;
  text-align: right
}

.linebutton--back:after {
  border-color: transparent #1a1a1a transparent transparent;
  border-style: solid;
  border-width: .45rem .8rem .45rem 0;
  left: 0
}

.linebutton--back:after,
.linebutton--down:after {
  content: "";
  display: block;
  height: 0;
  position: absolute;
  top: calc(50% - .95rem);
  width: 0
}

.linebutton--down:after {
  border-color: #1a1a1a transparent transparent;
  border-style: solid;
  border-width: .8rem .45rem 0;
  right: 2rem
}

.linebutton--up:after {
  border-color: transparent transparent #1a1a1a;
  border-style: solid;
  border-width: 0 .45rem .8rem;
  content: "";
  display: block;
  height: 0;
  position: absolute;
  right: 2rem;
  top: calc(50% - .75rem);
  width: 0
}

.linebutton--wh {
  color: #fff
}

.linebutton--wh:before {
  background-color: #fff
}

.linebutton--wh:after {
  border-left-color: #fff
}

.linebutton--wh.linebutton--back:after {
  border-right-color: #fff
}

.linebutton--wh.linebutton--external:after {
  background-image: url(/images/icon_external_wh.svg)
}

body:not(.touch) .linebutton:hover:after {
  animation: linebuttonArrowAnim 1s cubic-bezier(.19, 1, .22, 1) 0s infinite
}

body:not(.touch) .linebutton--back:hover:after {
  animation: linebuttonBackArrowAnim 1s cubic-bezier(.19, 1, .22, 1) 0s infinite
}

body:not(.touch) .linebutton--down:hover:after {
  animation: linebuttonDownArrowAnim 1s cubic-bezier(.19, 1, .22, 1) 0s infinite
}

body:not(.touch) .linebutton--up:hover:after,
body:not(.touch) .memberlist__block:hover .linebutton--up:after,
body:not(.touch) .worksitem:hover .linebutton--up:after {
  animation: linebuttonUpArrowAnim 1s cubic-bezier(.19, 1, .22, 1) 0s infinite
}

body:not(.touch) .linebutton--external:hover:after {
  animation: none
}

body:not(.touch) .linebutton--close:hover:after {
  animation: linebuttonDownArrowAnim 1s cubic-bezier(.19, 1, .22, 1) 0s infinite
}

/* ================================
   linebutton / boxbutton レスポンシブ強化
================================ */

@media screen and (max-width: 1680px) {
     .linebutton {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}
/* 1080px以下：フォント縮小・余白調整 */
@media screen and (max-width: 1080px) {
  .linebutton {
    font-size: max(1.2rem, 10px);
    padding: 0.8rem 2rem 1rem 0rem;
  }

  .boxbutton {
    font-size: max(1.1rem, 10px);
    padding: 1rem 1.5rem;
  }
.index__about__nav__item.current:before {
  left: -1rem;
  top: 1.5rem;
}
}

/* 820px以下：既存に追加でよりコンパクトに */
@media screen and (max-width: 820px) {
  .linebutton {
    font-size: max(1rem, 10px);
    line-height: 1.9em;
    padding: 0.8rem 1.5rem 1rem 0;
  }

  .linebutton:after {
    right: 1rem;
    top: calc(50% - 0.7rem);
  }

  .boxbutton {
    font-size: max(1rem, 10px);
    padding: 0.8rem 1.2rem;
    line-height: 1.9em;
  }
.index__about__nav__item.current:before {
  background-color: #1a1a1a;
  border-radius: 50%;
  content: "";
  display: block;
  height: 0.8rem;
  left: 0rem;
  position: absolute;
  width: 0.8rem;
}
}

/* 680px以下：ボタンも縦積み・見やすく */
@media screen and (max-width: 680px) {
  .index__about__nav__item__link .linebutton {
    width: 100%;
    text-align: left;
    padding: 1.2rem 1rem;
  }

  .linebutton--ja {
    font-size: 1.4rem;
    line-height: 1.7em;
  }

  .boxbutton {
    display: block;
    width: 100%;
    font-size: 1.3rem;
    line-height: 1.7em;
    padding: 1.2rem;
  }

  .linebutton:after,
  .linebutton--external:after {
    right: 1rem;
    top: calc(50% - 0.6rem);
  }

}

/* 480px以下：スマホ片手操作に最適化 */
@media screen and (max-width: 480px) {
  .linebutton,
  .boxbutton {
    font-size: 1.2rem;
    padding: 1rem;
    text-align: center;
  }

  .linebutton:after,
  .boxbutton:before {
    right: 0.8rem;
  }
.index__about__nav__item__link {
    text-align: left!important;
}
}
/*--------------------------------
boxbutton
---------------------------------*/
.boxbutton {
  display: block;
  font-size: max(1.2rem, 10px);
  height: auto;
  letter-spacing: 0;
  line-height: 1.8333333333em;
  padding: 1.1rem 2rem;
  position: relative;
  text-align: center;
  width: 100%
}

.boxbutton:before {
  border: 1px solid #1a1a1a;
  bottom: 0;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 0
}

@media (max-width:820px) {
  .linebutton {
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    line-height: 2em;
    padding: .8rem 2rem 1rem 0
  }

  .linebutton:after {
    right: 1rem
  }

  .linebutton--ja {
    font-size: max(1.2rem, 10px);
    letter-spacing: 0;
    line-height: 1.8333333333em
  }

  .linebutton--back {
    padding: .6rem 0 1.6rem 3rem
  }

  .linebutton--back:after {
    left: 0
  }

  .linebutton--down {
    padding: .8rem 2rem 1rem 0
  }

  .linebutton--down:after,
  .linebutton--up:after {
    right: 1rem;
    top: calc(50% - .55rem)
  }

  .linebutton--up:after {
    border-width: 0 .45rem .8rem
  }

  .linebutton--external:after {
    right: 1rem;
    top: calc(50% - .6rem)
  }

  .linebutton--back {
    padding: .8rem 0 1rem 2rem;
    text-align: right
  }

  .linebutton--back:after {
    top: calc(50% - .55rem)
  }

  .boxbutton {
    display: block;
    font-size: max(1rem, 10px);
    height: auto;
    letter-spacing: 0;
    line-height: 2em;
    padding: 1rem 2rem;
    position: relative;
    text-align: center;
    width: 100%
  }
}
a.no-link {
    color: #323743!important;    
}

.index__news__list > a:nth-of-type(n+5) {
  display: none;
}
.no-link {
    cursor: default!important;
}