@charset "utf-8";
/*************************************************

  Common 2024.08
  #overlay:z-index:1100
  modal:z-index:1000

**************************************************/

/*************************************************
  root
**************************************************/
:root{
  --root-font-size: 16;
  --font-size: 21;
  --font-size-sp: 19;
  --font-bold: 700;
  --line-height : 1.5;

  --color-black: #3E4048;
  --color-red: #FF0700;
  --color-blue: #3E4C70;
  --color-blue-rgb: 62, 76, 112;
  --color-cream:#FFF0E9;
  --color-gold: #B28B66;

  --body-color: #fff;
  --link-color: var(--color-red);

  --font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  --font-family2: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Helvetica Neue", Arial, "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;

  /* --color-blue: #2D74B5;
  --color-green: #4A873B;
  --color-gray: #E8E8E8;
  --color-gray2: #E2E2E2; */

  --break-pc: 840;
  --break-tab: 768;
  --break-sp: 414;
}


/*************************************************
  reset
**************************************************/
*,::before,::after{box-sizing:border-box;border-style:solid;border-width:0}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0}main{display:block}p,table,blockquote,address,pre,iframe,form,figure,dl{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;margin:0}ul,ol{margin:0;padding:0;list-style:none}dt{font-weight:700}dd{margin-left:0}hr{box-sizing:content-box;height:0;overflow:visible;border-top-width:1px;margin:0;clear:both;color:inherit}pre{font-family:monospace,monospace;font-size:inherit}address{font-style:inherit}a{background-color:transparent;text-decoration:none;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:inherit}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}svg,img,embed,object,iframe{vertical-align:bottom}button,input,optgroup,select,textarea{vertical-align:middle;color:inherit;font:inherit;background:transparent;padding:0;margin:0;border-radius:0;text-align:inherit;text-transform:inherit}button,[type="button"],[type="reset"],[type="submit"]{cursor:pointer}button:disabled,[type="button"]:disabled,[type="reset"]:disabled,[type="submit"]:disabled{cursor:default}:-moz-focusring{outline:auto}select:disabled{opacity:inherit}option{padding:0}fieldset{margin:0;padding:0;min-width:0}legend{padding:0}progress{vertical-align:baseline}textarea{overflow:auto}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type="number"]{-moz-appearance:textfield;appearance: inherit;}label[for]{cursor:pointer}details{display:block}summary{display:list-item}[contenteditable]:focus{outline:auto}table{border-color:inherit;border-collapse:collapse}caption{text-align:left}td,th{vertical-align:top;padding:0}th{text-align:left;font-weight:400;}


/*************************************************
  Font / Font Opotion
**************************************************/
html{font-size: 100%;-webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;text-size-adjust: 100%; -webkit-font-smoothing: antialiased; word-break: normal; word-wrap: break-word; overflow-wrap : break-word;}
body{
  font-family: var(--font-family);
  font-weight: 400;font-style: normal;
  font-size: calc(var(--font-size) / var(--root-font-size) * 1rem);background-color: var(--body-color);color: var(--color-black);line-height: var(--line-height); text-align: left;position: relative;
}
/* .ft-serif{font-family: "Noto Serif JP", "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;}
.ft-en{font-family: "EB Garamond", serif;} */
body.scrolling{overflow: hidden;}

.attention{color: var( --color-red);}
.t-center{text-align: center;}
.t-right{text-align: right;}

.para > *:not(:last-child){margin-bottom: 1em;}

img{width: 100%;}

@media screen and (max-width: 768px) {
  body{font-size: calc(var(--font-size-sp) / var(--root-font-size) * 1rem);}
}


