@charset "utf-8";

/* キービジュアル */
.top .kv {
    min-height: 600px;
    padding: 68px 0 0; /* ヘッダーの高さ分と下部余白 */
    position: relative;
    overflow: hidden;
}

@media (min-width: 1124px) {
    .top .kv {
        padding: 0;
    }
}

.kv-bg {
    text-align: center;
    position: relative;
    z-index: 2;
    padding: 50px 0;
    margin: 0 auto;
    height: 85%;
    background: url(../img/top/kv_illust.png) no-repeat center top;
    background-size: contain;
}

.kv-bg h1 {
    text-align: center;
}

.kv-bg h1 img{
    width: calc(var(--wh10) * 23);
    margin: 0 auto 20px;
}

.kv-bg img.kv-photo {
    width: 100%;
    position: relative;
    left: 0;
}

.kv-bg img.ehon {
    max-width: 300%;
    position: absolute;
    bottom: 0;
    left: 0;
    mix-blend-mode: normal;
}

.top h2:not(.blog-list h2, .recruiting-list h2) {
    font-size: calc(var(--wh10) * 2.8);
}


/* aboutエリア */
.section.about {
    background-image: url(../img/common/deco_branch.webp), url(../img/common/deco_branch.webp);
    background-repeat: no-repeat, no-repeat;
    background-position: -37% -5%, 137% -5%;
    background-size: 32%, 32%;
    padding: 0 var(--wh40);
}

.section.about p.text{
    width: calc(var(--wh10) * 27);
    margin: 0 auto;
    font-size: var(--wh15);
    letter-spacing: 0.16em;
    line-height: 2.6;
    text-align: justify;
}

.section.about p.text:not(:last-of-type) {
    margin-bottom: var(--wh30);
}

.section.about p.text:first-of-type {
    position: relative;
}

.section.about p.text:first-of-type::before {
    content: '';
    position: absolute;
    z-index: -1;
    top: calc(-1 * var(--wh45));
    right: calc(-1 * var(--wh50) * 2);
    width: calc(var(--wh10) * 14);
    height: calc(var(--wh10) * 6.1);
    background: url('../img/common/illust_kumo.webp') no-repeat;
    background-size: contain;
    animation: floatX 6s ease-in-out infinite;
}

.section.about .section-title:not(h3.section-title) {
    padding-top: var(--wh30);
}

.section.about .btn {
    width: 100%;
}
.contents-pickup h3 {
    font-size: 1.75rem;
    margin: 0 auto
}

.contents-pickup img {
    position: relative;
    max-width: 125%;
    left: -16%;
}


/* 活動紹介 */
.parallax-area {
    clip-path: inset(0);
    width: 100%;
    height: calc(var(--wh10) * 20);
    box-sizing:border-box;
}

.parallax-area::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    z-index: -10;
    width: 100%;
    height: 100%;
    background-image: url(../img/top/activities_scroll_img.webp);
    background-position: center;
    background-size: auto 100%;
}

.parallax-wrapper {
    position: relative;
    height: 100%;
}

.parallax-wrapper::before,
.parallax-wrapper::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 3vw;
    left: 0;
}
.parallax-wrapper::before {
    top: -1%;
    background: url(../img/top/deco_scroll_head.png) no-repeat top center;
    background-size: 100%;
}
.parallax-wrapper::after {
    bottom: -1%;
    background: url(../img/top/deco_scroll_foot.png) no-repeat bottom center;
    background-size: 100%;
}


.section.activities {
    text-align: center;
}

.section.activities .section-title {
    margin: var(--wh30) auto;
}
.section.activities p {
    position: relative;
}

.section.activities p.text::before {
    content: '';
    position: absolute;
    top: -15%;
    left: 3%;
    width: 95%;
    height: 100%;
    background: url(../img/top/deco_activity_head.png) no-repeat top center;
    background-size: contain;
}

.section.activities p.text::after {
    content: '';
    position: absolute;
    bottom: -25%;
    left: 5%;
    width: 90%;
    height: 100%;
    background: url(../img/top/deco_activity_foot.png) no-repeat bottom center;
    background-size: contain;
}

