@charset "utf-8";
/* CSS Document */

html{
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", 'Noto Sans JP', sans-serif;
	font-weight: 600;
	font-feature-settings: "palt";
	font-size:14px;
	line-height:1.5;
	letter-spacing: 0.12em;
	color:#333;
	}

body{
	margin:0;
	min-width:1100px;
	-webkit-text-size-adjust: none;
	}	

/*common
------------------------------------------*/
h1,h2,h3,h4,h5,ul,li,dl,dt,dd,table,figure,p{
	border-collapse:collapse;
	list-style:none;
	margin:0;
	padding:0;
	}

*{
	box-sizing:border-box;
	}

img{
	border:none;
	vertical-align:middle;
	max-width:100%;
	transition: .3s;
	}

a{
	color:#311b08;
	text-decoration:none;
	-webkit-transition:all .3s;
	transition:all .3s;
	}

a:hover{
	opacity: 0.6;
	}

a.btn01{
	background-color: #311b08;
	color: #fff;
	display: inline-block;
	padding: 5px 10px;
	}

.alignL{text-align:left;}
.alignR{text-align:right;}
.alignC{text-align:center;}
.inner{ max-width:960px; margin:0 auto; position:relative; }
.fr{ float:right;}
.fl{ float:left;}
img.fr,figure.fr{ max-width:40%; margin:0 0 20px 20px;}
img.fl,figure.fl{ max-width:40%; margin:0 20px 20px 0;}
.mt10{ margin-top: 10px;}
.mt20{ margin-top: 20px;}
.mt30{ margin-top: 30px;}
.mt40{ margin-top: 40px;}
.mt50{ margin-top: 50px;}
p + p{ margin-top: 20px;}

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

.clear{ clear:both;}

.cf:after{
	content:" ";
	display:block;
	clear:both;
	}


/*header
------------------------------------------*/
header{
	background-color: #fff;
	}

header h1{
	width: 300px;
	}

header .inner{
	align-items: center;
	padding: 35px 0;
	}

header dl{
	display: flex;
	align-items: center;
	}

header dl dt{
	font-size: 11px;
	line-height: 1.3;
	text-align: right;
	color: #999;
	margin-right: 15px;
	}

header dl dt span{
	display: block;
	font-size: 24px;
	color: #112345;
	}

header dl dt span::before{
	content: "TEL";
	font-size: 50%;
	margin-right: 5px;
	}

header dl dd a.btn01{
	padding: 10px 20px;
	background-color: #112345;
	}


/*nav
------------------------------------------*/
nav{
	background-color: #fff;
	padding: 10px 0 20px;
	}

nav ul li{
	flex-basis: 20%;
	border-left: 1px dotted #ccc;
	}

nav ul li:last-child{
	border-right: 1px dotted #ccc;
	}

nav ul li a{
	display: block;
	font-size: 16px;
	text-align: center;
	color: #000;
	}

nav ul li a span{
	display: block;
	font-size: 10px;
	color: #999;
	}

nav ul li.ac a{
	opacity: 0.6;
	}

.navBtn,
#open{
	display:none;
	}


/*footer
------------------------------------------*/
footer{
	background:linear-gradient(180deg,#311b08 0,#311b08 130px,#fff 130px,#fff 100%);
	font-size: 12px;
	}

footer a{
	color: #fff;
	}

footer p.pagetop{
	position: absolute;
	right: 0;
	top: 0;
	}

footer p.pagetop a{
	display: inline-block;
	background-color: #120902;
	padding: 10px 15px;
	}

footer p.pagetop a::before{
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(-45deg);
	margin-right: 10px;
	}

footer ul.fnav{
	width: 500px;
	flex-wrap: wrap;
	padding: 22px 0;
	}

footer ul.fnav li{
	width: 130px;
	margin: 5px 0;
	}

footer ul.fnav li a::before{
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(45deg);
	vertical-align: middle;
	margin-right: 10px;
	}

footer address{
	color: #666;
	font-style: normal;
	margin: 20px 0;
	}

footer address strong{
	font-size: 130%;
	}

footer p.copyright{
	position: absolute;
	right: 0;
	bottom: 0;
	color: #666;
	}


/*top
------------------------------------------*/
#kv{
	background:url("../img/kv_bg.jpg") no-repeat center;
	}

