﻿@charset "UTF-8";

@import url("./spacing-utility.css");
@import url("./form-validator.css");

/** ==================================================================== 
 * 共通 
 * ===================================================================== */
body {
	font-size: 100.01%;
	line-height: 1.6;
	text-align: center;
	color: #333333;
	font-family: Verdana,Arial,Meiryo,"メイリオ","Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3",Osaka,"MS P Gothic","ＭＳ Ｐゴシック",sans-serif;
	background: url(../img/bg_body.gif) repeat-x;
}
section {
	margin-top: 40px;
}
div#footerContWrap {
	width: 100%;
	padding-top: 2px;
	background: #F6F7FB url(../img/bg_footer.jpg) repeat-x;
	border-bottom: 1px solid #E4E4E4;
	min-width: 960px;
}

div#nav ul li#mainNav01 span,
div#nav ul li#mainNav02 span,
div#nav ul li#mainNav03 span,
div#nav ul li#mainNav04 span,
div#nav ul li#mainNav05 span {
  display: block;
  width: 190px;
  height: 40px;
  background-image: url(../img/header-nav.png);
  background-repeat: no-repeat;
  text-indent: -9999px;
  font-size: 0;
}


/** 
 * タグ指定
 * --------------------------------------------------------------------- */
input {
	box-sizing: border-box;
	border: 1px solid #777;
}

select {
	background-color: #fff;
	border: 1px solid #999;
	height: 22px;
	width: 180px;
	border-radius: 2px;
}

/* フォーム要素のベーススタイル改善 */
input, select, textarea {
	transition: all 0.2s ease-in-out;
	border-radius: 3px;
}

input:focus, select:focus, textarea:focus {
	outline: none;
	border-style: solid;
	border-color: #80bdff;
	box-shadow: 0 0 0 0.2rem rgba(0,123,255,0.25);
}

input.disabled {
	background-color: #ddd;
}

.input-disabled-style {
  border: 1px solid #d8d7d5ff;
  background-color: #f9f9f9ff !important;
  cursor: default;
}

ul {
	list-style: none;
}
ul.disc {
	list-style: disc;
}
a {
	text-decoration: none;
}

h3.mt-10 > a#toggleContent {
  text-decoration: underline;
}

h3.mt-10 > a#toggleContent:hover {
  text-decoration: none;
}

textarea {
	border: 1px solid gray;
}

/** 
 * レイアウト
 * --------------------------------------------------------------------- */
.text-left {
	text-align: left;
}

.text-right {
	text-align: right;
}

.text-center {
	text-align: center;
}

.right {
	float: right;
}

.justify-content-right {
	justify-content: right;
}

.center-flex {
	display: flex;
  	justify-content: center;
}

.index-font {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
}
.hidden {
	display: none;
}

.container {
	background-color: white;
	padding: 2rem;
	max-width: 400px;
	width: 100%;
	margin: 0px auto;
}

.form-group {
	margin-bottom: 1.5rem;
}

.form-group label {
	display: block;
	margin-bottom: 0.5rem;
	color: #555;
}

