@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans&display=swap');

body {
    margin: 0;
    font-family: "Segoe UI","BIZ UDPGothic","Meiryo","ヒラギノ角ゴ ProN","sans-serif";
    font-family: YuGothic,"Yu Gothic","Hiragino Sans","ヒラギノ角ゴシック","メイリオ", Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
}

* {
  box-sizing: border-box;
}

h1 {
    font-size: x-large;
    font-weight: bold;
    color:rgb(40,80,128);
    margin:20px 0 30px 0;
}

h2 {
    font-size: large;
    font-weight: bold;
}

.warning {
    color:rgb(192,0,0);
    font-weight: bold;
}

.total-amount {
  font-size:x-large;
  font-weight:bold;
  color:#70a080;
}

.edit {
	font-size: medium;
}

.doui {
    padding: 10px;
    border: 1px solid #ccc;
}
.doui li {
    margin: 8px 0 8px 0;
}

.input_item {
    border-left: 3px solid rgb(31, 111, 177);
    margin: 25px 0 25px 0;
    padding: 0 0 0 8px;
}
.input_item .caption {
    color: rgb(31, 111, 177);
    font-size: large;
    font-weight: bold;
    margin: 0 0 5px 0;
}
.input_item .caption .require {
    color: white;
    background-color: rgb(192,0,0);
    margin-left: 10px;
    padding: 2px 6px 2px 6px;
    font-size: x-small;
    border-radius: 3px;
    vertical-align: middle;
}
.input_item .subcaption {
    font-size: small;
    font-weight: bold;
    margin: 10px 0 0 0;
}

.input_item input {
    font-family: inherit;
}

.input_item input[type="text"],
.input_item input[type="email"],
.input_item input[type="tel"]  {
    font-family: inherit;
    box-sizing: border-box;
    padding: 7px;
    margin: 5px 0 5px 0;
    font-size: medium;
    width: 100%;
    border: 2px solid #888;
    border-radius: 4px;
}

.input_item input[type="text"]:focus,
.input_item input[type="email"]:focus,
.input_item input[type="tel"]:focus {
    border-color: #59b300;
    background: rgba(89, 179, 0, 0.20);
}

.input_item input[type="radio"] {
    margin: 8px;
    font-size:large;
}

.input_item input[type="checkbox"] {
    margin: 8px;
}

.input_item textarea {
    font-family: inherit;
    box-sizing: border-box;
    width: 100%;
    margin: 8px 0 8px 0;
    padding: 7px;
    font-size: large;
    border: 2px solid #888;
    border-radius: 4px;
}

.input_item textarea:focus {
    border-color: #59b300;
    background: rgba(89, 179, 0, 0.20);
}

input[type="submit"], .linkbutton {
    font-family: inherit;
    padding: 10px 30px;
    margin: 15px 0 15px 0;
    color: #fff;
    background: #0f2c4c;
    border: none;
	  border-radius: 3px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    font-weight:bold;
    font-size:1.5em;
    width: 450px;
}
input[type="submit"]:hover,
input[type="submit"]:focus,
.linkbutton:hover,
.linkbutton:focus {
  opacity: 0.7;
  filter: alpha(opacity=70);
  -ms-filter: "alpha(opacity=70)";
}
button:active,
input[type="submit"]:active,
input[type="button"]:active,
input[type="reset"]:active,
.linkbutton:active {
	position: relative;
	top: 1px;
	left: 1px;
}
input[type="submit"].conclusion,
input[type="button"].conclusion {
    background: #a80523;
}

.langswitch-noselected, .langswitch-selected {
  font-family: inherit;
  margin: 0;
  color: #fff;
  background: #0f2c4c;
  border: 2px solid #0f2c4c;
  border-radius: 3px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  font-weight:bold;
  font-size:1em;
  width: 120px;
  display: inline-block;
  line-height: 40px;
  text-align: center;
  vertical-align: middle;
}

