@charset "utf-8";
/*------------------------------------------------------------
    settings
------------------------------------------------------------*/

*, ::before, ::after {
    box-sizing: inherit;
}

::before, ::after {
    text-decoration: inherit;
    vertical-align: inherit;
}

* {
    background-repeat: no-repeat;
    margin: 0px;
    padding: 0px;
}

header, footer, article, section, aside, time ,nav {
    display: block;
}

html, body {
    font-size: 62.5%;
}

html {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
}

body {
    background: #fff;
    color: #202020;
    font-family: 'Noto Sans JP Regular', 'ヒラギノ角ゴ W3', 'ヒラギノ角ゴ Pro W3', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic Pro', 'Hiragino Kaku Gothic ProN', 'メイリオ', sans-serif;
    font-size: 1.4rem;
    letter-spacing: 0.1em;
}

hr {
    overflow: visible;
}

img {
    border-style: none;
}

a:link,
a:visited,
a:active,
a:hover {
    color: #202020;
    text-decoration: none;
}

button, button:hover,
a, a:hover {
    -webkit-transition: 0.4s;
    -moz-transition: 0.4s;
    -o-transition: 0.4s;
    transition: 0.4s;
}

a img.bright-link:hover {
    filter: alpha(opacity=80);
    -moz-opacity:0.8;
    opacity:0.8;
}

.clear {
    clear: both;
}

.clearfix:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}

.clearfix {
    min-height: 1px;
}

* html .clearfix {
    height: 1px;
    /*¥*//*/
    height: auto;
    overflow: hidden;
    /**/
}

.smp-only {
    display: none;
}

.pc-only {
    display: initial;
}

.bold {
    font-weight: bold;
}

.upper {
    text-transform: uppercase;
}

.ls-none {
    letter-spacing: 0;
}

.ls-narrow {
    letter-spacing: 0.05em;
}

.ls-wide {
    letter-spacing: 0.2em;
}

.ls-extra {
    letter-spacing: 0.3em;
}


#container .camera_wrap .camera_pag .camera_pag_ul li {
    background: #999;
    border-radius: 0;
    margin: 12px 0 0 7px;
    width: 5px;
    height: 5px;
}

#container .camera_wrap .camera_pag .camera_pag_ul li > span {
    border-radius: 0;
    top: 0;
    left: 0;
    width: 5px;
    height: 5px;
}

#container .camera_wrap .camera_pag .camera_pag_ul li.cameracurrent > span {
    background: #479c29;
}


#container .slick-dots li {
    position: relative;
    display: inline-block;
    width: 17px;
    height: 17px;
    margin: 0 2px;
    padding: 0;
    cursor: pointer;
}

#container .slick-dots li button {
    font-size: 0;
    line-height: 0;
    display: block;
    width: 17px;
    height: 17px;
    padding: 5px;
    cursor: pointer;
    color: transparent;
    border: 0;
    outline: none;
    background: transparent;
}

#container .slick-dots li button:before {
    background: #999;
    border-radius: 50%;
    content: '';
    display: block;
    line-height: 7px;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 7px;
    height: 7px;
    opacity: 1;
}

#container .slick-dots li.slick-active button:before {
    background: #479C29;
}

#container .slick-prev:before,
#container .slick-next:before {
    font-family: FontAwesome;
    font-size: 20px;
    line-height: 1;
    opacity: .75;
    color: black;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#container .slick-prev:before {
    content: '\f104';
}

#container .slick-next:before {
    content: '\f105';
}


/*------------------------------------------------------------
    shared
------------------------------------------------------------*/

.content-width {
    margin-right: auto;
    margin-left: auto;
    min-width: 300px;
    max-width: 1280px;
    width: 100%;
}

.tab-menu {
    border-bottom: solid 1px #433925;
    position: relative;
    text-align: center;
}

.tab-menu li {
    display: inline-block;
    font-size: 1.3rem;
    font-weight: bold;
    margin: 0 20px;
    padding: 0;
    position: relative;
    bottom: -1px;
    width: 15%;
}

.tab-menu a.select {
    border-bottom: solid 1px #bf9f5e;
}

.tab-menu a {
    background: #0d0d0d;
    border: solid 1px #433925;
    display :block;
    line-height: 3em;
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 90;
}


.angle-right::after {
    content: "\f105";
    font-family: FontAwesome;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 10px;
}

.angle-left::after {
    content: "\f104";
    font-family: FontAwesome;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 10px;
}

.to-top {
    background: #6e9414;
    border-radius: 50%;
    color: #fff;
    display: none;
    position: fixed;
    bottom: 60px;
    right: 22.5px;
    width: 45px;
    height: 45px;
    z-index: 100;

    transition: initial;
}

.to-top i {
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: .25em;
    left: 0;
    width: 1em;
    height: 1em;
}

.breadcrumb {
}

.breadcrumb li {
}

.breadcrumb li:before {
}

.breadcrumb li:first-child:before {
}

.breadcrumb .crumb-now:link,
.breadcrumb .crumb-now:visited {
}

.hatching {
    position: relative;
}

.hatching:before {
    background: url('../img/hatch.png') repeat;
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

.hatching-b {
    position: relative;
}

.hatching-b:before {
    background: url('../img/hatch_b.png') repeat;
    content: '';
    opacity: .5;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

.hatching-w {
    position: relative;
}

.hatching-w:before {
    background: url('../img/hatch_w.png') repeat;
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

.hover-img {
    background: #002350;
    border-bottom: solid 0 #479c29;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    transition-duration: 0.3s;
}

.hover-img img {
    display: block;
    position: relative;
    bottom: 0;
    width: 100%;
    height: auto;
    z-index: 0;
    transition-duration: 0.9s;
}

.hover-img::after {
    background: #469a27;
    color: #fff;
    content: '\f178';
    font-family: FontAwesome;
    line-height: 33px;
    position: absolute;
    right: 0;
    bottom: 0;
    text-align: center;
    width: 33px;
    height: 33px;
    z-index: 10;
    transition-duration: 0.3s;
}

.hover-img:hover::after {
    /*width: 100%;*/
}

.hover-img:hover img {
    filter: alpha(opacity=50);
    -moz-opacity:0.5;
    opacity:0.5;
    transform: scale(1.05);
}

.flex-button {
    display: flex;
}

.flex-button li {
    min-width: 300px;
}

.accent-red {
    color: #e50012;
}


/*------------------------------------------------------------
    fonts
------------------------------------------------------------*/

.ft-en {
    font-family: 'Arial', 'ヒラギノ角ゴ W3', 'ヒラギノ角ゴ Pro W3', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic Pro', 'Hiragino Kaku Gothic ProN', 'メイリオ', sans-serif;
}

.ft-gothic {
    font-family: 'ヒラギノ角ゴ W3', 'ヒラギノ角ゴ Pro W3', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic Pro', 'Hiragino Kaku Gothic ProN', 'メイリオ', sans-serif;
}

.ft-gothic-bold {
    font-family: 'ヒラギノ角ゴ W6', 'ヒラギノ角ゴ Pro W6', 'ヒラギノ角ゴ ProN W6', 'Hiragino Kaku Gothic Pro', 'Hiragino Kaku Gothic ProN', 'メイリオ', sans-serif;
    font-weight: bold;
}

.ft-min {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
}

.ft-min-bold {
    font-family: 'ヒラギノ明朝 ProN W6', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-weight: bold;
}

/*------------------------------------------------------------
    container
------------------------------------------------------------*/

#container {
    margin: 0 auto;
    padding: 0;
    position: relative;
    text-align: center;
    min-width: 1180px;
    width: 100%;
    height: auto;
}

.common-table {
    font-size: 1.4rem;
    line-height: 1.8;
    width: 100%;
}

.common-table a:link,
.common-table a:visited {
    color: #2c6b9f;
    text-decoration: underline;
}

.common-table a:active,
.common-table a:hover {
    color: #2c6b9f;
    text-decoration: none;
}


.common-table th {
    background: #f7f5ed;
    padding: 15px 1em;
    text-align: center;
    width: 20.5%;
    min-height: 50px;
}

.common-table td {
    background: #fff;
    padding: 15px 35px;
    text-align: left;
}

.common-table th,
.common-table td {
    border: solid 1px #d9d3c8;
    vertical-align: middle;
}

.common-table dl + dl {
    margin-top: 1em;
}

.common-table dt {
    font-weight: bold;
}


.list-container a > div {
    position: relative;
}

/*------------------------------------------------------------
    header
------------------------------------------------------------*/

#index #header {
    background: transparent;
    border: none;
    position: absolute;
}

#header {
    background: rgba(255, 255, 255, .92);
    border-bottom: solid 1px #ddd;
    overflow: hidden;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 80px;
    z-index: 100;
}

#header-contents {
    margin: auto;
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    max-width: 1200px;
    width: 100%;
    height: 80px;
    z-index: 1000;
}

#index #header-contents {
    max-width: 1250px;
}

.header-logo {
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -12px;
    width: 252px;
    height: 69px;
}

#index .header-logo {
    background: url('../img/logo_glow.png') no-repeat center center;
}

.subpage #header::before {
    background: #479c23;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
}

/*------------------------------------------------------------
    footer
------------------------------------------------------------*/

#footer {
    border-top: solid 1px #e6e6e6;
}

.footer-contents {
    background: #f9f8f4;
    padding: 30px 0;
    text-align: center;
}

.footer-title {
    font-size: 1.4rem;
    letter-spacing: .2em;
    line-height: 1.8;
    padding: 30px 0;
}

.footer-contact-link:link,
.footer-contact-link:visited {
    background: #222;
    border-radius: 3px;
    color: #fff;
    display: inline-block;
    font-size: 1.5rem;
    letter-spacing: .2em;
    line-height: 50px;
    margin: auto;
    padding: 0;
    position: relative;
    height: 50px;
    width: 260px;
}

.footer-contact-link:active,
.footer-contact-link:hover {
    background: #479c29;
}

.footer-contact-link i {
    font-size: 18px;
    margin-right: 5px;
    position: relative;
    bottom: -1px;
}

.footer-freedial {
    font-family: 'Oswald', 'Noto Sans JP Regular', sans-serif;
    font-size: 3rem;
    letter-spacing: .05em;
    margin: 20px auto;
}

.footer-freedial img {
    display: inline-block;
    width: auto;
    height: 22px;
    padding-right: .25em;
}

.footer-freedial span {
    display: block;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.2rem;
    letter-spacing: .2em;
}

.footer-address {
    font-size: 1.2rem;
    letter-spacing: .15em;
    line-height: 1.6;
}

.footer-address a:link,
.footer-address a:visited {
    text-decoration: underline;
}

.footer-address a:active,
.footer-address a:hover {
    color: #479c29;
    text-decoration: none;
}

.footer-address p + p {
    margin-top: 1em;
}

.footer-service-area {
    font-size: 1.2rem;
    letter-spacing: .15em;
    line-height: 1.8;
    margin: 25px auto 50px auto;
    text-align: left;
    max-width: 700px;
}

.footer-service-area p {
    font-size: 1.3rem;
    margin-bottom: .5em;
    text-indent: -.5em;
}

.footer-service-area li {
    float: left;
}

.footer-service-area li:after {
    content: '、';
}

.footer-service-area li:last-child:after {
    content: none;
}


#banner-area {
    background: url('../img/bg_banner_area.png') repeat;
    border-top: solid 1px #e6e6e6;
    border-bottom: solid 1px #e6e6e6;
    position: relative;
    padding: 20px 0px;
}