#kv .inner{
	height: 450px;
	display: flex;
	align-items: center;
	}

#contents{
	padding: 60px 0;
	position: relative;
	}

#contents.home::after{
	content: "";
	display: block;
	background:linear-gradient(90deg,#f5f5f5 0%,#f5f5f5 50%,#fff 50%,#fff 100%);
	width: 100%;
	height: 400px;
	position: absolute;
	left: 0;
	top: 15%;
	z-index: -1;
	}

#contents main{
	display: block;
	width: 710px;
	}

#contents aside{
	display: block;
	width: 220px;
	}

#contents aside ul.sbnr li{
	margin-bottom: 15px;
	}

ul.home01 li{
	flex-basis: 345px;
	background-color: #fff;
	}

ul.home01 li h2{
	font-size: 18px;
	line-height: 1;
	margin: 20px;
	}

ul.home01 li p{
	padding: 0 20px 20px;
	}

ul.home01 li p .btn01{
	display: block;
	margin: 20px auto 0;
	width: 150px;
	text-align: center;
	}

ul.home01 li figure{
	position: relative;
	}

ul.home01 li figure figcaption{
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
	color: #fff;
	font-size: 20px;
	}

.topics{
	background-color: #fff;
	margin-top: 40px;
	}

.topics h2{
	font-size: 20px;
	line-height: 1;
	padding: 20px;
	border-bottom: 2px solid #311b08;
	}

.topics h2 span{
	font-size: 50%;
	color: #999;
	margin-left: 10px;
	}

.topics dl{
	padding: 20px;
	}

.topics dl dt{
	float: left;
	}

.topics dl dd{
	padding: 0 0 10px 120px;
	margin-bottom: 10px;
	border-bottom: 1px dashed #ddd;
	}

.topics dl dd:last-child{
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: none;
	}


/*sub
------------------------------------------*/
#title{
	background: url("../img/kv_bg.jpg") no-repeat center;
	}

#title h2{
	font-size: 34px;
	letter-spacing: 5px;
	text-align: center;
	text-shadow:0px 0px 5px rgba(0,0,0,0.5);
	padding: 50px 0;
	color: #fff;
	}

#title h2 span{
	display: block;
	font-size: 40%;
	}

main h3{
	font-size: 28px;
	border-bottom: 3px double #ddd;
	border-top: 3px double #ddd;
	padding: 10px 20px;
	margin: 50px 0 20px;
	position: relative;
	}

main h3::before{
	content: "";
	display: block;
	width: 5px;
	height: 30px;
	background-color: #000;
	position: absolute;
	left: 0;
	top: 50%;
	margin-top: -15px;
	}

main h3:first-child{
	margin-top: 0;
	}

main h4{
	font-size: 22px;
	border-bottom: 2px solid #ddd;
	padding-bottom: 5px;
	margin: 30px 0 15px;
	position: relative;
	}

main h4::before{
	content: "";
	display: block;
	width: 150px;
	height: 2px;
	background-color: #000;
	position: absolute;
	left: 0;
	bottom: -2px;
	}

#pankuzu{
	background-color: #f5f5f5;
	font-size: 12px;
	font-weight: normal;
	line-height: 40px;
	color: #999;
	}

#pankuzu ul{
	justify-content: flex-start;
	}

#pankuzu ul li:not(:first-child)::before{
	content: "/";
	margin: 0 10px;
	}

#pankuzu ul li a{
	color: #999;
	}

ul.disc li{
	list-style: disc;
	margin-left: 20px;
	}

ul.decimal li{
	list-style: decimal;
	margin-left: 20px;
	margin-bottom: 10px;
	}

table{
	width: 100%;
	}

table td,
table th{
	border: 1px solid #ddd;
	padding: 15px;
	text-align: left;
	vertical-align: top;
	}

