@charset "UTF-8";
@media screen and (min-width: 0px) {

    .privacy-policy,
    .access,
    .cancellation-policy,
    .privacy-policy,
    .other {
        padding-top: 30px;
        padding-bottom: 50px;
    }

    .p-box01 {
        color: rgb(var(--theme-color));
        background-color: rgb(var(--theme-color-light));
    }

    .p-box02 {
        color: rgb(var(--theme-color));
        background-color: rgb(var(--white));
    }

    .p-box03 {
        color: rgb(var(--white));
        background-color: rgb(var(--theme-color));
        background-image: url(../images/bg_theme.jpg);
        background-size: cover;
        background-position: top center;
        background-repeat: no-repeat;
        background-blend-mode: luminosity;
    }

    .p-box03 + .p-box03 {
        margin-top: 25px;
    }

    .common_ttl_h2 {
        width: fit-content;
        margin: 0 auto 30px;
        padding: 1px 35px 3px;
        font-size: var(--font-size-normal);
        text-align: center;
        line-height: 1;
        letter-spacing: 0.2em;
        text-transform: lowercase;
        border: 1px solid;
        border-radius: 20px;
    }

    .common_ttl_h3 {
        font-weight: bold;
        font-size: var(--font-size-normal);
        line-height: 2;
    }

    /* ==========================================================
Slick
========================================================== */
    .js-slider:not(.slick-slider) {
        display: none;
    }

    .slick-slider,
    .slick-dotted.slick-slider {
        position: relative;
        margin: 0 auto;
        padding: 0;
    }

    .js-slider .slick-track {
        display: flex;
        justify-content: center;
    }

    .js-slider .slick-slide {
        display: grid;
        max-width: 100vw;
        height: auto;
        margin: 0;
        overflow: hidden;
    }

    .js-slider .slick-slide img {
        width: 100%;
        height: auto;
    }

    .js-slider .slick-arrow {
        position: absolute;
        top: 50%;
        z-index: 10;
        width: 54px;
        height: 100%;
        font-size: 0;
        text-align: center;
        padding: 0;
        border: none;
        background: no-repeat;
        cursor: pointer;
    }

    .js-slider .slick-prev {
        left: 0;
        transform: translate(0, -50%);
    }

    .js-slider .slick-next {
        right: 0;
        transform: translate(0, -50%);
    }

    .js-slider .slick-prev:before,
    .js-slider .slick-next:before {
        font-family: "Font Awesome 7 Free" !important;
        font-size: 30px !important;
        font-weight: 700;
        color: #000;
        line-height: 1;
        opacity: 1 !important;
        text-shadow: 0 0 6px white;
    }

    .js-slider .slick-prev::before {
        content: "\f053";
    }

    .js-slider .slick-next::before {
        content: "\f054";
    }

    .p-box03.concept {
        padding-top: 35px;
    }

    .p-box03.concept h2 {
        position: relative;
        max-width: calc(var(--logo-size-width) / 2);
        margin: 0 auto 20px;
        padding-bottom: 10px;
    }

    .p-box03.concept h2 img {
        height: auto;
    }

    .p-box03.concept h2::after {
        position: absolute;
        top: 100%;
        left: 50%;
        content: "";
        width: 20px;
        height: 2px;
        translate: -50% 0;
        border-radius: 10px;
        background-color: rgb(var(--white));
    }

    .concept_cont h3 {
        font-size: var(--font-size-normal);
        text-transform: lowercase;
        text-align: center;
        line-height: 1;
        letter-spacing: .2em;
        margin-bottom: 35px;
    }

    .concept_cont p {
        line-height: 2;
    }

    .about {
        position: relative;
        margin-top: 80px;
        padding-top: 80px;
        padding-bottom: 50px;
    }

    .about::before {
        position: absolute;
        top: 0;
        left: 50%;
        display: block;
        content: "";
        width: 1px;
        height: 60px;
        background-color: rgb(var(--theme-color));
        translate: -50% -50%;
    }

    .about_ttl_logo {
        width: fit-content;
        margin: 0 auto;
        margin-bottom: 27px;
        text-align: center;
    }

    .about_ttl_logo img {
        height: auto;
    }

    .about_cont {
        margin-bottom: 35px;
    }

    .about_cont p {
        line-height: 2;
    }

    .about_images {
        display: flex;
        justify-content: center;
        gap: 18px;
    }

    .about_images picture {
        aspect-ratio: 1;
        border-radius: 50%;
        overflow: hidden;
    }

    .p-box01.menu {
        padding-top: 30px;
    }

    .p-box01.menu .common_ttl_h2 {
        margin-bottom: 10px;
    }

    .menu_cont {
        padding-top: 24px;
        padding-bottom: 20px;
    }

    .menu_cont h3 {
        display: flex;
        justify-content: center;
        align-items: flex-start;
        gap: .5em;
        font-size: var(--font-size-normal);
        text-align: center;
        cursor: pointer;
    }

    .menu_cont h3::after {
        display: block;
        font-family: "Font Awesome 7 Free";
        content: "\f0d7";
        font-weight: bold;
    }

    .menu_cont .u-active h3::after {
        content: "\f0d8";
    }

    .menu_list {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-top: 36px;
    }

    .menu_list > * {
        padding-bottom: 5px;
        border-bottom: 1px solid rgb(var(--gray));
    }

    .menu_list dl {
        display: flex;
        align-items: end;
        justify-content: space-between;
        flex-wrap: wrap;
        padding-bottom: 5px;
        color: rgb(var(--gray));
    }

    .menu_list dl dd {
        margin-left: auto;
        text-align: end;
    }

    .menu_item_head {
        font-size: var(--font-size-small);
    }

    .menu_list .menu_item_sub {
        font-size: var(--font-size-small);
        color: rgb(var(--lightgray));
        line-height: 1.5;
    }

    .menu_list > .menu_item_sub {
        padding-bottom: 10px;
    }

    .menu_list + .notes {
        margin-top: 30px;
        text-align: right;
        font-size: var(--font-size-small);
        color: rgb(var(--lightgray));
    }

    .menu_list > .menu_item_sub ul {
        margin: 0;
        padding: 0;
    }

    .menu_list > .menu_item_sub ul li {
        padding-left: 1em;
        text-indent: -1em;
        list-style: none;
    }

    .menu_list > .menu_item_sub ul li::before {
        display: inline-block;
        content: "";
        width: .35em;
        height: .35em;
        margin-right: .65em;
        vertical-align: middle;
        border-radius: 50%;
        background: rgb(var(--lightgray));
    }

    .menu_list > *:last-child {
        border: none;
    }

    .access_cont {
        display: flex;
        align-items: end;
        justify-content: space-between;
        margin-bottom: 10px;
        padding-bottom: 5px;
        border-bottom: 1px solid;
    }

    .access_cont dd {
        text-align: end;
    }

    .access iframe {
        width: 100%;
        aspect-ratio: 4/3;
    }

    .cancellation-policy .common_ttl_h2 {
        margin-bottom: 24px;
    }

    .cancellation-policy p {
        line-height: 2;
    }

    .cancellation-policy .cancell_ttl_sub {
        position: relative;
        font-size: var(--font-size-normal);
        text-transform: lowercase;
        text-align: center;
        line-height: 1;
        letter-spacing: .2em;
        font-weight: bold;
        margin-bottom: 22px;
        padding-top: 20px;
    }

    .cancellation-policy .cancell_ttl_sub::before {
        position: absolute;
        bottom: 100%;
        left: 50%;
        content: "";
        width: 20px;
        height: 2px;
        border-radius: 10px;
        translate: -50% 0;
        background-color: rgb(var(--white));
    }

    .cancellation-policy .cancell_ttl_sub + p {
        text-align: justify;
        word-break: break-all;
    }

    .cancellation-policy_cont {
        margin-top: 8px;
        padding-top: 16px;
        border-top: 1px solid;
    }

    .cancellation-policy_cont h3 {
        text-align: center;
        font-size: var(--font-size-normal);
        font-weight: bold;
        letter-spacing: .2em;
    }

    .cancellation-policy_cont h3 + p {
        text-align: center;
    }

    .cancellation-policy_cont table {
        margin: 0 auto;
        margin-top: 20px;
        margin-bottom: 25px;
        text-align: left;
        font-size: var(--font-size-normal);
    }

    .cancellation-policy_cont table th,
    .cancellation-policy_cont table th {
        padding: 0;
    }

    .cancellation-policy_cont table th {
        padding-right: 1em;
    }

    .cancellation-policy_cont .notes {
        margin-bottom: 24px;
        font-size: var(--font-size-small);
    }

    .privacy-policy section {
        margin-top: 12px;
    }

    .privacy-policy .common_ttl_h3 {
        margin-bottom: 4px;
    }

    .privacy-policy section p {
        text-align: justify;
        word-break: break-all;
    }

    .privacy-policy .signature {
        margin-top: 20px;
        text-align: right;
    }

    .menu_other {
        display: flex;
        justify-content: center;
        gap: 25px;
        margin: 0;
        padding: 0;
    }

    .menu_other li.other_item {
        list-style: none;
        border-radius: 10px;
        overflow: hidden;
    }

    .menu_other li.other_item a {
        display: block;
        background-color: rgb(var(--theme-color));
        background-image: radial-gradient(circle at bottom left, rgba(var(--white), 1) 0%, rgba(var(--lightgray), 1) 100%);
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-blend-mode: overlay;
        transition: .3s;
    }

    .menu_other li.other_item a:hover {
        background-color: rgb(var(--theme-color-light));
    }

    .menu_other li.other_item img {
        height: auto;
        pointer-events: none;
    }
}

