
/* ======================================

=========================================*/
.inner {
 width: 100%;
 max-width: 1280px;
 margin-left: auto;
 margin-right: auto;
}

#container {
 padding: 0 20px;
 overflow: hidden;
}

figure {
 position: relative;
}

.flex {
 display: flex;
}

.row-reverse {
 flex-direction: row-reverse;
}

.space-between {
 justify-content: space-between;
}

/* views */
.sp {
  display: none !important;
}
@media only screen and (max-width:736px) {
  .sp {
    display: block !important;
  }
  .pc {
    display: none !important;
  }
}


/* ======================================

=========================================*/
.articleInfo {
  margin-top: 80px;
}

.mainArticle {
 max-width: 100%;
 position: relative;
 width: 100%;
 padding-top: 80px;
 padding-bottom: 80px;
 padding-left: 0;
 padding-right: 0;
}

.mainArticle__subheadline {
 font-size: 21px;
 line-height: calc(50/21);
 letter-spacing: 0.2em;
 margin-bottom: 10px;
 border-bottom: 1px solid #e5e5e5;
}

.contents {
 margin-top: 110px;
}

@media only screen and (max-width:736px) {
  .articleInfo {
    margin-top: 30px;
  }

 .mainArticle {
  padding-top: 30px;
 }

 .mainArticle__headline {
  font-size: clamp(1.25rem, 0.601rem + 2.77vw, 1.875rem);
  line-height: 1.6;
 }

 .mainArticle__subheadline {
  font-size: clamp(0.938rem, 0.669rem + 1.263vw, 1.25rem);
 }

 .keyVisual {
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
 }

 .contents {
  margin-top: 80px;
 }

 .contSection__headline {
  font-size: clamp(1.063rem, 0.472rem + 2.778vw, 1.75rem);
  line-height: 1.6;
 }

 .contSection__headline + .text {
  line-height: 1.8;
  font-size:  clamp(0.938rem, 0.793rem + 0.721vw, 1.125rem);
  margin-top: clamp(1.25rem, 0.601rem + 2.77vw, 1.875rem);
 }
}

.contents_flex {
 display: flex;
 margin-top: 40px;
}

.contents_flex_img {
 width: 100%;
 margin-right: 2%;
 max-width: clamp(29.375rem, 18.347rem + 23.941vw, 37.5rem);
}

.contents_flex_body {
 width: 48%;
 /* max-width: 630px; */
}

.contents_flex_title {
 font-size: clamp(1.125rem, 0.616rem + 1.105vw, 1.5rem);
 line-height: 1.9;
}

.text {
 font-size: clamp(0.813rem, 0.558rem + 0.552vw, 1rem);
}

.text small {
  font-size: 70%;
}

@media only screen and (max-width:736px) {
 .contents_flex {
  display: block;
  margin-top: 20px;
 }
 
 .contents_flex_img {
  width: 100%;
  max-width: 100%;
  margin-top: 40px;
  text-align: center;
 }
 
 .contents_flex_body {
  width: 100%;
 }
 
 .contents_flex_title {
  font-size: clamp(1.063rem, 0.472rem + 2.778vw, 1.75rem);
 }

 .text {
  font-size:  clamp(0.938rem, 0.793rem + 0.721vw, 1.125rem);
  line-height: 1.8;
 }

 .text small {
  font-size: 80%;
}
}

/* ======================================
contents_box
=========================================*/
.contents_box {
 margin-top: 60px;
}

.contents_box .inner {
 width: 100%;
 max-width: 1000px;
 margin-left: auto;
 margin-right: auto;
}

.contents_box_wrap {
 display: flex;
 position: relative;
 border: 1px solid #e5e5e5;
 padding: 36px 50px;
}

.d_block .contents_box_wrap {
  display: block;
 }

.contents_box_title {
 position: absolute;
 text-align: center;
 font-size: 20px;
 line-height: 1;
 letter-spacing: 0.1em;
 padding: 10px 24px;
 background-color: #fff;
 top: -20px;
 left: 50%;
 transform: translateX(-50%);
}

.contents_box_item {
 max-width: 420px;
}

.contents_box_lead {
 font-size: 16px;
 line-height: calc(20/16);
 letter-spacing: 0.1em;
}

.contents_box_img {
 margin-top: 10px;
}