table th{
	background-color: #f5f5f5;
	width: 30%;
	}

ul.business01 li{
	flex-basis: 49%;
	margin-top: 10px;
	}

table.business02{
	margin-top: 30px;
	}

table.business02 td,
table.business02 th{
	padding: 3px 0;
	text-align: center;
	vertical-align: middle;
	font-size: 10px;
	letter-spacing: 0;
	}

table.business02 .bg{
	background-color: #eee;
	}

table.business02 .bg2{
	background-color: #f5f5f5;
	}

table.business02 .bg2 td{
	width: 6%;
	}

ul.sitemap li{
	margin-top: 15px;
	}

ul.sitemap li a{
	display: block;
	border: 1px solid #311b08;
	padding: 15px;
	}

ul.sitemap li a::before{
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	border-top: 1px solid #311b08;
	border-right: 1px solid #311b08;
	transform: rotate(45deg);
	vertical-align: middle;
	margin-right: 10px;
	}

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

ul.policy li{
	width: 48%;
	border: 1px solid #ddd;
	margin-top: 30px;
	}

ul.policy li strong{
	display: block;
	border-bottom: 1px solid #ddd;
	background-color: #f5f5f5;
	padding: 10px;
	text-align: center;
	}

ul.policy li p{
	padding: 10px;
	}

ul.policy li:first-child{
	width: 100%;
	}

ul.policy li:first-child strong{
	font-size: 200%;
	font-weight: bold;
	}

.voice01{
	border: 1px solid #ddd;
	padding: 20px;
	margin-bottom: 30px;
	}

.voice01 figure{
	float: right;
	margin-left: 30px;
	}

.voice01 figure img{
	height: 230px;
	}

.voice01 h4{
	margin-top: 0;
	font-size: 20px;
	}

.voice01 .comment{
	margin-bottom: 20px;
	min-height: 230px;
	}

.voice01 table th,
.voice01 table td{
	padding: 10px;
	}

/*--241227追加--*/
h5{
	font-size: 22px;
  margin: 30px 0 15px;	
	}

.btn_wrap{
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: center;
	text-align: center;
	margin: 20px 0 40px;
	}

.btn_wrap p{
	margin-top: 0;
}

.btn_wrap .contact{
	background-color: #112345;
  color: #fff;
  display: inline-block;
  padding: 10px 20px;
	}

.btn_wrap .dw{
	background-color: #fff;
  color: #112345;
	border: 1px solid #112345;
  display: inline-block;
  padding: 10px 20px;
	margin-left: 20px;
	}

.noguchi{
	display: inline-block; /* インラインブロック要素にしてボタン風に */
  width: 100%;
	padding: 56px;
  background: url('../transport/img/noguchi.jpg') no-repeat center; /* 背景画像 */
  background-size: cover; /* 背景画像がボタン全体を覆うように */
  text-decoration: none; /* リンクの下線を消す */
  border: 4px solid #213269; /* 白い枠線 */
  border-radius: 12px; /* 角を丸くする */
  font-size: 28px; /* フォントサイズ */
	text-align: center;
	color: #fff;
	}

.jmorey{
	display: inline-block; /* インラインブロック要素にしてボタン風に */
  width: 100%;
	padding: 56px;
  background: url('../transport/img/jmorey.jpg') no-repeat center; /* 背景画像 */
  background-size: cover; /* 背景画像がボタン全体を覆うように */
  text-decoration: none; /* リンクの下線を消す */
  border: 4px solid #C09A72; /* 白い枠線 */
  border-radius: 12px; /* 角を丸くする */
  font-size: 28px; /* フォントサイズ */
	text-align: center;
	color: #fff;
	margin-top: 20px;
	}

.en{
	background: #f5f5f5;
	padding: 20px;
	margin-top: 48px;
}

.sp{
	display: none;
}

/*form
------------------------------------------*/
form table th span{
	font-size:10px;
	font-weight:normal;
	display:inline-block;
	background:#ff0000;
	color:#FFF;
	padding:1px 5px;
	float: right;
	}

form table th span.option{
	background: #5f8bcd;
	}

