@charset "UTF-8";

/*基準を1rem=10pxに設定*/
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

.font-size-S {
  font-size: clamp(1.1rem, calc(0.9rem + 0.625vw), 1.6rem);
}

.font-size-M {
  font-size: clamp(1.2rem, calc(1rem + 0.625vw), 1.7rem);
}

.font-size-L {
  font-size: clamp(2.4rem, calc(2.2rem + 0.625vw), 2.9rem);
}

/* ------------------------------
　　共通部分
------------------------------ */
*,
::before,
::after {
  min-width: auto;
}

body {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-size: 100%;
  font-weight: 400;
  font-style: normal;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-optical-sizing: auto;
  font-weight: 500;
}

h1 {
  font-size: 4.3rem;
  line-height: clamp(28px, 3.1vw, 39px);
  line-height: 1.3;
}

h2 {
  font-size: 3.5rem;
  line-height: clamp(26px, 3vw, 37px);
  line-height: 1.3;
}

h3 {
  font-size: 3.2rem;
  line-height: clamp(23px, 3.2vw, 38px);
  line-height: 1.3;
}

h4 {
  font-size: 2.8rem;
  line-height: clamp(22px, 2.6vw, 33px);
  line-height: 1.3;
}

h5 {
  font-size: 2.5rem;
  line-height: clamp(21px, 2.5vw, 32px);
  line-height: 1.3;
}

h6 {
  font-size: 2.2rem;
  line-height: clamp(20px, 2.4vw, 31px);
  line-height: 1.3;
}

p {
  font-size: 1.5rem;
  line-height: clamp(20px, 2vw, 23px);
  line-height: 1.5;
  font-optical-sizing: auto;
  font-weight: 400;
}

.p-english {
  font-size: 1.7rem;
  line-height: clamp(20px, 2vw, 23px);
  line-height: 1.7;
  font-optical-sizing: auto;
  font-weight: 400;
}

li {
  font-size: 1.5rem;
  line-height: clamp(20px, 2vw, 23px);
  line-height: 1.5;
  font-optical-sizing: auto;
  font-weight: 400;
}

/* span {
  font-size: 1.5rem;
  line-height: 1.5;
  font-optical-sizing: auto;
  font-weight: 400;
} */

/* .span-english {
  font-size: 1.7rem;
  line-height: 1.7;
  font-optical-sizing: auto;
  font-weight: 400;
} */

button,
input,
select,
textarea {
  -webkit-appearance: auto;
  appearance: auto;
  border-width: 1px;
  background-color: #fff;
  padding: 4px;
}

input,
select,
textarea,
label {
  font-size: 1.4rem;
}

input,
select,
textarea {
  border-radius: 4px;
  padding: 8px;
  outline: none;
}

label {
  display: inline-block;
  white-space: nowrap;
}

/* 選択系パーツ */
input[type="radio"],
input[type="checkbox"] {
  cursor: pointer;
  vertical-align: initial;
}

/* ボタン */
input[type="submit"],
input[type="reset"],
input[type="button"],
button {
  background-color: #f0f0f0;
  border: solid 1px #666;
  border-radius: 3px;
}

input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
button:hover {
  background-color: #ddd;
  cursor: pointer;
}

a {
  color: #1e50a2;
  text-decoration: none;
}

a:hover {
  color: #0000cd;
  text-decoration: underline;
}

a:hover::after {
  width: 100%;
}

input[type="submit"],
input[type="reset"],
input[type="button"],
button {
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  padding: 5px 20px;
  border: 1px solid grey;
  background: grey;
  color: #fff;
  transition: 0.5s;
  text-wrap: nowrap;
  font-size: 1.4rem;
  padding: 5px 10px;
}

input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
button:hover {
  color: grey;
  background: #fff;
}

video {
  filter: drop-shadow(0px 0px #000);
}

/* 基本 */
.wrapper {
  margin: 0 auto;
  width: 97%;
}

.inner {
  max-width: 1200px;
  margin: 0 auto;
}

.inner-wrapper {
  width: 100%;
}

.container-1col {
  max-width: 800px;
  margin: 0 auto;
}

.flex-pc {
  width: 100%;
  display: block;
}

.flex-pc-between {
  width: 100%;
  display: block;
}

.flex-between {
  display: block;
}

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

.flex-left {
  margin-right: 0;
}

.flex-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

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

.align-end {
  text-align: end;
}

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

.ws-nowrap {
  white-space: nowrap;
}

.d-block {
  display: block;
}

.flex {
  display: flex;
}

.w-100 {
  width: 100%;
}

.w-fit {
  width: fit-content;
}

.m-0-auto {
  margin: 0 auto;
}

.mt-10 {
  margin-top: 10px;
}

.mt-15 {
  margin-top: 15px;
}

.mt-20 {
  margin-top: 20px;
}

.mt-30 {
  margin-top: 30px;
}

.mb-5 {
  margin-bottom: 5px;
}

.mb-5-pc {
  margin-bottom: 5px;
}

.mb-10 {
  margin-bottom: 10px;
}

.mb-10-pc {
  margin-bottom: 10px;
}

.mb-15 {
  margin-bottom: 15px;
}

.mb-20 {
  margin-bottom: 20px;
}

.mb-30 {
  margin-bottom: 30px;
}

.mb-40 {
  margin-bottom: 40px;
}

.ml-5 {
  margin-left: 5px;
}

.ml-10 {
  margin-left: 10px;
}

.ml-15 {
  margin-left: 15px;
}

.ml-20 {
  margin-left: 20px;
}

.mr-5 {
  margin-right: 5px;
}

.mr-10 {
  margin-right: 10px;
}

.mr-20 {
  margin-right: 20px;
}

.mr-30 {
  margin-right: 30px;
}

.mr-40 {
  margin-right: 40px;
}

.mr-10-pc {
  margin-right: 0;
}

.mr-20-pc {
  margin-right: 0;
}

.mr-30-pc {
  margin-right: 0;
}

.mr-40-pc {
  margin-right: 0;
}

.pb-5 {
  padding-bottom: 5px;
}

.pb-10 {
  padding-bottom: 10px;
}

.pb-20 {
  padding-bottom: 20px;
}

.pb-30 {
  padding-bottom: 30px;
}

.pb-40 {
  padding-bottom: 40px;
}

.border-b-black {
  border-bottom: solid 1px black;
}

.border-gray {
  border: solid 1px #808080;
}

.border-orange {
  border: solid 1px #ffa500;
}

.font-size-S {
  font-size: 1.3rem;
}

.font-size-M {
  font-size: 1.5rem;
}

.font-size-L {
  font-size: 1.7rem;
}

.font-size-LL {
  font-size: 2rem;
}

.text-box {
  border: 1px solid #000;
  padding: 5px;
}

.style-bold {
  font-weight: bold;
}

.style-red {
  color: #e2041b;
}

.style-blue {
  color: #1e50a2;
}

.style-green {
  color: #006400;
}

.form-item {
  margin-bottom: 20px;
}

.form-label {
  white-space: nowrap;
  font-weight: bold;
}

.form-label-field {
  background-color: #eaedf7;
  padding: 3px;
  margin-bottom: 10px;
}

.form-input {
  height: 35px;
  margin-right: 5px;
  margin-bottom: 5px;
}

.form-input-name {
  height: 35px;
  margin-right: 5px;
  margin-bottom: 5px;
}

.form-example {
  line-height: 1;
  color: #006400;
}

.form-example-col {
  line-height: 1;
  color: #006400;
}

.page-title {
  font-size: 3rem;
  text-align: center;
  line-height: 1.2;
}

.headline {
  font-size: 3rem;
}

.sub-headline {
  font-size: 2rem;
  font-weight: 500;
}

.indent-1 {
  padding-left: 10px;
}

.indent-2 {
  padding-left: 20px;
}

.indent-3 {
  padding-left: 30px;
}

a.link {
  text-decoration: none;
  color: #5383c3;
  color: #007bbb;
}

a.link:hover {
  text-decoration: underline;
  color: #19448e;
}

.input-btn {
  display: inline-block;
}

.delete {
  color: #778899;
}

.attention {
  color: #ff4500;
}

.attention:hover {
  color: #8f2e14;
}

.link-text {
  /* font-size: 1.7rem; */
  text-decoration: none;
  color: #44617b;
}

.link-text:hover {
  text-decoration: underline;
  color: #0f2350;
}

/* .contact-link {
  text-decoration: none;
  color: #44617b;
}

.contact-link:hover {
  text-decoration: none;
  color: #0f2350;
} */

@media only screen and (min-width: 960px) {
  .wrapper,
  .inner {
    max-width: 1200px;
    padding: 0;
  }
}

@media screen and (min-width: 768px) {
  input,
  select,
  textarea,
  label {
    font-size: 1.7rem;
  }

  .flex-pc {
    max-width: 1200px;
    display: flex;
  }

  .flex-pc-between {
    max-width: 1200px;
    display: flex;
    justify-content: space-between;
  }

  .flex-between {
    display: flex;
    justify-content: space-between;
  }

  .flex-pc-center {
    display: flex;
    flex-direction: row;
    justify-content: center;
  }

  .flex-left {
    margin-right: 30px;
    width: calc(100% - 30px);
  }

  .mb-5-pc {
    margin-bottom: 0;
  }

  .mb-10-pc {
    margin-bottom: 0;
  }

  .mr-10-pc {
    margin-right: 10px;
  }

  .mr-20-pc {
    margin-right: 20px;
  }

  .mr-30-pc {
    margin-right: 30px;
  }

  .mr-40-pc {
    margin-right: 40px;
  }

  .form-item {
    display: flex;
    margin-bottom: 10px;
  }

  .form-label-field {
    display: flex;
    width: 19%;
    min-width: 150px;
    margin-right: 1%;
    margin-bottom: 0;
  }

  .form-input {
    margin-bottom: 0;
  }

  .form-input-field {
    display: flex;
    width: 80%;
  }

  .form-input-field-column {
    width: 80%;
  }

  .form-example {
    line-height: 35px;
    margin-bottom: 0;
  }
}

/* ------------------------------
　　ヘッダーエリア
------------------------------ */
.header-ad {
  display: none;
}

.header-ad-wrapper {
  display: flex;
  justify-content: center;
}

.ad-top {
  width: 350px;
  height: auto;
}

.header-bottom {
  display: block;
  margin-bottom: 20px;
}

.header-bottom-search {
  display: block;
  margin-bottom: 20px;
}

.header-logo {
  text-align: center;
  margin-top: 20px;
  margin-right: 0;
  margin-bottom: 10px;
}

.header-bottom-right {
  display: flex;
  flex-direction: column;
  align-items: end;
}

.header-bottom-ad {
  display: none;
}

.header-bottom-end {
  display: flex;
  flex-direction: column;
  align-items: end;
}

#logo-oc {
  width: 95%;
}