@media screen and (max-width: 768px) {
    .about_ttl_logo.estlash {
        max-width: 97px;
    }

    .about_ttl_logo.estbrow {
        max-width: 125px;
    }
}

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

    .privacy-policy,
    .access,
    .cancellation-policy,
    .privacy-policy,
    .other {
        padding-top: 60px;
        padding-bottom: 100px;
    }

    .p-box03 + .p-box03 {
        margin-top: 50px;
    }

    .common_ttl_h2 {
        margin-bottom: 60px;
        padding: 2px 70px 6px;
        border: 1px solid;
    }

    .js-slider .slick-slide {
        flex: 1;
        max-width: 960px;
    }

    .js-slider .slick-arrow {
        background-color: rgba(var(--white), .2);
    }

    .p-box03.concept {
        padding-top: 70px;
    }

    .p-box03.concept h2 {
        max-width: var(--logo-size-width);
        margin-bottom: 40px;
        padding-bottom: 20px;
    }

    .p-box03.concept h2::after {
        width: 40px;
        height: 3px;
        border-radius: 10px;
    }

    .concept_cont h3 {
        margin-bottom: 35px;
    }

    .about {
        margin-top: 160px;
        padding-top: 160px;
        padding-bottom: 100px;
    }

    .about::before {
        width: 2px;
        height: 120px;
    }

    .about_images {
        gap: 36px;
    }

    .about_cont {
        margin-bottom: 70px;
    }

    .p-box01.menu {
        padding-top: 60px;
    }

    .p-box01.menu .common_ttl_h2 {
        margin-bottom: 20px;
    }

    .menu_cont {
        padding-top: 48px;
        padding-bottom: 40px;
    }

    .menu_list {
        gap: 20px;
        margin-top: 72px;
    }

    .menu_list > * {
        padding-bottom: 10px;
        border-bottom: 2px solid rgb(var(--gray));
    }

    .menu_list dl {
        padding-bottom: 10px;
    }

    .menu_list > .menu_item_sub {
        padding-bottom: 20px;
    }

    .access_cont {
        margin-bottom: 20px;
        padding-bottom: 10px;
        border-bottom: 2px solid;
    }

    .access iframe {
        aspect-ratio: 2/1;
    }

    .cancellation-policy .common_ttl_h2 {
        margin-bottom: 48px;
    }

    .cancellation-policy .cancell_ttl_sub {
        margin-bottom: 44px;
        padding-top: 40px;
    }

    .cancellation-policy .cancell_ttl_sub::before {
        width: 40px;
        height: 3px;
        border-radius: 20px;
    }

    .cancellation-policy_cont {
        margin-top: 16px;
        padding-top: 32px;
        border-top: 2px solid;
    }

    .cancellation-policy_cont table {
        margin-top: 40px;
        margin-bottom: 50px;
    }

    .cancellation-policy_cont .notes {
        margin-bottom: 48px;
    }

    .privacy-policy section {
        margin-top: 24px;
    }

    .privacy-policy .common_ttl_h3 {
        margin-bottom: 8px;
    }

    .privacy-policy .signature {
        margin-top: 40px;
    }

    .menu_other {
        gap: 50px;
    }

    .menu_other li.other_item {
        border-radius: 50px;
    }
}