@charset "UTF-8";

/* --- 共通 --- */
.gg-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

body.gg-search-modal-is-open {
	overflow: hidden;
}

/* サイト内検索トリガー: UA の button だけリセット（padding / font は .l-nav .nav-list__link 等に任せる） */
button.nav-list__link.js-gg-search-open,
button.l-footer-nav__link.js-gg-search-open {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-family: inherit;
	letter-spacing: inherit;
	text-align: inherit;
}

/* style.css と同値（button 用セレクタの詳細度で上書きされないよう明示） */
@media all and (max-width: 767px) {
	.l-nav button.nav-list__link.js-gg-search-open {
		display: block;
		width: 100%;
		padding: 19px 0;
		font-weight: 700;
		font-size: 1.6rem;
		line-height: 1;
		text-decoration: none;
		box-sizing: border-box;
	}
}

@media all and (min-width: 768px) {
	.l-nav button.nav-list__link.js-gg-search-open {
		position: relative;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		height: 90px;
		padding: 0 10px;
		line-height: 1;
		font-size: 1.5rem;
		box-sizing: border-box;
	}
}

/* --- モーダル（Popup Builder テーマ6系） --- */
/* ルート: PB の .sgpb-popup-dialog-main-div 相当。開閉の opacity / visibility はここで制御 */
.gg-search-modal {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 999910;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.gg-search-modal.is-open {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

/* PB .sgpb-theme-6-overlay: 白 70% + 同梱の繰り返しテクスチャ（popup-builder/public/css/theme.css 由来） */
.gg-search-modal__backdrop {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	background-color: rgb(255, 255, 255);
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCMEM4NDgzQjlDRTNFMTExODE4NUVDOTdFQ0I0RDgxRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGREU5OEVCQzAzMjYxMUUyOTg5OURDMDlDRTJDMTc0RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGREU5OEVCQjAzMjYxMUUyOTg5OURDMDlDRTJDMTc0RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTDpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIxQzg0ODNCOUNFM0UxMTE4MTg1RUM5N0VDQjREODFFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwQzg0ODNCOUNFM0UxMTE4MTg1RUM5N0VDQjREODFFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+s3YRAQAAABtJREFUeNpiFODh2cBABGBiIBKMKqSOQoAAAwBokQDs5F/8FAAAAABJRU5ErkJggg==);
	background-repeat: repeat;
	opacity: 0.7;
}

.gg-search-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 640px;
	box-sizing: border-box;
	margin: 24px 16px;
	padding: 12px;
	border-radius: 7px;
	background: #fff;
	box-shadow: #646161 0 0 8px 3px;
}

.gg-search-modal__inner {
	position: relative;
	padding-top: 8px;
}

.gg-search-modal__lead {
	margin: 0 0 12px;
	font-size: inherit;
	line-height: 1.6;
}

.gg-search-modal__close {
	position: absolute;
	top: -18px;
	right: -18px;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
	cursor: pointer;
	z-index: 3;
}

.gg-search-modal__close::before,
.gg-search-modal__close::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 14px;
	height: 2px;
	background: #333;
	transform-origin: center;
}

.gg-search-modal__close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.gg-search-modal__close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.gg-search-modal__close:hover,
.gg-search-modal__close:focus {
	opacity: 0.85;
	outline: none;
}

.gg-search-modal__close:focus-visible {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px #333;
}

/* --- 検索フォーム --- */
.gg-search-form {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
}

/* input には ::before が使えないため、ラッパーに疑似要素でアイコン */
.gg-search-form__input-wrap {
	position: relative;
	flex: 1 1 180px;
	min-width: 0;
	display: block;
}

.gg-search-form__input-wrap::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	pointer-events: none;
	background-image: url("data:image/svg+xml;utf8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' clip-rule='evenodd' d='M14.76 13.27L20.49 19L19 20.49L13.27 14.76C12.2 15.53 10.91 16 9.5 16C5.91 16 3 13.09 3 9.5C3 5.91 5.91 3 9.5 3C13.09 3 16 5.91 16 9.5C16 10.91 15.53 12.2 14.76 13.27ZM9.5 5C7.01 5 5 7.01 5 9.5C5 11.99 7.01 14 9.5 14C11.99 14 14 11.99 14 9.5C14 7.01 11.99 5 9.5 5Z' fill='%23444746'/></svg>");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 24px 24px;
}