.form-group input[type="text"],
.form-group input[type="email"] {
	width: 100%;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.checkbox-group {
	padding: 2px 4px;
	line-height:1.6;
}

.checkbox-group.is-invalid {
	border: 1px solid #dc3545 !important;
	background-color: #ffe4e1 !important;
}

select option[value=""] {
  color: #7e7e7e;
}

select:has(option[value=""]:checked) {
  color: #7e7e7e;
}

select option:not([value=""]) {
  color: #000;
}

.status-select option[value="-1"] {
  color: #7e7e7e !important;
}

.status-select:has(option[value="-1"]:checked) {
  color: #7e7e7e !important;
}

.status-select option:not([value="-1"]) {
  color: #000 !important;
}

.radio-group {
    padding: 6px 4px;
	line-height:1.6;
}

.radio-group.is-invalid {
	border: 1px solid #dc3545 !important;
	background-color: #ffe4e1 !important;
}

/* ラジオボタンのスタイル改善 */
.radio-group .form-check {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
}

.radio-group .form-check:last-child {
    margin-bottom: 0;
}

.radio-group .form-check-input {
    margin-right: 8px;
}

.catType02 h2 {
	margin-bottom: 1rem;
}

.full-width {
	width: 100%;
	background-color: #e2edf8;
	min-height: 300px;
}


/** 
 * スタイル
 * --------------------------------------------------------------------- */
.font12 {
	font-size: 1.2em;
}

.gray {
	color:#777;
}
.error {
	color: #C34131;
}

h2.title {
	display: flex;
	justify-content: space-between;
}
h2 span.purple {
	border-left: 4px solid #783a85;
}

h2 span.deep-blue {
	border-left: 4px solid #005172;
}

/** 
 * input
 * --------------------------------------------------------------------- */

.input-xs {
	width: 50px !important;
}

.input-sm {
	width: 100px !important;
}

.input-md {
	width: 300px !important;
}

.input-md-plus {
	width: 400px !important;
}

.input-lg {
	width: 500px !important;
}

.input-mx {
	width: calc(100% - 10px) !important;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.input-60 {
	width: 60px !important;
}

.input-70 {
	width: 70px !important;
}

.input-date {
	width: 120px;
}

.postal-cd-first {
	width: 60px;
}

.postal-cd-last {
	width: 70px;
}

input.error {
	border: 1px solid red;
	background-color: pink;
}


/** 
 * select
 * --------------------------------------------------------------------- */
select .placeholder {
	color: #ddd;
}

select.error {
	border: 1px solid red;
	background-color: pink;
}

/** 
 * button
 * --------------------------------------------------------------------- */
button {
	cursor: pointer;
}
.details-btn {
	display: inline-flex;
	background-color: #ededee;
	color: #3060aa;
	padding: 2px 10px;
	cursor: pointer;
	border: 1px solid #ddd;
	border-radius: 5px;
}

.details-btn:hover {
	background-color: #fbfbfc;
}

.details-btn.danger {
	background-color: #d04255;
	color: #fff;
	border: 1px solid #c7243a;
}

.details-btn.danger:hover {
	background-color: #e38692;
	border: 1px solid #d04255;
}

/* ボタンスタイル */
.btn-area {
	margin: 10px 0px;
	display: flex;
}

.btn-area>div {
	flex: 0 1 50%;
}

.btn-area>div:first-child {
	text-align: left;
}

.btn-area>div:last-child {
	text-align: right;
}

.btn-group {
	display: flex;
	justify-content: space-around;
	gap: 40px;
}

.btn.outline {
	padding: 15px;
	border: 1px solid #0066cc;
	background: white;
	color: #0066cc;
	border-radius: 4px;
	cursor: pointer;
	text-align: center;
	transition: all 0.3s ease;
	padding: 20px 20px;
	text-decoration: none;
}

.btn.outline.check-item {
	border: none;
	border-radius: 10px;
	background: #0F5172;
	color: white;
	padding: 15px 5px;
	font-size: 1.2em;
	display: flex;
  	align-items: center;
  	justify-content: center;
}

.btn.outline.next {
	border: none;
	border-radius: 10px;
	background: #0F5172;
	color: white;
	min-width: 130px;
	padding: 0.5em 5em;
	font-size: 1.5em;
	font-weight: 700;
}

.btn.outline.next.disabled {
	pointer-events: none;
	background-color: #eee;
	color: #aaa;
}
.btn.outline:hover.next.disabled {
	background-color: #eee;
	color: #aaa;
}
.btn.outline:hover {
	background: #0066cc;
	color: #fff;
}

.btn-group .btn {
	flex: 0 0 28%;
}

.btn-menu-group {
	display: flex;
	width: 100%;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}

.btn-menu-group a {
	flex: 1;
	padding: 15px 10px;
	text-align: center;
	text-decoration: none;
	color: #0066cc;
	position: relative;
	border-right: 1px solid #ccc;
}

.btn-menu-group a:last-child {
	border-right: none;
}

.btn-menu-group a:after {
	content: "▼";
	display: block;
	font-size: 12px;
	margin-top: 5px;
}

.btn-menu-group a:hover {
	background-color: #f5f5f5;
}

/* カテゴリーボタングループ */
.category-buttons {
	display: flex;
	justify-content: start;
	margin-bottom: 40px;
	flex-wrap: wrap;
	gap: 13px;
}

.ml-31 {
	margin-left: 31px;
}

.category-btn {
	padding: 5px 20px;
	border: 1px solid #0F5172;
	background: white;
	color: #0F5172;
	border-radius: 50px;
	cursor: pointer;
	text-align: center;
	transition: all 0.3s ease;
	min-height: 55px;
	min-width: 165px;
	max-width: 165px;
}

.category-btn.active {
	background: #0F5172;
	color: white;
}

.custom-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 3px 5px;
	width: 200px;
	background: linear-gradient(to bottom, #ffffff, #e0e0e0);
	/* 上方向に薄いグレーのグラデーション */
	border: 1.5px solid #eee;
	/* グレーの枠線 */
	box-shadow: 0px 0px 1px #333;
	cursor: pointer;
	color: #4b66b9;
	font-size: 14px;
	transition: background 0.3s ease;
	font-family: 'Yu Gothic';
	font-weight: 900;
	margin: 5px 1px;
}

.custom-btn.big {
	width: 300px;
	height: 50px;
}

.custom-btn.to-outside {
	display: inline-block;
	text-align: left;
	padding: 1em 2em;
	border-radius: 10px;
	width: 30%;
	border: none;
	margin: 0;
}

.custom-btn:hover {
	background: linear-gradient(to top, #ffffff, #dce8f4);
	/* 下方向に薄い水色のグラデーション */
}

.custom-btn.blue {
	background: radial-gradient(at 0% 0, #b1d3ff 0%, #b1d3ff 10%, #063275 100%);
	color: #fff;
}

.custom-btn.flat-blue {
	background: #0F5172;
	color: white;
}

.custom-btn.flat-blue:hover {
}

.custom-btn.blue:hover {
	background: radial-gradient(at 20% 0, #b1d3ff 0%, #307fe0 40%, #307fe0 100%);
}

.custom-btn.gray {
	background: radial-gradient(at 0% 0, #e2e3e7 0%, #aeafb3 10%, #616266 100%);
	color: #fff;
}

.custom-btn.gray:hover {
	background: radial-gradient(at 20% 0, #e2e3e7 0%, #aeafb3 40%, #aeafb3 100%);
}

.custom-btn.red {
	background: radial-gradient(at 0% 0, #f8e1e8 0%, #e38692 10%, #c7243a 100%);
	color: #fff;
}

.custom-btn.red:hover {
	background: radial-gradient(at 20% 0, #f8e1e8 0%, #e38692 40%, #d34c5e 100%);
}

.custom-btn span {
	flex: 1 1 100%;
}

/* 右向きの三角形アイコン */
.triangle-icon {
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 6px solid #b4bfde;
	/* 三角形の色を黒に設定 */
	margin-left: 10px;
}

.triangle-icon-l {
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-right: 6px solid #b4bfde;
	/* 三角形の色を黒に設定 */
	margin-right: 10px;
}

.triangle-icon-rb {
	width: 0;
	height: 0;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid #b4bfde;
	/* 三角形の色を黒に設定 */
	margin-top: 7px;
	margin-left: 10px;
}

.triangle-icon-rt {
	width: 0;
	height: 0;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-bottom: 6px solid #b4bfde;
	/* 三角形の色を黒に設定 */
	margin-top: 6px;
	margin-left: 10px;
}


/* ファイル選択ボタンのエラー状態 */
.custom-file-input .btn-file-select.is-invalid {
	background-color: #e9e9ed !important;
	border: 1px solid #dc3545 !important;
}

/* ファイル名表示のスタイル */
.custom-file-input .gray {
	color: #6c757d;
}

/* エラー状態のボタンホバー */
.custom-file-input .btn-file-select.is-invalid:hover {
	background-color: #d0d0d7 !important;
	border: 1px solid #dc3545 !important;
}
/** 
 * span
 * --------------------------------------------------------------------- */
span.required {
	color: #C34131;
	display: inline-block;
	margin-top: 5px;
	vertical-align: middle;
	font-size: 1.2rem;
}

span.strong-underline {
	font-weight: 600;
	text-decoration: underline;
}

span.in-btn-large {
	font-size: 1.3em;
}

span.in-btn-middle {
	font-size: 1.1em;
}

span.in-btn-small {
	font-size: 0.8em;
}
/** 
 * ul
 * --------------------------------------------------------------------- */
.list {
	list-style: disc;
	margin-bottom: 5px;
}


/** 
 * table
 * --------------------------------------------------------------------- */
.table {
	border-top: 3px solid #ccc;
}

.table thead tr th {
	text-align: center;
	font-size: 1.2rem;
	border-bottom: 2px solid #eee;
}

.table tbody tr td {
	font-weight: 600;
	padding: 10px 15px;
}

.table tfoot {
	border-top: 3px solid #ccc;
	font-weight: 900;
	background-color: #eee;
	font-size: 1.2rem;
}

.table.payment tbody tr:last-child td {
	border-top: 2px solid #eee;
	height: 5px;
	padding: 0px;
}

.searchTable td {
	height: 40px;
}

.table-responsive {
	overflow-x: auto;
}

.table-responsive .search-result {
	width: 100%;
	border-collapse: collapse;
}

.table-responsive .search-result th,
.table-responsive .search-result td {
	border: 1px solid #ddd;
	padding: 8px;
	min-width: 100px;
	/* 最小幅を設定 */
}

.table-responsive .search-result input[type="text"],
.table-responsive .search-result select {
	width: 100%;
	box-sizing: border-box;
}

.table-responsive .search-result th {
	text-align: center;
}

/* 特定のカラムに対して幅を指定する例 */
.table-responsive .search-result .col-wide {
	min-width: 200px;
}

.table-responsive .search-result .col-narrow {
	min-width: 80px;
}

.table-responsive .search-result input[type="text"],
.table-responsive .search-result select {
	width: 100%;
	padding: 5px;
	border: none;
	background-color: transparent;
}

.table-responsive .search-result .editable,
.table-responsive .search-result .editable input[type="text"] {
	background-color: #f6d580;
}

.table-responsive .search-result tr:hover {
	background-color: #fffbd5;
	/* ホバー時に背景色を変える */
}

.table-responsive .search-result tr.selected {
	background-color: #fffbd5;
}

.price-table thead tr th {
	background-color: #E1E8EC;
	color: #0D5172;
	font-weight: bold;
	padding: 10px;
	text-align: center;
}

.price-table tbody tr td {
	font-size: 1.1rem;
	font-weight: 400;
	padding-left: 5%;
	text-align: left;
	vertical-align: middle;
	white-space: nowrap;
	background-color: white;
}

.price-table tbody tr td:last-child {
	text-align: right;
	padding-right: 1.5em;
}

.price-table th,
.price-table td {
	border: 2px solid #ddd;
	padding: 8px;
	min-width: 100px;
	/* 最小幅を設定 */
}

/* ラベル全体をFlexboxで整列 */
.confirm-table label {
    display: flex;
    align-items: center; /* 縦位置を揃える */
    gap: 2px; /* チェックボックスとテキストの間隔 */
    margin-top: 4px;
    pointer-events: none;
}    
/* チェックボックスを隠す */
.confirm-table input[type="checkbox"].disabled {
    display: none;
}
/* ラベルで見た目をカスタマイズ */
.confirm-table span.custom-checkbox {
    position: relative;
    display: inline-block;
    width: 10px;
    height: 10px;
    border: 2px solid #ccc;
    border-radius: 1px;
    background-color: #f9f9f9;
    cursor: not-allowed; /* ポインターを変更 */
    margin-right: 5px;
}

/* チェック状態のスタイル */
.confirm-table input[type="checkbox"]:checked + input + .custom-checkbox {
    background-color: #ddd;
    border-color: #aaa;
}

/* 擬似要素を追加してチェックマークを表示 */
.confirm-table input[type="checkbox"]:checked + input + .custom-checkbox::after {
    content: '';
    position: absolute;
    left: 3px;
    top: -3px;
    width: 4px;
    height: 10px;
    border: solid #555;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/** 
 * ツールバー
 * --------------------------------------------------------------------- */
.inputPurpose input,
.inputPurpose textarea {
	margin-top: 3px;
}

.inputPurpose label {
	margin-top: 3px;
	display: inline-block;
	vertical-align: top;
}

/** 
 * ヘッダメニューバー
 * --------------------------------------------------------------------- */
.menu-bar {
	text-align: center;
	position: absolute;
	top: 3px;
	font-size: 0.8rem;
}

.menu-bar ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-block;
}

.menu-bar ul li {
	display: inline;
}

.menu-bar ul li a {
	color: white;
	text-decoration: none;
	position: relative;
	padding-left: 8px;
}

.menu-bar ul li a:hover {
	text-decoration: underline;
}

/* 右向き三角形のスタイル */
.menu-bar ul li a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
	border-left: 4px solid white;
	/* 三角形の色を白に */
}

/** 
 * 管理サイトからの遷移用ヘッダ
 * --------------------------------------------------------------------- */
.admin-header {
	background: #073c96;
	height: 25px;
	color: white;
	position: fixed;
	min-width: 1024px;
	width: 100%;
	top: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	padding: 0 10px;
	white-space: nowrap;
}

 
/** 
 * ヘッダロゴ
 * --------------------------------------------------------------------- */
.header-img {
	margin-top: 20px;
	display: flex;
	justify-content: space-between;
}

.header-img.main-img {
	position: absolute;
	object-fit: cover;
	width: 100vw;
	height: 200px;
	margin-top: 0;
}
.header-img.main-img + div {
	position: relative; 
	color: white;
	width: 940px;
	margin: 0 auto;
}
.header-img #tsr-logo {
	height: 30px;
}

.header-img #db-logo {
	height: 45px;
	margin-left: 10px;
}

.bd_b_red {
	border-bottom: 1px solid #C34131;
}

.ftw_b {
	font-weight: bold;
}

.font_red {
	color: #C34131 !important;
}

.border-bottom {
	border-bottom: 1px solid #ccc;
	width: 100%;
	padding-bottom: 15px;
}

/** 
 * メインビジュアル
 * --------------------------------------------------------------------- */
 #main-visual {
	background-image: url(../img/bg-visual.png);
	background-repeat: no-repeat;
	background-position: right center;
	background-size: cover;
	background-color: #0f5173;
	color: #fff;
	margin: 20px 0 50px;
}
.main-v-content {
	max-width: 960px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 10px;
}
.main-v-text {
	flex: 1 1 55%;
	font-size: 1.4rem;
	line-height: 2;
	padding: 5rem 0 6rem;
}
.main-v-title {
	width: 85%;
	margin: 3rem 0;
}
.main-v-illust {
	flex: 1 1 22%;
	text-align: right;
}
.main-v-illust img {
	max-width: 100%;
	height: auto;
	margin-bottom: -0.4rem;
}

/** 
 * テーブル
 * --------------------------------------------------------------------- */
.item-header {
	width: 200px;
	vertical-align: top !important;
	padding-top: 5px !important;
}

.fixed-width-td {
	width: 245px;
}

/** 
 * ボックス
 * --------------------------------------------------------------------- */
.input-box {
	width: 100%;
	border: 3px solid #bfbfc8;
	box-sizing: border-box;
	background-color: #f7f7f7;
	padding: 20px;
}

.input-box .row {
	display: flex;
	margin-bottom: 15px;
}

.input-box .row:last-child {
	margin-bottom: 0px;
}

.input-box .row .label {
	flex: 1 1 150px;
	font-weight: 900;
}

.input-box .row .label.required>span:after,
.required>span:after,
.required>label:after {
	content: "*";
	margin-left: 3px;
	color: red;
	font-size: 1rem;
	vertical-align: middle;
}

.checkbox-group label.required-label::before {
	content: "*";
	margin-right: 3px;
	color: red;
	font-size: 15px;
	vertical-align: -0.33em;
	font-weight: bold;
}

.checkbox-group.no-padding {
  padding: 0 0 0 1.5px !important;
}

.input-box .row .input-group {
	flex: 1 1 calc(100% - 100px);
}

.info-box {
	width: 100%;
	border: 5px solid #7a91d7;
	box-sizing: border-box;
	background-color: #f7f7f7;
	padding: 5px 10px;
	min-height: 150px;
}

/** 
 * ステップ表示
 * --------------------------------------------------------------------- */
.step-background{
	background-color: #dbecef;
	width: 100%;
	padding: 5%;
	box-sizing: border-box;
}
.step-container {
	display: flex;
	justify-content: flex-start;
	padding: 0px;
	margin: 0px auto 20px;
}

.step-list {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
	width: 100%;
}

.step-item {
	background: #e0e0e0;
	padding: 5px;
	position: relative;
	margin-right: 0;
	margin-left: 0;
	color: #333;
	flex: 1;
	font-size: 1rem;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.step-item:after {
	content: '';
	position: absolute;
	top: 0;
	right: -15px;
	width: 15px;
	height: 100%;
	background: #e0e0e0;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	z-index: 1;
}

.step-item::before {
	content: '';
	position: absolute;
	top: -5px;
	right: -20px;
	width: 20px;
	height: 40px;
	background: #fff;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	z-index: 1;
}

.step-item .step-text {
	font-weight: bold;
	font-size: 1.0rem;
	text-align: center;
}

.step-item.active {
	background: #333;
	color: white;
}

.step-item.active:after {
	background: #333;
}

.step-item.completed {
	background: #999;
	color: white;
}

.step-item.completed:after {
	background: #999;
}

.step-item:last-child {
	margin-right: 0;
}

.step-item:last-child:after {
	display: none;
}


.v-step-container {
	margin: 20px auto;
	font-family: sans-serif;
}

.v-step-header-text {
	margin-bottom: 30px;
	line-height: 1.6;
	color: #333;
	font-size: 14px;
}

.v-step-box {
	display: flex;
	align-items: flex-start;
	padding: 20px;
	background: #fff;
	margin-bottom: 40px;
	/* 矢印が大きくなった分、余白を増やす */
	position: relative;
}

.v-step-box:nth-child(even) {
	background: #f8f9ff;
}

/* 矢印の共通スタイル - サイズを大きく */
.v-step-box:not(:last-child)::after {
	content: '';
	position: absolute;
	bottom: -30px;
	/* 位置を下に調整 */
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 100px solid transparent;
	/* 横幅を増やす */
	border-right: 100px solid transparent;
	/* 横幅を増やす */
}

/* 奇数ステップの矢印（白背景） */
.v-step-box:nth-child(odd) {
	margin-bottom: 10px;
}

.v-step-box:nth-child(even) {
	padding-top: 50px;
}

.v-step-box:nth-child(odd):not(:last-child)::after {
	border-top: 35px solid #fff;
	/* 高さを増やす */
	bottom: -40px;
	z-index: 2;
}

/* 偶数ステップの矢印（青背景） */
.v-step-box:nth-child(even):not(:last-child)::after {
	border-top: 35px solid #f8f9ff;
	/* 高さを増やす */
	z-index: 2;
}

.v-step-icon {
	width: 45px;
	height: 45px;
	min-width: 45px;
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-right: 15px;
	padding: 5px 0;
}
.v-step-icon img {
	width: 100%;
}

.v-step-icon .v-step-number {
	font-size: 12px;
	margin-bottom: 5px;
	color: #0066cc;
	font-weight: bold;
}

.v-step-icon i {
	font-size: 24px;
	color: #0066cc;
}

.v-step-content {
	flex-grow: 1;
}

.v-step-title {
	color: #0066cc;
	font-size: 18px;
	font-weight: bold;
	margin-bottom: 8px;
}

.v-step-title.black {
	color: black;
}

.v-step-description {
	color: #333;
	line-height: 1.5;
	font-size: 14px;
}

.step-method-box {
	display: flex;
	align-items: flex-start;
	padding: 20px;
	margin-bottom: 13px;
	/* 矢印が大きくなった分、余白を増やす */
	position: relative;
}

.horizontal-line {
	background-image: url(../img/top-separater.png);
	background-repeat: no-repeat;
	height: 40px;
	opacity: 0.3;
}

.note {
	color: #666;
	font-size: 14px;
	margin-top: 5px;
}

/* 最後のステップの余白を調整 */
.v-step-box:last-child {
	margin-bottom: 30px;
}

.is-invalid {
	border: 1px solid #dc3545 !important;
	background-color: #ffe4e1 !important;
	transition: all 0.2s ease-in-out;
}
input[type='radio'].is-invalid {
	box-shadow:0px 0px 3px #dc3545;
}
.is-invalid:focus {
	border-color: #dc3545;
	box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
	outline: none;
}

/** ==================================================================== 
 * 振分けページ 
 * ===================================================================== */
#top.full-width {
	width: 100%;
	background-color: #fff;
}
div.center-content {
	margin:0px auto;
	width: 940px;
}
.header-title {
	font-size: 35px;
	font-weight: 600;
}

.top-title {
	font-size: 1.8em;
	color: #000;
	margin-bottom: 0.5em;
	line-height: 1.6;
	background-image: unset;
	padding-left: 0px;
	font-weight: 750;
}

.top-title.blue {
	color: #1F3681;
}

.headline-color {
	color: #0d5172;
}
.top-title.border-top {
	border-top: 2px solid #004067;
}

.entry {
	width: 940px;
	margin: 0 auto;
}

.entry_text_bg_blue.entry_text_bg_blue_round {
	border-radius: 0.5em;
}

.entry_text_bg_blue {
	padding: 2em;
	background-color: #EDF4FF;
}

.contents_h1 {
	font-size: 1.6em;
	color: #0D5172;
	margin-bottom: 1em;
	background-image: unset !important;
}
.contents_h3_under {
	border-bottom: 1px solid #1F3681;
	padding-bottom: 1em;
	margin-bottom: 1em;
	background-image: unset !important;
}

.contents_h3_center {
	font-size: 1.4em;
	text-align: center;
	color: #1F3681;
	margin-bottom: 1.8em;
	margin-bottom: 1.75em;
}

.guide-background {
	background-color: #f5f5f5;
	min-height: 600px;
}
.guide-background > .entry {
	padding: 2rem;
}

.guide-background::before{
	position: absolute;
	left: -100vw;
	right: -100vw;
	position: absolute;
}

.guide-step-icon {
	width: 40px;
	height: 45px;
	min-width: 40px;
	background: #9bd4dd;
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-right: 20px;
	padding: 5px;
}

.guide-step-icon .guide-step {
	font-size: 12px;
	color: #0d5172;
	font-weight: bold;
}

.guide-step-icon .guide-step-number {
	font-size: 20px;
	margin-bottom: 5px;
	color: #0d5172;
	font-weight: 600;
}

.footer-box {
	border: solid 1px #0d5172;
	border-radius: 15px;
	height: 150px;
	display: inline-flex;
}
.footer-box .img-box {
	background-color: #2D8EAB;
	border-radius: 15px 0 0 15px;
	padding: 25px 40px;
}

.footer-description {
	padding: 3rem 2rem;
	border-radius: 0px 15px 15px 0px;
}
.footer-box:hover > .footer-description {
	background-color: #dce5ea;
}
.sup-link {
  font-size: 0.75em;
  vertical-align: super;
  line-height: 1;
}
/* Q&A セクション */
.qa-section {
	margin-top: 30px;
}

.qa-section .qa-item:nth-child(odd) {
	background-color: #dbecef;
}

.qa-item {
	border-radius: 4px;
	overflow: hidden;
}

.qa-item:nth-child(odd) .question {
	background-color: #dbecef;
}

.qa-item:nth-child(odd):hover .question {
  background-color: rgb(212, 230, 200) !important;
}

.qa-item:nth-child(even):hover .question {
  background-color: #f8f9ff !important;
}
.qa-section .qa-item .answer a {
	text-decoration: none;
}
.qa-section .qa-item .answer a:hover {
	text-decoration: underline;
}
.qa-item:nth-child(odd) .answer {
	background-color: #dbecef;
}

.company-qa-item {
	border-radius: 4px;
	overflow: hidden;
}

.company-qa-item:nth-child(odd) .question {
	background-color: #dbecef;
}

.company-qa-item:nth-child(odd):hover .question {
  background-color: rgb(212, 230, 200) !important;
}

.company-qa-item:nth-child(even):hover .question {
  background-color: #f8f9ff !important;
}

.company-qa-item:nth-child(odd) .answer {
	background-color: #dbecef;
}

.question {
	padding: 15px;
	background-color: white;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.question-text {
	flex-grow: 1;
}

.toggle-icon {
	margin-left: 15px;
	color: #0066cc;
	transition: transform 0.3s ease;
}

.question.active .toggle-icon {
	transform: rotate(180deg);
}

.answer {
	padding: 20px;
	background: white;
	display: none;
	border-top: none;
}

.no-results {
	display: none;
}

.qa-icon {
  position: relative;
  display: block;
  width: 15px;
  height: 15px;
  margin-left: 15px;
  transition: 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
  will-change: transform;
}

.qa-icon:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 75%;
  height: 2px;
  border-radius: 10px;
  background: #0066cc;
  display: block;
}

.qa-icon:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 2px;
  height: 75%;
  border-radius: 10px;
  background: #0066cc;
  display: block;
  transition: 0.3s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: transform;
}

.question.active .qa-icon:after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/** リンクとボタンhover時、半透明に */
.custom-link:hover, .custom-btn.flat-blue:hover {
	opacity: 0.5;
	transition: opacity 0.3s ease;
}
#reference-service {
	width: 940px;
	margin: 0 auto;
}
.footer-hover:hover {
	color: rgba(13, 81, 114, 0.15);
	transition: opacity 0.3s ease;
}

/** ==================================================================== 
 * 利用者情報
 * ===================================================================== */

/** 法人格幅 */
select.select-legal, 
select.select-legal-app {
	width: 150px !important;
}

.input-group .comp-name-ht{
	height: 20px;
}

/** 300pxは法人格2つの合計幅 */
.input-group .comp-name-wid{
	width:calc(100% - 300px - 10px);
}

/** ==================================================================== 
 * トップページ 
 * ===================================================================== */
.top-menu-area {
	display: flex;
	gap: 10px;
	box-sizing: border-box;
	margin: 10px 40px;
	padding: 10px;
	justify-content: space-between;
	align-items: center;

}

.top-menu-area a {
	flex: 1;
	border-radius: 3px;
	box-shadow: 0px 0px 15px #ccc;
	transition: box-shadow 0.5s ease;
	/* 影を消すアニメーション */
}

.top-menu-area img {
	max-width: 100%;
	height: auto;
	display: block;
}

.top-th.wid-60{
	width: 60px !important;
}

.top-th.wid-90{
	width: 90px !important;
}

.top-th.wid-100{
	width: 100px !important;
}

.top-th.wid-130{
	width: 130px !important;
}

.top-th.wid-250{
	width: 250px !important;
}


/* ホバー時に背景色を変える */
.app-search-result tr:hover td,
.app-search-result tbody tr.even:hover td {
	background-color: #fffbd5 !important;
	cursor: pointer;
}

/** table横縞用 */
.app-search-result tbody tr.even td {
 background: #f1faff;
}

.app-search-result thead tr th,
.app-search-result tbody tr td {
	height: 34px ;
}

table.app-search-result thead th,
table.app-search-result thead td,
table.app-search-result tbody th,
table.app-search-result tbody td {
	 vertical-align: middle;
	 padding: 2px 4px;
	 border: 1px solid #A8B1C2;
	 word-wrap: break-word;
	 word-break: break-all;
}
 
table.app-search-result thead th,
table.app-search-result tbody th {
	 color: #0c1c4d;
} 

table.app-search-result thead tr th {
 	text-align: center;
}

table.app-search-result thead tr th,
table.app-search-result tbody tr th {
	 vertical-align: middle;
	 background: #d5e8f9;
}

table.app-search-result tbody tr.even th {
 	background: #c9e0f4;
}

/** ==================================================================== 
 * DUNS検索ページ（自社、他社） 
 * ===================================================================== */

/** 
 * 検索結果一覧
 * --------------------------------------------------------------------- */
.search-results {
	margin: 0 auto;
	box-sizing: border-box;
	padding-right: 5px;
}

table.search-result {
	width: 100%;
	border-collapse: collapse;
	font-family: Arial, sans-serif;
}

table.search-result th {
	background-color: #d5e8f9;
	/* 青色 */
	color: #0c1c4d;
	font-weight: bold;
	padding: 10px;
	text-align: left;
	border-bottom: 2px solid #0056b3;
	/* 少し濃い青で区切り */
}

table.search-result tbody tr td {
	font-weight: normal;
	padding: 5px;
	border-bottom: 1px solid #ddd;
	/* 下に薄いボーダー */
}

table.search-result tr:hover {
	background-color: #f1f1f1;
	/* ホバー時に背景色を変える */
}

table.search-result table,
table.search-result th,
table.search-result td {
	border: 1px solid #ccc;
	/* 薄いグレーの境界線 */
}

.result-header {
	text-align: right;
	margin-bottom: 2px;
	font-size: 14px;
	color: #666;
}

.result-item {
	background-color: #f3f7ff;
	border: 1px solid #ccc;
	box-shadow: 1px 1px 1px #999;
	margin-bottom: 5px;
	padding: 3px 10px;
	position: relative;
	cursor: pointer;
	min-height: 60px;
}

.company-name {
	color: #2251a1;
	font-weight: bold;
	margin-bottom: 5px;
	padding-right: 100px;
	font-size: 1.3rem;
}

.company-address {
	color: #666;
	font-size: 1.1rem;
	max-width: 830px;
}

.company-address span {
	font-size: 1rem;
}

.company-status {
	position: absolute;
	top: 3px;
	right: 13px;
	width: 110px;
	text-align: right;
}

.status-tag {
	display: inline-block;
	padding: 4px 8px;
	font-size: 12px;
	border-radius: 2px;
	margin-left: 5px;
	margin-bottom: 3px;
	min-width: 60px;
	text-align: center;
}

.status-main {
	background: radial-gradient(at 0% 0, #b1d3ff 0%, #b1d3ff 10%, #063275 100%);
	border: 1px solid #ddd;
	color: white;
}

.status-branch {
	background: radial-gradient(at 0% 0, #b1d3ff 0%, #b1d3ff 10%, #063275 100%);
	border: 1px solid #ddd;
	color: white;
}

.status-active {
	background-color: #fff;
	border: 1px solid #ddd;
	color: #333;
}

.status-inactive {
	background-color: #fff;
	border: 1px solid #ddd;
	color: #333;
}

/** ==================================================================== 
 * 自社変更申請ページ 
 * ===================================================================== */
table.comInfo thead tr th,
table.comInfo tbody tr th {
	height: 25px;
}


/** ==================================================================== 
 * 申請状況照会ページ 
 * ===================================================================== */
.appstatus-table .item-header {
	width: 195px !important;
}

.appstatus-file-table thead tr th {
	width: 25%;
}

.appstatus-file-table tbody tr td {
	text-align: center;
	padding: 10px 20px;
}

.appstatus-file-table tbody tr td .custom-btn {
	width: 165px;
}

.custom-btn.file-download-btn:disabled {
	pointer-events: none;
	color: #ababab !important;
	cursor: default !important;
}

/** ==================================================================== 
 * 各機能-確認ページ 
 * ===================================================================== */
.payment-form {
	position: relative;
}

/* 支払い */
.payment-form-container {
	font-family: Arial, sans-serif;
	margin: 0;
	padding: 0px;
}

.payment-form-layout {
	display: flex;
	gap: 40px;
}

.payment-form-left, .payment-form-right {
	flex: 1;
}

.payment-form-container h2 {
	font-size: 20px;
	margin-bottom: 20px;
	width: unset;
	border-right: 1px solid #ccc;
}

.payment-form-price-row {
	display: flex;
	justify-content: space-between;
	margin-bottom: 10px;
}

.payment-form-price-row:last-child {
	font-weight: bold;
	font-size: 24px;
	margin-top: 20px;
	padding-top: 10px;
	border-top: 1px solid #ccc;
}

.payment-form-promo-code {
	color: #0066cc;
	cursor: pointer;
	margin-bottom: 20px;
}

.payment-form-method {
	display: flex;
	margin-bottom: 20px;
}

.payment-form-option {
	border: 1px solid #ccc;
	padding: 10px;
	flex: 1;
	text-align: center;
	cursor: pointer;
}

.payment-form-option.selected {
	border-color: #0066cc;
}

.payment-form form {
	display: grid;
	gap: 10px;
}

.payment-form input,
.payment-form select {
	width: 100%;
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;

}

.payment-form-card-icons {
	display: flex;
	gap: 1px;
	position: absolute;
	top: 27px;
	right: 5px;
}

.payment-form-card-icons img {
	width: 30px;
	height: 20px;
	border: 1px solid #eee;
}

.payment-form-checkbox-container {
	display: flex;
	align-items: start;
	gap: 10px;
}

.payment-form-checkbox-container input {
	width: auto;
	margin-top: 3px;
}

.payment-form button {
	background-color: #0099e5;
	color: white;
	border: none;
	padding: 10px;
	border-radius: 4px;
	cursor: pointer;
	width: 100%;
}


/** ==================================================================== 
 * QAページ 
 * ===================================================================== */
.text_link.link_with_icon {
	padding-left: 0em;
	position: relative;
	display: inline-block;
	text-decoration: none;
	line-height: 1.4em;
}

.text_link {
	/* color: #1F3681; */
	color: #0e49ac;
	font-weight: 600;
	position: relative;
	display: inline-block;
	text-decoration: none;
}

.text_link:hover {
	text-decoration: underline;
}

.inquiry-link {
	font-weight: bold;
}

.inquiry-link:hover {
	text-decoration: underline;
}

.questions_accordion_wrap {
	position: relative;
	padding-bottom: 4em;
}

.questions_accordion_more_btn {
	position: absolute;
	right: 0;
	left: 0;
	bottom: 0;
	z-index: 1;
	width: 100%;
	padding: 1em;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	background: #FAFAFA;
	color: #2948AD;
	font-weight: 700;
	border-top: 1px dotted #E3E3E3;
	border-bottom: 1px dotted #E3E3E3;
	box-sizing: border-box;
}

.questions_accordion.is-hide {
	height: 15em;
}

.questions.questions_accordion {
	margin-bottom: 0;
	border-bottom: none;
}

.questions_accordion {
	overflow: hidden;
	position: relative;
}

.questions {
	border-top: 1px dotted #E3E3E3;
	border-bottom: 1px dotted #E3E3E3;
	margin-bottom: 2.5em;
}

.question_wrap:not(:last-child) {
	border-bottom: 1px dotted #E3E3E3;
}

.question_wrap {
	padding: 0;
	display: block;
}

.question_q {
	background-color: #F0F4FA;
}

.question_q, .question_a {
	padding: 1em;
	display: flex;
	margin-left: 0px;
}

.question_q_icon {
	color: #2948AD;
}

.question_q_icon, .question_a_icon {
	font-size: 1.5rem;
	width: 6%;
	text-align: center;
}

.question_q_text {
	width: 94%;
	font-weight: bold;
	font-size: 1rem;
	padding-left: 1rem;
	align-items: center;
	color: #1F3681;
	margin-bottom: auto;
	margin-top: auto;
}

.question_a {
	position: relative;
}

.question_a_icon {
	color: #C90017;
}

.question_a_box {
	overflow: hidden;
	width: 95%;
}

.question_a_text {
	overflow: hidden;
	position: relative;
	line-height: 1.7;
	font-size: 16px;
}

.question_a_text {
	width: 89%;
	order: 1;
	padding: 0 1em;
}

.questions_accordion_more_btn {
	position: absolute;
	right: 0;
	left: 0;
	bottom: 0;
	z-index: 1;
	width: 100%;
	padding: 1em;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	background: #FAFAFA;
	color: #2948AD;
	font-weight: 700;
	border-top: 1px dotted #E3E3E3;
	border-bottom: 1px dotted #E3E3E3;
	box-sizing: border-box;
}

.questions_accordion_more_btn_img {
	width: 1.1em;
	height: 1.1em;
	margin-right: 0.5em;
}

.questions_accordion_more_btn::after {
	content: "もっと見る";
	font-size: 1.2rem;
}

.questions_accordion_more_btn.is-show::after {
	content: "閉じる";
}

.questions_accordion_more_btn.is-show .questions_accordion_more_btn_img {
	rotate: 180deg;
}

/** ==================================================================== 
 * メンテナンス画面
 * ===================================================================== */
.schedule-time {
	font-weight: bold;
	color: #dc3545;
}

@media print, screen and (min-width: 768px) {

	.info_red2 {
		font-size: 1.2em;
		margin-bottom: 1.3em;
	}

	.contents_h3_center {
		font-size: 1.4em;
		margin-bottom: 2em;
	}

	.questions_accordion.is-hide {
		height: 25em;
	}

	.question_wrap {
		padding: 0;
	}

	.question_q_icon, .question_a_icon {
		width: 3%;
		font-family: YuMincho, 'Yu Mincho', serif;
	}

	.question_q_text {
		width: 97%;
	}

	.question_q_icon, .question_a_icon {
		width: 3%;
		font-family: YuMincho, 'Yu Mincho', serif;
	}

	.question_a_text {
		width: 95%;
		line-height: 1.8;
	}

	.question_a_btn {
		min-width: 18px;
		max-width: 18px;
	}
}