
:root {
 --yellow:#e6b238; /* キーカラー */
 --blue:#244a8e; /* テキスト青 */
  --baseBk:#1e1e1e; /* テキスト黒  */
}
html{
font-size: 100%;
line-height: 1.5em;
}
body {
font-family: YakuHanJP, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, メイリオ, 'MS PGothic', 'ＭＳ Ｐゴシック', Helvetica, Arial, sans-serif;
font-size: 100%;
line-height: 1.5em;
position: relative;
background: #fff;
 color: var(--baseBk);
}
p,div,ul,li,input{
margin: 0;
padding: 0;
}
li{
list-style-type: none;
}
img{
width: 100%;
height: auto;
vertical-align: top;
}
a{
transition: 0.3s;
color:#231815;
}
a:hover{
opacity: 0.8;
color:#71C7DC;
}
h1,h2,h3,h4,h5,h6{
font-feature-settings: "palt";
font-weight: normal;
line-height:  1.3em;
}
br.sponly{display: none;}
.clear{clear: both;}


div, p, span, input, textarea,header,footer,td,th {
box-sizing: border-box;
}


/*/////////HEADER///////////*/

#page_header{
width: 100%;
display: grid;
grid-template-columns: 260px 1fr;
align-items: center;
position: relative;
height: 80px;
box-sizing: content-box;
border-top: solid 5px var(--yellow);
border-bottom: solid 1px #eee;
}
.header_logo{
padding-left: 20px;
}
.header_logo img{
width: 100%;
}
.header_menu{
display: flex;
margin: auto;
}
/*
.header_menu ul{
display: flex;
justify-content: center;
}
.header_menu li{
margin: 0 2.5em;
line-height: 80px;
font-weight: bold;
color: var(--blue);
}
.header_menu li a{
display: block;
text-decoration: none;
color: var(--blue);
}

*/
.header_menu ul{
text-align: center;
display: flex;
justify-content: center;
align-items: center;
padding: 30px 0;
}
.header_menu li{
color: var(--blue);
margin: 0 1.5em 0 0;
padding-left: 1.5em;
font-weight: bold;
border-left: solid 1px var(--blue);
}
.header_menu li.children{
padding-left: 0;
padding: 0 1em;
background: #EBF3F7;
border-left: none;
font-size: 95%;
}
.header_menu li a{
color: var(--blue);
text-decoration: none;
}
.header_menu li:first-child{
border-left: none;
padding-left: 0;
}
/*
.service_list{
display: none;
}
li.menu_parent {
position: relative;
}
.header_menu ul.menu_children {
display: none;
padding: 0;
margin: 0;
text-align: center;
position: absolute;
min-width:9em;
top: 80px;
left: 50%;
transform: translateX(-50%);
background: #EBF3F7;
border-left: solid 1px rgba(0,0,0,0.1);
border-right: solid 1px rgba(0,0,0,0.1);
border-bottom: solid 1px rgba(0,0,0,0.1);
z-index: 5;
}
.header_menu ul.menu_children li{
margin: 0;
line-height: 3;
width:12em;
border-top: solid 1px rgba(0,0,0,0.1);
font-size: 90%;
}
ul.menu_children li a{
display: block;
}
*/




/*/////////HAMBURGER///////////*/

#hamburger {
display: none;
position: absolute;
    width: 38px;
    height: 19px;
    border: none;
    right: 20px;
    top: 30px;
    cursor: pointer;
    z-index: 200;
}
.burger-btn{
display: block;
height:19px;
position: absolute;
border: none;
cursor: pointer;
}
.burger-btn .bar{
width: 38px;
height: 1px;
display: block;
position: absolute;
left: 0;
background-color: #6e6e6e;
}
.burger-btn .bar_top{
top:0;
transition: 0.3s;
}
.burger-btn .bar_mid{
display: block;
top: 46%;
transition: 0.2s;
}
.burger-btn .bar_bottom{
bottom: 0;
transition: 0.3s;
}

/* MODAL open時 */
#hamburger.menuopen{
width: 38px;
height: 38px;
position: absolute;
right: 0;
}
#hamburger.menuopen .bar{
width: 38px;
height: 1px;  
display: block;
position: absolute;
}    
#hamburger.menuopen .bar_top{
top: 0;
transform: translate(-40%,10px) rotate(45deg)
}
#hamburger.menuopen .bar_mid{
opacity: 0;
left: -40px;
}
#hamburger.menuopen .bar_bottom{
bottom: 0;
transform: translate(-40%,-9px) rotate(-45deg);
}


