/* ----------------------------------------------
カラー
----------------------------------------------- */
:root{
    --color-bk: #000000;
    --color-wh: #fff;
    --color-red: #8E0B21;
    --color-gray: #F2F2F2;
    --color-transparent: rgba(255, 255, 255, 0.2);
}

/* ----------------------------------------------
フォント
----------------------------------------------- */
/*
@font-face {
  font-family: "G OTF GKyokaICAPro";
  src: url("../fonts/G-OTF-GKyokaICAPro-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "G OTF GKyokaICAPro";
  src: url("../fonts/G-OTF-GKyokaICAPro-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "G OTF GKyokaICAPro";
  src: url("../fonts/G-OTF-GKyokaICAPro-Medium.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "Noto Serif JP";
  src: url("../fonts/MinionPro-Semibold.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  unicode-range:U+0030-0039,U+0041-005A,U+0061-007A;
}

@font-face {
  font-family: "Koburina Gochic Std";
  src: url("../fonts/こぶりなゴシック Std W3.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "Koburina Gochic Std";
  src: url("../fonts/こぶりなゴシック Std W6.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Noto Serif JP";
  src: url("../fonts/MinionPro-Semibold.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
}
  */


:root{
  --font-mincho: "Klee One", cursive, serif;
  --font-gochic: "Noto Sans JP", sans-serif;
}


/* ----------------------------------------------
アニメーション
----------------------------------------------- */

/*1.フェードインアニメーションの指定*/
.scrollanime {
  opacity: 0;
}

/*一瞬表示されるのを防ぐ*/
.fadeInDown {
  animation-name: fadeInDown;
  animation-duration: 1.8s;
  animation-fill-mode: forwards;
}
@keyframes fadeInDown {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translate(0);
  }
}

/*2.アップダウン*/
.updown {
  transform: translateY(-100px);
}
.downup {
  transform: translateY(100px);
}

/*3.スライドイン*/

.slide-right {
  transform: translateX(50px);
}
.slide-left {
  transform: translateX(-50px);
}

.slideUp {
  animation-name: slideUp;
  animation-fill-mode: forwards;
}

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

