@charset "UTF-8";

table {
width: 100%;
max-width: 960px;
margin: 0 auto;
border-collapse: separate;
}
th {
border-bottom: 2px solid #3C64A5;
text-align: center;
}
td ul {
list-style-type: square;
padding-left: 20px;
}
td ul li:last-child {
padding-bottom: 0;
}

#header {
background: #fff;
}
.hero h1 {
color: #fff;
font-family: "Gabarito", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
font-weight: 900;
top: 30%;
transform: translateY(-50%);
text-shadow: 0px 0px 10px rgba(0, 97, 182, 0.9);
}
.breadcrumb__list {
width: 90%;
max-width: 1280px;
margin: 0 auto;
display: flex;
}
.breadcrumb__list li {
position: relative;
line-height: 100%;
}
.breadcrumb__list li:after {
position: absolute;
top: 50%;
right: 0;
content: '\f054';
font-family: 'Font Awesome 5 Pro';
font-size: 0.8em;
}
.breadcrumb__list li:last-child {
padding-right: 0;
margin-right: 0;
}
.breadcrumb__list li:last-child:after {
content: none;
}
.breadcrumb__list a {
text-decoration: underline;
}

.page-top:after {
display: block;
content: "";
background: #EAF6FB;
z-index: -2;
position: absolute;
top: 0;
left: 0;
height: 100%;
}
.page-top h2, .head-en-r h2, .news h2 {
right: 0;
}
.head-en-r {
background: #ECF6FA;
}
.head-en-r h2 {
z-index: 0;
}

#greeting h4, #recruit h4 {
font-family: "Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
font-weight: 900;
text-align: center;
}
#greeting div.box div img {
box-shadow: 10px 10px 0px 0px #232323;
}
.name {
display: table;
margin-left: auto;
}
#company .box h4 {
text-align: center;
}
#history img {
display: block;
max-width: 640px;
margin: 0 auto;
}

#workslist ul li a {
display: block;
}
#workslist ul li a, #workslist ul li a img {
position: relative;
}
#workslist ul li a h4 {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 97, 182, 0.7);
color: #fff;
display: grid;
place-items: center;
box-sizing: border-box;
}
#workslist ul li a h4 span {
display: block;
font-size: 0.8em;
}

#recruit p {
font-family: "Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
#how {
max-width: 480px;
margin: 0 auto;
border-radius: 8px;
background: #3C64A5;
color: #fff;
box-sizing: border-box;
text-align: center;
}
#how h4 {
font-weight: 900;
}
#how a {
color: #fff;
margin: 0 auto;
display: table;
}
#how p span {
display: block;
}
#how p a {
font-weight: 900;
}
#how > a {
background: #fff;
color: #3C64A5;
border-radius: 8px;
}

.voice .box div h4 {
color: #fff;
background: #17469E;
display: grid;
place-items: center;
}
.voice .box dl dt span {
display: inline-block;
font-weight: 900;
color: #17469E;
}
.voice .box dl dd:last-child {
padding-bottom: 0;
}

#newslist ul li time {
display: block;
font-size: 0.8em;
}
#newsdetail {
max-width: 800px;
margin: 0 auto;
}
#newsdetail time {
display: table;
margin-left: auto;
}
#newsdetail div p:last-child {
padding-bottom: 0;
}

#form > div {
width: 90%;
max-width: 800px;
margin: 0 auto;
}
.soy_inquiry_message {
text-align: center;
border-bottom: 1px solid #3a3a3a;
}
.soy_iqnuiry_responsive dl dt span {
font-size: 0.8em;
padding-left: 10px;
}
.soy_iqnuiry_responsive dl dd input[type="text"], .soy_iqnuiry_responsive dl dd input[type="email"], .soy_iqnuiry_responsive dl dd textarea {
width: 100%;
border-radius: 3px;
box-sizing: border-box;
}
.soy_iqnuiry_responsive dl dd input, .soy_iqnuiry_responsive dl dd textarea {
border: 1px solid #ddd;
}
input[name="confirm"], input[type="submit"] {
width:180px;
box-sizing: border-box;
display: block;
height: auto;
padding:15px;
color: #fff;
background: #17469E;
border: 1px solid #17469E;
border-radius:3px;
outline: none;
transition: all 0.3s;
margin:0 auto 10px;
box-shadow: 0px 1px 4px rgba(0,0,0, 0.10);
}
input[name="confirm"]:hover, input[type="submit"]:hover {
background:#fff;
color: #17469E;
}
input[name="confirm"]:active, input[type="submit"]:active {
opacity: 0.9;
}

@media (max-width: 560px){
table {
border-spacing: 0 40px;
}
th, td {
display: block;
width: 100%;
}
th {
font-size: 4vw;
padding-bottom: 8px;
margin-bottom: 10px;
}
td {
display: grid;
place-items: center;
}

#header {
padding: 24px 0;
}