.search-top {
  display: none;
}

.search-box {
  display: flex;
  border: 1px solid #778899;
  width: 200px;
}

.search-box input {
  border: none;
  outline: 0;
  font-size: 1.3rem;
}

.btn-search {
  border: none;
  border-radius: 0;
  font-size: 1.4rem;
  background-color: #5383c3;
  color: white;
}

.header-language {
  display: flex;
  align-items: end;
}

#btn-english {
  display: table-cell;
  padding: 5px 10px;
  margin: 0;
  border: sienna solid 1px;
  border-radius: 5px;
  background-color: #fff;
  color: sienna;
  font-family: "Roboto", sans-serif;
  font-size: 1.3rem;
  text-decoration: none;
}

#btn-english:hover {
  display: table-cell;
  padding: 5px 10px;
  margin: 0;
  border: sienna solid 1px;
  border-radius: 5px;
  background-color: sienna;
  color: #fff;
  text-decoration: none;
  font-family: "Roboto", sans-serif;
  font-size: 1.3rem;
}

#btn-japanese {
  display: table-cell;
  padding: 5px 10px;
  margin: 0;
  border: sienna solid 1px;
  border-radius: 5px;
  background-color: #fff;
  color: sienna;
  font-family: "Roboto", sans-serif;
  font-size: 1.3rem;
  text-decoration: none;
}

#btn-japanese:hover {
  display: table-cell;
  padding: 5px 10px;
  margin: 0;
  border: sienna solid 1px;
  border-radius: 5px;
  background-color: sienna;
  color: #fff;
  text-decoration: none;
  font-family: "Roboto", sans-serif;
  font-size: 1.3rem;
}

@media screen and (min-width: 768px) {
  #logo-oc {
    width: 400px;
  }

  .header-bottom {
    display: flex;
    /* justify-content: space-between; */
    margin-bottom: 10px;
  }

  .header-bottom-search {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
  }

  .header-logo {
    margin-top: 0;
    margin-right: 10px;
  }

  .header-bottom-right {
    margin-left: auto;
    display: flex;
    flex-direction: row;
    align-items: start;
  }

  .header-bottom-ad {
    display: flex;
  }

  .header-ad {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    display: block;
    padding-top: 10px;
    padding-bottom: 10px;
    margin-bottom: 25px;
    text-align: center;
    background-color: #f4f4f4;
  }

  .search-top {
    /* display: flex;
    align-items: end; */
    display: block;
    margin-bottom: 7px;
  }

  .header-language {
    margin-bottom: 0;
  }

  #logo {
    text-align: left;
  }

  #btn-english {
    display: table-cell;
    padding: 5px 10px;
    margin: 0;
    border: sienna solid 1px;
    border-radius: 5px;
    background-color: #fff;
    color: sienna;
    font-family: "Roboto", sans-serif;
    font-size: 1.3rem;
    text-decoration: none;
  }

  #btn-english:hover {
    display: table-cell;
    padding: 5px 10px;
    margin: 0;
    border: sienna solid 1px;
    border-radius: 5px;
    background-color: sienna;
    color: #fff;
    text-decoration: none;
    font-family: "Roboto", sans-serif;
    font-size: 1.3rem;
  }

  #btn-japanese {
    display: table-cell;
    padding: 5px 10px;
    margin: 0;
    border: sienna solid 1px;
    border-radius: 5px;
    background-color: #fff;
    color: sienna;
    font-family: "Roboto", sans-serif;
    font-size: 1.3rem;
    text-decoration: none;
  }

  #btn-japanese:hover {
    display: table-cell;
    padding: 5px 10px;
    margin: 0;
    border: sienna solid 1px;
    border-radius: 5px;
    background-color: sienna;
    color: #fff;
    text-decoration: none;
    font-family: "Roboto", sans-serif;
    font-size: 1.3rem;
  }
}

/* ------------------------------
　　ナビゲーション
------------------------------ */

/*
  CSS のみの多段階階層ドロップダウン&ハンバーガーメニュー Ver. 2.01
  Copyright Rectus Inc, 2020
  https://www.rectus.co.jp/
  Released under the MIT license
 */

/* 基本CSS */

#wrapper-nav {
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  background-color: #fff;
  padding: 0 20px;
  margin-bottom: 20px;
}

