@charset "utf-8";

/*-------------------------------------------------------
 フォントサイズ
--------------------------------------------------------*/
/* variable fonts */
.fs10 { font-size: 10px; }
.fs11 { font-size: 11px; }
.fs12 { font-size: 12px; }
.fs13 { font-size: 13px; }
.fs14 { font-size: 14px; }
.fs16 { font-size: 16px; }
.fs18 { font-size: 18px; }
.fs20 { font-size: 20px; }
.fs22 { font-size: 22px; }
.fs24 { font-size: 24px; }
.fs25 { font-size: 25px; }
.fs28 { font-size: 28px; }
.fs30 { font-size: 30px; }
.fs32 { font-size: 32px; }
.fs34 { font-size: 34px; }
.fs36 { font-size: 36px; }
.fs40 { font-size: 40px; }
.fs42 { font-size: 42px; }
.fs46 { font-size: 46px; }
.fs48 { font-size: 48px; }
.fs50 { font-size: 50px; }
.fs56 { font-size: 56px; }
.fs64 { font-size: 64px; }
.fs72 { font-size: 72px; }

@media (max-width: 768px) {
  .sm-fs10 { font-size: 10px; }
  .sm-fs11 { font-size: 11px; }
  .sm-fs12 { font-size: 12px; }
  .sm-fs13 { font-size: 13px; }
  .sm-fs14 { font-size: 14px; }
  .sm-fs16 { font-size: 16px; }
  .sm-fs18 { font-size: 18px; }
  .sm-fs20 { font-size: 20px; }
  .sm-fs22 { font-size: 22px; }
  .sm-fs24 { font-size: 24px; }
  .sm-fs28 { font-size: 28px; }
  .sm-fs32 { font-size: 32px; }
  .sm-fs34 { font-size: 34px; }
  .sm-fs36 { font-size: 36px; }
  .sm-fs42 { font-size: 42px; }
  .sm-fs46 { font-size: 46px; }
  .sm-fs48 { font-size: 48px; }
  .sm-fs56 { font-size: 56px; }
  .sm-fs64 { font-size: 64px; }
}

@media (max-width: 375px) {
  .sm-fs10 { font-size: 2.525vw; }
  .sm-fs11 { font-size: 2.778vw; }
  .sm-fs12 { font-size: 3.03vw; }
  .sm-fs13 { font-size: 3.283vw; }
  .sm-fs14 { font-size: 3.535vw; }
  .sm-fs16 { font-size: 4.04vw; }
  .sm-fs18 { font-size: 4.545vw; }
  .sm-fs20 { font-size: 5.051vw; }
  .sm-fs22 { font-size: 5.556vw; }
  .sm-fs24 { font-size: 6.061vw; }
  .sm-fs26 { font-size: 6.566vw; }
  .sm-fs28 { font-size: 7.071vw; }
  .sm-fs30 { font-size: 7.576vw }
  .sm-fs32 { font-size: 8.081vw; }
  .sm-fs34 { font-size: 8.586vw; }
  .sm-fs36 { font-size: 9.091vw; }
  .sm-fs42 { font-size: 10.606vw; }
  .sm-fs46 { font-size: 11.616vw; }
  .sm-fs48 { font-size: 12.121vw; }
  .sm-fs56 { font-size: 14.141vw; }
  .sm-fs64 { font-size: 16.162vw; }
}