#banner-area:before {
    background: #fff;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    width: 100%;
    height: 1px;
}

#banner-area:after {
    background: #fff;
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 1px;
}
/**
#banner-controller {
    position: absolute;
}

.banner-controller-button {
    display: block;
    font-size: 2rem;
    line-height: 20px;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    width: auto;
    height: 20px;
}

.banner-slide-prev {
    margin-left: -500px;
    left: 50%;
}

.banner-slide-next {
    margin-right: -500px;
    right: 50%;
}

#banner-slider {
    margin: 30px auto;
    max-width: 1080px;
    width: 100%;
}

#banner-slider a {
    display: block;
    margin: 0 5px;
    width: 208px;
    height: 60px;
}**/


#banner-box {
    margin: 0 auto;
    width:850px;
    display:flex;
    flex-wrap: wrap;
    justify-content: left;
}

/**
#banner-box::after{
    content:"";
    display: block;
    width:22.8%;
  }**/

#banner-box img {
margin: 2px;
}



#copyright {
    background: #479c29;
    margin: 0;
    padding: 65px 0;
    text-align: center;
}

#copyright span {
    color: #ededed;
    display: block;
    font-size: 1rem;
    line-height: 1;
    margin: auto;
    text-transform: uppercase;
    -webkit-transform:scale(.8);
    -moz-transform:scale(.8);
    -ms-transform:scale(.8);
    -o-transform:scale(.8);
    transform:scale(.8);
}

/*------------------------------------------------------------
    navigation
------------------------------------------------------------*/

#totop:link,
#totop:visited {
    background: #111;
    color: #fff;
    display: block;
    display: none;
    position: fixed;
    right: 5vh;
    bottom: 5vh;
    width: 40px;
    height: 40px;
    z-index: 100;
}

#totop:active,
#totop:hover {
    color: #a6ff87;
}

#totop::before {
    content: '\f106';
    font-family: FontAwesome;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    text-align: center;
    width: 1em;
    height: 1em;
}


#header-gnavi {
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    height: 80px;
}

#gnavi {
}

.gnavi-contents {
}

.gnavi-list {
    display: flex;
}

.gnavi-list li {
    position: relative;
}

.gnavi-list li + li {
    margin-left: 40px;
}

.gnavi-list a:link,
.gnavi-list a:visited,
.gnavi-list a:active,
.gnavi-list a:hover {
    color: #222;
    display: inline-block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .05rem;
    line-height: 80px;
    position: relative;
}

#index .gnavi-list a:link,
#index .gnavi-list a:visited,
#index .gnavi-list a:active,
#index .gnavi-list a:hover {
    color: #fff;
}

.gnavi-list a:link:after,
.gnavi-list a:visited:after {
    background: #479c23;
    content: '';
    display: block;
    position: absolute;
    bottom: 20px;
    left: 0;
    width: 100%;
    height: 1px;

    filter: alpha(opacity=0);
    -moz-opacity: 0;
    opacity: 0;
    -webkit-transition: 0.2s;
    -moz-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s;
}

.gnavi-list a:active:after,
.gnavi-list a:hover:after {
    filter: alpha(opacity=100);
    -moz-opacity: 1;
    opacity: 1;
}

.gnavi-sublist {
    display: none;
}

.panel-button {
    display: block;
    margin: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    width: 90px;
    height: 100%;
}

.panel-button a:link,
.panel-button a:visited,
.panel-button a:active,
.panel-button a:hover {
    border: solid 4px transparent;
    box-sizing: border-box;
    color: #fff;
    display: block;
    height: 100%;
    width: 100%;
}

.panel-button span {
    color: #fff;
    display: block;
    font-size: 1.2rem;
    margin: auto;
    position: absolute;
    top: 1.8rem;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1em;
}

.panel-button i {
    display: block;
    font-size: 1.8rem;
    font-weight: normal;
    margin: auto;
    position: absolute;
    top: 1em;
    right: 0;
    left: 0;
    width: 1em;
    height: 1em;
}

.entry-button {
    background: #f58a00;
    right: 90px;
}

.contact-button {
    background: #6e9414;
    right: 0;
}

.entry-button a:active,
.entry-button a:hover {
    background: #fff;
    border: solid 4px #f58a00;
    color: #f58a00;
}

.entry-button a:active span,
.entry-button a:hover span {
    color: #f58a00;
}

.contact-button a:active,
.contact-button a:hover {
    background: #fff;
    border: solid 4px #6e9414;
    color: #6e9414;
}

.contact-button a:active span,
.contact-button a:hover span {
    color: #6e9414;
}

/* pager
------------------------------------ */

.pager-nav {
    letter-spacing: .1rem;
    margin: 50px auto;
    padding: 20px 0;
}

.wp-pagenavi {
    text-align: center;
    width: 660px;
    margin-right: auto;
    margin-left: auto;
    font: 11px Verdana, Geneva, sans-serif;
}

.wp-pagenavi span {
    margin-right: 5px;
    margin-left: 5px;
}

.wp-pagenavi .pages {
    font-style: italic;
    font-weight: normal;
    color: #999;
}

.wp-pagenavi .current {
    margin-right: 2px;
    margin-left: 2px;
    border: 1px solid #000;
    background-color: #000;
    padding: 3px 6px;
    color: #FFF;
    text-decoration: none;
    border-radius: 2px;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
}

.wp-pagenavi a {
    margin-right: 2px;
    margin-left: 2px;
    border: 1px solid #CCC;
    background-color: #FFF;
    padding: 3px 6px;
    color: #999;
    text-decoration: none;
    border-radius: 2px;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
}

.wp-pagenavi a {
    margin-right: 2px;
    margin-left: 2px;
    border: 1px solid #CCC;
    background-color: #FFF;
    padding: 3px 6px;
    color: #999;
    text-decoration: none;
    border-radius: 2px;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
}

.pager-nav li {
    display: inline-block;
}

.pager-nav a,
.pager-nav span {
    display: inline-block;
    text-align: center;
}

.pager-nav-article,
.pager-nav-list {
    text-align: center;
}

.pager-nav-right {
    text-align: right;
}

.pager-nav-footer {
    border-top: 1px dotted #c3c3c3;
}

/* pager article
------------------------------------ */

.pager-nav-article {
    font-size: 1.2rem;
    line-height: 35px;
}

.pager-nav span,
.pager-home span {
    color: #ddd;
}

.pager-home span,
.pager-home a:link,
.pager-home a:visited,
.pager-nav-article span,
.pager-nav-article a:link,
.pager-nav-article a:visited {
    margin:  0 1em;
    padding: 0 1em;
    text-decoration: none;
}

.pager-home a:active,
.pager-home a:hover,
.pager-nav-article a:active,
.pager-nav-article a:hover {
    color: #a37e39;
    text-decoration: underline;
}



/*------------------------------------------------------------
    sitemap
------------------------------------------------------------*/

.sitemap-body {
    margin: 50px auto 80px auto;
}

.sitemap-section {
    background: #f3f3f3;
    border: solid 1px #e1e1e1;
    margin: 0 auto 20px auto;
    position: relative;
    text-align: left;
    max-width: 740px;
    min-width: 300px;
    width: 100%;
}

.sitemap-section a {
    display: block;
    font-size: 1.2rem;
    letter-spacing: .1rem;
    line-height: 4.2rem;
}

.sitemap-section a:active,
.sitemap-section a:hover {
    color: #b98e40;
    text-decoration: underline;
}

.sitemap-section i {
    color: #111;
    margin: 0 10px 0 20px;
}

.sitemap-parent {
    margin-top: -2rem;
    position: absolute;
    top: 50%;
}

.sitemap-child {
    background: #fff;
    border-left: solid 1px #e1e1e1;
    margin-left: 180px;
}

.sitemap-child > div + div {
    border-top: solid 1px #e1e1e1;
}

/*------------------------------------------------------------
    main
------------------------------------------------------------*/

#index #main {
    background: #fff;
}

#main {
    background: #f8f8f8;
}

.main-container {
    background: #f8f8f8;
}

.title-area {
    background: #479c23 url('../img/title_bg.png') repeat;
    color: #fff;
    letter-spacing: .3em;
    line-height: 1;
    position: relative;
    width: 100%;
    height: 100px;
}

.contents-main-title {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 3.2rem;
    letter-spacing: .1em;
    margin: auto;
    padding-bottom: 4.6rem;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    width: 100%;
    height: 1em;
    z-index: 20;
}

.contents-sub-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .3em;
    margin: auto;
    padding-top: 4.6rem;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    text-transform: uppercase;
    width: 100%;
    height: 1em;
    z-index: 20;
}

.contents-main-title::after {
    background: #479c23;
    content: '';
    display: block;
    margin: auto;
    position: absolute;
    top: 4.6rem;
    right: 0;
    bottom: -150px;
    left: 0;
    width: 2px;
    height: 75px;
}

.heading-texts {
    line-height: 1.8;
    margin: 70px auto 40px auto;
}

.area-title {
    margin: 55px auto;
    text-align: left;
    max-width: 980px;
}

.area-title-caption {
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    font-weight: bold;
    position: relative;
}

.catchphrase {
    color: #479c29;
    font-family: 'Noto Sans JP Black', sans-serif;
    font-size: 6rem;
    font-weight: bold;
    letter-spacing: 0;
    line-height: 1.2;
    padding: 10px 0;
    position: relative;
}

.subphrase {
    color: #479c29;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.8rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1.6;
    position: relative;
}

.subphrase1 {
    color: #479c29;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.8rem;
    font-weight: bold;
    letter-spacing: .03em;
    line-height: 1.2;
    padding: 10px 0;
    position: relative;
}

.subphrase2 {
    color: #479c29;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.8rem;
    font-weight: bold;
    letter-spacing: .3em;
    line-height: 1.6;
    position: relative;
}

.interview-header-text {
    font-size: 1.4rem;
    line-height: 2;
    margin-top: 20px;
}

.dream-header-text {
    font-size: 1.6rem;
    line-height: 2;
    margin-top: 20px;
}


.breadcrumb  {
    display: flex;
    justify-content: left;
    margin: 1em auto;
    position: absolute;
    top: 80px;
    right: 0;
    left: 0;
    max-width: 1200px;
    width: 100%;
    z-index: 50;
}

.breadcrumb li + li::before {
    color: #fff;
    content: '/';
    font-size: 1.2rem;
    line-height: 1;
    margin: 0 1em;
}

.breadcrumb a:link,
.breadcrumb a:visited {
    color: #fff;
    display: inline-block;
    font-size: 1.2rem;
    letter-spacing: .1em;
    line-height: 1;
}


.title-area {
    background: #999;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    display: block;
    position: relative;
    width: 100%;
    height: 480px;
}

