@charset "UTF-8";
:root{
  --lower-animation-duration: 1000ms;
  --lower-animation-delay: 400ms;
  --lower-animation-delay-none: 0;
  --header-height:65rem;
  --header-height-navi-area: 5.4rem;
}
@media (min-width: 768px) {
  :root{
    --header-height:12rem;
    --header-height-navi-area: 8rem;
  }
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height-navi-area);
}
/*** 
* ナビゲーション
***/
/* .lower-navigation__list{
  opacity: 0;
  transition: opacity .5s;
  transition-delay: var( --lower-animation-duration);
}
.loaded .lower-navigation__list{
  opacity: 1;
} */
.lower-navigation{
  padding-inline: var(--space-padding-m);
}
.lower-navigation__list {
  margin-top: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2.5rem;
  counter-reset: num; 
}
.lower-navigation__item.w-100 {
  width: 100%;
  display: none;
}
.lower-navigation__item:not(.w-100) {
  counter-increment: num;
}
.lower-navigation--link {
  text-decoration: none;
  font-weight: var(--fw-medium);
  font-size: 1.4rem;
  display: flex;
  align-items: baseline;
  gap: .8rem;
}
.lower-navigation__item:not(.w-100) .lower-navigation--link::before {
  content: counter(num, decimal-leading-zero);
  font-size: 1.2rem;
  letter-spacing: .03em;
  font-weight: var(--fw-light);
}
.lower-navigation--text{
  letter-spacing: .06em;
}

@media (min-width: 768px) {

  .lower-navigation__list {
    gap: .7rem 4rem;
    margin-top: 0.6rem;
  }
  .lower-navigation--link {
    font-size: 1.6rem;
    text-decoration: none;
    height: 1em;
    overflow: hidden;
    gap: 1.2rem;
  }
  .lower-navigation--link::before {
    font-size: 1.2rem;
  }
  .lower-navigation--text {
    display: block;
    position: relative;
    transition: transform var(--transition-default);
  }
  .lower-navigation--text::after {
    content: attr(data-text);
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100%;
  }
}


/*** 
* セクション、コンテンツマージン
***/
.s-lower-content{
  margin-top: 2.2rem;

  /* text-align: justify;
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: break-word;  
  word-break: break-word; */
}
.lower-section{
  position: relative;
}
.s-lower-content:not([data-page="philosophy"]) .lower-section:not(:first-of-type)::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin-inline: auto;
  background-color: var(--color-black);
  width: calc(100% - (var(--space-padding-l) * 2));
  height: 1px;
}
.s-lower-content .lower-section.c-no-separator::before{
  display: none;
}


.lower-section__inner{
  padding-block: 8rem 9rem;
}
.s-lower-content[data-page="philosophy"] .lower-section__inner{
  border-bottom: 1px solid var(--color-black);
}
.lower-section:last-of-type .lower-section__inner{
  padding-bottom: 0;
}

.lower-section-contents{
  padding-top: 3rem;
}
/* .s-lower-content:not([data-page="philosophy"]) .lower-section-contents{
  padding-inline: var(--space-padding-s);
} */

@media (min-width: 768px) {
  .s-lower-content{
    margin-top: 5.5rem;
  }
  .lower-section__inner{
    padding-block: 10rem 12rem;
  }
  .lower-section-contents{
    padding-top: 5rem;
  }
}

/*** 
* タイトル
***/
/* Yとかが幅に収まっていないのでちょっと遠く飛ばしてます */
@keyframes textToLeft-lowerheading {
  0% {
    /* transform: translateX(120%); */
    transform: translateX(100%);
  }
  100% {
    transform: translateX(0%);
  }
}
 /* .lower-heading{
  padding-inline: var(--space-padding-m);
 } */
/* .lower-heading .u-text-animation[data-animation-type="slide-to-left"].animate .u-animation-text-body {
  animation: textToLeft-lowerheading 0.75s ease backwards;
} */
.lower-heading .lower-heading-area__number,
.lower-heading .c-text-section-heading--ja,
.lower-heading .lower-heading-area__sub-title,
.lower-heading .c-text-section-heading:has([data-animation-type="fade-in"]),