ul,
div,
img {
  margin: 0px;
  padding: 0px;
  list-style: none;
  font-weight: normal;
}

#navi {
  width: 100%;
}

/* チェックボックスを非表示 */
input#menu-navibtn {
  display: none;
}

#menu input {
  display: none;
}

#menu {
  margin-top: 20px;
  display: none;
}

#menu > li {
  line-height: 15px;
}

.menu-list-first {
  font-size: 1.2rem;
}

.menu-list-first-e {
  font-size: 1.4rem;
}

.menu-list-first a,
.menu-list-first-e a {
  text-decoration: none;
}

.menu-list-first a:hover,
.menu-list-first-e a:hover {
  text-decoration: none;
  color: #666;
}

.icon-home a {
  color: #5383c3 !important;
}

.icon-home a:hover {
  color: #84b9cb !important;
}

#menu label {
  margin: 0;
}

/* 上部メニュー */
.menu-list-first,
.menu-list-first-e {
  margin: 0;
  padding: 10px 0;
  width: 100%;
  height: auto;
  border-bottom: 1px solid #ddd;
  position: relative;
  white-space: nowrap;
}

.menu-list-first:first-child,
.menu-list-first-e:first-child {
  border-top: 1px solid #ddd;
}

.pd {
  display: inline-block;
  width: 50%;
}

.menu-list-first i,
.menu-list-first-e i {
  padding: 0px 3px;
}

.menu-list-child {
  display: none;
  margin-left: initial;
  position: relative;
  margin-top: 10px;
  margin-right: 20px;
}

/* 子メニュー */
.menu-list-second {
  font-size: 1.2rem;
  display: none;
  padding: 0;
  background-color: #fff;
  border-bottom: 1px solid #ddd;
  padding-left: 0.7rem;
  line-height: 2.3;
}

.menu-list-second-e {
  font-size: 1.4rem;
  display: none;
  padding: 0;
  background-color: #fff;
  border-bottom: 1px solid #ddd;
  padding-left: 0.7rem;
  line-height: 2.3;
}

.menu-list-second-e a {
  color: #000;
}

/* スマホ用 */
/* ハンバーガーメニューがクリックされた時 */

#menu-navibtn:checked ~ * #menu {
  display: block;
}
#menu-navibtn:checked ~ * #menu > li {
  max-height: inherit;
  overflow-y: visible;
}

/* 子メニュー */

.menu-list-second:first-child,
.menu-list-second-e:first-child {
  border-top: 1px solid #ddd;
}

.menu-list-second:last-child,
.menu-list-second-e:last-child {
  border-bottom: none;
}

/* 子メニューがクリックされた時 */
#menu input[type="checkbox"]:checked ~ label ~ ul > li {
  max-height: inherit;
  overflow-y: visible;
  display: block;
}

#menu input[type="checkbox"]:checked ~ label ~ ul {
  display: block;
}

.angletoggle:before {
  content: "\f107";
}
#navi input[type="checkbox"]:checked ~ label .pd .angletoggle:before {
  content: "\f106";
}

label .pd .angletoggle:before {
  content: "\f107";
}

/* ハンバーガー */

#navi #navibtn {
  display: block;
}

#navi label#navibtn > i.fa-xmark {
  display: none;
}

#menu-navibtn:checked ~ #navi label#navibtn > i.fa-bars {
  display: none;
}

#menu-navibtn:checked ~ #navi label#navibtn > i.fa-xmark {
  display: block;
}

.menu-list-parent {
  display: inline-block;
  width: 100%;
  text-decoration: none;
  font-size: 1.2rem;
}

.menu-list-parent:hover {
  text-decoration: none;
  color: #666;
}

.menu-list-first span,
.menu-list-first a {
  font-size: 1.3rem;
  line-height: 1;
}

.menu-list-first a {
  color: #000;
}

@media screen and (min-width: 620px) {
  #wrapper-nav {
    background-color: #ebf6f7;
  }

  /* パソコンでは V を非表示 */
  .pd {
    display: none;
  }

  #menu > li:hover > ul {
    display: block;
  }

  #menu > li:hover > ul > li {
    display: block;
  }

  #menu > li > ul {
    margin-top: 0rem;
  }

  .menu-list-second,
  .menu-list-second-e {
    padding: 0.8rem;
    line-height: 0.7;
  }

  #menu {
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
  }

  #navi #navibtn {
    display: none;
  }

  .menu-list-first,
  .menu-list-first-e {
    height: auto;
    width: auto;
    padding: 12px 0;
    border-bottom: 1px solid #ddd;
    white-space: nowrap;
    position: relative;
  }

  .menu-list-first:not(:last-child) {
    margin-right: 25px;
  }

  #menu > li .menu-list-child {
    position: absolute;
    top: 35px;
    z-index: 5;
    background-color: #fff;
    border: #333 solid 1px;
    border-radius: 5px;
    box-sizing: border-box;
    overflow: hidden;
  }

  .menu-list-first,
  .menu-list-first-e {
    border: none;
  }

  .menu-list-first:first-child,
  .menu-list-first-e:first-child {
    border-top: none;
  }

  .menu-list-second,
  .menu-list-second-e {
    border: none;
  }

  .menu-list-second:first-child,
  .menu-list-second-e:first-child {
    border-top: none;
  }

  #nav {
    position: sticky;
    top: 0;
  }

  .menu-list-parent {
    pointer-events: none;
  }

  .menu-list-first:hover span,
  .menu-list-first-e:hover span {
    color: #666;
    text-decoration: none;
  }
}

/* 英語版 */
.menu-list-first-e span {
  font-size: 1.4rem;
  line-height: 1;
}

.menu-list-first-e:not(:last-child) {
  margin-right: 60px;
}

/* ------------------------------
　　ログインエリア
------------------------------ */
.login-area {
  text-align: end;
  margin-bottom: 20px;
}

#btn-login {
  padding: 5px 20px;
  font-size: 1.3rem;
  color: #ffffff;
  border: none;
  background-color: #0071bc;
  border-radius: 5px;
  display: inline-block;
}

#btn-login:hover {
  padding: 5px 20px;
  font-size: 1.3rem;
  color: #ffffff;
  border: none;
  background-color: #191970;
}

#btn-logout {
  padding: 5px 20px;
  font-size: 1.3rem;
  color: #ffffff;
  border: none;
  background-color: darkgrey;
  border-radius: 5px;
  display: inline-block;
}

#btn-logout:hover {
  padding: 5px 20px;
  font-size: 1.3rem;
  color: #ffffff;
  border: none;
  background-color: #778899;
}

@media screen and (min-width: 768px) {
  .login-area {
    display: none;
  }
}

/* ------------------------------
　　ログインページ
------------------------------ */
#login-main,
#logout-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

#loginForm,
#logoutForm {
  padding: 20px;
  max-width: 300px;
  font-size: 1.5rem;
  border: 1px solid #000;
  border-radius: 5px;
  font-family: "Roboto", sans-serif;
}

#loginForm h1,
#loginForm h2,
#logoutForm h1 {
  font-size: 1.8rem;
  text-align: center;
  margin-bottom: 20px;
}

/* #loginForm p,
#logoutForm p {
  font-size: 1.5rem;
} */

.btn-form {
  text-align: center;
  margin-bottom: 20px;
}

.btn-form input {
  background: grey;
  color: #fff;
  border: 2px solid grey;
  font-weight: bold;
}

.btn-form input:hover {
  background: #fff;
  color: grey;
}

/* ------------------------------
　　サイド
------------------------------ */
#side {
  display: none;
}

.ad-customer {
  margin-bottom: 40px;
}