/*************************************************
  animation
**************************************************/
/* .js-anim{opacity: 0;} */
.fadein:not(img){
  animation-name: fadein;
  animation-timing-function: ease;
  animation-duration:1.0s;
  animation-iteration-count: 1;
  animation-fill-mode:forwards;
}
img.fadein.load{
  animation-name: fadein;
  animation-timing-function: ease;
  animation-duration:1.0s;
  animation-iteration-count: 1;
  animation-fill-mode:forwards;
}
.delay05{
  animation-delay: 0.5s;
}
@keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}


/*************************************************
  ※list
**************************************************/
.attention-lists > li{text-align: left;text-indent: -1em;padding-left: 1em;}
.attention-lists > li a:not(.btn){display: inline;}
.attention-lists > li::before{content: "※";}
.attention-lists.red{color: var( --color-red);}
.attention-lists.sm{font-size: 75%;}

.note{text-indent: -1em;padding-left: 1em;display: block;}
.note a:not(.btn){display: inline;}
.note::before{content: "※";}


/*************************************************
Link
**************************************************/

a{color:var(--link-color); text-decoration: none;transition: all 0.6s;display: inline-block;}
a.underline{text-decoration: underline;}
a:not(.btn):hover {text-decoration: underline;}
button { display: block; border: none; background-color: transparent; cursor: pointer; }
@media screen and (min-width: 480px) {
	a[href^="tel:"]{pointer-events: none;}
}


/*************************************************
  ボタン
**************************************************/

.btn-block{text-align: center;display: flex;justify-content: center;align-items: flex-start;}
.btn-block > *:not(:last-child){margin-right: 1em;}
.btn-block.align-left{text-align: left;margin: 0;justify-content: flex-start;}
.btn-block.column{flex-direction: column;align-items: center;}
.btn-block.column > *:not(:last-child){margin-right: 0;margin-bottom: 1em;}

/*input[type="submit"].btn{padding-bottom: 0.1em;}縦中心がずれるのを調整*/

/*角丸ボタン*/
.btn{
  appearance: none;/*旧いiOS*/
  -webkit-appearance: none;/*旧いiOS*/
  display: inline-flex;justify-content: center;align-items: center;
  border-radius: 5px;
  padding: 1em;
  text-decoration: none;
  position: relative;
  background-color: var(--color-blue);
  color: #fff;
  line-height: 1;
  font-weight: var(--font-bold);
  cursor: pointer;
  width: 100%;
  max-width: 300px;
  text-align: center;
}
.btn.sm{font-size: 66.6666%;padding: 0.5em 1.5em;width: auto;}

/*テキスト幅*/
.btn.fit{width: fit-content;padding: 2em 2em 2.1em;}
.btn.fit.ico-af{padding-right: 4em;}
.btn.fit.ico-bf{padding-left: 4em;}

/*白ボタン*/
.btn.white{
  background-color: #fff;
  color: var(--color-blue);
  border: 3px solid var(--color-blue);
}

/*丸型ボタン*/
.btn.circle{
  border-radius: 9999px;
  border-radius: 8px;
}

