/*
Theme Name: wirebase
Theme URI: http://example.com
Author URI: http://example.com
Description: wirebaseオリジナルテーマのベースです
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-original-theme
*/

/* --------------------
   全ページ共通スタイル
-------------------- */

#breadcrumbs{
	width:1080px;
	margin:0 auto;
	padding:20px 0 0;
	font-size: 0.75rem;
	color:#5C5D5D;
}

#breadcrumbs a{
	color:#5C5D5D;
}

@media (max-width: 767px) {
	#breadcrumbs{
		width:85%;
		margin:0 auto;
	}
}


/* --------------------
   一覧（アーカイブ）ページ
-------------------- */


/* --- 共通スタイル --- */

.archive_content{
	width:980px;
	margin:0 auto;
	padding:3rem 0 6rem;
}

.archive_content h1 {
	font-size: 2.5rem;
	margin-bottom: 10px;
	line-height:1.2;
	text-align:center;
}

.archive-slug{
	font-size: 1.25rem;
    font-weight: bold;
    color: #D9D9D9;
    text-align: center;
    display: block;
	margin-bottom:3rem;
}

.archive-item{
	display: flex;
	align-items: center;
	gap: 1em;
	font-weight: bold;
	width: 600px;
	margin: 30px auto;
}


.archive-date {
	width: 9em;
	flex-shrink: 0;
	color: #0163E3;
	font-size: 0.875rem;
}

.archive-title a{
	font-size: 1.2rem;
    color: #252525;
}

/* --- メインビジュアル --- */
.archive_hero {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	height:10rem;
}

@media (max-width: 767px) {
	.archive_content{
		width:85%;
		margin:0 auto;
		padding:50px 0;
	}
	.archive-item{
		font-weight: bold;
		width:85%;
		margin: 30px auto;
	}
	.archive_content h1{
	font-size: 2rem;
	margin-bottom:20px;
	}

	.archive_content h1 span{
		font-size: 1.2rem;
	}
	.archive-title{
		display:block;
	}
	.archive-date{
		display:block;
		padding-right: 0px;
	}
}




/* --------------------
   投稿ページ
-------------------- */

/* --- 共通スタイル --- */

.single_content{
	width:980px;
	margin:0 auto;
	padding:3rem 0 6rem;
}

.single_content h1 {
	font-size: 2.5rem;
	margin-bottom: 2rem;
	line-height:1.2;
}

.date{
	color: #0163E3;
    font-weight: bold;
    font-size: 0.875rem;
	margin-bottom:2rem;
}

.single_content .btn_back{
	text-align:center;
	margin-top:3rem;
}

.single_content .btn_back a{
	display: inline-block;
    text-decoration: none;
    padding: 0.8rem 2.5rem;
    font-weight: bold;
    margin-top: 1.25rem;
	background-color:#252525;
	color:#fff;
}

.single_content .my-thumbnail {
	width: 100%;
	height: auto;
	display: block;
	margin-bottom:1rem;
}

.single_content_wrap ul {
	list-style-type: disc; /* 黒点 ● */
	padding-left: 1.5em;   /* 左の余白を確保 */
	margin: 0;
}

.single_content_wrap h2,.single_content_wrap h3{
	margin:2rem 0 1rem;
}


/* --- メインビジュアル --- */
.single_hero {
	background-image: url('img/bk_company.png');
	background-size: cover;
	display: block;
	width: 100%;
	padding:5rem 0;
}

@media (max-width: 767px) {
	.single_content{
		width:85%;
		margin:0 auto;
		padding:50px 0;
	}
}

/* --------------------
   固定ページ
-------------------- */

/* --- 共通スタイル --- */

.page_content{
	width:1080px;
	margin:0 auto;
	padding:3rem 0 6rem;
}

.page_content p{
	padding-bottom: 20px;
}

.page_content ul{
	list-style-type: disc; /* 黒点 ● */
	padding-left: 1.5em;   /* 左の余白を確保 */
	margin: 0;
}


.page_content h5{
	font-size: 1.2rem;
	margin: 40px 0 20px;
}

@media (max-width: 767px) {
	.page_content{
		width:85%;
		margin:0 auto;
		padding:50px 0;
	}

}