.title-area::before {
    background: rgba(0, 35, 80, .6);
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

.title-area::after {
    background: url('../img/mesh.png') repeat;
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 11;
}

.main-contents {
    background: #fff;
    border: solid 1px #eee;
    box-shadow: 0 0 2px rgba(0, 0, 0 ,.1);
    margin: auto;
    position: relative;
    top: -80px;
    max-width: 1100px;
    width: 100%;
    z-index: 80;
}


/*------------------------------------------------------------
    top
------------------------------------------------------------*/


.top-screen {
    margin-bottom: 80px;
    position: relative;
    width: 100%;
    height: 100%;
}

.top-screen-bg {
    background: url('../img/top_image.jpg') no-repeat center center;
    background-size: cover;
    display: flex;
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 100%;
}

.top-screen-bg img {
    display: none;
}

.top-screen-title {
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 7vh;
    height: 62vh;
    z-index: 100;
}

.top-screen-title img {
    width: auto;
    max-height: 505px;
    height: 100%;
}

.top-screen-split {
    overflow: hidden;
    position: relative;
    width: 50%;
}

.top-screen::before {
    background: rgba(0, 35, 80, .25);
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

.top-screen::after {
    background: url('../img/mesh.png') repeat;
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 11;
}


.top-screen .slick-list,
.top-screen .slick-track {
    height: 100%;
}

.top-slide-area {
    overflow: hidden;
    position: relative;
    max-height: 50%;
    height: 100%;
}

.top-slide-area ul {
    width: 100%;
    height: 100%;
}

.top-slide-area img {
    opacity: 0;
    max-width: 100%;
    width: 100%;
    height: 100%;
}

#vid {
    background-size: cover;
    min-width: 100%;
    min-height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: auto;
    height: auto;
}

.top-screen-footer {
    letter-spacing:-.4em;
    margin: auto;
    position: absolute;
    right: 0;
    /*left: 500px;*/
    bottom: -1px;
    max-width: 1250px;
    width: 100%;
    height: auto;
    z-index: 15;
    transform: translateX(-60px);
}

.top-screen-footer_right{
        letter-spacing:-.4em;
    margin: auto;
    position: absolute;
    /*left: 380px;*/
    bottom: -1px;
    height: auto;
    z-index: 15;
    transform: translateX(300px);
}

@media (max-width: 1250px) {
    .top-screen-footer {
        transform: translateX(0px);
        }
    .top-screen-footer img{
        width: 15vw; 
        }

    .top-screen-footer_right {
        bottom:120px;
        right: 0;
        left: 0;
        transform: translateX(0px);
        }
    .top-screen-footer_right img{
        width:20vw;
        margin-bottom: 10px;
        }
}
@media (min-width: 1250px) {
    .top-screen-footer {
        left:40%;}
    }


/*
.top-banner {
    position: absolute;
    display: inline;
    bottom: -1px;
    right: 0;
    left:400px;
    z-index: 15;
}

.top-banner02 {
    position: absolute;
    display: inline;
    bottom: -1px;
    right: 0;
    left:740px;
    z-index: 15;
}

.top-banner03 {
    position: absolute;
    bottom: -1px;
    right: 0;
    z-index: 15;
}
*/
.top-image-cover-icon {
    position: absolute;
    bottom: 50px;
    width: 100%;
    text-align: center;
    z-index: 12;
}

.top-image-cover-icon i {
    color: #fff;
    display: block;
    font-size: 19px;
    margin: auto;
    position: absolute;
    right: -1px;
    bottom: -16px;
    left: 1px;
    width: 19px;
    height: 19px;

    -webkit-animation: icon-cursor 1.6s 1s ease-out infinite both;
    animation: icon-cursor 1.6s 1s ease-out infinite both;

}

.top-image-cover-icon i:last-child {
    bottom: -24px;
}

.scroll-icon {
    display: inline-block;
    width: 20px;
    height: 36px;
    padding-top: 2px;
    border: 2px solid #fff;
    border-radius: 10px;
    text-align: center;
    line-height: 1;
}

.scroll-icon span {
    display: inline-block;
    width: 2px;
    height: 8px;
    background-color: #fff;
    -webkit-animation: icon-scroller 1.6s 1s ease-out infinite both;
    animation: icon-scroller 1.6s 1s ease-out infinite both;
}

@-webkit-keyframes icon-scroller {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-1px);
                transform: translateY(-1px);
    }
    30% {
        opacity: 1;
    }
    60% {
        opacity: 1;
        -webkit-transform: translateY(7px);
                transform: translateY(7px);
    }
    70% {
        opacity: 0;
        -webkit-transform: translateY(8px);
                transform: translateY(8px);
    }
    100% {
        opacity: 0;
    }
}

@keyframes icon-scroller {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-1px);
                transform: translateY(-1px);
    }
    30% {
        opacity: 1;
    }
    60% {
        opacity: 1;
        -webkit-transform: translateY(7px);
                transform: translateY(7px);
    }
    70% {
        opacity: 0;
        -webkit-transform: translateY(8px);
                transform: translateY(8px);
    }
    100% {
        opacity: 0;
    }
}


@-webkit-keyframes icon-cursor {
    0% {
        opacity: 1;
    }
    30% {
        opacity: 0;
    }
    50% {
        opacity: 0;
    }
    70% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@keyframes icon-cursor {
    0% {
        opacity: 1;
    }
    30% {
        opacity: 0;
    }
    50% {
        opacity: 0;
    }
    70% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/*  top - common
------------------------------ */

.top-section {
    position: relative;
}

.top-section::before {
    background: #f8f8f8;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    width: 75vw;
    height: 100%;
}

.top-section:nth-child(even)::before {
    left: 0;
}

.top-section:nth-child(odd)::before {
    right: 0;
    width: 81.5vw;
}

.top-section + .top-section {
    margin-top: 100px;
}

.top-section p {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    line-height: 1.8;
}

.top-section-title {
    color: #469926;
    font-family: 'Roboto', sans-serif;
    font-size: 2.4rem;
    font-style: italic;
    letter-spacing: .1em;
    line-height: 1;
    position: relative;
    text-align: left;
}

.top-section-title::before {
    background: #469926;
    content: '';
    position: absolute;
    top: 0.5em;
    left: -60px;
    width: 50px;
    height: 1px;
}

.top-section-title span {
    color: #202020;
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.4rem;
    font-style: normal;
    letter-spacing: .3em;
    line-height: 1.4;
    margin-top: .5em;
}

.top-interview-title,
.top-entry-title {
    color: #479c29;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1.6;
    margin-bottom: 20px;
}

.top-link-button:link,
.top-link-button:visited {
    background: #479c29;
    border: solid 1px transparent;
    border-radius: 3px;
    box-sizing: border-box;
    color: #fff;
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.3rem;
    letter-spacing: .2em;
    line-height: 38px;
    margin: 40px 0 40px 0;
    position: relative;
    text-align: center;
    max-width: 280px;
    width: 100%;
    height: 40px;
}

.top-link-button:active,
.top-link-button:hover {
    background: #222;
    transition: 0.3s;
}

.top-link-button.button-rev:link,
.top-link-button.button-rev:visited {
    background: #222;
}

.top-link-button.button-rev:active,
.top-link-button.button-rev:hover {
    background: #479c29;
}


/*
.top-link-button::after {
    content: '\f105';
    font-family: FontAwesome;
    margin-top: auto;
    position: absolute;
    top: 0;
    right: 10px;
    bottom: 0;
}
*/

/*  top - about
------------------------------ */

.top-about-title {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-size: 2.2rem;
    font-weight: bold;
    letter-spacing: .3em;
    line-height: 1.2;
    padding: 120px 0 50px 0;
}

/*  top - pride
------------------------------ */

.top-pride-container {
    margin: auto;
    padding: 60px 0;
    position: relative;
    max-width: 1170px;
}

.top-pride-text {
    background: url('../img/top_pride_bg.png') no-repeat 90% 5%;
    text-align: left;
    max-width: 480px;
}

.top-pride-title {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-size: 2.4rem;
    letter-spacing: .3em;
    line-height: 1.6;
    margin: 30px 0;
}

.top-pride-text p , .top-pride-text_smp p  {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    letter-spacing: .2em;
    line-height: 2.1;
}

.top-pride-text p + p , .top-pride-text_smp p  + p{
    margin-top: .5em;
}
 
.top-pride-text_smp  {
display: none;
}
.top-pride-photo {
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    max-width: 680px;
    width: 100%;
    height: auto;
}


/*  top - outline
------------------------------ */

.top-section:nth-child(3)::before {
    height: 70%;
}

.top-outline-container {
    margin: auto;
    padding-top: 60px;
    position: relative;
    max-width: 1150px;
    text-align: left;
}

.top-outline-title {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-size: 2.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    margin: 1em 0;
}

.top-outline-list-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: auto;
}

.outline-list:link,
.outline-list:visited,
.outline-list:active,
.outline-list:hover {
    display: block;
    text-align: left;
    text-decoration: none;
    width: 360px;
}

.top-outline-list-container .outline-list:nth-child(n+4) {
    margin-top: 40px;
}

.top-outline-photo {
    width: 360px;
    height: 240px;
}

.outline-list h4 {
    color: #202020;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .3em;
    line-height: 1.2;
    padding: 15px 0;
}

.outline-list p {
    color: #333;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 1.8;
}


/*  top - works
------------------------------ */

.top-section:nth-child(4)::before {
    height: 90%;
}

.top-works-container {
    margin: auto;
    padding: 60px 0;
    position: relative;
    max-width: 1150px;
}

.top-works-text {
    text-align: left;
    max-width: 412px;
}

.top-works-title {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-size: 2.4rem;
    letter-spacing: .3em;
    line-height: 1.6;
    margin: 30px 0;
}

.top-works-text p {
    line-height: 2.1;
}

.top-works-text p + p {
    margin-top: .5em;
}

.top-works-gallery-container {
    position: absolute;
    top: 60px;
    right: 0;
    max-width: 680px;
    width: 100%;
    height: 450px;
}




/*  top - company
------------------------------ */

.top-section:nth-child(5)::before {
    height: 85%;
}

.top-company-container {
    margin: auto;
    padding-top: 60px;
    position: relative;
    max-width: 1150px;
    text-align: left;
}

.top-company-title {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-size: 2.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    margin: 1em 0;
}

.top-company-list-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: auto;
}

.top-company-list-container::after{
    content: '';
    display: block;
    width: 360px;
}

.company-list:link,
.company-list:visited,
.company-list:active,
.company-list:hover {
    display: block;
    text-align: left;
    text-decoration: none;
    width: 360px;
}

.company-list {
    margin-top: 40px;
}

.top-company-photo {
    width: 360px;
    height: 200px;
}

.top-company-photo::before {
    background: rgba(0, 0, 0, .5);
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
}

.company-list {
    position: relative;
}

.company-list h4 {
    color: #fff;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2rem;
    letter-spacing: .3em;
    line-height: 1;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    text-align: center;
    height: 4rem;
    z-index: 20;
}

.company-list h4 span {
    display: block;
    font-family: 'Oswald', sans-serif;
    font-size: 1.2rem;
    margin-top: 8px;
}


/*  top - recruit
------------------------------ */

.top-section:nth-child(6)::before {
    height: 75%;
}

.top-recruit-container {
    margin: auto;
    padding-top: 60px;
    position: relative;
    max-width: 1150px;
    text-align: left;
}

.top-recruit-title {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-size: 2.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    margin: 1em 0;
}

.top-recruit-image-container {
    margin: 40px auto 0 auto;
    position: relative;
    max-width: 1260px;
    text-align: center;
}

.top-recruit-image-container::before {
    background: rgba(0, 0, 0, .4);
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
}

.top-recruit-image-text {
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    height: 120px;
    z-index: 10;
}

.top-recruit-image-text h4 {
    color: #fff;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 3rem;
    letter-spacing: .2em;
    line-height: 1.5;
    text-shadow: 0 0 4px rgba(0, 0, 0, .6);
}

.top-recruit-image-text .top-link-button:link,
.top-recruit-image-text .top-link-button:visited {
    margin: 40px auto 0 auto;
}

