:root {
    --width: 1440;
    scroll-behavior: smooth;
    --z_index_header: 100;
    --z_index_modal: 200;
    --z_index_bg: -10;
    --font-en: "Jost", sans-serif;
    --font-gothic: "Noto Sans JP", sans-serif;
    --fw-thin: 100;
    --fw-ex-light: 200;
    --fw-light: 300;
    --fw-regular: 400;
    --fw-medium: 500;
    --fw-semi-bold: 600;
    --fw-bold: 700;
    --fw-ex-bold: 800;
    --fw-black: 900;
    --color-main: #1c467c;
    --color-accent: #b19469
}

@media screen and (min-width: 768px) {
    :root {
        scroll-padding:0
    }
}

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

*,*::before,*::after {
    box-sizing: border-box
}

body,h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dt,dd,figure {
    margin: 0;
    padding: 0
}

h1,h2,h3,h4,h5,h6 {
    font-weight: var(--fw-regular);
    font-size: 1em
}

ul,ol {
    list-style: none
}

a {
    color: inherit;
    text-decoration: none;
    transition: .3s
}

a img {
    transition: .3s
}

a:hover img {
    opacity: .7
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: top
}

@media screen and (min-width: 768px) {
    a[href^="tel:"] {
        pointer-events:none
    }
}

body {
    position: relative;
    font-size: clamp(.9375rem,.7929216867rem + .3012048193vw,1rem);
    line-height: 2;
    font-family: "Shippori Mincho",serif;
    letter-spacing: .1em;
    animation: fadeInBody 1s ease forwards
}

@media screen and (max-width: 767px) {
    body {
        line-height:1.75;
        letter-spacing: .04em
    }
}

@keyframes fadeInBody {
    0% {
        opacity: .1
    }

    100% {
        opacity: 1
    }
}

.container {
    max-width: 1000px;
    margin-inline:auto;padding-inline:50px;box-sizing: content-box
}

@media screen and (max-width: 767px) {
    .container {
        padding-inline:20px
    }
}

.container--large {
    max-width: 1200px
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    white-space: nowrap;
    clip: rect(0, 0, 0, 0)
}

.img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.img-photo {
    position: relative
}

.img-photo figcaption,.img-photo .-caption {
    position: absolute;
    right: 1em;
    bottom: 1em;
    color: #fff;
    font-size: clamp(.625rem,.3358433735rem + .6024096386vw,.75rem);
    line-height: 1;
    letter-spacing: 0;
    text-shadow: 1px 1px 1px rgba(0,0,0,.2),-1px -1px 1px rgba(0,0,0,.2),-1px 1px 1px rgba(0,0,0,.2),1px -1px 1px rgba(0,0,0,.2)
}

.img-photo--bk figcaption,.img-photo--bk .-caption {
    color: #000;
    text-shadow: none
}

.img-full {
    width: 100%
}

@media screen and (max-width: 767px) {
    .lg-visible {
        display:none
    }
}

@media screen and (min-width: 768px) {
    .md-visible {
        display:none
    }
}

.heading-title {
    font-size: clamp(1.125rem,.2575301205rem + 1.8072289157vw,1.5rem)
}

.heading-title--large {
    font-size: clamp(1.25rem,-.1957831325rem + 3.0120481928vw,1.875rem)
}

.text-xs {
    font-size: .625rem;
    line-height: 1.75;
    letter-spacing: .05em
}

.text-s {
    font-size: .875rem;
    line-height: 1.75;
    letter-spacing: .05em
}

@media screen and (min-width: 768px) {
    .note-list>li {
        display:flex
    }
}

.note-list>li::before {
    content: "※"
}

.footer-note {
    font-size: .75rem
}

.page-fv {
    position: relative;
    overflow: hidden
}

.page-fv--wh {
    color: #fff
}

.page-fv--small .page-fv__inner {
    height: clamp(21.875rem,11.1607142857rem + 22.3214285714vw,31.25rem)
}

.page-fv__inner {
    display: grid;
    align-items: center;
    height: clamp(31.25rem,-4.4642857143rem + 74.4047619048vw,62.5rem)
}

.page-fv__inner .page-fv-title {
    position: relative;
    z-index: 1
}

@media screen and (max-width: 767px) {
    .sticky-hero .page-fv__inner {
        height:100vh
    }
}

.page-fv__bg {
    position: absolute;
    inset: 0;
    z-index: -1
}

.page-fv__bg img {
    transform: scale(1.08);
    width: 100%;
    height: 100%;
    animation: zoomIn 1s ease-out forwards;
    object-fit: cover
}

.page-fv-title {
    transition: .3s
}

.page-fv-title__num {
    font-style: italic;
    font-family: var(--font-en)
}

.page-fv-title__head {
    font-style: italic;
    font-family: var(--font-en)
}

.page-fv-title__en {
    margin-bottom: clamp(.75rem,.3620689655rem + 1.6551724138vw,1.5rem);
    font-weight: var(--fw-light);
    font-size: clamp(2.5rem,1.5301724138rem + 4.1379310345vw,4.375rem);
    line-height: 1;
    font-family: var(--font-en);
    letter-spacing: 0
}

.page-fv-title__copy {
    margin-bottom: clamp(.75rem,.3620689655rem + 1.6551724138vw,1.5rem);
    font-size: clamp(1.3125rem,.9568965517rem + 1.5172413793vw,2rem)
}

.page-fv-title__caption {
    font-size: .625rem;
    line-height: 1.75
}

.page-fv-title__caption>*:not(:last-child) {
    margin-bottom: 1em
}

.page-intro__en {
    margin-bottom: clamp(2.8125rem,1.3577586207rem + 6.2068965517vw,5.625rem);
    color: var(--color-accent);
    font-weight: var(--fw-light);
    font-size: clamp(1.875rem,.4292168675rem + 3.0120481928vw,2.5rem);
    line-height: 1;
    font-family: var(--font-en);
    letter-spacing: 0
}

.page-intro__title {
    margin-bottom: 40px;
    font-size: clamp(1.25rem,.671686747rem + 1.2048192771vw,1.5rem)
}

@media screen and (max-width: 767px) {
    .page-intro__text {
        text-align:left
    }
}

@media screen and (max-width: 767px) {
    .page-intro__text>*:not(:last-child) {
        margin-bottom:1em
    }
}

.btn_more {
    display: flex;
    align-items: center;
    font-weight: var(--fw-medium);
    font-size: 18px;
    font-family: var(--font-en);
    gap: 15px
}

.btn_more::after {
    display: inline-block;
    flex-shrink: 0;
    width: 33px;
    aspect-ratio: 1;
    background: url("../img/common/btn_arrow.svg");
    background-size: cover;
    content: ""
}

.sticky-hero {
    position: sticky;
    top: 0;
    z-index: -1;
    height: auto;
    overflow: hidden;
    transition: .3s
}

.sticky-hero.is-release {
    position: relative
}

.sticky-hero-bg::after {
    opacity: 0;
    position: absolute;
    inset: 0;
    background-color: #666;
    content: "";
    transition: opacity .6s ease;
    mix-blend-mode: multiply
}

.sticky-hero.is-active .sticky-hero-bg::after {
    opacity: 1
}

.sticky-hero-bg--wh::after {
    background-color: #fff;
    mix-blend-mode: normal
}

.sticky-hero.is-active .sticky-hero-bg--wh::after {
    opacity: .7
}

.sticky-hero.is-active .page-fv-title {
    opacity: 0 !important
}

.site-header {
    position: fixed;
    top: 0;
    z-index: var(--z_index_header);
    width: 100%
}

.site-header::before {
    opacity: 0;
    position: absolute;
    z-index: -1;
    width: 100%;
    height: 100px;
    background: linear-gradient(180deg, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%);
    content: "";
    transition: .6s
}

.site-header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 25px clamp(1.25rem,-1.6415662651rem + 6.0240963855vw,2.5rem)
}

@media screen and (max-width: 767px) {
    .site-header__inner {
        padding:15px
    }
}

.site-header.is-visible::before {
    opacity: 1
}

.site-header-logo {
    display: flex;
    align-items: center;
    line-height: 1;
    gap: 20px
}

.site-header-logo__logo {
    width: clamp(6.875rem,3.1159638554rem + 7.8313253012vw,8.5rem)
}

@media screen and (max-width: 767px) {
    .site-header-logo__logo {
        width:63px
    }
}

.site-header-logo__name {
    width: clamp(11.25rem,6.3343373494rem + 10.2409638554vw,13.375rem)
}

