@charset "utf-8";

html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,abbr, address, cite, code,del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,b, i,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
	margin:0;
	padding:0;
	border:0;
	vertical-align:baseline;
	background:transparent;
	list-style-type:none;
	font-size: medium;
	color: #000;
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	font-weight: normal;
	line-height: 1.65em;
}

a {
	text-decoration: none;
	color: #000;
}

a:hover{
	text-decoration: none;
}

button:focus-visible,
#menu-button:focus-visible,
a:focus-visible {
  outline: 3px solid #09f; /* 好みの色に変更可能 */
  border-radius: 2px;
}

* {
	box-sizing:border-box;
	margin: 0;
	padding: 0;
}

img {
	vertical-align:bottom;
	width:100%;
}

/* -----------------------------------------------------------------------
　ヘッダーメニュー
--------------------------------------------------------------------------*/
.header-inner {
	padding:0 30px 0 30px;
	transition: 0.2s ease-in-out;
	position:relative;
	z-index:5;
}

@media print, screen and (min-width: 501px) {
	.header-inner {
		max-width:1600px;
		margin:0 auto;
		display: flex;
		justify-content: space-between;
	}
}

.header-logo {
	width:340px;
	padding-top:15px;
}

.header-logo a {
	display:block;
}

@media screen and (min-width:501px) and ( max-width:580px) {
	.header-logo {
		width:65%;
	}
}
@media screen and (max-width: 580px) {
	.header-inner {
		padding:0 4%;
	}
}
@media screen and (max-width: 500px) {
	.header-logo {
		width:260px;
		padding-top:13px;
	}
}

@media print, screen and (min-width: 1161px) {
	#menu-button,
	#mobile-nav {
		display:none !important;
	}
	.nav-wrap {
		padding:10px 0 15px;
	}
	.nav-list {
		display:flex;
	}
	.nav-list li a {
		display:inline-block;
		padding:0.8em 6px 0.8em 10px;
		margin:0 20px 0 0;
		font-size:16px;
		font-weight:bold;
		letter-spacing:1px;
		line-height:1.5;
		color:#000;
		position:relative;
		transition: 0.2s ease-in-out;
	}
	.nav-list li:last-child a {
		margin:0;
	}
	.nav-list li a::after {
		position: absolute;
		background:#000;
		content: '';
		display: block;
		width:0;
		height: 2px;
		bottom:6px;
		left: calc(50% + 1px);
		transform: translateX(-50%);
		transition: 0.2s ease-in-out;
		z-index:5;
	}
	.nav-list li a:hover::after {
		width:calc(100% - 16px);
	}
}

@media screen and (min-width:1161px) and ( max-width:1220px) {
	.nav-list li a {
		font-size:15px;
		margin:0 14px 0 0;
	}
}

@media screen and (max-width: 1160px) {
	#pc-nav {
		display:none !important;
	}
	/* ハンバーガーメニュー */
	button {
		background:none;
	}
	#menu-button {
		position: absolute;
		top:10px;
		right: 8px;
		display: grid;
		place-items: center;
		place-content: center;
		width: 70px;
		height: 60px;
		border: none;
		cursor: pointer;
		z-index: 999;
	}
	/* バー */
	.bar,
	.bar::before,
	.bar::after {
		width: 35px;
		height: 3px;
		background-color: #000;
		transition: transform 0.3s;
	}
	.bar {
		display: grid;
	}
	.bar::before,
	.bar::after {
		content: "";
		grid-area: 1 / 1;
	}
	.bar::before {
 		transform: translateY(-10px);
	}
	.bar::after {
		transform: translateY(10px);
	}
	/* オープン時のバー */
	.menu-open .bar {
		background-color: transparent;
	}
	.menu-open .bar::before {
		transform: rotate(45deg);
	}
	.menu-open .bar::after {
		transform: rotate(-45deg);
	}
	/* オーバーレイ */
	#overlay {
		visibility: hidden;
		opacity: 0;
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.5);
  		z-index: 997;
  		transition: opacity 0.3s;
	}
	/* オープン時のオーバーレイ */
	.menu-open #overlay {
		visibility: visible;
		opacity: 1;
	}
	/* メニュー */
	#mobile-nav {
		position: fixed;
		height: 100%;
		width: 550px;
		padding-top:60px;
		background-color: #fff;
		right: 0;
		top: 0;
		z-index: 998;
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform 0.3s ease-out;
	}
	.sp-nav-logo {
		width:300px;
		margin:0 auto 40px;
	}
	.sp-nav-logo a {
		display:block;
	}
	.nav-list {
		list-style: none;
	}
	.nav-list li {
		display:block;
		width:75%;
		margin:0 auto 17px;
		border:1px solid #000;
		position:relative;
		transition: 0.3s ease-in-out;
	}
	.nav-list li:after {
		content: '';
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 8px 0 8px 12px;
		border-color: transparent transparent transparent #000;
		position: absolute;
		top: 0;
		right: 26px;
		bottom: 0;
		margin: auto;
	}
	.nav-list li:hover {
		background:#a2cfee;
	}
	.nav-list li a {
		display:block;
		width:100%;
		font-size:17px;
		font-weight:bold;
		padding:0.85em 40px 0.85em 10px;
		color:#000;
		text-align:center;
		line-height:1.5em;
	}
	.drawer-sub {
		margin-top:30px;
		text-align:center;
	}
	.drawer-text-link {
		display:inline;
		margin:0 22px;
	}
	.drawer-text-link a {
		font-size:15px;
		transition: 0.2s ease-in-out;
	}
	.drawer-text-link a:hover {
		color:#258fd7;
		text-decoration:underline;
		transition: 0.2s ease-in-out;
	}
	/* オープン時のメニュー */
	.menu-open #mobile-nav {
		transform: translateX(0);
	}

	/* body */
	body {
		overflow-x: clip;
	}
	/* オープン時のbody */
	body.menu-open {
		overflow: hidden;
	}
}