@media screen and (min-width: 768px) {
  #side {
    display: block;
    width: 300px;
  }

  .side-login-area {
    text-align: center;
    margin-bottom: 20px;
  }
}

/* ------------------------------
　　メインエリア
------------------------------ */

.contents {
  min-height: 100vh;
}
.title {
  color: #0f0808;
  font-weight: 500;
}

.title a {
  color: #0f0808;
  font-weight: 500;
  text-decoration: none;
}

.title a:hover {
  color: #0f0808;
  font-weight: 500;
  text-decoration: underline;
}

#news-top {
  margin-bottom: 20px;
}

#top-front {
  position: relative;
  margin-bottom: 10px;
  padding-bottom: 15px;
}

#top-front::after {
  content: "";
  position: absolute;
  bottom: 0; /*下線の上下位置調整*/
  display: inline-block;
  width: 100%; /*下線の幅*/
  height: 1px; /*下線の太さ*/
  background-color: #a9a9a9; /*下線の色*/
}

#top-back {
  position: relative;
  padding-bottom: 15px;
}

#top-back::after {
  content: "";
  position: absolute;
  bottom: 0; /*下線の上下位置調整*/
  display: inline-block;
  width: 100%; /*下線の幅*/
  height: 1px; /*下線の太さ*/
  background-color: #a9a9a9; /*下線の色*/
}

.title-top {
  font-size: clamp(1.9rem, 2.2vw, 2.5rem);
  margin-bottom: 0.7rem;
  line-height: 1.3;
}

.text-top {
  font-size: clamp(1.2rem, 1.3vw, 1.4rem);
  color: dimgray;
  margin-bottom: 7px;
}

.normal-article {
  position: relative;
}

.normal-article::after {
  content: "";
  position: absolute;
  bottom: 0; /*下線の上下位置調整*/
  display: inline-block;
  width: 100%; /*下線の幅*/
  height: 1px; /*下線の太さ*/
  background-color: #a9a9a9; /*下線の色*/
}

.title-article {
  font-size: clamp(1.5rem, calc(1.3rem + 0.625vw), 1.9rem);
  margin-bottom: 7px;
  line-height: 1.3;
}

.text-article {
  font-size: clamp(1.2rem, 1.3vw, 1.4rem);
  font-weight: 400;
  color: dimgray;
  margin-bottom: 7px;
}

.title-english {
  font-weight: 500;
  font-size: clamp(1.8rem, 2vw, 2.3rem);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.title-english a {
  text-decoration: none;
  color: black;
}

.title-english a:hover {
  color: black;
  text-decoration: underline;
}

.photo-thumbnail {
  text-align: center;
}

#news-top img {
  width: 80%;
  max-width: 400px;
}

#news-normal {
  margin-bottom: 20px;
}

#news-normal img {
  width: 80%;
  max-width: 400px;
}

.emergency {
  display: inline-block;
  padding: 3px 4px;
  font-size: 1.3rem;
  color: white;
  background-color: firebrick;
  margin-right: 2px;
  line-height: 1;
}

.genre {
  display: inline-block;
  padding: 3px 5px;
  font-size: 1.3rem;
  color: #ffffff;
  background-color: #a9a9a9;
  margin-right: 2px;
  line-height: 1;
}

.date {
  font-size: 1.3rem;
  color: #778899;
}

.normal-article {
  margin-bottom: 10px;
  padding-bottom: 15px;
}

.contents-02 {
  display: flex;
  flex-direction: column;
}

.contents-row {
  margin-bottom: 12px;
}

.text-article-english {
  font-weight: 300;
  font-size: clamp(1.4rem, 1.5vw, 1.7rem);
  color: dimgray;
}

.english-article {
  position: relative;
  padding-bottom: 20px;
  margin-bottom: 10px;
}

.english-article:not(:last-child)::after {
  position: absolute;
  content: "";
  bottom: 0; /*下線の上下位置調整*/
  display: inline-block;
  width: 100%; /*下線の幅*/
  height: 1px; /*下線の太さ*/
  background-color: #a9a9a9; /*下線の色*/
}

/* safari用文字サイズ */
::-webkit-full-page-media,
:future,
:root .title-top {
  font-size: 1.9rem;
  margin-bottom: 0.7rem;
  line-height: 1.3;
}

::-webkit-full-page-media,
:future,
:root .title-article {
  font-size: 1.5rem;
  margin-bottom: 7px;
  line-height: 1.3;
}

/* safari用文字サイズ */
@media screen and (min-width: 375px) {
  ::-webkit-full-page-media,
  :future,
  :root .title-top {
    font-size: 2rem;
    margin-bottom: 0.7rem;
    line-height: 1.3;
  }

  ::-webkit-full-page-media,
  :future,
  :root .title-article {
    font-size: 1.6rem;
    margin-bottom: 7px;
    line-height: 1.3;
  }
}

@media screen and (min-width: 768px) {
  #news-main {
    margin-right: 30px;
  }

  .text-top {
    margin-bottom: 0;
    margin-right: 1%;
  }

  .text-article {
    margin-bottom: 0;
    margin-right: 1%;
  }

  #news-top img {
    width: clamp(300px, calc(250px + 0.625vw), 350px);
    width: clamp(190px, 20vw, 300px);
  }

  #news-normal img {
    width: clamp(300px, calc(250px + 0.625vw), 350px);
    width: clamp(100px, 10vw, 130px);
  }

  .contents-02 {
    display: flex;
    flex-direction: row;
  }

  .english-article .contents-01 {
    margin-right: 1%;
  }

  /* safari用文字サイズ */
  ::-webkit-full-page-media,
  :future,
  :root .title-top {
    font-size: 2.3rem;
    margin-bottom: 0.7rem;
    line-height: 1.3;
  }

  ::-webkit-full-page-media,
  :future,
  :root .title-article {
    font-size: 1.9rem;
    margin-bottom: 7px;
    line-height: 1.3;
  }
}

/* ------------------------------
　　記事詳細ページ
------------------------------ */
.news-detail-inner {
  margin: 0 auto;
  min-width: 363.75px;
}

.title-detail {
  font-weight: 500;
  font-size: clamp(2.3rem, 2vw, 3rem);
  line-height: 1.3;
  margin-bottom: clamp(15px, 1.5vw, 25px);
}

.text-detail {
  font-weight: 300;
  text-align: justify;
  font-size: clamp(1.5rem, 1.5vw, 1.6rem);
  line-height: 1.7;
}

.title-detail-english {
  font-weight: 500;
  font-size: clamp(2.3rem, 2vw, 3rem);
  line-height: 1.3;
  margin-bottom: clamp(10px, 1.5vw, 20px);
}

.text-detail-english {
  font-weight: 300;
  text-align: justify;
  font-size: clamp(1.5rem, 1.5vw, 1.6rem);
  line-height: 1.7;
}

.photo-detail {
  text-align: center;
}

.photo-detail img {
  width: 100%;
  max-width: 600px;
}

.photo-detail {
  margin-bottom: clamp(15px, 20vw, 25px);
}

/* safari用文字サイズ */
@media screen and (min-width: 375px) {
  ::-webkit-full-page-media,
  :future,
  :root .title-detail {
    font-size: 2.3rem;
    margin-bottom: 15px;
  }

  ::-webkit-full-page-media,
  :future,
  :root .title-detail-english {
    font-size: 2.3rem;
    margin-bottom: 15px;
  }
}

@media screen and (min-width: 768px) {
  ::-webkit-full-page-media,
  :future,
  :root .title-detail {
    font-size: 3rem;
    margin-bottom: 25px;
  }

  ::-webkit-full-page-media,
  :future,
  :root .title-detail-english {
    font-size: 3rem;
    margin-bottom: 25px;
  }
}