/*4.フェードイン*/
.fadeIn {
  animation-name: fadeIn;
  animation-duration: 2s;
  animation-fill-mode: forwards;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.slideAnimeLeftRight {
  animation-name:slideTextX100;
  animation-duration:0.8s;
  animation-fill-mode:forwards;
    opacity: 0;
}

@keyframes slideTextX100 {
  from {
  transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 0;
  }

  to {
  transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.leftAnime{
  opacity: 0;/*事前に透過0にして消しておく*/
}

/*5.アニメーションの開始を遅らせる*/
.delay01 {
  animation-delay: 0.5s;
}

.delay02 {
  animation-delay: 1s;
}

.delay03 {
  animation-delay: 1.5s;
}

.delay04 {
  animation-delay: 2s;
}

.delay05 {
  animation-delay: 2.5s;
}

a:hover{
  text-decoration: none;
}

/* ----------------------------------------------
PC・SPの切り替え
----------------------------------------------- */
@media screen and (min-width: 769px) {
  .pc{
    display:block;
  }

  .sp{
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .pc{
    display: none;
  }

  .sp{
    display: block;
  }
}

/* ----------------------------------------------
コンテンツ
----------------------------------------------- */
body.open{
  position: fixed;
}


.l-container {
  position: relative;
  width: 100%;
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: 40px;
}

.l-container.-small {
  max-width: 900px;
}

.l-container + .l-container{
  margin-top: 60px;
}


main{
  position: relative;
  overflow: hidden;
  margin-top: 113px;
  padding-bottom: 100px;
}


@media screen and (max-width: 768px) {
  .l-container {
    padding-inline: 30px;
  }

  main{
    position: relative;
    margin-top: 60px;
    padding-bottom: 80px;
  }
}

.bg01{
  background: url(../img/common/bg01.webp) center center /2600px;
  padding-block: 80px;
}

.bg02{
  background: url(../img/common/bg02.webp) center center /2600px;
  padding-block: 80px;
}

/* ----------------------------------------------
header
----------------------------------------------- */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 113px;
  padding: 0;
  z-index: 9999999;
  background: var(--color-wh);
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-header__logo a {
  display: block;
}

.p-header__logo svg{
  width: 100%;
  height: auto;
}

.c-drawer{
  position: fixed;
  top:30px;
  right: 20px;
  width: 50px;
  height: 50px;
  z-index: 9999;
}

.p-globalNav__listItem > a{
  display: block;
  font-size: 0.813em;
  line-height: 1.4;
  letter-spacing: 0.15em;
  font-family: var(--font-gochic);
  font-weight: 600;
  position: relative;
}

.p-globalNav__list02{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position: absolute;
  top: 40%;
  right: 75px;
  transform: translateY(-50%);
}

.p-globalNav__listItem02{
  width: 50px;
}

.p-globalNav__listItem02 a{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-globalNav__listItem02 img{
  width: 20px;
  height: auto;
}

.navbar_toggle_icon {
  position: relative;
  display: block;
  height: 1px;
  width: 25px;
  -webkit-transition: ease 0.5s;
  transition: ease 0.5s;
  transform: translateX(-50%);
  left: 50%;
  background: var(--color-bk);
}

.navbar_toggle_icon:nth-child(1) {
  top: 0;
  transition: 0.4s;
}

.navbar_toggle_icon:nth-child(2) {
  top: 0;
  margin-top: 7px;
  transition: 0.4s;
}

.navbar_toggle_icon:nth-child(3) {
  top: 0;
  margin-top: 7px;
  transition: 0.4s;
  opacity: 1;
}

.c-drawer.open .navbar_toggle_icon:nth-child(1) {
  top: 7px;
  left: 12.5px;
  transition: 0.4s;
  transform: rotate(45deg);
}

.c-drawer.open .navbar_toggle_icon:nth-child(2) {
  top: 0;
  left: 12.5px;
  margin-top: 6px;
  transition: 0.4s;
  transform: rotate(-45deg);
}

.c-drawer.open .navbar_toggle_icon:nth-child(3) {
  opacity: 0;
}

.p-globalNav02{
  display: flex;
  align-items: flex-start;
  gap: 0 40px;
}

.p-globalNav02 h3{
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.05em;
  margin-bottom: 15px;
  text-align: left;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
  font-feature-settings: "half";
}

.p-globalNav__list03 a:hover{
  color: var(--color-bk);
}

.p-globalNav__list03 + h3{
  margin-top: 30px;
}

.p-globalNav02__left{
  width: 280px;
}

.p-globalNav02__right{
  width: 220px;
}

.p-globalNav__list03{
  display: flex;
  flex-direction: column;
  gap: 15px 0;
}

.p-submenu__list{
  display: none;
}






.p-globalNav__listItem03 > a,
.p-globalNav__listItem03 > span{
  font-size: 16px;
  letter-spacing: 0.05em;
  position: relative;
}

.p-globalNav__listItem03 > span{
  font-weight: 600;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  gap: 0 10px;
  padding-right: 25px;
  cursor: pointer;
}


.p-globalNav__listItem03 > span::after{
  content: '';
  flex-grow: 1;
  height: 1px;
  border-top: 1px dotted var(--color-bk);
}

.p-globalNav__listItem03.js-menu i{
  width: 15px;
  height: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-bk);
  position: absolute;
  right: 0;
}

.p-globalNav__listItem03.js-menu i::before{
  content: '';
  width: 6px;
  height: 6px;
  position: absolute;
  top: 2px;
  left: 50%;
  transform: translateX(-50%) rotate(135deg);
  border: 1px solid var(--color-bk);
  border-left: 0;
  border-bottom: 0;
  transition: ease 0.4s;
}

.p-globalNav__listItem03.js-menu.open i::before{
  top: 5px;
  transform: translateX(-50%) rotate(-45deg);
}

.p-globalNav__listItem03 > a::before{
  content: '●';
  color: var(--color-red);
  display: inline-block;
  margin-right: 5px;
  font-size: 12.5px;
}

.p-submenu__listItem > a{
  position: relative;
  font-size: 16px;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.p-submenu__listItem > a b{
  font-family: "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
    font-weight: lighter;
}

.p-submenu__listItem > a::before{
  content: '・';
  display: inline-block;
}

.p-submenu__listItem > a::after{
  content: '';
  width: 100%;
  height: 1px;
  background: var(--color-bk);
  position: absolute;
  left: 0;
  bottom: -3px;
  transition: ease  0.3s;
  opacity: 0;
}

.p-submenu__listItem > a:hover::after{
  opacity: 1;
}

.p-submenu__listItem + .p-submenu__listItem{
  margin-top: 15px;
}

.l-header__drawerWrap .c-btn__primary{
  margin-top: 80px;
  min-width: 165px;
}

@media screen and (min-width: 921px) {

  .p-header__logo {
    width: calc(240vw / 13);
    max-width: 240px;
    position: absolute;
    top:50%;
    left: 20px;
    z-index: 999;
    transform: translateY(-50%);
  }


  .p-globalNav{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
  }

  .p-globalNav__listItem > a:hover{
    opacity: 0.7;
    color: var(--color-bk);
    text-decoration: none;
  }

  .p-globalNav__list01{
    display: flex;
    justify-content: center;
    gap: 0 25px;
  }

  .p-globalNav__listItem + .p-globalNav__listItem{
    padding-left: 25px;
    border-left: 1px solid var(--color-bk);
  }

  .l-header__drawerWrap{
    position: fixed;
    top: 113px;
    right:0;
    width: 100%;
    height: calc(100dvh - 113px);
    transition: ease 0.6s;
    visibility: hidden;
    opacity: 0;
  }
  
  .l-header__drawerWrap.open{
    opacity: 1;
    transition: ease 0.6s;
    visibility: visible;
    background: rgba(0, 0, 0, 0.6);
  }

  .p-globalNav02{
    width: 650px;
    height: 100%;
    padding: 100px 60px;
    background: rgba(255, 255, 255, 0.95);
    top:0;
    right: 0;
    position: absolute;
  }


}

@media screen and (max-width: 920px) {

  .l-header{
    height: 60px;
  }

  .p-header__logo{
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);
    z-index: 999;
  }

  .p-header__logo img{
    width: 140px;
  }

  .c-drawer{
    width: 50px;
    height: 50px;
    display: block;
    position: absolute;
    top:5px;
    right: 5px;
  }


  .l-header__drawerWrap{
    top:0;
    right: -100%;
    overflow-y: scroll;
    height: 100dvh;
    width: 100%;
    background: rgba(255, 255, 255, 0.95);
    position: fixed;
    opacity: 0;
    transition: ease 0.6s;
    padding: 96px 55px 60px 55px;
    z-index: 9999;
  }

  .l-header__drawerWrap.open{
    top:0;
    right: 0;
    opacity: 1;
  }

  .p-globalNav02{
    gap: 40px 0;
    flex-direction: column;
  }

  .p-globalNav02 h3{
    font-size: 16px;
  }

  .p-globalNav02__left{
    width: 100%;
  }

  .p-globalNav02__right{
    width: 100%;
  }

  .p-globalNav__list03{
    gap: 17px 0;
  }

  .p-globalNav__listItem03 > a,
  .p-globalNav__listItem03 > span{
    font-size: 16px;
  }

  .p-globalNav__listItem03 > a::before{
    font-size: 12.5px;
    margin-right: 5px;
  }

  .p-globalNav__listItem03 > span{
    margin-bottom: 0;
  }

  .p-submenu__list{
    margin-top: 20px;
  }

  .p-submenu__listItem + .p-submenu__listItem{
    margin-top: 10px;
  }

  .p-submenu__listItem > a{
    font-size: 16px;
  }

  .p-globalNav__list01{
    display: none;
  }

  .p-globalNav__list02{
    right: 55px;
    top: 47%;
  }

  .p-globalNav__listItem{
    width: 100%;
  }

  .p-globalNav__listItem > a{
    padding-bottom: 8px;
    font-weight: 600;
    font-size: 1.25em;
  }

  .l-header__drawerWrap .c-btn__primary{
    min-width: 165px;
    max-width: 165px;
    margin-top: 40px;
  }

  .l-header__drawerWrap .c-btn__left{
    margin-right: auto;
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: center;
  }


}

/* ----------------------------------------------
footer
----------------------------------------------- */
.l-footer {
  position: relative;
  padding-block: 40px;
  background: url(../img/common/bg01.webp) no-repeat center center / cover;
}

.l-footer__inner{
  width: 100%;
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: 40px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0 80px;
}


.p-footerNav__list{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap:20px 20px;
  margin-bottom: 30px;
}

.p-footerNav__listItem + .p-footerNav__listItem{
  padding-left: 25px;
  border-left: 1px solid var(--color-bk);
}


.p-footerNav__listItem > a{
  display: block;
  font-size: 0.875em;
  font-weight: 500;
  line-height: 1; 
  letter-spacing: 0.1em;
  font-family: var(--font-gochic);
}

.p-footer__title{
  font-family: var(--font-gochic);
  font-size: 0.813em;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.748;
  white-space: nowrap;
  line-break: strict;
}

.p-footer__info{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  font-family: var(--font-gochic);
  font-weight: 400;
}

.p-footer__info p{
  font-size: 0.813em;
  letter-spacing: 0.08em;
  line-height: 1.748;
  font-weight: 400;
}

.p-footer__contactBtn{
  background: var(--color-wh);
  border: 0.5px solid var(--color-bk);
  padding-inline: 10px;
  margin-left: 20px;
  font-size: 0.875em;
  letter-spacing: 0.08em;
  line-height: 1.748;
  font-weight: 400;
}


.p-footer__snsList{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0 10px;
  margin-bottom: 30px;
}

.p-footer__snsList li{
  width: 27px;
}


.p-footerCopy{
  font-size: 0.688em;
  font-weight: 400;
  line-height: 1; 
  letter-spacing: 0.06em;
  font-family: var(--font-gochic);
  text-align: right;
}

#page-top{
  width: 75px;
  text-align: center;
  display: block;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 1em;
}

.pagetop__arrow{
  width: 50px;
  height: 20px;
  display: inline-block;
  position: relative;
}

.pagetop__arrow::before,
.pagetop__arrow::after{
  content: '';
  position: absolute;
  content: '';
  bottom: 16px;
  width: 30px;
  height: 1px;
  background: var(--color-wh);
}

.pagetop__arrow::before{
  left: -1.5px;
  transform: rotate(-37deg);
}

.pagetop__arrow::after{
  right: -1.5px;
  transform: rotate(37deg);
}

.pagetop__text{
  margin-top: 8px;
  color: var(--color-wh);
}

.p-footerNav__listItem a:hover{
  color: var(--color-bk);
}



@media screen and (min-width: 769px) {


  #page-top{
    width: 75px;
    text-align: center;
    display: block;
    transition: all .3s ease;
    font-size: 1em;
    position: fixed;
    bottom: 40px;
    right: 72px;
    z-index: 50;
  }
  
  #page-top a:hover {
    text-decoration: none;
    opacity: .5;
  }

  .l-footer__left{
    margin-left: auto;
  }

}



@media screen and (max-width: 768px) {

  .l-footer{
    background: url(../img/common/footer-bg_sp.webp) no-repeat center center / cover;
  }
  

  .l-footer__inner{
    flex-direction: column;
    justify-content: center;
    padding-block: 40px 20px;
    padding-inline: 20px;
  }

  .p-footer__title{
    text-align: center;
  }

  .p-footer__info{
    justify-content: center;
  }

  .p-footer__info p{
    text-align: center;
  }

  .p-footer__contactBtn{
    margin-left: 0;
    margin-top: 10px;
  }

  .p-footerNav__list{
    flex-direction: column;
  }

  .p-footerNav__listItem + .p-footerNav__listItem {
    padding-left: 0;
    border-left: none;
  }

  .l-footer__left{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
  }

  .p-footerCopy{
    font-size: 10px;
    text-align: center;
  }

  #page-top{
    width: 75px;
    text-align: center;
    display: block;
    font-size: 1em;
    position: relative;
    z-index: 50;
    padding-top: 120px;
  }
  
  
}