/*hover*/
.btn:not(:disabled):hover{transition: .6s;opacity: .8;color: #fff;}
.btn.white:not(:disabled):hover{color: var(--color-blue);}


/*************************************************
Back to Top
**************************************************/

/* #backtop{
  display: inline-block;
  position: fixed;right: 30px;bottom: 30px;
  width: 70px;height: 79px;
  background: url(../images/btn_backtop.svg) 0 0 no-repeat;
  background-size: contain;
  opacity: 0.6;
  overflow: hidden;text-indent: -100vw;
}
#backtop:hover{opacity: 1;}

@media screen and (max-width: 768px) {
  #backtop{display: none;}
} */


/*************************************************
Table Base
**************************************************/
table{
  border-bottom: 1px solid var(--border-green);
  width: 100%;
}
table th,
table td{
  border-left: 1px solid var(--border-green);
  border-top: 1px solid var(--border-green);
  padding: 1em;
}
table th{
  background-color: var(--color-blue);
  color: #fff;
}
table td{
  background-color: #fff;
  border-right: 1px solid var(--border-green);
  vertical-align: middle;
}

@media screen and (max-width: 768px) {
  table tr{display: flex;flex-direction: column;}
  .form table tr:not(:last-child){margin-bottom: 10px;border-bottom: 1px solid var(--border-green);}
}


/*************************************************
/Form table base
**************************************************/

/*バリデーションテキスト*/
.error{color: var( --color-red);}



/*************************************************
Form parts
**************************************************/

input,textarea,button,select{
  background-color: #fff; /*android 黒になるのを防ぐ*/
  cursor: pointer;
  line-height: 1;
  cursor: pointer;
}
input:not(.btn),textarea,button,select{
  padding: 10px 8px;
}
/* input:not(.btn),textarea,button{
  border: 1px solid var(--color-blue);
  width: 100%;
  border-radius: 5px;
} */
input:not(.btn):focus,
textarea:focus{/*outline: none;*/background-color: rgb(255, 255, 0, 0.1);}

input[type="checkbox"],
input[type="radio"]{width: 1em;height: 1em;}
.label-box{
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  position: relative;
}
.label-box input[type="radio"],
.label-box input[type="checkbox"]{margin-right: 0.5em;}

/* form .btn{max-width: 360px;width: 100%;padding: 1em;} */
input:disabled{
  background-color: rgba(var(--color-blue-rgb), .5);
  cursor: initial;
}

@media screen and (max-width: 768px) {
  input[type="checkbox"]{width: 1em;height: 1em;}
}

/*input レイアウト*/
.label-box.check{display: inline-flex;flex-wrap: wrap;justify-content: flex-start;}
.label-box.check input[type="radio"],.label-box.check input[type="checkbox"]{display: none;}
.label-box.check input[type="radio"] + label,
.label-box.check input[type="checkbox"] + label{padding-left: 2em;position: relative;}

/*customparts- checkbox, radiobutton*/
.label-box.check input[type="radio"] + label::before,
.label-box.check input[type="checkbox"] + label::before{
  background: #fff;
  border: 2px solid var(--color-blue);
  content: "";
  display: block;
  width: 1.5em;
  height: 1.5em;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.label-box.check input[type="radio"] + label::after,
.label-box.check input[type="checkbox"] + label::after{
  border-right: 3px solid var(--color-blue);
  border-bottom: 3px solid var(--color-blue);
  content: "";
  display: block;
  width: 0.6em;
  height: 1em;
  opacity: 0;
  position: absolute;
  top: calc(50% - 0.15em);
  left: 0.45em;
  transform: translateY(-50%) rotate(45deg);
}
label.check > input{display: none;}
.label-box.check input[type="radio"]:checked + label::after,
.label-box.check input[type="checkbox"]:checked + label::after{opacity: 1;}
.label-box.check.other input[type="text"]{width: 15em;margin-left: 1em;}

/* textarea,
input[type="text"],
select{
  border:2px solid var(--color-blue);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
select{
  padding-right: 2em;
  margin-top: 0.5em;
} */


/*customparts- selectbox*/
/* select::-ms-expand {display: none;}
.select-wrap{position: relative;display: inline-block;}
.select-wrap:after {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 14px 9px 0 9px;
    border-color: var(--color-blue) transparent transparent transparent;
    display: block;
    content: "";
    position: absolute;
    top:50%;
    right: 10px;
} */

/*************************************************
Modal
**************************************************/

.modal-open{cursor: pointer;}
.modal{
  position: fixed;top: 0;left: 0;
  width: 100%;height: 100%;
  text-align: center;
  background: rgba(0,0,0,50%);opacity: 0;
  overflow: auto;visibility: hidden;
  transition: .3s;
  box-sizing: border-box;
  z-index: 999;
}
.modal:before{
  content: "";
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  margin-left: -0.2em;
}
.modal.is-active{
  opacity: 1;
  visibility: visible;
}
.modal-container{
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 90%;
  height: auto;
  max-width: 900px;
}
.modal-close{
  position: absolute;top: -10px;right: -10px;
  display: flex;align-items: center;justify-content: center;
  width: 40px;height: 40px;
  color: #fff;
  background: #000;border-radius: 50%;
  cursor: pointer;
  z-index: 1;
  line-height: 1;
}
.modal-content{
  text-align: left;
  line-height: 1.8;
  height: 100%;
  position: relative;
}
.modal-content p{
  margin: 1em 0;
}
.modaldetail{
  background: #fff;
  padding: 70px 20px;
  margin: 0 auto;
  height: 100%;
  border-radius: 10px;
  border: 3px solid var(--color-blue);
}

.modaldatailblock{display: none;}
.modal-title{font-weight: bold;text-align: center;margin-bottom: 1em;}
.modal-content .table-block{width: 100%;height: 85%;}


/*************************************************
Margin
**************************************************/
.mt00 { margin-top:  0  }     .pt00 { padding-top:  0  }
.mt10 { margin-top: 10px}     .pt10 { padding-top: 10px}
.mt20 { margin-top: 20px}     .pt20 { padding-top: 20px}
.mt30 { margin-top: 30px}     .pt30 { padding-top: 30px}
.mt40 { margin-top: 40px}     .pt40 { padding-top: 40px}
.mt80 { margin-top: 50px}     .pt80 { padding-top: 80px}

.mr00 { margin-right:  0  }   .pr00 { padding-right:  0  }
.mr5 { margin-right: 5px}     .pr5 { padding-right: 5px}
.mr10 { margin-right: 10px}   .pr10 { padding-right: 10px}
.mr20 { margin-right: 20px}   .pr20 { padding-right: 20px}
.mr30 { margin-right: 30px}   .pr30 { padding-right: 30px}
.mr40 { margin-right: 40px}   .pr40 { padding-right: 40px}

.mb00 { margin-bottom:  0  }  .pb00 { padding-bottom:  0  }
.mb10 { margin-bottom: 10px}  .pb10 { padding-bottom: 10px}
.mb20 { margin-bottom: 20px}  .pb20 { padding-bottom: 20px}
.mb30 { margin-bottom: 30px}  .pb30 { padding-bottom: 30px}
.mb40 { margin-bottom: 40px}  .pb40 { padding-bottom: 40px}
.mb50 { margin-bottom: 50px}  .pb50 { padding-bottom: 50px}
.mb120 { margin-bottom: 120px}  .pb120 { padding-bottom: 120px}

.ml00 { margin-left:  0  }    .pl00 { padding-left:  0  }
.ml10 { margin-left: 10px}    .pl10 { padding-left: 10px}
.ml20 { margin-left: 20px}    .pl20 { padding-left: 20px}
.ml30 { margin-left: 30px}    .pl30 { padding-left: 30px}
.ml40 { margin-left: 40px}    .pl40 { padding-left: 40px}


/*************************************************
  sp-pc表示切替
**************************************************/
.sp{display: none;}
@media screen and (max-width: 768px) {
  .pc{display: none;}
  .sp{display: inline-block;}
  br.sp{display: block;}
}


/*************************************************
  アイコン
**************************************************/

/*前アイコン*/
.ico-bf{display: inline-flex;align-items: center;}
.ico-bf::before{
  content:"";
  width: 1em;
  height: 1.5em;
  display: inline-block;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  margin-right: 0.5em;
  flex-shrink: 0;
}

/*後ろアイコン*/
.ico-af{display:inline-flex; align-items: center; word-break: break-all;}
.ico-af::after{
  content:"";
  width: 1em;
  height: 1.5em;
  display: inline-block;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  margin-left: 0.5em;
  flex-shrink: 0;
  position: absolute;
  right: 1em;
  top: 50%;transform: translate(0, -50%);
}

/* .ico-af.arrow::after{background: url(../images/ico_arrow-right.svg) center center no-repeat;background-size: contain;} */

/*外部リンク*/
a[target="_blank"]:not(.no-extra-mark):not(.cover){position: relative;align-items: center;word-break: break-all;}
a[target="_blank"]:not(.no-extra-mark):not(.cover)::after{
  display:inline-flex; align-items: center; word-break: break-all;
  content:"";
  width: 1em;
  height: 1em;
  display: inline-block;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  margin-left: 0.5em;
  flex-shrink: 0;
  background: url("../images/ico_external.svg") no-repeat center center;
  background-size: contain;
  margin-left:0.3em;margin-right: 0.3em;
}
a[target="_blank"]:not(.no-extra-mark ):not(.cover).extra-r-up::after,
a[target="_blank"]:not(.no-extra-mark ):not(.cover).btn::after{
  position: absolute;right: 0.5em; top: 0.5em;
}

a.black{color: var(--color-black);}

/* a[target="_blank"].ico-white:not(.no-extra-mark)::after{
  background: url("../images/ico_external-w.svg") no-repeat center center;
  background-size: contain;
} */


/*外部リンクcover版*/
a[target="_blank"].cover:not(.no-extra-mark){width: 100%;height: 100%;display: inline-block;position: relative;}
a[target="_blank"].cover:not(.no-extra-mark) > span{
  display: inline-flex;position: absolute;align-items: center;bottom: 0;left: 0;
  background-color: rgba(0, 0, 0, .5);
  color: #fff;
  padding: 0.75em 1em;
  width: 100%;
  line-height: 1.5;
}
a[target="_blank"].cover:not(.no-extra-mark) > span::after{
  display:inline-flex; align-items: center; word-break: break-all;
  content:"";
  width: 1em;
  height: 1em;
  display: inline-block;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  margin-left: 0.5em;
  flex-shrink: 0;
  background: url("../images/ico_external.svg") no-repeat center center;
  background-size: contain;
  margin-left:1em;margin-right: 0.3em;
}
a[target="_blank"].cover:not(.no-extra-mark ).extra-r-up  > span::after,
a[target="_blank"].cover:not(.no-extra-mark ).btn  > span::after{
  position: absolute;right: 0.5em; top: 0.5em;
}

/* a[target="_blank"].cover.ico-white:not(.no-extra-mark) > span:after{
  background: url("../images/ico_external-w.svg") no-repeat center center;
  background-size: contain;
} */


/*************************************************
  Loading overlay
**************************************************/

/* #overlay{
  position: absolute;top: 0; left: 0;
  height: 100%; width: 100%;
  background: #fff;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
}

#overlay::after {
  content:"";
  display: inline-block;
  vertical-align: middle;
  color: #666;
  line-height: 1;
  width: 3vw;
  height: 3vw;
  border: 0.5vw solid rgba(102, 102, 102, 0.3);
  border-top-color: currentColor;
  border-radius: 50%;
  box-sizing: border-box;
  animation: rotate 1s linear infinite;
} */

@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}


/*************************************************
  flex
**************************************************/

.flex{display: flex;align-items: center;justify-content: space-between;}
.flex.center{justify-content: space-between;}
.flex.column{flex-direction: column;}

@media screen and (max-width: 768px) {
  .flex{flex-direction: column;}
  .flex > *{width: 100% !important;}
}


/*************************************************
  decoration
**************************************************/
.bg-border-double{position: relative;text-align: center;}
.bg-border-double span {
  background-color: var(--color-gray);
  padding: 0 1em;
  max-width: 90%;
  display: inline-block;
}
.bg-border-double::before {
  content: "";
  display: block;
  height: 6px;
  width: 100%;
  border-top: 1px solid var(--color-black);
  border-bottom: 1px solid var(--color-black);
  position: absolute;
  left: 0;
  top: 50%;
  z-index: -1;
}
