:root{
  --bg:#ffffff; --card:#ffffff; --muted:#f3f4f6; --text:#111827; --sub:#6b7280; --accent:#2563eb; --line:#e5e7eb; --danger:#ef4444; --ok:#059669;
  --row-h:64px; --header-h:48px; --staff-w:220px; --radius:12px; --shadow:0 6px 20px rgba(0,0,0,.07);
}

html,body{
  background:var(--bg);
  color:var(--text);
  font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo;
  overflow-x: hidden;
}

*{ box-sizing:border-box; margin: 0; padding: 0; list-style: none;}

.inner{
width:1000px;
margin:  0 auto;
}

img{
width:100%;
}

.sp{
display: none;
}

section{
margin: 100px 0;
}


@media only screen and (max-width: 699px) {
  .sp{
    display: block;
  }
  
  .inner{
    width: 100%;
    padding: 0 20px;
  }
}

/*
+++++++++++++++++++++++++++++++

H E A D E R

+++++++++++++++++++++++++++++++
*/

#h{
position: fixed;
width: 100%;
z-index: 9999;
border-bottom: solid 1px #eee;
background-color: rgba(255,255,255,.9);
}

#h .inner{
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px 0;
}

#h h1{
width: 150px;
}

#h ul{
display: table;
}

#h li{
display: table-cell;
vertical-align: middle;
text-align: right;
padding: 20px;
font-size: 120%;
text-transform: uppercase;
}

#h li a{
color: #000;
text-decoration: none;
}

#h li span{
display: block;
font-size: 90%;
}

@media only screen and (max-width: 699px) {
  #h h1{
    width: 80px;
  }
  #h  ul{
    display: none;
  }
  #h .inner{
    padding: 10px 20px;
  }
}


/*
+++++++++++++++++++++++++++++++

B O D Y

+++++++++++++++++++++++++++++++
*/
#body{
padding-top: 150px;
}

.body{
position: relative;
}

@media only screen and (max-width: 699px) {
  #body{
    padding-top: 80px;
  }

}  

/*
+++++++++++++++++++++++++++++++

I N T R O

+++++++++++++++++++++++++++++++
*/
#intro{
height: 1200px;
background-image: url(../images/bg_logo.png);
background-repeat: no-repeat;
background-position: left top;
background-size: 50%;
padding-top: 40px;
}

#intro header{
padding: 40px;
}

#intro h1{
white-space: nowrap;
line-height: 1.7;
text-align: left;
font-family: Arial;
font-style: normal;
font-weight: bold;
font-size: 5rem;
margin-left: 150px;
position: relative;
width: 100%;
}

#intro h1 span{
display: block;
font-size: 1.5rem;
position: absolute;
top:30px;
right: 0;
}

#intro .body{
display: flex;
}

#aez{
width: 23px;
}

#afa{
border: 0;
transform: translate(-1738px, -449px) matrix(1, 0, 0, 1, 1676.5, 510.5) rotate(90deg);
transform-origin: center;
left: 0px;
top: 0px;
position: absolute;
overflow: visible;
width: 147px;
white-space: nowrap;
line-height: 63px;
margin-top: -21.5px;
text-align: left;
font-family: Helvetica Neue;
font-style: normal;
font-weight: normal;
font-size: 20px;
color: rgba(0, 0, 0, 1);
}

#afb {
fill: transparent;
stroke: rgba(112, 112, 112, 1);
stroke-width: 1px;
stroke-linejoin: miter;
stroke-linecap: butt;
stroke-miterlimit: 4;
shape-rendering: auto;
}


.afb {
overflow: visible;
position: absolute;
width: 1px;
height: 241px;
left: 11.5px;
top: 160.5px;
transform: matrix(1, 0, 0, 1, 0, 0);
}

#main-img{
width: 1600px;
position: absolute;
top:0;
left: 100px;
height: 700px;
}

@media only screen and (max-width: 699px) {
  #intro{
    height: auto;
    padding: 0;
  }
  #intro .body{
    display: block;
  }
  #intro .body:after{
    content: "";
    display: block;
    padding-top: 70%; /* 1:1 */
  }
  #aez{
    display: none;
  }
  
  #main-img{
    width: 130vw;
    left: 0px;
    height: auto;
  }
  
  #intro h1{
    margin: 0;
    font-size: 3rem;
    margin-bottom: 30px;
  }
  
  #intro header{
    padding: 0;
  }
  
  #intro h1 span{
    position: static;
    text-align: right;
  }
}

/*
+++++++++++++++++++++++++++++++

C O N T E N T S

+++++++++++++++++++++++++++++++
*/
.contents{
}

.contents article{
position: relative;
}

.contents article h1{
text-transform: uppercase;
font-size: 3.5rem;
font-weight: normal;
}

.contents article h1 strong{
display: inline-block;
padding-bottom: 10px;
line-height: 1.2;
}

.contents article h1 strong:after{
content: "";
display: block;
height: 3px;
background-image: url(../images/bar.png);
background-size: cover;
}

.contents article h1 span{
display: block;
font-size: 1rem;
}





/*
+++++++++++++++++++++++++++++++

T A B L E

+++++++++++++++++++++++++++++++
*/
.table{
width: 70%;
margin:0 auto;
}

.table dl{
display: flex;
font-size: 110%;
}

.table dt,
.table dd{
padding: 15px;
}
.table dt{
width: 200px;
font-weight: bold;
}

.table dd{
width: calc(100% - 200px);
}

.table .need{
color: #c00;
font-weight: bold;
display: inline-block;
padding-left: 10px;
}

.table input[type=text],
.table input[type=email]{
font-size: 1.2rem;
padding: 5px;
border: 0;
border-bottom: solid 1px #ddd;
}

.table input[type=text]:nth-of-type(1){
margin-right: 20px;
}

.table input[type=email]{
width: 100%;
}

.table textarea{
width: 100%;
height: 100px;
border: 0;
border-bottom: solid 1px #ddd;
}


@media only screen and (max-width: 699px) {
  .table{
    width: 100%;
  }
  
  .table dt{
    width: 150px;
  }
  .table dd{
    width: calc(100% - 150px);
  }

}


input[type=submit]{
width: 400px;
background: #000;
color: #fff;
border-radius: 100px;
font-size: 1.5rem;
padding: 10px 0;
}

@media only screen and (max-width: 699px) {
  input[type=submit]{
    width: 60%;
  }
}

#service{
}

#service ul{
width: 80%;
margin: 0 auto;
margin-top: -100px;
display: flex;
flex-flow:row wrap-reverse; /* 子要素をrow方向に並べ、逆に折返す*/
justify-content:space-around; /* 並べ方向に均等な空白 */
}

#service li{
width: 40%;
}

#service .cont{
position: relative;
}

#service .cont p{
width: 300px;
font-size: 120%;
font-weight: bold;
position: absolute;
top:10%;
left: 70%;
}

@media only screen and (max-width: 699px) {
  #service ul{
    margin-top: 30px;
  }
  #service .cont p{
    position: static;
  }
}


#contact .lead{
width: 70%;
margin:40px auto;
}

#contact .submit{
text-align: center;
margin: 30px 0;
}


/*
+++++++++++++++++++++++++++++++

F O O T E R

+++++++++++++++++++++++++++++++
*/
footer{
background: #000;
color: #fff;
text-align: center;
padding: 30px 0;
}

footer h1{
width: 400px;
margin: 0 auto;
}

@media only screen and (max-width: 699px) {
  footer h1{
    width: 60%;
  }
}