/* ----------------------------------------------
ボタン
----------------------------------------------- */


.c-btn__center {
  margin: 40px auto 0 auto;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px 40px;
}


.c-btn__center + .c-btn__center {
  margin-top: 80px;
}

.c-btn__left{
  margin-right: auto;
  margin-left: 0;
}

.c-btn__left+.c-btn__left{
  margin-top: 40px;
}


.c-btn__primary {
  position: relative;
  display: inline-block;
  text-align: center;
  font-weight: 600;
  letter-spacing: 0.05em;
  font-family: var(--font-mincho);
  background: var(--color-red);
  color: var(--color-wh);
  line-height: 40px;
  padding: 0 10px;
  z-index: 2;
  min-width: 206px;
}

.c-btn__primary:hover{
  color: var(--color-wh);
}

.p-productList__item .c-btn__primary{
  min-width: 161px;
}

.c-btn__primary::before {
  content: '';
  width: 4px;
  height: 100%;
  position: absolute;
  top: 50%;
  left: -4px;
  transform: translateY(-50%) rotate(-180deg);
  background: url(../img/common/btn-corner.svg) no-repeat center center / cover;
}

.c-btn__primary::after {
  content: '';
  width: 4px;
  height: 100%;
  position: absolute;
  top: 50%;
  right: -3.5px;
  transform: translateY(-50%);
  background: url(../img/common/btn-corner.svg) no-repeat center center / cover;
}