/* philosophy用 */
[data-page="philosophy"] .lower-heading-area .lower-heading-area__number,
[data-page="philosophy"] .lower-heading-area .c-text-section-heading--ja,
[data-page="philosophy"] .lower-heading-area .lower-heading-area__sub-title,
[data-page="philosophy"] .lower-heading-area .c-text-section-heading:has([data-animation-type="fade-in"]){
  opacity: 0;
  transition: opacity .5s;
  transition-delay: var(--lower-animation-delay-none);
}
.lower-heading:has(.animate) .lower-heading-area__number,
.lower-heading:has(.animate) .c-text-section-heading--ja,
.lower-heading:has(.animate) .lower-heading-area__sub-title,
.lower-heading:has(.animate) .c-text-section-heading:has([data-animation-type="fade-in"]),

/* philosophy用 */
[data-page="philosophy"] .lower-heading-area:has(.animate) .c-text-section-heading--ja,
[data-page="philosophy"] .lower-heading-area:has(.animate) .lower-heading-area__number,
[data-page="philosophy"] .lower-heading-area:has(.animate) .lower-heading-area__sub-title,
[data-page="philosophy"] .lower-heading-area:has(.animate) .c-text-section-heading:has([data-animation-type="fade-in"]){
  opacity: 1;
}
.lower-heading-area__number{
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: 0.03em;
  font-weight: var(--fw-light);
  margin-bottom: .8rem;
}
.c-text-section-heading{
  font-size: 4.2rem;
  line-height: 1;
  letter-spacing: 0;
  font-family: var(--font-degular);
  font-weight: var(--fw-black);
  display: flex!important;
  /* align-items: flex-end; */
}
/* 以下Yとかが見切れるための処置 */
.lower-heading .u-text-animation[data-animation-type="slide-to-left"],
[data-page="philosophy"] .u-text-animation[data-animation-type="slide-to-left"],
.c-page-link--page-bottom .u-text-animation[data-animation-type="slide-to-left"]{
  display: flex;
  align-items: baseline;
}
/* .lower-heading .u-text-animation[data-animation-type="slide-to-left"] .u-animation-text-wrapper{
  padding-inline: .2rem;
}
.lower-heading .u-text-animation[data-animation-type="slide-to-left"] .u-animation-text-wrapper:first-child{
  margin-left: -0.2rem;
}
.lower-heading .u-text-animation[data-animation-type="slide-to-left"] .u-animation-text-wrapper:not(:first-child){
  margin-left: -0.4rem;
} */
.c-text-section-heading--ja{
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  font-family: var(--font-ja);
  line-height: 2;
}
[data-page="philosophy"] .c-text-section-heading--ja{
  padding-top: .4rem;
}
.c-text-section-heading--ja::before{
  content: '／';
}
.lower-heading-area__sub-title{
  font-size: 1.6rem;
  line-height: 1.4;
  font-weight: var(--fw-bold);
  margin-top: .7rem;
}

@media (min-width: 768px) {
  .lower-heading-area{
    padding-inline: 3.5vw;
  }
  .lower-heading-area__number{
    margin-bottom: 1rem;
  }
  .c-text-section-heading{
    font-size: 7rem;
  }
  .c-text-section-heading--ja{
    font-size: 3.5rem;
  }
  [data-page="philosophy"] .c-text-section-heading--ja{
    padding-top: .7rem;
  }
  .lower-heading-area__sub-title{
    font-size: 2.2rem;
    margin-top: .2rem;
  }
}