/* ------------------------------
　　記事詳細一覧
------------------------------ */

.details-articles-wrapper {
  margin-bottom: 20px;
}

.details-article {
  margin-bottom: 40px;
}

.details-article:not(:first-child):before {
  position: relative;
  content: "";
  bottom: 10px; /*下線の上下位置調整*/
  display: inline-block;
  width: 100%; /*下線の幅*/
  height: 1px; /*下線の太さ*/
  background-color: #a9a9a9; /*下線の色*/
}

.details-article:after {
  display: block;
  content: "";
  clear: both;
}

.details_title {
  font-size: 2.5rem;
  text-align: left;
  margin-bottom: 15px;
}

.details_title a {
  color: #0f0808;
  text-decoration: none;
}

.details_title a:hover {
  text-decoration: underline;
}

.details-photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  margin-bottom: 10px;
}

.details-photo img {
  width: 90%;
}

.details-text {
  clear: both;
}

@media screen and (min-width: 768px) {
  .details-photo {
    float: right;
    max-width: 300px;
    margin-left: 20px;
  }

  .details-photo img {
    width: 100%;
  }

  .details-text {
    clear: none;
  }
}

/* ------------------------------
　　newsToday
------------------------------ */
#news-headline .genre {
  display: inline-block;
  padding: 3px;
  font-size: 1.2rem;
  color: #ffffff;
  background-color: #a9a9a9;
  margin-right: 2px;
}

#news-headline .date {
  font-size: 1.2rem;
  color: #778899;
  margin-right: 2px;
}

#news-headline .emergency {
  font-size: 1.2rem;
  margin-right: 2px;
}

#news-headline input[type="checkbox"] {
  margin-right: 5px;
}

.newstoday-title {
  font-size: 1.5rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(1.3rem, 1.4vw, 1.5rem);
  line-height: 1.7;
  white-space: wrap;
  border-bottom: lightsteelblue solid 1px;
  padding: 5px 0;
}

.newstoday-title a {
  text-decoration: none;
}

.newstoday-title a:hover {
  text-decoration: underline;
}

@media screen and (min-width: 576px) {
  .gnav {
    display: flex;
    flex-wrap: wrap;
  }
}

@media screen and (min-width: 768px) {
  .news-detail-inner {
    min-width: 576px;
    padding-right: 30px;
  }
}

@media screen and (min-width: 992px) {
  #news-normal {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .normal-article {
    width: 48%;
  }
}

/* ------------------------------
　　footer
------------------------------ */
#footer-ad {
  display: none;
}

@media screen and (min-width: 768px) {
  #footer-ad {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 20px;
  }
}

/* footer */
#footer {
  background-color: #a2d7dd;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  padding: 12px 0;
  position: sticky;
  top: 100vh;
}

/* .footer p {
  text-align: center;
  font-size: 1.2rem;
} */

.copyright {
  text-align: center;
  font-size: 1.4rem;
}

.navi-wrapper {
  display: none;
}

.footer-navi {
  width: 100%;
}

.footer-navi-menu {
  display: flex;
  justify-content: center;
}

.footer-navi-list {
  font-size: 1.2rem;
  margin-right: 1%;
  color: #1c305c;
  white-space: nowrap;
}

.footer-navi-list a {
  color: #000;
  text-decoration: none;
}

.footer-navi-list a:hover {
  text-decoration: underline;
  color: #007bbb;
}

.footer-name {
  font-size: 1.4rem;
  font-weight: bold;
  color: #165e83;
}

@media screen and (min-width: 768px) {
  .navi-wrapper {
    display: block;
  }
}

/* ------------------------------
　　エラーページ
------------------------------ */

.error-inner {
  text-align: justify;
}

.error-title {
  font-size: clamp(20px, 2.2vw, 27px);
  line-height: 1.2;
}

.error-p {
  line-height: 1.5;
  font-size: clamp(15px, 1.5vw, 16px);
}

@media screen and (min-width: 768px) {
  .error-inner {
    min-width: 40%;
    margin: 0 auto;
    padding-right: 2rem;
  }
}

/* ------------------------------
　　newsフォルダ内
------------------------------ */

table.layout-info {
  width: 100%;
  border-collapse: separate;
  border-spacing: 10px;
  margin-bottom: 2rem;
}

.text-info {
  font-size: 1.5rem;
}

@media screen and (min-width: 768px) {
  .text-info {
    font-size: 1.6rem;
  }
}

/* ------------------------------
　　ニュース検索
------------------------------ */
.news-search {
  margin: 0 auto;
}

.news-search label,
.news-search input,
.news-search select,
.news-search textarea {
  font-size: 1.4rem;
}

.news-search h1 {
  font-size: 2.5rem;
}

.news-search label {
  display: inline-block;
  white-space: nowrap;
}

.label-field {
  width: 25%;
  min-width: 100px;
  display: flex;
  align-items: center;
  margin-right: 5%;
}

.input-field {
  width: 100%;
}

.news-search input[type="text"],
.news-search select,
.news-search textarea {
  box-sizing: border-box;
}

.news-search input[type="text"] {
  height: 40px;
}

.flex-box {
  display: block;
  margin-bottom: 1rem;
}

@media screen and (min-width: 768px) {
  .news-search {
    max-width: 720px;
  }

  .news-search label,
  .news-search input,
  .news-search select,
  .news-search textarea {
    font-size: 1.6rem;
  }

  .news-search h1 {
    font-size: 3rem;
  }

  .flex-box {
    display: flex;
  }

  .input-field {
    width: 70%;
  }
}

.news-list-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 2rem;
}

.news-list-table td {
  vertical-align: middle;
  padding: 0.5rem;
  border-bottom: 1px solid black;
}

.list-header {
  font-size: 1.3rem;
  white-space: nowrap;
  text-align: center;
  background-color: lightgray;
  color: black;
  border-bottom: 1px solid white;
  font-weight: normal;
  font-weight: lighter;
  padding: 0.5rem;
}

.title-td {
  font-size: 1.5rem;
  vertical-align: middle;
  word-wrap: break-word;
  white-space: normal;
  width: 870px;
}

.title-td a {
  text-decoration: none;
  color: #0071bc;
}

.title-td a:hover {
  text-decoration: underline;
  color: #191970;
}

.genre-td {
  vertical-align: middle;
  color: black;
  background-color: lightcyan;
  font-size: 1.2rem;
  white-space: nowrap;
}

.search-text {
  font-size: 1.5rem;
}

@media screen and (min-width: 768px) {
  #search-result td {
    display: table-cell;
    overflow-wrap: break-word;
    word-wrap: break-word;
    white-space: normal;
  }

  .title-td {
    padding: 3px 10px;
  }
}

/* ------------------------------
　　ニュースダイジェスト
------------------------------ */
.digest-genre-select {
  height: 30px;
  padding: 1px;
  margin-right: 10px;
}

/* ------------------------------
　　社員ページ
------------------------------ */
#staff-top {
  max-width: 560px;
  margin: 0 auto;
  margin-top: 30px;
}

#staff-top li {
  font-size: 1.8rem;
  margin-bottom: 10px;
}

.staff-page-title {
  font-size: 3rem;
  text-align: center;
  line-height: 1.2;
}

.staff-title {
  font-size: 2.2rem;
}

.staff-top-list {
  list-style: none;
}

.staff-page-l {
  max-width: 650px;
  margin: 0 auto;
}

