@charset "utf-8";

/* commons */
.section {
    position: relative;
    padding-block: 1px;
}
.section_ttl_wrap {
    overflow: hidden;
}
.section_ttl {
    text-align: center;
    color: #b09249;
    font-weight: 400;
}
.section_ttl_animation_wrap {
    display:inline-block;
    overflow: hidden;
}
.section_ttl_initial {
    color: #ca4928;
}
.section_ttl_decoration_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
}
.section_ttl_decoration {
    background: url(../../images/ttl_decoration.svg) no-repeat 50% 50% / contain;
}
.section_ttl_jp {
    text-align:center;
    font-weight: 700;
}
@media (min-width: 769px) {
    .section_ttl_wrap {
        margin-top: 50rem;
    }
    .section_ttl {
        font-size: 110rem;
        line-height: 1;
        letter-spacing: 0.1em;
    }
    .section_ttl_decoration_wrap {
        margin-top: -1rem;
    }
    .section_ttl_decoration {
        width: 83rem;
        height: 23rem;
    }
    .section_ttl_jp_wrap {
        margin-top: 15rem;
    }
    .section_ttl_jp {
        font-size: 36rem;
        letter-spacing: 0.1em;
    }
    .section_ttl_jp_dot_line_pc {
        position: relative;
    }
    .section_ttl_jp_dot_line_pc::after {
        content:"";
        position: absolute;
        bottom: -7rem;
        left:0;
        width:100%;
        border-bottom:4rem dotted #b09249;
    }
    .section_ttl_jp_str {
        font-size: 44rem;
    }
}
@media (max-width: 768px) {
    .section_ttl_wrap {
        margin-top: 55rem;
    }
    .section_ttl {
        font-size: 98rem;
        line-height: 1;
        letter-spacing: 0.1em;
    }
    .section_ttl_decoration_wrap {
        margin-top: -15rem;
    }
    .section_ttl_decoration {
        width: 115rem;
        height: 30rem;
    }
    .section_ttl_jp_wrap {
        margin-top: 16rem;
    }
    .section_ttl_jp {
        font-size: 46rem;
        letter-spacing: 0.1em;
    }
    .section_ttl_jp_dot_line_sp {
        position: relative;
    }
    .section_ttl_jp_dot_line_sp::after {
        content: "";
        position: absolute;
        bottom: -5rem;
        left: 0;
        width: 100%;
        border-bottom: 6rem dotted #b09249;
    }
    .section_ttl_jp_str {
        font-size: 54rem;
    }
}

.animation_ready .section_ttl_animation_cover {
    display: block;
    transform: translateY(100%);
}
.animation_loaded .is_animated .section_ttl_animation_cover {
    transform:translateY(0%);
    transition: transform 1.2s cubic-bezier(0.33, 1, 0.68, 1);
}

.animation_ready .section_ttl_inner {
    transform: translateY(100%);
}
.animation_loaded .is_animated .section_ttl {
    transform: translateY(0%);
    transition: 0.4s transform;
}

/* mv */
.mv {
    position: relative;
    overflow: hidden;
    background: #f0f5f9;
}
.mv::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 120rem;
}
.mv_inner {
    height: 100%;
    clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%);
}
.mv_box {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
}
.mv_slider {
    position:relative;
}
.mv_slider_cover {
    position: absolute;
    top:0;
    left:0;
}
.mv_slider_list {
    display: flex;
}
.mv_slider_list_copy {
    position: absolute;
    top:0;
    left: 100%;
}
.mv_slider_list > li {
    overflow: hidden;
}
@media (min-width: 769px) {
    .mv {
        height: 800rem;
    }
    .mv::after {
        background: url(../images/mv_wave.svg) no-repeat 50% 100% / 100% 120rem;
    }
    .mv_ttl {
        margin-top: 185rem;
    }
    .mv_slider {
        height: 300rem;
        margin-top: 72rem;
    }
    .mv_slider_list {
        gap: 24rem;
    }
    .mv_slider_list_copy {
        margin-left: 24rem;
    }
    .mv_slider_list > li {
        width: 480rem;
        height:300rem;
        border-radius:16rem;
    }
}
@media (max-width: 768px) {
    .mv {
        height: 900rem;
    }
    .mv::after {
        background: url(../images/mv_wave.svg) no-repeat 50% 100% / 100% 120rem;
    }
    .mv_ttl {
        margin-top: 210rem;
    }
    .mv_slider {
        height: 300rem;
        margin-top: 135rem;
    }
    .mv_slider_list {
        gap: 24rem;
    }
    .mv_slider_list_copy {
        margin-left: 24rem;
    }
    .mv_slider_list > li {
        width: 480rem;
        height:300rem;
        border-radius:16rem;
    }
}
.loading_open .mv_slider_cover {
    animation: mv_slider 100s linear infinite;
}
@keyframes mv_slider {
    0%{
        transform:translateX(0%);
    }
    100%{
        transform:translateX(-100%);
    }
}