@media screen and (max-width: 767px) {
    .site-header-logo__name {
        width:165px
    }
}

.site-header-menu {
    display: flex;
    align-items: center;
    margin-left: auto;
    gap: clamp(.9375rem,-1.2311746988rem + 4.5180722892vw,1.875rem)
}

.site-header-nav {
    display: flex;
    align-items: center;
    color: #fff;
    gap: clamp(.625rem,-.8207831325rem + 3.0120481928vw,1.25rem)
}

.site-header-nav-btn {
    display: grid;
    position: relative;
    width: clamp(6.25rem,-.9789156627rem + 15.0602409639vw,9.375rem);
    height: 40px;
    border: 1px solid currentColor;
    place-items: center
}

.site-header-nav-btn::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    transform: scaleX(0);
    background-color: var(--color-accent);
    content: "";
    transition: transform .4s ease;
    transform-origin: left
}

.site-header-nav-btn:hover::before {
    transform: scaleX(1);
    transform-origin: left
}

.site-header-nav-btn:not(:hover)::before {
    transform-origin: right
}

.grad-layer {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: clamp(12.5rem,6.0344827586rem + 27.5862068966vw,25rem);
    background: linear-gradient(180deg, rgb(0, 0, 0) 0%, rgb(255, 255, 255) 100%);
    mix-blend-mode: multiply
}

.menu-btn {
    position: relative;
    z-index: calc(var(--z_index_header) + 1);
    width: clamp(1.875rem,-2.4623493976rem + 9.0361445783vw,3.75rem);
    height: 18px;
    border: none;
    background: none;
    color: #fff;
    cursor: pointer
}

@media screen and (max-width: 767px) {
    .menu-btn {
        width:50px
    }
}

.menu-btn:hover {
    color: var(--color-accent)
}

.menu-btn span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: currentColor;
    transition: .3s
}

.menu-btn span:nth-child(1) {
    top: 0
}

.menu-btn span:nth-child(2) {
    top: 8px
}

.menu-btn span:nth-child(3) {
    bottom: 0
}

.menu-btn.is-open span:nth-child(1) {
    top: 8px;
    transform: rotate(45deg)
}

.menu-btn.is-open span:nth-child(2) {
    opacity: 0
}

.menu-btn.is-open span:nth-child(3) {
    bottom: 9px;
    transform: rotate(-45deg)
}

.site-menu {
    opacity: 0;
    position: fixed;
    inset: 0;
    z-index: var(--z_index_header);
    transition: .3s;
    pointer-events: none
}

.site-menu.is-open {
    opacity: 1;
    pointer-events: all
}

.site-menu__wrap {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.7);
    overscroll-behavior: contain
}

@media screen and (min-width: 768px) {
    .site-menu__wrap {
        width:40%;
        max-width: 400px
    }
}

.is-open .site-menu__wrap {
    overflow-y: auto
}

.site-menu__inner {
    display: grid;
    width: 100%;
    height: 100%;
    padding: clamp(1.25rem,-3.0873493976rem + 9.0361445783vw,3.125rem);
    color: #fff
}

@media screen and (min-width: 768px) {
    .site-menu__inner {
        justify-content:center;
        padding-top: 100px
    }
}

@media screen and (max-width: 767px) {
    .site-menu__inner {
        padding:50px
    }
}

@media screen and (max-width: 767px) {
    .site-menu__inner {
        height:calc(100% + 1px)
    }
}

.site-menu__inner ul {
    display: flex;
    flex-direction: column
}

.site-menu__inner ul a:hover {
    color: var(--color-accent)
}

.site-menu__inner ul>li {
    border-bottom: 1px solid #000
}

.site-menu__inner ul>li a {
    display: grid;
    align-items: baseline;
    position: relative;
    padding-block:.5em;gap: 20px;
    grid-template-columns: 1fr 1fr
}

.site-menu__inner ul>li a::after {
    display: inline-block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 0;
    height: 1px;
    background-color: rgba(0,0,0,0);
    content: "";
    transition: .6s
}

.site-menu__inner ul>li a:hover::after {
    width: 100%;
    background-color: var(--color-accent)
}

.site-menu__inner ul>li .-en {
    font-size: 1.2em;
    font-family: var(--font-en)
}

.site-menu__inner ul>li .-jp {
    font-size: .8em
}

.sp-fixed-nav {
    opacity: 0;
    position: fixed;
    bottom: 0;
    left: 0;
    transform: translateY(100%);
    width: 100%;
    transition: .3s
}

.sp-fixed-nav.is-visible {
    opacity: 1;
    transform: none
}

.sp-fixed-nav>ul {
    display: flex;
    font-size: .625rem;
    line-height: 1
}

.sp-fixed-nav>ul>li {
    flex: 1
}

.sp-fixed-nav>ul>li:not(:last-child) {
    border-right: 1px solid #000
}

.sp-fixed-nav>ul>li a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 60px;
    background-color: #e5e5e5;
    gap: 8px;
    place-items: center
}

.sp-fixed-nav>ul>li a::before {
    width: 17px;
    aspect-ratio: 17/25;
    background-image: url("../img/common/icon_tel.svg");
    background-size: cover;
    background-repeat: no-repeat;
    content: ""
}

.sp-fixed-nav>ul>li.-map a::before {
    background-image: url("../img/common/icon_pin.svg");
    content: ""
}

.sp-fixed-nav>ul>li.-outline a::before {
    width: 19px;
    aspect-ratio: 19/25;
    background-image: url("../img/common/icon_doc.svg");
    content: ""
}

.sp-fixed-nav>ul>li.-request a::before {
    width: 26px;
    aspect-ratio: 26/25;
    background-image: url("../img/common/icon_pen.svg");
    content: ""
}

.sp-fixed-nav>ul>li.-gototop a::before {
    width: 30px;
    aspect-ratio: 30/16;
    background-image: url("../img/common/icon_arrow_up.svg");
    content: ""
}

@media screen and (max-width: 767px) {
    .site-footer {
        padding-bottom:60px
    }
}

.footer-top {
    display: flex;
    flex-direction: column;
    padding-block:clamp(3.125rem,-4.1039156627rem + 15.0602409639vw,6.25rem);background-color: #e5e5e5;
    gap: clamp(2.5rem,-3.2831325301rem + 12.0481927711vw,5rem)
}

.ad-yokoku {
    display: flex;
    align-items: center;
    gap: 30px
}

@media screen and (max-width: 767px) {
    .ad-yokoku {
        flex-direction:column;
        align-items: start;
        gap: 10px
    }
}

.ad-yokoku dt {
    position: relative;
    font-size: .875rem
}

.ad-yokoku dt::after {
    position: absolute;
    top: 0;
    right: -15px;
    width: 1px;
    height: 30px;
    background-color: #b2b2b2;
    content: ""
}

@media screen and (max-width: 767px) {
    .ad-yokoku dt::after {
        top:auto;
        right: 0;
        bottom: -5px;
        width: 100%;
        height: 1px
    }
}

.contents-slider {
    width: 100%;
    padding-bottom: clamp(1.875rem,.5818965517rem + 5.5172413793vw,4.375rem);
    overflow: hidden
}

@media screen and (max-width: 767px) {
    .contents-slider {
        margin-bottom:0;
        padding-inline:20px;overflow: visible
    }
}

@media screen and (max-width: 767px) {
    .contents-slider .swiper-wrapper {
        flex-wrap:wrap;
        transform: none !important;
        gap: 30px
    }
}

.contents-slider .swiper-slide {
    width: clamp(15rem,4.156626506rem + 22.5903614458vw,19.6875rem);
    aspect-ratio: 315/528;
    font-size: clamp(.625rem,-.2424698795rem + 1.8072289157vw,1rem);
    text-align: center
}

@media screen and (min-width: 768px) {
    .contents-slider .swiper-slide {
        border-right:1px solid #b2b2b2
    }
}

@media screen and (max-width: 767px) {
    .contents-slider .swiper-slide {
        position:relative;
        width: calc(50% - 15px) !important;
        height: 250px
    }

    .contents-slider .swiper-slide:nth-child(odd)::before {
        position: absolute;
        top: 0;
        right: -15px;
        width: 1px;
        height: 100%;
        background-color: #b2b2b2;
        content: ""
    }
}

.contents-slider .swiper-slide .-title {
    margin-block:clamp(.9375rem,.1293103448rem + 3.4482758621vw,2.5rem) clamp(.3125rem,.150862069rem + .6896551724vw,.625rem);color: var(--color-accent);
    font-style: italic;
    font-size: clamp(1rem,.7108433735rem + .6024096386vw,1.125rem);
    font-family: var(--font-en)
}

