@charset "UTF-8";

@font-face {
	font-family: 'GoogleSans-Bold';
	/* フォント名（自由に設定可能） */
	src: url('../fonts/GoogleSans-Bold.woff2') format('woff2'),
		url('../fonts/GoogleSans-Bold.ttf') format('truetype');
	/* WOFFフォーマット */
	font-weight: bold;
}

@font-face {
	font-family: 'GoogleSans-Medium';
	/* フォント名（自由に設定可能） */
	src: url('../fonts/GoogleSans-Medium.woff2') format('woff2'),
		url('../fonts/GoogleSans-Medium.ttf') format('truetype');
	/* WOFFフォーマット */
}

@font-face {
	font-family: 'GoogleSans-Regular';
	/* フォント名（自由に設定可能） */
	src: local(''), url('../fonts/GoogleSans-Regular.woff2') format('woff2'),
		url('../fonts/GoogleSans-Regular.ttf') format('truetype');
	/* WOFFフォーマット */
}

html,
body {
	height: 100%;
	/* フレックスボックスの高さ計算を有効化 */
	margin: 0;
	font-family: 'GoogleSans-Bold';
}

.wrapper {
	display: flex;
	flex-direction: column;
	/* 縦方向に配置 */
	min-height: 100vh;
	/* ビューポート全体の高さ */
}

/* main: コンテンツ部分 */
main {
	flex: 1;
	/* メインコンテンツが余白を埋める */
}

/* 全体スタイル */

header {
	position: fixed;
	/* 追従するための固定設定 */
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	/* 他の要素より前面に表示 */
	background-color: #FFFFFF;
	/* 背景色を設定 */

	transition: top 0.3s ease;
	/* アニメーションでスムーズに隠れる */
}

