@charset "UTF-8";
/* CSS Document */

#mainVisual{
position: relative;
padding-top: calc(100vh - 130px);
background-color: #eeeeee;
overflow: hidden;
z-index: 1;
}
#mainVisual::before{
content: '';
display: block;
position: absolute;
left: 0;
bottom: -1px;
width: 100%;
height: 3px;
background-color: #ffffff;
z-index: 3;
}
#mainVisual::after{
content: '';
display: block;
position: absolute;
left: 0;
bottom: 0;
width: 100%;
padding-top: 11%;
background-image: url(../images/pagetitle_obj.svg);
background-repeat: no-repeat;
background-position: center bottom;
background-size: 100% 100%;
z-index: 4;
}
#mainCopy{
position: absolute;
top: 50%;
left: 0;
width: 100%;
transform: translateY(-50%);
font-size: 3rem;
line-height: 1.4;
text-align: center;
color: #ffffff;
font-weight: 700;
padding-bottom: 4%;
opacity: 0;
z-index: 2;
text-shadow: 5px 5px 10px rgba(0,0,0,0.50);
}
.animate #mainCopy{
opacity: 1;
transition: opacity 1200ms 500ms linear;
}
#mainCopy small{
display: block;
font-size: 43%;
font-weight: 500;
margin-top: 0.5em;
}
#homeSlide{
position: fixed;
top: 100px;
right: 0;
left: 0;
height: 100vh;
padding: 0 0 calc(2.5% + 30px);
z-index: 1;
}
#homeSlide ul li img{
width: 100%;
height: 100%;
object-fit: cover;
}

@media screen and (max-width: 999px){
#mainVisual{
padding-top: 50%;
}
#mainCopy{
font-size: min(5vw, 2rem);
padding-bottom: 4%;
text-shadow: 3px 3px 5px rgba(0,0,0,0.50);
}
#mainCopy small{
font-size: 50%;
}
#homeSlide{
top: 80px;
height: auto;
padding: 50% 0 0;
}
#homeSlide>ul{
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
}/*999*/





.homeTxt{
display: flex;
flex-direction: column;
align-items: flex-start;
}
.homeTxt h2{
position: relative;
font-size: 1.875rem;
line-height: 1.5;
font-weight: 700;
padding-bottom: 25px;
}
.homeTxt h2 small{
display: block;
font-size: 60%;
font-weight: 500;
}
.homeTxt h2::before{
content: '';
display: block;
position: absolute;
left: 0;
bottom: 0;
width: 40px;
height: 2px;
background-color: #387ebe;
}
.homeTxt p.lead{
margin-top: 1.5em;
}
.homeTxt p.btn{
margin-top: 30px;
}

@media screen and (max-width: 999px){
.homeTxt h2{
font-size: 1.75rem;
}
.homeTxt p.btn{
margin-top: 20px;
}
}/*999*/





#homeInformation{
padding: 100px 10px;
}
#homeInformation>div{
display: flex;
justify-content: space-between;
max-width: 1000px;
margin: 0 auto;
}
#homeInformationTxt{
width: calc(100% - 650px);
}
#homeInformationList{
width: 600px;
}
#homeInformationList ul li{
border-bottom: 1px solid #cccccc;
}
#homeInformationList ul li a{
display: flex;
justify-content: space-between;
padding: 22px 10px;
color: #333333;
text-decoration: none;
transition: color 100ms ease;
}
#homeInformationList ul li a:hover{
color: #67cecc;
}
#homeInformationList ul li a p.date{
width: 130px;
font-weight: 700;
}
#homeInformationList ul li a p.title{
width: calc(100% - 130px);
}

@media screen and (max-width: 999px){
#homeInformation{
padding: 50px 10px;
}
#homeInformation>div{
display: block;
}
#homeInformationTxt{
width: auto;
}
#homeInformationList{
width: auto;
margin-top: 10px;
}
#homeInformationList ul li a{
display: block;
padding: 22px 10px;
}
#homeInformationList ul li a p.date{
width: auto;
}
#homeInformationList ul li a p.title{
width: auto;
}
}/*999*/