@media screen and (max-width: 767px) {
    .contents-slider .swiper-slide .-title+p {
        letter-spacing:0
    }
}

.contents-slider .swiper-slide a {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%
}

@media screen and (min-width: 768px) {
    .contents-slider .swiper-slide a {
        padding:20px
    }
}

.contents-slider .swiper-slide a::after {
    display: inline-block;
    width: clamp(1.4375rem,.8556034483rem + 2.4827586207vw,2.5625rem);
    aspect-ratio: 41/22;
    margin-top: clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem);
    background: url("../img/common/icon_arrow2.svg");
    background-size: cover;
    content: ""
}

.contents-slider .swiper-slide a:hover {
    background-color: #fff
}

.contents-slider .swiper-scrollbar {
    display: flex;
    position: relative;
    max-width: clamp(23.75rem,2.063253012rem + 45.1807228916vw,33.125rem);
    margin-top: clamp(1.5625rem,.7543103448rem + 3.4482758621vw,3.125rem);
    margin-inline:auto;background-color: rgba(0,0,0,0);
    gap: 0
}

@media screen and (max-width: 767px) {
    .contents-slider .swiper-scrollbar {
        display:none;
        width: 80%
    }
}

.contents-slider .swiper-scrollbar::before {
    position: absolute;
    top: 1px;
    width: 100%;
    height: 1px;
    background-color: var(--color-accent);
    content: ""
}

.contents-slider .swiper-scrollbar .swiper-scrollbar-drag {
    height: 3px;
    border-radius: 0;
    background-color: var(--color-accent)
}

.footer-entry-header-wrap a {
    position: relative
}

.footer-entry-header-wrap a::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    transform: scaleX(0);
    background-color: rgba(182,146,98,.3);
    content: "";
    transition: transform .4s ease;
    transform-origin: left
}

.footer-entry-header-wrap a:hover::before {
    transform: scaleX(1);
    transform-origin: left
}

.footer-entry-header-wrap a:not(:hover)::before {
    transform-origin: right
}

.footer-entry {
    position: relative
}

.footer-entry__header {
    display: grid;
    position: relative;
    height: clamp(15.75rem,13.1314655172rem + 11.1724137931vw,20.8125rem);
    overflow: hidden;
    color: #fff;
    place-items: center
}

.footer-entry__header::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: #999;
    content: "";
    transition: .3s;
    mix-blend-mode: multiply
}

.footer-entry__body {
    display: grid;
    position: relative;
    height: clamp(25rem,17.5646551724rem + 31.724137931vw,39.375rem);
    color: #fff;
    grid-template-rows: auto auto 1fr;
    place-items: center
}

@media screen and (max-width: 767px) {
    .footer-entry__body {
        margin-bottom:120px
    }
}

.footer-entry__body::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: #333;
    content: "";
    mix-blend-mode: multiply
}

.footer-entry__bg {
    position: absolute;
    inset: 0;
    z-index: -4
}

.footer-entry-request {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: clamp(.75rem,.4608433735rem + .6024096386vw,.875rem);
    text-align: center;
    gap: 20px
}

.footer-entry-request__title {
    color: var(--color-accent);
    font-style: italic;
    font-weight: var(--fw-light);
    font-size: clamp(3.125rem,.2334337349rem + 6.0240963855vw,4.375rem);
    line-height: 1;
    font-family: var(--font-en)
}

.footer-entry-nav {
    position: relative;
    width: 100%;
    border-top: 1px solid currentColor;
    color: var(--color-accent)
}

.footer-entry-nav::before,.footer-entry-nav::after {
    position: absolute;
    bottom: 0;
    width: calc(50% - 15px);
    height: 1px;
    background-color: currentColor;
    content: ""
}

.footer-entry-nav::after {
    right: 0
}

.footer-entry-nav ul {
    display: flex
}

.footer-entry-nav ul>li a {
    display: grid;
    display: flex;
    align-items: center;
    align-items: center;
    height: 80px;
    font-style: italic;
    font-weight: var(--fw-light);
    font-family: var(--font-en);
    gap: 20px
}

.footer-entry-nav ul>li a::after {
    width: 41px;
    aspect-ratio: 41/22;
    background: url("../img/common/icon_arrow2.svg");
    background-size: cover;
    content: "";
    transition: .3s
}

.footer-entry-nav ul>li a:hover::after {
    transform: translateX(10px)
}

.footer-entry-nav ul>li:first-child a {
    flex-direction: row-reverse
}

.footer-entry-nav ul>li:first-child a::after {
    transform: scaleX(-1)
}

.footer-entry-nav ul>li:first-child a:hover::after {
    transform: scaleX(-1) translateX(10px)
}

.footer-entry-nav ul>li:last-child {
    margin-left: auto
}

.other-links {
    display: flex;
    font-size: clamp(.8125rem,.6679216867rem + .3012048193vw,.875rem);
    gap: clamp(.625rem,-.8207831325rem + 3.0120481928vw,1.25rem)
}

@media screen and (max-width: 767px) {
    .other-links {
        gap:2em
    }
}

.other-links>li a {
    display: flex;
    align-items: center;
    color: #fff;
    gap: 8px
}

.other-links>li a:hover {
    color: var(--color-accent)
}

.other-links>li a:hover svg {
    fill: var(--color-accent)
}

.other-links>li svg {
    width: auto;
    height: 15px;
    transition: .3s;
    fill: #fff
}

.other-links--footer {
    margin-top: 1em
}

@media screen and (max-width: 767px) {
    .other-links--footer {
        margin-block:2em
    }
}

.other-links--footer>li a {
    color: var(--color-accent)
}

.other-links--footer>li a:hover {
    color: #fff
}

.other-links--footer>li a:hover svg {
    fill: #fff
}

.other-links--footer>li svg {
    fill: var(--color-accent)
}

.footer-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: clamp(.9375rem,-1.2311746988rem + 4.5180722892vw,1.875rem)
}

.footer-info__title {
    font-size: .875rem
}

.footer-info__note {
    font-size: .75rem
}

.footer-info__note>span {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 1em
}

@media screen and (max-width: 767px) {
    .footer-info__banner {
        position:absolute;
        bottom: -120px;
        width: 300px;
        height: 88px
    }
}

.footer-bottom {
    padding: 100px 40px 40px
}

@media screen and (max-width: 767px) {
    .footer-bottom {
        padding:100px 20px 40px
    }
}

.footer-bottom__body {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 50px
}

@media screen and (max-width: 767px) {
    .footer-bottom__body {
        flex-direction:column-reverse
    }
}

.footer-bottom__body dl {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px
}

.footer-bottom__body dl dt {
    font-size: .75rem
}

.footer-bottom__body dl dt img {
    width: clamp(11.875rem,5.3689759036rem + 13.5542168675vw,14.6875rem)
}

.footer-copyright {
    margin-top: clamp(1.875rem,.9051724138rem + 4.1379310345vw,3.75rem);
    text-align: center
}

.top-fv {
    display: grid;
    justify-content: center;
    align-items: end;
    position: relative;
    top: 0;
    height: 100vh
}

.bi-bg-swiper {
    z-index: -1;
    width: 100%;
    height: 100%
}

.top-fv-bg {
    position: absolute;
    inset: 0;
    z-index: -1
}

.top-fv-bg::before {
    opacity: 0;
    background-color: #666;
    content: "";
    transition: opacity 1s ease;
    mix-blend-mode: multiply
}

.top-fv-bg__pic {
    position: absolute;
    inset: 0
}

.top-fv-bg__pic img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.top-fv-bg__pic .-caption {
    transition: opacity .4s ease
}

.top-fv-bg.black-layer::before {
    opacity: 1;
    position: absolute;
    inset: 0;
    z-index: 1;
    content: ""
}

.top-fv-contents {
    position: relative;
    z-index: 1;
    margin-bottom: 140px;
    color: #fff;
    font-size: clamp(1.125rem,1.0280172414rem + .4137931034vw,1.3125rem);
    line-height: 1.666;
    text-align: center;
    gap: 20px
}

@media screen and (max-width: 767px) {
    .top-fv-contents {
        margin-bottom:40px
    }
}

.sticky-hero.is-active .top-fv-contents {
    opacity: 0 !important
}

.top-fv-logo {
    margin-bottom: 20px
}

