@charset "UTF-8";


body {
    padding: 0;
    margin: 0;
    font-family: "ヒラギノ明朝 ProN", "HiraMinProN-W6", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
}

img,
video {
    max-width: 100%;
}










@media screen and (max-width: 768px) {
    .sp_none {
        display: none;
    }




    header {
        background: rgba(0, 0, 0, 0.28);
        position: fixed;
        width: 100%;
        z-index: 1;
    }

    .header_box {
        max-width: 1280px;
        padding: 10px 25px;
        margin: 0 auto;
        display: grid;
        grid-template-rows: auto auto;
        gap: 6px;
        align-items: center;
        color: #fff;
    }

    img.logo_001 {
        width: 160px;
    }

    .header_box_txt01 {
        font-size: 14px;
    }

    a.header_box_link {
        text-decoration: none;
        color: #fff;
        font-size: 14px;
        letter-spacing: 2px;
    }

    a.header_box_link:hover {
        text-decoration: underline;
    }

    nav.drawer-nav {
        background: rgba(0, 0, 0, 0.6);
    }

    .drawer-hamburger-icon,
    .drawer-hamburger-icon:after,
    .drawer-hamburger-icon:before {
        background-color: #fff;
    }

    .drawer--right.drawer-open .drawer-hamburger {
        right: 0;
    }

    ul.drawer-menu {
        padding: 60px 20px;
        line-height: 3em;
    }

    nav.drawer-nav {
        z-index: 3;
    }

    .drawer-overlay {
        z-index: 0;
    }




    .fv {
        background: url(img/fv_001.webp);
        height: 64vh;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        position: relative;
        padding: 0 25px;
    }

    img.fv_002 {
        position: absolute;
        bottom: 0;
        left: 0;
    }

    .fv_box {
        margin: 0 auto;
        height: 64vh;
        display: grid;
        grid-template-rows: 1fr 10vw;
        align-items: end;
    }

    .fv_box_blc01 {
        color: #fff;
        margin-top: 4vw;
    }

    .fv_box_blc01_txt01 {
        font-size: 14px;
        line-height: 1.4em;
        letter-spacing: 1px;
        text-align: center;
        margin-bottom: 3vw;
    }

    h1.fv_box_blc01_ttl01 {
        font-weight: normal;
        font-size: 22px;
        text-align: center;
        margin: 0;
        text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
    }

    h1.fv_box_blc01_ttl01 strong {
        font-size: 48px;
        font-weight: normal;
        letter-spacing: 0.2em;
    }

    h1.fv_box_blc01_ttl01 span {
        font-weight: normal;
    }


    .fv_box_blc01_txt02 {
        text-align: center;
        font-size: 20px;
        letter-spacing: 8px;
        position: relative;
        margin: 0 auto 3vw;
    }

    .fv_box_blc01_txt02::before {
        content: "";
        width: calc(50% - 4em);
        height: 1px;
        background: #fff;
        position: absolute;
        top: 50%;
        left: 0;
    }

    .fv_box_blc01_txt02::after {
        content: "";
        width: calc(50% - 4em);
        height: 1px;
        background: #fff;
        position: absolute;
        top: 50%;
        right: 0;
    }

    a.fv_link {
        display: block;
        background: #fff;
        text-align: center;
        width: 80%;
        margin: 0 auto 2vw;
        line-height: 2.6em;
        text-decoration: none;
        color: #2d2830;
        font-size: clamp(20px, 2.8vw, 30px);
        position: relative;
        transition: 0.2s;
        border-radius: 4px;
    }

    a.fv_link::after {
        content: "";
        width: 0.4em;
        height: 0.4em;
        border-top: solid 1px;
        border-right: solid 1px;
        position: absolute;
        top: 50%;
        right: 20px;
        transform: rotate(45deg) translateY(-50%);
        transform-origin: top;
    }

    a.fv_link:hover {
        color: #fff;
        background: #2d2830;
        transition: 0.4s;
    }










    main {
        background: url(img/main_bg.webp);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: top;
        padding: 40px 20px 0px;
    }




    section#s01 {
        margin-bottom: 8vw;
    }

    .s01_inr {
        max-width: 1280px;
        margin: 0 auto;
    }

    .s01_inr_box {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        margin-bottom: 80px;
    }

    img.s01_img00 {
        width: 40%;
        display: block;
        margin: 0 auto -26px;
        mix-blend-mode: multiply;
    }

    .s01_inr_box_blc_element {
        background: rgba(255, 255, 255, 0.6);
        border-radius: 12px;
        padding: 20px;
    }

    h2.s01_ttl {
        color: #2c272f;
        margin: 0 auto 4vw;
        width: fit-content;
        font-size: 22px;
        font-weight: normal;
        position: relative;
    }

    h2.s01_ttl::before {
        content: "";
        width: 100%;
        height: 2px;
        background: #2c272f;
        position: absolute;
        left: 0;
        bottom: -16px;
    }

    h2.s01_ttl::after {
        content: "";
        width: 80%;
        height: 2px;
        background: #2c272f;
        position: absolute;
        left: 0;
        bottom: -24px;
    }

    .s01_inr_box_blc_element_txt01 {
        font-size: 20px;
        letter-spacing: 4px;
    }





    .s01_inr_box_blc_element_ttl {
        position: relative;
        font-size: 24px;
        letter-spacing: 4px;
        font-weight: normal;
        margin: 0 0 30px;
    }

    .s01_inr_box_blc_element_ttl::before {
        content: "";
        width: 100%;
        height: 2px;
        background: #c9b2a0;
        position: absolute;
        left: 0;
        bottom: -6px;
    }

    .s01_inr_box_blc_element_ttl::after {
        content: "";
        width: 80%;
        height: 2px;
        background: #c9b2a0;
        position: absolute;
        left: 0;
        bottom: -14px;
    }

    p.s01_inr_box_blc_element_txt02 {
        text-align: justify;
        margin: 20px 0 0;
    }





    section#s02 {
        position: relative;
        margin-bottom: 8vw;
    }

    .s02_inr02_box {
        margin: 0 auto;
        position: relative;
        padding: 8vw 0 10vw;
        z-index: 1;
        color: #482f19;
    }

    .s02_inr01 {
        position: absolute;
        height: 100%;
        width: 98%;
        padding-left: 6vw;
        top: -6vw;
        left: -25px;
        background: rgba(255, 255, 255, 0.4);
        border-top-right-radius: 50em;
        border-bottom-right-radius: 50em;
    }


    .s02_inr02::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        margin: 0 calc(50% - 50vw);
        background: rgba(91, 80, 76, 0.4);
        height: 100%;
        width: 120%;
        border-top-left-radius: 50em;
        border-bottom-left-radius: 50em;
    }

    h2.s02_inr02_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 2vw;
    }


    h2.s02_inr02_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 2vw;
    }

    h2.s02_inr02_ttl strong {
        position: relative;
    }

    h2.s02_inr02_ttl strong::after {
        content: "";
        z-index: -1;
        position: absolute;
        left: -10px;
        bottom: -0.4em;
        width: 100%;
        height: 1em;
        padding: 0 10px;
        background: #fff;
    }


    p.s02_inr02_txt {
        font-family: sans-serif;
        text-align: justify;
        line-height: 2em;
        letter-spacing: 1px;
        font-weight: bold;
    }

    p.s02_inr02_txt span {
        background: #fff;
        padding: 0.4em;
    }







    section#s03 {
        margin-bottom: 8vw;
    }

    .s03_inr01 {
        margin: 0 calc(50% - 50vw) 40px;
        background: linear-gradient(transparent 0%, #000 46%, #000 100%);
    }

    .s03_inr01_box01 {
        max-width: 1280px;
        margin: 0 auto;
        padding: 60px 25px;
        color: #fff;
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 30px;
    }


    .s03_inr01_box01_blc01 {
        text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.8);
    }

    .s03_inr01_box01_blc01_txt01 {
        font-size: 18px;
        margin: 0 0 10px;
    }

    .s03_inr01_box01_blc01_txt01 span {
        width: 2em;
        height: 1em;
        display: inline-block;
        position: relative;
    }

    .s03_inr01_box01_blc01_txt01 span::before {
        content: "";
        width: 2em;
        height: 1px;
        background: #fff;
        position: absolute;
        top: 60%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    .s03_inr01_box01_blc01_txt01 span::after {
        content: "";
        width: 2em;
        height: 1px;
        background: #fff;
        position: absolute;
        top: 60%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(45deg);
    }

    h2.s03_inr01_box01_blc01_ttl {
        font-size: 36px;
        font-weight: normal;
        letter-spacing: 8px;
        margin: 0 0 10px;
    }

    h2.s03_inr01_box01_blc01_ttl span {
        letter-spacing: 0;
    }

    .s03_inr01_box01_blc01_txt02 {
        text-align: justify;
        letter-spacing: 1px;
        line-height: 1.8em;
    }

    .s03_inr01_box02 video {
        height: 100%;
        object-fit: cover;
    }









    .s03_inr02_box {
        max-width: 1280px;
        padding: 0;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 25px;
    }


    h2.s03_inr02_ttl {
        font-size: 25px;
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 20px;
    }

    h2.s03_inr02_ttl span {
        position: relative;
    }

    h2.s03_inr02_ttl span::before {
        content: "・・";
        position: absolute;
        top: -1em;
    }

    .s03_inr02_box_blc02,
    .s03_inr02_box_blc01 {
        display: flex;
        flex-direction: column;
    }


    .s03_inr02_box_blc01 h3,
    .s03_inr02_box_blc02 h3 {
        font-size: clamp(20px, 3vw, 30px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 0.4em;
        font-family: sans-serif;
    }

    .s03_inr02_box_blc00_element_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 1vw;
    }

    .s03_inr02_box_blc00_element_ttl span {
        position: relative;
    }

    .s03_inr02_box_blc00_element_ttl span::before {
        content: "・・";
        position: absolute;
        top: -1em;
        left: 0;
    }

    .s03_inr02_box_blc01_element {
        background: rgba(200, 56, 54, 0.4);
        border-radius: 12px;
        padding: 16px;
        height: 100%;
        position: relative;
    }

    .s03_inr02_box_blc02_element {
        background: rgba(54, 151, 212, 0.4);
        border-radius: 12px;
        padding: 16px;
        height: 100%;
        position: relative;
    }

    img.s03_inr02_box_blc00_element_img {
        position: absolute;
        top: -12%;
        left: 4%;
        width: 20%;
    }

    .s03_inr02_box_blc01_element p,
    .s03_inr02_box_blc02_element p {
        font-family: sans-serif;
        text-align: justify;
        font-size: 14px;
        position: relative;
        z-index: 1;
        line-height: 1.6em;
    }

    .s03_inr02_box_blc01_element p strong {
        color: #c61d1e;
        background: #fff;
        padding: 6px 8px;
        border-radius: 8px;
        z-index: -1;
        position: relative;
    }








    section#s04 {
        max-width: 1280px;
        margin: 0 auto 4vw;
        padding: 0;
    }

    .s04_inr01 {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 2vw;
        margin: 0 0 2vw;
    }

    p.s04_txt {
        margin: 0 0 4vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
    }

    .s04_inr01_box {
        background-color: #f7f7f7;
        border-radius: 16px;
        padding: 16px;
        background-image: url(img/s04_inr01_box_img01.png), url(img/s04_inr01_box_img02.png);
        background-repeat: no-repeat, no-repeat;
        background-position: top 20px left 20px, bottom 20px right 20px;
        background-size: 60px;
        font-family: sans-serif;
    }

    h3.s04_inr01_box_ttl {
        font-size: clamp(18px, 1.6vw, 22px);
        font-weight: normal;
        margin: 0 0 12px;
    }

    .s04_inr01_box_txt01 {
        border-bottom: solid 2px;
        padding-bottom: 12px;
        margin-bottom: 12px;
    }

    .s04_inr01_box_txt02 {
        font-size: 14px;
        text-align: justify;
    }

    h2.s04_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s04_ttl::after {
        content: "";
        width: calc(100% - 4em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 4em;
        top: 50%;
    }

    .s04_inr02 {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 2vw;
        margin-bottom: 3vw;
    }

    .s04_inr02_box_ttl {
        font-size: clamp(30px, 4vw, 38px);
        margin: 1vw 0;
    }

    .s04_inr02_box_txt {
        font-size: clamp(16px, 2.2vw, 22px);
        line-height: 1.8em;
    }

    .s04_inr03 {
        position: relative;
    }

    p.s04_inr03_txt {
        text-align: center;
        margin: 0 auto;
        width: 100%;
        font-size: clamp(20px, 3vw, 30px);
        font-family: sans-serif;
        line-height: 2em;
        z-index: 1;
    }







    section#call_to_action {
        background: #2d2830;
        margin: 0 calc(50% - 50vw) 8vw;
        padding: 10vw;
    }

    .call_to_action_inr {
        padding: 0;
        margin: 0 auto;
        display: flex;
        justify-content: space-evenly;
        flex-direction: column;
        gap: 30px;
    }

    a.call_to_action_btn {
        border: solid 1px;
        color: #fff;
        width: 100%;
        padding: 4vw;
        box-sizing: border-box;
        position: relative;
        text-decoration: none;
        font-size: clamp(20px, 2vw, 30px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        transition: 0.2s;
    }

    a.call_to_action_btn span {
        display: block;
        background: #2d2830;
        position: absolute;
        left: 50%;
        top: calc(-0.5em - 10px);
        line-height: 1em;
        transform: translateX(-50%);
        letter-spacing: 4px;
        font-size: 16px;
        border-radius: 2em;
        padding: 10px 2em;
        transition: 0.2s;
    }

    a.call_to_action_btn::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 2vw;
        width: 0.8em;
        height: 0.8em;
        border-top: solid 1px;
        border-right: solid 1px;
        transform: rotate(45deg) translateY(-50%);
        transform-origin: top;
    }

    a.call_to_action_btn:hover {
        background: #fff;
        color: #2d2830;
    }

    a.call_to_action_btn:hover span {
        background: #fff;
    }











    section#s05 {
        max-width: 1280px;
        margin: 0 auto 8vw;
    }

    .s05_inr01 {}

    h2.s05_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s05_ttl::after {
        content: "";
        width: calc(100% - 4em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 4em;
        top: 50%;
    }

    p.s05_txt {
        margin: 0 0 4vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
    }



    .tab5 {
        width: 100%;
        margin: 0 auto;
    }

    .tab5 .tab-content {
        margin: 0;
    }

    .tab_parent {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        margin: 0 0 2vw;
    }

    .tab5 label {
        font-size: clamp(14px, 1.6vw, 20px);
        text-align: center;
        line-height: 1.4em;
        padding: 10px;
        border: solid 2px #2d2830;
    }

    .tab5 label:nth-child(4n) {
        border-left: none;
    }

    .tab5 label:nth-child(n + 5) {
        border-top: none;
    }

    .tab5 label:nth-child(12n) {
        //border-left: solid 2px #2d2830;
    }

    .tab5 label:hover {}

    .tab5 input:checked + label {
        background: #2d2830;
        color: #fff;
    }

    .tab5 input {
        display: none;
    }

    .tab5 #tab5-b1,
    .tab5 #tab5-b2,
    .tab5 #tab5-b3,
    .tab5 #tab5-b4,
    .tab5 #tab5-b5,
    .tab5 #tab5-b6,
    .tab5 #tab5-b7,
    .tab5 #tab5-b8,
    .tab5 #tab5-b9 {
        display: none;
        padding: 18px 0 0 0;
    }

    .tab_parent:has(#tab5-1:checked) ~ #tab5-b1,
    .tab_parent:has(#tab5-2:checked) ~ #tab5-b2,
    .tab_parent:has(#tab5-3:checked) ~ #tab5-b3,
    .tab_parent:has(#tab5-4:checked) ~ #tab5-b4,
    .tab_parent:has(#tab5-5:checked) ~ #tab5-b5,
    .tab_parent:has(#tab5-6:checked) ~ #tab5-b6,
    .tab_parent:has(#tab5-7:checked) ~ #tab5-b7,
    .tab_parent:has(#tab5-8:checked) ~ #tab5-b8,
    .tab_parent:has(#tab5-9:checked) ~ #tab5-b9 {
        display: block;
    }


    .s05_inr01_tag_list {
        margin: 0 0 2vw;
    }

    .s05_inr01_tag_list span {
        background: #ddd;
        font-size: 16px;
        padding: 8px 16px;
        display: inline-block;
        border-radius: 8px;
        margin: 0 0 4px 0;
    }

    h3.s05_inr01_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        font-weight: normal;
        margin: 0 0 2vw;
    }

    p.s05_inr01_txt01,
    p.s05_inr01_txt02 {
        margin: 0 0 2vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
    }

    p.s05_inr01_txt03 {
        margin: 0;
    }

    p.s05_inr01_txt04 {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        font-weight: normal;
        margin: 0 0 2vw;
    }

    p.s05_inr01_txt04 span {
        font-size: 64%;
    }









    section#s06 {
        max-width: 1280px;
        padding: 0;
        margin: 0 auto 8vw;
    }

    h2.s06_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s06_ttl::after {
        content: "";
        width: calc(100% - 5em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 5em;
        top: 50%;
    }

    .s06_inr01 {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 20px;
    }

    .s06_inr01_box01 {
        padding: 0 2vw;
    }

    p.s06_inr01_box_txt01 {
        margin: 0 0 2vw;
        font-size: 16px;
        font-family: sans-serif;
    }

    p.s06_inr01_box_txt02 {
        font-size: clamp(18px, 2.4vw, 28px);
        display: inline-block;
        border-radius: 8px;
        margin: 0 0 2vw;
    }

    p.s06_inr01_box_txt03 {
        margin: 0 0 2vw;
        font-size: 16px;
        font-family: sans-serif;
        border: solid 1px;
        padding: 1.6vw;
        text-align: center;
    }


    .gmap {
        height: 0;
        overflow: hidden;
        padding-bottom: 80%;
        position: relative;
    }

    .gmap iframe {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
    }






    section#s07 {
        max-width: 1280px;
        margin: 0 auto 8vw;
        padding: 0;
    }

    .s07_inr01 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 2vw;
        margin: 0 0 8vw;
    }

    .s07_inr01_box {
        position: relative;
    }

    .s07_inr01_box_txt {
        background: #2d2830;
        color: #fff;
        position: absolute;
        left: 0;
        bottom: 2em;
        width: 60%;
        padding: 10px;
    }

    h2.s07_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s07_ttl::after {
        content: "";
        width: calc(100% - 4em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 4em;
        top: 50%;
    }









    footer {
        background: #eee;
        padding: 8vw 0 0;
    }

    .footer_inr01 {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 1vw;
        max-width: 1280px;
        margin: 0 auto 4vw;
        padding: 0 25px;
    }

    .footer_inr02 {
        background: #2d2830;
        text-align: center;
        padding: 1vw;
        font-size: 12px;
        color: #fff;
    }

    .footer_inr01_box > ul {
        list-style: none;
        padding: 0;
    }

    .footer_inr01_box > ul li {
        font-family: sans-serif;
    }

    .footer_inr01_box > ul li ul {
        padding-left: 1em;
    }

    .footer_inr01_box a {
        text-decoration: none;
        color: #222;
        font-size: 16px;
        font-family: sans-serif;
    }

    .footer_inr01_box > ul li {
        line-height: 2.4em;
    }


    img.footer_img01 {
        width: 40%;
        margin: 0 10px 20px 0;
    }

    img.footer_img02 {
        width: 40%;
        margin: 0 10px 20px 0;
    }

    img.footer_img03,
    img.footer_img04 {
        margin: 0 0 10px;
        width: 100%;
    }

}














































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

    .pc_none {
        display: none;
    }

    header {
        background: rgba(0, 0, 0, 0.28);
        position: fixed;
        width: 100%;
        z-index: 1;
    }

    .header_box {
        width: 100%;
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 240px 1fr auto auto auto auto auto auto auto;
        align-items: center;
        grid-gap: 36px;
        height: 98px;
        color: #fff;
    }

    a.header_box_link {
        text-decoration: none;
        color: #fff;
        font-size: 14px;
        letter-spacing: 2px;
    }

    a.header_box_link:hover {
        text-decoration: underline;
    }




    .fv {
        background: url(img/fv_001.webp);
        height: 100vh;
        background-size: 2500px;
        background-repeat: no-repeat;
        background-position: center;
        position: relative;
        padding: 0 25px;
    }

    img.fv_002 {
        position: absolute;
        bottom: 0;
        left: 0;
    }

    .fv_box {
        max-width: 1000px;
        margin: 0 auto;
        height: 100vh;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        align-items: center;
    }

    .fv_box_blc01 {
        color: #fff;
        margin-top: 4vw;
    }

    .fv_box_blc01_txt01 {
        font-size: clamp(17px, 2.2vw, 24px);
        line-height: 1.4em;
        letter-spacing: 1px;
        text-align: center;
        margin-bottom: 3vw;
    }

    h1.fv_box_blc01_ttl01 {
        font-weight: normal;
        font-size: clamp(20px, 2.8vw, 30px);
        letter-spacing: 4px;
        text-align: center;
        margin: 0.6vw 0 3vw;
        line-height: 1.6em;
    }

    h1.fv_box_blc01_ttl01 strong {
        font-size: clamp(30px, 7vw, 80px);
        font-weight: normal;
        letter-spacing: 0.2em;
    }

    h1.fv_box_blc01_ttl01 span {
        font-size: 180%;
        font-weight: normal;
    }


    .fv_box_blc01_txt02 {
        text-align: center;
        font-size: 20px;
        letter-spacing: 8px;
        position: relative;
        margin: 0 auto 3vw;
    }

    .fv_box_blc01_txt02::before {
        content: "";
        width: calc(50% - 4em);
        height: 1px;
        background: #fff;
        position: absolute;
        top: 50%;
        left: 0;
    }

    .fv_box_blc01_txt02::after {
        content: "";
        width: calc(50% - 4em);
        height: 1px;
        background: #fff;
        position: absolute;
        top: 50%;
        right: 0;
    }

    a.fv_link {
        display: block;
        background: #fff;
        text-align: center;
        width: 80%;
        margin: 0 auto 2vw;
        line-height: 2.6em;
        text-decoration: none;
        color: #2d2830;
        font-size: clamp(20px, 2.8vw, 30px);
        letter-spacing: 2px;
        position: relative;
        transition: 0.2s;
        border-radius: 4px;
    }

    a.fv_link::after {
        content: "";
        width: 0.4em;
        height: 0.4em;
        border-top: solid 1px;
        border-right: solid 1px;
        position: absolute;
        top: 50%;
        right: 20px;
        transform: rotate(45deg) translateY(-50%);
        transform-origin: top;
    }

    a.fv_link:hover {
        color: #fff;
        background: #2d2830;
        transition: 0.4s;
    }










    main {
        background: url(img/main_bg.webp);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: top;
        padding: 4vw 25px 0px;
    }




    section#s01 {
        margin-bottom: 8vw;
    }

    .s01_inr {
        max-width: 1280px;
        margin: 0 auto;
    }

    .s01_inr_box {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 30px;
    }

    img.s01_img00 {
        width: 48%;
        display: block;
        margin: 0 auto -26px;
        mix-blend-mode: multiply;
    }

    .s01_inr_box_blc_element {
        background: rgba(255, 255, 255, 0.6);
        border-radius: 12px;
        padding: 1.6vw;
    }

    h2.s01_ttl {
        color: #2c272f;
        margin: 0 auto 4vw;
        width: fit-content;
        font-size: clamp(32px, 4vw, 40px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s01_ttl::before {
        content: "";
        width: 100%;
        height: 2px;
        background: #2c272f;
        position: absolute;
        left: 0;
        bottom: -16px;
    }

    h2.s01_ttl::after {
        content: "";
        width: 80%;
        height: 2px;
        background: #2c272f;
        position: absolute;
        left: 0;
        bottom: -24px;
    }

    .s01_inr_box_blc_element_txt01 {
        font-size: 20px;
        letter-spacing: 4px;
    }





    .s01_inr_box_blc_element_ttl {
        position: relative;
        font-size: clamp(18px, 2vw, 28px);
        letter-spacing: 4px;
        font-weight: normal;
        margin: 0 0 30px;
    }

    .s01_inr_box_blc_element_ttl::before {
        content: "";
        width: 100%;
        height: 2px;
        background: #c9b2a0;
        position: absolute;
        left: 0;
        bottom: -6px;
    }

    .s01_inr_box_blc_element_ttl::after {
        content: "";
        width: 80%;
        height: 2px;
        background: #c9b2a0;
        position: absolute;
        left: 0;
        bottom: -14px;
    }

    p.s01_inr_box_blc_element_txt02 {
        text-align: justify;
        line-height: 2em;
        margin: 2.6em 0 0;
        letter-spacing: 1px;
    }





    section#s02 {
        position: relative;
        margin-bottom: 8vw;
    }

    .s02_inr02_box {
        max-width: 620px;
        margin: 0 auto;
        position: relative;
        padding: 8vw 12vw 10vw;
        z-index: 1;
        color: #482f19;
    }

    .s02_inr01 {
        position: absolute;
        height: 100%;
        width: calc(50vw - 310px + 620px);
        padding-left: 6vw;
        top: -6vw;
        left: -25px;
        background: rgba(255, 255, 255, 0.4);
        border-top-right-radius: 50em;
        border-bottom-right-radius: 50em;
    }


    .s02_inr02::after {
        content: "";
        position: absolute;
        top: 0;
        right: -25px;
        background: rgba(91, 80, 76, 0.4);
        height: 100%;
        width: calc(50vw - 310px + 620px);
        padding-left: 6vw;
        border-top-left-radius: 50em;
        border-bottom-left-radius: 50em;
    }

    h2.s02_inr02_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 2vw;
    }


    h2.s02_inr02_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 2vw;
    }

    h2.s02_inr02_ttl strong {
        position: relative;
    }

    h2.s02_inr02_ttl strong::after {
        content: "";
        z-index: -1;
        position: absolute;
        left: -10px;
        bottom: -0.4em;
        width: 100%;
        height: 1em;
        padding: 0 10px;
        background: #fff;
    }


    p.s02_inr02_txt {
        font-family: sans-serif;
        text-align: justify;
        line-height: 2em;
        letter-spacing: 1px;
        font-weight: bold;
    }

    p.s02_inr02_txt span {
        background: #fff;
        padding: 0.4em;
    }







    section#s03 {
        margin-bottom: 8vw;
    }

    .s03_inr01 {
        margin: 0 calc(50% - 50vw) 4vw;
        background: linear-gradient(90deg, transparent 0%, #000 46%, #000 100%);
    }

    .s03_inr01_box01 {
        max-width: 1280px;
        margin: 0 auto;
        padding: 60px 25px;
        color: #fff;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 0;
    }


    .s03_inr01_box01_blc01 {
        text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.8);
    }

    .s03_inr01_box01_blc01_txt01 {
        font-size: clamp(26px, 2.6vw, 34px);
    }

    .s03_inr01_box01_blc01_txt01 span {
        width: 2em;
        height: 1em;
        display: inline-block;
        position: relative;
    }

    .s03_inr01_box01_blc01_txt01 span::before {
        content: "";
        width: 2em;
        height: 1px;
        background: #fff;
        position: absolute;
        top: 60%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    .s03_inr01_box01_blc01_txt01 span::after {
        content: "";
        width: 2em;
        height: 1px;
        background: #fff;
        position: absolute;
        top: 60%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(45deg);
    }

    h2.s03_inr01_box01_blc01_ttl {
        font-size: clamp(30px, 6vw, 80px);
        font-weight: normal;
        letter-spacing: 12px;
        margin: 0;
    }

    h2.s03_inr01_box01_blc01_ttl span {
        letter-spacing: 0;
    }

    .s03_inr01_box01_blc01_txt02 {
        text-align: justify;
        letter-spacing: 1px;
        line-height: 1.8em;
    }

    .s03_inr01_box02 video {
        height: 100%;
        object-fit: cover;
    }









    .s03_inr02_box {
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 25px;
    }


    h2.s03_inr02_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 2vw;
    }

    h2.s03_inr02_ttl span {
        position: relative;
    }

    h2.s03_inr02_ttl span::before {
        content: "・・";
        position: absolute;
        top: -1em;
    }

    .s03_inr02_box_blc02,
    .s03_inr02_box_blc01 {
        display: flex;
        flex-direction: column;
    }


    .s03_inr02_box_blc01 h3,
    .s03_inr02_box_blc02 h3 {
        font-size: clamp(20px, 3vw, 30px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 0.4em;
        font-family: sans-serif;
    }

    .s03_inr02_box_blc00_element_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        margin: 0 0 1vw;
    }

    .s03_inr02_box_blc00_element_ttl span {
        position: relative;
    }

    .s03_inr02_box_blc00_element_ttl span::before {
        content: "・・";
        position: absolute;
        top: -1em;
        left: 0;
    }

    .s03_inr02_box_blc01_element {
        background: rgba(200, 56, 54, 0.4);
        border-radius: 12px;
        padding: 2vw;
        height: 100%;
        position: relative;
    }

    .s03_inr02_box_blc02_element {
        background: rgba(54, 151, 212, 0.4);
        border-radius: 12px;
        padding: 2vw;
        height: 100%;
        position: relative;
    }

    img.s03_inr02_box_blc00_element_img {
        position: absolute;
        top: -12%;
        left: 4%;
        width: 20%;
    }

    .s03_inr02_box_blc01_element p,
    .s03_inr02_box_blc02_element p {
        font-family: sans-serif;
        text-align: justify;
        line-height: 1.8em;
        font-size: clamp(16px, 2.2vw, 22px);
    }

    .s03_inr02_box_blc01_element p strong {
        color: #c61d1e;
        background: #fff;
        padding: 11px;
        border-radius: 8px;
    }








    section#s04 {
        max-width: 1280px;
        margin: 0 auto 4vw;
        padding: 0 25px;
    }

    .s04_inr01 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 2vw;
        margin: 0 0 2vw;
    }

    p.s04_txt {
        margin: 0 0 4vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
    }

    .s04_inr01_box {
        background-color: #f7f7f7;
        border-radius: 16px;
        padding: 30px;
        background-image: url(img/s04_inr01_box_img01.png), url(img/s04_inr01_box_img02.png);
        background-repeat: no-repeat, no-repeat;
        background-position: top 20px left 20px, bottom 20px right 20px;
        background-size: 60px;
        font-family: sans-serif;
    }

    h3.s04_inr01_box_ttl {
        font-size: clamp(18px, 1.6vw, 22px);
        font-weight: normal;
        margin: 0 0 12px;
    }

    .s04_inr01_box_txt01 {
        border-bottom: solid 2px;
        padding-bottom: 12px;
        margin-bottom: 12px;
    }

    .s04_inr01_box_txt02 {
        font-size: 14px;
        text-align: justify;
        line-height: 1.8em;
    }

    h2.s04_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s04_ttl::after {
        content: "";
        width: calc(100% - 4em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 4em;
        top: 50%;
    }

    .s04_inr02 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 2vw;
        margin-bottom: 3vw;
    }

    .s04_inr02_box_ttl {
        font-size: clamp(30px, 4vw, 38px);
        margin: 1vw 0;
    }

    .s04_inr02_box_txt {
        font-size: clamp(16px, 2.2vw, 22px);
        line-height: 1.8em;
    }

    .s04_inr03 {
        position: relative;
    }

    p.s04_inr03_txt {
        position: absolute;
        top: 2em;
        text-align: center;
        margin: 0 auto;
        width: 100%;
        font-size: clamp(20px, 3vw, 30px);
        font-family: sans-serif;
        line-height: 2em;
        z-index: 1;
    }







    section#call_to_action {
        background: #2d2830;
        margin: 0 calc(50% - 50vw) 8vw;
        padding: 10vw;
    }

    .call_to_action_inr {
        max-width: 1000px;
        padding: 0 25px;
        margin: 0 auto;
        display: flex;
        justify-content: space-evenly;
    }

    a.call_to_action_btn {
        border: solid 1px;
        color: #fff;
        width: 40%;
        padding: 2vw;
        box-sizing: border-box;
        position: relative;
        text-decoration: none;
        font-size: clamp(20px, 2vw, 30px);
        letter-spacing: 2px;
        text-align: center;
        font-weight: normal;
        transition: 0.2s;
    }

    a.call_to_action_btn span {
        display: block;
        background: #2d2830;
        position: absolute;
        left: 50%;
        top: calc(-0.5em - 10px);
        line-height: 1em;
        transform: translateX(-50%);
        letter-spacing: 4px;
        font-size: 16px;
        border-radius: 2em;
        padding: 10px 2em;
        transition: 0.2s;
    }

    a.call_to_action_btn::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 2vw;
        width: 0.8em;
        height: 0.8em;
        border-top: solid 1px;
        border-right: solid 1px;
        transform: rotate(45deg) translateY(-50%);
        transform-origin: top;
    }

    a.call_to_action_btn:hover {
        background: #fff;
        color: #2d2830;
    }

    a.call_to_action_btn:hover span {
        background: #fff;
    }











    section#s05 {
        max-width: 1280px;
        margin: 0 auto 8vw;
        padding: 0 25px;
    }

    .s05_inr01 {}

    h2.s05_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s05_ttl::after {
        content: "";
        width: calc(100% - 4em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 4em;
        top: 50%;
    }

    p.s05_txt {
        margin: 0 0 4vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
    }



    .tab5 {
        width: 100%;
        margin: 0 auto;
    }

    .tab5 .tab-content {
        margin: 0;
    }

    .tab_parent {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        margin: 0 0 2vw;
    }

    .tab5 label {
        font-size: clamp(14px, 1.6vw, 20px);
        text-align: center;
        line-height: 1.2em;
        padding: 20px;
        border: solid 2px #2d2830;
    }

    .tab5 label:nth-child(n + 3) {
        border-left: none;
    }

    .tab5 label:nth-child(n + 11) {
        border-top: none;
    }

    .tab5 label:nth-child(12n) {
        border-left: solid 2px #2d2830;
    }

    .tab5 label:hover {}

    .tab5 input:checked + label {
        background: #2d2830;
        color: #fff;
    }

    .tab5 input {
        display: none;
    }

    .tab5 #tab5-b1,
    .tab5 #tab5-b2,
    .tab5 #tab5-b3,
    .tab5 #tab5-b4,
    .tab5 #tab5-b5,
    .tab5 #tab5-b6,
    .tab5 #tab5-b7,
    .tab5 #tab5-b8,
    .tab5 #tab5-b9 {
        display: none;
        padding: 18px 0 0 0;
    }

    .tab_parent:has(#tab5-1:checked) ~ #tab5-b1,
    .tab_parent:has(#tab5-2:checked) ~ #tab5-b2,
    .tab_parent:has(#tab5-3:checked) ~ #tab5-b3,
    .tab_parent:has(#tab5-4:checked) ~ #tab5-b4,
    .tab_parent:has(#tab5-5:checked) ~ #tab5-b5,
    .tab_parent:has(#tab5-6:checked) ~ #tab5-b6,
    .tab_parent:has(#tab5-7:checked) ~ #tab5-b7,
    .tab_parent:has(#tab5-8:checked) ~ #tab5-b8,
    .tab_parent:has(#tab5-9:checked) ~ #tab5-b9 {
        display: block;
    }


    .s05_inr01_tag_list {
        margin: 0 0 2vw;
    }

    .s05_inr01_tag_list span {
        background: #eee;
        font-size: clamp(18px, 2.4vw, 28px);
        padding: 20px;
        display: inline-block;
        border-radius: 8px;
        margin: 0 10px 12px 0;
    }

    h3.s05_inr01_ttl {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        font-weight: normal;
        margin: 0 0 2vw;
    }

    p.s05_inr01_txt01,
    p.s05_inr01_txt02 {
        margin: 0 0 2vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
    }

    p.s05_inr01_txt03 {
        margin: 0;
    }

    p.s05_inr01_txt04 {
        font-size: clamp(30px, 4vw, 38px);
        letter-spacing: 2px;
        font-weight: normal;
        margin: 0 0 2vw;
    }

    p.s05_inr01_txt04 span {
        font-size: 64%;
    }









    section#s06 {
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto 8vw;
    }

    h2.s06_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s06_ttl::after {
        content: "";
        width: calc(100% - 5em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 5em;
        top: 50%;
    }

    .s06_inr01 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .s06_inr01_box01 {
        padding: 0 2vw;
    }

    p.s06_inr01_box_txt01 {
        margin: 0 0 2vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
    }

    p.s06_inr01_box_txt02 {
        font-size: clamp(18px, 2.4vw, 28px);
        display: inline-block;
        border-radius: 8px;
        margin: 0 0 2vw;
    }

    p.s06_inr01_box_txt03 {
        margin: 0 0 2vw;
        font-size: clamp(18px, 1.6vw, 22px);
        font-family: sans-serif;
        letter-spacing: 1px;
        border: solid 2px;
        padding: 1.6vw;
    }


    .gmap {
        height: 0;
        overflow: hidden;
        padding-bottom: 80%;
        position: relative;
    }

    .gmap iframe {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
    }






    section#s07 {
        max-width: 1280px;
        margin: 0 auto 8vw;
        padding: 0 25px;
    }

    .s07_inr01 {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        grid-gap: 2vw;
        margin: 0 0 8vw;
    }

    .s07_inr01_box {
        position: relative;
    }

    .s07_inr01_box_txt {
        background: #2d2830;
        color: #fff;
        position: absolute;
        left: 0;
        bottom: 2em;
        width: 60%;
        padding: 10px;
    }

    h2.s07_ttl {
        margin: 0 0 2vw;
        font-size: clamp(30px, 4vw, 38px);
        font-weight: normal;
        letter-spacing: 4px;
        position: relative;
    }

    h2.s07_ttl::after {
        content: "";
        width: calc(100% - 4em);
        height: 1px;
        background: #000;
        position: absolute;
        left: 4em;
        top: 50%;
    }









    footer {
        background: #eee;
        padding: 8vw 0 0;
    }

    .footer_inr01 {
        display: grid;
        grid-template-columns: repeat(3, 1fr) 40%;
        grid-gap: 1vw;
        max-width: 1280px;
        margin: 0 auto 4vw;
        padding: 0 25px;
    }

    .footer_inr02 {
        background: #2d2830;
        text-align: center;
        padding: 1vw;
        font-size: 12px;
        color: #fff;
    }

    .footer_inr01_box > ul {
        list-style: none;
        padding: 0;
    }

    .footer_inr01_box > ul li {
        font-family: sans-serif;
    }

    .footer_inr01_box > ul li ul {
        padding-left: 1em;
    }

    .footer_inr01_box a {
        text-decoration: none;
        color: #222;
        font-size: 16px;
        font-family: sans-serif;
    }

    .footer_inr01_box > ul li {
        line-height: 2.4em;
    }


    img.footer_img01 {
        height: 6vw;
        margin: 0 1vw 2vw 0;
    }

    img.footer_img02 {
        height: 6vw;
        margin: 0 0 2vw;
    }

    img.footer_img03,
    img.footer_img04 {
        margin: 0 0 1vw;
        width: 80%;
    }


}




.fadeInDown {
    -webkit-animation-fill-mode: both;
    -ms-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 1.2s;
    -ms-animation-duration: 1.2s;
    animation-duration: 1.2s;
    -webkit-animation-name: fadeInDown;
    animation-name: fadeInDown;
    visibility: visible !important;
}

@-webkit-keyframes fadeInDown {
    0% {
        opacity: 0;
        -webkit-transform: translateY(30px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
    }
}

@keyframes fadeInDown {
    0% {
        opacity: 0;
        -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
        transform: translateY(30px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }
}