/* ------------------------------
　　社員ページ 記事追加
------------------------------ */
.staff-page {
  max-width: 650px;
  margin: 0 auto;
}

.staff-page input,
.staff-page select {
  box-sizing: border-box;
  height: 40px;
}

/* ------------------------------
　　社員ページ 記事検索
------------------------------ */
.find-label-field {
  width: 100%;
  min-width: 110px;
  align-items: center;
  margin-bottom: 5px;
}

.find-input-field {
  width: 100%;
}

.form-note {
  width: 100%;
}

.note-wrapper {
  display: flex;
  justify-content: flex-start;
}

.delete-td {
  width: 5%;
  min-width: 50px;
  text-align: center;
}

.btn-delete {
  text-decoration: underline;
  color: darkslateblue;
  font-size: 1.4rem;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
}

@media screen and (min-width: 768px) {
  .find-label-field {
    width: 25%;
    min-width: 110px;
    display: flex;
    align-items: center;
    margin-right: 5%;
    margin-bottom: 0;
  }

  /* .find-input-field {
    width: 70%;
  } */

  .form-note {
    width: 70%;
  }

  .note-wrapper {
    display: flex;
    justify-content: end;
  }
}

/* ------------------------------
　　社員ページ 記事結果
------------------------------ */
.news-list {
  max-width: 950px;
  margin: 0 auto;
}

.date-td {
  text-align: center;
  vertical-align: middle;
  font-size: 1.3rem;
  background-color: #f0f0f0;
  width: 10%;
}

.OrderNum-td {
  width: 7%;
  font-size: 1.3rem;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .date-td {
    font-size: 1.4rem;
  }
}

/* ------------------------------
　　社員ページ 記事編集
------------------------------ */
#staff-news-edit {
  margin: 0 auto;
}

.edit-honbun {
  height: 500px;
}

.flex-contents-02:not(:last-child) {
  margin-bottom: 10px;
}

@media screen and (min-width: 768px) {
  #staff-news-edit {
    width: 700px;
  }

  .flex-contents-01 {
    width: 15%;
    display: flex;
    align-items: center;
  }

  .flex-contents-01-02 {
    width: 15%;
    display: flex;
    align-items: start;
  }

  .flex-contents-02:not(:last-child) {
    margin-right: 4%;
    margin-bottom: 0;
  }

  .flex-contents-02 {
    width: 33%;
  }

  .flex-contents-03 {
    width: 85%;
  }
}

/* ------------------------------
　　社員ページ 記事完了
------------------------------ */
.edit-done-item-01 {
  font-size: 1.5rem;
  width: 25%;
  min-width: 130px;
  white-space: nowrap;
  line-height: 1.2;
}

.edit-done-item-02 {
  font-size: 1.5rem;
  white-space: nowrap;
  line-height: 1.2;
}

.edit-done-contents {
  line-height: 1.2;
}

.edit-done-honbun {
  line-height: 1.5;
  width: 100%;
  text-align: justify;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.edit-done-item-bg {
  background-color: lightgray;
}

/* ------------------------------
　　社員ページ 掲載順序編集
------------------------------ */
#set-date {
  max-width: 500px;
  min-width: 385px;
  margin: 0 auto;
}

#set-date fieldset {
  border: 1px solid black;
  border-radius: 10px;
  padding: 12px;
}

.set-date-label-field {
  display: flex;
  align-items: center;
  width: 18%;
  min-width: 90px;
  margin-right: 2%;
}

.set-date-input-field {
  width: 80%;
}

/* ------------------------------
　　社員ページ index編集
------------------------------ */
#index-editer {
  max-width: 800px;
  width: 100%;
  margin: 0 auto;
}

#index-contents {
  width: 100%;
  height: 680px;
}

input.btn {
  background-color: cadetblue;
  border-radius: 4px;
  border: none;
  color: #fff;
}

input.btn:hover {
  background-color: darkcyan;
  border-radius: 4px;
  border: none;
  color: #fff;
}

/* ------------------------------
　　購読のお申し込み
------------------------------ */
#price-table,
#price-table th,
#price-table td {
  border-collapse: collapse;
  border: 1px solid #333;
}

#price-table th,
#price-table td {
  padding: 5px;
  font-size: 1.4rem;
  white-space: nowrap;
  text-align: center;
  vertical-align: middle;
}

#price-table th {
  background-color: #f5f5f5;
}

ol.subscribe-first-guide {
  list-style-type: decimal;
  padding-left: 20px;
}

ol.subscribe-first-guide li {
  margin-bottom: 10px;
}

.howto-guide {
  max-width: 750px;
  margin: 0 auto;
  margin-bottom: 10px;
  background-color: #c1e4e9;
  padding: 10px;
}

.howto-guide-title {
  font-size: 1.8rem;
  font-weight: bold;
  color: #19448e;
}

ol.howto-guide-list {
  padding-left: 15px;
  list-style-type: decimal;
}

.subscribe-option {
  list-style-type: disc;
  list-style: inside;
}

.subscribe-option li {
  margin-bottom: 10px;
}

.id-pass {
  border: 1px solid #000;
  padding: 5px;
}

.id-pass li {
  font-weight: bold;
}

.id-pass li:not(:last-child) {
  margin-bottom: 5px;
}

.contact-address {
  border: 1px solid #000;
  padding: 5px;
}

.contact-address li {
  font-weight: bold;
}

.contact-address li:not(:last-child) {
  margin-bottom: 5px;
}

/* ------------------------------
　　購読のお申し込み
------------------------------ */
.order-form-title {
  font-size: 2.5rem;
}

.order-form-text {
  font-size: 1.8rem;
}

h5.order-form-text {
  font-size: 1.9rem;
}

.fee-table-english {
  border-collapse: collapse;
  width: 100%;
}

table.fee-table-english,
.fee-table-english th,
.fee-table-english td {
  border: 1px solid black;
}

.fee-table-english th,
.fee-table-english td {
  text-align: center;
  font-size: 1.6rem;
  padding: 3px;
}

.fee-table-english th {
  width: 35%;
}

.order-form-info-container {
  background-color: #dcdcdc;
  padding: 3px 5px 3px 5px;
}

li.order-form-info {
  font-size: 1.8rem;
}

.order-form-container {
  max-width: 700px;
  margin: 0 auto;
  margin-bottom: 30px;
}

.order-label-fileld {
  min-width: 100px;
  margin-bottom: 5px;
}

.order-label-bold {
  font-size: 1.6rem;
  font-weight: bold;
  display: block;
  margin-bottom: 5px;
}

.order-label {
  font-size: 1.6rem;
  display: block;
  margin-bottom: 5px;
}

.aaa {
  width: 49%;
}

.aaa:not(:last-child) {
  margin-right: 2%;
}

.card-number {
  width: 65%;
  margin-right: 2%;
}

.expiration-date {
  width: 33%;
}

/* ------------------------------
　　free-trial
------------------------------ */
a.ok-btn {
  padding: 2px 10px;
  color: #fff;
  background-color: #507ea4;
  text-decoration: none;
  font-size: 1.4rem;
  border-radius: 3px;
}

a.ok-btn:hover {
  padding: 2px 10px;
  color: #fff;
  background-color: #59b9c6;
  text-decoration: none;
  font-size: 1.4rem;
  border-radius: 3px;
}

/* ------------------------------
　　出版物のご案内・ご注文
------------------------------ */
#order-form-wrapper {
  position: sticky;
  top: 0;
}

#order-form {
  position: sticky;
  top: 0;
  margin-right: 0;
  margin-bottom: 20px;
  padding-bottom: 20px;
  background-color: #fff;
  border-bottom: 1px solid #000;
}

