/*! ######SPメニュー表示MeanMenu 2.0.7####### */

/* hide the link until viewport size is reached */
.mean-container a.meanmenu-reveal {
	display: none;
}

/* when under viewport size, .mean-container is added to body */
.mean-container .mean-bar {
	float: left;
	width: 100%;
	position: relative;
	/*background: #f0f0f0;*/
	padding: 0px 0;
	min-height: 70px;
	z-index: 999;
}

.mean-container a.meanmenu-reveal {
	width: 22px;
	height: 22px;
	padding: 30px 20px 11px 13px;
	position: absolute;
	top: 0;
	right: 0;
	cursor: pointer;
	color: #666;
	text-decoration: none;
	font-size: 16px;
	text-indent: -9999em;
	line-height: 22px;
	font-size: 1px;
	display: block;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: 700;
}

.mean-container a.meanmenu-reveal span {
	display: block;
	background: #666;
	height: 3px;
	margin-top: 3px;
}

.mean-container .mean-nav {
	float: left;
	width: 100%;
	background: #444;
	margin-top: 90px;
}

.mean-container .mean-nav ul {
	padding: 0;
	margin: 0;
	width: 100%;
	list-style-type: none;
}

.mean-container .mean-nav ul li {
	position: relative;
	float: left;
	width: 100%;
}

.mean-container .mean-nav ul li a {
	display: block;
	float: left;
	width: 90%;
	padding: 1em 5%;
	margin: 0;
	text-align: left;
	color: #fff;
	border-top: 1px solid #383838;
	border-top: 1px solid rgba(255,255,255,0.5);
	text-decoration: none;
	text-transform: uppercase;
}

.mean-container .mean-nav ul li li a {
	width: 80%;
	padding: 1em 10%;
	border-top: 1px solid #f1f1f1;
	border-top: 1px solid rgba(255,255,255,0.25);
	opacity: 0.75;
	filter: alpha(opacity=75);
	text-shadow: none !important;
	visibility: visible;
}

.mean-container .mean-nav ul li.mean-last a {
	border-bottom: none;
	margin-bottom: 0;
}

.mean-container .mean-nav ul li li li a {
	width: 70%;
	padding: 1em 15%;
}

.mean-container .mean-nav ul li li li li a {
	width: 60%;
	padding: 1em 20%;
}

.mean-container .mean-nav ul li li li li li a {
	width: 50%;
	padding: 1em 25%;
}

.mean-container .mean-nav ul li a:hover {
	background: #eee;
	background: rgba(255,255,255,0.2);
}

.mean-container .mean-nav ul li a.mean-expand {
	margin-top: 1px;
	width: 26px;
	height: 17px;
	padding: 12px !important;
	text-align: center;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 2;
	font-weight: 700;
	background: rgba(255,255,255,0.2);
	border: none !important;
	border-left: 1px solid rgba(255,255,255,0.4) !important;
	border-bottom: 1px solid rgba(255,255,255,0.3) !important;
}

.mean-container .mean-nav ul li a.mean-expand:hover {
	background: rgba(255,255,255,0.7);
}

.mean-container .mean-push {
	float: left;
	width: 100%;
	padding: 0;
	margin: 0;
	clear: both;
}

.mean-nav .wrapper {
	width: 100%;
	padding: 0;
	margin: 0;
}

/* Fix for box sizing on Foundation Framework etc. */
.mean-container .mean-bar, .mean-container .mean-bar * {
	-webkit-box-sizing: content-box;
	-moz-box-sizing: content-box;
	box-sizing: content-box;
}


.mean-remove {
	display: none !important;
}
/****SPメニュー表示ここまで****/

/*ここからサイト内検索調整*/
/* フォーム全体の幅設定 */
.sp_search_form {
  width: 100%;
  padding: 10px 15px; /* メニュー内の余白に合わせて調整 */
  box-sizing: border-box;
}

/* 入力欄とボタンの位置関係を設定 */
.sp_search_wrap {
  position: relative;
  width: 100%;
}

/* テキスト入力欄 */
.sp_search_wrap .text_input {
  width: 100%;
  height: 44px; /* タップしやすい標準的な高さ */
  padding: 0 44px 0 12px; /* 右側にボタンの横幅分の余白を確保（文字かぶり防止） */
  font-size: 16px; /* iOS Safariでフォーカス時の自動ズームを防止 */
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  box-sizing: border-box;
  -webkit-appearance: none;
}

/* アイコン検索ボタン */
.sp_search_wrap .search_btn {
  position: absolute;
  top: -7px;
  right: 7px;
  width: 44px;
  height: 44px; /* 44px x 44px のタップ領域を確保 */
  padding: 0;
  border: none;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff; /* アイコンの色 */
  cursor: pointer;
}

/* ボタン押下時の視覚フィードバック */
.sp_search_wrap .search_btn:active {
  opacity: 0.5;
}