form table td span{
	display: block;
	margin-top: 5px;
	font-size: 12px;
	color: #999;
	}

form input[type="text"]{
	width: 100%;
	padding: 8px;
	border: 1px solid #ccc;
	}

form textarea{
	width: 100%;
	height: 150px;
	padding: 8px;
	border: 1px solid #ccc;
	}

form input[type="submit"]{
	width: 150px;
	height: 50px;
	border: none;
	background-color: #112345;
	color: #fff;
	cursor: pointer;
	transition: .3s;
	}

form input[type="submit"]:hover{
	opacity: .6;
	}




/*SP
================================================================================================================================*/
@media screen and (max-width: 480px){

/*common
------------------------------------------*/
body{
	min-width:initial;
	}

*{
	-webkit-appearance: none;
	}

.flex{
	flex-wrap: wrap;
	}


/*header
------------------------------------------*/
header h1{
	width: 80%;
	}

header .inner{
	padding: 10px;
	}

header dl{
	display: none;
	}


/*nav
------------------------------------------*/
nav{
	padding: 0;
	position: absolute;
	width: 100%;
	display: none;
	z-index: 2;
	background-color: rgba(0,0,0,0.8);
	}

nav ul li,
nav ul li:last-child{
	flex-basis: 100%;
	border-left: none;
	border-bottom: 1px dotted #ccc;
	}

nav ul li a{
	padding: 10px;
	color: #fff;
	}


/*footer
------------------------------------------*/
footer{
	background: #311b08;
	}

footer p.pagetop{
	position: static;
	}

footer p.pagetop a{
	display: block;
	text-align: center;
	}

footer ul.fnav{
	width: initial;
	padding: 0;
	margin-left: -1px;
	}

footer ul.fnav li{
	width: 50%;
	margin: 0;
	border-top: 1px solid #666;
	border-left: 1px solid #666;
	}

footer ul.fnav li:first-child{
	width: 100%;
	}

footer ul.fnav li a{
	display: block;
	padding: 10px;
	}

footer address{
	margin: 0;
	padding: 15px;
	border-top: 1px solid #666;
	color: #fff;
	}

footer p.copyright{
	position: static;
	text-align: center;
	padding: 10px;
	color: #fff;
	}


/*top
------------------------------------------*/
#kv{
	background-size: cover;
	background-position: 65% center;
	}

#kv .inner{
	height: 150px;
	padding: 15px;
	}

#contents{
	padding: 0;
	}

#contents.home{
	background: #f5f5f5;
	}

#contents main{
	padding: 15px;
	width: 100%;
	}

#contents aside{
	width: initial;
	padding: 7px;
	}

#contents aside ul.sbnr li{
	width: 50%;
	padding: 0 8px;
	float: left;
	}

ul.home01 li{
	flex-basis: 100%;
	}

ul.home01 li + li{
	margin-top: 15px;
	}

.topics dl dt{
	float: none;
	}

.topics dl dd{
	padding: 0 0 10px 0;
	}


/*sub
------------------------------------------*/
#title{
	background: url("../img/kv_bg.jpg") no-repeat center;
	}

#title h2{
	font-size: 26px;
	padding: 15px;
	}

#title h2 span{
	display: block;
	font-size: 40%;
	}

#pankuzu ul{	
    width: 100%;
	flex-wrap: nowrap;
    overflow-x: scroll;
    white-space: nowrap;
    padding-left: 10px;
	}

main h3{
	font-size: 24px;
	}

main h4{
	font-size: 20px;
	}

table td,
table th{
	display: block;
	margin-bottom: -1px;
	}

table th{
	width: 100%;
	}

ul.business01 li{
	flex-basis: 100%;
	}

table.business02{
	display: block;
	overflow-x: auto;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
	}

table.business02 td,
table.business02 th{
	display: table-cell;
	padding: 3px;
	}

ul.policy li{
	width: 100%;
	margin-top: 20px;
	}

.voice01{
	padding: 10px;
	}

.voice01 figure{
	margin: 0 0 15px 15px;
	width: 40%;
	}