/* --- 会社概要 --- */

.company_list{
	width:980px;
	margin:0 auto;
}
.company_list {
	display: grid;
	grid-template-columns: 200px 1fr; /* 左200px・右残り */
	gap: 0; /* 行間 */
}

.company_list dt,
.company_list dd {
	padding: 1rem 0;
	border-bottom: 1px solid #D9D9D9;
}

.company_list dd {
	font-weight:bold;
}

@media (max-width: 767px) {
	.company_list {
		display: block;
		word-break: break-all;
		max-width: 100%;
	}

	.company_list dt {
		margin-top: 1em;
	}
}

/* --- メインビジュアル --- */
.page_hero {
	background-image: url('img/company_bg.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	color:#000;
}

.page_hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.page_hero-content {
	width:1080px;
	text-align:left;
	position: relative;
	z-index: 2;
	padding: 8rem 0;
}

.page_hero-content h1 {
	font-size: 2.5rem;
	margin-bottom: 1rem;
	line-height:1.2;
	display: flex;
	align-items: center; /* 縦中央揃え！ */
  	gap: 1rem; /* 日本語と英語の間隔 */
}

.page_hero-content h1 span{
	padding-left:20px;
	font-size: 1.25rem;
	font-weight:bold;
	color:#0163E3;
}

.page_hero-content p {
	font-size: 1.2rem;
	font-weight:bold;
	margin-bottom:40px;
	text-shadow: 0px 0px 5px #fff;
}


@media (max-width: 767px) {
	.page_hero{
		height: auto;
	}
	.page_hero-content {
		width:95%;
		padding:2rem 1rem;
	}
	.page_hero-content p {
		margin-bottom:20px;
	}
	.page_hero-content h1{
	font-size: 2rem;
	font-weight:bold;
	margin-bottom:20px;
	}

	.page_hero-content h1 span{
		display:block;
		font-size: 1.2rem;
	}
}

/* --- 導入事例ページ --- */

.casestady_itembox{
	text-align:center;
}

.casestady_itembox img{
	width:auto;
	height:150px;
	margin-bottom:15px;
}


/* --------------------
  お問い合わせページ
-------------------- */

/* --- お問い合わせ --- */
#wpcf7-f64-p3-o1{
	width: 680px;
	margin: 0 auto;
}

#wpcf7-f64-p3-o1 input,#wpcf7-f64-p3-o1 select,#wpcf7-f64-p3-o1 textarea{
	font-size: 1.2rem;
	border: 1px solid #ddd;
	background-color: #F5F5F5;

}

#wpcf7-f64-p3-o1 .wpcf7-text,#wpcf7-f64-p3-o1 .wpcf7-textarea,#wpcf7-f64-p3-o1 .wpcf7-select{
	width: 100%;
    padding: 15px;
}

#wpcf7-form-control-wrap{
	margin-top: 10px;
}

#wpcf7-f64-p3-o1 .form_title{
}

#wpcf7-f64-p3-o1 .wpcf7-not-valid-tip{
	font-weight: bold;
}

#wpcf7-f64-p3-o1 .wpcf7-submit{
	width: 50%;
	padding: 20px;
	background-color: #0163E3;
	color: #fff;
	margin: 20px auto;
	border: none;
	display: block;
}

#wpcf7-f64-p3-o1 .wpcf7-acceptance{
	text-align: center;
	display: block;
}


.icon_required{
	background-color: #C00001;
	color: #fff;
	font-size: 0.8rem;
	padding: 3px;
	margin-left: 5px;
}

.icon_any{
	background-color: #C00001;
	color: #fff;
	font-size: 0.8rem;
	padding: 3px;
	margin-left: 5px;
}

@media (max-width: 767px) {
		#wpcf7-f64-p3-o1{
			width: 100%
		}
}


/* --------------------
  トップページ
-------------------- */

/* --- 共通スタイル --- */

.contents{
	width:1080px;
	margin:0 auto;
	padding:100px 0;
}

.bk_gray{
	background-color:#F2F2F2;
}
.bk_blue{
	background-color:#0163E3;
}

#top h2{
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 2.5rem;
	font-weight:bold;
	margin-bottom:20px;
}