.top-recruit-image-photo {
    object-fit: contain;
    position: relative;
    max-width: 100%;
    z-index: 0;
}

/*
.top-recruit-list-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: auto;
}

.top-recruit-list-container::after{
    content: '';
    display: block;
    width: 360px;
}

.recruit-list:link,
.recruit-list:visited,
.recruit-list:active,
.recruit-list:hover {
    display: block;
    text-align: left;
    text-decoration: none;
    width: 360px;
}

.recruit-list {
    margin-top: 40px;
}
*/

/*  top - information
------------------------------ */

.top-section:last-child::before {
    content: none;
    display: none;
}

.top-news-container {
    margin: auto;
    padding-top: 60px;
    padding-bottom: 120px;
    position: relative;
    max-width: 900px;
    text-align: left;
}

.top-news-article-list {
    margin: auto;
    text-align: left;
    max-width: 900px;
    width: 100%;
}

.top-news-article {
    border-bottom: solid 1px #ddd;
    display: flex;
    justify-content: left;
    height: 70px;
    width: 100%;
    line-height: 70px;
}


.top-news-article .news-article-date {
    font-size: 1.5rem;
    font-weight: bold;
}

.top-news-article .news-article-date::after {
    content: none;
    display: none;
}

.top-news-article .news-article-title:link,
.top-news-article .news-article-title:visited {
    font-size: 1.6rem;
}

.top-news-footer {
    padding: 20px 0;
    text-align: right;
}





/*------------------------------------------------------------
    news
------------------------------------------------------------*/



/* list page
------------------------------------ */

.news-category-list {
    font-size: 1.2rem;
    margin: 50px auto;
}

.news-category-list a:link,
.news-category-list a:visited {
    color: #888;
    display: inline-block;
    margin: 0 20px;
    padding: 10px;
}

.news-category-list a:active,
.news-category-list a:hover {
    color: #222;
}

.news-category-list a.selected {
    color: #222;
    border-bottom: solid 1px #0f6bb8;
}

.news-body-list {
    margin: auto;
    min-width: 300px;
    max-width: 980px;
    width: 100%;
}

.news-article-list {
    margin: auto;
    text-align: left;
    max-width: 800px;
    width: 100%;
}

.news-article {
    border-bottom: solid 1px #ddd;
    display: flex;
    justify-content: left;
    height: 70px;
    width: 100%;
    line-height: 70px;
}

.news-article-date {
    color: #1f1f1f;
    display: block;
    font-family: 'Arial', sans-serif;
    font-size: 1.2rem;
    position: relative;
    text-align: center;
    min-width: 160px;
}

.news-article-date::after {
    background: #0f6bb8;
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;

}

.news-article-tag {
    display: block;
    position: relative;
    min-width: 105px;
    height: 100%;
}

.news-article-tag:after {
    background: #3fa8bb;
    border-radius: 2px;
    color: #fff;
    content: '';
    display: block;
    font-size: 1.3rem;
    line-height: 22px;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    text-align: center;
    width: 105px;
    height: 22px;
}

.news-tag-news:after {
    content: 'ニュース';
}

.news-tag-publish:after {
    content: '掲載情報';
}

.news-tag-works:after {
    content: '施工実績';
}

.news-tag-recruit:after {
    content: '採用情報';
}

.news-article-title:link,
.news-article-title:visited {
    display: block;
    font-size: 1.4rem;
    margin-left: 2em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.news-article-title:active,
.news-article-title:hover {
    color: #479c23;
}

/* detail page
------------------------------------ */

.news-body-detail {
    margin: 60px auto 0 auto;
    min-width: 300px;
    max-width: 800px;
    width: 100%;
}

.news-article-detail {
    text-align: left;
}

.news-article-title-detail {
    border-top: dotted 1px #ccc;
    border-bottom: dotted 1px #ccc;
    color: #202020;
    display: block;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: .1rem;
    line-height: 1.2;
    margin: 0;
    padding: 20px;
    white-space: normal;
}

.news-meta-detail {
    color: #868686;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.3rem;
    letter-spacing: .1em;
    line-height: 22px;
    margin: 10px 20px;
}

.news-meta-detail li {
    display: block;
    float: left;
}

.news-meta-detail li + li {
    margin-left: 1em;
}

.news-meta-detail span {
}

.news-meta-detail a:link,
.news-meta-detail a:visited {
    color: #111;
    font-size: 1.1rem;
    text-decoration: underline;
}

.news-meta-detail a:active,
.news-meta-detail a:hover {
    text-decoration: none;
}

.news-article-body-detail {
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.8;
    padding-top: 30px;
}

.news-article-body-detail a:link,
.news-article-body-detail a:visited {
    color: #479c29;
    text-decoration: underline;
}

.news-article-body-detail a:active,
.news-article-body-detail a:hover {
    text-decoration: none;
}

.news-article-body-detail p + p {
    margin-top: 2.4rem;
}

.news-article-body-detail img {
    vertical-align: bottom;
}

.news-article-nav {
    letter-spacing: .1rem;
    margin: 50px auto;
    padding: 20px 0;
}

.news-nav {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    margin: auto;
    width: 220px;
    height: 20px;
}


.news-nav-icon {
    display: block;
    position: relative;
    width: 50px;
    height: 20px;
}

.news-nav-index {
    background: url(../img/nav_home.png) no-repeat center center;
    background-size: contain;
    display: block;
    width: 20px;
    height: 20px;
}

.news-nav-icon span,
.news-nav-icon:before,
.news-nav-icon:after {
    background: #999;
    display: block;
    position: absolute;
    height: 1px;
}

.news-nav-icon:active span,
.news-nav-icon:hover span,
.news-nav-icon:active:before,
.news-nav-icon:hover:before,
.news-nav-icon:active:after,
.news-nav-icon:hover:after {
    background: #479c29;
}

.news-nav-icon span {
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
}

.news-nav-prev:before {
    content: '';
    left: 0;
    top: 4px;
    width: 12px;
    transform: rotate(-45deg);
}

.news-nav-next:after {
    content: '';
    right: 0;
    bottom: 4px;
    width: 12px;
    transform: rotate(-45deg);
}


/*------------------------------------------------------------
    outline
------------------------------------------------------------*/

/* common
------------------------------------ */

.outline-detail-body {
    margin: auto;
    max-width: 980px;
    width: 100%;
}

.outline-navi {
    display: flex;
    justify-content: center;
    margin: 45px auto;
}

.outline-navi li {
    padding: 0 1.5em;
    position: relative;
}

.outline-navi li:first-child {
    padding-left: 0;
}

.outline-navi li:last-child {
    padding-right: 0;
}

.outline-navi li + li::before {
    background: #ccc;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
    transform: rotate(20deg);
}


.outline-navi a:link,
.outline-navi a:visited,
.outline-navi a:active,
.outline-navi a:hover {
    color: #202020;
    display: block;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 3;
    padding: 0 .5em;
}

.outline-detail-header::before {
    color: #f0f0f0;
    content: '';
    font-family: 'Oswald', sans-serif;
    font-size: 14rem;
    font-weight: normal;
    letter-spacing: 0;
    position: absolute;
    top: 55px;
    left: 300px;
    z-index: 0;
}

.material .outline-navi li:nth-child(1) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.material .outline-detail-header::before {
    content: '01';
}

.bike .outline-navi li:nth-child(2) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.bike .outline-detail-header::before {
    content: '02';
}

.school .outline-navi li:nth-child(3) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.school .outline-detail-header::before {
    content: '03';
}

.unithouse .outline-navi li:nth-child(4) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.unithouse .outline-detail-header::before {
    content: '04';
}

.solar .outline-navi li:nth-child(5) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.solar .outline-detail-header::before {
    content: '05';
}

.rental .outline-navi li:nth-child(6) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.rental .outline-detail-header::before {
    content: '06';
}

.outline-detail-header {
    background-position: top right;
    background-repeat: no-repeat;
    background-size: contain;
    padding-right: 530px;
    position: relative;
    text-align: left;
}

.outline-detail-title-en {
    color: #4c9b22;
    font-family: 'Oswald', sans-serif;
    font-size: 4rem;
    font-weight: normal;
    letter-spacing: .3em;
    line-height: 1.4;
    margin: 30px 0;
    position: relative;
    z-index: 5;
}

.outline-detail-title {
    color: #202020;
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.2rem;
    letter-spacing: .3em;
    padding-left: 45px;
    position: relative;
    margin-bottom: 45px;
}

.outline-detail-title::before {
    background: #193967;
    content: '';
    display: block;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    width: 30px;
}

.outline-detail-read h3 {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 1.6;
    white-space: nowrap;
}

.outline-detail-body p {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 2;
    margin-top: 1.5em;
    text-align: left;
}

.outline-subtitle {
    border-top: solid 1px #ddd;
    border-bottom: solid 1px #ddd;
    color: #469a27;
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.2rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1;
    margin: 50px auto 40px auto;
    padding: 25px 0;
    text-align: left;
}

.outline-subtitle-bk {
    color: #202020;
    font-size: 1.8rem;
}

.outline-subtitle-text {
    margin-bottom: 50px;
}

.outline-detail-box {
    background: #f7f6f2;
    border: solid 1px #e5e5e5;
    display: flex;
    justify-content: space-between;
    position: relative;
}

.outline-detail-box + .outline-detail-box {
    margin-top: 40px;
}

.outline-detail-box::before {
    background: #479c23;
    content: '';
    position: absolute;
    top: 0;
    left: 20px;
    width: 80px;
    height: 5px;
}

.outline-detail-box-text {
    padding: 35px 40px 35px 20px;
    text-align: left;
}

.outline-detail-box-title {
    color: #479c23;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1;

}

.outline-detail-box-text p {
    line-height: 1.75;
    margin-top: 1em;
}

.outline-detail-box-text a:link {
    margin-top: 25px;
    margin-bottom: 0;
}

.outline-detail-box-text ul {
    line-height: 1.75;
}

.outline-detail-box-image {
    display: block;
    object-fit: contain;
    position: relative;
    right: 0;
    max-width: 100%;
    max-height: 100%;
}

/* index page
------------------------------------ */

.outline-body {
    padding: 60px 0;
}

.outline-read-title {
    color: #4c9b22;
    display: block;
    font-family: 'Oswald', sans-serif;
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: .35em;
    line-height: 1;
    margin: 0 auto;
    position: relative;
    max-width: 950px;
    width: 100%;
}

.outline-read-title span {
    background: #fff;
    display: inline-block;
    margin: auto;
    padding:  0 1em;
    position: relative;
    z-index: 5;
}

.outline-read-title::before {
    background: #ddd;
    content: '';
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
}

.outline-read-text {
    font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', '游明朝', 'YuMincho', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    font-size: 2.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    margin: 40px auto;
    max-width: 950px;
    width: 100%;
}

.outline-list-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: auto;
    max-width: 770px;
    width: 100%;
}

.outline-list:link,
.outline-list:visited,
.outline-list:active,
.outline-list:hover {
    display: block;
    text-align: left;
    text-decoration: none;
    width: 360px;
}

.outline-list-container .outline-list:nth-child(n+3) {
    margin-top: 40px;
}

.outline-photo {
    width: 360px;
    height: 240px;
}

.outline-list h4 {
    color: #202020;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .3em;
    line-height: 1.2;
    padding: 15px 0;
}

.outline-list p {
    color: #333;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 1.8;
}