.hero {
margin-bottom: 10px;
}
.breadcrumb__list {
padding-bottom: 80px;
flex-wrap: wrap;
}
.breadcrumb__list li {
padding-right: 16px;
margin-right: 10px;
}
.breadcrumb__list li:after {
transform: translateY(-35%);
}
.breadcrumb__list li:nth-child(3) {
width: 100%;
padding-top: 10px;
}

.page-top, .head-en-r {
padding: 50px 0;
margin-bottom: 60px;
}
.page-top h2, .news h2 {
transform: translateY(-40%);
}

#greeting h4, #recruit h4 {
font-size: 4.8vw;
padding-bottom: 30px;
}
#greeting div.box div p {
line-height: 180%;
}
#greeting div.box div {
padding-top: 20px;
}
#greeting div.box div img{
padding-top: 10px;
}
#greeting div.box div:last-child img{
display: none;
}
.name {
padding-top: 10px;
}
#company .box table {
margin-bottom: 50px;
}
#company .box h4 {
font-size: 5vw;
}

#workslist ul li, #worksdetail ul li, #gallery ul li, #newslist ul li {
padding-bottom: 30px;
}
#workslist ul li:last-child, #worksdetail ul li:last-child, #gallery ul li:last-child, #newslist ul li:last-child {
padding-bottom: 0;
}
#workslist ul li a h4 {
padding: 0 10px;
font-size: 5vw;
}
#worksdetail h3 span {
display: block;
font-size: 1.4rem;
padding-top: 10px;
}

#recruit p {
line-height: 180%;
}
#job, #main section.voice:nth-child(n+2), .news {
padding-bottom: 60px;
}
#how {
padding: 10px;
}
#how h4 {
font-size: 6vw;
padding-bottom: 20px;
}
#how p {
font-size: 1.4rem;
padding-bottom: 10px;
}
#how p a {
font-size: 7vw;
}
#how > a {
font-size: 5vw;
padding: 6px 20px;
}

.voice .box div {
margin-bottom: 30px;
}
.voice .box div h4 {
position: relative;
z-index: 1;
width: 90%;
margin: -20px auto 0;
font-size: 6vw;
padding: 10px 0;
}
.voice .box dl dt {
font-size: 5vw;
padding-bottom: 10px;
}
.voice .box dl dt span {
font-size: 7vw;
padding-right: 6px;
}
.voice .box dl dd {
line-height: 180%;
padding-bottom: 50px;
}

#newslist ul li img {
padding-bottom: 4px;
}
#newsdetail > img {
padding-bottom: 10px;
}
#newsdetail time {
padding-bottom: 30px;
}
#newsdetail div p {
padding-bottom: 10px;
line-height: 180%;
}

#form > div {
padding-bottom: 40px;
}
.soy_inquiry_message {
font-size: 4vw;
padding-bottom: 10px;
margin-bottom: 20px;
}
.soy_iqnuiry_responsive dl {
font-size: 1.6rem;
}
.soy_iqnuiry_responsive dl dt {
padding-bottom: 10px;
}
.soy_iqnuiry_responsive dl dd {
padding-bottom: 40px;
}
.soy_iqnuiry_responsive dl dd input, .soy_iqnuiry_responsive dl dd textarea {
padding: 4px;
font-size: 16px;
}
.soy_iqnuiry_responsive dl dd textarea {
height: 40vh;
}
}

@media (min-width: 561px){
td {
border-bottom: 2px solid #B7B7B7;
}
td ul li {
padding-bottom: 10px;
}
.nobr {
display: none;
}

.hero {
margin-bottom: 20px;
}
.breadcrumb__list {
padding-bottom: 120px;
}
.breadcrumb__list li {
padding-right: 24px;
margin-right: 14px;
}
.breadcrumb__list li:after {
transform: translateY(-40%);
}

.page-top, .head-en-r {
padding: 80px 0;
margin-bottom: 100px;
}

#greeting h4, #recruit h4 {
padding-bottom: 60px;
}
#greeting div.box div {
display: flex;
justify-content: space-between;
}
#greeting div.box div:last-child {
flex-direction: row-reverse;
padding-top: 50px;
}
#greeting div.box div p {
width: 64%;
}
#greeting div.box div img {
width: 32%;
height: 100%;
}
#greeting div.box div:last-child img{
box-shadow: -10px 10px 0px 0px #232323;
}
.name {
padding-top: 20px;
}
#company .box table {
margin-bottom: 100px;
}
#company .box h4 {
font-size: 4rem;
}

#worksdetail h3 span {
font-size: 1.6rem;
padding-left: 10px;
}
#workslist ul, #worksdetail ul, #gallery ul, #newslist ul {
display: flex;
flex-wrap: wrap;
}
#workslist ul li a h4 {
padding: 0 16px;
}

#job, #main section.voice:nth-child(n+2), .news {
padding-bottom: 100px;
}
#how {
padding: 16px;
}
#how h4 {
font-size: 3rem;
padding-bottom: 30px;
}
#how p {
font-size: 1.6rem;
padding-bottom: 20px;
}
#how p a {
font-size: 4.6rem;
margin-bottom: 10px;
}
#how > a {
font-size: 2rem;
padding: 8px 30px;
}