/* greeting */
.greeting {
    background: #fdfde8;
}
.greeting_stripe {
    position: absolute;
    width: 100%;
    left: 0;
}
.greeting_box {
    position: relative;
    overflow: hidden;
    z-index: 1;
    margin-inline: auto;
}
.greeting_box_top {
    position: relative;
}
.greeting_box_img_wrap {
    position: relative;
    overflow: hidden;
}
.greeting_box_img {
    width: 100%;
}
.greeting_box_top_inner {
    position: absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}
.greeting_box_top_ttl {
    display: flex;
}
.greeting_box_top_ttl_word {
    display: block;
    border-radius: 50%;
    display:flex;
    justify-content: center;
    align-items: center;
    font-weight: 600;
    color:#fff;
}
.greeting_box_top_ttl_word:nth-child(1) {
    background: #ca4928;
}
.greeting_box_top_ttl_word:nth-child(2) {
    background: #da8c23;
}
.greeting_box_top_ttl_word:nth-child(3) {
    background: #55a86c;
}
.greeting_box_top_name {
    display: flex;
}
.greeting_box_top_name_jp {
    display: block;
    font-weight: 500;
}
.greeting_box_top_name_en {
    display: block;
    font-weight: 700;
    color: #5972de;
}
.greeting_box_top_katagaki {
    display: inline-block;
    background: #fff;
    color: #5972de;
    font-weight: 500;
}
.greeting_box_bottom {
    position: relative;
    overflow: hidden;
    background: #5972de;
    color: #fff;
}
@media (min-width: 769px) {
    .greeting {
        padding-bottom: 110rem;
    }
    .greeting_stripe {
        background: url(../images/greeting_stripe.png) repeat 50% 0% / 178rem auto;
        top: 400rem;
        height: 760rem;
    }
    .greeting_box {
        width: 960rem;
        margin-top: 80rem;
        border-radius: 16rem;
    }
    .greeting_box_img_wrap {
        height: 560rem;
    }
    .greeting_box_img {
        background: url(../images/greeting_box_img.jpg) no-repeat 50% 0 / cover;
        padding-top: calc(1320/1922*100%);
    }
    .greeting_box_top_inner {
        padding: 78rem 80rem;
    }
    .greeting_box_top_ttl {
        gap: 20rem;
    }
    .greeting_box_top_ttl_word {
        font-size:56rem;
        width: 72rem;
        height:72rem;
        padding-bottom: 0.3%;
    }
    .greeting_box_top_name {
        gap: 20rem;
        margin-top: 90rem;
        align-items: end;
    }
    .greeting_box_top_name_jp {
        font-size: 48rem;
        letter-spacing:0.1em;
    }
    .greeting_box_top_name_en {
        font-size: 22rem;
        letter-spacing: 0.02em;
    }
    .greeting_box_top_katagaki_wrap {
        margin-top: 24rem;
    }
    .greeting_box_top_katagaki {
        font-size: 20rem;
        letter-spacing: 0.1em;
        padding: 5rem 13rem;
        border-radius: 4rem;
    }
    .greeting_box_bottom {
        font-size: 18rem;
        letter-spacing: 0.1em;
        line-height: calc(38/18);
        padding: 67rem 82rem 70rem;
    }
}
@media (max-width: 768px) {
    .greeting {
        padding-bottom: 82rem;
    }
    .greeting_stripe {
        background: url(../images/greeting_stripe.png) repeat 50% 0% / 178rem auto;
        top: 550rem;
        height: 1160rem;
    }
    .greeting_box {
        width: 700rem;
        margin-top: 80rem;
        border-radius: 16rem;
    }
    .greeting_box_img_wrap {
        height: 560rem;
    }
    .greeting_box_img {
        background: url(../images/greeting_box_img_sp.jpg) no-repeat 50% 0 / cover;
        padding-top: calc(660/700*100%);
    }
    .greeting_box_top_inner {
        padding: 40rem;
    }
    .greeting_box_top_ttl {
        justify-content: center;
        gap: 30rem;
        margin-top: 77rem;
    }
    .greeting_box_top_ttl_word {
        font-size: 72rem;
        width: 108rem;
        height: 108rem;
    }
    .greeting_box_top_name {
        gap: 12rem;
        margin-top: 136rem;
        flex-direction: column;
    }
    .greeting_box_top_name_jp {
        font-size: 56rem;
        letter-spacing:0.1em;
    }
    .greeting_box_top_name_en {
        font-size: 24rem;
        letter-spacing: 0.04em;
    }
    .greeting_box_top_katagaki_wrap {
        margin-top: 30rem;
    }
    .greeting_box_top_katagaki {
        text-align: center;
        font-size: 22rem;
        letter-spacing: 0.1em;
        padding: 5rem 18rem;
        margin-left: -9rem;
        border-radius: 4rem;
    }
    .greeting_box_bottom {
        font-size: 26rem;
        letter-spacing: 0.1em;
        line-height: calc(48/26);
        padding: 66rem 48rem 70rem;
    }
}

