@charset "utf-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@100;200;300;400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&display=swap');

:root {
  --spLine: 640;

  --C-black: #000;
  --C-white: #fff;
  --C-red: #ed1d23;
}

/* ===============================
	site utility
 =============================== */
body *{ font-feature-settings: "palt" 1; -webkit-text-size-adjust: 100%; font-family: 'Noto Serif JP', sans-serif;}
img { max-width: 100%; height: auto; vertical-align: middle;}
a { transition: .4s;}
a:hover { transition: 0.4s; opacity: 0.7;}

/* 最大width幅 */
.w658,.w834,.w1000,.w1120,.w1340,.w1400,.w1400_pNone {max-width: 100%;}
.w658 {width: calc(658px + (30px * 2));}
.w834 {width: calc(834px + (30px * 2));}
.w1000 {width: calc(1000px + (30px * 2));}
.w1120 {width: calc(1120px + (30px * 2));}
.w1340 {width: calc(1340px + (30px * 2));}
.w1400 {width: calc(1400px + (30px * 2));}

.w1400_pNone {width: 1400px;}

/* ボタン */
.btn {
  font-size: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 286px;
  max-width: 100%;
  min-height: 48px;
  padding: 10px 46px;
  border: var(--C-black) 1px solid;
  border-radius: 100px;
  position: relative;
  margin: auto;
}
.btn:hover {
  opacity: 1;
  color: var(--C-white);
  background: var(--C-red);
}
.btn::after {
  content: '';
  width: 12px;
  height: 12px;
  background: var(--C-red);
  border-radius: 100px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 30px;
  margin: auto;
  transition: 0.4s;  
}
.btn:hover::after {
  background: var(--C-black);
}
@media screen and (max-width: 640px) {
  .btn {
    font-size: 3.90625vw;
    width: 69.375vw;
    min-height: 11.5625vw;
    padding: 2.8vw 8.75vw;
  }
  .btn::after {
    width: 2.8125vw;
    height: 2.8125vw;
    right: 4.375vw; 
  }
}

/* ===============================
	common_title
 =============================== */
h2.title.common_title {
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0.1em;
}
h2.title.common_title + span {
  font-family: "Cormorant Garamond", serif;  
  font-size: 13px;
  letter-spacing: 0.1em;
  position: relative;
  padding-right: 78px;
}
h2.title.common_title + span::before,
h2.title.common_title + span::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
}
h2.title.common_title + span::before {
  width: 76px;
  height: 1px;
  background: var(--C-black);
}
h2.title.common_title + span::after {
  width: 20px;
  height: 2px;
  background: var(--C-red);
}
@media screen and (max-width: 640px) {
  h2.title.common_title {
    font-size: 6.25vw;
  }
  h2.title.common_title + span {
    font-size: 3.125vw;
    display: inline-block;
    padding-right: 21.25vw;
    margin-top: 1vw;
  }
  h2.title.common_title + span::before {
    width: 19.6875vw;
  }
  h2.title.common_title + span::after {
    width: 26.98412698412698%;
  }
}

/* ===============================
	pankuzu
 =============================== */
#pankuzu ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;  
  justify-content: flex-end;
  align-items: center;  
}
#pankuzu ul * {
  font-size: 12px;
}
#pankuzu li:not(:last-child)::after {
  content: '>';
  margin-left: 1ch;
  margin-right: 1ch;
}
#pankuzu li a:hover {
  opacity: 1;
  color: var(--C-red);
}
@media screen and (max-width: 640px) {
  #pankuzu {
    margin-top: 2vw;
  }
  #pankuzu ul * {
    font-size: 3vw;
  }
}

/* ===============================
	common_news
 =============================== */
#common_news ul {
  display: flex;
  flex-direction: row;
  gap: 50px;
}
#common_news li {
  width: calc((100% - (50px * 2)) / 3);
}
#common_news .list_img {
  width: 100%;
  height: auto;
  aspect-ratio: 300 / 168;
}
#common_news .list_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
#common_news .list_txt {
  margin-top: 8px;
}
#common_news .list_txt .disFlex {
  display: flex;
  justify-content: space-between;
}
#common_news .list_txt .disFlex * {
  font-size: 13px;
}
#common_news .list_txt h3 {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  margin-top: 4px;
  transition: .4s;  
}
#common_news li:hover .list_txt h3 {
  color: var(--C-red);
}
@media screen and (max-width: 640px) {
  #common_news .list_img {
    width: 100%;
    height: auto;
    aspect-ratio: 500 / 282;
  }
  #common_news .list_txt {
    margin-top: 2.1875vw;
  }
  #common_news .list_txt .disFlex {
    display: flex;
    justify-content: space-between;
  }
  #common_news .list_txt .disFlex * {
    font-size: 2.8125vw;
  }
  #common_news .list_txt h3 {
    font-size: 4.21875vw;
    line-height: 1.481481481481481;
    margin-top: 1.5625vw;
  }
}