#top h2 span{
	padding-left:20px;
	font-size: 1.25rem;
	font-weight:bold;
	color:#D9D9D9;
}

#top h3{
	font-size: 1.35rem;
	font-weight:bold;
	margin:10px 0 ;
}

@media (max-width: 767px) {
	.contents{
		width:85%;
		margin:0 auto;
		padding:50px 0;
	}
	h2{
	font-size: 2rem;
	font-weight:bold;
	margin-bottom:20px;
	}

	h2 span{
		padding-left:10px;
		font-size: 1.2rem;
		font-weight:bold;
		color:#D9D9D9;
	}
}


/* --- 事業内容 --- */

.top_business h2{
	color:#35353C;
}

.top_business_wrapper{
	display: flex;
	justify-content: space-between;
	margin-top:20px;
}

.top_business_item{
	width: 340px;
	display: flex;
	flex-direction: column; /* 中身を縦に並べる */
	justify-content: space-between; /* 上と下を離す！ */
	box-sizing: border-box;
	font-size: 0.875rem;
}

.top_business_item img{
	width:100%;
}

/* 下部のボタン */
.top_business_item p:last-child {
	margin-top: auto;
	margin-top:20px;
}

.top_business_item a {
	display: inline-block;
	font-size: 0.875rem;
	background: #35353C;
	color: #fff;
	text-decoration: none;
	padding: 0.5rem 1rem;
}


@media (max-width: 767px) {
	.top_business_wrapper{
		display:block;
	}
	.top_business_item{
		width:100%;
		margin-bottom:50px;
	}
	.top_business_item a{
		width:100%;
		text-align:center;
		padding: 1rem;
	}
}

/* --- 導入事例 --- */

.top_casestady{
	color:#fff;
}
.top_casestady_wrap {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin:40px 0 80px;
}

.top_casestady_item{
	text-align: center;
}

.top_casestady_item img {
	width: 140px;
	height: auto;
}

.top_casestady_item h4 {
	margin-top:10px;
	font-size: 1.35rem;
	min-height: 3em; /* 高さを揃えたい場合 */
}


/* 下部のボタン */
.top_casestady p:last-child {
	text-align:center;
}

.top_casestady a {
	display: inline-block;
	background: #fff;
	color: #252525;
	text-decoration: none;
	padding:0.8rem 2.5rem;
	font-weight:bold;
}

@media (max-width: 767px) {
	.top_casestady_wrap  {
		grid-template-columns: 1fr 1fr;
		margin:40px 0;
	}
	.top_casestady_item h4 {
		font-size: 0.8rem;
	}
	.top_casestady a {
		width:100%;
	}
}


/* --- お知らせ --- */

.top_news_wrap{
	width:700px;
	margin:30px auto;
}

.top_news h2{
	text-align:center;
	margin-bottom: 10px !important;
	display: block !important;
}

.top_news span{
	font-size: 1.25rem;
	font-weight:bold;
	color:#D9D9D9;
	text-align:center;
	display:block;
}

.top_news_item {
	display: flex;
	align-items: center;
	gap: 1em;
	margin-bottom: 0.5em;
	font-weight:bold;
	font-size: 0.875rem;
	padding-bottom:20px;
}

.top_news_item .news_date {
	width: 9em;
	flex-shrink: 0;
	color: #0163E3;
	font-size: 0.875rem;
}

.top_news_item a{
	font-size: 1.2rem;
	color:#252525;
}

.top_news_more{
	text-align:center;
}

.top_news_more a{
	display: inline-block;
	background: #0163E3;
	color: #fff;
	text-decoration: none;
	padding:0.8rem 2.5rem;
	font-weight:bold;
}

@media (max-width: 767px) {
	.top_news_wrap{
		width:100%;
		margin: 30px auto;
	}
	.top_news_item a{
		display:block;
	}
	.top_news_more a{
		width:100%;
	}
}


/* --- 会社概要 --- */

