/* === フッター === */
.pff-footer {
    /* position: relative; 不要な相対位置指定は削除 */
    /* padding-top: 3rem; padding-bottom: 3rem; 各セクションで管理 */
    overflow: hidden;
    /* スキュー背景のはみ出し防止 */
    /* background-color: #f8f8f8; */
    /* デフォルトの背景色に合わせるか、各セクションで管理 */
}


/* お問い合わせセクション */
.pff-contact-section {
    position: relative;
    /* 背景のabsolute基準 */
    overflow: hidden;
    /* skewYのはみ出し防止 */
    padding-top: 4rem;
    /* py-16 */
    padding-bottom: 4rem;
    /* py-16 */
    text-align: center;
    color: #FFFFFF;
    /* text-white */
    /* 背景色は .pff-contact-background で管理 */
    position: relative;
    overflow: hidden;
    padding-top: 7rem;
    padding-bottom: 7rem;
    text-align: center;
    color: #FFFFFF;
    margin-bottom: 4rem;
    background: #7fc31c;
    margin-top: -2rem;
    margin-bottom: -2rem;
}

@media screen and (min-width:768px) {
    .pff-contact-section {
        margin: 2rem 0 0;
        padding: 0 0 3rem;
    }
}


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

    /* お問い合わせセクション */
    .pff-contact-section {
        padding-top: 6rem;
        padding-bottom: 7rem;
        margin-top: -6rem;
        margin-bottom: -6rem;
        background: url(/47th/img/contact_bg_sp.svg);
        background-position: center center;
        background-size: 160%;
        background-repeat: no-repeat;
    }
}

.pff-contact-section .pff-contact-background.pff-contact-bg.random-transform {
    width: 190%;
    text-align: center;
    margin-left: -50%;
    margin-right: -50%;
    display: flex;
    justify-content: center;
    align-items: center;
}


.random-transform {
    animation: undulatingTransform 20s infinite cubic-bezier(0.25, 0.5, 0.75, 1);
    /* 遅く、ウネるように */
    transform-origin: center;
    /* 変形の中心を中央に設定 */
}

.random-transform {
    animation: randomTransform 3s infinite;
    /* 3秒で1回、無限ループ */
}


.random-transform {
    animation: randomTransform 3s infinite;
    /* 3秒で1回、無限ループ */
}

.random-transform {
    animation: undulatingTransform 20s infinite cubic-bezier(0.25, 0.5, 0.75, 1);
    /* 遅く、ウネるように */
    transform-origin: center;
    /* 変形の中心を中央に設定 */
}


/* お問い合わせセクションの背景 */
.pff-contact-background {
    position: absolute;
    inset: 0;
    /* 親要素全体を覆う */
    /* bg-green-500 (初期値) */
    transform-origin: top;
    /* origin-top */
    transform: skewY(-3deg);
    /* -skew-y-3 */
    z-index: 0;
    animation: contact-bg-color-change 12s infinite alternate ease-in-out;
}


.pff-contact-section .pff-contact-background.pff-contact-bg.random-transform img {
    height: 130% !important;
    width: 80% !important;
}


.pff-contact-section .pff-contact-background.pff-contact-bg.random-transform img {
    /* transform: translate(50%, 0px); */
    max-width: inherit;
    width: 50%;
    height: 100%;
    width: 120%;
}


/* お問い合わせセクションのコンテンツラッパー */
.pff-contact-content-wrapper {
    position: relative;
    /* z-indexを有効にするため */
    z-index: 10;
    /* 背景の上に表示 */
    padding-bottom: 60px;
    padding-top: 4rem;
}



.pff-contact-title {
    font-size: 3rem;
    /* text-4xl */
    font-weight: 800;
    /* font-extrabold */
    margin-bottom: 0.5rem;
    /* mb-2 */
    font-family: "RocknRoll One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.pff-contact-subtitle {
    font-size: 1.4rem;
    /* text-xl */
    margin-bottom: 2rem;
    /* mb-8 */
}

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

    .pff-contact-title,
    .pff-contact-subtitle {
        display: none;
    }

    .pff-sidebar-bottom.sp {
        display: none !important;
    }
}


.pff-contact-details-wrapper {
    display: flex;
    flex-direction: column;
    /* flex-col */
    align-items: center;
    /* items-center */
    justify-content: center;
    /* justify-center */
    gap: 2rem;
    /* space-y-8 */
    margin-top: 4rem;
    font-family: "RocknRoll One", sans-serif;
    font-weight: 400;
    font-style: normal;
}




.pff-contact-details-wrapper {
    flex-direction: row;
    gap: 0;
    /* space-x-12 を模擬、各要素間に直接marginを設定 */
}

.pff-contact-details-wrapper>div:not(:last-child) {
    margin-right: 3rem;
    /* 約 md:space-x-12 */
}