/* material page
------------------------------------ */

.outline-detail-body.material {
    padding-bottom: 120px;
}

.material-center {
    padding-top: 66px;
    text-align: left;
}

.material-center-title {
    color: #202020;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2rem;
    letter-spacing: .4em;
    line-height: 1.6;
}

.material-center p {
    width: 75%;
}

.material-map {
    margin: auto;
    position: relative;
    top: -100px;
    text-align: right;
}

.material-center a:link,
.material-center a:visited {
    margin: auto;
    position: relative;
    top: -60px;
}

.material-pamph-box {
    min-height: 220px;
}

.material-pamph-box .outline-detail-box-text {
    padding-right: 120px;
}

.material-pamph-box .outline-detail-box-image {
    right: 10px;
}

/* iq system page
------------------------------------ */

.iq-system-header {
    display: flex;
}

.iq-system-header-image {
    margin-right: 40px;
}

.iq-system-header-text {
    text-align: left;
}

.iq-system-header-text h3 {
    color: #469926;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.2rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1.6;
}

.iq-system-header-text a:link {
    border: solid 1px #303030;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .1em;
    line-height: 4;
    margin-top: 40px;
    position: relative;
    max-width: 500px;
}

.iq-system-header-text a:active,
.iq-system-header-text a:hover {
    filter: alpha(opacity=75);
    -moz-opacity:0.75;
    opacity:0.75;
}

.iq-system-header-text a::before {
    background: url('../img/icon_youtube_l.png') no-repeat center center;
    content: '';
    display: block;
    margin-right: 15px;
    width: 72px;
    height: 30px;
}

.iq-system-header-text span {
    display: block;
}

/* firstech page
------------------------------------ */

.firstech-header {
    margin-bottom: -30px;
}

.firstech-header-text {
    color: #469926;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.4rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1.6;
    position: relative;
    text-align: left;
    z-index: 10;
}

.firstech-header-image {
    position: relative;
    top: -30px;
    z-index: 0;
}

.firstech .outline-detail-box-title {
    font-size: 2.6rem;
}

/* bike page
------------------------------------ */

.outline-detail-body.bike {
    padding-bottom: 100px;
}

.bike-img_box{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap:10px;
}


.bike-subtitle {
    color: #469a27;
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.2rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1;
    margin: 50px auto 40px auto;
    padding: 25px 0;
    position: relative;
}

.bike-subtitle::after {
    background: #193967;
    content: '';
    display: block;
    margin: auto;
    position: relative;
    top: 35px;
    width: 30px;
    height: 1px;
}

.bike-bottom-box {
    background: #fff;
    flex-direction: row-reverse;
}

.bike-bottom-box .outline-detail-box-title {
    color: #222;
    font-weight: normal;
}

.bike-bottom-box .outline-detail-box-text {
    padding: 35px 40px;
}

/* school page
------------------------------------ */

.school-table-title {
    border-bottom: solid 1px #ddd;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .1em;
    padding-bottom: 20px;
    position: relative;
    text-align: left;
}

.school-table-title::after {
    background: #479c29;
    content: '';
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 180px;
    height: 1px;
    z-index: 5;
}

.school-table {
    border-collapse: collapse;
    margin: 40px auto 70px auto;
    width: 100%;
}

.school-table th,
.school-table td {
    border: solid 1px #ddd;
    padding: 1em;
    text-align: center;
}

.school-table th {
    background: #f0f0f0;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 1.8;
    vertical-align: middle;
}

.school-table td {
    background: #fff;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.8;
}

.school-table-subject {

}

.school-table-subject tr:last-child td:first-child {
    border-right: none;
}

.school-table-subject tr:last-child td:nth-child(2) {
    border-left: none;
}

.school-table-subject tr:last-child td {
    font-weight: bold;
}

.school-table-method span {
    font-weight: bold;
}

.school .top-link-button {
    margin: 0 auto 80px auto;
    max-width: 350px;
}

/* unit house page
------------------------------------ */

.unithouse-panels {
    display: flex;
    flex-wrap: wrap;
    margin: auto;
    justify-content: space-between;
    max-width: 890px;
}

.unithouse-panels li {
    max-width: 270px;
    width: 100%;
}

.unithouse-panels li:nth-child(n+4) {
    margin-top: 40px;
}

.unithouse-panels h4 {
    border-bottom: solid 1px #479c29;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.6rem;
    letter-spacing: .1em;
    line-height: 1.2;
    padding-bottom: 15px;
    text-align: center;
}

.unithouse-panels img {
    display: block;
    margin: 20px auto;
    max-width: 260px;
    height: auto;
}

.unithouse-panels span {
    display: block;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.8;
    margin: auto;
    text-align: left;
    max-width: 264px;
}

.unithouse-table-header {
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.6rem;
    letter-spacing: .2em;
    padding: 60px 0 20px 0;
    text-align: left;
}

.unithouse-table {
    border-collapse: collapse;
    margin: auto;
    width: 100%;
}

.unithouse-table th,
.unithouse-table td {
    border: solid 1px #ddd;
    padding: 1em;
}

.unithouse-table th {
    background: #f0f0f0;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 1.8;
    text-align: center;
    vertical-align: middle;
}

.unithouse-table td {
    background: #fff;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 2;
    text-align: left;
}

.unithouse-table-footer {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.2rem;
    letter-spacing: .1em;
    line-height: 2;
    margin: 10px auto 80px auto;
    text-align: right;
}

/* solar page
------------------------------------ */

.solar-location-title {
    margin: 60px auto 40px auto;
    padding-left: 80px;
    position: relative;
    text-align: left;
}

.solar-location-title h3 {
    color: #133057;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.6rem;
    letter-spacing: .1em;
    line-height: 1;
    padding: 60px 0 10px 0;
}

.solar-location-title ul {
    color: #ff9300;
    display: flex;
    justify-content: left;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .1em;
    line-height: 1;
}

.solar-location-title li + li {
    margin-left: 1.5em;
}

.solar-balloon {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 80px;
    height: 80px;
}

.solar-coefficient {
    background: #f9f9f9;
    border: solid 1px #ddd;
    padding: 30px 35px;
    position: relative;
    text-align: left;
    min-height: 200px;
}

.solar-coefficient h4 {
    color: #133057;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .2em;
    line-height: 1;
}

.solar-coefficient ul {
    margin-top: 25px;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.5rem;
    line-height: 1.5;
}

.solar-coefficient span {
    color: #202020;
    font-size: 1.3rem;
}

.solar-coefficient span:nth-child(1) {
    color: #0f6bb8;
    font-size: 1.8rem;
}

.solar-coefficient span + span {
    padding-left: 1em;
}

.solar-tree {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
}


.solar-panels-title {
    display: flex;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.5rem;
    line-height: 1.5;
}

.solar-panels-title li:first-child {
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: .2em;
}

.solar-panels-title li + li {
    margin-left: 1.5em;
}

.maruichi-solar-panels {
    color: #469b28;
}

.yoshikawa-solar-panels {
    color: #1f599e;
}

.solar-panels {
    display: flex;
    flex-wrap: wrap;
    margin: 35px auto;
    justify-content: space-between;
    text-align: left;
    max-width: 980px;
}

.solar-panels::after {
    content: '';
    display: block;
    max-width: 313px;
    width: 100%;
}

.solar-panels > li {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    margin-bottom: 60px;
    max-width: 313px;
    width: 100%;
}

.solar-panels img {
    display: block;
    margin: 15px auto;
    max-width: 313px;
    height: auto;
}

.solar-panels h4 {
    border-bottom: solid 1px #ccc;
    font-family: 'Noto Sans JP Medium', sans-serif;
    letter-spacing: .2em;
    line-height: 1;
    padding: 10px 0 10px 15px;
    position: relative;
}

.solar-panels h4::before {
    background: url('../img/solar_panels_dots.png') no-repeat center center;
    content: '';
    display: block;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 6px;
    height: 6px;
}

.solar-panels li ul {
    display: flex;
    flex-wrap: wrap;
}

.solar-panels li ul > li {
    display: inline-block;
    width: 50%;
}

.solar-panels li ul > li:first-child {
    width: 100%;
}

/* rental page
------------------------------------ */

.outline-detail-body.rental {
    padding-bottom: 100px;
}

.rental-panels {
    display: flex;
    justify-content: space-between;
    text-align: left;
}

.rental-panels li {
    border: solid 1px #ddd;
    max-width: 313px;
    width: 100%;
}

.rental-panels img {
    display: block;
    margin: 6px auto;
    max-width: 300px;
    height: auto;
}

.rental-panels h4 {
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.6rem;
    letter-spacing: .05em;
    line-height: 1;
    margin: 20px auto;
    text-align: center;
}

.rental-panels p {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 1.8;
    margin-bottom: 2em;
    padding:  0 1em;
}

/*------------------------------------------------------------
    works
------------------------------------------------------------*/

/* list page
------------------------------------ */

.works-category-list {
    font-size: 1.2rem;
    margin: 50px auto;
}

.works-category-list a:link,
.works-category-list a:visited {
    color: #888;
    display: inline-block;
    margin: 0 20px;
    padding: 10px;
}

.works-category-list a:active,
.works-category-list a:hover {
    color: #222;
}

.works-category-list a.selected {
    color: #222;
    border-bottom: solid 1px #479c29;
}

#works-items {
    margin: auto;
    padding-bottom: 60px;
    min-width: 300px;
    max-width: 1000px;
    min-height: 290px;
    max-height: 980px;
    width: 100%;
}

#works-items::after {
    content: '';
    display: block;
    /*width: 33%;*/
    clear: both;
}

.works-item {
    float: left;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.2;
    padding: 0 10px;
    text-align: left;
}

.works-item:nth-child(n+4) {
    margin-top: 40px;
}

.works-item a {
    display: block;
}

.works-item img {
    display: block;
    width: 100%;
    height: auto;
}

.works-item-tag {
    color: #469b28;
    display: block;
    font-size: 1.3rem;
    letter-spacing: .2em;
    padding-top: 1.5em;
}

.works-item-title {
    margin: 10px 0;
}

/* detail page
------------------------------------ */

.works-detail-body {
    margin: auto;
    padding: 50px 0 25px 0;
    text-align: left;
    max-width: 800px;
    min-width: 300px;
    width: 100%;
}

.works-detail-title {
    border-bottom: solid 1px #ddd;
    color: #2c2625;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .2em;
    line-height: 30px;
    margin-bottom: 20px;
    padding-bottom: 5px;
    padding-left: 1em;
    position: relative;
}

.works-detail-title::before {
    background: #479c29;
    content: '';
    display: block;
    width: 4px;
    height: 30px;
    position: absolute;
    top: 0;
    left: 0;
}

.works-detail-gallery {
    margin-bottom: 100px;
}

#works-gallery-main img {
    display: block;
    width: 100%;
    height: auto;
}

#works-gallery-thumb {
    margin-top: 10px;
}

#works-gallery-thumb li {
    padding: 5px;
    position: relative;
    width: 20%;
    /*display: flex;*/
}

#works-gallery-thumb li.slick-current::after {
    border: solid 5px #479c29;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#works-gallery-thumb img {
    display: block;
    width: 100%;
    height: auto;
}

.works-detail-data {
    border: solid 1px #ddd;
    border-collapse: collapse;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    vertical-align: middle;
}

.works-detail-data th,
.works-detail-data td {
    border: solid 1px #ddd;
    padding-top: 1em;
    padding-bottom: 1em;
}