.top_company{
	background-image: url('img/company_bg.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color:#fff;
}

.top_company_wrap{
	display:flex;
	align-items:flex-end;
	justify-content: space-between;
}

.top_company_wrap h4{
	font-size: 3rem;
	padding-bottom:30px;
}

/* 下部のボタン */
.top_company p:last-child {
}

.top_company a {
	display: inline-block;
	background: #0163E3;
	color: #fff;
	text-decoration: none;
	padding:0.8rem 2.5rem;
	font-weight:bold;
}

@media (max-width: 767px) {
	.top_company_wrap{
		display:block;
	}
	.top_company_item{
		margin-bottom:30px;
	}
	.top_company_wrap h4{
		font-size:2.5rem;
	}
	.top_company a {
		width:100%;
		text-align:center;
	}
}


/* --- メインビジュアル --- */
.hero {
	background-image: url('img/main_bg.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	height: 85vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	color:#000;
}

.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.hero-content {
	width:1080px;
	text-align:left;
	position: relative;
	z-index: 2;
	padding: 1rem;
}

.hero-content h1 {
	font-size: 4rem;
	margin-bottom: 1rem;
	line-height:1.2;
}

.hero-content p {
	font-size: 1.25rem;
	font-weight:bold;
	margin-bottom:40px;
}

.hero-btn {
	display: flex;
    flex-direction: row;
}

.hero-btn-left {
	background-color:#0163E3;
	margin-right:20px;
}

.hero-btn-right {
	background-color:#fff;
}

.hero-btn-left a {
	color:#fff;
	padding:15px 30px;
	background-color:#0163E3;
	text-decoration: none;
}

.hero-btn-right a {
	color:#0163E3;
	padding:15px 30px;
	background-color:#fff;
	text-decoration: none;
}

@media (max-width: 767px) {
	.hero{
		background-image: url('img/sp_bg.png');
	background-position: center;
		height: auto;
	}
	.hero-content {
		width:95%;
		padding:2rem 1rem 0;
	}
	.hero-content h1 {
		font-size: 2.5rem;
		line-height:1.2;
	}
	.hero-content p {
	margin-bottom:20px;
	}
	.hero-btn {
	display: block;
	}
	.hero-btn a{
		display:block;
		text-align:center;
	}
	.hero-btn-left {
	margin-right:0px;
	}
}

/* --------------------
   メイン・サイドバー
-------------------- */
main {
	width: 100%;
	padding-top: 100px; /* 固定ヘッダー分の余白 */
}

aside {
	background-color: #f1f1f1;
	padding: 1rem;
	margin: 1rem 0;
}

/* --------------------
	フッター
-------------------- */
/* --- フッター上 --- */

#footer_contact{
	background-color:#0163E3;
}

.footer_contact_wrap{
	width:1080px;
	margin:0 auto;
	padding:100px 0;
	display: flex;
	justify-content: space-around;
	text-align:center;
	color:#fff;
}

.footer_contact_left{
	border-right:1px solid #252525;
}

.footer_contact_left,
.footer_contact_right {
	flex: 1; /* 均等に分割する */
	box-sizing: border-box;
}

.footer_contact_title{
	font-size: 2.5rem;
	font-weight:bold;
}

.footer_contact_en{
	font-size: 1.25rem;
	margin-bottom:20px;
	font-weight:bold;
}

.footer_contact_text{
	font-size: 1.25rem;
}

.footer_contact_btn a {
	display: inline-block;
	text-decoration: none;
	padding:0.8rem 2.5rem;
	font-weight:bold;
	margin-top:1.25rem;
}

.footer_contact_left .footer_contact_btn a{
	background: #252525;
	color: #fff;
}

.footer_contact_right .footer_contact_btn a{
	background: #fff;
	color: #0163E3;
}

@media (max-width: 767px) {
	.footer_contact_wrap{
		width:100%;
		display:block;
		padding:50px 0;
	}
	.footer_contact_left{
		padding-bottom:50px;
		margin-bottom:50px;
		border-bottom:1px solid #252525;
		border-right:none
	}
	.footer_contact_title{
		font-size: 2rem;
		font-weight:bold;
	}

	.footer_contact_en{
		font-size: 1.2rem;
		margin-bottom:20px;
		font-weight:bold;
	}

	.footer_contact_text{
		font-size: 1.2rem;
	}
}

/* --- フッター下 --- */

footer {
	background-color: #252525;
	color:#fff;
}

#footer_wrap {
	display: flex;
	align-items: center;
	gap: 4rem;
	width:1080px;
	margin:0 auto;
	padding:100px 0 40px;
}

