@charset "UTF-8";
/* --[ html5 reset ]---------------------------------------------------------------------- */
html, body, div, span, address, img, strong, i, dl, dt, dd, ol, ul, li, table, tr, th, td, footer, header, menu, section {
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	margin: 0;
	padding: 0;
}

html {
	overflow: auto;
	-webkit-font-smoothing: antialiased; /* safariの太字を調整 */
}

body {
	overflow: hidden;
	color: #222;
	line-height: 1.6;
	width: 100%;
	background: #fff;
	font-family: 'Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
}

/* --[ Web font ]---------------------------------------------------------------------- */
@font-face {
	font-family: 'noto_sans_jp';
	font-style: normal;
	font-weight: 300;
	src: url('../../common/font/NotoSansCJKjp-Regular.eot'); /* IE9 Compat Modes */
	src: url('../../common/font/NotoSansCJKjp-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
	url('../../common/font/NotoSansCJKjp-Regular.woff') format('woff'), /* Modern Browsers */
	url('../../common/font/NotoSansCJKjp-Regular.ttf')  format('truetype'); /* Safari, Android, iOS */
}


/* --[ anchors ]---------------------------------------------------------------------- */
a {
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	margin: 0;
	padding: 0;
	color: #222;
	text-decoration: none;
}
a:hover {
	color: #DA272C;
}
a:hover, a:focus {
	color: #DA272C;
	text-decoration: none;
}
a:hover, a:active {
	outline: none;
}
a:link {
	-webkit-tap-highlight-color: rgba(229,242,238,0.5); /* iPhoneでリンクをタップ時の色 */
}
li {
	list-style: none;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'noto_sans_jp','Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
	font-weight: 300;
	font-size: 100%;
	font-style: normal;
	margin: 0;
	padding: 0;
}

p:first-child {	margin-top: 0; }
p:last-child { margin-bottom: 0; }

img {
	margin: 0;
	max-width: 100%;
	height: auto;
	vertical-align: top;
	border-style: none;
}

.header img[src$=".svg"],
.footer img[src$=".svg"]{
	width: 100%;
}

table {
	font-size: inherit;
	font: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

header, footer {
	display: block;
}


/* --[ loader ]---------------------------------------------------------------------- */
#loader-bg {
	display: none;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	opacity:0.78;
	background: #fff;
	z-index: 1;
}
#loader {
	display: none;
	position: fixed;
	top: 50%;
	left: 50%;
	width: 100px;
	height: 100px;
	margin-top: -50px;
	margin-left: -50px;
	text-align: center;
	z-index: 2;
}


/* --[ header ]---------------------------------------------------------------------- */
.header-wrapper {
	position: fixed;
	z-index:999;
	width: 100%;
	background-color: #fff;
}
.header {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 0;
}

.col2 {
	width: 130px;
	height: 44px;
	margin: 0;
	padding: 0;
}
.col2 a.left-btn { display: block; padding: 6px 0 0 15px; }
.col2 a.right-btn { display: block; padding: 6px 15px 0 0; }


/* --[ global nav ]---------------------------------------------------------------------- */
nav.globalMenuSp {
	position: fixed;
	z-index: 5;
	top: 0;
	width: 100%;
	color: #000;
	text-align: right;
	-webkit-transform: translateY(-100%);
	-moz-transform: translateY(-100%);
	-ms-transform: translateY(-100%);
	transform: translateY(-100%);
	transition: all 0.6s;
}

