@charset "utf-8";

/* 
page-main.css - サイト固有の差分（AIが主に触る領域）
プレフィックス：p-
編集者 人間：編集する（微調整程度）
	   AI ：編集する（cursorエージェントが自由に編集をがりがり進める）
役割：ページ固有スタイル。レスポンシブもこのファイル内で完結。
禁止：c- の上書き（原則禁止）
	 共通化すべきスタイル
	 layout構造の再定義
*/

/* toppage */
#top h2 {
	font-size: 4rem;
	position: relative;
	padding-top: 35px;
	margin-bottom: 40px;
	border-bottom: none;
}
#top h2::before {
	position: absolute;
	content: "";
	display: block;
	width: 90px;
	height: 1px;
	top: 0;
	background-color: #333;
}
#top h2::after {
	display: none;
}
#top h2 span {
	display: block;
	font-weight: normal;
	font-size: 1.8rem;
	margin-top: 1.6rem;
}

.p-top__about {
	background-color: #f0f2f4;
	padding: 4rem;
	margin-top: 4rem;
}
.p-top__about h1 {
	font-size: 2.4rem;
	line-height: 3rem;
	position: relative;
	padding-bottom: 3rem;
	text-align: center;
	margin-bottom: 1.0rem;
}
.p-top__about h1::after {
	position: absolute;
	content: "";
	display: block;
	width: 10rem;
	left: 50%;
	bottom: 10px;
	transform: translateX(-50%);
	height: 3px;
	background-color: #333;
}
.p-top__about p {
	max-width: 800px;
	margin: 0 auto;
	line-height: 1.8;
	font-size: 1.6rem;
}

.p-top__entry-container {
	display: flex;
	flex-wrap: wrap;
	margin:0 -1%;
}
.p-top__entry-container section  {
	width: 23%;
	margin:0 1% 1%;
}
.time {
	margin: 0.5rem 0;
	display: flex;
	align-items: center;
}
.time span {
	border: 1px solid #a6acb2;
	padding: 3px 6px;
	font-size: 1.1rem;
	line-height: 100%;
	margin-left: 1.0rem;
	background: #fff799;
}
.p-top__entry-container ul{
	display: flex;
	margin-top: -16px;
}
.p-top__entry-container ul li {
	list-style:none;
	border: 1px solid #a6acb2;
	font-size: 1.1rem;
	line-height: 100%;
	margin-right: 1.0rem;
}
.p-top__entry-container ul li a {
    color: #333;
    display: block;
    padding: 3px 6px 4px;
	text-decoration: none;
}
.p-top__entry-container ul li a:hover {
    background: #ddd;
    opacity: 1;
}
.p-top__entry-container h2,
.p-top__entry-container h3{
	font-weight: normal;
	font-size: 1.8rem;
	line-height: 2.4rem;
	margin-top: 0px;
	margin-bottom: 1.0rem;
	border-left: 0;
	border:none;
	padding-left: 0;
}
.p-top__entry-container h3{
	margin-bottom: 2.0rem;
}
.p-top__entry-container h2::after{
	content:none;
}
.p-top__entry-container h2 a,
.p-top__entry-container h3 a{
	color: #333;
	text-decoration: none;
}
.p-top__entry-container section div.img {
	margin-bottom: 0;
}
.p-top__entry-container section img {
	width: 100%;
    height: auto;
	min-height: 170px;
    max-height: 170px;
    object-fit: cover;
}

.p-top__service-container {
	display: flex;
	flex-wrap: wrap;
}
.p-top__service-container section {
	width: 25%;
	padding: 6rem 4rem 4rem;
	border: 1px solid #d5d5d5;
	position: relative;
	margin-top:0;
}
.p-top__service-container a {
	display: block;
	color:var(--color-txt);
	text-decoration: none;
}
.p-top__service-container a:before {
	content: '';
	position: absolute;
	background: #b7b3b2;
	bottom: 2rem;
	right: 1.5rem;
	height: 1px;
	width: 8rem;
}
.p-top__service-container a:after {
	content: '';
	position: absolute;
	background: var(--color-border);
	bottom: 2.4rem;
	right: 1.4rem;
	height: 1px;
	width: 1.8rem;
	transform: rotate(-150deg);
}
.p-top__service-container p {
	line-height: 2.0;
	font-size: 1.6rem;
}
.p-top__service-container img {
	width: 100%;
	height: 140px;
	object-fit: contain;
}
.p-top__service-container h3 {
	font-size: 2.4rem;
	text-align: center;
	margin: 3.6rem 0;
	border-left: 0;
	border:none;
}

/* max-width 1279px */
@media screen and (max-width: 1025px) {
	.p-top__entry-container section {
		width: 48%;
		margin: 0 1% 30px;
	}

	.keywordsearch-page form dl dd {
		padding: 10px 0;
	}
	.keywordsearch-page form dl dt {
		width: 100%;
	}
	.keywordsearch-page input[type="text"] {
		border: 1px solid #787878;
	}

	.p-top__service-container section {
		width: 50%;
		padding: 2rem;
	}
	.p-top__service-container p {
		line-height: 1.6;
		font-size: 1.4rem;
	}
	.p-top__service-container img {
		height: 10rem;
	}
	.p-top__service-container h3 {
		font-size: 2.0rem;
		margin: 2rem 0;
	}
}
/* max-width 1025px */
@media screen and (max-width: 600px) {
	.p-top__about {
		padding: 3rem 1rem;
		margin: 0;
	}
	.p-top__about h1 {
		margin-bottom: 3rem;
		padding-bottom: 0;
		text-align: left;
	}
	.p-top__about h1::after {
		top: 130%;
		left: 0;
		transform: none;
	}

	.p-top__entry-container section {
		width: 100%;
		display: flex;
		align-items: center;
	}
	.p-top__entry-container section div.img {
		width: 38%;
		margin-right: 2%;
	}
	.p-top__entry-container section div.img img {
		width: 100%;
		height: auto;
		min-height: 100px;
		max-height: 100px;
	}
	.p-top__entry-container section div {
		width: 60%;
	}
	.p-top__entry-container section.entry-first {
		flex-direction: column;
	}
	.p-top__entry-container section.entry-first div.img {
		width: 100%;
		margin-right: 0;
	}
	.p-top__entry-container section.entry-first div {
		width: 100%;
	}

	.search_btn input {
		padding: 2.0rem;
		font-size: 2.0rem;
	}
	.search_btn {
		width: 100%;
	}
}
/* max-width 600px */