.top-intro-section {
    position: relative;
    z-index: 1;
    min-height: auto;
    /* padding-block:clamp(3.75rem,-10.7078313253rem + 30.1204819277vw,10rem) clamp(3.75rem,.8584337349rem + 6.0240963855vw,5rem);color: #fff */
}

.top-intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    text-align: center;
    transition: opacity .5s ease;
    gap: 80px
}

.top-intro.is-visible {
    animation: blurSlideIn 1s forwards
}

.top-intro-point {
    display: grid
}

@media screen and (min-width: 768px) {
    .top-intro-point {
        width:fit-content;
        text-align: left;
        column-gap: 30px;
        row-gap: 30px;
        grid-template-columns: repeat(2, auto)
    }
}

.top-intro-point>li {
    position: relative;
    text-align: center
}

@media screen and (max-width: 767px) {
    .top-intro-point>li {
        padding-block:20px
    }

    .top-intro-point>li:not(:last-child) {
        border-bottom: 1px solid gray
    }
}

@media screen and (min-width: 768px) {
    .top-intro-point>li:nth-child(even)::after {
        position:absolute;
        left: -15px;
        width: 1px;
        height: 50px;
        background-color: gray;
        content: ""
    }

    .top-intro-point>li:nth-child(3) {
        grid-column: span 2
    }
}

.top-intro-cv {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
    gap: 30px
}

.top-intro-cv__name {
    font-size: clamp(1.125rem,.6912650602rem + .9036144578vw,1.3125rem)
}

.top-intro-cv__title {
    font-size: clamp(1.25rem,-.1957831325rem + 3.0120481928vw,1.875rem);
    letter-spacing: .2em
}

@media screen and (max-width: 767px) {
    .top-intro-cv__caption {
        font-size:.875rem;
        line-height: 1.75
    }
}

.top-intro-cv__btn {
    display: grid;
    position: relative;
    width: 318px;
    aspect-ratio: 318/50;
    overflow: hidden;
    border-radius: 50px;
    background-color: var(--color-accent);
    color: #fff;
    place-items: center
}

.top-intro-cv__btn span {
    position: relative;
    z-index: 1
}

.top-intro-cv__btn::before {
    position: absolute;
    inset: 0;
    transform: scaleX(0);
    background-color: rgb(101.6447368421,81.9934210526,52.8552631579);
    content: "";
    transition: transform .4s ease;
    transform-origin: left
}

.top-intro-cv__btn:hover::before {
    transform: scaleX(1);
    transform-origin: left
}

.top-intro-cv__btn:not(:hover)::before {
    transform-origin: right
}

.top-intro-caption {
    position: absolute;
    right: 1em;
    bottom: 1em;
    color: #fff;
    font-size: clamp(.625rem,.3358433735rem + .6024096386vw,.75rem);
    line-height: 1;
    letter-spacing: 0;
    text-shadow: 1px 1px 1px rgba(0,0,0,.2),-1px -1px 1px rgba(0,0,0,.2),-1px 1px 1px rgba(0,0,0,.2),1px -1px 1px rgba(0,0,0,.2)
}

.bi-wrapper {
    position: relative
}

.bi-bg {
    position: sticky;
    top: 0;
    z-index: -1;
    height: 100vh;
    overflow: hidden;
    pointer-events: none
}

.bi-bg__item {
    opacity: 0;
    position: absolute;
    inset: 0;
    background-position: center;
    background-size: cover;
    transition: opacity .8s ease
}

.bi-bg__item img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.bi-bg__item.is-active {
    opacity: 1
}

.bi-item {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    color: #fff
}
.bi-item.c01 {
      min-height: 130vh;
}
.bi-item .container {
    display: flex
}

@media screen and (max-width: 1100px) {
    .bi-item .container {
        flex-direction:column
    }
}

@media screen and (min-width: 1101px) {
    .bi-item__body {
        min-height:100vh;
        margin-left: auto
    }
}

.bi-item-title {
    width: 100%;
    opacity: 0;
    position: fixed;
    top: 50%;
    left: 0;
    z-index: 1;
    transform: translateY(-50%);
    transition: opacity .6s ease;
    pointer-events: none;
}

@media screen and (max-width: 1100px) {
    /* .bi-item-title--concept {
        position:relative;
        top: auto;
        left: auto;
        transform: none
    } */
}

.bi-item-title.is-visible {
    animation: blurFadeIn 1s forwards;
    pointer-events: auto
}
.bi-item-title.top-visible {
    animation: blurFadeIn 1s forwards;
    pointer-events: auto
}

.bi-item-title .btn_more {
    margin-top: clamp(5.625rem,5.3017241379rem + 1.3793103448vw,6.25rem)
}

.bi-item-title .btn_more:hover {
    color: var(--color-accent)
}

.bi-item__body {
    opacity: 0;
    margin-top: 50vh;
    transition: opacity .6s ease,transform .6s ease
}

@media screen and (max-width: 1100px) {
    .bi-item__body {
        margin-top:50px
    }
}

.bi-item__body.is-visible {
    animation: blurSlideIn 1s forwards
}

.bi-item__body .heading-title {
    margin-bottom: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem)
}

.bi-item__body p+p {
    margin-top: 1em
}

.bi-indicator {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 50%;
    right: 20px;
    z-index: 10;
    transform: translateY(-50%);
    gap: 5px
}

@media screen and (max-width: 767px) {
    .bi-indicator {
        display:none
    }
}

.bi-dot {
    display: flex;
    color: #fff;
    font-style: italic;
    font-family: var(--font-en);
    transition: opacity .3s,transform .3s,background-color .3s;
    gap: 9px;
    place-items: center
}

.bi-dot .-num {
    opacity: 0;
    font-size: 14px;
    line-height: 1;
}

.bi-dot .-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border: 1px solid currentColor;
    border-radius: 50%
}

.bi-dot.is-active .-num {
    opacity: 1;
}

.bi-dot.is-active .-dot {
    background-color: #fff
}

.top-info-section {
    display: grid;
    align-items: center;
    padding-block:30px;background-color: #333;
    color: #fff;
    font-size: clamp(1rem,.9353448276rem + .275862069vw,1.125rem)
}

@media screen and (min-width: 768px) {
    .top-info-section {
        min-height:270px
    }
}

.top-info {
    display: flex;
    gap: clamp(3.125rem,-18.561746988rem + 45.1807228916vw,12.5rem)
}

@media screen and (max-width: 767px) {
    .top-info {
        flex-direction:column;
        gap: 20px
    }
}

.top-info__title {
    color: var(--color-accent);
    font-style: italic;
    font-weight: var(--fw-light);
    line-height: 1;
    font-family: var(--font-en)
}

.top-info>ul {
    display: flex;
    flex-direction: column;
    gap: clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem)
}

.top-info>ul>li {
    display: flex;
    font-size: .875rem;
    line-height: 1.5;
    gap: clamp(.3125rem,-.3340517241rem + 2.7586206897vw,1.5625rem)
}

@media screen and (max-width: 767px) {
    .top-info>ul>li {
        flex-direction:column
    }
}

.top-info>ul>li .-date {
    color: var(--color-accent)
}

.design-quality-section {
    display: grid;
    position: relative;
    min-height: clamp(31.25rem,15.0862068966rem + 68.9655172414vw,62.5rem);
    max-height: 100vh;
    padding-block:50px;text-align: center;
    place-items: center
}

@media screen and (min-width: 768px) {
    .design-quality-section {
        letter-spacing:.2em
    }
}

.design-quality-section__bg {
    position: absolute;
    inset: 0;
    z-index: -1
}

.design-entrance-section {
    padding-block:clamp(3.75rem,-10.7078313253rem + 30.1204819277vw,10rem) clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem);background-color: #fff
}

.design-entrance-images {
    display: flex;
    flex-direction: column;
    margin-bottom: clamp(1.25rem,-1.3362068966rem + 11.0344827586vw,6.25rem);
    margin-inline:calc(clamp(3.125rem,-6.9852941176rem + 14.7058823529vw,6.25rem)*-1);gap: clamp(1.25rem,-3.0873493976rem + 9.0361445783vw,3.125rem)
}

@media screen and (max-width: 767px) {
    .design-entrance-images {
        margin-inline:-20px
    }
}

.design-entrance-body {
    display: flex;
    flex-direction: column;
    gap: clamp(1.25rem,.6034482759rem + 2.7586206897vw,2.5rem)
}

@media screen and (min-width: 768px) {
    .design-entrance-body__text {
        display:flex;
        flex-wrap: wrap;
        line-height: 3
    }
}