nav.globalMenuSp ul {
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

nav.globalMenuSp ul li {
	font-size: 16px;
	list-style-type: none;
	padding: 0;
	width: 100%;
	background-color: rgba( 255, 255, 255, 0.9 );
	border-bottom: 1px dotted #333;
}

nav.globalMenuSp ul li a {
	display: block;
	color: #000;
	padding: 14px 3% 14px 0;
}
nav.globalMenuSp ul li a:hover {
	background-color: rgba( 255, 255, 255, 0.5 );
}

/* 最後はラインを描かない */
nav.globalMenuSp ul li:last-child {
	padding-bottom: 0;
	border-bottom: none;
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
	-webkit-transform: translateY(0%);
	transform: translateY(0%);
}

/* --[ hamburger menu ]---------------------------------------------------------------------- */
.navToggle {
	position: fixed;
	z-index: 999;
	width: 78px;
	height: 47px;
	cursor: pointer;
	padding: 0 0 0 17px;
}

.navToggle span {
	display: block;
	position: absolute;  /* .navToggleに対して */
	width: 33px;
	background-color: #222; /* 線色 */
	border-radius: 4px; /* 角丸 */
	content: "";
	height: 4px; /* 線幅 */

	-webkit-transition: .35s ease-in-out;
	-moz-transition: .35s ease-in-out;
	transition: .35s ease-in-out;
}
.navToggle span:nth-child(1) {
	top: 12px;
}
.navToggle span:nth-child(2) {
	top: 22px;
}
.navToggle span:nth-child(3) {
	top: 32px;
}

/* 最初のspanをマイナス45度に */
.navToggle.active span:nth-child(1) {
	top: 22px;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
}

/* 2番目と3番目のspanを45度に */
.navToggle.active span:nth-child(2),
.navToggle.active span:nth-child(3) {
	top: 22px;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
}


/* --[ select lang ]---------------------------------------------------------------------- */
.header select::-ms-expand {
	display: none;
}
.header .select-box02 {
	position: relative;
	width: 131px;
	padding-top: 8px;
}

.header .select-box02 select {
	width: 106px;
	font-size: 14px;
	padding: 5px 0px 5px 10px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: 1px solid #999;
	border-radius: 0;
	background-color: #fff;
}

.header .select-box02 label:after {
	display: block;
	content: " ";
	position: absolute;
	top: 13px;
	right: 3px;
	width: 23px;
	height: 23px;
	background: url(../../common/img/arrow_lang.svg) top left no-repeat;
	background-size: 22px 22px;
	pointer-events: none;
}


/* --[ entrance ]---------------------------------------------------------------------- */
.entrance {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 999;
	background: #fff;
}
.entrance p {
	box-sizing: border-box;
	position: fixed;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	-moz-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	display: none;
	z-index: 99;
	width: 100%;
	max-width: 600px;
	padding: 0 30px;
}
.entrance img {
	width: 100%;
	height: auto;
}


/* --[ list ]---------------------------------------------------------------------- */
.list-title {
	box-sizing: border-box;
	width: 100%;
	background-color: #000; /* リストタイトル色を差し替え */
	margin: 0;
	padding: 13px 0 12px 17px;
}
.list-title h1 {
	font-size: 19.5px;
	line-height: 1.5;
	color: #fff;
}

.list {
	box-sizing: border-box; 
	width: 100%;
	padding: 0 10px;
}
.list a {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	width: 100%;
	border-bottom: solid 1px #aaa;
}

.list p:nth-child(1){
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-ms-flex-preferred-size: 86px;
	flex-basis: 86px;
	min-width: 86px;
	margin: 10px 15px 10px 1px;
}
.list p:nth-child(1) span {
	display: block;
	width: 84px;
	background-color: #fff;
	overflow: hidden;
	position: relative;
	margin: auto;
}
.list p:nth-child(1) span img {
	position: absolute;
	width: 84px;
	height: auto;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	-moz-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.list p:nth-child(1) span:after {
	display: block;
	padding-top: 100%;
	content: '';
}
.list p:nth-child(2){
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-preferred-size: auto;
	flex-basis: auto;
	min-height: 58px;
	-webkit-box-flex: 1.0;
	-moz-box-flex: 1.0;
	-webkit-flex: 1 1 auto;
	flex: 1 1 auto;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	font-size: 18px;
	margin: 10px 0;
}
.list a:visited p:nth-child(2) {
	color: #222;
}
.list a p:nth-child(2):hover {
	color: #DA272C;
}
.list p:nth-child(3){
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
	-ms-flex-preferred-size: 35px;
	flex-basis: 35px;
	font-size: 11px;
	color: #4c4c4c;
	margin: 0 0px 3px 4px;
}
.list p:nth-child(3) span{
	display: block;
	margin-left: auto;
}
.list a:visited span {
	color: #ccc;
}


/* --[ bottom arrows ]---------------------------------------------------------------------- */
.footer-wrapper {
	overflow: hidden;
	position: fixed;
	z-index:999;
	bottom: 0;
	width: 100%;
	background-color: #eee;
	opacity: 0.8;
}
.footer {
	display:-webkit-box;
	display:-ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center; 
	justify-content: center;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 0;

    /*iPhoneセーフエリア設定*/
	height: calc(56px + env(safe-area-inset-bottom));
	line-height: 56px;
	padding-bottom: calc(env(safe-area-inset-bottom));
	padding-bottom: 0;
	padding-top: calc(env(safe-area-inset-bottom) - 35px);
	padding-top: 0;
}
.footer-arrow {
	width: 105px;
	margin: 0;
	padding: 0;
}
.footer-arrow a {
	display: block;
	width: 38px;
	padding: 11px 25px 0;
}


/* --[ content-top-page ]---------------------------------------------------------------------- */
.content-top {
	width: 100%;
	margin: 0;
	padding: 48px 0 12px;
}
.content-top img {
	z-index: 1 !important;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	vertical-align: top;

}

footer.logo {
	display:-webkit-box;
	display:-ms-flexbox;
	display: flex;
	-webkit-box-pack: end;
	-ms-flex-pack: end;
	justify-content: flex-end;
	padding: 15px 15px;
}
footer .logo-box {
	width: 33%;
	height: auto;
	min-width: 140px;
}
footer.logo img {
	width: 100%;
	height: auto;
}


/* --[ content-sub-page common ]---------------------------------------------------------------------- */
.content-list,
.content-map {
	width: 100%;
	margin: 0;
	padding: 50px 0 60px;
}

.content {
	width: 100%;
	margin: 0;
	padding: 50px 0 90px;
}

.content img {
	z-index: 1 !important;
	width: 100%;
	max-width: 100%;
	height:auto;
}


/* --[ info page ]---------------------------------------------------------------------- */
.content-info {
    box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 20px 15px 0px;
}
.content-info p {
	font-size: 107%;
	line-height: 1.57;
	margin: 0 0 2em;
}


/* --[ map page ]---------------------------------------------------------------------- */
.content-map .map {
	z-index: 1 !important;
	width: 100%;
	max-width: 100%;
	height:auto;
	margin-top: 30px;
}


/* --[ map tab ]---------------------------------------------------------------------- */
.tab-group {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	padding: 0 15px;
}
.tab{
	-webkit-box-flex: 1;
	-ms-flex-positive: 1;
	flex-grow: 1;
	padding: 10px;
	margin: 1px;
	list-style: none;
	background-color: #ddd;
	text-align: center;
	cursor: pointer;
}
.panel{
	display: none;
}
.tab.is-active{
	background-color: #666;
	color: #fff;
	transition: all 0.2s ease-out;
}
.panel.is-show{
	display: block;
}


/* --[ guide page ]---------------------------------------------------------------------- */
.main {
	overflow: hidden;
	margin: 0px auto;
	padding: 0px 20px 0px;
}
.main p {
	font-size: 107%;
	line-height: 1.57;
	margin: 0 0 2em;
}

h2.work-title {
	font-size: 22px;
	line-height: 1.2;
	margin: 0.7em 0 0.6em;
}


/* --[ fontsize-change ]---------------------------------------------------------------------- */
ul#fontSize {
	overflow: hidden;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: end;
	-ms-flex-pack: end;
	justify-content: flex-end;
	margin: 0 0 0.35em;
}
ul#fontSize li {
	display: block;
	width: 22px;
	height: 22px;
	font-size: 18px;
	color: #666;
	font-weight: bold;
	text-decoration: underline;
	margin: 0 1px 0 0;
	padding: 4px 6px 6px 2px;
	cursor: pointer;
}
#changeArea ul#fontSize li a {
	display: block;
}