/*/////////DRAWERMENU///////////*/

#drawermenu{
display: none;
z-index: 400;
width: 100%;
min-height: 100vh;
background: #fff;
position: absolute;
top: 0;
padding:0 0 0 0;
border-top: solid 5px var(--yellow);
}

.drawermenu_top{
position: relative;
height: 80px;
display: grid;
align-items: center;
grid-template-columns: 200px 1fr;
}

#hamburger_cl{
position: absolute;
width: 38px;
height: 19px;
border: none;
right: 2px;
top: 32px;
cursor: pointer;
z-index: 50;
}

#hamburger_cl .bar{
width: 38px;
height: 1px;
display: block;
position: absolute;
}    
#hamburger_cl .bar_top{
top: 0;
transform: translate(-40%,10px) rotate(45deg)
}
#hamburger_cl .bar_bottom{
bottom: 0;
transform: translate(-40%,-9px) rotate(-45deg);
}

.drawer_contents{
padding: 30px 0;
text-align: center;
margin: auto;
}
.drawer_contents a{
text-decoration: none;
}
.drawer_contents a:hover{
text-decoration: none;
opacity: 0.7;
}
.drawer_menu{
width: 12em;
margin: auto;
margin-bottom: 40px;
border-bottom: solid 1px var(--yellow);
}
.drawer_contents li {
font-size: 110%;
line-height: 3;
border-top: solid 1px var(--yellow);
}
.drawer_contents li.drawer_parent {
border-bottom: none;
}
.drawer_contents li.children{
border-top: none;
background: #EBF3F7;
border-left: none;
font-size: 100%;
margin-bottom: 0.5em;
}




/*/////////FOOTER///////////*/


footer{
width: 100%;
position: relative;
}
footer h3{
color: var(--blue);
text-align: center;
font-size: 26px;
padding-bottom: 1.5em;
}
footer h4{
color: var(--blue);
text-align: center;
font-size:20px;
padding-bottom: 1.0em;
}
.footer_menu{
width: 95%;
margin: 60px auto 0;
position: relative;
text-align: center;
}
.footer_menu ul{
text-align: center;
display: flex;
justify-content: center;
align-items: center;
padding: 30px 0;
}
.footer_menu li{
color: var(--blue);
margin: 0 1.5em 0 0;
padding-left: 1.5em;
font-weight: bold;
border-left: solid 1px var(--blue);
}
.footer_menu li.children{
padding-left: 0;
padding: 0 1em;
background: #EBF3F7;
border-left: none;
font-size: 95%;
}
.footer_menu li a{
color: var(--blue);
text-decoration: none;
}
.footer_menu li:first-child{
border-left: none;
padding-left: 0;
}
.footer_logo{
width: 260px;
margin:  20px  auto 0;
}
.footer_logo img{/*
filter: drop-shadow(0px 0px 3px #fff);*/
}
.copyright{
width: 100%;
text-align: center;
background: var(--yellow);
color: #fff;
padding: 20px 0;
}
footer .address br{
display: none;
}


@media screen and (max-width:1110px){
#page_header{
grid-template-columns: 220px 1fr;
}
.footer_logo{
width: 220px;
}
.header_menu li {
margin: 0 1.0em 0 0;
padding-left: 1.0em;
}
.footer_menu li {
margin: 0 1.0em 0 0;
padding-left: 1.0em;
}
}
@media screen and (max-width:970px){
.header_menu{
display: none;
}
#hamburger {
display: block;
}
}
@media screen and (max-width:860px){
.footer_menu ul{
display: block;
}
.footer_menu li{
padding-left: 0;
border-left: none;
display: block;
margin-right: 0;
margin: 0 auto;
line-height: 2.5;
width: 15em;
border-top: solid 1px #ddd;
}
footer li.children{
display: block;
border-top: none;
margin-bottom: 5px;
border-top: none;
}
}
@media screen and (max-width:675px){
#page_header{
grid-template-columns: 200px 1fr;
}
}
@media screen and (max-width:500px){
footer .address br{
display: block;
}
}



/*///////// CONTENTS///////////*/

section{
width: 100%;
margin: 0;
padding: 0;
}
.inner{
padding: 70px 0 70px;
width: 90%;
max-width: 1200px;
margin: auto;
border-bottom: solid 1px #eee;
}
h1{
text-align: center;
font-size: 42px;
}
h2.section-title{
text-align: center;
font-weight: bold;
color: var(--blue);
font-size: 34px;
padding: 0 0 0.15em;
}
h3.section-title-e{
text-align: center;
color: var(--yellow);
font-size: 13px;
padding: 0 0 60px;
letter-spacing: 0.2em;
font-weight: bold;
}


