@charset "utf-8";
/* ------------------------------
 メインビジュアル（PC）
------------------------------ */
.mainimgBlock {
    position: relative;
    width: 100%;
    padding-left: 1.8%;
    padding-right: 1.8%;
    background: #fff url(../img/mainimg_bg.png) repeat-x bottom center;
}
.mainimgBlock .imgBox {
	height: 100%;
    border-radius: 30px;
    overflow: hidden;
    box-shadow: 5px 5px 15px rgba(0,0,0, .05);
}
.mainimgBlock .imgBox img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* メインテキスト */
.mainText {
    position: absolute;
    bottom: 12%;
    left: 1.8%;
    right: 1.8%;
    z-index: 1;
    padding: 0 3.2%;
    animation-name: mainTextfade;
    animation-duration: 2s;
}
.mainText h1 {
    font-size: 2.5vw;
    font-weight: 400;
    line-height: 1.5;
    margin-bottom: 15px;
}
.mainText .text {
    font-family: var(--font-en);
    font-size: 1.14vw;
    color: var(--green-color-d);
}
@keyframes mainTextfade {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@media print, screen and (min-width: 768px) and (max-width: 1240px) {
    /* メインテキスト */
    .mainText h1 {
        font-size: 3.1rem;
    }
    .mainText .text {
        font-size: 1.4rem;
    }
}
/* ------------------------------
 メインビジュアル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    .mainimgBlock {
        padding-left: 4%;
        padding-right: 4%;
    }
    /* メインテキスト */
    .mainText {
        top: 5.7%;
        bottom: auto;
        left: 5.8%;
        right: 5.8%;
    }
    .mainText h1 {
        font-size: 6.7vw;
        margin-bottom: 10px;
    }
    .mainText .text {
        font-size: 3.3vw;
        line-height: 1.1;
    }
}
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
/* -- h2 -- */
.contentsHome h2 {
    font-size: 5.2rem;
    font-weight: 400;
    letter-spacing: 0;
    margin-bottom: 30px;
    position: relative;
}
.contentsHome .title-en {
    font-family: var(--font-en);
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1;
    position: relative;
}
.contentsHome .title-en::before {
    content: "";
    width: 10px;
    height: 10px;
    vertical-align: top;
    display: inline-block;
    border-radius: 100%;
    margin-right: 8px;
    margin-top: 3px;
    background-color: #4bbfbd;
}
.contentsHome .title-en span {
    display: inline-block;
    letter-spacing: 0.1em;
    background: linear-gradient(90deg, #4bbfbd 46%, #82bfe2 65%, #ff9f9a 81%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text; 
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    /* -- h2 -- */
    .contentsHome h2 {
        font-size: 3.2rem;
        margin-bottom: 20px;
    }
    .contentsHome .title-en {
        font-size: 1.6rem;
    }
}
/* ------------------------------
 お知らせ（PC）
------------------------------ */
/* お知らせ */
.newsBlock {
    padding: 120px 0;
}
.newsBlock h2 {
    margin-bottom: 50px;
}
@media print, screen and (min-width: 768px) {
    .newsBlock .textBox {
        width: 280px;
    }
    .newsList {
        width: 804px;
    }
}
/* ------------------------------
 お知らせ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
    /* お知らせ */
    .newsBlock {
        padding: 50px 0;
    }
    .newsBlock h2 {
        margin-bottom: 30px;
    }
    .newsBlock .textBox {
        width: 100%;
        margin-bottom: 50px;
    }
}

/* ------------------------------
 はみ出し画像コンテンツ
------------------------------ */

