@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------
	h要素（見出し）
	paging（ページング）
	widget_btn（ボタン）
	widget_bnr（バナー）
	widget_cat（カテゴリー）
	widget_col2（2カラム）
	widget_lead（リード文）
	widget_line（区切り線）
	widget_tab / widget_panel（タブ）
	widget_sitemap（サイトマップ）
	widget_list（投稿一覧）
	widget_entry（投稿詳細）
	content_business（コンテンツ：事業内容）
	content_contact（コンテンツ：お問い合わせ）
------------------------------------------------------------------------ */

/* ========================================================================
	h要素（見出し）
======================================================================== */

/* ----------------------------------------
	h_01
---------------------------------------- */
.h_01{
	margin:0 0 100px 0;
	padding:0 0 0 70px;
}

.h_01 .ja{
	display:block;
	position:relative;
	font-family:"Shippori Mincho B1", serif;
	font-size:4.0rem;
	font-weight:600;
	color:#1c375f;
	line-height:6.0rem;
}

.h_01 .ja::before,
.h_01 .ja::after{
	content:"";
	position:absolute;
	top:28px;
	left:-70px;
	width:32px;
	height:5px;
	background:#1c375f;
}
.h_01 .ja::after{
	width:8px;
	background:#bfa88f;
}

.h_01 .en{
	display:block;
	margin:5px 0 0 0;
	font-family:"EB Garamond", serif;
	font-size:2.4rem;
	font-weight:500;
	line-height:3.4rem;
	letter-spacing:0.05em;
}

@media screen and (max-width:767px){
.h_01{
	margin:0 0 40px 0;
	padding:0 0 0 40px;
}

.h_01 .ja{
	font-size:2.4rem;
	line-height:3.4rem;
}

.h_01 .ja::before,
.h_01 .ja::after{
	top:15px;
	left:-40px;
	width:20px;
}
.h_01 .ja::after{
	width:5px;
}

.h_01 .en{
	margin:15px 0 0 0;
	font-size:1.8rem;
	line-height:1;
}
}


/* ----------------------------------------
	h_02
---------------------------------------- */
.h_02{
	margin:0 0 100px 0;
	text-align:center;
	line-height:1;
}

.h_02 .ja{
	display:inline-block;
	padding:0 20px 30px;
	border-bottom:2px solid #19385f;
	font-family:"Shippori Mincho B1", serif;
	font-size:4.0rem;
	font-weight:600;
	color:#19385f;
	letter-spacing:0.05em;
}

.h_02 .en{
	display:block;
	padding:25px 0 0 0;
	font-family:"Shippori Mincho B1", serif;
	font-size:2.2rem;
	font-weight:500;
	color:#7693b8;
	letter-spacing:0.05em;
}

@media screen and (max-width:767px){
.h_02{
	margin:0 0 40px 0;
}

.h_02 .ja{
	padding:0 20px 15px;
	font-size:2.4rem;
	line-height:3.4rem;
}

.h_02 .en{
	padding:15px 0 0 0;
	font-size:1.8rem;
}
}


/* ----------------------------------------
	h_03
---------------------------------------- */
.h_03{
	margin:0 0 60px 0;
	padding:10px 30px 11px 36px;
	background:#f2f4f6;
	border-left:8px solid #19385f;
	font-family:"Shippori Mincho B1", serif;
	font-size:3.4rem;
	font-weight:600;
	color:#1c375f;
	line-height:5.4rem;
}

@media screen and (max-width:767px){
.h_03{
	margin:0 0 40px 0;
	padding:10px 20px;
	font-size:2.0rem;
	line-height:3.0rem;
}
}


/* ========================================================================
	paging（ページング）
======================================================================== */
.paging{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:20px;
	margin:0 0 200px 0;
	font-weight:500;
}

.paging span.dots{
	display:flex;
	align-items:center;
	height:50px;
	margin:0 10px;
	line-height:1;
}