.c-btn__primary span{
  position: relative;
  z-index: 2;
}

.c-btn__secondary {
  position: relative;
    display: flex;
    align-items: center;
    gap: 0 20px;
    width: 100%;
    text-align: center;
    font-size: 1.5em;
    font-weight: 700;
    letter-spacing: 0.01em;
    font-family: var(--font-en);
    transition: ease 0.4s;
}

.c-btn__right{
  margin-left: auto;
  width: max-content;
}




@media screen and (min-width: 769px) {

  .c-btn__center a+a{
    margin-left: 40px;
  }
  
  .c-btn__secondary:hover{
    opacity: 1;
    color: var(--color-red);
  }

}

@media screen and (max-width: 768px) {

  .c-btn__primary{
    padding: 4px 20px;
    max-width: 210px;
    width: 100%;
    font-size: 1em;
    min-width: 230px;
  }

  .c-btn__primary.large{
    min-width: 95%;
    font-size: 12px;
    padding: 4px 6px;
  }

  .c-btn__center{
    display: flex;
    align-items: center;
    flex-direction: column;
  }

  .c-btn__center a+a{
    margin-top: 20px;
  }

  .c-btn__center + .c-btn__center {
    margin-top: 40px;
  }

  .c-btn__secondary {
    width: 100%;
    font-size: 1.25em;
  }

  .c-btn__center {
    gap: 20px;
  }

  .p-productList__item .c-btn__center{
    width: 100%;
  }

  .p-productList__item .c-btn__primary{
    min-width: 100%;
  }

  .js-slick .p-productList__item .c-btn__center{
    width: 100%;
    min-width: 161px;
    max-width: 161px;
  }

  .p-product__list.-col02-2 .p-productList__item .c-btn__primary,
  .p-product__list.-col02 .p-productList__item .c-btn__primary,
  .p-product__list.-col_sp01 .p-productList__item .c-btn__primary,
  .p-product__list.-grid .p-productList__item .c-btn__primary{
    min-width: 161px;
    max-width: 161px;
  }

}