.voice .box div {
margin-bottom: 50px;
}
.voice .box div, .voice .box div img {
position: relative;
}
.voice .box div img {
z-index: 0;
width: 70%;
}
.voice .box div h4 {
position: absolute;
width: 40%;
right: 0;
top: 50%;
transform: translateY(-50%);
z-index: 1;
font-size: 3rem;
padding: 30px 0;
}
.voice .box dl dt {
font-size: 2.5rem;
padding-bottom: 20px;
}
.voice .box dl dt span {
font-size: 3rem;
padding-right: 10px;
}
.voice .box dl dd {
font-size: 1.8rem;
line-height: 200%;
padding-bottom: 80px;
}

#newslist ul li img {
padding-bottom: 8px;
}
#newslist ul li time {
padding-bottom: 4px;
}
#newslist ul li a {
font-size: 1.8rem;
}
#newsdetail > img {
padding-bottom: 20px;
}
#newsdetail time {
padding-bottom: 50px;
}
#newsdetail div p {
padding-bottom: 30px;
line-height: 200%;
}

#form > div {
padding-bottom: 80px;
}
.soy_inquiry_message {
font-size: 1.8rem;
padding-bottom: 20px;
margin-bottom: 40px;
}
.soy_iqnuiry_responsive dl {
display: flex;
flex-wrap: wrap;
font-size: 1.6rem;
}
.soy_iqnuiry_responsive dl dt {
width: 240px;
padding-bottom: 50px;
}
.soy_iqnuiry_responsive dl dd {
width: calc(100% - 240px);
padding-bottom: 50px;
}
.soy_iqnuiry_responsive dl dd input, .soy_iqnuiry_responsive dl dd textarea {
padding: 10px;
font-size: 1.8rem;
}
.soy_iqnuiry_responsive dl dd textarea {
height: 400px;
}
}

@media (min-width:561px) and ( max-width:960px) {
table {
border-spacing: 10px 30px;
}
th {
width: 180px;
padding-bottom: 6px;
font-size: 1.8rem;
}
td {
padding: 0 10px 6px;
}

.page-top h2, .news h2 {
transform: translateY(-60%);
}

#greeting h4, #recruit h4 {
font-size: 5vw;
}
#greeting div.box div p {
font-size: 1.8rem;
line-height: 200%;
}

#workslist ul li, #worksdetail ul li {
width: 32%;
padding: 0 2% 40px 0;
}
#workslist ul li:nth-child(3n), #worksdetail ul li:nth-child(3n) {
padding-right: 0;
}
#workslist ul li:nth-last-child(-n+3), #worksdetail ul li:nth-last-child(-n+3) {
padding-bottom: 0;
}

#recruit p {
font-size: 1.8rem;
line-height: 200%;
}

#gallery ul li, #newslist ul li {
width: 48%;
padding: 0 4% 40px 0;
}
#gallery ul li:nth-child(2n), #newslist ul li:nth-child(2n) {
padding-right: 0;
}
#gallery ul li:nth-last-child(-n+2), #newslist ul li:nth-last-child(-n+2) {
padding-bottom: 0;
}
}

@media (max-width: 960px){
.hero h1 {
font-size: 10vw;
}
.page-top:after {
width: 100%;
}

}

@media (min-width: 961px){
table {
border-spacing: 10px 40px;
}
th {
width: 200px;
padding-bottom: 8px;
vertical-align: middle;
font-size: 2rem;
}
td {
padding: 0 20px 8px;
font-size: 1.9rem;
}

#header {
position: sticky;
}
.drawer__nav__menu li:last-child a {
color: #fff;
}

.page-top:after {
width: 60%;
}
.page-top h2, .news h2 {
transform: translateY(-50%);
}

#greeting h4, #recruit h4 {
font-size: 5rem;
}

#workslist ul li, #worksdetail ul li, #gallery ul li {
width: 24%;
padding: 0 1.33333% 40px 0;
}
#workslist ul li:nth-child(4n), #worksdetail ul li:nth-child(4n), #gallery ul li:nth-child(4n) {
padding-right: 0;
}
#workslist ul li:nth-last-child(-n+4), #worksdetail ul li:nth-last-child(-n+4), #gallery ul li:nth-last-child(-n+4) {
padding-bottom: 0;
}

#recruit p {
text-align: center;
font-size: 2rem;
line-height: 220%;
}

#newslist ul li {
width: 32%;
padding: 0 2% 40px 0;
}
#newslist ul li:nth-child(3n) {
padding-right: 0;
}
#newslist ul li:nth-last-child(-n+3) {
padding-bottom: 0;
}
}

@media (min-width:961px) and ( max-width:1280px) {
.hero h1 {
font-size: 10rem;
}

#greeting div.box div p {
font-size: 2rem;
line-height: 220%;
}
}

@media (min-width: 1281px){
.hero h1 {
font-size: 15rem;
}

#greeting div.box div p {
font-size: 2.2rem;
line-height: 250%;
}
}