.langswitch-noselected:hover {
  opacity: 0.7;
  filter: alpha(opacity=70);
  -ms-filter: "alpha(opacity=70)";
}

.langswitch-selected {
  background: white;
  color: #0f2c4c;
  user-select: none;
}

.input_item select {
    font-family: inherit;
    box-sizing: border-box;
    padding: 7px;
    margin: 5px 0 5px 0;
    width: 100%;
    font-size: medium;
    border: 2px solid #888;
    border-radius: 4px;
    background: #f2f2f2;
}

.input_item select.auto-width {
    width: auto;
}

table.detail {
    box-sizing: border-box;
    width: 100%;
    margin: 8px 0 8px 0;
    border:2px solid #aaa;
    border-collapse: collapse;
}

table.detail tr {
    background-color: white;
}

table.detail tr:nth-child(even) {
    background-color: #f3f3f3;
}

table.detail td {
    padding: 12px 4px 12px 4px;
}

@media (max-width: 600px) {
    input[type="submit"], .linkbutton {
        width: 100%;
    }
}

/* 2020.10.16追加 author FULL SCRATCH */
.header {
    width: 100%;
    background-color: #af1f28;
    text-align: center;
    color: #ffffff;
    position: relative;
    z-index: 99;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.18);
}
.header .header-logo img {
    padding: 10px;
}
.header nav ul {
    margin: 1em 0;
    list-style: none;
    list-style-image: none;
    padding: 0;
}
.container {
    width: 92%;
    max-width: 1180px;
    margin: 3em auto;
    min-height: 50vh;
}
.footer {
    width: 100%;
    margin: 0;
    background-color: #374149;
    padding: 20px 10px 10px;
    text-align: center;
    color: #ffffff;
    font-size: 0.95em;
    font-family: 'Josefin Sans',YuGothic,"Yu Gothic","Hiragino Sans","ヒラギノ角ゴシック","メイリオ", Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
}
.footer a {
    font-size: 1.2em;
    color: #ffffff;
    text-decoration: none;
    padding: 5em 0;
}
.footer p {
    padding: 0;
    font-size: 13.5px;
    opacity: 0.7;
}

/* 2024.6.24 クレジットカード決済　同意文 */
.agreement-base {
  text-align: center;
  margin-bottom: 20px;
}
.agreement-wrapper {
  padding: 10px;
}
.agreement-content {
  border-radius: 5px;
  border: 2px solid #888;
  margin-top:5px;
  padding: 10px;
  overflow: hidden;
}
.agreement-base summary {
  margin: auto;
}

/* 2024.7.5 snowland add address form*/
.address-form {
  display: flex;
  align-items: center;
}
.address-form .caption {
  font-size: 0.85rem;
}
.input_item .address-form input[type="text"] {
  width: calc(100% - 125px);
}
.address-label {
  width: 125px;
}

/* 2024.7.5 snowland add smartphone layout */
/* デジタル庁のブレイクポイントに合わせる */
@media only screen and (max-width: 520px) {
  .address-form {
    flex-direction: column;
    align-items: start;
  }
  .input_item .address-form input[type="text"] {
    width: 100%;
  }
}

@media only screen and (max-width: 768px) {
.header {
    height: 65px;
}
.header .header-logo img {
    height: 62px;
}
  /*ナビ ハンバーガーメニュー*/
#nav-drawer {
  position: relative;
  text-align: right;
  display: block;
  margin-top:-50px;
  padding-right:1em;
}
/*チェックボックス等は非表示に*/
.nav-unshown {
  display:none;
}

/*アイコンのスペース*/
#nav-open {
  display: inline-block;
  width: 30px;
  height: 22px;
  vertical-align: middle;
}

/*ハンバーガーアイコン*/
#nav-open span, #nav-open span:before, #nav-open span:after {
  position: absolute;
  height: 3px;/*線の太さ*/
  width: 25px;/*長さ*/
  border-radius: 3px;
  background: #fff;
  display: block;
  content: '';
  cursor: pointer;
}
#nav-open span:before {
  bottom: -8px;
}
#nav-open span:after {
  bottom: -16px;
}

