/* top page */
/**front page**/
.top-fv{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#b89f84;
}

.top-fv-video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center bottom;
}

.fv-inner{
  font-size:32px;
  color:#fff;
}

.top-journal{
  padding:0 0 10px;
  background:#fbf9f7;
}

.section-title{
  margin-bottom:40px;
  text-align:center;
  font-size:28px;
  color:#6b3f2b;
}



.top-post h3{
  margin-bottom:15px;
}

.top-post-content{
  line-height:1.9;
}



.category-link{
  display:block;
  margin-bottom:20px;
  padding:20px;
  background:#d8c7a3;

  text-align:center;
  text-decoration:none;
  color:#5b3b2b;
}

/**front page option**/


.top-category-card.is-visible{
  opacity:1;
  transform:translateY(0);
}




.category-thumb{
  position:relative;
  width:100%;

  aspect-ratio:auto;
  overflow:hidden;
}

.category-media{
  position:relative;
  width:100%;
  height:auto;

  object-fit:contain;
  object-position:left top;

  display:block;
}
.category-deco-layer{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  overflow:visible;
}

.category-deco{
  position:absolute;
  z-index:5;
  pointer-events:none;
  opacity:0;
}.top-category-card h2{
  margin-bottom:16px;
  color:#6b3f2b;
}

.top-category-card p{
  margin-bottom:24px;

  font-size:17px;
  line-height:2;
  letter-spacing:.05em;
}

.more-button{
  display:inline-block;

  padding:16px 100px;

  background:#f2ab2c;
  color:#fff;

  border-radius:14px;

  font-size:16px;
  letter-spacing:.06em;
  text-decoration:none;

  transition:
    transform .25s ease,
    opacity .25s ease,
    box-shadow .25s ease;

  box-shadow:
    0 4px 14px rgba(60,30,20,.08);
}

.more-button:hover{
  opacity:.95;

  transform:translateY(-2px);

  box-shadow:
    0 8px 18px rgba(60,30,20,.10);
}

/**top fixed journal**/
/** top fixed journal **/

.top-journal-sticky{
  max-width:640px;

  margin:0 auto 64px;
  padding:0px 34px 30px;

  background:transparent;


  border-bottom:1px solid #8d7561;

  text-align:center;
  box-sizing:border-box;
}

.top-journal-sticky .top-post-content{
  font-size:17px;
  line-height:2.15;
  letter-spacing:.08em;

  color:#4a2b1d;
}

@media (max-width:767px){

  .top-journal-sticky{
    padding:0px 30px 10px 30px
  }

  .top-journal-sticky .top-post-content{
    font-size:17px;
    line-height:2;
  }

}

.top-journal-sticky h3{
  margin-bottom:16px;
  color:#6b3f2b;
  text-align:center;
}

.read-more-link{
  display:table;
  margin:28px auto 0;

  color:#5b3b2b;
  text-decoration:none;
  border-bottom:1px solid #5b3b2b;

  text-align:center;
}

/* TOPページだけ背景変更 */
body:has(.top-page){
  background:#fff7dd;
}

.top-page{
  background:#fff7dd;
  padding-top:0;
  padding-bottom:30px;
}

.top-categories{
  padding:80px 0 30px;
  background:#fff7dd;
}

.top-category-card{
  margin-bottom:150px;
  text-align:center;
  overflow:visible;

  opacity:0;
  transform:translateY(48px);

  transition:
    opacity .9s cubic-bezier(.16, 1, .3, 1),
    transform .9s cubic-bezier(.16, 1, .3, 1);

  will-change:transform, opacity;
}

.category-visual{
  position:relative;
  width:100%;
  margin-bottom:24px;
  background:#fff7dd;
}

.top-categories .top-category-card:first-child .category-visual{
  background:#fbf9f7;
}

.top-categories .top-category-card:first-child{
  background:#fff7dd;
}

/**fv custom**/
.top-fv{
  background:#fff7dd;
  overflow:hidden;
}

.top-fv-video{
  width:calc(100% + 2px);
  margin-left:-1px;
  display:block;
}
.top-fv-video{
  transform:translateY(-1px);
}
/**journal deco***/
/* journal title visual */
.journal-title-visual{
  position:relative;
  width:100%;
  margin:0;
}

.journal-title-thumb{
  width:100%;
  line-height:0;
}

.journal-title-media{
  display:block;

  width:100%;
  height:auto;

  object-fit:cover;
}
.journal-title-deco-layer{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  overflow:visible;
}

.journal-title-deco{
  position:absolute;
  z-index:5;
  pointer-events:none;
  opacity:0;
}

.top-journal.is-visible .journal-title-deco,
.journal-title-visual.is-visible .journal-title-deco{
  opacity:1;
}

/* 小物位置 */
.journal-deco-01{
  left:8px;
  top:-42px;
  width:72px;
}

.journal-deco-02{
  left:30px;
  bottom:-20px;
  width:100px;
}

/** journal latest title **/

.journal-post-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;

  width:100%;
  margin:0 auto 22px;

  font-size:24px;
  font-weight:400;
  line-height:1.4;

  color:#8d4d4a;
  text-align:center;
}

.journal-post-icon{
  width:54px;
  height:54px;

  border-radius:999px;
  object-fit:cover;

  flex:0 0 auto;
}

@media (max-width:767px){

  .journal-post-title{
    gap:12px;
    font-size:20px;
  }

  .journal-post-icon{
    width:46px;
    height:46px;
  }

}
.top-journal{
  background:#fcfaf4;
}
.top-post{
  max-width:640px;
  margin:0 auto 64px;
  padding:0 34px;
  box-sizing:border-box;
}

.top-post-content{
  font-size:16px;
  line-height:2.1;
  letter-spacing:.06em;
}
/* TOP journal latest excerpt: 3 lines only */
.top-post .top-post-excerpt{
  line-height:2.1;
  max-height:calc(2.1em * 3);
  overflow:hidden;
}

.top-post .top-post-excerpt p{
  margin-top:0;
  margin-bottom:0;
}
@media (max-width:767px){
  .top-post{
    padding:0 30px;
  }

  .top-post-content{
    font-size:16px;
    line-height:2;
  }

  .top-post .top-post-excerpt{
    line-height:2;
    max-height:calc(2em * 3);
  }
}
.top-categories > .top-category-card:first-of-type .category-visual{
  position:relative;
  background:transparent !important;
}
.top-categories > .top-category-card:first-of-type .category-visual::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-120px;
  bottom:0;
  background:#fbf9f7;
  z-index:0;
}

.top-categories > .top-category-card:first-of-type .category-thumb{
  position:relative;
  z-index:1;
}

.top-categories > .top-category-card:first-of-type .category-deco-layer{
  z-index:5;
}

.first-description{
font-size:20px;
}
/* FV video / poster switch */
.top-fv{
  position:relative;
  overflow:hidden;
}

.top-fv-poster{
  position:absolute;
  inset:0;
  z-index:2;

  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center bottom;

  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
}

.top-fv-video{
  position:relative;
  z-index:1;

  width:calc(100% + 2px);
  margin-left:-1px;

  display:block;
  transform:translateY(-1px);
}

/* 動画を最後まで見た後だけposterを表示 */
.top-fv.is-fv-video-ended .top-fv-poster{
  opacity:1;
}