.mission_wrap{
width: 100%;
margin: auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.mission_pic{
width: 40%;
aspect-ratio: 4 / 3;
overflow: hidden;
place-items: center;
place-content:center;
}
.mission_pic img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mission_txt{
width: 55%;
}
.mission_txt h4{
color: var(--blue);
font-size: 32px;
padding-bottom: 1.0em;
}
.mission_txt p{
line-height: 1.8;
}


.message_wrap{
width: 100%;
margin: auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.message_txt{
width: fit-content;
margin: auto;
}
.message_txt h4{
color: var(--blue);
font-size: 32px;
padding-bottom: 1.0em;
}
.message_txt p{
line-height: 1.8;
}
.message_icons{
display: flex;
justify-content: space-between;
width: 90%;
max-width: 1200px;
margin: 30px auto;
}
.message_icon{
width: 30%;
display: grid;
align-content: center;
background: #fff;
border-radius: 5px;
text-align: center;
padding: 20px 0;
grid-template-rows: 120px 1fr;
border: solid 1px var(--yellow);
}
.icon_head{
height: 120px;
text-align: center;
}
.icon_head .icon_img{
width: 50px;
height: 50px;
margin: auto;
}
.icon_head .icon_img img{
width: 100%;
height: 100%;
object-fit: contain;
}
.icon_head h5{
color: var(--blue);
font-size: 34px;
font-weight: bold;
letter-spacing: 0.15em;
display: inline-flex;
align-items: center;
align-content: center;
}
.icon_head h5 span{
color: var(--yellow);
font-size: 20px;
padding-right: 0.4em;
}
.icon_body{
font-size: 95%;
align-items: center;
align-content: center;
}

section.section-cv{
background: url("../img/section_bg.jpg");
background-repeat: no-repeat;
background-size: cover;
background-position-y : center;
}

.contact_banner{
text-align: center;
width: 90%;
max-width: 600px;
padding: 30px 0;
margin: auto;
border: solid 2px var(--yellow);
color: var(--blue);
font-weight: bold;
background: rgba(255,255,255,0.8);
}
.contact_btn{
width: 60%;
margin: 15px auto 0;
}
.contact_btn a{
display: block;
text-decoration: none;
background: var(--yellow);
color: #fff;
height: 2.6em;
line-height: 2.6em;
border-radius: 60px;
}




@media screen and (max-width:1500px){

h2 {
padding: 0 0 4vw;
}
}
@media screen and (max-width:1200px){
.mission_txt h4 {
    font-size: 28px;
}
}

@media screen and (max-width:900px){
.mission_txt h4 {
    font-size: 24px;
}
}
@media screen and (max-width:860px){
h2 {
font-size: 24px;
padding: 0 0 7vw;
}
}


@media screen and (max-width:840px){
.mission_wrap {
display: block;
}
h3.section-title-e {
text-align: center;
padding: 0 0 40px;
}
.mission_pic{
width: 100%;
max-width: 440px;
margin: 0 auto 40px;
}
.mission_txt{
width: 100%;
}

.message_wrap{
display: block;
}
.message_pic{
width: 100%;
max-width: 440px;
margin: 0 auto 40px;
}
.message_txt{
width: 100%;
}
.icon_body {
font-size: 95%;
align-items: center;
align-content: center;
padding: 0 15px;
text-align: left;
}
.icon_body br{
display: none;
}
}
@media screen and (max-width:675px){
.message_icons {
display: block;
padding: 0;
}
.message_icon {
width: 100%;
margin-bottom: 20px;
grid-template-rows:  1fr;
grid-template-columns: 150px 1fr;
align-items: center;
}
.icon_head {
height: auto;
text-align: center;
align-items: center;
}
.icon_head h5 {
font-size: 32px;
}
.icon_head .icon_img {
display: none;
}
}

/*/////////MAINVISUAL///////////*/

br.hero_catch{
display: none;
}
section.hero{
width: 95%;
max-width: 1500px;
margin: 20px auto 0;
padding: 0  0;
}
#mainvisual{
width: 100%;
position: relative;
aspect-ratio: 16 / 7;
overflow: hidden;
display: grid;
place-items: center;
place-content:center;
}
#mainvisual img.mainvisual{
  grid-area: 1 / 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

#mainvisual h1{
width: 200px;
margin: auto;
text-align: center;
margin-bottom: 15px; 
}


	br.sponly{
	display: none;
	}



