@charset "UTF-8";

/*
・ベースカラー: アイボリー (#FAF3E0)
・アクセントカラー: 藍色 (#0A3D62)
・補助カラー: 金色 (#D4AF37)
*/

/**************** base ****************/
html, body {
  margin: 0;
  padding: 0;
}

li, ul, p {
  list-style: none;
}

a {
  text-decoration: none;
  color: unset;
}

a:hover {
	color: #D4AF37;
}

body {
  background: #FAF3E0;
  color: #333333;
  font-family: 'Shippori Mincho', serif;
}

.contents {
  margin-top: 90px; /* ナビゲーションの高さに合わせて調整 */
}
@media screen and (max-width: 768px) {
  .contents {
    margin-top: 70px; /* ナビゲーションの高さに合わせて調整 */
  }
  .client .contents {
    margin-top: 40px;
  }
}

/* 特定のページ（例: 利用規約ページ `users/terms`）では適用しない */
.registrations .contents, .payments .contents {
  margin-top: 20px !important;
}

/* ページネーション */
.pagy-bootstrap-nav {
  cursor: pointer;
}

.page-link {
  background: none!important;
  border: none;
  color: #0A3D62!important;
}

.pagination .active .page-link {
  color: #D4AF37!important;
}

@media (hover: hover) {
  .page-link:hover {
    opacity: 0.6!important;
  }
}


/**************** footer ****************/
.footer {
	margin-top: 100px;
	margin-bottom: 0px;
	background-color: #D4AF37;
}

@media screen and (max-width: 768px) {
  .footer {
    margin-bottom: 70px;
  }
}

.footer a:hover {
  color: #FAF3E0;
}


/**************** page title ****************/
h4 {
	text-align: center;
  color: #D4AF37; /*#0A3D62;*/
  border-bottom: solid 3px #D4AF37;
}


/**************** form ****************/
.form-list {
	border-bottom: solid 1px #0A3D62;
}

.border-none {
	border-bottom: none;
}

/* ラジオボタンのカスタム */
.form-check-custom {
  display: flex;
  align-items: center;
}

/* ラベルをクリック可能に */
.form-check-custom .form-check-label {
  cursor: pointer;
  /*font-size: 1.1em;*/
  margin-left: 8px;
}

/* フォーカス時にラジオボタンを少し大きくする */
.form-check-input:hover {
  transform: scale(1.2);
  box-shadow: 2px 2px 2px #D4AF37;
  transition: transform 0.2s ease-in-out;
  cursor: pointer;
}

.form-check-input:focus {
  box-shadow: none;
  border-color: #dcdcdc;
}

/* 選択された時の背景色を変更 */
.form-check-input:checked {
  transform: scale(1.4);
  background-color: #D4AF37 !important;
  border-color: #D4AF37 !important;
}

.form-control, .form-select {
  background-color: #fcf7f0;
}

.form-control:focus, .form-select:focus {
  border-color: #D4AF37;
  outline: none;
  box-shadow: 2px 2px 2px #D4AF37;
}

.optional-label {
  display: inline-block;
  padding: 3px 8px;
  margin: 0px;
  background: #FAF8F0; /*#f5f5f5;*/
  font-size: 0.8em;
  border-radius: 3px;
  color: #707070;
}

.essential-label {
  display: inline-block;
  padding: 3px 8px;
  margin: 0px;
  background: #0A3D62;
  font-size: 0.8em;
  border-radius: 3px;
  color: #fff;
}

@media screen and (max-width: 768px) {
  .form-list{
    margin-left: 15px;
    margin-right: 15px;
  }

  .optional-label, .essential-label {
    padding: 3px 3px;
  }
}

.form-control::placeholder {
  color: #707070; /* 薄いグレー */
  opacity: 0.4;   /* さらに薄くする */
}

.date-icon {
  color: #0A3D62;
  cursor: pointer;
}

/* 検索フォーム */
.form-search-control {
  background-color: #fcf7f0;
  border-color: #0A3D62;
  position: relative;
}