@media screen and (max-width: 640px) {
	#mobile-nav {
		width: 100%;
	}
}

@media screen and (max-width: 500px) {
	#menu-button {
		top:2px;
		right: 4px;
	}
	#mobile-nav {
		padding-top:30px;
	}
	.sp-nav-logo {
		width:230px;
		margin:0 auto 20px;
	}
	.nav-list li {
		width:85%;
		margin:0 auto 13px;
	}
	.nav-list li:after {
		border-width: 7px 0 7px 10px;
		right: 15px;
	}
	.nav-list li a {
		padding-left:18px;
		font-size:15px;
		text-align:left;
	}
	.drawer-sub {
		margin-top:14px;
	}
	.drawer-text-link {
		margin:0 16px;
	}
	.drawer-text-link a {
		font-size:14px;
	}
}

/* -----------------------------------------------------------------------
　検索＆言語
--------------------------------------------------------------------------*/
@media print, screen and (min-width: 1161px) {
	.lang-search-wrap {
		display:flex;
		justify-content: flex-end;
		padding-right:11px;
	}
}
@media screen and (min-width:501px) and ( max-width:1160px) {
	.lang-search-wrap {
		display:flex;
		justify-content: flex-end;
	}
	.lang-search-wrap {
		padding:20px 70px 0 0;
	}
	.gcse-wrap {
		padding-top:3px;
	}
}

@media screen and (min-width:501px) and ( max-width:950px) {
	.gcse-wrap {
		position:absolute;
		top:77px;
		right:25px;
	}
	.lang-search-wrap {
		height:130px;
	}
}
@media screen and (min-width:501px) and ( max-width:750px) {
	.gcse-wrap {
		position:absolute;
		top:88px;
		right:25px;
	}
	.lang-search-wrap {
		height:140px;
	}
}
@media screen and (min-width:501px) and ( max-width:580px) {
	.gcse-wrap {
		right:5%;
	}
	.lang-search-wrap {
		padding:20px 65px 0 0;
	}
}
@media screen and (max-width: 500px) {
	.lang-search-wrap {
		display:flex;
		justify-content: space-between;
	}
	.lang-search-wrap {
		padding:20px 0 0 0;
	}
}

.gcse-wrap {
	width:340px;
}

.gsc-input-box {
	height:37px;
	margin-top:1px;
}

.gsc-search-button-v2 {
	height:37px;
}

.gsc-search-button-v2:hover {
	cursor : pointer;
}

table.gsc-search-box td.gsc-input{
  padding-right:8px !important;
}

.gsc-input-box input.gsc-input {
	background:transparent;
	font-size: 15px !important;
}

.lang-box {
	padding:0 0 0 30px;
	display:flex;
	align-items: center;
	height:42px;
}