.works-detail-data th {
    background: #f5f5f5;
    font-weight: bold;
    text-align: center;
    width: 20%;
}

.works-detail-data td {
    padding-right: 2em;
    padding-left: 2em;

    text-align: justify;
    text-justify: inter-ideograph;
}

.works-detail-data p {
    margin: 1em 0;
}

.works-home-button:link,
.works-home-button:visited {
    background: #479c29;
    border: solid 1px transparent;
    border-radius: 3px;
    box-sizing: border-box;
    color: #fff;
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.3rem;
    letter-spacing: .2em;
    line-height: 38px;
    margin: 80px auto;
    position: relative;
    text-align: center;
    max-width: 280px;
    width: 100%;
    height: 40px;
}

.works-home-button:active,
.works-home-button:hover {
    background: #222;
    transition: 0.3s;
}


/*------------------------------------------------------------
    company
------------------------------------------------------------*/

/* common
------------------------------------ */

.company-detail-body {
    margin: auto;
    max-width: 980px;
    width: 100%;
}

.company-navi {
    display: flex;
    justify-content: center;
    margin: 45px auto;
}

.company-navi li {
    padding: 0 1.5em;
    position: relative;
}

.company-navi li:first-child {
    padding-left: 0;
}

.company-navi li:last-child {
    padding-right: 0;
}

.company-navi li + li::before {
    background: #ccc;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
    transform: rotate(20deg);
}

.company-navi a:link,
.company-navi a:visited,
.company-navi a:active,
.company-navi a:hover {
    color: #202020;
    display: block;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 3;
    padding: 0 .5em;
}

.vision .company-navi li:nth-child(1) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.profile .company-navi li:nth-child(2) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.history .company-navi li:nth-child(3) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.center .company-navi li:nth-child(4) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.group .company-navi li:nth-child(5) a {
    border-bottom: solid 2px #479c23;
    cursor: default;
}

.company-title-line {
    color: #4c9b22;
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.4rem;
    letter-spacing: .3em;
    line-height: 1;
    margin: 0 auto 60px auto;
    position: relative;
    text-align: center;
    max-width: 950px;
    width: 100%;
}

.company-title-line h2 {
    background: #fff;
    display: inline-block;
    margin: auto;
    padding:  0 2em;
    position: relative;
    z-index: 5;
}

.company-title-line::before {
    background: #ddd;
    content: '';
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
}

.company-title-line span {
    color: #333;
    display: block;
    font-family: 'BrandonGrotesque Light', sans-serif;
    font-size: 1rem;
    letter-spacing: .3em;
    margin: auto;
    position: absolute;
    top: 3.5em;
    right: 0;
    left: 0;
}

.company-title-text {
    color: #202020;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    margin: auto;
    text-align: left;
}

.company-title-text p + p {
    margin-top: 1em;
}

.company-table {
    color: #202020;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    margin: 0 auto 100px auto;
    max-width: 800px;
    width: 100%;
}

.company-table th,
.company-table td {
    padding: 1.65em;
    vertical-align: middle;
}

.company-table th {
    border-bottom: solid 1px #479c23;
    text-align: center;
    width: 20%;
}

.company-table td {
    border-bottom: solid 1px #ddd;
    padding-right: 3.5em;
    padding-left: 3.5em;
    text-align: left;
}

.company-table td.td-alt {
    padding-right: 0;
    padding-left: 0;
}

.company-table td.td-alt ul {
    padding-right: 3.5em;
    padding-left: 3.5em;
}

.company-table ul {
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
}

.company-table ul + ul {
    border-top: dotted 1px #ccc;
    margin-top: 1em;
    padding-top: 1em;
}

.company-table ul.disc li {
    margin-left: 1em;
    text-indent: -1em;
}

.company-table li + li {
    margin-top: 1.5em;
}

.company-table span {
    display: block;
    font-weight: bold;
}

.company-table a:link,
.company-table a:visited {
    color: #469a27;
    text-decoration: underline;
}

.company-table a:active,
.company-table a:hover {
    text-decoration: none;
}

/* index page
------------------------------------ */

.company-body {
    padding-bottom: 60px;
}

.company-greeting-area {
    background: #eee url('../img/company_2president_yoko.png') no-repeat center top;
    margin-bottom: 50px;
    /*padding: 90px 0 45px 125px;*/
    text-align: left;
}

.company-greeting-area h2 {
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.4rem;
    letter-spacing: .1em;
    line-height: 1.6;
    padding: 40px 0 0px 40px;
    text-align: center;
}

.company-greeting-area p {
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .2em;
    line-height: 1.8;
    margin: 15px 0 0px 0;
    padding: 0px 0 60px 50px;
    text-align: center;
}

.company-greeting-area .ceo-name {
    text-align: right;
    max-width: 480px;
}

.company-read-title {
    color: #4c9b22;
    display: block;
    font-family: 'Oswald', sans-serif;
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: .35em;
    line-height: 1;
    margin: 0 auto;
    position: relative;
    max-width: 950px;
    width: 100%;
}

.company-read-title span {
    background: #fff;
    display: inline-block;
    margin: auto;
    padding:  0 1em;
    position: relative;
    z-index: 5;
}

.company-read-title::before {
    background: #ddd;
    content: '';
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
}

.company-read-text {
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 2;
    margin: 40px auto 0 auto;
    text-align: left;
    max-width: 780px;
    width: 100%;
}

.company-list-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: auto;
    max-width: 780px;
    width: 100%;
}

.company-list-container::after{
    content: '';
    display: block;
    width: 360px;
}

.company-photo {
    width: 360px;
    height: 200px;
}

.company-photo::before {
    background: rgba(0, 0, 0, .5);
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
}


/* vision page
------------------------------------ */

.vision-action-text {
    max-width: 810px;
    width: 100%;
}

.vision-action-image {
    display: block;
    margin: 50px auto 100px auto;
    max-width: 100%;
}

.vision-credo-text {
    max-width: 780px;
    width: 100%;
}

.vision-credo-image {
    display: block;
    margin: 50px auto 100px auto;
    max-width: 100%;
}

/* profile page
------------------------------------ */

.company-profile-greeting {
    display: flex;
    justify-content: space-between;
    margin-bottom: 120px;
    text-align: left;
}

.company-profile-greeting-text {
    position: relative;
}

.company-profile-greeting-text h2 {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 2.2rem;
    letter-spacing: .3em;
    line-height: 1.6;
}

.company-profile-greeting-text p {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.5;
    margin-top: 1.1em;
    max-width: 500px;
}
.company-profile-greeting-text h3{
max-width: 500px; 
text-align: justify; 
letter-spacing: 0.2em;
}

.company-profile-greeting-name {
    display: block;
    object-fit: contain;
    position: absolute;
    right: 0;
    bottom: 0;
    max-width: 100%;
}

.company-profile-greeting-photo {
    display: block;
    object-fit: contain;
    max-width: 100%;
}

.company-iso {
    display: flex;
    justify-content: space-between;
    margin: 0 auto 80px auto;
    text-align: left;
    max-width: 800px;
    width: 100%;
}

.company-iso-title {
    border-bottom: dotted 1px #ccc;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 20px;
    padding-bottom: 8px;
    padding-left: 13px;
    position: relative;
    max-width: 450px;
}

.company-iso-title span {
    color: #469b28;
}

.company-iso-title::before {
    background: #479c29;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 40px;
}

.company-iso p {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 1.8;
    margin-top: 30px;
    max-width: 450px;
}

.company-iso-image {
    display: block;
    object-fit: contain;
    max-width: 100%;
}

.map-container {
    margin: 20px auto 120px auto;
    max-width: 1000px;
    width: 100%;
}

#map-selector {
    border-bottom: solid 4px #479c23;
    color: #202020;
    display: flex;
    justify-content: space-between;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.3rem;
    letter-spacing: .1em;
    line-height: 3.75em;
    text-align: center;
}

#map-selector li {
    background: #f0f0f0;
    cursor: pointer;
    display: block;
    width: 100%;
}

#map-selector li.current {
    background: #479c23;
    color: #fff;
    cursor: default;
}

#map-selector li + li {
    border-left: 1px solid #fff;
}

/* center page
------------------------------------ */

.center-buttons {
    display: flex;
    justify-content: center;
}

.center-buttons li {
    margin: 0 25px;
}

.center-buttons a:link,
.center-buttons a:visited {
    background: #e6e6e6;
    color: #222;
    display: block;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.3rem;
    letter-spacing: .05em;
    line-height: 100px;
    text-align: center;
    width: 100px;
    height: 100px;
}

.center-buttons a:active,
.center-buttons a:hover {
    background: #479c29;
    color: #fff;
}

section#office,
section#center {
    padding-top: 60px;
}

.office-buttons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.office-buttons li {
    background: #f7f7f7;
    margin-bottom: 20px;
    position: relative;
    width: 16.6%;
}

.office-buttons li + li:not(:nth-child(7n))::before {
    background: #ddd;
    content: '';
    display: block;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    height: 22px;
}

.office-buttons a:link,
.office-buttons a:visited {
    background: #f7f7f7;
    color: #222;
    display: block;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.3rem;
    letter-spacing: .05em;
    line-height: 3.3em;
    text-align: center;
}

.office-buttons a:active,
.office-buttons a:hover {
    background: #479c29;
    color: #fff;
}

.group-map-container {
    margin: 0 auto 30px auto;
    padding-top: 20px;
    text-align: left;
    max-width: 950px;
    width: 100%;
}

.group-map-container h3 {
    border-bottom: solid 1px #ddd;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 1;
    padding-bottom: 15px;
    position: relative;
}

.group-map-container h3::after {
    background: #479c29;
    content: '';
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 120px;
    height: 1px;
    z-index: 5;
}

.group-map-container div {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.3rem;
    line-height: 1.6;
    padding: 1em 0;
}

.group-map-photo {
    display: flex;
    justify-content: space-between;
}

.group-map-photo a {
    display: block;
    width: 300px;
    height: 200px;
}

.group-map-photo img {
    display: block;
    object-fit: cover;
    width: 100%;
    height: 100%;
}


#center p {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 2;
    margin-top: 1.5em;
    text-align: left;
}

.center-area {
    padding-top: 60px;
}

.center-area h3 {
    border-bottom: solid 1px #ddd;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.8rem;
    font-weight: bold;
    margin: 0 auto 60px auto;
    padding-bottom: 15px;
    position: relative;
    max-width: 450px;
    width: 100%;
}

.center-area h3::after {
    background: #479c29;
    content: '';
    display: block;
    margin: auto;
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    width: 120px;
    height: 1px;
    z-index: 5;
}

.center-area-container {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: auto;
    max-width: 950px;
    width: 100%;
}

.center-area-item {
    margin-bottom: 40px;
    text-align: left;
    max-width: 450px;
}

.center-area-item h4 {
    border-bottom: solid 1px #ddd;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 1;
    padding-bottom: 15px;
    position: relative;
}

.center-area-item h4::after {
    background: #479c29;
    content: '';
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 120px;
    height: 1px;
    z-index: 5;
}

.center-area-item img {
    display: block;
    margin: 20px auto 10px auto;
    max-width: 100%;
    height: auto;
}

.center-area-item ul {
    display: flex;
    line-height: 2;
    flex-wrap: wrap;
}

.center-area-item li {
    display: inline-block;
    width: 50%;
}

.center-area-item li:first-child {
    width: 100%;
}