.section.activities img {
    width: 100%;
    height: auto;
    margin: 2em auto;
    display: block;
}

.section.activities .btn {
    margin: var(--wh30) auto 0;
}

/* ボランティア */
.section.volunteer {
    padding: 5em 0;
    margin: 0 auto;
    text-align: center;
    background-image: linear-gradient(0deg, rgba(254, 250, 235, 1) 80%, rgba(254, 250, 235, 1) 85%, rgba(254, 250, 235, 0) 85%);
}

.section.volunteer .section-title {
    color: var(--color-white);
    margin: 0 auto 3em;
}
.section.volunteer .section-wrapper {
    position: relative;
    z-index: 2;
}

.section.volunteer .illust-hozukinchan {
    position: absolute;
    top: calc(var(--wh10) * -8.5);
    left: 45%;
}

.section.volunteer .section-title span:nth-of-type(1) {
    top: -2em;
    left: 15%;
    animation: swingHozukiL 2s ease-in-out infinite;
}
.section.volunteer .section-title span:nth-of-type(2) {
    top: -3em;
    right: 15%;
    animation: swingHozukiR 2s ease-in-out alternate infinite;
}
.section.volunteer p.lead-text {
    margin: var(--wh80) auto var(--wh10);
}

.section.volunteer img {
    width: calc(100% - var(--wh20) * 3);
    margin: 0 auto -10px;
}

.volunteer .bg-branch:nth-last-of-type(1) {
    z-index: 1;
    top: 8.7em;
    left: 0;
    background-size: 50%;
    transform: rotate(98deg);
}

.section.volunteer .btn {
    color: var(--color-accent);
    background: var(--color-white);
    box-shadow: 0 4px 0 var(--color-accent);
    border: 2px solid var(--color-accent);
    margin: 0 auto;
}

.section.volunteer .btn::after {
    background: var(--color-accent);
    color: var(--color-white);
}

/* 採用情報 */
.section.recruit {
    padding: 0;
    text-align: center;
    background-color: var(--color-bg-light);
}

.recruit .section-title {
    text-align: left;
    padding-top: var(--wh10);
    margin: 0 var(--wh40) var(--wh40);
}

.recruit .section-wrapper {
    padding-bottom: var(--wh20);
}

.recruit .section-wrapper::before {
    content: '';
    position: absolute;
    right: var(--wh20);
    width: var(--wh80);
    height: var(--wh80);
    background: url(../img/top/deco_recruit.png) no-repeat top right;
    background-size: contain;
}

.gallery-wrapper {
    width: 1338px;
}

.gallery-wrapper img:first-of-type {
    position: relative;
    left: -70%;
    animation: slideInPhotoFromLeft 60s linear 0s infinite;
}

.gallery-wrapper img:last-of-type {
    animation: slideInPhotoFromRight 60s linear 0s infinite;
}

@keyframes slideInPhotoFromLeft {
    to {
        transform: translateX(70%);
    }
}

@keyframes slideInPhotoFromRight {
    to {
        transform: translateX(-70%);
    }
}

/* アクセス */
.section.access {
    padding: var(--wh20) 0;
}
.section.access::before {
    content: '';
    display: block;
    padding: 0 var(--wh40);
    background: url(../img/top/access_icons_head.png) no-repeat center top;
    background-size: contain;
    width: 100%;
    height: var(--wh60);
}

.section.access .section-wrapper {
    padding: 0 var(--wh20) 0;
}

.section.access .section-title {
    margin: var(--wh50) var(--wh20);
    text-align: left;
}

.section.access h2 {
    font-size: calc(var(--wh10) * 2.4);
}

.section.access h3 {
    background: var(--color-primary);
    border-radius: var(--wh40);
    font-weight: 700;
    font-size: var(--wh20);
    line-height: 1.4;
    letter-spacing: 0.1em;
    color: var(--color-white);
    margin: var(--wh20) 0 var(--wh30);
    padding: var(--wh10) var(--wh20);
    position: relative;
}