.lang-text {
	font-size:18px;
	letter-spacing:1px;
	transition: 0.2s ease-in-out;
}

.lang-text a:hover {
	color:#5b91f6;
	transition: 0.2s ease-in-out;
}

@media screen and (max-width: 580px) {
	.lang-text {
		font-size:17px;
	}
}
@media screen and (max-width: 500px) {
	.gsc-input-box {
		height:35px;
		margin-top:1px;
	}
	.gsc-search-button-v2 {
		height:35px;
	}
	.lang-box {
		padding:0;
		height:37px;
	}
	.gcse-wrap {
		width:calc(100% - 83px);
	}
	.gsc-input-box input.gsc-input {
		font-size: 14px !important;
		line-height:1;
	}
}

/* -----------------------------------------------------------------------
　検索結果
--------------------------------------------------------------------------*/
.searchresults-wrap {
	max-width:1000px;
	margin:0 auto;
	padding:100px 30px 100px;
}

/* -----------------------------------------------------------------------
　フッター
--------------------------------------------------------------------------*/
footer {
	padding:0 30px;
}

.footer-inner {
	max-width:1200px;
	margin:0 auto;
	border-top:1px solid #000;
	padding:35px 0;
}

.footer-collection {
	max-width:1440px;
}

.footer-info-box {
	max-width:540px;
	border:1px solid #000;
	padding:20px 20px;
	font-size:15px;
	text-align:center;
	margin:5px auto 40px;
}

@media print, screen and (min-width: 561px) {
	.footer-info-br {
		display:none !important;
	}
}
@media screen and (max-width: 560px) {
	.footer-info-box {
		width:90%;
		padding:10px;
		font-size:14px;
	}
}

.footer-logo {
	max-width:420px;
	margin:0 auto 35px;
}

.footer-logo a {
	display:block;
}

.foot-nav {
	max-width:660px;
	text-align:center;
	margin:0 auto 35px;
}

.foot-nav li {
	display:inline;
	margin:0 12px;
	line-height:2;
}

.foot-nav li a {
	font-size:14.5px;
	white-space: nowrap;
	transition: 0.2s ease-in-out;
}

.foot-taisei-link {
	display:block;
	width:260px;
	margin:0 auto 16px;
	display:flex;
}

.taisei-logo {
	width:62px;
}

.taisei-link-right {
	width:calc(100% - 62px);
	display:flex;
	align-items: center;
}

.taisei-link-text {
	width:100%;
	font-size:13.5px;
	text-align:center;
}

.foot-nav li a:hover,
.foot-taisei-link:hover .taisei-link-text {
	color:#258fd7;
	text-decoration:underline;
	transition: 0.2s ease-in-out;
}

.copy-right {
	font-size:13px;
	text-align:center;
}

@media screen and (max-width: 550px) {
	.foot-nav li {
		line-height:1.8;
	}
	.foot-nav li a {
		font-size:13.5px;
	}
	.foot-taisei-link {
		width:250px;
	}
	.taisei-link-text {
		font-size:13px;
	}
}

/* -----------------------------------------------------------------------
　TOPに戻るボタン
--------------------------------------------------------------------------*/
#page-top {
	all: unset;
    position: fixed;
    bottom: 30px;
    right: 30px;
    width:50px;
    height:50px;
    border-radius:50%;
    background:#000;
    z-index:200;
    text-align:center;
    display: flex;
	align-items: center;
	cursor: pointer;
	/* 最初は非表示 */
	opacity: 0;
	visibility: hidden;
	pointer-events: none; /* 非表示中はクリックできないようにする */
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

#page-top.visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

#page-top:focus-visible {
  outline: 3px solid #09f;   /* 好きな色に変更可 */
  outline-offset: 0;
}

.arrow-up {
  position: relative;
  width:3px;
  height: 20px;
  background: #fff;
  margin:0 auto;
}

.arrow-up::before {
  content: '';
  width: 14px;
  height: 14px;
  border: 3px solid #fff;
  border-left: 0;
  border-bottom: 0;
  transform: rotate(-45deg);
  transform-origin: top right;
  position: absolute;
  top: -0.05em;
  right: 50%;
  box-sizing: border-box;
}

#page-top:hover {
    background:#258fd7;
    transition: 0.4s ease-in-out;
}

@media screen and (max-width: 600px) {
	#page-top {
		bottom: 20px;
    	right: 20px;
    	width:40px;
    	height:40px;
	}
}