.center-area-item li:nth-child(2)::before {
    content: '面積：';
}

.center-area-item li:nth-child(3)::before {
    content: '保有機材量：';
}

.center-area-item a:link,
.center-area-item a:visited {
    color: #469a27;
    text-decoration: underline;
}

.center-area-item a:active,
.center-area-item a:hover {
    text-decoration: none;
}


/* group page
------------------------------------ */

.company-detail-body.group {
    text-align: left;
    max-width: 800px;
    width: 100%;
}

.group-header-text {
    margin: auto;
    max-width: 780px;
    width: 100%;
}

.company-title-group {
    border-bottom: dotted 1px #ccc;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .2em;
    line-height: 30px;
    margin: 60px auto 30px auto;
    padding-bottom: 8px;
    padding-left: 13px;
    position: relative;
}

.company-title-group::before {
    background: #479c29;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 30px;
}


.company-group {
    display: flex;
    flex-direction: row-reverse;
    margin-bottom: 60px;
}

.company-group-text {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .1em;
    line-height: 2;
}

.company-group-text h3 {
    color: #469b28;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 1.6;
    margin-bottom: 1em;
}

.company-group-text a:link {
    margin: 30px 0 0 0;
}

.company-group-image {
    display: block;
    object-fit: contain;
    margin-right: 30px;
    max-width: 100%;
}


.company-detail-body .company-table tr:first-child th {
    border-top: solid 1px #479c23;
}

.company-detail-body .company-table tr:first-child td {
    border-top: solid 1px #ddd;
}


/*------------------------------------------------------------
    contact
------------------------------------------------------------*/

.form-container a:link,
.form-container a:visited {
    color: #000;
    text-decoration: underline;
}

.form-container a:active,
.form-container a:hover {
    color: #479c29;
    text-decoration: none;
}

.form-item {
    display: table;
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: .1rem;
    padding: 18px 0 18px 25px;
    width: 100%;
}

.form-item + .form-item {
    border-top: solid 1px #e5e5e5;
}

.form-container .need::after {
    color: #479c29;
    content: '※';
    font-size: 1.1rem;
    font-weight: bold;
    padding-left: .5em;

    display: inline-block;
    margin-left: .75em;
    padding: 0 3px;
    text-align: center;
}

.form-item-title {
    display: table-cell;
    line-height: 1.7rem;
    vertical-align: middle;
    width: 22rem;
}

.form-item-title-caption {
    font-size: 1.2rem;
    margin-right: 4em;
}

.form-item span {
    display: inline-block;
    padding: 0 .5em;
    text-align: center;
}

.form-item-body {
    display: table-cell;
    line-height: 1.7rem;
    vertical-align: middle;
}

.form-item-title br,
.form-item-body br {
    display: none;
}

.form-container label {
    cursor: pointer;
}

.form-container input,
.form-container select,
.form-container textarea,
.form-container button {
    background: #eee;
    border: none;
    border-radius: 2px;
}

.form-container input[type="file"] {
    background: none;
    border: none;
}

.form-container input[type="text"],
.form-container input[type="email"] {
    line-height: 3.5rem;
    padding: 0 .5em;
    max-width: 480px;
    min-width: 300px;
    width: 100%;
    height: 2.7em;
}

.form-container input[type="text"].input-short {
    max-width: 180px;
    min-width: 100px;
}

.form-container select {
    height: 3.5rem;
}

.form-container textarea {
    line-height: 1.75;
    padding: .5em;
    min-height: 12em;
    width: 100%;
}

.form-container input[type="radio"],
.form-container input[type="checkbox"] {

}

.form-container input[type="submit"],
.form-container input[type="reset"],
.form-container button {
    background: #479c29;
    color: #fff;
    cursor: pointer;
    display: block;
    font-size: 1.4rem;
    letter-spacing: .2rem;
    line-height: 4rem;
    margin: 0 auto 40px auto;
    position: relative;
    width: 300px;
}

.form-container button:active,
.form-container button:hover {
    background: #222;
}

.form-container input[type="submit"],
.form-container input[type="reset"] {
/*    -webkit-appearance: none;
    appearance: none;
    background: transparent !important;
    position: absolute;*/
}

.form-attention {
    border-top: solid 1px #e5e5e5;
    padding: 40px 0;
    text-align: center;
}

.form-container button:before {
    content: '\f105';
    font-family: 'FontAwesome';
    margin: auto;
    position: relative;
    left: -.5em;
}


.form-container .confirm {
    display: table;
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: .1rem;
    padding: 15px 0 15px 25px;
    width: 100%;
}

.form-container .confirm + .confirm {
    border-top: solid 1px #e5e5e5;
}

.label-radio + .label-radio {
    margin-left: 1em;
}

.label-checkbox {
    display: inline-block;
    margin: .5em 0;
    min-width: 8.5em;
}



/* confirm
------------------------------------ */

.confirm-attention {
    border-bottom: solid 1px #e5e5e5;
    font-size: 1.4rem;
    line-height: 2;
    padding: 15px 25px;
    text-align: center;
}

.confirm-attention span {
    color: #479c29;
    font-weight: bold;
}


.confirm-title {
    border: none;
    border-radius: 2px;
    display: table-cell;
    line-height: 1.6;
    padding: 0 .5em;
    vertical-align: middle;
    width: 33%;
}

.confirm-body {
    border: none;
    border-radius: 2px;
    display: table-cell;
    line-height: 1.6;
    padding: 0 .5em;
    vertical-align: middle;
}

.confirm-buttons {
    border-top: solid 1px #e5e5e5;
    padding: 40px 0;
    text-align: center;
}

.form-container button.cancel {
    background: #888;
    display: inline-block;
    margin-right: 100px;
}

.form-container button.send {
    display: inline-block;
}

/* index
------------------------------------ */

.contact-header {
    padding: 50px 0;
    text-align: center;
}

.contact-header p {
    font-size: 1.4rem;
    letter-spacing: .1rem;
    line-height: 2;
}

.contact-header p + p {
    margin-top: 2em;
}

.contact-header span,
.contact-attention span {
    color: #479c29;
    font-weight: bold;
}

.contact-attention {
    border-bottom: solid 1px #e5e5e5;
    font-size: 1.3rem;
    line-height: 1.8;
    padding: 15px 25px;
}

/*
.contact-header a:link,
.contact-header a:visited,
.contact-header a:active,
.contact-header a:hover,
.contact-body a:link,
.contact-body a:visited,
.contact-body a:active,
.contact-body a:hover {
    color: #A37E39;
}
*/

.contact-header a:link,
.contact-header a:visited {
    color: #222;
    text-decoration: underline;
}

.contact-header a:active,
.contact-header a:hover {
    color: #479c29;
    text-decoration: none;
}

.main-contents + .contact-body {
    margin-top: 40px;
}

.contact-body {
    border-top: solid 1px #e5e5e5;
    border-bottom: solid 1px #e5e5e5;
    display: block;
    font-size: 1.3rem;
    margin: 0 auto 40px auto;
    max-width: 960px;
    min-width: 300px;
    width: 100%;
}

.contact-form {
    border-bottom: none;
}

.contact-title {
    border-bottom: solid 1px #e5e5e5;
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: .2rem;
    line-height: 1;
    padding: 15px 25px;
    text-align: left;
}

.contact-attention {
    border-bottom: solid 1px #e5e5e5;
    font-size: 1.3rem;
    letter-spacing: .1rem;
    line-height: 1;
    padding: 15px 25px;
    text-align: left;
}

.contact-attention span {
    color: #479c29;
    font-weight: bold;
}

.contact-detail {
    text-align: left;
}

.contact-phone-number,
.contact-mail-address {
    color: #000;
    float: left;
    font-family: 'Yantramanav', sans-serif;
    font-weight: bold;
    font-size: 2.2rem;
    line-height: 4.2rem;
    margin: 25px;
    padding-right: 15px;
}

.contact-mail-address a:link,
.contact-mail-address a:visited {
    color: #000;
    text-decoration: none;
}

.contact-mail-address a:active,
.contact-mail-address a:hover {
    color: #A37E39;
    text-decoration: underline;
}

.contact-phone-number {
    color: #4c9b22;
    font-family: 'Oswald', sans-serif;
    font-size: 3.2rem;
    font-weight: normal;
}

.contact-phone-number:before {
    content: 'TEL.';
    display: inline-block;
    font-family: 'Oswald', sans-serif;
    font-size: 2rem;
}

.contact-phone-number::after {
    content: '(代)';
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 2.8rem;
}

.contact-info {
    border-left: dotted 1px #ccc;
    float: left;
    font-size: 1.3rem;
    line-height: 1.4rem;
    margin: 25px 0;
    padding-left: 20px;
}

.contact-info li + li {
    margin-top: 1em;
}

.contact-info li:first-child:before {
    color: #4c9b22;
    content: '【受付時間】';
    font-weight: bold;
}

.contact-header .contact-header-post {
    font-size: 1.3rem;
    margin: 40px auto 0 auto;
    max-width: 940px;
    min-width: 290px;
    text-align: left;
}

.contact-header .contact-header-post .caution {
    color: #bf0000;
    font-size: 1.2rem;
}

.contact-header .contact-header-post p {
    font-size: 1.3rem;
    letter-spacing: .1rem;
}

.contact-progress {
    display: flex;
    line-height: 1;
    margin: 30px 25px 15px 25px;
}

.contact-progress li {
    background: #f5f5f5;
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: .2em;
    line-height: 50px;
    margin-right: 25px;
    padding-left: 15px;
    position: relative;
    min-width: 230px;
}

.contact-progress li::before {
    border-top: solid 25px transparent;
    border-right: solid 25px transparent;
    border-bottom: solid 25px transparent;
    border-left: solid 25px #fff;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 2px;
    width: 0;
    height: 0;
    z-index: 0;
}

.contact-progress li::after {
    border-top: solid 25px transparent;
    border-right: solid 25px transparent;
    border-bottom: solid 25px transparent;
    border-left: solid 25px #f5f5f5;
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: -50px;
    width: 0;
    height: 0;
    z-index: 1;
}

.contact-progress li:first-child::before {
    content: none;
}

.contact-progress li:last-child::after {
    content: none;
}

.contact-progress li.progress-checked {
    background: #479c29;
    color: #fff;
}

.contact-progress li.progress-checked::after {
    border-left: solid 25px #479c29;
}

.contact-progress li + li {
    margin-left: -25px;
}









/*------------------------------------------------------------
    company
------------------------------------------------------------*/

.company-image {
    margin: auto;
    padding: 50px 0 35px 0;
    max-width: 1280px;
    width: 100%;
    height: auto;
}

.company-image img {
    display: block;
    width: 100%;
    height: auto;
}

.company-container {
    margin: auto;
    max-width: 980px;
    text-align: left;
}

.company-container + .company-container {
    margin-top: 90px;
}

.company-container > h2 {
    color: #333;
    font-family: 'Reem Kufi', sans-serif;
    font-size: 2.4rem;
    font-weight: bold;
    letter-spacing: .3em;
    line-height: 1;
}

.company-container > p {
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .3em;
    margin: 15px 0 25px 0;
}

.accessmap-container h3 {
    font-size: 1.4rem;
    font-weight: bold;
}

.accessmap-container address {
    font-size: 1.3rem;
    letter-spacing: .15em;
    line-height: 1;
    margin: 15px 0;
}

.accessmap-container + .accessmap-container {
    margin-top: 80px;
}