.section.access h3::after {
    content: '';
    position: absolute;
    top: 0;
    right: -2%;
    transform: translateY(-25%);
    width: calc(var(--wh10) * 8.8);
    height: calc(var(--wh10) * 8.8);
    background-repeat: no-repeat;
    background-position: center center;
}
.access-wrapper:nth-of-type(1) h3::after {
    background-image: url(../img/top/access_thumb_jimusyo.png);
    background-size: contain;
}
.access-wrapper:nth-of-type(2) h3::after {
    background-image: url(../img/top/access_thumb_hozukinoie.png);
    background-size: contain;
}
.access-wrapper:nth-of-type(3) h3::after {
    background-image: url(../img/top/access_thumb_group.png);
    background-size: contain;
}

.access-wrapper h4 {
    font-size: calc(var(--wh10) * 1.7);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0;
    white-space: nowrap;
}

.access-wrapper h4[class^="icon-"]::before {
    content: '';
    position: relative;
    width: calc(var(--wh10) * 3.5);
    height: calc(var(--wh10) * 3.5);
    display: inline-block;
    vertical-align: middle;
    margin: 0 0.7em 0 0.9em;
}

.access-wrapper > p.text {
    padding: 0 var(--wh10);
}
.section.access .contact-area {
    margin: auto var(--wh15) auto calc(var(--wh10) * 6.5);
}

.section.access .phone-number {
    font-size: calc(var(--wh10) * 1.9);
    color: var(--color-text);
    position: relative;
}

.section.access .phone-number::before {
    content: 'TEL';
    padding-right: 0.4em;
}

.section.access .reception-time {
    font-size: calc(var(--wh10) * 1.3);
    font-weight: 500;
    color: var(--color-text);
    letter-spacing: 0.05em;
}

.place-container {
    display: flex;
    flex-wrap: wrap;
    row-gap: var(--wh10);
}

.place-container img:not(a img) {
    width: calc(var(--wh10) * 10);
}

.place-container .wrapper {
    width: calc(100% - var(--wh20) * 1 - var(--wh10) * 10);
    margin-left: var(--wh20);
}

.place-container address {
    font-size: calc(var(--wh10) * 1.4);
    font-style: normal;
    color: var(--color-text);
    line-height: 1.5;
}

address em {
    color: var(--color-primary);
}


.map-link {
    display: flex;
    justify-content: center;
    gap: 0.5em;
    align-items: center;
    width: calc(var(--wh10) * 9.4);
    height: calc(var(--wh10) * 1.8);
    font-family: var(--font-en);
    font-size: calc(var(--wh10) * 0.9);
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 1px solid var(--color-primary);
    border-radius: var(--wh20);
    margin: 1em var(--wh10) 0 auto;
    position: relative;
}

.map-link::before {
    content: '';
    position: relative;
    display: inline-block;
    width: calc(var(--wh10) * 0.9);
    height: calc(var(--wh10) * 1.2);
    background: url(../img/common/icon_map.svg) no-repeat center center;
    background-size: contain;
}

.item-map {
    position: relative;
    width: calc(100% - var(--wh10) * 2);
    margin: var(--wh10) 0 var(--wh40) var(--wh10); 
    padding-top: 75%;
    /* 4:3のアスペクト比 */
    /* padding-top: 56.25%; */
    /* 16:9のアスペクト比 */
    height: 0;
    overflow: hidden;
}

.item-map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.group_home-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    gap: 1em;
    padding: 0 var(--wh10);
}

.group_home-list h4[class^="icon-"]::before {
    margin: 0 0.7em 0 0;
}

.group_home-list .text-s {
    margin: -0.5em 0 0 3.75em;
}

.group_home-list ~ .deco-ph {
    margin-top: var(--wh20);
}

.icon-hozuki::before {
    background: url(../img/common/icon_hozuki.webp) no-repeat center center;
    background-size: contain;
}
.icon-helper::before {
    background: url(../img/common/icon_helper.webp) no-repeat center center;
    background-size: contain;
}
.icon-group::before {
    background: url(../img/common/icon_group.webp) no-repeat center center;
    background-size: contain;
}
.icon-soudan::before {
    background: url(../img/common/icon_soudan.webp) no-repeat center center;
    background-size: contain;
}