@media screen and (min-width:768px) {
    .pff-contact-content-wrapper {
        padding-top: 1.25rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid #fff;
    }

    .pff-contact-details-wrapper {
        margin: 0 auto;
        flex-wrap: wrap;
        max-width: 640px;
        gap: .5rem;
    }
}


/* Copyright */
.pff-copyright {
    text-align: center;
    /* margin-top: 3rem; */
    /* mt-12 */
    color: #6B7280;
    /* gray-500 */
    font-size: 1.175rem;
    /* text-sm */
    /* position: relative; z-indexは親要素で管理されているため不要 */
    /* z-index: 10; */
    padding-bottom: 2rem;
    /* 必要に応じて調整 */
    position: relative;
    font-weight: bold;
    font-family: "toppan-bunkyu-gothic-pr6n", serif;
    font-weight: 800;
}

@media screen and (min-width:768px) {
    .pff-copyright {
        margin-top: -2.5rem;
        padding-bottom: 1.2rem;
        color: #fff;
        font-size: .9rem;
    }
}


@media screen and (min-width:768px) {
    .pff-contact-logo {
        width: 100%;
    }

    .pff-contact-logo img {
        width: 6.1rem;
        margin: auto;
        padding-bottom: 0.5em;
    }
}




.pff-contact-info {
    /* width: 48%; */
    display: block;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: inherit;
}

.pff-contact-info img {
    width: 16vw;
    margin: auto;
    padding-bottom: 0.5em;
}


.pff-contact-info img {
    /* width: 100px !important; */
    width: 144px;
    height: auto;
}

.pff-contact-org-name {
    font-size: 1.5rem;
    /* text-2xl */
    font-weight: 700;
    /* font-bold */
    /* margin-bottom: 0.5rem; */
    /* mb-2 */
}


.pff-contact-tel {
    font-size: 1.5rem;
    /* text-2xl */
    font-weight: 700;
    /* font-bold */
    margin-bottom: 0.5rem;
    /* mb-2 */
}

.pff-contact-hours {
    font-size: 0.875rem;
    /* text-sm */
}


.pff-contact-website-button {
    display: inline-block;
    /* background-color: #FFFFFF; */
    /* bg-white */
    color: #ffffff;
    /* text-green-700 */
    font-weight: 700;
    /* font-bold */
    padding: 1rem 3rem;
    /* py-4 px-12 */
    border-radius: 20px;
    /* rounded-full */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    /* shadow-lg */
    transition: all 0.3s ease-in-out;
    font-size: 1.525rem;
    /* text-lg */
    text-decoration: none;
    text-align: center;
    /* 中央揃え */
    border: 2px solid #eee;
}


.pff-contact-website-button:hover {
    background-color: #E5E7EB;
    /* hover:bg-gray-200 */
}


@media screen and (min-width:768px) {
    .pff-contact-org-name {
        font-size: 1.13rem;
    }

    .pff-contact-tel {
        margin-bottom: 0;
        font-size: 1.13rem;
    }

    .pff-contact-website-button {
        padding: .5rem 3rem;
        order: 2;
        font-size: 1.1rem;
        line-height: 1.3;
    }

    .pff-contact-info {
        text-align: left;
        order: 3;
        line-height: 1.3;
    }

    .pff-contact-sns {
        margin-top: 1rem;
        display: flex;
        justify-content: center;
        gap: 1.5rem;
    }

    .pff-contact-sns i {
        font-size: 2em;
    }
}


@media (max-width: 767px) {
    .pff-contact-title {
        margin-bottom: 0;
        font-size: 2.5rem;
    }

    .pff-contact-subtitle {
        margin-bottom: 1.5rem;
    }

    .pff-contact-info {
        text-align: left;
    }

    .pff-contact-org-name {
        font-size: 1.3rem;
    }

    .pff-contact-details-wrapper>div:not(:last-child) {
        margin-right: 0;
    }

    .pff-contact-section .pff-contact-background.pff-contact-bg.random-transform img {
        height: 109% !important;
        right: 4% !important;
        position: relative !important;
        width: 57rem !important;
    }


    .pff-contact-website-button {
        width: 41%;
        padding: .5rem 1rem;
        font-size: 3vw;
        border-radius: 3vw;
    }

    .random-transform {
        /* animation: undulatingTransform 20s infinite cubic-bezier(0.25, 0.5, 0.75, 1); */
        /* 遅く、ウネるように */
        /* transform-origin: center; */
        /* 変形の中心を中央に設定 */
    }

    .pff-contact-section .pff-contact-background.pff-contact-bg.random-transform {
        width: 130%;
        text-align: center;
        margin-left: -15%;
        margin-right: -25%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .pff-contact-details-wrapper {
        flex-wrap: wrap !important;
        flex-direction: inherit;
        align-items: flex-start;
        width: 100%;
        margin: auto;
        gap: .5rem;
    }

    .pff-contact-logo {
        width: 33%;
    }

    .pff-contact-sns {
        display: none;
    }

    .pff-copyright {
        font-size: 13px;
    }
}