table#books-order,
table#books-order th,
table#books-order td {
  font-size: 1.4rem;
  border: 1px solid #000;
}

#books-order input {
  border: none;
}

table#books-order th {
  background-color: #333;
  color: #fff;
  text-align: center;
}

#shopping-forms li {
  margin-bottom: 10px;
}

#shopping-forms a {
  color: #007bbb;
  text-decoration: underline;
}

#shopping-forms a:hover {
  color: #1e50a2;
}

#shopping-forms li:last-child a {
  color: #e2041b;
  text-decoration: underline;
}

#shopping-forms li:last-child a:hover {
  color: #8f2e14;
}

.books-introduction-inner {
  margin-bottom: 20px;
}

.books-introduction-images {
  text-align: center;
  margin-right: 0;
  width: 100%;
}

.books-introduction-images {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-right: 0;
  width: 100%;
}

.books-introduction-text {
  width: 100%;
}

h5.books-title {
  font-size: 1.7rem;
  color: #fff;
  background-color: #003399;
  padding: 2px;
  padding-left: 5px;
  margin-bottom: 10px;
}

ul.introduction-list {
  list-style-type: none;
  margin-bottom: 10px;
}

ul.introduction-list li {
  margin-bottom: 5px;
}

ul.introduction-list-disc {
  list-style-type: disc;
  margin-bottom: 10px;
  padding-left: 2em;
}

ul.introduction-list-disc li {
  margin-bottom: 5px;
}

ol.introduction-list-num {
  list-style-type: decimal;
  margin-bottom: 10px;
  padding-left: 2em;
}

ol.introduction-list-num li {
  margin-bottom: 5px;
}

a.chokotto {
  color: #ec6800;
  text-decoration: none;
}

a.chokotto:hover {
  color: #f39800;
  text-decoration: underline;
}

#order-cart {
  margin-bottom: 10px;
}

#order-cart,
#order-cart th,
#order-cart td {
  border: 1px solid #000;
}

#order-cart th,
#order-cart td {
  font-size: 1.7rem;
  padding: 3px 10px;
  text-align: center;
}

#order-cart th {
  color: #fff;
  background-color: #4c6cb3;
}

.order-total {
  font-size: 2rem;
}

#order-cart-confirm {
  border-collapse: separate;
  border-spacing: 3px;
}

#order-cart-confirm th {
  color: #fff;
  background-color: #4c6cb3;
}

#order-cart-confirm th,
#order-cart-confirm td {
  font-size: 1.7rem;
  padding: 2px 10px;
  text-align: center;
}

@media screen and (min-width: 768px) {
  #order-form {
    margin-right: 30px;
    width: calc(100% - 30px);
    border: none;
  }

  .books-introduction-inner {
    display: flex;
    margin-bottom: 20px;
  }

  .books-introduction-images {
    text-align: left;
    margin-right: 2%;
    width: 15%;
  }

  .books-introduction-images {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .books-introduction-text {
    width: 83%;
  }
}

/* ------------------------------
　　「荷主と輸送」のご案内
------------------------------ */
.ninushi-image {
  width: 100%;
  margin-right: 0;
  margin-bottom: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ninushi-text {
  width: 100%;
}

#ninushi-cover {
  max-width: 400px;
}

@media screen and (min-width: 950px) {
  .ninushi-wrapper {
    display: flex;
  }

  .ninushi-image {
    width: 25%;
    margin-right: 3%;
  }

  .ninushi-text {
    width: 72%;
  }

  #ninushi-cover {
    width: 100%;
  }
}

/* ------------------------------
　　「荷主と輸送」バックナンバー
------------------------------ */
.ninushi-backnumbers {
  font-size: 1.5rem;
  padding: 5px;
}

.ninushi-contents {
  margin-bottom: 30px;
}

.ninushi-title {
  font-size: 1.8rem;
  padding: 3px;
  padding-left: 10px;
  color: #fff;
  background-color: #1e50a2;
  margin-bottom: 10px;
}

ul.ninushi-index li {
  padding-bottom: 5px;
}

ul.ninushi-index-circle {
  list-style-type: disc;
  list-style: inside;
  text-indent: 1em;
}

p.tokushu {
  font-weight: bold;
  color: #ff4500;
  padding: 2px;
  border: 1px solid #ff4500;
  width: fit-content;
  margin-bottom: 10px;
}

/* ------------------------------
　　site-map
------------------------------ */
.site-map h4 {
  font-size: 1.8rem;
  color: #164a84;
}

.site-map-e h4 {
  font-size: 1.9rem;
  color: #164a84;
}

.site-map h5 {
  font-size: 1.6rem;
}

.site-map-e h5 {
  font-size: 1.7rem;
}

.site-map p,
.site-map-e p {
  padding-left: 10px;
}

.site-map-e p {
  font-size: 1.7rem;
}

.site-map a,
.site-map-e a {
  text-decoration: none;
  color: #5383c3;
}

.site-map a:hover,
.site-map-e a:hover {
  text-decoration: underline;
  color: #19448e;
}

/* ------------------------------
　　このサイトのご利用案内
------------------------------ */
ul.help-list a,
.help-list-e a {
  text-decoration: none;
  color: #5383c3;
}

ul.help-list a:hover,
ul.help-list-e a:hover {
  text-decoration: underline;
  color: #19448e;
}

ul.help-list li,
ul.help-list-e li {
  margin-bottom: 10px;
}

ul.help-list-e li {
  font-size: 1.7rem;
  line-height: 1.7;
}

ul.help-list-e span {
  font-size: 1.7rem;
}

table.help-list-table-ex {
  table-layout: fixed;
  border-collapse: separate;
  border: 1px solid #000;
  padding: 5px;
  margin: 10px 0;
}

table.help-list-table-ex td {
  font-size: 1.5rem;
  padding: 2px;
  line-height: 1.5;
}

table.help-list-table-ex td:nth-child(1) {
  padding-right: 15px;
}

table.help-list-table,
table.help-list-table-e {
  table-layout: fixed;
  border-collapse: separate;
  border: 1px solid #000;
  padding: 5px;
  margin: 10px 0;
  width: 100%;
}

table.help-list-table td {
  font-size: 1.5rem;
  padding: 2px;
  display: block;
  width: 100%;
}

table.help-list-table-e td {
  font-size: 1.5rem;
  padding: 2px;
  display: block;
  width: 100%;
}

h3.help-list-title {
  font-size: 2rem;
  font-weight: 500;
  color: #165e83;
}

#help .fa-solid {
  line-height: 1.5 !important;
}

#help_e a {
  font-size: 1.7rem;
  text-decoration: none;
  color: #5383c3;
}

#help_e a:hover {
  text-decoration: underline;
  color: #19448e;
}

ul.help-list-e i.fa-solid {
  line-height: 1.7 !important;
}

@media screen and (min-width: 768px) {
  table.help-list-table {
    min-width: 740px;
    width: 100%;
  }

  table.help-list-table td,
  table.help-list-table-e td {
    display: table-cell;
    width: 100%;
  }
}

/* ------------------------------
　　このサイトのご利用規約
------------------------------ */
.terms-sub-headline {
  font-size: 2rem;
  color: #165e83;
}

ol.terms-list {
  list-style: decimal;
  padding-inline-start: 40px;
}

ol.terms-list li {
  margin-bottom: 10px;
}

ul.terms-ul {
  list-style: disc;
  padding-inline-start: 20px;
  margin-top: 10px;
}

ul.terms-ul li {
  margin-bottom: 5px;
}

