@charset "UTF-8";
/*
Theme Name: New Theme
Description: ホームページ用のテーマ
Author: 株式会社ティー・エム・シー
Version: 1.0.0
*/

/* --- 基本リセット & 全体設定 --- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	padding: 0;
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	color: #333;
	line-height: 1.6;
	background-color: #fff;
}

a {
	text-decoration: none;
	color: inherit;
	transition: 0.3s;
}

ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* === レスポンシブユーティリティクラス ===
   SP: 0 - 767px
   Tablet: 768px - 1023px
   PC: 1024px以上
=== */

/* PC only (1024px以上で表示) */
@media screen and (max-width: 1023px) {
	.only-pc {
		display: none !important;
	}
}

/* SP only (767px以下で表示) */
@media screen and (min-width: 768px) {
	.only-sp {
		display: none !important;
	}
}

/* SP only 表示 (767px以下) */
@media screen and (max-width: 767px) {
	.only-sp {
		display: block !important;
	}
}

/* --- ヘッダー --- */
#header {
	width: 100%;
	max-width: 100vw;
	background: #fff;
	border-bottom: none;
	position: sticky;
	top: 0;
	z-index: 1000;
}

.header-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
	padding: 0 30px;
	height: 80px;
	max-width: 100%;
}

.header-logo-area a {
	display: block;
	line-height: 1;
	font-size: 18px;
	font-weight: bold;
}

/* --- ナビゲーションメニュー --- */
#main-menu {
	margin-left: 50px;
	margin-right: auto;
	min-width: 0;
}

#main-menu .menu ul {
	display: flex;
	gap: 0;
	list-style: none;
	padding: 0;
	margin: 0;
	align-items: center;
	height: 80px;
}

#main-menu .menu ul li a {
	text-decoration: none;
	color: #518400;
	font-weight: 500;
	font-size: 16px;
	display: flex;
	align-items: center;
	height: 80px;
	padding: 0 40px;
	transition: background-color 0.3s;
}

#main-menu .menu ul li a:hover {
	background-color: #e9f4c3;
}

/* --- 事業案内ドロップダウン矢印 --- */
#main-menu .menu ul li.menu-item-has-children>a::after {
	content: "\f0d7";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	margin-left: 8px;
	font-size: 12px;
}

/* --- 外部リンクアイコン --- */
#main-menu .menu ul li:not(.menu-item-has-children)>a[target="_blank"]::after {
	content: "\f08e";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	margin-left: 8px;
	font-size: 12px;
}

/* --- ヘッダーロゴ --- */
.header-logo {
	height: 55px;
	width: auto;
}

/* --- 電話番号・住所エリア --- */
.header-contact {
	text-align: right;
	line-height: 1.4;
}

.header-tel {
	font-size: 18px;
	font-weight: bold;
	color: #4d4d4d;
	margin: 0;
}

.header-address {
	font-size: 12px;
	color: #4d4d4d;
	margin: 0;
}

/* --- ドロップダウンメニュー --- */
#main-menu .menu ul li {
	position: relative;
}

#main-menu .menu ul li.contact-btn {
	flex: none;
}

#main-menu .menu ul li .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: #e9f4c3;
	min-width: 160px;
	z-index: 1000;
	padding: 0;
	flex-direction: column;
	gap: 0;
}

#main-menu .menu ul li:hover>.sub-menu {
	display: flex;
}

#main-menu .menu ul li .sub-menu li {
	width: 100%;
}

#main-menu .menu ul li .sub-menu li a {
	display: block;
	padding: 8px 15px;
	font-size: 16px;
	font-weight: 500;
	white-space: nowrap;
	color: #518400;
	background-color: #e9f4c3;
	height: auto;
}

#main-menu .menu ul li .sub-menu li a:hover {
	background-color: #d4e8a8 !important;
}

/* --- 専用ページバッジ --- */
.menu-badge-dedicated {
	display: inline-block;
	font-size: 10px;
	line-height: 1;
	padding: 2px 6px;
	margin-left: 6px;
	border: 1px solid #518400;
	border-radius: 3px;
	color: #518400;
	vertical-align: middle;
	white-space: nowrap;
}

