/*--------------------------------------------------------------
basic(基本必ずあるもの)
   変数
   全体
   背景
   段落
   リンク
   ロゴ
      logo
   見出し
      title, subtitle, h1, h2, h3
   フォーム
      input, text, textarea, button, select
      プレースホルダ
   ボタン
      btn, btn-success, btn-danger, btngroup, menubtn, header_buttons
   ラベル
      label
   検索
      search
   画像
      img, img-center
   テキスト
      text-center
   テーブル
      .table
   リスト
      .list li

  --------------------------------------------------------------*/
/*--------------
  変数
--------------*/
:root {
  --main-color: #ccc;
}

/*--------------
  全体
--------------*/
@font-face {
  /* font-family: "sea_0";
  src: url("../fonts/sea_0.ttf"); */
}

@font-face {
  /* font-family: "rounded-mgenplus-1cp-regular";
  src: url("../fonts/rounded-mgenplus-1cp-regular.ttf"); */
}

*,
*::after,
*::before {
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

html {
  /* IE用 */
  scrollbar-track-color: transparent;
  scrollbar-3dlight-color: #e0ccd1;
  scrollbar-arrow-color: #e0ccd1;
  scrollbar-darkshadow-color: #e0ccd1;
  scrollbar-face-color: #fff;
  scrollbar-highlight-color: transparent;
  scrollbar-shadow-color: transparent;
  /* ベースフォント */
  font-size: 62.5%;
}

body {
  color: #333333;
  margin: 0;
  padding: 0;
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3",
    "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic",
    sans-serif;
  /* 全体調整フォント emはchromeバグ対策 */
  font-size: 1.4em;
  -webkit-text-size-adjust: 100%;
  width: 100%;
  height: 100%;
  /* background-color: #f5f5f5; */
}

/* --------------
  背景
-------------- */
.background-wrapper {
  background-image: url('../images/body/common/bg.png');
  background: repeat url('../images/body/common/bg.png');
  /* background-color: #f6f7f8; */
}

/*--------------
  段落
--------------*/
p {
  line-height: 3rem;
}

@media screen and (min-width: 768px) {
}

@media screen and (min-width: 920px) {
}

/*--------------
  リンク
--------------*/
a {
  color: #666;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-touch-callout: none;
}

a:link {
  /* color: #666; */
}

a:visited {
  /* color: #666; */
}

a:active {
  /* color: #666; */
}

a:hover {
  /* color: #666; */
}

a.no_decoration {
  text-decoration: none;
}

@media screen and (min-width: 768px) {
}

@media screen and (min-width: 920px) {
}

/*--------------
  ロゴ
--------------*/
.logo {
  margin-left: 0;
  max-height: 95px;
  max-width: 82%;
}

.logo-img {
  width: 140px;
  vertical-align: bottom;
}

@media screen and (min-width: 768px) {
  .logo {
    margin-left: 0;
  }

  .logo-img {
    width: auto;
    height: 45px;
    padding: 0;
  }
}

@media screen and (min-width: 920px) {
  .logo {
    margin-left: 0;
    max-width: 100%;
  }
}

/*--------------
  見出し
--------------*/
.title_wrapper {
  text-align: center;
}

.title {
  position: relative;
  display: inline-block;
  font-size: 2rem;
  font-family: serif;
}

/* .title:before,
.title:after {
  content: "";
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 45px;
  height: 1px;
  background-color: black;
} */

/* .title:before {
  left: 0;
}
.title:after {
  right: 0;
} */

.subtitle {
  font-size: 2rem;
  font-weight: bold;
  line-height: 5rem;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #f08300;
}


.section_title {
  text-align: center;
  margin: 1rem 0 2rem;
  font-size: 2rem;
  font-weight: bold;
  font-family: "Bentham", serif;
  position: relative;
  /* margin-bottom: 1rem; */
}

.section_title::after {
  content: "";
  width: 100px;
  margin: 18px 0 0 -50px;
  display: block;
  position: absolute;
  top: 35px;
  left: 50%;
  border-bottom: 2px solid orange;
}

.section_title::first-letter {
  font-size: 4rem;
}

.h1 {
  font-size: 1.6rem;
}

.h2 {
  font-size: 1.6rem;
  color: #666;
}

.h3 {
  margin-bottom: 0.5rem;
  padding: 0.25em 0 0.5em 0.75em;
  border-bottom: 1px solid #ccc;
  border-left: 6px solid #ccc;
}

.heading-deco-circle {
  position: relative;
  margin: 2rem 0 2rem 3rem;
  border-bottom: thin solid #3498db;
}

.heading-deco-circle::after {
  position: absolute;
  z-index: 2;
  top: 0.5rem;
  left: -2.7rem;
  width: 20px;
  height: 20px;
  content: "";
  border: 3px solid #3498db;
  border-radius: 100%;
}

@media screen and (min-width: 768px) {
  .title_wrapper {
    margin-top: 3rem;
  }

  .title {
    font-size: 3rem;
  }

  .subtitle {
    font-size: 2.5rem;
  }

  .section_title {
    margin: 2rem 0;
    font-size: 3rem;
  }

  .section_title::after {
    top: 35px;
  }

  .h2 {
    font-size: 2rem;
  }

  .heading-deco-circle {
    margin: 0 0 3rem 3rem;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------------------------------------------------------
  フォーム
--------------------------------------------------------------*/
button,
input,
select,
textarea {
  overflow: hidden;
  margin: 0;
  padding: 0;
  text-align: justify;
}

button:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: #5794bf;
}

textarea {
  overflow-y: scroll;
}

input[type="text"] {
  font-size: 16px;
  padding: 0.5rem;
}

input[type="radio"] {
  display: none;
}

input[type="radio"]:checked + .label-radio::after {
  position: absolute;
  top: 48%;
  left: 3px;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  content: "";
  border-radius: 100%;
  background: #3498db;
}

input[type="reset"] {
  margin: 0.5rem auto;
  padding: 0.5rem;
}

input[type="password"] {
  font-size: 16px;
  padding: 0.5rem;
}

input[type="submit"] {
}

input[type="checkbox"] {
  width: 2.6rem;
  height: 2rem;
  border: thin solid #ccc;
  vertical-align: -2px;
  margin-top: 0.5rem;
  appearance: checkbox;
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
}

input[type="email"] {
  padding: 0.5rem;
  font-size: 16px;
}

input[type="tel"] {
  padding: 0.5rem;
  font-size: 16px;
}

input[type="url"] {
  padding: 0.5rem;
  font-size: 16px;
}

input[type="number"] {
  padding: 0.5rem;
  font-size: 16px;
  height: 33px;
}

input[type="date"] {
  font-size: 14px;
  padding: 0.5rem;
}

input[type="time"] {
  font-size: 14px;
  padding: 0.5rem;
}

input[type="file"] {
}

textarea {
  font-size: 16px;
}

/* プレースホルダ */
input::placeholder {
  font-size: 1.4rem;
  /* color: #ccc; */
}

input::-webkit-input-placeholder {
  font-family: "fontawesome";
  font-size: 1.4rem;
  /* color: #ccc; */
}

input:-moz-placeholder {
  font-family: "fontawesome";
  font-size: 1.4rem;
  /* color: #ccc; */
}

input::-moz-placeholder {
  font-family: "fontawesome";
  font-size: 1.4rem;
  /* color: #ccc; */
}

input:-ms-input-placeholder {
  font-family: "fontawesome";
  font-size: 1.4rem;
  /* color: #ccc; */
}

textarea::-webkit-input-placeholder {
  font-size: 1.4rem;
  /* color: #ccc; */
}

textarea:-moz-placeholder {
  font-size: 1.4rem;
  /* color: #ccc; */
}

textarea::-moz-placeholder {
  font-size: 1.4rem;
  /* color: #ccc; */
}

textarea:-ms-input-placeholder {
  font-size: 1.4rem;
  /* color: #ccc; */
}

/* --------------
  ハマりポイント
-------------- */
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: none;
}

.textarea {
  /* height: 95px; */
  padding: 0.5rem;
  resize: vertical;
}

.select {
  height: 36px;
  padding: 0.5rem;
  background-color: #fff;
  /* appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none; */
}

.button,
.input,
.select,
.textarea {
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3",
    "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic",
    sans-serif;
  width: 100%;
  color: #333;
  border: thin solid #ccc;
  border-radius: unset;
  outline: none;
  font-size: 1.6rem;
}

.input_caption {
  font-size: 1.2rem;
  display: block;
}

@media screen and (min-width: 768px) {
  .button,
  .input,
  .select,
  .textarea {
    /* width: initial; */
    font-size: 1.4rem;
  }

  .select {
    height: 33px;
  }

  input[type="submit"] {
    /* margin: 1rem auto; */
  }

  input[type="text"] {
    font-size: 14px;
  }

  input[type="email"] {
    font-size: 14px;
  }

  input[type="url"] {
    font-size: 14px;
  }

  input[type="password"] {
    font-size: 14px;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------
  ボタン
--------------*/
.btn {
  font-size: 1.4rem;
  line-height: 3rem;
  display: block;
  width: 100%;
  padding: 0.2rem 2rem;
  text-align: center;
  text-decoration: none;
  border: thin solid #ccc;
  border-radius: 4px;
  cursor: pointer;
}

.btn-default {
  background-color: #fff;
}

.btn-success {
  color: #fff;
  border: 0;
  background-color: #82cbc5;
}

.btn-join {
  color: #fff;
  border: 0;
  background-color: #f75284;
}

.btn-danger {
  color: #fff;
  border: 0;
  background-color: #d9534f;
}

.btn-delete {
  color: #fff;
  border: 0;
  background-color: #d9534f;
}

.btn-contact {
  color: #fff;
  border: 0;
  background-color: #43acec;
}

.btn-submit {
  cursor: pointer;
  -webkit-appearance: none;
}

.btn-submit:hover {
  transition-duration: 0.4s;
  background-color: #fff;
}

.btn-insert-img {
  color: #fff;
  border: 0;
  background-color: #82cbc5;
}

.btn-delete-img {
  color: #fff;
  border: 0;
  background-color: #d9534f;
}

.btn-block {
  display: block;
}

@media screen and (min-width: 768px) {
  .btn {
    line-height: 2.5rem;
    padding: 0.5rem 2rem;
    display: inline-block;
    width: auto;
    text-align: center;
  }

  .btn:hover {
    transition-duration: 0.4s;
    opacity: 0.6;
  }

  .btn-large {
    width: 20rem;
  }

  .btn-medium {
    width: 11rem;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------
  ハンバーガーボタン
--------------*/
.menubtn {
  font-size: 37px;
  position: absolute;
  top: -45px;
  right: 3rem;
}

.menubtn a {
  text-decoration: none;
  display: block;
}

.menu-btn-img {
  height: 3rem;
  width: 3rem;
  background-image: url("../images/common/menu-btn.svg");
}

.menu-btn-img-close {
  height: 3rem;
  width: 3rem;
  background-image: url("../images/common/menu-btn-close.svg");
}

.header_text {
  display: none;
}

.header_buttons {
  display: none;
}

.header_login_icon {
  height: 32px;
  width: 32px;
  background-image: url("../images/login_icon.svg");
  display: block;
  position: absolute;
  top: -5rem;
  right: 7rem;
}

.header_contact_icon {
  height: 22px;
  width: 32px;
  background-image: url("../images/contact_icon.svg");
  display: block;
  position: absolute;
  top: -4.5rem;
  right: 7rem;
}

@media screen and (min-width: 768px) {
  .menubtn {
    display: none;
  }

  .header_text {
    display: inherit;
    font-size: 1.3rem;
    padding: 0 1rem;
  }

  .header_buttons {
    display: inherit;
  }

  .shortcut_buttons {
    margin-top: 5px;
  }

  .header_login_icon {
    display: none;
  }

  .header_contact_icon {
    display: none;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------
  ボタングループ
--------------*/
.btngroup {
  width: 100%;
  margin: 1rem 0 0 -0.5rem;
}

.btngroup li {
  text-align: center;
  margin: 0 0.5rem 2rem;
  list-style: none;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .btngroup {
    display: flex;
    flex-wrap: wrap;
    /* margin-bottom: 1rem; */
    /* justify-content: space-between; */
  }

  .btngroup li {
    width: auto;
  }

  .btngroup li:last-child {
    margin-right: 0;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------
  ラベル
--------------*/
.label-radio {
  position: relative;
  display: inline-block;
  padding: 3px 3px 3px 20px;
  cursor: pointer;
}

.label-radio::before {
  position: absolute;
  top: 51%;
  left: 0;
  width: 14px;
  height: 14px;
  margin-top: -8px;
  content: "";
  border: 1px solid #ccc;
  border-radius: 100%;
  background: #fff;
}

.required_text {
  background-color: #f75284;
  padding: 1px 5px;
  border-radius: 3px;
  font-size: 1.3rem;
  color: #fff;
  margin-left: 1rem;
}

@media screen and (min-width: 768px) {
}

@media screen and (min-width: 920px) {
}

/*--------------
  検索
--------------*/
.search {
  margin-top: 1rem;
}

.search-input-text {
  border-radius: unset;
}

@media screen and (min-width: 768px) {
  .search-input-text {
    width: 400px;
    -webkit-text-size-adjust: 100%;
  }

  #allsearch {
    width: 540px;
  }

  .allsearchlabel {
    margin-left: 4rem;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------
  画像
--------------*/
.img {
  max-width: 100%;
  height: auto;
}

.img-center {
  display: block;
  margin: 0 auto;
}

.flex-img {
  display: block;
  margin: 0 auto;
}

.img-circle {
  border-radius: 50%;
}

/*--------------
  左右寄せ
--------------*/
.img-margin-left {
  padding-left: 2rem;
}

.img-margin-right {
  padding-right: 2rem;
}

@media screen and (min-width: 768px) {
  .img {
    max-height: 450px;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------
  テキスト
--------------*/
.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-left {
  text-align: left;
}

/*--------------
  文字の大きさ
--------------*/
.small-caps {
  font-size: 1.4rem;
}

.medium-caps {
  font-size: 1.7rem;
}

.big-caps {
  font-size: 2rem;
}

/*--------------
  文字のマージン調整
--------------*/
.text-margin {
  display: inline-block;
  margin: 2rem 0;
}

.text-margin-top {
  display: inline-block;
  margin: 2rem 0 0;
}

.text-margin-down {
  display: inline-block;
  margin: 0 0 2rem;
}

/*--------------
  行間
--------------*/
.text-height {
  line-height: 3rem;
}

/*--------------
  キャプション
--------------*/
.caption {
  text-align: left;
}

/*--------------
  注釈
--------------*/
.annotation {
  font-size: 1.6rem;
}

/*--------------
  補足
--------------*/
.supplement {
  padding: 1rem;
  border-radius: 5px;
  background-color: #4a888e;
  color: #fff;
}

.supplement li p {
  font-size: 1.4rem;
}

/*--------------
  強調
--------------*/
.notice {
  color: #ea5506;
}

.context-notice {
  color: #ea5506;
}

/*--------------
  字下げ
--------------*/
.indent {
  margin-left: 3rem;
}

@media screen and (min-width: 768px) {
}

@media screen and (min-width: 920px) {
}

/*--------------
  テーブル
--------------*/
.table {
  width: 100%;
  border-collapse: collapse;
}

.table th {
  display: block;
  width: 100%;
  padding: 0.5rem;
}

.table td {
  /* display: block; */
  width: 100%;
}

.table .form {
  width: 560px;
  margin: 25px 0 0 13px;
}

@media screen and (min-width: 768px) {
  .table th {
    display: table-cell;
    width: 7%;
    text-align: right;
  }

  .table td {
    /* display: table-cell; */
    width: auto;
    margin: 0.3rem 0;
  }
}

@media screen and (min-width: 920px) {
}

/*--------------
  リスト
--------------*/
.list li {
  padding: 0.5rem 0;
  margin-bottom: 1rem;
  border-bottom: thin dashed #ccc;
}

@media screen and (min-width: 768px) {
  .confirm_list {
    margin-bottom: 2rem;
  }

  .confirm_list > li {
    border-bottom: thin solid #ccc;
    border-right: thin solid #ccc;
    border-left: thin solid #ccc;
  }

  .confirm_list > li:first-child {
    border-top: thin solid #ccc;
  }

  .list_label {
    width: 150px;
    display: inline-block;
    padding: 1rem;
    border-right: thin solid #ccc;
  }

  .list_text {
    display: inline-block;
    padding: 1rem;
  }
}

@media screen and (min-width: 920px) {}