.overflowBlock > * {
	margin-left: 0;
	margin-right: 0;
}
.overflowBlock > * p {
	line-height: 2;
}
.overflowBlock .imgBox img {
	border-radius: 20px;
    box-shadow: 5px 5px 15px rgba(0,0,0, .05);
}
@media print, screen and (min-width: 768px) {
	.overflowBlock {
        display: flex;
        align-items: center;
        column-gap: 53px;
        justify-content: center;
	}
	.overflowBlock .textBox {
		width: 378px;
	}
    .overflowBlock .imgBox {
		width: 1065px;
	}
    .overflowBlock .imgBox.order1 {
		margin-left: -355px;
	}
    .overflowBlock .imgBox:not(.order1) {
        margin-right: -355px;
	}
}
/* ----------------------
 はみ出し画像（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.overflowBlock {
        padding-left: 5%;
        padding-right: 5%;
    }
    .overflowBlock .textBox {
		margin-bottom: 45px;
	}
    .overflowBlock .imgBox:not(.order1) {
		margin-right: -5.5%;
	}
    .overflowBlock .imgBox.order1 {
		margin-left: -5.5%;
	}
    .overflowBlock .imgBox:not(.order1) img {
        border-radius: 15px 0 0 15px;
	}
    .overflowBlock .imgBox.order1 img {
		border-radius: 0 15px 15px 0;
	}
}
/* ------------------------------
 事業内容（PC）
------------------------------ */
.aboutBlock {
    padding-top: 115px;
    padding-bottom: 290px;
    border-radius: 50px 50px 0 0;
    position: relative;
    background: #fff url(../img/deco_img_bg.png) no-repeat right bottom;
}
@media print, screen and (min-width: 768px) {
	.aboutBlock .imgTopup {
        position: absolute;
        right: calc(50% - 70px);
        bottom: -240px;
    }
}
/* ----------------------
 事業内容（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.aboutBlock {
        padding-top: 55px;
        padding-bottom: 45px;
        border-radius: 25px 25px 0 0;
        background-size: 100% auto;
    }
    .aboutBlock .imgTopup {
        margin-top: -40px;
    }
}
/* ------------------------------
 事業内容（PC）
------------------------------ */
.structureBlock {
    padding-top: 205px;
    padding-bottom: 150px;
}
/* ----------------------
 事業内容（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.structureBlock {
        padding-top: 55px;
        padding-bottom: 60px;
    }
}
/* ------------------------------
 その他メニュー（PC）
------------------------------ */
.otherBlock {
    padding-left: 1.8%;
    padding-right: 1.8%;
    margin-bottom: 140px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.otherBlock > .box {
    background-color: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 7px 7px 15px rgba(0, 0, 0, .07);
}
.otherBlock > .box a {
    display: inline-block;
}
.otherBlock .textBox {
    padding: 30px 40px;
    position: relative;
}
.otherBlock > * h2 {
    font-size: 3rem;
    margin-bottom: 0;
}
.otherBlock > .box a .textBox::after {
    content: "";
    position: absolute;
    width: 45px;
    height: 45px;
    top: 0;
    bottom: 0;
    right: 40px;
    margin: auto;
    border-radius: 100%;
    background: var(--green-color-l) url(../img/icon_arrow_r.svg) no-repeat center center / 7px auto;
    transition: .3s ease-in-out;
}
@media print, screen and (min-width: 768px) {
    .otherBlock {
        max-width: 1670px;
        margin-left: auto;
        margin-right: auto;
        column-gap: 2.575%;
    }
    .otherBlock .box {
        width: calc((100% - 5.15%) / 3);
    }
}
/* ----------------------
 その他メニュー（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.otherBlock {
        padding-left: 5%;
        padding-right: 5%;
        margin-bottom: 60px;
        row-gap: 25px;
    }
    .otherBlock .textBox {
        padding: 15px 20px;
    }
    .otherBlock > .box a .textBox::after {
        width: 30px;
        height: 30px;
        right: 20px;
        background-size: 6px auto;
    }
    .otherBlock > * h2 {
        font-size: 2.4rem;
    }
}
/* ------------------------------
 お問い合わせ（PC）
------------------------------ */
.contactBlock {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 105px 80px;
    border-radius: 20px;
    background-color: #fff;
    box-shadow: 7px 7px 15px rgba(0, 0, 0, .07);
}
.contactBlock h2 {
    font-size: 4.6rem;
    margin-bottom: 0;
}
.contactBlock .title {
    padding-left: 100px;
    position: relative;
}
.contactBlock .title::before {
    content: "";
    width: 76px;
    height: 76px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    display: inline-block;
    background: url(../img/icon_mail_pink.svg) no-repeat 0 0 / cover;
}
.contactBlock .text {
    font-size: 1.8rem;
}
@media print, screen and (min-width: 768px) {
    .contactBlock .title {
        width: 320px;
    }
    .contactBlock .text {
        width: calc(100% - 636px);
    }
    .contactBlock .btn a {
        font-size: 1.8rem;
        width: 316px;
        height: 80px;
    }
    
}
/* ----------------------
 お問い合わせ（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.contactBlock {
        padding: 50px 40px;
        justify-content: center;
        row-gap: 25px;
    }
    .contactBlock h2 {
        font-size: 3rem;
    }
    .contactBlock .title {
        padding-left: 80px;
        margin-right: 20px;
    }
    .contactBlock .title::before {
        width: 60px;
        height: 60px;
    }
    .contactBlock .text {
        font-size: 1.6rem;
    }
     .contactBlock .btn a {
        width: 258px;
    }
}