.gg-search-form__input {
	width: 100%;
	min-width: 0;
	padding: 10px 12px 10px 48px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 16px;
	box-sizing: border-box;
}

.gg-search-form__submit {
	flex: 0 0 auto;
	padding: 10px 20px;
	border: 0;
	border-radius: 4px;
	background: #333;
	color: #fff;
	font-size: 14px;
	cursor: pointer;
}

.gg-search-form__submit:hover,
.gg-search-form__submit:focus {
	opacity: 0.9;
	outline: none;
}

.gg-search-form__submit:focus-visible {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px #333;
}

@media (max-width: 767px) {
	/* モーダル全体: ノッチ・ホームインジケータ対策 */
	.gg-search-modal {
		align-items: flex-start;
		justify-content: center;
		padding-top: max(12px, env(safe-area-inset-top, 0px));
		padding-right: env(safe-area-inset-right, 0px);
		padding-bottom: env(safe-area-inset-bottom, 0px);
		padding-left: env(safe-area-inset-left, 0px);
	}

	.gg-search-modal__dialog {
		width: calc(100% - 24px);
		max-width: none;
		margin: 12px;
		max-height: calc(100vh - 48px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 44px 12px 12px;
	}

	.gg-search-modal__close {
		top: 12px;
		right: 12px;
	}

	.gg-search-modal__inner {
		padding-top: 0;
	}

	.gg-search-modal__lead {
		margin-bottom: 10px;
		font-size: 0.95rem;
		padding-right: 36px;
	}

	/* フォーム: 縦積み・タップしやすい高さ */
	.gg-search-form {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.gg-search-form__input-wrap {
		flex: 1 1 auto;
		width: 100%;
	}

	.gg-search-form__input-wrap::before {
		left: 12px;
	}

	.gg-search-form__input {
		min-height: 48px;
		padding: 12px 12px 12px 44px;
		font-size: 16px;
	}

	.gg-search-form__submit {
		width: 100%;
		min-height: 48px;
		padding: 12px 16px;
		font-size: 16px;
	}
}

/* 検索結果 1 件リンク（style.css の .c-archive01__item-link 相当・display:flex は使わない） */
.search-archive .c-search__item-link {
	display: block;
	padding: 15px 0 12px;
	border-bottom: 1px solid #ddd;
	box-sizing: border-box;
	text-decoration: none;
}

.search-archive .c-search__item-link .c-archive01__head {
	display: inline;
	width: auto;
	max-width: 100%;
	margin: 0;
	padding: 0;
	letter-spacing: 0.03em;
	line-height: 1.8;
}

.search-archive .c-search__item-link .c-search__title-line {
	margin: 0;
	width: 100%;
	line-height: 1.8;
}

.search-archive .c-search__item-link .c-search__kind {
	display: inline;
	font-size: 0.95em;
	font-weight: 400;
}

.search-archive .c-search__item-link .c-search__url {
	margin: 0.4em 0 0;
	font-size: 0.9em;
	line-height: 1.5;
	word-break: break-all;
	color: rgba(0, 0, 0, 0.48);
}

@media all and (min-width: 768px) {
	.search-archive .c-search__item-link {
		position: relative;
		display: block;
		padding: 26px 60px 27px 50px;
		-webkit-transition: all 0.6s ease;
		transition: all 0.6s ease;
	}

	.search-archive .c-search__item-link:after {
		content: '';
		position: absolute;
		top: 50%;
		right: 0;
		width: 14px;
		height: 4px;
		background-position: 100% 50%;
		background-size: auto 100%;
		background-repeat: no-repeat;
		background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22660px%22%20height%3D%225px%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23e42c2c%22%20d%3D%22M659.5%204.1H0V2.7h653.6V0l5.9%204.1z%22%2F%3E%3C%2Fsvg%3E%0D%0A");
	}

	.search-archive .c-search__item-link:hover {
		color: #e42c2c;
	}

	.search-archive .c-search__item-link .c-archive01__head {
		letter-spacing: 0.06em;
	}
}