.contents_box_text {
 margin-top: 6px;
 font-size: 14px;
 line-height: calc(20/14);
 letter-spacing: 0.1em;
}

.contents_box_text2 {
 font-size: 16px;
 line-height: 1.9;
 letter-spacing: 0.1em;
}

.d_block .contents_box_text2 {
  margin-top: 20px;
}

.box_title_icon {
 position: absolute;
 width: 222px;
 top: -20px;
 left: 50px;
}

@media only screen and (max-width:736px) {
 .contents_box {
  margin-top: 50px;
 }

 .contents_box_wrap {
  display: block;
  padding: 22px 20px;
 }
 
 .contents_box_title {
  min-width: 220px;
  font-size: clamp(1.125rem, 0.995rem + 0.554vw, 1.25rem);
  padding: 10px 10px;
 }
 
 .point .contents_box_title {
  position: static;
  width: 100%;
  transform: none;
  font-size: clamp(1.125rem, 0.735rem + 1.662vw, 1.5rem);
  padding: 10px 0 20px;
  text-align: center;
 }
 
 .contents_box_item {
  max-width: 100%;
 }
 
 .contents_box_lead {
  font-size: clamp(1rem, 0.805rem + 0.831vw, 1.188rem);
 }
 
 .contents_box_img {
  margin-top: 0;
  text-align: center;
 }
 
 .contents_box_text {
  margin-top: 6px;
  font-size: 14px;
  line-height: calc(20/14);
  letter-spacing: 0.1em;
 }
 
 .contents_box_text2 {
  font-size:  clamp(0.938rem, 0.793rem + 0.721vw, 1.125rem);
  margin-top: 10px;
  line-height: 1.8;
 }
 
 .box_title_icon {
  position: absolute;
  width: 170px;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
 }

  .d_block .contents_box_text2 {
    margin-top: 10px;
  }
}

/* ======================================
mr-ogawa
=========================================*/
.mr-ogawa {
  margin-top: 60px;
}
.mr-ogawa .contents_flex_body {
 width: 100%;
 max-width: 850px;
 margin-right: 4%;
}

.mr-ogawa .contents_flex_imgwrap {
 width: 100%;
 max-width: 370px;
}

.mr-ogawa .contents_box_wrap {
 justify-content: space-between;
 padding: 40px 30px;
}

.mr-ogawa .contents_box_title {
 min-width: 280px;
}

.career {
 width: 100%;
 max-width: clamp(16.25rem, 9.464rem + 14.733vw, 21.25rem);
 margin-right: 4%;
}

.graph {
 width: 100%;
 max-width: clamp(13.125rem, -2.993rem + 34.991vw, 25rem);
}

.career_list {
	font-size: 14px;
	line-height: calc(25/14);
	letter-spacing: 0.05em;
	display: flex;
	margin-top: 10px;
 padding-bottom: 10px;
 border-bottom: 1px solid #e5e5e5 ;
}

.career_list:last-child {
 border-bottom: none ;
 padding-bottom: 0;
}

.career_list::before {
	content: '';
	display: inline-block;
	margin-right: 6px;
	width: 12px;
	height: 12px;
	background-color: #000;
	flex-shrink: 0;
	border-radius: 100%;
	margin-top: 6px;
}

.mr-ogawa_img {
 margin-top: 20px;
}

.mr-ogawa_imgwrap {
 gap: 5px;
 margin-top: 20px;
}

.mr-ogawa .photo__cap {
 font-size: 12px;
 text-align: left;
 left: 0;
 right: auto;
}

.speech {
 position: relative;
 padding: 14px 0 14px 24px;
 background-color: #f8f7f2;
 border-left: 1px solid #b9ab60;
 border-bottom: 1px solid #b9ab60;
}

.icon_speech {
 position: absolute;
 bottom: -48px;
 left: 50%;
 transform: translateX(-50%);
}

.speech p {
 font-size: 16px;
 line-height: calc(30/16);
}