/* philosophy */
.philosophy {
    position: relative;
}
.philosophy::before {
    content: "";
    display: block;
    position: absolute;
    z-index: 1;
    top: -1px;
    left: 0;
    width: 100%;
}
.philosophy::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 1;
    bottom: -1px;
    left: 0;
    width: 100%;
}
.philosophy_img_inner {
    position: relative;
    overflow: hidden;
}
.philosophy_img {
    width: 100%;
}
.philosophy_inner {
    position: absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    display:flex;
    justify-content: center;
    align-items: center;
}
.philosophy_box {
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
}
.philosophy_box_ttl {
    text-align: center;
    font-weight: 700;
    color: #b09249;
}
.philosophy_box_ttl_initial {
    color: #c62a26;
}
.philosophy_box_ttl_decoration {
    background: url(../../images/ttl_decoration.svg) no-repeat 50% 50% / contain;
    background-size: auto 100%;
}
.philosophy_box_txt {
    text-align: center;
    font-weight: 500;
}
.philosophy_box_txt_color {
    color: #da8c23;
}
@media (min-width: 769px) {
    .philosophy::before {
        height: 120rem;
        background: url(../images/philosophy_top_wave.svg) no-repeat 50% 0% / 100% 120rem;
    }
    .philosophy::after {
        height: 120rem;
        background: url(../images/philosophy_bottom_wave.svg) no-repeat 50% 100% / 100% 120rem;
    }
    .philosophy_img_inner {
        height: 840rem;
    }
    .philosophy_img {
        padding-top: calc(1880/2880*100%);
        background: url(../images/philosophy_img.jpg?v=2) no-repeat 50% 0% / cover;
    }
    .philosophy_box {
        border: 4rem dotted #b09249;
        width: 564rem;
        height: 564rem;
        margin-top: -80rem;
    }
    .philosophy_box_ttl {
        font-size: 56rem;
        letter-spacing: 0em;
        margin-top: 111rem;
    }
    .philosophy_box_ttl_decoration {
        margin-top: 26rem;
        height: 22rem;
    }
    .philosophy_box_txt {
        margin-top: 20rem;
        font-size: 30rem;
        letter-spacing: 0.1em;
        line-height: calc(60/30);
    }
    .philosophy_box_txt_str {
        font-size: 38rem;
    }
}
@media (max-width: 768px) {
    .philosophy::before {
        height: 120rem;
        background: url(../images/philosophy_top_wave_sp.svg) no-repeat 50% 0% / 100% 120rem;
    }
    .philosophy::after {
        height: 120rem;
        background: url(../images/philosophy_bottom_wave_sp.svg) no-repeat 50% 100% / 100% 120rem;
    }
    .philosophy_img_inner {
        height: 840rem;
    }
    .philosophy_img {
        padding-top: calc(940/750*100%);
        background: url(../images/philosophy_img_sp.jpg?v=2) no-repeat 50% 0% / cover;
    }
    .philosophy_box {
        border: 6rem dotted #b09249;
        width: 606rem;
        height: 606rem;
        margin-top: -86rem;
    }
    .philosophy_box_ttl {
        font-size: 72rem;
        letter-spacing: 0em;
        margin-top: 111rem;
    }
    .philosophy_box_ttl_decoration {
        margin-top: 13rem;
        height: 30rem;
    }
    .philosophy_box_txt {
        margin-top: 6rem;
        font-size: 36rem;
        letter-spacing: 0.1em;
        line-height: calc(68.4/36);
    }
    .philosophy_box_txt_str {
        font-size: 44rem;
        line-height: calc(79.2/44);
    }
}