@media screen and (max-width: 768px) {
  .form-search-control { border-radius: 8px !important; }
}

.form-search-control:focus {
  border-color: #D4AF37;
  box-shadow: 0 0 3px #D4AF37 inset;
}

.border-form {
  border-radius: 10px;
  border: 1px solid #0A3D62;
  box-shadow: 2px 2px 2px #0A3D62;
}


/**************** font-size ****************/
.fs-06 {
  font-size: 0.6em;
}

.fs-07 {
  font-size: 0.7em;
}

.fs-08 {
	font-size: 0.8em;
}

@media screen and (max-width: 768px) {
  .fs-sp-08 {
    font-size: 0.8em;
  }
}

.fs-09 {
  font-size: 0.9em;
}

.fs-12 {
  font-size: 1.2em;
}


/**************** font-color ****************/
.fc-light-gray {
	color: #707070;
}

.fc-gray {
	color: #666666;
}

.fc-indigo {
	color: #0A3D62;
}

.fc-gold {
  color: #D4AF37;
}

.fc-indianred {
  color: #cd5c5c;
}

.fc-rosybrown {
  color: #bc8f8f;
}


/**************** background-color ****************/
.bg-gold {
  background-color: #D4AF37;
}

/**************** btn ****************/
.btn:focus {
  outline: none;
  box-shadow: none;
}

.btn-custom {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 8px 40px;
  border-radius: 5px;
}

.btn-sm-custom {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 4px 40px;
  border-radius: 5px;
  font-size: 0.93em;
}

.btn-custom-2 {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 8px 15px;
  border-radius: 5px;
}

.btn-sm-custom-2 {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 4px 15px;
  border-radius: 5px;
}

.btn-sm-custom-3 {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 4px 10px;
  border-radius: 5px;
  font-size: 0.9em;
}

.btn-custom-4 {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 8px 25px;
  border-radius: 5px;
}