@media only screen and (max-width:736px) {
 .mr-ogawa {
  display: block;
  margin-top: 40px;
 }

 .mr-ogawa .contents_flex_body {
  margin: 40px auto 0;
 }
 
 .mr-ogawa .contents_flex_imgwrap {
  max-width: 670px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  justify-content: space-between;
 }
 
 .mr-ogawa .contents_box_wrap {
  display: block;
  padding: 40px 20px;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
 }
 
 .career {
  width: 100%;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
 }
 
 .graph {
  margin: 30px auto 0;
  max-width: 100%;
 }
 
 .career_list {
  font-size: clamp(0.813rem, 0.618rem + 0.831vw, 1rem);
 }

 .career_list::before {
  margin-right: 2px;
  width: 10px;
  height: 10px;
  margin-top: clamp(0.438rem, 0.243rem + 0.831vw, 0.625rem);
 }
 
 .mr-ogawa_imgwrap {
  gap: 1px;
 }
 
 .mr-ogawa .photo__cap {
  font-size: 11px;
  letter-spacing: 0.01em;
  left: 0;
  right: auto;
 }
 
 .mr-ogawa_img {
  margin-top: 0;
  width: 58%;
 }

 .speech_box {
  width: 38%;
 }

 .speech {
  padding: 14px 0 14px clamp(0.375rem, -0.376rem + 3.535vw, 1.25rem);
 }
 
 .icon_speech {
  position: absolute;
  width: 30px;
  bottom: 50%;
  transform: translateY(-50%);
  left: auto;
  right: -30px;
  transform: none;
 }
 
 .speech p {
  font-size: clamp(0.625rem, 0.235rem + 1.662vw, 1rem);
  line-height: calc(30/16);
 }
}


/* ======================================
feature
=========================================*/
@media only screen and (max-width:736px) {

 .feature .contents_box_img {
  margin-top: 8px;
 }

 .feature .contents_box_item:last-child {
  margin-top: 30px;
 }

 .feature .contents_box_text {
  font-size: clamp(0.813rem, 0.553rem + 1.108vw, 1.063rem);
 }
}

/* ======================================
professional
=========================================*/
.professional {
  margin-top: 100px;
}
.contents_flex_pcimg {
  margin-top: 50px;
}
@media only screen and (max-width:736px) {
  .professional {
    margin-top: 60px;
  }

 .contents_flex_spimg {
  margin-top: 30px;
 }

 .contents_flex_pcimg {
  margin-top: 0;
 }

}

/* ======================================
town
=========================================*/
.town {
  margin-top: 160px;
}

.town .contents_flex_img.mr_0 {
  margin-right: 0;
}

.town .contents_flex.mt {
  margin-top: 120px;
}
@media only screen and (max-width:736px) {
  .town {
    margin-top: 50px;
  }

  .town .contents_flex.mt {
    margin-top: 50px;
  }
}


/* ======================================
bg_area
=========================================*/
.bg_area {
 background-color: #f8f7f2;
 margin-top: 80px;
 padding-top: 60px;
 padding-bottom: 60px;
 text-align: center;
 margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
}

.bg_area .contSection__headline {
  line-height: 1.8;
}

.bg_area .text {
 text-align: center;
}

@media only screen and (max-width:736px) {
 .bg_area {
  margin-top: 60px;
  padding: 40px 20px;
 }

 .bg_area .contSection__headline {
  line-height: 1.8;
  /* font-size: clamp(1.25rem, 0.99rem + 1.108vw, 1.5rem); */
 }

 .bg_area .text {
  text-align: left;
 }

 .bg_area .contents {
  margin-top: 0;
 }
}

/* ======================================
banner
=========================================*/
.banner {
 position: relative;
 text-align: center;
}

.banner_text {
 position: absolute;
 color: #fff;
 font-size: 21px;
 letter-spacing: 0.2em;
 top: 50%;
 left: 50%;
 transform: translate(-50%,-50%);
 text-shadow:0px 0px 1px #000, 
 0 0 5px #000,
 0 0 6px #000,
 0 0 7px #000,
 0 0 8px #000,
 0 0 9px #000,
 0 0 10px #000;
}

.banner:hover {
 transition: .4s;
 opacity: .8;
}

.banner_area .cap {
 margin-top: 60px;
 font-size: 12px;
 letter-spacing: 0.1em;
}

@media only screen and (max-width:736px) {
 .banner_text {
  width: 80%;
  font-size: clamp(1rem, 0.675rem + 1.385vw, 1.313rem);
  letter-spacing: 0.2em;
 }

.banner_area .cap {
  margin-top: 16px;
  font-size: clamp(0.625rem, 0.495rem + 0.554vw, 0.75rem);
  letter-spacing: 0.04em;
 }
}


/* ======================================
footer
=========================================*/
.footerContact__schedule {
  font-size: 11px;
}