/* overview */
.overview {
    background: #fff;
}
.overview_inner {
    margin-inline: auto;
    text-align:center;
}
.overview_box_ttl {
    font-weight: 700;
}
.overview_box_table {
    width: 100%;
    border-top: 1px solid #262626;
    border-left: 1px solid #262626;
    font-weight: 500;
}
.overview_box_table a {
    color: inherit;
}
.overview_box_table th,
.overview_box_table td {
    border-right: 1px solid #262626;
    border-bottom: 1px solid #262626;
}
.overview_box_table th {
    text-align: center;
    background: #55a86c;
    color:#fff;
    border-right: none;
}
.overview_box_table td {
    text-align: left;
    background:#fdfde8;
}
.overview_box_list {
    display: flex;
    justify-content: center;
}
.overview_box_list > li:nth-child(1) {
    --overview-color: #ca4928;
}
.overview_box_list > li:nth-child(2) {
    --overview-color: #da8c23;
}
.overview_box_list > li:nth-child(3) {
    --overview-color: #24aacb;
}
.overview_box_item_ttl {
    border: 1px solid #262626;
    background: #f0f5f9;
}
.overview_box_item_ttl_inner {
    width:100%;
    display:flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    background: var(--overview-color);
    font-weight: 500;
}
.overview_box_item_txt {
    font-weight: 500;
    text-align: center;
}
.overview_box_item_txt_str {
    position: relative;
    background: linear-gradient(transparent 75%, #ffff7f 75%);
}
@media (min-width: 769px) {
    .overview {
        padding-bottom: 76rem;
    }
    .overview_inner {
        width: 1120rem;
        margin-top: 70rem;
    }
    .overview_box + .overview_box {
        margin-top: 72rem;
    }
    .overview_box_ttl {
        font-size: 36rem;
        letter-spacing: 0.1em;
    }
    .overview_box_table {
        margin-top: 48rem;
        font-size: 18rem;
        letter-spacing: 0.1em;
    }
    .overview_box_table th,
    .overview_box_table td {
        padding: 19rem 22rem;
    }
    .overview_box_table th {
        width: 199rem;
    }
    .overview_box_list {
        gap: 20rem;
        margin-top: 48rem;
    }
    .overview_box_list > li {
        width: 360rem;
    }
    .overview_box_item_ttl {
        padding:15rem;
    }
    .overview_box_item_ttl_inner {
        height: 168rem;
        font-size: 64rem;
        letter-spacing:0.1em;
    }
    .overview_box_item_txt {
        margin-top: 20rem;
        font-size: 18rem;
        line-height:calc(38/18);
        letter-spacing:0.1em;
    }
    .overview_box_item_txt_str {
        font-size: 26rem;
        line-height: calc(46/26);
    }
}
@media (max-width: 768px) {
    .overview {
        padding-bottom: 60rem;
    }
    .overview_inner {
        margin-top: 55rem;
        margin-inline: 25rem;
    }
    .overview_box + .overview_box {
        margin-top: 100rem;
    }
    .overview_box_ttl {
        font-size: 46rem;
        line-height: calc(72/46);
        letter-spacing: 0.1em;
    }
    .overview_box_table {
        margin-top: 69rem;
        font-size: 26rem;
        letter-spacing: 0.1em;
    }
    .overview_box_table th,
    .overview_box_table td {
        padding: 36rem 25rem;
    }
    .overview_box_table th {
        width: 150rem;
    }
    .overview_box_list {
        gap: 40rem;
        margin-top: 68rem;
        flex-direction: column;
    }
    .overview_box_list > li {
        display: flex;
        gap: 26rem;
    }
    .overview_box_item_ttl {
        padding: 15rem;
        width: 248rem;
        height: 300rem;
    }
    .overview_box_item_ttl_inner {
        height: 100%;
        font-size: 64rem;
        letter-spacing:0.1em;
    }
    .overview_box_item_txt {
        text-align: left;
        font-size: 26rem;
        line-height: calc(46/26);
        letter-spacing: 0.1em;
        margin-top: -12rem;
    }
    .overview_box_item_txt_inner {
        margin-top: 0rem;
        width: 110%;
    }
    .overview_box_item_txt_str {
        font-size: 32rem;
        line-height: calc(46/32);
    }
}