/* ----------------------------------------------
タイトル
----------------------------------------------- */

.c-heading__wrap {
  position: relative;
  width: 100%;
  margin-bottom: 85px;
}

.c-heading__logo{
  position: absolute;
  top:calc(135vw / 13);
  left: 50%;
  transform: translateX(-50%);
  width: calc(276vw / 13);
}

.c-heading__title{
  position: absolute;
  top: calc(80vw / 13);
  left: calc(80vw/ 13);
  width: calc(27.45vw / 13);
}

.c-heading__txtBox{
  position: absolute;
  top:calc(135vw / 13);
  left: calc(147vw / 13);
  width: 100%;
  z-index: 2;
  font-size: 1.375em;
  line-height: 2.318;
  color: var(--color-wh);
  letter-spacing: 0.13em;
}

.c-heading__txtBox p{
  text-align: left;
  writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  display: inline-block;
  word-break: keep-all;
}

.c-title01 {
  font-family: "Noto Serif JP" var(--font-mincho);
  margin-bottom: 40px;
  font-size: 1.125em;
  font-weight: 600;
  line-height: 1.556;
  letter-spacing: 0.07em;
  text-align: center;
  position: relative;
}

.c-title01.en {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.c-title01 span{
  display: inline-block;
  background: var(--color-wh);
  padding-inline: 10px;
  position: relative;
  z-index: 2;
}

.c-title01::before {
  content: '';
  width: 100%;
  height: 1px;
  background: var(--color-bk);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 1;
}

.c-title02{
  font-family: "Noto Serif JP" var(--font-mincho);
  font-size: 1.5em;
  line-height: 1.417;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 30px;
  text-align: center;
}


.c-title03{
  font-family: var(--font-gochic);
  font-size: 0.938em;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.1em;
  margin-bottom: 20px;
  text-align: center;
}

.c-title04{
  font-family: var(--font-mincho);
  text-align: center;
  font-weight: 600;
  color: var(--color-red);
  font-size: 1.563em;
  line-height: 1.75;
  letter-spacing: 0.07em;
  position: relative;
  margin-bottom: 50px;
}

.c-title04 b{
  font-family: "Hiragino Mincho ProN", "ヒラギノ明朝 ProN",serif;
  font-weight: lighter;
}


.c-title04 .en{
  font-family: "Noto Serif JP";
  font-weight: 600;
  position: relative;
  z-index: 2;
  top:-1px;
}

.c-title04 > span{
  display: inline-block;
  padding-inline: 10px;
  position: relative;
  z-index: 2;
}

.c-title04 > span::before {
  content: '';
  width: 35px;
  height: 2px;
  background: var(--color-red);
  position: absolute;
  top: 50%;
  left: -35px;
  transform: translateY(-50%);
  z-index: 1;
  border-radius: 1px;
}

.c-title04 > span::after {
  content: '';
  width: 35px;
  height: 2px;
  background: var(--color-red);
  position: absolute;
  top: 50%;
  left: 100%;
  transform: translateY(-50%);
  z-index: 1;
  border-radius: 1px;
}

.c-title05{
  font-family: var(--font-mincho);
  text-align: center;
  font-weight: 600;
  color: var(--color-red);
  font-size: 1.125em;
  line-height: 1.75;
  letter-spacing: 0.07em;
  margin-bottom: 40px;
}

.c-title06{
  font-family: var(--font-mincho);
  text-align: center;
  font-weight: 600;
  color: var(--color-red);
  font-size: 1.125em;
  line-height: 1.75;
  letter-spacing: 0.07em;
  border-bottom: 0.2px solid var(--color-red);
  padding-bottom: 10px;
  margin-bottom: 40px;
}

.c-title07{
  font-family: var(--font-gochic);
  text-align: center;
  font-weight: 400;
  font-size: 1.125em;
  line-height: 1.75;
  letter-spacing: 0.07em;
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 10px;
}

.c-title07::before{
  content: '';
  width: 50px;
  height: 2px;
  background: var(--color-bk);
}

.c-title07::after{
  content: '';
  width: 50px;
  height: 2px;
  background: var(--color-bk);
}

h6{
  margin-bottom: 8px;
}


@media screen and (max-width: 480px) {

  .c-heading__wrap{
    margin-bottom: 40px;
  }

  .c-heading__logo{
    top: calc(52vw / 3.5);
    left: 55%;
    width: calc(168vw / 3.5);
  }

  .c-heading__title{
    top: calc(20vw / 3.5);
    left: calc(20vw/ 3.5);
    width: calc(15vw / 3.5);
  }

  .c-heading__txtBox{
    font-size: 0.688em;
    top: calc(30vw / 3.5);
    left: calc(20vw / 3.5);
  }

  .c-title01 {
    font-size: 1em;
    margin-bottom: 30px;
  }

  .c-title02{
    font-size: 1em;
    line-height: 1.75;
    margin-bottom: 20px;
    text-align: center;
  }

  .c-title03{
    font-size: 1em;
  }

  h5.c-title03{
    font-size: 0.875em;
    margin-bottom: 8px;
  }

  .c-title04{
    font-size: 1em;
    margin-bottom: 40px;
  }

  .c-title04 > span{
    padding-inline: 5px;
  }

  .c-title06{
    font-size: 18px;
    padding-bottom: 5px;
    margin-bottom: 30px;
  }

  .c-title07{
    font-size: 15px;
    margin-bottom: 20px;
  }

  .c-title07::before{
    width: 40px;
    height: 1px;
  }
  
  .c-title07::after{
    content: '';
    width: 40px;
    height: 1px;
  }

  h6{
    font-size: 0.875em;
  }


}

/* ----------------------------------------------
テキスト
----------------------------------------------- */

.c-text__box{
  margin-bottom: 120px;
}

.c-small__text {
  font-size: 0.875em;
  font-weight: 400;
  line-height: 1.8;
}

.c-reg__text {
  font-size: 1em;
  font-weight: 300;
  line-height: 2.272;
  letter-spacing: 0.05em;
}

.c-mid__text {
  font-size: 1.875em;
  font-weight: 600;
  line-height: 1.8;
}

.c-att__text{
  font-size: 0.813em;
  line-height: 1.538;
  font-family: var(--font-gochic);
  letter-spacing: 0.05em;
  margin-top: 36px;
  font-weight: 300;
}

.gochic{
  font-family: var(--font-gochic);
}

.left.gochic{
  line-height: 1.8;
  text-align: justify;
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict;
    font-feature-settings: "halt";
}

.c-small__text a,
.c-reg__text a,
.c-mid__text a {
  text-decoration: underline;
}

.center{
  text-align: center;
}

.left{
  text-align: justify;
  line-break: strict;
  font-feature-settings: "halt";
}

.right{
  text-align: right;
}

.c-list__disc,
.c-list__number{
  padding-left: 2em;
  display: flex;
  flex-direction: column;
  gap: 8px 0;
  line-height: 1.8;
}

.c-list__disc{
  list-style-type: disc;
}

.c-list__number{
  list-style-type: decimal;
}

.indent{
  padding-left: 1.2em;
}



@media screen and (max-width: 768px) {

  .c-reg__text {
    font-size: 0.875em;
    font-weight: 400;
    line-height: 2;
  }

  .c-mid__text{
    font-size: 1.25em;
  }

  .center{
    text-align: justify;
    line-break: strict;
    word-wrap: break-word;
    font-feature-settings: "halt";
  }

  .c-list__disc,
  .c-list__number{
    font-size: 0.875em;
    line-height: 1.7;
  }

}



/* ----------------------------------------------
レイアウト
----------------------------------------------- */

.c-large__image{
  display: block;
  margin-bottom: 50px;
}

.c-large__image.small{
  max-width: 820px;
  margin-top:50px;
  margin-inline: auto;
}

@media screen and (max-width: 480px) {
  .c-large__image{
    margin-bottom: 25px;
  }

  .c-large__image.small{
    margin-top:25px;
    margin-bottom: 0;
  }
}


/* ----------------------------------------------
テーブル
----------------------------------------------- */


.c-table__block{
  width: 100%;
  display: block;
}

.c-table__primary{
  border-collapse: collapse;
    border-spacing: 10px;
    border-left: 0;
    border-right: 0;
    font-family: var(--font-gochic);
}

.c-table__primary,
.c-table__primary tbody,
.c-table__primary thead{
  width: 100%;
}

.c-table__primary thead{
  border-top: 0.2px solid var(--color-bk);
}

.c-table__primary thead th{
 text-align: center;
 padding-block: 5px;
 font-weight: 400;
}

.c-table__primary tbody{
  border-top: 0.2px solid var(--color-bk);
    border-bottom: 0.2px solid var(--color-bk);
}

.c-table__primary tbody tr + tr{
  border-top: 1px dotted var(--color-bk);
}

.c-table__primary tbody th,
.c-table__primary tbody td{
  padding: 10px 10px;
}

.c-table__primary tbody th{
  width: 90px;
  text-align: right;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
  vertical-align: middle;
  background: var(--color-gray);
}

.c-table__primary.company{
  max-width: 600px;
  margin-inline: auto;
}

.c-table__primary.company th{
  text-align: left;
}

.c-table__primary tbody td{
  text-align: left;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 300;
  position: relative;
  vertical-align: middle;
}

.c-table__primary tbody td span{
  font-size: 14px;
}

.c-table__primary tbody td a{
  text-decoration: underline;
}



@media screen and (max-width: 768px) {

  .c-table__block.sp-scroll{
    overflow-y: scroll;
    height: 400px;
  }

  .c-table__primary tbody th{
    width: 60px;
    padding: 5px 5px;
    font-size: 0.813em;
  }

  .c-table__primary.company tbody th{
    width: 80px;
  }

  .c-table__primary tbody td{
    padding: 5px 5px;
    font-size: 0.813em;
  }

  .c-table__primary tbody td span{
    font-size: 12px;
  }

  .c-table__primary thead th{
    font-size: 14px;
   }

}


/* ----------------------------------------------
pankuzu
----------------------------------------------- */

.ec-productRole {
  margin-bottom: 100px;
  max-width: 1140px;
  padding-left: 40px;
  padding-right: 40px;
  margin-inline: auto;
  color: #000;
}

.ec-searchnavRole {
  margin: 0 auto;
  padding-left: 40px;
  padding-right: 40px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 1.786;
  -webkit-text-size-adjust: 100%;
  width: 100%;
  max-width: 1140px;
}

.ec-topicpath {
  padding: 0;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  font-family: "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-weight: lighter!important;
}

.ec-topicpath + .ec-topicpath{
  display: none;
}

.ec-topicpath .ec-topicpath__item {
  letter-spacing: 0.1em;
  white-space: nowrap;
  color: var(--color-bk);
}

.ec-topicpath__divider {
  margin-left: 20px;
  margin-right: 20px;
}


@media screen and (max-width: 768px) {
  .c-pankuzu__wrap{
    display: none;
  }
}



/* ----------------------------------------------
Utility
----------------------------------------------- */

.u-visuallyhidden {
  position: absolute;
  white-space: nowrap;
  width: 1px;
  height: 1px;
  overflow: hidden;
  border: 0;
  padding: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  margin: -1px;
}

.u-scrollPrevent {
  position: fixed;
  z-index: -1;
  width: 100%;
}