.design-planning-section {
    padding-block:clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem)}

.design-planning-intro {
    display: flex;
    margin-bottom: clamp(3.125rem,-4.1039156627rem + 15.0602409639vw,6.25rem);
    gap: clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem)
}

@media screen and (max-width: 767px) {
    .design-planning-intro {
        flex-direction:column
    }
}

.design-planning-intro__en {
    flex-shrink: 0;
    font-weight: var(--fw-light);
    font-size: clamp(1.875rem,.4292168675rem + 3.0120481928vw,2.5rem);
    line-height: 1.5;
    font-family: var(--font-en)
}

.design-planning-intro__body {
    display: flex;
    flex-direction: column;
    gap: clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem)
}

@media screen and (min-width: 768px) {
    .design-planning-intro__body {
        margin-right:clamp(.9375rem,-1.2311746988rem + 4.5180722892vw,1.875rem);
        margin-left: auto
    }
}

.design-planning-map {
    position: relative;
    margin-bottom: 10px
}

@media screen and (max-width: 767px) {
    .design-planning-map {
        margin-inline:-20px
    }
}

.design-planning-map figcaption {
    position: relative;
    width: 100%;
    padding: .5em;
    background-color: #ccc;
    color: #fff;
    font-size: clamp(.875rem,.6810344828rem + .8275862069vw,1.25rem);
    line-height: 1.3;
    letter-spacing: 0;
    text-align: justify
}

@media screen and (min-width: 768px) {
    .design-planning-map figcaption {
        position:absolute;
        bottom: 0;
        text-align: center
    }
}

.design-planning-map figcaption span {
    position: relative;
    z-index: 1
}

.design-planning-map figcaption::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgb(189, 131, 149) 0%, rgb(109, 151, 114) 100%);
    content: "";
    mix-blend-mode: multiply
}

.design-plants-section {
    padding-block:clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem) clamp(3.75rem,-10.7078313253rem + 30.1204819277vw,10rem)}

.design-plants-intro {
    display: flex;
    flex-direction: column;
    margin-bottom: clamp(1.25rem,-.0431034483rem + 5.5172413793vw,3.75rem);
    gap: clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem)
}

.design-plants-data {
    display: grid;
    flex-wrap: wrap;
    font-size: clamp(.625rem,.3358433735rem + .6024096386vw,.75rem);
    line-height: 1.5;
    gap: clamp(.625rem,-.8207831325rem + 3.0120481928vw,1.25rem);
    grid-template-columns: repeat(5, 1fr)
}

@media screen and (max-width: 767px) {
    .design-plants-data {
        column-gap:5px;
        row-gap: 10px;
        grid-template-columns: repeat(3, 1fr)
    }
}

.design-plants-data figure figcaption {
    margin-top: 5px
}

.design-feature-section {
    display: grid;
    position: relative;
    min-height: clamp(31.25rem,21.5517241379rem + 41.3793103448vw,50rem);
    padding-block:50px;color: #fff;
    place-items: center
}

@media screen and (min-width: 768px) {
    .design-feature-section {
        letter-spacing:.2em
    }
}

.design-feature-section__bg {
    position: absolute;
    inset: 0;
    z-index: -1
}

.design-parking {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    gap: clamp(1.25rem,-1.3362068966rem + 11.0344827586vw,6.25rem)
}

@media screen and (max-width: 767px) {
    .design-parking {
        flex-direction:column
    }
}

.design-parking__intro {
    display: flex;
    flex: 1;
    flex-direction: column
}

.design-parking__body {
    display: flex;
    flex-direction: column;
    gap: clamp(1.25rem,.2801724138rem + 4.1379310345vw,3.125rem)
}

.design-parking-title {
    display: flex;
    flex-direction: column;
    margin-block:10px 20px;font-size: clamp(1.625rem,1.4956896552rem + .5517241379vw,1.875rem);
    line-height: 1.4
}

.design-parking-title .-num {
    opacity: .77;
    font-size: clamp(6.25rem,4.6336206897rem + 6.8965517241vw,9.375rem);
    line-height: 1
}

.design-parking-title .-unit {
    font-size: .5em
}

.design-parking-merit dt {
    display: grid;
    align-items: center;
    position: relative;
    height: clamp(3.125rem,2.2844827586rem + 3.5862068966vw,4.75rem);
    margin-bottom: 10px;
    padding-left: clamp(1.25rem,.6681034483rem + 2.4827586207vw,2.375rem);
    font-size: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem)
}

.design-parking-merit dt svg {
    opacity: .3;
    position: absolute;
    width: clamp(3.125rem,2.2844827586rem + 3.5862068966vw,4.75rem);
    fill: #fff
}

.design-parking-merit dd {
    letter-spacing: 0
}

.design-parking-merit dd ul li {
    display: flex;
    gap: 5px
}

.design-parking-merit dd ul li::before {
    content: "●"
}

.design-zeh {
    display: flex;
    flex-direction: column;
    gap: clamp(1.25rem,.6034482759rem + 2.7586206897vw,2.5rem)
}

.design-zeh__header {
    text-align: center
}

.design-zeh__text>*:not(:last-child) {
    margin-bottom: clamp(.625rem,.3017241379rem + 1.3793103448vw,1.25rem)
}

.design-zeh__illust {
    display: flex;
    gap: clamp(1.25rem,.6034482759rem + 2.7586206897vw,2.5rem)
}

@media screen and (max-width: 767px) {
    .design-zeh__illust {
        flex-direction:column
    }
}

.design-zeh-copy {
    font-size: clamp(1.25rem,-.1957831325rem + 3.0120481928vw,1.875rem);
    line-height: 1.5
}

.design-zeh-desc {
    text-align: justify
}

@media screen and (min-width: 768px) {
    .design-zeh-desc {
        display:flex;
        flex-wrap: wrap
    }
}

.design-secutity-section {
    padding-block:clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem)}

.design-secutity-title {
    margin-bottom: .5em;
    font-size: clamp(1.25rem,.093373494rem + 2.4096385542vw,1.75rem);
    line-height: 1.5
}

.design-secutity {
    display: flex;
    gap: clamp(.625rem,.3017241379rem + 1.3793103448vw,1.25rem)
}

@media screen and (max-width: 767px) {
    .design-secutity {
        flex-direction:column
    }
}

@media screen and (min-width: 1000px) {
    .design-secutity__key .design-secutity-copy {
        white-space:nowrap
    }
}

.design-secutity__image {
    flex-shrink: 0;
    width: clamp(9.375rem,3.3027108434rem + 12.6506024096vw,12rem)
}

@media screen and (max-width: 767px) {
    .design-secutity__image {
        text-align:center
    }
}

.design-secutity-copy {
    margin-bottom: 1em;
    line-height: 1.5;
    letter-spacing: 0
}

.design-secutity-text {
    font-size: .75rem;
    line-height: 1.5;
    font-family: var(--font-gothic);
    letter-spacing: 0
}

.location-intro-section {
    padding-block:clamp(3.75rem,-10.7078313253rem + 30.1204819277vw,10rem) clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem)}

.location-section {
    padding-bottom: clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem)
}

.location-section-mv {
    display: flex;
    margin-bottom: clamp(1.875rem,-2.4623493976rem + 9.0361445783vw,3.75rem);
    text-align: center
}

@media screen and (max-width: 767px) {
    .location-section-mv {
        flex-direction:column;
        gap: 20px
    }
}

@media screen and (min-width: 768px) {
    .location-section-mv--2col figure:nth-child(odd) figcaption {
        text-align:right
    }

    .location-section-mv--2col figcaption {
        padding-inline:1em;text-align: left
    }
}

.location-section-mv figcaption {
    margin-top: 5px;
    color: var(--color-accent)
}

.location-shopping-intro {
    display: grid;
    justify-content: center;
    position: relative;
    min-height: clamp(18.75rem,2.5862068966rem + 68.9655172414vw,50rem);
    padding-block:clamp(1.5625rem,.7543103448rem + 3.4482758621vw,3.125rem)}

.location-shopping-intro__bg {
    position: absolute;
    inset: 0;
    z-index: -1
}

.location-shopping-images {
    display: flex;
    margin-bottom: clamp(2.5rem,-3.2831325301rem + 12.0481927711vw,5rem);
    margin-inline:clamp(1.25rem,-.1957831325rem + 3.0120481928vw,1.875rem);padding-block:clamp(1.25rem,-.1957831325rem + 3.0120481928vw,1.875rem);gap: clamp(1.25rem,-.1957831325rem + 3.0120481928vw,1.875rem)
}