@media screen and (max-width:600px){
footer h3{ 
font-size: 5vw;
}
footer h4{ 
font-size: 4vw;
}
}


@media screen and (max-width:500px){
#mainvisual{
aspect-ratio: 12 / 7;
}
br.sponly{
display: block;
}
.contact_banner p{
font-size: 90%;
}
.contact_btn {
    width: 80%;
}
}



/*///////// SERVICE///////////*/

section#service{
padding: 40px 0;
}
.service_wrap{
width: 90%;
max-width: 1200px;
margin: auto;
}
.service_title_sp{
display: none;
}
.service_wrap h3{
font-weight: bold;
text-align: center;
color: var(--blue);
font-size: 24px;
padding-bottom: 0.5em;
}
/*
旧設定
.service_wrap .contens_area{

margin-bottom: 50px;

width: 100%;
margin: auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
margin-bottom: 50px;
padding-bottom: 50px;
    border-bottom: solid 1px #eee;
}
.service_txt{
width: 50%;
}
.service_txt p{
padding-bottom: 1em;
}
.service_pic{
width: 45%;
aspect-ratio: 16 / 9;
overflow: hidden;
place-items: center;
place-content: center;
}
.service_pic img {
width: 100%;
height: 100%;
object-fit: cover;
}
*/

.service_wrap .contens_area{
display: grid;
grid-template-columns: 1fr 1fr;
align-items: stretch;
margin-bottom: 50px;
padding-bottom: 50px;
border-bottom: solid 1px #eee;
width: 100%;
}

.service_txt{
margin-right:20px;
}
.service_txt p{
padding-bottom: 1em;
}
#service2 .service_txt{
margin-right:0;
margin-left:20px;
}

.service_pic{
height: 100%;
text-align: center;
position: relative;
}
.service_pic img {
margin: auto;

  position: absolute;
  inset: 0;
  width: auto;
  height: 100%;
  object-fit: cover;
  display: block;
}
.service_pic img.service_pic_sp{
display: none;
}

.service_wrap .service_txt h3{
font-size: 150%;
text-align: center;
line-height: 1.4;
padding-bottom: 0;
}
.service_txt h3.section-title-e-sml{
text-align: center;
color: var(--yellow);
font-size: 12px;
padding: 0 0 20px;
letter-spacing: 0.05em;
font-weight: bold;
}
#service2 .service_pic{
order: 1;
}
#service2 .service_txt{
order: 2;
}
.service_btn{
display: block;
width: 100%;
max-width: 500px;
margin: 15px auto 0;
text-align: center;
}
.service_btn a{
display: block;
text-decoration: none;
font-size:100%;
text-align: center;
width: 100%;
background: var(--blue);
color: #fff;
padding: 10px 0;
border-radius: 5px;
}

@media screen and (max-width:1280px){
.service_pic{
height: 100%;
}
}
@media screen and (max-width:1200px){

.service_wrap .contens_area{
grid-template-columns: minmax(50vw, 1fr) minmax(300px, 1fr);
}
.service_wrap#service2 .contens_area{
grid-template-columns: minmax(300px, 1fr) minmax(50vw, 1fr) ;
}
.service_pic img.service_pic_pc{
display: none;
}
.service_pic img.service_pic_sp{
display: block;
}
}


@media screen and (max-width:840px){
.service_title_sp{
display: block;
text-align: center;
}
.service_title_sp h3{
font-size: 150%;
text-align: center;
line-height: 1.4;
padding-bottom: 0;
}
.service_title_sp h3.section-title-e-sml{
text-align: center;
color: var(--yellow);
font-size: 12px;
padding: 0 0 20px;
letter-spacing: 0.05em;
font-weight: bold;
}

.service_wrap .contens_area{
grid-template-columns: 1fr ;
}
.service_wrap#service2 .contens_area{
grid-template-columns: 1fr ;
}


.service_txt{
width: 100%;
order: 2;
margin-right: 0;
}
.service_txt h3{
display: none;
}
#service2 .service_txt {
margin-right: 0;
margin-left: 0;
}

.service_pic{
width: 100%;
max-width: 500px;
margin: auto;
aspect-ratio: 16 / 9;
overflow: hidden;
place-items: center;
place-content: center;
order: 1;
margin-bottom: 30px;
}
.service_pic img{
margin: auto;
position: relative;
width: 100%;
height: auto;
}
.service_pic img.service_pic_pc{
display: block;
}
.service_pic img.service_pic_sp{
display: none;
}
}