/* ロゴ部分 */
.footer_logo img {
	width: 110px;
	height: auto;
	display: block;
}

.footer_address_wrap {
	display: flex;
	align-items:flex-end;
	flex: 1; /* ロゴを除いた残りの幅を使う */
	gap: 2rem; /* 住所1と住所2の間のスペース */
}

.footer_address {
	flex: 1 1 auto;
	/* flex-grow: 1 → 伸びる
		flex-shrink: 1 → 縮む
		flex-basis: auto → 中身の幅に基づく */
	min-width: 0; /* はみ出し防止 */
	font-size: 0.8rem;
}

.footer_address p {
	margin: 0;
}

.footer_name{
	font-size:1.1rem;
	padding-bottom:5px;
	font-weight:bold;
}

#footer-navigation {
	text-align:center;
	padding: 1rem 0;
	background-color: #3E3D3D;
}

#footer-navigation li{
	display:inline-block;
	padding-right: 20px;
}
#footer-navigation a{
	font-size: 0.8rem;
	color:#fff;
	text-decoration:none;
}

#copyright{
	text-align:center;
	padding: 1rem 0 3rem;
	font-size: 0.625rem;
}

@media (max-width: 767px) {
	#footer_wrap {
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		padding: 50px 20px;
		gap: 1rem;
	}
	.footer_logo img {
		width: 30%;
	}
	.footer_address_wrap {
		flex-direction: column;
		width: 100%;
		gap: 1rem;
	}
	.footer_logo img {
		margin-bottom: 1rem;
	}
}


/* --------------------
	固定ヘッダー & ヘッダー内配置
-------------------- */
/* --- 共通スタイル --- */
.site-header {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 999;
}

.header-inner {
	max-width: 1080px;
	margin: 0 auto;
	display: flex;
	align-items: top;
	justify-content: space-between;
	flex-wrap: wrap;
}

.site-logo img {
	height: 90px;
	width: auto;
}

.menu-toggle {
	background: none;
	border: none;
	font-size: 1.5rem;
	cursor: pointer;
}

/* --- メニュー共通 --- */
.main-navigation {
	width: 100%;
}

.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation li {
	border-bottom: 1px solid #D9D9D9;
}


.main-navigation a {
	display: block;
	padding: 0.75rem 2rem;
	text-decoration: none;
	color: #252525;
	font-weight:bold;
}

/* --- スマホ（下展開） --- */
@media (max-width: 767px) {
	.main-navigation {
		display: none;
		width: 100%;
	}
	.main-navigation.active {
		display: block;
		background-color:#fff;
	}
	.main-navigation ul {
		display: block;
		border-top: 1px solid #eee;
	}
	.menu-toggle {
		display: block;
		margin-right:20px;
	}
	.site-logo img {
		height: 50px;
		width: auto;
		margin:20px 0 0 20px;
	}
	.header-inner {
		max-width: 100%;
		margin: 0 auto;
		padding: 0rem;
	}
}

/* --- PC（横並び） --- */
@media (min-width: 768px) {
	.menu-toggle {
		display: none;
	}
	.main-navigation {
		display: block;
		width: auto;
	}
	.main-navigation ul {
		display: flex;
		justify-content: flex-end;
		gap: 1.5rem;
	}
	.site-logo {
		margin:1rem 0;
	}
	.main-navigation li {
		border-bottom: none;
	}
	.main-navigation a {
		padding: 2rem;
		text-shadow: 0px 0px 5px #fff;
	}
	#menu-item-13 a{
		background-color:#252525;
		color:#fff;
		text-shadow: none;
	}
	.container {
		display: flex;
		gap: 2rem;
	}
	main {
		flex: 3;
	}
	aside {
		flex: 1;
		margin-top: 0;
	}
}


/* --------------------
  共通
-------------------- */

.wrapper{
	background-color:#fff;
}


@media (min-width: 768px) {
.sp{
		display:none;
	}
}
@media (max-width: 767px) {
.pc{
		display:none;
	}
}

/* --------------------
    リセット & ベース
-------------------- */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

a {
    color: #252525;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	line-height: 1.6;
	color: #252525;
	background-color: #252525;
}