/*-------------------------------------------------------
 マージン　パディング
--------------------------------------------------------*/
.m-auto { margin-inline: auto; }
.mt0 { margin-top: 0; } .pt0 { padding-top: 0; }
.mt5 { margin-top: 5px; } .pt5 { padding-top: 5px; }
.mt10 { margin-top: 10px; } .pt10 { padding-top: 10px; }
.mt15 { margin-top: 15px; } .pt15 { padding-top: 15px; }
.mt20 { margin-top: 20px; } .pt20 { padding-top: 20px; }
.mt25 { margin-top: 25px; } .pt25 { padding-top: 25px; }
.mt30 { margin-top: 30px; } .pt30 { padding-top: 30px; }
.mt35 { margin-top: 35px; } .pt35 { padding-top: 35px; }
.mt40 { margin-top: 40px; } .pt40 { padding-top: 40px; }
.mt45 { margin-top: 45px; } .pt45 { padding-top: 45px; }
.mt50 { margin-top: 50px; } .pt50 { padding-top: 50px; }
.mt60 { margin-top: 60px; } .pt60 { padding-top: 60px; }
.mt70 { margin-top: 70px; } .pt70 { padding-top: 70px; }
.mt80 { margin-top: 80px; } .pt80 { padding-top: 80px; }
.mt90 { margin-top: 90px; } .pt90 { padding-top: 90px; }
.mt100 { margin-top: 100px; } .pt100 { padding-top: 100px; }
.mt120 { margin-top: 120px; } .pt120 { padding-top: 120px; }
.mt140 { margin-top: 140px; } .pt140 { padding-top: 140px; }
.mt160 { margin-top: 160px; } .pt160 { padding-top: 160px; }
.mt180 { margin-top: 180px; } .pt180 { padding-top: 180px; }
.mt210 { margin-top: 210px; } .pt210 { padding-top: 210px; }
.mt220 { margin-top: 220px; } .pt220 { padding-top: 220px; }

@media (max-width: 768px) {
  .sm-mt0 { margin-top: 0; } .sm-pt0 { padding-top: 0; }
  .sm-mt5 { margin-top: 5px; } .sm-pt5 { padding-top: 5px; }
  .sm-mt10 { margin-top: 10px; } .sm-pt10 { padding-top: 10px; }
  .sm-mt15 { margin-top: 15px; } .sm-pt15 { padding-top: 15px; }
  .sm-mt20 { margin-top: 20px; } .sm-pt20 { padding-top: 20px; }
  .sm-mt25 { margin-top: 25px; } .sm-pt25 { padding-top: 25px; }
  .sm-mt30 { margin-top: 30px; } .sm-pt30 { padding-top: 30px; }
  .sm-mt35 { margin-top: 35px; } .sm-pt35 { padding-top: 35px; }
  .sm-mt40 { margin-top: 40px; } .sm-pt40 { padding-top: 40px; }
  .sm-mt45 { margin-top: 45px; } .sm-pt45 { padding-top: 45px; }
  .sm-mt50 { margin-top: 50px; } .sm-pt50 { padding-top: 50px; }
  .sm-mt60 { margin-top: 60px; } .sm-pt60 { padding-top: 60px; }
  .sm-mt70 { margin-top: 70px; } .sm-pt70 { padding-top: 70px; }
  .sm-mt80 { margin-top: 80px; } .sm-pt80 { padding-top: 80px; }
  .sm-mt90 { margin-top: 90px; } .sm-pt90 { padding-top: 90px; }
  .sm-mt120 { margin-top: 120px; } .sm-pt120 { padding-top: 120px; }
}

.mb0 { margin-bottom: 0; } .pb0 { padding-bottom: 0; }
.mb5 { margin-bottom: 5px; } .pb5 { padding-bottom: 5px; }
.mb10 { margin-bottom: 10px; } .pb10 { padding-bottom: 10px; }
.mb15 { margin-bottom: 15px; } .pb15 { padding-bottom: 15px; }
.mb20 { margin-bottom: 20px; } .pb20 { padding-bottom: 20px; }
.mb25 { margin-bottom: 25px; } .pb25 { padding-bottom: 25px; }
.mb30 { margin-bottom: 30px; } .pb30 { padding-bottom: 30px; }
.mb35 { margin-bottom: 35px; } .pb35 { padding-bottom: 35px; }
.mb40 { margin-bottom: 40px; } .pb40 { padding-bottom: 40px; }
.mb45 { margin-bottom: 45px; } .pb45 { padding-bottom: 45px; }
.mb50 { margin-bottom: 50px; } .pb50 { padding-bottom: 50px; }
.mb60 { margin-bottom: 60px; } .pb60 { padding-bottom: 60px; }
.mb70 { margin-bottom: 70px; } .pb70 { padding-bottom: 70px; }
.mb80 { margin-bottom: 80px; } .pb80 { padding-bottom: 80px; }
.mb100 { margin-bottom: 100px; } .pb100 { padding-bottom: 100px; }
.mb120 { margin-bottom: 120px; } .pb120 { padding-bottom: 120px; }
.mb140 { margin-bottom: 140px; } .pb140 { padding-bottom: 140px; }