.voice01 figure img{
	height: auto;
	}

.voice01 h4{
	margin-top: 0;
	font-size: 20px;
	}

.voice01 .comment{
	margin-bottom: 20px;
	min-height: 230px;
	}

.voice01 table th,
.voice01 table td{
	padding: 10px;
	}


.navBtn{
	position:absolute;
	display:block;
	width:30px;
	height:20px;
	z-index:99999;
	top:22px;
	right:15px;
	}

.navBtn span{
	display:inline-block;
	position:absolute;
	left:0;
	width:100%;
	height:3px;
	background-color:#311b08;
	}

.navBtn.active span{
	background-color:#311b08;
	}

.navBtn	span:nth-of-type(1){
	top:-1px;
	}

.navBtn	span:nth-of-type(2){
	top:8px;
	}

.navBtn	span:nth-of-type(3){
	bottom:0;
	}

.navBtn	span:nth-of-type(1){
	-webkit-animation:menu-ber01 .75s forwards;
	animation:menu-ber01 .75s forwards;
	}
	
.navBtn	span:nth-of-type(2){
	transition:all .25s .25s;
	opacity:1;
	}

.navBtn	span:nth-of-type(3){
	-webkit-animation:menu-ber02 .75s forwards;
	animation:menu-ber02 .75s forwards;
	}

.active span:nth-of-type(1){
	-webkit-animation:active-menu-ber01 .75s forwards;
	animation:active-menu-ber01 .75s forwards;
	}

.active span:nth-of-type(2){
	opacity:0;
	}
.active span:nth-of-type(3){
	-webkit-animation:active-menu-ber03 .75s forwards;
	animation:active-menu-ber03 .75s forwards;
	}

@-webkit-keyframes menu-ber01{
	0%{-webkit-transform:translateY(8px) rotate(45deg);}
	50%{-webkit-transform:translateY(8px) rotate(0);}
	100%{-webkit-transform:translateY(0) rotate(0);}
	}

@keyframes menu-ber01{
	0%{transform:translateY(8px) rotate(45deg);}
	50%{transform:translateY(8px) rotate(0);}
	100%{transform:translateY(0) rotate(0);}
	}

@-webkit-keyframes menu-ber02{
	0%{-webkit-transform:translateY(-8px) rotate(-45deg);}
	50%{-webkit-transform:translateY(-8px) rotate(0);}
	100%{-webkit-transform:translateY(0) rotate(0);}
	}

@keyframes menu-ber02{
	0%{transform:translateY(-8px) rotate(-45deg);}
	50%{transform:translateY(-8px) rotate(0);}
	100%{transform:translateY(0) rotate(0);}
	}

@-webkit-keyframes active-menu-ber01{
	0%{-webkit-transform:translateY(0) rotate(0);}

	50%{-webkit-transform:translateY(10px) rotate(0);}
	100%{-webkit-transform:translateY(10px) rotate(45deg);}
	}

@keyframes active-menu-ber01{
	0%{transform:translateY(0) rotate(0);}
	50%{transform:translateY(10px) rotate(0);}
	100%{transform:translateY(10px) rotate(45deg);}
	}

@-webkit-keyframes active-menu-ber03{
	0%{-webkit-transform:translateY(0) rotate(0);}
	50%{-webkit-transform:translateY(-8px) rotate(0);}
	100%{-webkit-transform:translateY(-8px) rotate(-45deg);}
	}

@keyframes active-menu-ber03{
	0%{transform:translateY(0) rotate(0);}
	50%{transform:translateY(-8px) rotate(0);}
	100%{transform:translateY(-8px) rotate(-45deg);}
	}

#open{
	display:none;
	}

/*--241227追加--*/
.btn_wrap{
	display: block;
	}

.btn_wrap .dw{
	margin-left: 0;
	margin-top: 12px;
	}

.noguchi{
	font-size: 20px;
	padding: 32px 20px;
	}

.jmorey{
	font-size: 20px;
	padding: 32px 20px;
	}
	
.sp{
	display: block;	
	}
}