/*///////// COMPANY///////////*/

section#company{
padding: 40px 0;
}
.company_wrap{
width: 90%;
max-width: 900px;
margin: auto;
margin-bottom: 40px;
}
.company_wrap table{
width: 100%;
max-width: 700px;
border-collapse: collapse;
font-size: 100%;
margin: 0;
padding: 0;
border-collapse: collapse;
margin: auto;
}
.company_wrap table td,
.company_wrap table th{
border: solid 1px #eee;
}
.company_wrap table th{
background: #EBF3F7;
text-align: center;
padding: 1em 1.5em;
font-weight: normal;
border-bottom: solid 1px #fff;
}
.company_wrap table td{
background: var(--light);
padding: 1em  1em 1em 2em;
}
.company_map{
width: 90%;
max-width: 900px;
margin: auto;
}
h3.history{
font-size: 150%;
color: var(--logo3);
padding: 50px 0 0.5em;
}

@media screen and (max-width:500px){
.company_wrap table td,
.company_wrap table th{
display: block;
width: 100%;
border: none;
text-align: left;
padding: 1em  1.5em ;
}
.company_wrap table td{
border-bottom: solid 6px #fff;
}
}




.linkbtn{
text-align: center;
width: 100%;
max-width: 300px;
border-radius: 100px;
margin: 20px auto;
}
.linkbtn a{
display: block;
border-radius: 100px;
background: var(--logo3);
color: #fff;
text-decoration: none;
line-height: 2.4;
}
.linkbtn a:hover{
background: var(--logo1);
opacity: 1;
}

.linkbtn_contact{
text-align: center;
width: 100%;
max-width: 300px;
border-radius: 100px;
margin: 20px auto;
}
.linkbtn_contact a{
display: block;
border-radius: 100px;
background: var(--logo3);
color: #fff;
text-decoration: none;
line-height: 2.4;
}
.linkbtn_contact a:hover{
background: #fff;
color: var(--logo1);
opacity: 1;
}





/*///////// CONTACT///////////*/

section#contact{
padding: 40px 0;
}
.section-contact{
width: 90%;
max-width: 900px;
margin: auto;
}
.contact_area{
width: 100%;
max-width: 600px;
margin: auto;
font-size: 100%;
}
.contact_area p{
padding-bottom: 1em;
}
.contact_area div{
margin-bottom: 20px;
}
.contact_area textarea,
.contact_area input[type="text"],
.contact_area input[type="email"],
.contact_area input[type="tel"]{
width: 100%;
font-size: 100%;
padding: 0.5em;
}
.contact_area select {
font-size: 1em;
width: 100%;
padding: 0.5em;
border: solid 1px #dcd7ca;
}
.required {
font-size:90%;
display: inline-block;
padding: 2px;
color: #fff;
background: #ce2324;
border: 1px solid red;
border-radius: 4px;
line-height: 1;
position: absolute;
right: 1em;
font-weight: normal;
}
.wpcf7-list-item label{
font-size: 95%;
padding-bottom: 1em;
}
/*
.contact_area input[type="checkbox"]{
width: 1.2em;
height: 1.2em;
}*/
p.submitbtn{
display: block;
width: 100%;
max-width: 300px;
margin: 30px auto 0;
}
input[type=submit]{
font-size:100%;
text-align: center;
width: 100%;
border-radius: 100px;
background: var(--blue);
color: #fff;
text-decoration: none;
padding: 10px 0;
cursor: pointer;
border-radius: 5px;
}
input[type=submit]:disabled{
opacity: 0.3;
}
input[type="submit"]:hover {
    text-decoration: none;
	opacity: 0.8;
}
span.form_title{
display: block;
padding-bottom: 0.5em;
}
.typeselect_box{
border: solid 2px #EBF3F7;
padding: 20px 20px 0;
font-size: 110%;
}
.typeselect_box .wpcf7-list-item {
display: block;
}
.typeselect_box .wpcf7-list-item label {
    font-size: 100%;
    padding-bottom: 0;
}
.typeselect_box p span.title{
color: var(--blue);
font-weight: bold;
}

@media screen and (max-width:640px){
.section-contact td{
display: block;
width: 100%;
border-bottom: solid 10px #fff;
padding: 1.5em 1em;
}
.section-contact td.bg{
width: 100%;
border-bottom: none;
padding: 0.5em 1em;
}
}


/*///////// 404///////////*/

h1.error{
padding: 80px 0;
}
p.error{
padding: 0 0 150px 0;
}
