@charset "utf-8";

/*------------------------------------

------------------------------------*/
#mainVisual.index_mainVisual {}
#mainVisual.index_mainVisual .wrapper {
    overflow: hidden;
}
#mainVisual.index_mainVisual .background_mainVisual {
    position: relative;
}
#mainVisual.index_mainVisual .background_mainVisual:before {
    content: "";
    position: absolute;
    background-color: rgba(0,118,160,0.64);
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: block;
    z-index: 1;
}
#mainVisual.index_mainVisual .background_mainVisual img {
    object-fit: cover;
    object-position: center;
    width: 100%;
}

#mainVisual.index_mainVisual .image_mainVisual {
    position: absolute;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    top: 0;
    bottom: 0;
    z-index: 10;
}
#mainVisual.index_mainVisual .image_mainVisual > * {
    position: absolute;
    top: calc( var(--image_mainVisual_height) * 0.125);
    top: -webkit-calc( var(--image_mainVisual_height) * 0.125);
    -webkit-transform: rotate( 45deg);
    transform: rotate( 45deg);
    width: calc( var(--image_mainVisual_height) * 2);
    width: -webkit-calc( var(--image_mainVisual_height) * 2);
    height: calc( var(--image_mainVisual_height) * 2);
    height: -webkit-calc( var(--image_mainVisual_height) * 2);
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50 {
    display: block;
    width: calc( var(--image_mainVisual_height) * 1);
    width: -webkit-calc( var(--image_mainVisual_height) * 1);
    height: calc( var(--image_mainVisual_height) * 1);
    height: -webkit-calc( var(--image_mainVisual_height) * 1);
    overflow: hidden;
    position: relative;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50:before {
    content: "";
    position: absolute;
    top: -25%;
    left: -25%;
    right: -25%;
    bottom: -25%;
    z-index: 10;
    -webkit-transform: rotate( 45deg);
    transform: rotate( 45deg);
    display: block;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50.set_up:before {
    -webkit-transition: .5s;
    transition: .5s;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50.set_up.animation_gogo.method01:before {
    bottom: -500%;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50.set_up.animation_gogo.method02:before {
    left: -500%;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50.bgc_01:before {
    background-color: var(--color01);
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50.bgc_04:before {
    background-color: var(--color04);
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50 > img {
    object-fit: cover;
    object-position: center;
    -webkit-transform: rotate( -45deg) scale(1);
    transform: rotate( -45deg) scale(1);
    position: absolute;
    top: -25%;
    bottom: -25%;
    left: -25%;
    right: -25%;
    max-width: none;
    width: -webkit-fill-available;
    -webkit-transition-delay: .5s;
    transition-delay: .5s;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50.set_up.animation_gogo > img.set_up {
    -webkit-transform: rotate( -45deg) scale(1.1);
    transform: rotate( -45deg) scale(1.1);
}
#mainVisual.index_mainVisual .headline {
    position: absolute;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    top:50%;
}

@media only screen and (max-width: 767px) {
:root {
  --image_mainVisual_height: 25.3rem;
}
#mainVisual.index_mainVisual,
#mainVisual.index_mainVisual .background_mainVisual img {
    height: 40rem;
}

#mainVisual.index_mainVisual .image_mainVisual {
    left: calc( var(--image_mainVisual_height) * -1.05);
    left: -webkit-calc( var(--image_mainVisual_height) * -1.05);
}
#mainVisual.index_mainVisual .headline {
    right: 1.5rem;
}
    
    
}
@media only screen and (max-width: 575px) {
:root {
  --image_mainVisual_height: 15.0rem;
}
#mainVisual.index_mainVisual,
#mainVisual.index_mainVisual .background_mainVisual img {
    height: 30rem;
}
#mainVisual.index_mainVisual .headline {
    right: 0;
    text-shadow: 0 0 5px rgba(0,0,0,0.8), 0 0 5px rgba(0,0,0,0.8), 0 0 5px rgba(0,0,0,0.8);
    -webkit-text-stroke: 2px black;
    text-stroke: 2px black;
    paint-order: stroke;
}
#mainVisual.index_mainVisual .headline .text-right {
    text-align: center !important;
}
#mainVisual.index_mainVisual .image_mainVisual > * {
    top: 0;
    -webkit-transform: rotate( 0);
    transform: rotate( 0);
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50 > img {
    -webkit-transform: rotate( 0) scale(1);
    transform: rotate( 0) scale(1);
    width: 150%;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50:first-child {
    order: 1;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50:first-child + * {
    order: 4;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50:first-child + * + * {
    order: 3;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50:first-child + * + * {
    order: 2;
}
#mainVisual.index_mainVisual .image_mainVisual > * > .w-50.set_up.animation_gogo > img.set_up {
    -webkit-transform: rotate( 0) scale(1.1);
    transform: rotate( 0) scale(1.1);
}
}
@media print, screen and (min-width: 768px) {
:root {
  --image_mainVisual_height: 43.5rem;
}
#mainVisual.index_mainVisual,
#mainVisual.index_mainVisual .background_mainVisual img {
    height: 68.7rem;
    overflow: hidden;
}
#mainVisual.index_mainVisual .image_mainVisual {
    left: calc( var(--image_mainVisual_height) * -.75);
    left: -webkit-calc( var(--image_mainVisual_height) * -.75);
}
#mainVisual.index_mainVisual .headline {
    right: 4em;
}
    
}
@media print, screen and (min-width: 992px) {}
@media print, screen and (min-width: 1200px) {}











/*------------------------------------
私たちのビジョン
------------------------------------*/ 
#vision {}
#vision .background_image {}

@media only screen and (max-width: 767px) {
#vision .col-12 {
    text-shadow: 0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9);
}
#vision .background_image {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-top: calc( 20rem * -0.25);
    margin-top: -webkit-calc( 20rem * -0.25);
    margin-bottom: calc( 20rem * -0.55);
    margin-bottom: -webkit-calc( 20rem * -0.55);
}
#vision .background_image .container {
    width: 80vw;
}
#vision .background_image .method01 {
    max-width: 10vw;
    min-width: 10vw;
}
#vision .background_image .method02 {
    max-width: 20vw;
    min-width: 20vw;
}
#vision .background_image .method01 img,
#vision .background_image .method02 img {
    height: 20rem;
    min-height: 20rem;
    display: block;
    width: auto;
    object-fit: cover;
    max-width: fit-content;
}
#vision .background_image .method01 img {
    object-position: right bottom;
    float: right;
}
#vision .background_image .method02 img {
    object-position: left bottom;
    float: left;
}

}
@media only screen and (max-width: 575px) {
#vision .background_image {
    -webkit-transform: translateY(0);
    transform: translateY(0%);
    margin-top: calc( 20rem * 0.15);
    margin-top: -webkit-calc( 20rem * 0.15);
    margin-bottom: calc( 20rem * -0.05 );
    margin-bottom: -webkit-calc( 20rem * -0.05);
}
#vision .background_image .container {
    display: none;
}
#vision .background_image .method01 {
    max-width: 40vw;
    min-width: 40vw;
}
#vision .background_image .method02 {
    max-width: 60vw;
    min-width: 60vw;
}

}
@media print, screen and (min-width: 768px) {

#vision .background_image {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-top: calc( 20em * -0.25);
    margin-top: -webkit-calc( 20em * -0.25);
    margin-bottom: calc( 20em * -0.55);
    margin-bottom: -webkit-calc( 20em * -0.55);
}
#vision .background_image .container {
    min-width: 1030px;    
}
#vision .background_image .method01,
#vision .background_image .method02 {
    max-width: calc( ( 100vw - 1030px ) / 2);
    max-width: -webkit-calc( ( 100vw - 1030px ) / 2);   
    min-width: calc( ( 100vw - 1030px ) / 2);
    min-width: -webkit-calc( ( 100vw - 1030px ) / 2);    
}
#vision .background_image .method01 img,
#vision .background_image .method02 img {
    min-height: 20em;
    display: block;
    width: auto;
    object-fit: cover;
    object-position: right bottom;
}
#vision .background_image .method01 img {
    margin-left: -1em;
}
#vision .background_image .method02 img {
    object-position: left bottom;
    margin-left: -5em;
    max-width: fit-content;
}

    
}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {}
@media print, screen and (min-width: 992px) {}
@media print, screen and (min-width: 1200px) {}