.btn-sm-custom-big {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 30px 10px;
  border-radius: 5px;
}
@media screen and (max-width: 768px) {
  .btn-sm-custom-3:focus, .btn-sm-custom-3:active { color: #FAF3E0 !important; }
}

.btn-outline-secondary {
  padding: 4px 10px;
  border-radius: 5px;
  font-size: 0.9em;
}

.btn-outline {
  background-color: #FAF3E0;
  color: #0A3D62;
  font-weight: bold;
  padding: 8px 40px;
  border-radius: 5px;
  border-color: #0A3D62;
}

.btn-outline-2 {
  background-color: #FAF3E0;
  color: #0A3D62;
  font-weight: bold;
  padding: 8px 15px;
  border-radius: 5px;
  border-color: #0A3D62;
}

.btn-outline-3 {
  background-color: #FAF3E0;
  color: #0A3D62;
  font-weight: bold;
  padding: 42px 40px;
  border-radius: 10px;
  border-color: #0A3D62;
}

@media (hover: hover) {
	.btn-custom:hover, .btn-custom-2:hover, .btn-sm-custom:hover, .btn-sm-custom-2:hover,
  .btn-sm-custom-3:hover, .btn-custom-4:hover {
		background-color: #0A3D62;
		color: #D4AF37;
	  border-color: #D4AF37;
	}

	.btn-outline:hover, .btn-outline-2:hover, .btn-outline-3:hover {
		color: #D4AF37;
		border-color: #D4AF37;
	}

  .btn-outline-secondary:hover {
    color: #fff;
    border-color: #6c757d;
  }
}

/*.btn::after {
  content: none !important;
  display: none !important;
}*/

.btn-search {
  background-color: #0A3D62;
  color: #FAF3E0;
  font-weight: bold;
  padding: 4px 15px;
  border-color: #0A3D62;
}

.btn-clear {
  background-color: #dcdcdc;
  color: #666666;
  padding: 4px 10px;
  border-color: #0A3D62;
}

.btn-clear-2 {
  background-color: #dcdcdc;
  color: #666666;
  padding: 8px 15px;
  border-color: #0A3D62;
}

.btn-sp-clear {
  color: #666666;
  position: absolute;
  top: 50%;
  left: 95%;
  transform: translate(-50%, -50%);
}

.btn-search:hover {
  color: #D4AF37;
  /*color: #0A3D62;*/
}

.btn-clear:hover, .btn-sp-clear:hover, .btn-clear-2:hover {
  color: #D4AF37;
}

.delete-botan:hover {
  color: #D4AF37;
}


/**************** check_box ****************/
/* チェックボックスの基本スタイル */
.check_box_custom {
  appearance: none;  /* デフォルトのチェックボックスのスタイルを無効化 */
  width: 20px;
  height: 20px;
  border: 1px solid #333;
  border-radius: 4px;
  display: inline-block;
  position: relative;
  transition: all 0.2s ease-in-out;
  cursor: pointer;
}

/* チェック時のスタイル */
.check_box_custom:checked {
  background-color: #D4AF37 !important;
  border-color: #D4AF37 !important;
  transform: scale(1.2);
}

/* チェック時に✓マークを追加 */
.check_box_custom:checked::before {
  content: "✔";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 16px;
  color: #0A3D62;
  font-weight: bold;
}

/* ホバー時のエフェクト */
.check_box_custom:hover, .check_box_custom:focus {
  box-shadow: 2px 2px 5px #D4AF37;
  transform: scale(1.1);
  transition: transform 0.2s ease-in-out;
}

/* ログアウトリンク */
.logout-link {
  text-decoration: none;
  color: unset;
  border: none;
}


/**************** table ****************/
.table {
  table-layout: fixed;
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0;
}

.table th, .table td {
  border-right: 1px solid #d3d3d3 !important; /* 縦線を追加 */
  position: relative; /* 確実に適用するための指定 */
}

/* 最後の列の縦線を削除（デザイン調整用） */
.table th:last-child, .table td:last-child {
  border-right: none!important;
}

thead {
  color: #FAF3E0;
  background-color: #0A3D62;
}

table thead {
  position: sticky;
  top: 70px;
  z-index: 10;
}

@media screen and (max-width: 768px) {
  .client table thead {
    top: 40px;
  }
}

tbody .inactive {
  color: #a9a9a9!important;
}

td {
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

.table-striped {
  border-bottom: solid 1px #d3d3d3;
}

.table-contents {
  cursor :pointer;
}

@media (hover: hover) {
  .table-contents:hover {
   background-color: #D4AF37!important;
  }
}
@media (hover: none) {
  .table-contents:hover {
    background-color: transparent !important;
  }

  table.table-hover tbody tr:hover {
    background-color: transparent !important;
  }
}

.t-w-5 { width: 5%; }
.t-w-10 { width: 10%; }
.t-w-15 { width: 15%; }
.t-w-20 { width: 20%; }
.t-w-25 { width: 25%; }
.t-w-30 { width: 30%; }
.t-w-35 { width: 35%; }
.t-w-40 { width: 40%; }
.t-w-45 { width: 45%; }
.t-w-50 { width: 50%; }
.t-w-55 { width: 55%; }
.t-w-60 { width: 60%; }
.t-w-65 { width: 65%; }
.t-w-70 { width: 70%; }
.t-w-75 { width: 75%; }
.t-w-95 { width: 90%; }

.in_table {
  border-bottom: solid 1px #d3d3d3;
}

/**************** table ****************/
.img-opacity-50 {
  opacity: 50%;
}

/**************** navbar icon ****************/
.profile-icon-2 {
  width: 25px;
  height: auto;
}

/**************** line-browser-warning ****************/
.line-browser-warning {
  position: relative;
  top: 40px;
  margin-bottom: 55px;
  left: 0;
  right: 0;
  z-index: 9999;
  background-color: #ffefef;
  padding: 10px;
  border: 1px solid red;
}