@media screen and (max-width: 767px) {
    .location-shopping-images {
        flex-direction:column
    }
}

.location-slider-wrap {
    display: flex;
    align-items: start;
    padding-block:clamp(1.25rem,-1.6415662651rem + 6.0240963855vw,2.5rem);background-color: #f2f2f2
}

@media screen and (max-width: 767px) {
    .location-slider-wrap {
        flex-direction:column;
        padding-left: 20px;
        gap: 20px
    }
}

.location-slider-wrap__title {
    display: grid;
    flex-shrink: 0;
    align-items: center;
    color: var(--color-accent);
    font-weight: var(--fw-light);
    font-size: clamp(1.5rem,-.813253012rem + 4.8192771084vw,2.5rem);
    font-family: var(--font-en);
    letter-spacing: 0
}

@media screen and (max-width: 767px) {
    .location-slider-wrap__title {
        width:100%;
        text-align: center
    }
}

@media screen and (min-width: 768px) {
    .location-slider-wrap__title {
        width:clamp(15rem,4.156626506rem + 22.5903614458vw,19.6875rem);
        aspect-ratio: 315/450;
        padding-left: clamp(1.25rem,-2.3644578313rem + 7.5301204819vw,2.8125rem);
        border-right: 1px solid #b2b2b2;
        background-color: #fff
    }
}

.location-slider {
    width: 100%;
    padding-bottom: clamp(1.875rem,.5818965517rem + 5.5172413793vw,4.375rem);
    overflow: hidden
}

.location-slider .swiper-slide {
    width: clamp(15rem,4.156626506rem + 22.5903614458vw,19.6875rem);
    aspect-ratio: 315/450;
    font-size: clamp(.9375rem,.5037650602rem + .9036144578vw,1.125rem);
    text-align: center
}

@media screen and (min-width: 768px) {
    .location-slider .swiper-slide {
        padding-inline:20px;
        border-right: 1px solid #b2b2b2
    }
}

.location-slider .swiper-slide .-title {
    margin-top: clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem);
    color: var(--color-accent)
}

.location-slider .swiper-scrollbar {
    display: flex;
    position: relative;
    max-width: clamp(23.75rem,2.063253012rem + 45.1807228916vw,33.125rem);
    margin-top: clamp(3.125rem,1.5086206897rem + 6.8965517241vw,6.25rem);
    background-color: rgba(0,0,0,0);
    gap: 0
}

@media screen and (max-width: 767px) {
    .location-slider .swiper-scrollbar {
        width:80%
    }
}

.location-slider .swiper-scrollbar::before {
    position: absolute;
    top: 1px;
    width: 100%;
    height: 1px;
    background-color: var(--color-accent);
    content: ""
}

.location-slider .swiper-scrollbar .swiper-scrollbar-drag {
    height: 3px;
    border-radius: 0;
    background-color: var(--color-accent)
}

.location-info-section {
    padding-block:clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem)}

.location-info-map {
    margin-bottom: clamp(1.875rem,-5.3539156627rem + 15.0602409639vw,5rem)
}

.location-info-detail {
    display: grid;
    gap: clamp(1.25rem,-.0431034483rem + 5.5172413793vw,3.75rem)
}

@media screen and (min-width: 768px) {
    .location-info-detail {
        grid-template-columns:repeat(2, 1fr)
    }
}

.location-info-detail>* {
    display: flex;
    flex-direction: column;
    gap: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem)
}

.facility-dl dt {
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid gray;
    font-size: clamp(1rem,.7108433735rem + .6024096386vw,1.125rem)
}

.facility-list {
    display: flex;
    flex-direction: column;
    font-size: clamp(.8125rem,.6679216867rem + .3012048193vw,.875rem);
    line-height: 1.5;
    letter-spacing: .05em;
    gap: 5px
}

.facility-list>li {
    display: grid;
    grid-template-columns: 1fr auto
}

.facility-list .-dist {
    display: flex;
    margin-left: auto
}

.facility-list .-walk {
    width: 60px
}

.facility-list .-distance {
    width: 50px
}

.facility-list .-note {
    margin-block:5px 10px;font-size: .75rem;
    line-height: 1.3;
    grid-column: span 2
}

.location-info-note {
    margin-top: clamp(2.1875rem,1.0560344828rem + 4.8275862069vw,4.375rem);
    font-size: .75rem;
    letter-spacing: .05em
}

.outline-section {
    padding-block:clamp(3.125rem,1.5086206897rem + 6.8965517241vw,6.25rem);font-size: .875rem
}

.outline-section .container {
    max-width: 800px
}

.outline:not(:last-child) {
    margin-bottom: clamp(3.125rem,1.5086206897rem + 6.8965517241vw,6.25rem)
}

.outline-title {
    margin-bottom: clamp(1.875rem,.9051724138rem + 4.1379310345vw,3.75rem);
    font-size: clamp(1rem,.9353448276rem + .275862069vw,1.125rem);
    letter-spacing: .2em;
    text-align: center
}

.outline-list {
    display: grid;
    column-gap: clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem)
}

@media screen and (min-width: 768px) {
    .outline-list {
        grid-template-columns:220px 1fr
    }
}

.outline-list dt,.outline-list dd {
    padding-block:1em;border-bottom: 1px solid rgba(178,178,178,.5)
}

@media screen and (max-width: 767px) {
    .outline-list dt {
        padding-bottom:0;
        border-bottom: none
    }
}

@media screen and (max-width: 767px) {
    .outline-list dd {
        padding-top:.5em
    }
}

.outline-updated-date {
    margin-top: 2em;
    text-align: right
}

.outline-note {
    margin-top: clamp(3.75rem,1.8103448276rem + 8.275862069vw,7.5rem);
    font-size: .75rem
}

.brand-section {
    display: grid;
    position: relative;
    min-height: clamp(18.75rem,-6.2715517241rem + 106.7586206897vw,67.125rem);
    padding-block:50px;overflow: hidden;
    color: #fff;
    place-items: center
}

.brand-section__bg {
    position: absolute;
    inset: 0;
    z-index: -1
}

.brand-section--fv .brand-section__bg img {
    transform: scale(1.08);
    animation: zoomIn 1s ease-out forwards
}

.brand-fv-title {
    width: clamp(15.625rem,6.6702586207rem + 38.2068965517vw,32.9375rem)
}

.brand-intro {
    font-size: clamp(.9375rem,.5037650602rem + .9036144578vw,1.125rem);
    text-align: center
}

.brand-intro__title {
    margin-bottom: 1em;
    font-size: clamp(1.3125rem,-.2778614458rem + 3.313253012vw,2rem)
}

@media screen and (max-width: 767px) {
    .brand-intro p {
        text-align:left;
        text-align: justify
    }

    .brand-intro p+p {
        margin-top: 1em
    }
}

.brand-case {
    max-width: 1440px;
    margin-top: clamp(2.5rem,1.2068965517rem + 5.5172413793vw,5rem)
}

@media screen and (max-width: 767px) {
    .brand-case {
        padding-inline:20px
    }
}

.brand-case__note {
    margin-top: clamp(1.25rem,.6034482759rem + 2.7586206897vw,2.5rem);
    font-size: .75rem;
    line-height: 1.75;
    letter-spacing: .05em
}

@media screen and (min-width: 768px) {
    .brand-case__note {
        text-align:center
    }
}

.brand-case-list {
    display: flex;
    text-align: center;
    gap: clamp(1.25rem,-.9186746988rem + 4.5180722892vw,2.1875rem)
}

@media screen and (max-width: 767px) {
    .brand-case-list {
        flex-wrap:wrap;
        gap: 20px
    }
}

@media screen and (min-width: 768px) {
    .brand-case-list figure {
        flex:1
    }
}

@media screen and (max-width: 767px) {
    .brand-case-list figure {
        width:calc(50% - 10px)
    }
}

.brand-case-list figure img {
    width: 100%
}

.brand-case-list figure figcaption {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 5px;
    font-size: clamp(.875rem,.5858433735rem + .6024096386vw,1rem);
    line-height: 1.75
}

.brand-works {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(1.875rem,-2.4623493976rem + 9.0361445783vw,3.75rem)
}

.brand-works__mv {
    flex-shrink: 0;
    width: 540px
}

@media screen and (min-width: 768px) {
    .brand-works__mv {
        margin-top:1em
    }
}