/*------------------------------------
事業紹介
------------------------------------*/ 
#services {}
.services-items {
    position: relative;
    overflow: hidden;
}
.services-items .title {
    position: relative;
    z-index: 10;    
}
.services-items .title > a:after {
    content: "";
    width: 1000vw;
    height: 1000vw;
    position: absolute;
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    left:50%;
    top:50%;
}
.services-items .title > a .link {
    position: relative;
    width: 100%;
    display: block;
}
.services-items .title > a .link:after {
    content: "";
    position: absolute;
    right: .5em;
    width: .875em;
    height: .875em;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    top:50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 307.25 479.625"><path fill="%23f8b62d" d="M163.609,10.13L96.285,77.4,268.9,249.928,96.285,422.455l67.324,67.284L403.537,249.928Z" transform="translate(-96.281 -10.125)"/></svg>');
}

@media only screen and (max-width: 767px) {
#services .line-height_2em {
    text-shadow: 0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9),0 0 5px rgba(255,255,255,0.9);
}
#services .background_image {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-top: calc( 30rem * -0.25);
    margin-top: -webkit-calc( 30rem * -0.25);
    margin-bottom: calc( 30rem * -0.55);
    margin-bottom: -webkit-calc( 30rem * -0.55);
}
#services .background_image .container {
    width: 60vw;
}
#services .background_image .method01,
#services .background_image .method02 {
    max-width: 20vw;
    min-width: 20vw;
}
#services .background_image .method01 img,
#services .background_image .method02 img {
    height: 30rem;
    min-height: 30rem;
    display: block;
    width: auto;
    object-fit: cover;
    max-width: fit-content;
}
#services .background_image .method01 img {
    object-position: right bottom;
    float: right;
}
#services .background_image .method02 img {
    object-position: left bottom;
    float: left;
}

}
@media only screen and (max-width: 575px) {
#services .background_image {
    margin-top: calc( 25rem * 0.35);
    margin-top: -webkit-calc( 25rem * 0.35);
    margin-bottom: calc( 25rem * -0.55);
    margin-bottom: -webkit-calc( 25rem * -0.55);
}
#services .background_image .container {
    display: none;
}
#services .background_image .method01,
#services .background_image .method02 {
    max-width: 40vw;
    min-width: 40vw;
}
#services .background_image .method01 img,
#services .background_image .method02 img {
    height: 25rem;
    min-height: 25rem;
}

}
@media print, screen and (min-width: 768px) {
#services .background_image {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-top: calc( 20em * -0.3);
    margin-top: -webkit-calc( 20em * -0.3);
    margin-bottom: calc( 20em * -0.55);
    margin-bottom: -webkit-calc( 20em * -0.55);
}
#services .background_image .container {
    min-width: 1030px;    
}
#services .background_image .method01,
#services .background_image .method02 {
    max-width: calc( ( 100vw - 1030px ) / 2);
    max-width: -webkit-calc( ( 100vw - 1030px ) / 2);   
    min-width: calc( ( 100vw - 1030px ) / 2);
    min-width: -webkit-calc( ( 100vw - 1030px ) / 2);    
}
#services .background_image .method01 img,
#services .background_image .method02 img {
    min-height: 22em;
    display: block;
    width: auto;
    object-fit: cover;
}
#services .background_image .method01 img {
    object-position: right bottom;
    -webkit-transform: translateX(1.5em);
    transform: translateX(1.5m);
}
#services .background_image .method02 img {
    object-position: left bottom;
    -webkit-transform: translateX(1.0em);
    transform: translateX(1.0em);
}

    
}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
.services-items .title > a .link.set_up:after {
    -webkit-transition: .5s;
    transition: .5s;    
}
.services-items:hover .thumbnail img.set_up {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
}
.services-items:hover .title > a .link:after {
    right: -1.5em;
}
    
    
}
@media print, screen and (min-width: 992px) {
}
@media print, screen and (min-width: 1200px) {
}






/*------------------------------------

------------------------------------*/ 

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

}
@media only screen and (max-width: 575px) {

}
@media print, screen and (min-width: 768px) {


}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
   
}
@media print, screen and (min-width: 992px) {
}
@media print, screen and (min-width: 1200px) {
}












/*------------------------------------

------------------------------------*/ 

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

}
@media only screen and (max-width: 575px) {

}
@media print, screen and (min-width: 768px) {


}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
   
}
@media print, screen and (min-width: 992px) {
}
@media print, screen and (min-width: 1200px) {
}








/*------------------------------------

------------------------------------*/ 

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

}
@media only screen and (max-width: 575px) {

}
@media print, screen and (min-width: 768px) {


}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
   
}
@media print, screen and (min-width: 992px) {
}
@media print, screen and (min-width: 1200px) {
}










/*------------------------------------

------------------------------------*/ 

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

}
@media only screen and (max-width: 575px) {

}
@media print, screen and (min-width: 768px) {


}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
   
}
@media print, screen and (min-width: 992px) {
}
@media print, screen and (min-width: 1200px) {
}