#changeArea ul#fontSize li.s {
	font-size: 12.5px;
	text-align: right;
	margin-left:0;
	padding: 10px 2px 0 6px;
}
#changeArea ul#fontSize li.active {
	color: #4C4CB8;
	text-decoration: none;
	cursor: default;
}


 @media only screen and (min-width: 768px) 
{
.col2 a.left-btn,
.col2 a.right-btn { padding: 6px 39px 0; }

.navToggle { padding: 0 0 0 33px; }
nav.globalMenuSp ul li a { padding: 14px 35px 14px 0; }

footer.logo { padding: 20px 30px; }

.list-title { padding: 13px 0 12px 37px; }
.list-title h1 { font-size: 23px; }
.list {	padding: 0 29px; }
.list p:nth-child(1) { -ms-flex-preferred-size: 102px; flex-basis: 102px; min-width: 102px; }
.list p:nth-child(1) span { width: 100px; }
.list p:nth-child(2) { font-size: 21px; }

.main {
	font-size: 110%;
	line-height: 1.58;
	padding: 0px 30px 0;
}
h2.work-title {	font-size: 24px; }

.footer-arrow {	width: 190px; }
.footer-arrow a { padding: 11px 55px 0; }


/* --[ fontsize-change ]---------------------------------------------------------------------- */
ul#fontSize { margin: 0 0.5em 0.45em; }
ul#fontSize li { font-size: 20px; }
#changeArea ul#fontSize li.s { font-size: 14.5px; }

}


 @media only screen and (min-width: 828px) 
{
.wrapper,
.header,
.footer,
nav.globalMenuSp {
	width: 828px;
	margin: 0 auto;
}

}