@media screen and (max-width: 767px) {
    .brand-works__mv {
        width:100%
    }
}

.brand-works__title {
    font-size: clamp(1.1875rem,.9288793103rem + 1.1034482759vw,1.6875rem);
    line-height: 1.5
}

.brand-works__data {
    margin-bottom: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem);
    padding-bottom: clamp(.625rem,.3017241379rem + 1.3793103448vw,1.25rem);
    border-bottom: 1px dashed currentColor
}

.brand-works__data .-title {
    font-size: clamp(1.875rem,1.6163793103rem + 1.1034482759vw,2.375rem);
    line-height: 1.3
}

.brand-works__data .-title .-num {
    position: relative;
    top: .1em;
    color: #ddd4a9;
    font-size: clamp(3.375rem,3.0193965517rem + 1.5172413793vw,4.0625rem)
}

.brand-works__data .-date {
    font-size: .75rem;
    text-align: right
}

.brand-prof {
    display: flex;
    flex-direction: column;
    font-size: .875rem;
    gap: clamp(.625rem,.3017241379rem + 1.3793103448vw,1.25rem)
}

.brand-prof__logo {
    width: clamp(12.5rem,8.8146551724rem + 15.724137931vw,19.625rem)
}

.brand-prof__title {
    display: flex;
    flex-wrap: wrap;
    font-size: clamp(1rem,.421686747rem + 1.2048192771vw,1.25rem);
    line-height: 1.75;
    letter-spacing: 0
}

.brand-business {
    display: flex;
    flex-direction: column;
    align-items: center
}

@media screen and (min-width: 768px) {
    .brand-business {
        text-align:center
    }
}

.brand-business figure {
    display: flex;
    justify-content: center;
    gap: clamp(.625rem,-.0215517241rem + 2.7586206897vw,1.875rem)
}

.brand-business__title {
    margin-top: clamp(2.5rem,1.2068965517rem + 5.5172413793vw,5rem);
    margin-bottom: .5em;
    font-size: clamp(1.5625rem,1.3038793103rem + 1.1034482759vw,2.0625rem)
}

.plan-intro-section {
    padding-top: clamp(3.125rem,1.5086206897rem + 6.8965517241vw,6.25rem);
    background-color: #f2f2f2
}

.plan-intro {
    margin-bottom: calc(clamp(8.4375rem,4.0732758621rem + 18.6206896552vw,16.875rem)*-1);
    padding-bottom: clamp(13.4375rem,6.4870689655rem + 29.6551724138vw,26.875rem);
    text-align: center
}

@media screen and (max-width: 767px) {
    .plan-intro {
        text-align:left
    }
}

.plan-intro__heading {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #684900;
    font-size: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem);
    line-height: 1.5
}

.plan-intro__heading span {
    position: relative;
    top: -0.1em;
    font-size: clamp(3.125rem,1.5086206897rem + 6.8965517241vw,6.25rem)
}

.plan-intro__title {
    margin-bottom: 1em;
    text-align: center
}

.plan-section {
    padding-bottom: clamp(3.125rem,1.5086206897rem + 6.8965517241vw,6.25rem)
}

.plan-map {
    width: clamp(18.75rem,9.0517241379rem + 41.3793103448vw,37.5rem);
    margin-top: calc(clamp(10rem,4.8275862069rem + 22.0689655172vw,20rem)*-1);
    margin-bottom: clamp(2.8125rem,1.3577586207rem + 6.2068965517vw,5.625rem);
    margin-inline:auto}

.plan-nav-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(1.25rem,.2801724138rem + 4.1379310345vw,3.125rem)
}

.plan-nav-wrap__title {
    font-size: clamp(1rem,.9353448276rem + .275862069vw,1.125rem)
}

@media screen and (min-width: 768px) {
    .plan-nav-wrap__note {
        text-align:center
    }
}

.plan-nav {
    display: flex;
    gap: 23px
}

@media screen and (max-width: 767px) {
    .plan-nav {
        flex-direction:column
    }
}

.plan-nav>li {
    min-width: clamp(10rem,-.1204819277rem + 21.0843373494vw,14.375rem)
}

.plan-nav>li a {
    display: grid;
    height: 100%;
    background-color: #f7f7f5
}

.plan-nav>li a:hover {
    background-color: #ccc
}

.plan-nav>li.-comingsoon a {
    pointer-events: none
}

.plan-nav>li.-comingsoon .plan-item-area {
    display: none
}

.plan-nav>li.-comingsoon .btn_more::after {
    display: none
}

.plan-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem);
    text-align: center;
    transition: .3s;
    gap: 20px
}

.plan-nav-item__name {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #998058;
    font-weight: var(--fw-light);
    line-height: 1;
    font-family: var(--font-en)
}

.plan-nav-item__name span {
    font-size: 86px
}

.plan-nav-item__madori {
    font-size: clamp(1.125rem,1.0603448276rem + .275862069vw,1.25rem)
}

.plan-nav-item .btn_more {
    justify-content: center;
    position: relative;
    width: 100%;
    margin-top: auto;
    padding-block:clamp(1.25rem,.5271084337rem + 1.5060240964vw,1.5625rem);color: #998058
}

.plan-nav-item .btn_more::before {
    position: absolute;
    inset: 0;
    background-color: #f7f7f5;
    content: "";
    mix-blend-mode: multiply
}

.plan-nav-item .btn_more span {
    position: relative;
    z-index: 1
}

.plan-nav-item .btn_more::after {
    position: relative;
    z-index: 1
}

.plan-item-madori {
    font-size: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem);
    line-height: 1.5
}

@media screen and (max-width: 767px) {
    .plan-item-madori {
        text-align:center
    }
}

.plan-item-madori span {
    font-size: 1.333em
}

.plan-item-area {
    display: flex;
    flex-direction: column;
    padding-inline:20px;line-height: 1.3
}

.plan-item-area dt {
    font-size: .875rem
}

.plan-item-area dd {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline
}

.plan-item-area dd span {
    color: #998058;
    font-size: 30px
}

.plan-item-spec {
    font-size: .75rem
}

.plan-item-equip>li {
    display: grid;
    width: clamp(15.625rem,8.3960843373rem + 15.0602409639vw,18.75rem);
    height: 40px;
    background-color: var(--color-accent);
    color: #fff;
    font-size: .875rem;
    place-items: center
}

.plan-item-equip>li:not(:last-child) {
    margin-bottom: 5px
}

.plan-detail {
    display: grid
}

@media screen and (min-width: 768px) {
    .plan-detail {
        gap:50px;
        grid-template-columns: clamp(18.75rem,1.4006024096rem + 36.1445783133vw,26.25rem) 1fr
    }
}

.plan-detail>* {
    padding-block:clamp(3.125rem,1.5086206897rem + 6.8965517241vw,6.25rem)}

.plan-detail__title {
    display: flex;
    align-items: baseline;
    color: #998058;
    font-weight: var(--fw-light);
    font-size: clamp(1.125rem,.6912650602rem + .9036144578vw,1.3125rem);
    line-height: 1;
    font-family: var(--font-en);
    gap: clamp(.625rem,-.8207831325rem + 3.0120481928vw,1.25rem)
}

.plan-detail__title .-type {
    position: relative;
    top: .3em
}

.plan-detail__title .-num {
    font-size: clamp(5rem,2.1084337349rem + 6.0240963855vw,6.25rem)
}

.plan-detail__title .-name {
    display: flex;
    align-items: center;
    color: #000;
    font-size: 17px;
    gap: clamp(.625rem,-.8207831325rem + 3.0120481928vw,1.25rem)
}

.plan-detail__title .-name::before {
    display: inline-block;
    width: 25px;
    height: 1px;
    background-color: currentColor;
    content: ""
}

.plan-detail__spec {
    display: flex;
    flex-direction: column;
    position: relative;
    gap: clamp(1.25rem,1.088362069rem + .6896551724vw,1.5625rem)
}

@media screen and (max-width: 767px) {
    .plan-detail__spec {
        align-items:center
    }
}

.plan-detail__spec::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    margin-left: calc(50% - 50vw);
    background-color: #f7f7f5;
    content: ""
}

@media screen and (max-width: 767px) {
    .plan-detail__spec::before {
        margin-inline:-20px
    }
}

.plan-detail__spec .plan-item-madori {
    margin-bottom: 5px
}

.plan-detail__spec .plan-item-area {
    align-items: start;
    padding: 0
}

@media screen and (max-width: 767px) {
    .plan-detail__spec .plan-item-area {
        align-items:center
    }
}