#homeServices{
padding: 100px 0;
background-color: #ebf5e8;
background-image: url(../images/home_services_bg.png);
background-repeat: repeat;
background-position: left top;
background-size: 4px auto;
overflow: hidden;
}
#homeServicesContent{
display: flex;
flex-direction: row-reverse;
justify-content: space-between;
align-items: center;
max-width: 1000px;
margin: 0 auto;
}
#homeServicesContent figure{
position: relative;
flex: 1;
margin: 0 calc(50% - 50vw) 0 25px;
overflow: hidden;
border-bottom-left-radius: 30px;
border-top-left-radius: 30px;
padding-top: 30vw;
}
#homeServicesContent figure img{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
#homeServicesTxt{
width: 50%;
padding: 0 25px 0 10px;
}
#homeServicesTxt .tag{
margin-top: 2em;
font-size: 0.875rem;
}
#homeServicesTxt .tag ul{
display: flex;
flex-wrap: wrap;
}
#homeServicesTxt .tag ul li{
padding-right: calc(1em + 20px);
position: relative;
}
#homeServicesTxt .tag ul li::after{
content: '／';
width: 1em;
position: absolute;
top: 0;
right: 10px;
}
#homeServicesTxt .tag ul li:last-child{
padding-right: 0;
}
#homeServicesTxt .tag ul li:last-child::after{
content: none;
}
#homeServicesSlide{
overflow: hidden;
margin-top: 100px;
}
#homeServicesSlide>ul{
transition-timing-function: linear;
}
#homeServicesSlide>ul>li{
padding: 0 10px;
}
#homeServicesSlide>ul>li>a{
display: block;
color: #333333;
text-decoration: none;
transition: color 100ms ease;
}
#homeServicesSlide>ul>li>a:hover{
color: #67cecc;
}
#homeServicesSlide ul li figure{
position: relative;
padding-top: 66.66%;
border-radius: 20px;
overflow: hidden;
transition: opacity 100ms ease;
}
#homeServicesSlide ul li a:hover figure{
opacity: 0.7;
}
#homeServicesSlide ul li figure img{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
#homeServicesSlide ul li p{
font-size: 0.75rem;
line-height: 1.5;
margin-top: 1em;
padding: 0 5px;
}

@media screen and (max-width: 999px){
#homeServices{
padding: 50px 0;
}
#homeServicesContent{
display: block;
}
#homeServicesContent figure{
margin: 0 0 20px 20px;
border-bottom-left-radius: 10px;
border-top-left-radius: 10px;
padding-top: 0;
}
#homeServicesContent figure img{
position: relative;
top: auto;
left: auto;
}
#homeServicesTxt{
width: auto;
padding: 0 10px;
}
#homeServicesSlide{
margin-top: 50px;
}
#homeServicesSlide>ul>li{
padding: 0 5px;
}
#homeServicesSlide ul li figure{
border-radius: 10px;
}
#homeServicesSlide ul li p{
margin-top: 0.5em;
}
}/*999*/





#homeAbout{
padding: 100px 0;
overflow: hidden;
}
#homeAboutContent{
display: flex;
flex-direction: row-reverse;
justify-content: space-between;
align-items: center;
max-width: 1000px;
margin: 0 auto;
}
#homeAboutContent figure{
position: relative;
flex: 1;
margin: 0 calc(50% - 50vw) 0 25px;
overflow: hidden;
border-bottom-left-radius: 30px;
border-top-left-radius: 30px;
padding-top: 30vw;
}
#homeAboutContent figure img{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
#homeAboutTxt{
width: 50%;
padding: 0 25px 0 10px;
}

@media screen and (max-width: 999px){
#homeAbout{
padding: 50px 0;
}
#homeAboutContent{
display: block;
}
#homeAboutContent figure{
margin: 0 0 20px 20px;
border-bottom-left-radius: 10px;
border-top-left-radius: 10px;
padding-top: 0;
}
#homeAboutContent figure img{
position: relative;
top: auto;
left: auto;
}
#homeAboutTxt{
width: auto;
padding: 0 10px;
}
}/*999*/