/*閉じる用の薄黒カバー*/
#nav-close {
  display: none;/*はじめは隠しておく*/
  position: fixed;
  z-index: 99;
  top: 0;/*全体に広がるように*/
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0;
  transition: .3s ease-in-out;
}

/*中身*/
#nav-content {
  overflow: auto;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;/*最前面に*/
  width: 90%;/*右側に隙間を作る（閉じるカバーを表示）*/
  max-width: 330px;/*最大幅（調整してください）*/
  height: 100%;
  background: #fff;/*背景色*/
  transition: .3s ease-in-out;/*滑らかに表示*/
  -webkit-transform: translateX(-105%);
  transform: translateX(-105%);/*左に隠しておく*/
}

/*チェックが入ったらもろもろ表示*/
#nav-input:checked ~ #nav-close {
  display: block;/*カバーを表示*/
  opacity: .5;
}

#nav-input:checked ~ #nav-content {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);/*中身を表示（右へスライド）*/
  box-shadow: 6px 0 25px rgba(0,0,0,.15);
}

/*ナビ*/
  .header nav {
    display: block;
    text-align: left;
    font-weight: bold;
  }
  .header nav li a {
  display: inline-block;
  padding: 0 9px;
  font-size: 14px;
  font-weight: bold;
  vertical-align: middle;
  line-height: 30px;
  text-decoration: none;
  color: #252525;
}
  .header nav li a:hover {
  opacity: 1;
  text-decoration: none;color: #252525;
}
  /*階層メニュー*/
  .header nav .sub-menu {
    margin: 0;
  }
  .header nav .sub-menu li {
    padding-left: 1em;
    font-weight: normal;
  }
  .header nav .sub-menu li a {
    display: block;
    height: auto;
    line-height: 1.5;
    padding: 10px;
    font-size: 13.5px;
    font-weight: normal;
    vertical-align: middle;
  }
  .header nav .sub-menu li a:before {
    content: "〉 ";
    font-weight: bold;
    color: #ababab;
  }
}
@media only screen and (min-width: 769px) {
  /*ナビ 769px*/
  #nav-open,
  .nav-unshown {
    display:none;
  }
  .header nav,
  .header nav ul,
  .header nav li,
  .header nav li a {
    display: inline-block;
    vertical-align: top;
    margin: 0;
  }
  .header nav {
    display: block;
    float: none;
    text-align: center;
    font-weight: bold;
  }
  .header nav li {
    position: relative;
  }
  .header nav li a {
    height: auto;
    padding: 10px 15px 15px;
    font-size: 15px;
    line-height: 1.5;
    color: #ffffff;
    text-decoration: none;
  }
  .header nav li i {
    opacity: 0.7;
    padding-right: 2px;
  }
  .header nav .current-menu-item a {
    opacity: 1;
  }
  .header nav li a:hover {
    text-decoration: none;
  }
  .header nav li::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    content: "";
    transition: transform 0.3s ease-in-out;
    transform: scale(0, 1);
    transform-origin: left top;
  }
  /*階層メニュー*/
  .header nav .sub-menu {
    display: none;
    position: absolute;
    left: 0;
    top: 100%;
    width: 180px;
    color: #fff;
    background-color: #545454;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.22);
    transition: 0.3s ease-in-out;
  }
  .header nav li:hover .sub-menu {
    display: block;
  }
  .header nav .sub-menu li {
    display: block;
    border-bottom: solid 1px #7b7b7b;
  }
  .header nav .sub-menu li a {
    display: block;
    height: auto;
    line-height: 1.5;
    padding: 10px;
    font-size: 13.5px;
    vertical-align: middle;
    text-align: left;
    color: rgba(255, 255, 255, 0.86);
  }
  .header nav .sub-menu li a:hover {
    background: gray; /*ホバー時のメニューの背景色*/
  }
  .header nav .sub-menu li:hover:after {
    content: none;
  }
}