@media (max-width: 768px) {
  .sm-mb0 { margin-bottom: 0; } .sm-pb0 { padding-bottom: 0; }
  .sm-mb5 { margin-bottom: 5px; } .sm-pb5 { padding-bottom: 5px; }
  .sm-mb10 { margin-bottom: 10px; } .sm-pb10 { padding-bottom: 10px; }
  .sm-mb15 { margin-bottom: 15px; } .sm-pb10 { padding-bottom: 15px; }
  .sm-mb20 { margin-bottom: 20px; } .sm-pb20 { padding-bottom: 20px; }
  .sm-mb25 { margin-bottom: 25px; } .sm-pb25 { padding-bottom: 25px; }
  .sm-mb30 { margin-bottom: 30px; } .sm-pb30 { padding-bottom: 30px; }
  .sm-mb35 { margin-bottom: 35px; } .sm-pb35 { padding-bottom: 35px; }
  .sm-mb40 { margin-bottom: 40px; } .sm-pb40 { padding-bottom: 40px; }
  .sm-mb45 { margin-bottom: 45px; } .sm-pb45 { padding-bottom: 45px; }
  .sm-mb50 { margin-bottom: 50px; } .sm-pb50 { padding-bottom: 50px; }
  .sm-mb60 { margin-bottom: 60px; } .sm-pb60 { padding-bottom: 60px; }
  .sm-mb70 { margin-bottom: 70px; } .sm-pb70 { padding-bottom: 70px; }
  .sm-mb80 { margin-bottom: 80px; } .sm-pb80 { padding-bottom: 80px; }
  .sm-mb100 { margin-bottom: 100px; } .sm-pb100 { padding-bottom: 100px; }
  .sm-mb120 { margin-bottom: 120px; } .sm-pb120 { padding-bottom: 120px; }
}

/*-------------------------------------------------------
 PC・スマホ非表示
--------------------------------------------------------*/
.pcnone { display: none !important; }
@media (max-width : 768px){
.spnone { display: none !important; }
.pcnone { display: block !important; }
}
.fw-bold { font-weight: 700; }
.fw-semi-bold { font-weight: 600; }
.fw-medium { font-weight: 500; }
.fw-normal { font-weight: 400; }
.text-center { text-align: center; }
.text-start { text-align: left; }
.text-end { text-align: right; }
.text-uppercase { text-transform: uppercase; }
.d-inline-block { display: inline-block; }
.d-block { display: block; }
.d-flex { display: flex; }
.d-grid { display: grid; }
/*-------------------------------------------------------
 Flex Box
--------------------------------------------------------*/
.box-row-wrap      { -webkit-flex-flow: row wrap; -ms-flex-flow: row wrap; flex-flow: row wrap; }
.box-start         { -webkit-justify-content: flex-start; justify-content: flex-start; }
.box-end           { -webkit-justify-content: flex-end; justify-content: flex-end; }
.box-center        { -webkit-justify-content: center; justify-content: center; }
.box-space-around  { -webkit-justify-content: space-around; justify-content: space-around; }
.box-space-between { -webkit-justify-content: space-between; justify-content: space-between; }
.box-top           { -webkit-align-items: flex-start; align-items: flex-start; -webkit-box-align: start; -ms-flex-align: start; }
.box-middle        { -webkit-align-items: center; align-items: center; -webkit-box-align: center; -ms-flex-align: center; }
.box-bottom        { -webkit-align-items: flex-end; align-items: flex-end; -webkit-box-align: end; -ms-flex-align: end; }

/*-------------------------------------------------------
Vertical Align
--------------------------------------------------------*/
.v-middle     { vertical-align: middle; }
.v-top        { vertical-align: top; }
.v-txt-top    { vertical-align: text-top; }
.v-baseline   { vertical-align: baseline; }
.v-bottom     { vertical-align: bottom; }