.accessmap-container:last-child {
    /*padding-bottom: 140px;*/
}

.googlemap-container {
    background: #fff;
    border: solid 1px #ddd;
    padding: 5px;
}

/*------------------------------------------------------------
    entry
------------------------------------------------------------*/

.recruit-index-header {
    margin: 75px auto 125px auto;
    max-width: 1000px;
}

.recruit-index-header:before {
    border: solid 1px #000;
    border-bottom: none;
    content: '';
    display: block;
    width: 100%;
    height: 20px;
}

.recruit-index-header:after {
    border: solid 1px #000;
    border-top: none;
    content: '';
    display: block;
    width: 100%;
    height: 20px;
}

.recruit-index-header p {
    font-size: 1.4rem;
    line-height: 1.8;
    margin: 25px auto;
    text-align: center;
}

.recruit-index-button {
    display: flex;
    justify-content: space-between;
    margin: 50px auto 70px auto;
    max-width: 920px;
}

.recruit-index-button li {
    background: #fff;
    border: solid 10px #479c29;
    box-sizing: border-box;
    max-width: 450px;
    width: 100%;
}

.recruit-index-button a:link,
.recruit-index-button a:visited,
.recruit-index-button a:active,
.recruit-index-button a:hover {
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1;
    margin: 20px auto 15px auto;
    text-align: center;
}

.recruit-index-button span {
    color: #479c29;
    display: block;
    font-size: 1.4rem;
    font-weight: normal;
    margin-top: 5px;
}

.entry-tab {
    display: flex;
    justify-content: center;
    margin: 0 auto 90px auto;
    max-width: 980px;
}

.entry-tab li {
    width: 50%;
    height: 70px;
}

.entry-tab a {
    background: #fff;
    border: solid 1px #ddd;
    box-sizing: border-box;
}

.entry-tab a:link,
.entry-tab a:visited {
    display: block;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 2rem;
    font-weight: bold;
    line-height: 70px;
    text-align: center;
}

.entry-tab .current:link,
.entry-tab .current:visited {
    background: #479c29;
    border-color: #479c29;
    color: #fff;
    font-weight: normal;
}

.entry-step {
    margin: auto;
    max-width: 800px;
}

.entry-step-newgraduate,
.entry-step-career {
    display: none;
}

.entry-step li {
    background: #fff;
    border: solid 5px #479c29;
    box-sizing: border-box;
    display: table;
    width: 100%;
    min-height: 120px;
}

.entry-step li + li {
    margin-top: 35px;
}

.entry-step li > div {
    display: table-cell;
    vertical-align: middle;
}

.entry-step li > div > p {
    padding: 0 25px 0 30px;
    line-height: 1.45;
    text-align: left;
}

.entry-step-th {
    background: #479c29;
    color: #fff;
    position: relative;
    width: 18.75%;
}

.entry-step-th:after {
    border-right: solid 6px transparent;
    border-top: solid 6px transparent;
    border-bottom: solid 6px transparent;
    border-left: solid 6px #479c29;
    content: '';
    display: block;
    margin: auto;
    position: absolute;
    top: 0;
    right: -12px;
    bottom: 0;
    width: 0;
    height: 0;
}

.entry-step-th h3:before {
    content: 'STEP';
    display: block;
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 0.05em;
}

.entry-step-th h3 {
    font-family: 'Noto Sans JP Bold', sans-serif;
    font-size: 5rem;
    letter-spacing: 0.025em;
    line-height: 1;
}

.entry-step-th h3 span {
    display: block;
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin-top: 5px;
}

.entry-step li:last-child div:last-child {
    background: #479c29;
    color: #fff;
    font-family: 'Noto Sans JP Bold', sans-serif;
    font-size: 3rem;
    padding-right: 18.75%;
}

.entry-step-attention {
    margin: auto;
    max-width: 800px;
    padding-top: 1em;
    padding-bottom: 100px;
    text-align: left;
}


/*  application guidelines
------------------------------ */

.guidelines-container {
    margin: auto;
    padding: 60px 0 120px 0;
    max-width: 980px;
}

.guidelines-header {
    border-bottom: solid 1px #ddd;
    color: #4d4012;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 40px;
    padding-bottom: 10px;
    text-align: left;
}

.guidelines-footer {
    background: #479c29;
    border-radius: 3px;
    display: block;
    line-height: 40px;
    margin: 60px auto 0 auto;
    position: relative;
    text-align: center;
    max-width: 400px;
    height: 40px;
}

.guidelines-footer span {
    color: #fff;
}

.guidelines-footer i {
    color: #fff;
    display: block;
    margin: auto;
    position: absolute;
    top: 0;
    right: 15px;
    bottom: 0;
    width: 1em;
    height: 1em;
}

/*  entry form
------------------------------ */

.entry-form-title {
    border-bottom: solid 1px #ddd;
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 40px;
    padding-bottom: 10px;
    text-align: left;
}

.entry-form-attention {

}

.form-container {
    margin: auto;
    max-width: 980px;
}

.form-container .heading-texts span {
    background: #fbf55e;
    display: inline-block;
}

.form-container .heading-texts a:link,
.form-container .heading-texts a:visited {
    color: #4c851d;
    text-decoration: underline;
}

.form-container .heading-texts a:active,
.form-container .heading-texts a:hover {
    text-decoration: none;
}

.form-box {
    background: #fff;
    border: solid 1px #ccc;
    color: #4d4012;
    text-align: left;
}

.form-box + .form-box {
    margin-top: 50px;
}

.form-box h3 {
    background: #f7f5ed;
    border-bottom: solid 1px #ccc;
    color: #4d4012;
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 3;
    padding-left: 10px;
}

.entry-form-attention {
    color: #c00;
    text-align: left;
    margin-bottom: 20px;
    margin-top: -20px;
}

.entry-table {
    margin: 30px 0;
    max-width: 980px;
    width: 100%;
}

.entry-table th {
    font-weight: bold;
    padding-left: 20px;
    vertical-align: middle;
    width: 18.75%;
    height: 35px;
}

.entry-table td {
    display: table;
    margin: 10px 0;
}

.entry-table div {
    display: table-cell;
    vertical-align: middle;
    max-width: 750px;
}

.entry-table input[type="text"],
.entry-table select,
.entry-table option {
    border: solid 1px #ccc;
    border-radius: 3px;
    display: inline-block;
    line-height: 32px;
}

.entry-table select {
    padding: 6px 0;
}

.entry-table option {
    display: block;
}

.entry-table span {
    display: inline-block;
    padding: 0 .75em;
    text-align: center;
}

.entry-table span.form-table-caption {
    font-size: 1.1rem;
    padding: .75em .25em;
    text-align: left;
}

.entry-table .form-input-name div:last-child span {
    text-align: right;
    min-width: 4em;
}

.input-text-s {
    width: 210px;
}

.input-text-l {
    max-width: 750px;
    width: 100%;
}

.form-input-wide {
    width: 100%;
}

.form-input-radio div + div > label {
    margin-left: 2em;
}

.form-input-radio input[type="text"] {
    width: 300px;
}

.form-input-zip input {
    width: 120px;
}

.zip-search {
    background: #479c29;
    border: none;
    border-radius: 3px;
    color: #fff;
    font-size: 1.3rem;
    line-height: 34px;
    margin-left: 1.25em;
    width: 110px;
}

.form-select-pref select {
    min-width: 120px;
}

.entry-table .form-input-check {
    display: table-cell;
    margin: 0;
    padding-left: 20px;
    vertical-align: middle;
}

.entry-table .form-input-check div {
    display: block;
    margin: 10px 0;
}

.entry-table .form-input-check div:first-child {
    margin-bottom: 20px;
}

.form-footer {
    display: flex;
    justify-content: center;
    padding: 70px 0 130px 0;
}

.form-footer button {
    background: #479c29;
    border: 0;
    border-radius: 3px;
    color: #fff;
    cursor: pointer;
    font-family: 'Noto Sans JP Medium', sans-serif;
    font-size: 1.4rem;
    letter-spacing: .15em;
    line-height: 40px;
    margin: 0 10px;
    position: relative;
    min-width: 250px;
}

.form-footer button i {
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    height: 1em;
}

.form-footer button:first-child i {
    left: 1em;
}

.form-footer button:last-child i {
    right: 1em;
}

/*------------------------------------------------------------
    contact
------------------------------------------------------------*/


#contact .form-container a:link,
#contact .form-container a:visited {
    color: #4c851d;
    text-decoration: underline;
}

#contact .form-container a:active,
#contact .form-container a:hover {
    text-decoration: none;
}

#contact .form-footer button {
    cursor: pointer;
    max-width: 400px;
    width: 100%;
}

#contact .form-footer button i {
    right: 1em;
    left: initial;
}

.contact-table,
.contact-table tbody,
.contact-table tr,
.contact-table th,
.contact-table td {
    display: block;
}

.contact-table {
    margin: auto;
    padding-top: 30px;
    text-align: left;
    max-width: 750px;
}

.contact-table tr {
}

.contact-table th {
    font-family: 'Noto Sans JP Regular', sans-serif;
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1;
}

.contact-table .need:after {
    color: #cc201f;
    content: '（必須）';
}

.contact-table td {
}

.contact-table input,
.contact-table textarea {
    border: solid 1px #c4c6c2;
    border-radius: 3px;
    margin: 10px auto 20px auto;
    width: 100%;
}

.contact-table input {
    line-height: 3.5rem;
}

.contact-table textarea {
    line-height: 1.5;
    min-height: 200px;
}

.contact-policy-link {
    padding-top: 50px;
}

/*------------------------------------------------------------
    privacy-policy
------------------------------------------------------------*/

.policy-container .heading-texts {
    padding: 0 20px;
    text-align: left;
    max-width: 920px;
}

.heading-texts p + p {
    margin-top: 1em;
}

.policy-body {
    padding: 60px 0;
    margin: auto;
    text-align: left;
    min-width: 300px;
    max-width: 920px;
    width: 100%;
}

.policy-read-text {
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 1.8;
    margin-bottom: 40px;
    padding: 0 20px;
}

.policy-section {
    color: #1f1f1f;
    margin: auto;
    padding-bottom: 20px;
    text-align: left;
    max-width: 920px;
    min-width: 300px;
    width: 100%;
}

.policy-section h3 {
    background: #f0f0f0;
    border: solid 1px #c8c8c8;
    display: block;
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 3.5rem;
    margin-bottom: 20px;
    padding: 0 20px;
}

.policy-section p,
.policy-section ul {
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 1.8;
    margin-bottom: 2rem;
    padding: 0 20px;
}

.policy-section h4 {
    font-size: 1.5rem;
    font-weight: bold;
    letter-spacing: .1em;
    line-height: 1.8;
    padding: 0 20px;
}

.policy-section a:link,
.policy-section a:visited {
    color: #469a27;
    text-decoration: underline;
}

.policy-section a:active,
.policy-section a:hover {
    text-decoration: none;
}

/*nnn*/


.company-profile-greeting-text h3 {
    font-family: 'Noto Sans JP bold', sans-serif;
    font-size: 1.4rem;
    line-height: 1.6;
    color:#4c9b22;
}


.director_introduction{
    display:flex;
   flex-wrap:wrap;
    margin: 20px;
}

.director_introduction div{
   margin: 0px 20px 25px 0px;
    text-align: center;
}

.director_table td {
   width: 100px;
   vertical-align: middle;
}
.director_table {
margin-bottom:30px;
}