/* .header-box: 横並び配置 */
.header-box {
	max-width: 1920px;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.logo {
	padding-right: 20px;
	padding-left: 10px;
}

/* ロゴのスタイル */
.logo img {
	height: 40px;
	width: auto;
}

/* サイト説明エリア */
.site-discription {
	flex: 1;
	text-align: left;
	font-size: 16px;
	font-weight: bold;
	color: #555;
}

.header-nav-container {
	position: fixed;
	/* 固定位置 */
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	/* 他の要素より前面に表示 */
	background-color: #f9f9f9;
	/* 背景色 */
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	/* 軽い影を追加 */
}

/* ハンバーガーメニューのデザイン */
.hamburger-menu {
	display: flex;
	flex-direction: column;
	align-items: center;
	cursor: pointer;
}

.hamburger-menu .lines {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.hamburger-menu .lines span {
	display: block;
	width: 30px;
	height: 4px;
	background-color: #FFFFFF;
	border-radius: 2px;
	transition: all 0.3s ease;
}

.hamburger-menu p {
	color: #FFFFFF;
	margin: 5px 0 0;
	font-size: 14px;
}

/* メニューエリア */
.menu {
	position: relative;
	padding: 15px;
	z-index: 100;
	/* メニューが他の要素の上に表示されるように */
	background-color: #0E98DD;
}

/* ナビゲーションメニュー */
nav {
	width: 100%;
	top: 52px;
	position: absolute;
	background-color: #0E98DD;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	padding: 0 20px;
	overflow: hidden;
	max-height: 0;
	/* 初期状態で高さ0 */
	transition: max-height 0.3s ease, padding 0.3s ease;
	box-sizing: border-box;
	z-index: 99;
}

.menu.open nav {
	max-height: 500px;
	/* 最大高さを調整 */
	padding: 20px;
	/* 開いた状態でパディングを設定 */
}

nav ul {
	width: 1000px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	/* 4列 */
	gap: 10px;
	list-style: none;
	margin: 20px auto;
	padding: 0;
}

nav ul li {
	position: relative;
	/* 矢印配置のためにpositionを設定 */
}

nav ul li a {
	display: block;
	font-weight: bold;
	text-align: left;
	padding: 10px;
	background-color: #FFFFFF;
	border-radius: 4px;
	color: #333;
	text-decoration: none;
	transition: background-color 0.3s ease;
	position: relative;
	/* 矢印を配置する基点を設定 */
	padding-right: 35px;
	/* 矢印分の余白を追加 */
}

nav ul li a::after {
	content: '';
	/* 画像を指定するために空のcontentを設定 */
	position: absolute;
	right: 10px;
	/* メニューの右側に配置 */
	top: 50%;
	transform: translateY(-50%);
	/* 縦方向の中央揃え */
	width: 16px;
	/* 画像の幅を指定 */
	height: 16px;
	/* 画像の高さを指定 */
	background-image: url('../img/common/item-nav-arrow.png');
	/* 矢印画像のパスを指定 */
	background-size: contain;
	/* 画像を要素に収める */
	background-repeat: no-repeat;
	/* 繰り返しを無効化 */
}

nav ul li a:hover::after {
	filter: brightness(0.8);
	/* ホバー時に画像を少し暗くする */
}

.footer-contact_box.visible {
	bottom: 0;
	/* 表示状態では画面下部に固定 */
}

.footer-contact_box {
	width: 100%;
	position: fixed;
	bottom: 0;
	transition: bottom 0.5s ease;
	/* スライドアニメーション */
	background-color: #F2F2F2;
	z-index: 10;
	/*	display: none;*/
}

.footer-contact_box .telbox {
	width: 1100px;
	display: flex;
	margin-left: auto;
	margin-right: auto;
	padding: 10px 0px;
}

.footer-contact_box .tel-img {}

.footer-contact_box .tel-number {
	padding-left: 10px;
}

.footer-contact_box .tel-number a {
	color: #E74939;
	font-size: 50px;
	text-decoration: none;
}

.footer-contact_box .open365 {
	width: 100px;
	padding-left: 10px;
}

.footer-contact_box .open365 .title {
	color: #FFFFFF;
	font-family: "GoogleSans-Medium";
	font-size: 16px;
	text-align: center;
	padding: 5px;
	background-color: #E74939;
	display: block;
}

.footer-contact_box .open365 .time {
	font-size: 15px;
	font-family: "GoogleSans-Medium";
	font-weight: normal !important;
	text-align: center;
	padding-top: 5px;
	display: block;
}

.footer-contact_box .contact-link {
	padding-left: 50px;
}

.footer-contact_box .contact-link a {
	color: #FFFFFF;
	font-size: 23px;
	text-decoration: none;
	padding-top: 15px;
	padding-left: 70px;
	padding-right: 15px;
	padding-bottom: 15px;
	background-color: #E74939;
	border-radius: 10px;
	position: relative;
	display: block;
}

.footer-contact_box .contact-link a:before {
	width: 40px;
	height: 35px;
	content: "";
	background-image: url('../img/common/item-mail.png');
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 40px;
	position: absolute;
	top: 8px;
	left: 10px;
}

.footer-contact_box .contact-link a:after {
	content: ">";
	margin-left: 15px;
}

.footer_tel_box {
	padding-top: 100px;
	padding-bottom: 81px;
	background-color: #E74939;
}

.footer_tel_box .tel_sub {
	position: relative;
	width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

.footer_tel_box .title {
	color: #E74939 !important;
	display: block;
}

.footer_tel_box .arrow_box {
	position: absolute;
	top: -135px;
	left: 50%;
	width: 700px;
	background: #FFFFFF;
	margin-left: -350px;
	padding: 10px 0px;
	text-align: center;
	border: 4px solid #000000;
	color: #000000;
	font-size: 48px;
	font-weight: bold;
	border-radius: 35px;
	-webkit-border-radius: 35px;
	-moz-border-radius: 35px;
}

.footer_tel_box .arrow_box:after,
.arrow_box:before {
	border: solid transparent;
	content: '';
	height: 0;
	width: 0;
	pointer-events: none;
	position: absolute;
	top: 100%;
	left: 50%;
}

.footer_tel_box .arrow_box:after {
	border-color: rgba(255, 255, 255, 0);
	border-top-width: 20px;
	border-bottom-width: 20px;
	border-left-width: 20px;
	border-right-width: 20px;
	margin-left: -20px;
	border-top-color: #FFFFFF;
}

.footer_tel_box .arrow_box:before {
	border-color: rgba(0, 0, 0, 0);
	border-top-width: 22px;
	border-bottom-width: 22px;
	border-left-width: 22px;
	border-right-width: 22px;
	margin-left: -22px;
	margin-top: 3px;
	border-top-color: #000000;
}

.footer_tel_box .img {
	position: absolute;
	top: -140px;
	left: -140px;
	display: block;
}

.footer_tel_box .tel_text_box {
	width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

.footer_tel_box .tel_text_box .text {
	color: #FFFFFF;
	font-size: 40px;
	font-weight: bold;
	text-align: center;
	display: block;
}

.footer_tel_box .tel_text_box .tel {
	text-align: center;
	display: block;
}

.footer_tel_box .tel_text_box .tel a {
	position: relative;
	width: 655px;
	color: #FFDE35;
	font-size: 95px;
	font-weight: bold;
	text-decoration: none;
	margin-left: auto;
	margin-right: auto;
	padding-left: 87px;
	display: block;
}

.footer_tel_box .tel_text_box .tel a::before {
	position: absolute;
	top: 12px;
	left: 0;
	content: "";
	width: 80px;
	height: 80px;
	background-image: url("../img/common/icon-footer-tel.png");
	background-repeat: no-repeat;
	background-position: center;
	display: inline-block;
}

/* footer: フッターのスタイル */
footer {
	padding-top: 50px;
	background-color: #FFDE35;
	margin-top: auto;
	/* フレックスボックスで下部に固定 */
	margin-bottom: 73px;
}

footer ul {
	width: 380px;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	align-items: center;
	gap: 30px;
}

footer ul li {}

footer ul li a {
	color: #000000;
	font-size: 16px;
	text-decoration: none;
}

footer ul li a:hover {
	text-decoration: underline;
}

footer small {
	font-size: 16px;
	text-align: center;
	margin-top: 40px;
	padding-bottom: 50px;
	display: block;
}

.color-red {
	color: #E74939;
}

.back-to-top {
	position: fixed;
	bottom: 20px;
	right: 20px;
	display: none;
	/* 初期状態では非表示 */
	/*    color: #fff;*/
	/*    padding: 10px 15px;*/
	/*    border-radius: 50%;*/
	/*    font-size: 18px;*/
	text-align: center;
	/*    line-height: 1;*/
	cursor: pointer;
	/*    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);*/
	transition: opacity 0.3s ease, transform 0.3s ease;
	z-index: 1000;
	width: 90px;
}

.back-to-top img {
	width: 100%;
}

.back-to-top.show {
	display: block;
	/* スクロール後に表示 */
	opacity: 1;
	transform: translateY(0);
}

.back-to-top.hide {
	opacity: 0;
	transform: translateY(20px);
}

.pc-none {
	display: none !important;
}