.paging span.current,
.paging a{
	display:flex;
	justify-content:center;
	align-items:center;
	width:50px;
	height:50px;
	background:#eff1f3;
	color:#1c375f;
	line-height:1;
	text-decoration:none;
}
.paging span.current,
.paging a:hover{ background:#1c375f; color:#ffffff; }

@media screen and (max-width:767px){
.paging{
	gap:20px 10px;
	margin:0 0 60px 0;
}

.paging span.dots{
	height:40px;
	margin:0;
}

.paging span.current,
.paging a{
	width:40px;
	height:40px;
}
}


/* ========================================================================
	widget_btn（ボタン）
======================================================================== */
.widget_btn{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:40px;
	margin:0 0 100px 0;
}

.widget_btn a,
.widget_btn button{
	display:flex;
	justify-content:center;
	align-items:center;
	position:relative;
	min-width:414px;
	min-height:82px;
	padding:0 70px;
	background:#1c375f;
	font-size:1.8rem;
	font-family:"Shippori Mincho B1", serif;
	font-weight:700;
	color:#ffffff;
	line-height:2.8rem;
	text-decoration:none;
	transition-duration:0.2s;
}

.widget_btn a::before,
.widget_btn button::before{
	content:"";
	position:absolute;
	top:0;
	right:26px;
	width:18px;
	height:100%;
	background:url(../../img/common/arrow_01.png) no-repeat center;
}

.widget_btn a[target="_blank"]::before{
	background-image:url(../../img/common/icon_blank.svg);
	filter:invert(100%) sepia(2%) saturate(493%) hue-rotate(153deg) brightness(116%) contrast(100%);
}

.widget_btn a:hover,
.widget_btn button:hover{
	opacity:0.8;
}

@media screen and (max-width:767px){
.widget_btn{
	gap:20px;
	margin:0 0 40px 0;
}

.widget_btn a,
.widget_btn button{
	min-width:auto;
	min-height:60px;
	width:100%;
	padding:10px 54px;
	line-height:2.6rem;
}

.widget_btn a::before,
.widget_btn button::before{
	right:20px;
	width:14px;
	background-size:100% auto;
}
}


/* ----------------------------------------
	white / beige
---------------------------------------- */
.widget_btn .white,
.widget_btn .beige{
	background:#ffffff;
	color:#1c375f;
}
.widget_btn .beige{ background:#e0cda9; }

.widget_btn .white::before,
.widget_btn .beige::before{
	background-image:url(../../img/common/arrow_02.png);
}


/* ----------------------------------------
	entry
---------------------------------------- */
.widget_btn .entry{
	min-width:540px;
	min-height:100px;
	font-size:2.0rem;
	line-height:3.0rem;
}

.widget_btn .entry::before{
	top:50%;
	width:auto;
	height:auto;
	background:none;
	border-style:solid;
	border-width:8px 0 8px 10px;
	border-color:transparent transparent transparent #ffffff;
	transform:translateY(-50%);
	transition-duration:0.2s;
}
.widget_btn .entry[target="_blank"]::before{ filter:none; }

@media screen and (max-width:767px){
.widget_btn .entry{
	min-width:auto;
	min-height:80px;
	padding:10px 50px;
	font-size:1.8rem;
	line-height:2.6rem;
}
}


/* ========================================================================
	widget_bnr（バナー）
======================================================================== */
.widget_bnr a{
	display:flex;
	flex-direction:column;
	position:relative;
	min-height:370px;
	margin:0 0 100px 0;
	padding:102px 84px 84px;
	background:url(../../img/common/bg_review.jpg) no-repeat center;
	background-size:cover;
	color:#ffffff;
	text-decoration:none;
}

.widget_bnr h2,
.widget_bnr h3{
	margin:0 0 14px 0;
	line-height:1;
}

.widget_bnr h2 .en, 
.widget_bnr h3 .en{
	display:flex;
	align-items:center;
	margin:0 0 26px 0;
	font-size:5.2rem;
	white-space:nowrap;
}

.widget_bnr h2 .en::after,
.widget_bnr h3 .en::after{
	content:"";
	width:100%;
	height:1px;
	margin:10px 0 0 64px;
	background:#ffffff;
}

.widget_bnr h2 .ja,
.widget_bnr h3 .ja{
	display:block;
	font-size:2.0rem;
}

.widget_bnr p{
	display:flex;
	justify-content:flex-end;
	font-size:1.7rem;
}

@media screen and (max-width:767px){
.widget_bnr a{
	min-height:auto;
	margin:0 0 40px 0;
	padding:40px 20px;
}

.widget_bnr h2,
.widget_bnr h3{
	margin:0 0 30px 0;
}

.widget_bnr h2 .en, 
.widget_bnr h3 .en{
	margin:0 0 20px 0;
	font-size:4.0rem;
}

.widget_bnr h2 .en::after,
.widget_bnr h3 .en::after{
	margin:10px 0 0 20px;
}

.widget_bnr h2 .ja,
.widget_bnr h3 .ja{
	font-size:1.8rem;
}

.widget_bnr p{
	display:block;
	font-size:1.6rem;
	line-height:3.0rem;
}
}


/* ========================================================================
	widget_cat（カテゴリー）
======================================================================== */
.widget_cat{
	margin:0 0 100px 0;
	padding:50px;
	background:#eff1f3;
}

.widget_cat dt{
	margin:0 0 30px 0;
	font-size:2.8rem;
	color:#19385f;
	line-height:1;
}

.widget_cat ul{
	display:flex;
	flex-wrap:wrap;
	gap:20px 22px;
}

.widget_cat ul li a{
	display:flex;
	justify-content:center;
	align-items:center;
	padding:0 20px;
	min-width:165px;
	height:50px;
	background:#ffffff;
	color:#1c375f;
	line-height:1;
	text-decoration:none;
	transition-duration:0.2s;
}

.widget_cat ul li a:hover{
	background:#1c375f;
	color:#ffffff;
}

@media screen and (max-width:767px){
.widget_cat{
	margin:0 0 40px 0;
	padding:20px;
}

.widget_cat dt{
	margin:0 0 20px 0;
	font-size:2.0rem;
	line-height:3.0rem;
}

.widget_cat ul{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:20px;
}

.widget_cat ul li a{
	padding:0 10px;
	min-width:auto;
}
}


/* ========================================================================
	widget_col2（2カラム）
======================================================================== */
.widget_col2{
	display:flex;
	align-items:center;
	margin:0 0 100px 0;
}

.widget_col2 > img{
	margin:0 78px 0 0;
}

.widget_col2 .block h3{
	margin:0 0 25px 0;
	padding:0 0 23px 0;
	border-bottom:1px solid #1c375f;
	font-size:2.6rem;
	font-weight:700;
	color:#1d415f;
	line-height:3.6rem;
	letter-spacing:0.05em;
}

.widget_col2 .block p{
	line-height:3.0rem;
}

@media screen and (max-width:767px){
.widget_col2{
	display:block;
	margin:0 0 40px 0;
}

.widget_col2 > img{
	display:block;
	margin:0 auto 20px;
}

.widget_col2 .block{
	padding:0;
}

.widget_col2 .block h3{
	margin:0 0 20px 0;
	padding:0 0 20px 0;
	font-size:2.0rem;
	line-height:3.0rem;
}
}


/* ========================================================================
	widget_lead（リード文）
======================================================================== */
.widget_lead{
	margin:0 0 200px 0;
	text-align:center;
	font-family:"Shippori Mincho B1", serif;
	font-size:3.2rem;
	font-weight:600;
	line-height:5.2rem;
}

@media screen and (max-width:767px){
.widget_lead{
	margin:0 0 60px 0;
	font-size:2.4rem;
	line-height:4.4rem;
}
}


/* ========================================================================
	widget_line（区切り線）
======================================================================== */
.widget_line{
	overflow:hidden;
	position:relative;
	padding-top:200px;
}

.widget_line::before{
	content:"";
	position:absolute;
	top:0;
	left:50%;
	width:1600px;
	height:1px;
	background:#dfe0e0;
	transform:translateX(-50%);
}

@media screen and (max-width:767px){
.widget_line{
	padding-top:60px;
}

.widget_line::before{
	left:0;
	width:100%;
	transform:none;
}
}


/* ========================================================================
	widget_tab / widget_panel（タブ）
======================================================================== */
.widget_tab{
	display:grid;
	grid-template-columns:repeat(auto-fit,270px);
	justify-content:center;
	gap:40px;
	margin:0 0 200px 0;
}

.widget_tab li{
	width:270px;
}

.widget_tab a{
	display:flex;
	justify-content:center;
	align-items:center;
	height:70px;
	padding:0 20px;
	background:#eff1f3;
	font-family:"Shippori Mincho B1", serif;
	font-size:1.8rem;
	font-weight:700;
	color:#1c375f;
	line-height:2.6rem;
	text-decoration:none;
	transition-duration:0.2s;
}

.widget_tab a:hover,
.widget_tab a.active{
	background:#1c375f;
	color:#ffffff;
}

@media screen and (max-width:767px){
.widget_tab{
	grid-template-columns:repeat(2,1fr);
	gap:20px;
	margin:0 0 60px 0;
}

.widget_tab li{
	width:auto;
}

.widget_tab a{
	height:60px;
	padding:0 10px;
	font-size:1.6rem;
	line-height:2.2rem;
}
}


/* ========================================================================
	widget_sitemap（サイトマップ）
======================================================================== */
.widget_sitemap{
	display:flex;
	justify-content:space-between;
	padding:0 0 40px 0;
}

.widget_sitemap ul ul{
	margin:30px 0 0 0;
}

.widget_sitemap ul li{
	margin:0 0 30px 0;
	font-size:1.8rem;
	font-weight:500;
	line-height:3.0rem;
}

.widget_sitemap ul ul li{
	margin:0 0 24px 0.5em;
	font-size:1.6rem;
	line-height:2.4rem;
}

.widget_sitemap ul ul li::before{
	content:"・";
}

.widget_sitemap a{
	display:inline-block;
	position:relative;
	text-decoration:none;
}
.widget_sitemap a:hover{ text-decoration:underline; }

.widget_sitemap a[target="_blank"]{
	padding:0 32px 0 0;
}

.widget_sitemap a[target="_blank"]::before{
	content:"";
	position:absolute;
	top:7px;
	right:0;
	width:18px;
	height:18px;
	background:url(../../img/common/icon_blank.svg) no-repeat center;
	filter:invert(0%) sepia(5%) saturate(47%) hue-rotate(142deg) brightness(83%) contrast(84%);
}

@media screen and (max-width:767px){
.widget_sitemap{
	display:grid;
	place-content:center;
	padding:0 0 20px 0;
}

.widget_sitemap ul ul{
	margin:20px 0 0 0;
}

.widget_sitemap ul li{
	margin:0 0 20px 0;
}
}


/* ========================================================================
	widget_list（投稿一覧）
======================================================================== */
.widget_list{
	padding:0 0 100px 0;
	border-top:1px solid #c5c2c2;
}

.widget_list li{
	border-bottom:1px solid #c5c2c2;
}

.widget_list a{
	display:flex;
	align-items:flex-start;
	position:relative;
	padding:34px 38px 34px 10px;
	line-height:3.0rem;
	text-decoration:none;
}

.widget_list a::before{
	content:"";
	position:absolute;
	top:50%;
	right:10px;
	width:8px;
	height:8px;
	background:#e2e2e2;
	border-radius:50%;
	transform:translateY(-50%);
	transition-duration:0.2s;
}
.widget_list a:hover::before{ background:#1a304d; }

.widget_list time{
	margin:0 40px;
	font-size:1.8rem;
}

.widget_list .cat{
	min-width:118px;
	margin:0 0 0 0;
	padding:0 20px;
	background:#1c375f;
	text-align:center;
	font-size:1.5rem;
	font-weight:700;
	color:#ffffff;
}
.widget_list .cat_column{ background:#c7b291; }

.widget_list .title{
	flex:1;
	color:#1c375f;
}

@media screen and (max-width:767px){
.widget_list{
	padding:0 0 40px 0;
}

.widget_list a{
	flex-wrap:wrap;
	padding:30px 38px 24px 10px;
}

.widget_list time{
	margin:0 0 0 20px;
	font-size:1.6rem;
}

.widget_list .title{
	flex:none;
	width:100%;
	margin:14px 0 0 0;
}
}


/* ========================================================================
	widget_entry（投稿詳細）
======================================================================== */
.widget_entry .aligncenter{ display:block; margin:0 auto 100px; }
.widget_entry .alignright{ float:right; margin:0 0 0 80px; }
.widget_entry .alignleft{ float:left; margin:0 80px 0 0; }

.widget_entry{
	padding:0 0 40px 0;
	overflow-wrap:break-word;
}

.widget_entry h1{
	margin:0 0 100px 0;
	padding:0 0 20px 0;
	border-bottom:2px solid #19385f;
	font-family:"Shippori Mincho B1", serif;
	font-size:4.0rem;
	font-weight:600;
	color:#19385f;
	letter-spacing:0.05em;
	line-height:6.0rem;
}

.widget_entry h2{
	position:relative;
	margin:0 0 60px 0;
	padding:0 0 0 70px;
	font-family:"Shippori Mincho B1", serif;
	font-size:4.0rem;
	font-weight:600;
	color:#1c375f;
	line-height:6.0rem;
}

.widget_entry h2::before,
.widget_entry h2::after{
	content:"";
	position:absolute;
	top:28px;
	left:0;
	width:32px;
	height:5px;
	background:#1c375f;
}
.widget_entry h2::after{
	width:8px;
	background:#bfa88f;
}

.widget_entry h3{
	margin:0 0 60px 0;
	padding:10px 30px 11px 36px;
	background:#f2f4f6;
	border-left:8px solid #19385f;
	font-family:"Shippori Mincho B1", serif;
	font-size:3.4rem;
	font-weight:600;
	color:#1c375f;
	line-height:5.4rem;
}

.widget_entry p,
.widget_entry table{
	margin:0 0 60px 0;
}

.widget_entry p::after{
	content:"";
	display:block;
	clear:both;
}

.widget_entry ul{
	list-style-type:disc;
	padding-inline-start:20px;
	margin:0 0 60px 0;
}

.widget_entry ol{
	list-style-type:decimal;
	padding-inline-start:26px;
	margin:0 0 60px 0;
}

@media screen and (max-width:767px){
.widget_entry .aligncenter,
.widget_entry .alignright,
.widget_entry .alignleft{
	display:block;
	float:none;
	margin:0 auto 40px;
}

.widget_entry{
	padding:0 0 10px 0;
}

.widget_entry h1{
	margin:0 0 40px 0;
	padding:0 0 20px 0;
	font-size:2.4rem;
	line-height:3.4rem;
}

.widget_entry h2{
	margin:0 0 20px 0;
	padding:0 0 0 40px;
	font-size:2.4rem;
	line-height:3.4rem;
}

.widget_entry h2::before,
.widget_entry h2::after{
	top:16px;
	width:20px;
}
.widget_entry h2::after{
	width:5px;
}

.widget_entry h3{
	margin:0 0 20px 0;
	padding:10px 20px;
	font-size:2.0rem;
	line-height:3.0rem;
}

.widget_entry p,
.widget_entry table,
.widget_entry ul,
.widget_entry ol{
	margin:0 0 30px 0;
}
}


/* ----------------------------------------
	date
---------------------------------------- */
.widget_entry .date{
	display:flex;
	margin:0 0 20px 0;
	line-height:3.0rem;
}

.widget_entry .date span{
	min-width:118px;
	margin:0 0 0 0;
	padding:0 20px;
	background:#1c375f;
	text-align:center;
	font-size:1.5rem;
	font-weight:700;
	color:#ffffff;
}
.widget_entry .date span.cat_column{ background:#c7b291; }

.widget_entry .date time{
	margin:0 0 0 40px;
	font-size:1.8rem;
}

@media screen and (max-width:767px){
.widget_entry .date time{
	margin:0 0 0 20px;
	font-size:1.6rem;
}
}


/* ========================================================================
	content_business（コンテンツ：事業内容）
======================================================================== */
.content_business ul{
	display:flex;
	flex-wrap:wrap;
	gap:40px;
	margin:0 0 100px 0;
}

.content_business ul li a{
	display:flex;
	flex-direction:column;
	position:relative;
	width:580px;
	padding:60px 0 50px 0;
	background:url(../../img/common/illust_corner.png) no-repeat 6px 6px #ffffff;
	border:1px solid #1c375f;
	text-align:center;
	text-decoration:none;
}

.content_business ul li a::before{
	content:"";
	position:absolute;
	bottom:20px;
	right:20px;
	width:18px;
	height:15px;
	background:url(../../img/common/arrow_02.png) no-repeat center;
}

.content_business ul li h3{
	margin:0 0 26px 0;
	font-size:2.8rem;
	color:#1d415f;
	line-height:1;
}

.content_business ul li h3 img{
	display:block;
	margin:0 auto 20px;
}

.content_business ul li p{
	color:#333333;
	line-height:2.4rem;
}

@media screen and (max-width:767px){
.content_business ul{
	display:block;
	margin:0;
}

.content_business ul li a{
	width:auto;
	margin:0 0 40px 0;
	padding:40px 20px 50px;
	background-size:44px;
}

.content_business ul li h3{
	margin:0 0 20px 0;
	font-size:2.0rem;
	line-height:2.8rem;
}

.content_business ul li h3 img{
	width:80px;
}
}


/* ========================================================================
	content_contact（コンテンツ：お問い合わせ）
======================================================================== */
.content_contact{
	padding:100px 0 192px 0;
	background:url(../../img/common/bg_contact.png) no-repeat center;
	background-size:cover;
	text-align:center;
}

.content_contact h2{
	position:relative;
	margin:0 0 14px 0;
	line-height:1;
}

.content_contact h2 .en{
	font-style:italic;
	font-size:18.4rem;
	color:rgba(255,255,255,0.09);
}

.content_contact h2 .ja{
	position:absolute;
	bottom:45px;
	left:50%;
	font-size:4.0rem;
	color:#ffffff;
	transform:translateX(-50%);
}

.content_contact p{
	margin:0 0 48px 0;
	font-size:1.8rem;
	color:#ffffff;
}

@media screen and (max-width:767px){
.content_contact{
	padding:20px 0 40px 0;
}

.content_contact h2 .en{
	margin:-20px;
	font-size:9.0rem;
}

.content_contact h2 .ja{
	bottom:24px;
	font-size:2.0rem;
	white-space:nowrap;
}

.content_contact p{
	margin:0 0 30px 0;
	font-size:1.6rem;
}
}


/* ----------------------------------------
	btn
---------------------------------------- */
.content_contact .btn{
	display:flex;
	flex-wrap:wrap;
	gap:50px;
}

.content_contact .btn a{
	display:flex;
	justify-content:center;
	align-items:center;
	width:575px;
	height:142px;
	background:#e0cda9;
	font-size:2.4rem;
	color:#1c375f;
	text-decoration:none;
}

.content_contact .btn a::before{
	content:"";
	width:30px;
	height:100%;
	margin:0 30px 0 0;
	background:url(../../img/common/icon_mail.png) no-repeat center;
}

@media screen and (max-width:767px){
.content_contact .btn{
	gap:20px;
}

.content_contact .btn a{
	width:100%;
	height:100px;
	font-size:2.0rem;
}

.content_contact .btn a::before{
	width:28px;
	margin:0 10px 0 0;
	background-size:28px auto;
}
}


/* tel
---------------------------------------- */
.content_contact .btn .tel{
	flex-direction:column;
	background:#ffffff;
	font-size:1.4rem;
	font-weight:500;
	color:#141414;
	line-height:1;
}
.content_contact .btn .tel::before{ content:none; }

.content_contact .btn .tel span{
	display:flex;
	align-items:center;
	margin:0 0 20px -14px;
	font-size:3.0rem;
}

.content_contact .btn .tel span::before{
	content:"";
	width:26px;
	height:100%;
	margin:0 20px 0 0;
	background:url(../../img/common/icon_tel.png) no-repeat center;
}

@media screen and (max-width:767px){
.content_contact .btn .tel span{
	margin:0 0 14px 0;
	font-size:2.4rem;
}

.content_contact .btn .tel span::before{
	width:24px;
	margin:0 10px 0 0;
	background-size:24px;
}
}