/* --[ style ]---------------------------------------------------------------------- */
.red { color: #DA272C; }

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

.right-b { margin: 0 0 0 auto; }
.border-b { border-bottom: 1px solid #6e6e6e; }

.ai1 { width: 36px; }
.ai2 { width: 62px; }

/* popup 241115 */
.pwa-popup{
	box-sizing: border-box;
	position: fixed;
	width: 100%;
	/* height: 9em; */
	bottom: -15em;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	background: transparent;
	/* padding: 5em 2em; */
	padding: 0 1em;
	z-index: 1100;
	transition: bottom 1s;
}

.pwa-popup p{
	margin: 0;
}

.pwa-popup__text--ios{
	margin-top: 0.5em;
	display: none;
}

.pwa-popup__text--ios img{
	vertical-align: baseline;
	padding-right: 0.25em;
}

.pwa-popup.enable{
	/* display: flex; */
	bottom: 0;
}

.pwa-popup__content{
	box-sizing: border-box;
	color: #000;
	background: rgba( 255, 255, 255, 0.9 );
	padding: 1em;
	width: 100%;
	height: 100%;
	border-top-left-radius: 1em;
	border-top-right-radius: 1em;
	box-shadow: 0 -0.25em 0.5em rgba( 0, 0, 0, 0.25 );
}

.pwa-popup__btn{
	width: fit-content;
	margin: 0.5em auto 0;
}

.cache{
	font-size: 9px;
	text-align: center;
	color: #aaa;
	padding-bottom: calc(65px + env(safe-area-inset-bottom));
}

.content-list+.cache{
	padding-bottom: calc(10px + env(safe-area-inset-bottom));
}

.progress__alert{
    position: fixed;
    bottom: -6em;
    left: 0;
    padding: 0 30px;
}