/* ------------------------------
　　ocprofile
------------------------------ */
a.go-Top {
  font-size: 1.3rem;
  text-decoration: none;
  color: #f08300;
}

.profile-sub-title {
  font-size: 2rem;
  margin-bottom: 10px;
  color: #165e83;
}

h3.profile-sub-headline {
  font-size: 1.8rem;
  margin-bottom: 10px;
  color: #165e83;
}

h4.works-category {
  font-size: 1.6rem;
  padding-left: 10px;
  padding-bottom: 10px;
}

h5.works-list {
  font-size: 1.6rem;
  padding-left: 25px;
}

table.company-profile,
table.company-history {
  font-size: 1.5rem;
  table-layout: fixed;
  border-collapse: collapse;
  border: 1px solid #808080;
  margin: 10px 0;
}

table.company-profile th,
table.company-history th {
  background-color: #82afcc;
  color: #fff;
  border: 1px solid #808080;
  padding: 8px;
}

table.company-profile td,
table.company-history td {
  padding: 8px;
  border: 1px solid #808080;
}

#access {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9のアスペクト比 */
  height: 0;
  margin-bottom: 10px;
}

#access iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

p.works-list-p {
  padding-left: 40px;
}

/* ------------------------------
　　contact_us
------------------------------ */
table.contact-us,
table.contact-us-e {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}

table.contact-us td,
table.contact-us-e td {
  padding: 5px 2px;
  font-size: 1.7rem;
  display: block;
  width: 100%;
}

table.contact-us td > img {
  vertical-align: top;
  margin-right: 0.5rem;
  height: 17.5px;
}

h3.company-name {
  font-size: 2rem;
}

h3.company-name-e {
  font-size: 2.5rem;
}

h4.contact-us-headline {
  font-size: 2rem;
  color: #164a84;
}

h4.contact-us-headline-special {
  font-weight: bold;
  font-size: 2rem;
  color: #d3381c;
}

table.contact-us-e {
  width: fit-content;
  margin: 0 auto;
}

.contact-last-td {
  padding-bottom: 25px !important;
}

table.contact-us i.fa-arrow-right,
table.contact-us-e i.fa-arrow-right {
  color: #164a84;
}

@media screen and (min-width: 768px) {
  table.contact-us td,
  table.contact-us-e td {
    display: table-cell;
  }
}

/* ------------------------------
　　calender
------------------------------ */
#calender {
  margin-bottom: 10px;
}

div.cal_wrapper {
  padding: 10px 0px;
}

#all_wrap {
  border: solid 1px #e5e5e5;
  border-radius: 5px;
  padding: 6px;
  margin: 0px;
}

#cal0 {
  border: solid 1px #e5e5e5;
  border-radius: 5px;
  padding: 8px;
}

#cal0 table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

div.schedule_wrapper {
  padding: 10px 0px;
  width: 310px;
  border: solid 1px #ccc;
  border-radius: 5px;
  box-shadow: 1px 1px 3px #666;
}
div.schedule_wrapper h3 {
  padding: 0px 10px;
  font-weight: normal;
  margin: 0px;
  font-size: 12px;
  color: #666;
}
div.schedule_wrapper div.schedule_list {
  padding: 0px 10px;
  margin: 0px;
}
div.schedule_wrapper div.schedule_list ol {
  padding: 0px;
  margin: 5px auto;
  border-top: solid 1px #ccc;
}
div.schedule_wrapper div.schedule_list ol li {
  padding: 5px 10px 0px 0px;
  margin: 0px 0px 0px 30px;
  font-size: 12px;
  line-height: 1.5em;
}
div.schedule_wrapper div.schedule_list ol li:hover {
  text-decoration: underline;
}
div.cal_wrapper table.cal tr th p {
  float: left;
  padding: 0px 3px 3px 3px;
  margin: 0px;
  color: #666;
  font-size: 12px;
}
div.cal_wrapper table.cal tr th div.cal_ui {
  float: right;
}
div.cal_wrapper table.cal tr th div.cal_ui input {
  border: solid 1px #ccc;
  background-color: #fff;
  font-size: 12px;
  margin: 0px 1px;
  padding: 1px 5px;
  border-radius: 3px;
}
div.cal_wrapper table.cal tr td {
  border-top: solid 1px #eee;
}
div.cal_wrapper table.cal tr td {
  font-size: 9px;
  text-align: center;
  padding: 3px;
}
div.cal_wrapper table.cal tr.headline td {
  padding: 3px 0px;
  color: #666;
}
div.cal_wrapper table.cal tr.headline {
  background-color: #eee;
}
div.cal_wrapper table.cal tr td div {
  position: relative;
  padding: 3px 6px;
  font-size: 9.5px;
  text-align: center;
  background-color: #fff;
  border-radius: 3px;
}
div.cal_wrapper table.cal tr td div span {
  display: none;
  position: absolute;
  top: 20px;
  left: 0px;
  width: 80px;
  border: solid 1px #eee;
  background-color: #fff;
  text-align: left;
  padding: 5px;
  z-index: 10;
  color: #000;
  font-weight: normal;
  line-height: 1.5em;
  box-shadow: 1px 1px 3px #666;
}

/* 以下、クラス指定するときのアレ */

div.cal_wrapper table.cal tr td div.Sat {
  color: #00f;
}
div.cal_wrapper table.cal tr td div.Sun {
  color: #f00;
}
div.cal_wrapper table.cal tr td div.Mon {
  color: #000;
  background-color: #a0d8ef;
}
div.cal_wrapper table.cal tr td div.Wed {
  color: #000;
  background-color: #a0d8ef;
}
div.cal_wrapper table.cal tr td div.Fri {
  color: #000;
  background-color: #a0d8ef;
}
div.cal_wrapper table.cal tr td div.Today {
  border: #0306fb 2px solid;
}

div.cal_wrapper table.cal tr td div.Furikae {
  color: #000;
  background-color: #a0d8ef;
}

div.cal_wrapper table.cal tr td div.Deli {
  background-color: #efe;
}
div.cal_wrapper table.cal tr td div.Holyday {
  font-weight: bolder;
  color: #fff;
  background-color: #e83929;
}
div.cal_wrapper table.cal tr td div.Publication {
  font-weight: bolder;
  color: #f00;
  background-color: #60ff9a;
}
div.cal_wrapper table.cal tr td div.Birthday {
  font-weight: bolder;
  background-color: #eef;
  color: #090;
  border-radius: 3px;
}

div.cal_wrapper table.cal tr td div.backward {
  color: #ccc;
  font-weight: normal;
  background-color: #fff;
  border-radius: 3px;
}
div.cal_wrapper table.cal tr td div.pointer {
  cursor: pointer;
}
div.cal_wrapper table.cal tr td div.pointer:hover {
  background-color: #f00;
}

/* ------------------------------
　　その他
------------------------------ */
.top-spot {
  text-align: center;
  margin-bottom: 20px;
}

a.renewal-top {
  display: inline-block;
  border: 1px solid #ff0000;
  padding: 3px 5px 3px 5px;
  color: #ff0000;
  font-size: 1.4rem;
  font-weight: bold;
  text-decoration: none;
}

a.renewal-top:hover {
  color: #ff7f50;
}

a.renewal-banner {
  display: block;
  width: 100%;
  padding: 8px;
  background-color: #507ea4;
  font-size: 1.4rem;
  font-weight: bold;
  text-decoration: none;
  line-height: 1.3;
  color: #fff;
}

a.renewal-banner:hover {
  background-color: #165e83;
}

@media screen and (min-width: 768px) {
  .top-spot {
    margin-bottom: 10px;
  }
}