[data-bg="image"]{
  position: relative;
}
[data-bg="image"]::before{
  content: '';
  width: 100%;
  height: 100%;
  background-color: rgba(17, 17, 17, .5);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
[data-bg="image"]::after{
  content: '';
  width: 100%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
  background-image: var(--bg-sp);
}
/* アニメーションまとめ */
[data-bg="image"]::before,
[data-bg="image"]::after{
  opacity: 0;
  transition: opacity var( --lower-animation-duration) ease-out;
  transition-delay: var(--lower-animation-delay);
}
.is-visible-background [data-bg="image"]::before,
.is-visible-background [data-bg="image"]::after{
  opacity: 1;
}
.js-visible-background *{
  transition: color var( --lower-animation-duration) ease-out;
  transition-delay: var(--lower-animation-delay);
}
.is-visible-background .js-visible-background *{
  color: #fff;
}
.js-visible-background .c-text-underline__treat :where(svg path){
  stroke: var(--color-black);
  transition: all var( --lower-animation-duration) ease-out;
  transition-delay: var(--lower-animation-delay);
}
.is-visible-background .js-visible-background .c-text-underline__treat :where(svg path) {
  stroke: #fff
}

@media (min-width: 768px) {
  [data-bg="image"]::after{
    background-image: var(--bg-pc);
  }
}

/*** 
* サブタイトル
***/
.lower-sub-heading-area {
  padding-inline: var(--space-padding-s);
}
.c-text-section-sub-heading {
  position: relative;
  margin-bottom: 3rem;
  padding-left: 2rem;
  font-family: var(--font-degular);
  font-size: 3.6rem;
  font-weight: var(--fw-black);
  line-height: 1.91;
}
.c-text-section-sub-heading::before {
  content: "";
  position: absolute;
  top: 2.5rem;
  left: 0;
  transform: translateX(-50%);
  display: inline-block;
  width: 5px;
  height: 2.5rem;
  background-color: currentColor;

}
@media (min-width: 768px) {
  .c-text-section-sub-heading {
    padding-left: 3rem;
    font-size: 5rem;
    line-height: 1.38;
  }
  .c-text-section-sub-heading::before {
    top: 1.8rem;
    height: 4rem;
  }
}


/*** 
* カード
***/
.card-list {
  display: grid;
}
[ data-card-type="note"]{
  gap: 3rem; 
}

.card-link{
  text-decoration: unset;
}
.card-head{
  position: relative;
}
.card-image__inner {
  width: 100%;
  overflow: hidden;
}
.card-image__inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;

  transform: scale(var(--scroll-scale, 1.2));
  transition: transform var(--lower-animation-duration) ease-out;
  will-change: transform;
}
body.is-scrolling .card-image__inner img {
  transition: transform 0s !important;
}
.card-body{
  margin-top: 1.5rem;
}
.card-title {
  font-size: 1.6rem;
  line-height: 1.575;

  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2
}
.card-text {
  margin-top: 1rem;
  font-size: 1.4rem;
  line-height: 1.75;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

[data-card-type="note"] .card-image__inner{
  aspect-ratio: 2/1;
}
[data-card-type="note"] .card-body{
  margin-top: 1.5rem;
}
[data-card-type="note"] .card-text{
  margin-top: .8rem;
}


@media (min-width: 768px) {
  .card-list {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .card-body{
    margin-top: 1.2rem;
  }
  .card-title {
    font-size: 1.8rem;
  }
  .card-text {
    margin-top: 1.2rem;
    font-size: 1.4rem;
  }
  [data-card-type="note"] .card-text{
    margin-top: .8rem;
  }

  
  [data-card-type="note"]{
    gap: 4rem;
  }
  [data-card-type="note"] .card-title {
    font-weight: var(--fw-bold);
  }
}


/*** 
* グリッド
***/

.grid-list{
  display: grid;
  gap: 1.5rem;
  counter-reset: item-count;
}
.grid-item{
  border: 1px solid #EDEDED;
  padding: 1.5rem 1.8rem 2.2rem;
  counter-increment: item-count;
}
.grid-item--numeric::before {
  content: counter(item-count, decimal-leading-zero) ".";
  display: block;
  font-weight: var(--fw-black);
  font-size: 1.8rem;  
  line-height: 1;
  margin-bottom: 1rem; 
  font-family: var(--font-degular);
  letter-spacing: .03em;
}
.grid-item__contents dt{
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.grid-item__contents dd{
  margin-top: 1rem;
  font-size: 1.4rem;
  line-height: 2;
}

@media (min-width: 768px) {
  .grid-list{
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 3rem;
  }
  .grid-item{
    padding: 3rem;
  }
  .grid-item--numeric::before {
    font-size: 2.2rem;  
    margin-bottom: 1.2rem; 
  }
  .grid-item__contents dt{
    font-size: 1.8rem;
  }
  .grid-item__contents dd{
    margin-top: 1.2rem;
    font-size: 1.5rem;
  }
}



@media (hover: hover) {
  .lower-navigation--link:hover .lower-navigation--text {
    transform: translateY(-100%);
  }
  .card-link .card-image__inner img{
    /* transition: transform var(--lower-animation-duration); */
  }
  .card-link:hover .card-image__inner img{
    transform: scale(1.2);
    transition: transform var(--lower-animation-duration) ease-out;
  }
  body.is-scrolling .card-link:hover .card-image__inner img {
    transition: transform var(--lower-animation-duration) ease-out !important;
  }
}