/* --- お問い合わせボタン --- */
#main-menu .menu ul li.contact-btn {
	height: 80px;
	display: flex;
	align-items: center;
}

#main-menu .menu ul li.contact-btn a {
	background-color: #fff;
	color: #518400;
	padding: 0 35px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 0;
	transition: background-color 0.3s;
}

#main-menu .menu ul li.contact-btn a:hover {
	background-color: #e9f4c3;
}

/* --- ヘッダー 中間幅対応 (1024px〜1200px) --- */
@media screen and (min-width: 1024px) and (max-width: 1280px) {
	.header-bar {
		padding: 0 15px;
	}

	#main-menu {
		margin-left: 20px;
	}

	#main-menu .menu ul li a {
		padding: 0 18px;
		font-size: 14px;
	}

	#main-menu .menu ul li.contact-btn a {
		padding: 0 18px;
	}

	.header-contact {
		flex-shrink: 0;
	}

	.header-tel {
		font-size: 16px;
	}

	.header-address {
		font-size: 11px;
	}

	.header-logo {
		height: 45px;
	}
}

/* --- フッター --- */
footer {
	background-color: #79a000;
	color: #fff;
	padding: 80px 0 60px;
}

/* フッター上部 */
.footer-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px;
}

.footer-logo-area {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex-shrink: 0;
}

.footer-logo {
	width: 220px;
	height: auto;
	margin-bottom: 8px;
}

.footer-company-name {
	font-size: 0.9rem;
	color: #fff;
	letter-spacing: 0.05em;
}

.footer-info {
	flex: 1;
}

.footer-info p {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.8;
	color: #fff;
}

.footer-info a {
	color: #fff;
}

.footer-links > ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 15px;
}

.footer-links > ul > li > a {
	color: #fff;
	font-size: 0.9rem;
	text-decoration: none;
}

.footer-links > ul > li > a::before {
	content: "•";
	margin-right: 5px;
}

.footer-links > ul > li > a:hover {
	opacity: 0.7;
}

.footer-links .footer-sub-links {
	list-style: none;
	padding: 0;
	margin: 5px 0 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.footer-links .footer-sub-links li a {
	font-size: 0.9rem;
	color: #fff;
	text-decoration: none;
	padding-left: 10px;
}

.footer-links .footer-sub-links li a::before {
	content: "-";
	margin-right: 5px;
}

.footer-links .footer-sub-links li a:hover {
	opacity: 0.7;
}

/* 区切り線 */
.footer-divider {
	border: none;
	border-top: 2px solid rgba(255, 255, 255, 1);
	margin: 30px 0;
}

/* フッターナビ */
.footer-nav ul {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	display: flex;
	justify-content: center;
	gap: 40px;
	flex-wrap: wrap;
}

.footer-nav ul li a {
	color: #fff;
	font-size: 0.9rem;
	text-decoration: none;
}

.footer-nav ul li a:hover {
	opacity: 0.7;
}

.copyright-text {
	font-size: 0.8rem;
	color: #fff;
	margin: 0;
	text-align: center;
	font-weight: 700;
}

/* フッター レスポンシブ（タブレット） */
@media (max-width: 1023px) {
	.footer-top {
		flex-wrap: wrap;
		gap: 30px;
	}

	.footer-logo-area {
		width: 100%;
		flex-direction: row;
		justify-content: center;
		gap: 15px;
	}

	.footer-logo {
		width: 150px;
		margin-bottom: 0;
	}

	.footer-info {
		width: 100%;
		text-align: center;
	}

	.footer-links {
		width: 100%;
	}

	.footer-links > ul {
		justify-content: center;
	}
}

/* フッター レスポンシブ（スマホ） */
@media (max-width: 767px) {
	footer {
		padding: 40px 0 25px;
	}

	.footer-top {
		flex-direction: column;
		align-items: center;
		gap: 25px;
	}

	.footer-logo-area {
		flex-direction: column;
	}

	.footer-logo {
		width: 140px;
		margin-bottom: 5px;
	}

	.footer-info {
		text-align: center;
	}

	.footer-links > ul {
		flex-direction: column;
		gap: 15px;
		align-items: flex-start;
	}

	.footer-nav ul {
		gap: 20px;
	}
}