.plan-detail__layout {
    display: flex;
    flex-direction: column;
    align-items: center
}

.plan-detail__map {
    margin-bottom: 20px
}

.plan-layout {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5625rem,.7543103448rem + 3.4482758621vw,3.125rem)
}

.plan-layout .btn_more {
    justify-content: center;
    width: clamp(15rem,8.7831325301rem + 12.9518072289vw,17.6875rem);
    height: 83px;
    margin-inline:auto;background-color: #f7f7f5
}

.plan-layout .btn_more:hover {
    background-color: #ccc
}

.plan-layout-note>*:not(:last-child) {
    margin-bottom: 1em
}

.plan-layout-note__strage {
    display: flex;
    align-items: center;
    margin-bottom: 1em;
    font-size: .75rem;
    gap: 10px
}

.plan-layout-note__strage::before {
    display: inline-block;
    width: 52px;
    height: 14px;
    background-color: #e1d6c6;
    content: ""
}

.blur-slide-in {
    opacity: 0
}

.blur-slide-in.is-on {
    animation: blurSlideIn 1s forwards
}

.blur-fade-in {
    opacity: 0
}

.blur-fade-in.is-on {
    animation: blurFadeIn 1s forwards
}

.zoom-in {
    transform: scale(1.08)
}

.zoom-in.is-on {
    animation: zoomIn 1s ease-out forwards
}

@keyframes blurSlideIn {
    0% {
        opacity: 0;
        transform: translateY(30px);
        filter: blur(8px)
    }

    100% {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0)
    }
}

@keyframes blurFadeIn {
    0% {
        opacity: 0;
        filter: blur(8px)
    }

    100% {
        opacity: 1;
        filter: blur(0)
    }
}

@keyframes zoomIn {
    to {
        transform: scale(1)
    }
}

.request-section {
    padding-block:clamp(3.125rem,-4.1039156627rem + 15.0602409639vw,6.25rem)}

.request-header {
    margin-bottom: clamp(3.125rem,-4.1039156627rem + 15.0602409639vw,6.25rem)
}

.request-intro {
    margin-bottom: clamp(.9375rem,-1.2311746988rem + 4.5180722892vw,1.875rem)
}

.request-tel {
    display: flex;
    align-items: center;
    margin-bottom: clamp(1.875rem,-2.4623493976rem + 9.0361445783vw,3.75rem);
    border: 1px solid hsla(0,0%,80%,.5)
}

@media screen and (max-width: 767px) {
    .request-tel {
        flex-direction:column
    }
}

.request-tel>* {
    padding: clamp(.625rem,.1400862069rem + 2.0689655172vw,1.5625rem)
}

@media screen and (max-width: 767px) {
    .request-tel>* {
        padding-inline:20px
    }
}

@media screen and (min-width: 768px) {
    .request-tel__body {
        border-left:1px solid hsla(0,0%,80%,.5)
    }
}

@media screen and (max-width: 767px) {
    .request-tel__body {
        border-top:1px solid hsla(0,0%,80%,.5)
    }
}

.request-tel__body>*:not(:last-child) {
    margin-bottom: clamp(.625rem,.463362069rem + .6896551724vw,.9375rem)
}

.request-tel__open {
    font-size: clamp(.75rem,.6853448276rem + .275862069vw,.875rem);
    line-height: 1.5
}

.request-body .alert-danger {
    color: #e60012;
    font-size: .9em
}

.request-flow {
    display: flex;
    justify-content: center;
    margin-bottom: clamp(1.875rem,-2.4623493976rem + 9.0361445783vw,3.75rem);
    gap: clamp(.625rem,.1400862069rem + 2.0689655172vw,1.5625rem)
}

.request-flow>li {
    display: grid;
    width: 200px;
    height: clamp(1.875rem,1.4224137931rem + 1.9310344828vw,2.75rem);
    border: 1px solid rgba(128,128,128,.5);
    background-color: #e5e5e5;
    place-items: center
}

@media screen and (max-width: 767px) {
    .request-flow>li {
        width:100%
    }
}

.request-flow>li.is-current {
    border-color: #016080;
    background-color: #016080;
    color: #fff
}

.form-item {
    display: grid;
    border-bottom: 1px solid rgba(128,128,128,.5)
}

@media screen and (min-width: 768px) {
    .form-item {
        grid-template-columns:clamp(12.5rem,5.2710843373rem + 15.0602409639vw,15.625rem) 1fr
    }
}

.form-item>dt,.form-item>dd {
    padding: 20px
}

.form-item>dt {
    background-color: #f7f7f7
}

.form-item-label {
    display: flex;
    align-items: center;
    gap: 10px
}

.form-item-must {
    display: grid;
    align-items: center;
    width: clamp(1.875rem,.4292168675rem + 3.0120481928vw,2.5rem);
    height: 22px;
    background-color: #e60012;
    color: #fff;
    font-size: clamp(.625rem,.3358433735rem + .6024096386vw,.75rem);
    line-height: 1;
    place-items: center
}

.form-item-group {
    display: flex;
    flex-direction: column;
    gap: 1em
}

.form-item-note {
    font-size: clamp(.8125rem,.7801724138rem + .1379310345vw,.875rem)
}

@media screen and (max-width: 767px) {
    .request-form {
        margin-inline:-20px;
        border-top: 1px solid rgba(128,128,128,.5)
    }
}

.request-form .input-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: clamp(.5rem,.2413793103rem + 1.1034482759vw,1rem)
}

.request-form .input-s {
    width: 100px
}

@media screen and (max-width: 767px) {
    .request-form .input-s {
        width:80px
    }
}

.request-form .input-m {
    width: 100%;
    max-width: 300px
}

.request-form .input-l {
    width: 100%;
    max-width: 700px
}

.request-form input,.request-form select,.request-form textarea,.request-form button {
    font: inherit
}

.request-form input::placeholder,.request-form select::placeholder,.request-form textarea::placeholder,.request-form button::placeholder {
    color: #999;
    font-size: 14px
}

.request-form input[type=text],.request-form input[type=tel],.request-form input[type=email],.request-form select,.request-form textarea {
    padding: 5px 10px;
    border: 1px solid rgba(128,128,128,.5);
    box-sizing: border-box;
    font-size: 1rem;
    line-height: 1.75
}

.request-form textarea {
    width: 100%;
    min-height: 180px;
    resize: vertical
}

.request-enquete-title {
    margin-block:clamp(1.875rem,.9051724138rem + 4.1379310345vw,3.75rem) clamp(.9375rem,.4525862069rem + 2.0689655172vw,1.875rem)}

@media screen and (max-width: 767px) {
    .request-enquete-title {
        padding-inline:20px
    }
}

.request-policy {
    margin-block:clamp(1.5625rem,-2.0519578313rem + 7.5301204819vw,3.125rem);font-size: clamp(.8125rem,.6679216867rem + .3012048193vw,.875rem);
    line-height: 1.75
}

@media screen and (max-width: 767px) {
    .request-policy {
        padding-inline:20px
    }
}

.request-policy dt {
    margin-bottom: 5px;
    font-size: clamp(1.125rem,1.0280172414rem + .4137931034vw,1.3125rem)
}

.request-policy-agree {
    padding: clamp(1.25rem,.9267241379rem + 1.3793103448vw,1.875rem);
    border: 1px solid rgba(128,128,128,.5);
    background-color: #f7f7f7
}

.request-submit-btns {
    display: flex;
    flex-direction: column;
    margin-top: clamp(2.1875rem,1.0560344828rem + 4.8275862069vw,4.375rem);
    gap: 20px
}

.request-submit-btn {
    display: grid;
    width: clamp(12.5rem,10.2047413793rem + 9.7931034483vw,16.9375rem);
    aspect-ratio: 271/74;
    margin-inline:auto;border: none;
    background-color: #333;
    color: #fff;
    cursor: pointer;
    transition: .3s;
    place-items: center
}

.request-submit-btn:hover {
    background-color: var(--color-accent)
}

.request-submit-btn--back {
    width: clamp(10rem,8.7068965517rem + 5.5172413793vw,12.5rem);
    background-color: #888
}

.request-thanks {
    display: flex;
    flex-direction: column;
    margin-top: 2em;
    gap: 1em
}

@media screen and (max-width: 767px) {
    .request-thanks a {
        color:revert;
        text-decoration: revert
    }
}

.request-thanks__title {
    font-weight: var(--fw-medium);
    font-size: 1.2em
}
