/* ==========================================================================
     RESET & GLOBAL
     ========================================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.page-body {
    font-family: 'Plus Jakarta Sans', 'Noto Sans JP', sans-serif;
    background-color: #ffffff;
    color: #1a1c1a;
    -webkit-font-smoothing: antialiased;
}

.page-wrapper {
    position: relative;
    display: flex;
    min-height: 100vh;
    width: 100%;
    flex-direction: column;
    overflow-x: hidden;
}

a {
    text-decoration: none;
    color: inherit;
}

li {
    list-style: none;
}

button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

.main-content {
    flex-grow: 1;
}

/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */
.header {
    position: fixed;
    top: 0;
    z-index: 110;
    width: 100%;
    transition-property: all;
    transition-duration: 0.3s;
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(0.8vw);
    border-bottom-width: 0.066vw;
    border-bottom-style: solid;
    border-bottom-color: rgba(255, 255, 255, 0.2);
}

.header-inner {
    margin-left: auto;
    margin-right: auto;
    display: flex;
    height: 5.333vw;
    max-width: 102.4vw;
    align-items: center;
    justify-content: space-between;
    padding-left: 3.2vw;
    padding-right: 3.2vw;
}

.logo-group {
    display: flex;
    align-items: center;
    gap: 1vw;
    cursor: pointer;
}

.logo-icon {
    position: relative;
    display: flex;
    height: 4vw;
    width: 4vw;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    transition-property: transform;
    transition-duration: 0.3s;
}

.logo-icon img {
    width: 100%;
}

.logo-group:hover .logo-icon {
    transform: scale(1.1);
}

.logo-symbol {
    font-size: 1.6vw;
}

.logo-text {
    font-size: 1.333vw;
    font-weight: 700;
    letter-spacing: -0.013vw;
    color: #1f2937;
    transition-property: color;
    transition-duration: 0.3s;
}

.logo-group:hover .logo-text {
    color: #22c55e;
}

.pc-nav {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    gap: 2.666vw;
}

.nav-link {
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.05vw;
    color: #4b5563;
    transition-property: color;
    transition-duration: 0.3s;
}

.nav-link:hover {
    color: #22c55e;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 1.066vw;
}

.mobile-menu-btn {
    display: none;
}

.hero-sec {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden;
}

.hero-bg-wrapper {
    position: absolute;
    inset: 0;
    z-index: 0;
    height: 100%;
    width: 100%;
    background-color: #111827;
}

.hero-bg-anim {
    position: relative;
    height: 100%;
    width: 100%;
    animation-name: slowZoom;
    animation-duration: 20s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-direction: alternate;
}

@keyframes slowZoom {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(1.1);
    }
}

.hero-slider {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

/* Slick読み込み前のレイアウト崩れ防止 */
.hero-slider .hero-slide-item:not(:first-child) {
    display: none;
}

.hero-slider.slick-initialized .hero-slide-item {
    display: block;
}

.hero-slider,
.hero-slider .slick-list,
.hero-slider .slick-track {
    height: 100%;
}

.hero-slide-item {
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: brightness(0.9);
}

.hero-gradient {
    position: absolute;
    inset: 0;
    z-index: 10;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.4), transparent, rgba(0, 0, 0, 0.1));
}

.hero-content {
    position: relative;
    z-index: 20;
    display: flex;
    height: 100%;
    width: 100%;
    flex-direction: column;
    justify-content: center;
    padding-left: 4.266vw;
    padding-right: 4.266vw;
    margin-left: auto;
    margin-right: auto;
}

.hero-content-inner {
    max-width: 59.733vw;
    padding-top: 5.333vw;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.8vw;
    border-radius: 9999px;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.3);
    background-color: rgba(255, 255, 255, 0.1);
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    padding-top: 0.533vw;
    padding-bottom: 0.533vw;
    backdrop-filter: blur(0.8vw);
    margin-bottom: 2.133vw;
}

.badge-dot-wrapper {
    position: relative;
    display: flex;
    height: 0.533vw;
    width: 0.533vw;
}

.badge-dot-ping {
    position: absolute;
    display: inline-flex;
    height: 100%;
    width: 100%;
    border-radius: 9999px;
    background-color: #4ade80;
    opacity: 0.75;
    animation-name: ping;
    animation-duration: 1s;
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    animation-iteration-count: infinite;
}

@keyframes ping {

    75%,
    100% {
        transform: scale(2);
        opacity: 0;
    }
}

.badge-dot-core {
    position: relative;
    display: inline-flex;
    height: 0.533vw;
    width: 0.533vw;
    border-radius: 9999px;
    background-color: #22c55e;
}

.badge-text {
    font-size: 0.8vw;
    font-weight: 700;
    letter-spacing: 0.1vw;
    color: #ffffff;
    text-transform: uppercase;
}

.hero-title {
    font-size: 4.8vw;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.013vw;
    color: #ffffff;
    text-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.1);
    margin-bottom: 2.133vw;
}

.text-accent {
    color: #86efac;
}

.hero-desc {
    max-width: 38.4vw;
    font-size: 1.333vw;
    font-weight: 500;
    line-height: 1.625;
    color: #fff;
    text-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.1);
    margin-bottom: 2.133vw;
}

.hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1.066vw;
    padding-top: 1.066vw;
}

.hero-btn-primary {
    display: flex;
    height: 3.733vw;
    min-width: 12vw;
    align-items: center;
    justify-content: space-between;
    border-radius: 9999px;
    background-color: #ffffff;
    padding-left: 1.6vw;
    padding-right: 1.6vw;
    transition-property: all;
    transition-duration: 0.3s;
}

.hero-btn-primary:hover {
    background-color: #f0fdf4;
}

.hero-btn-text {
    font-size: 1.2vw;
    font-weight: 700;
    color: #111827;
}

.hero-btn-arrow {
    color: #111827;
    transition-property: transform;
    transition-duration: 0.3s;
}

.hero-btn-primary:hover .hero-btn-arrow {
    transform: translateX(0.266vw);
}

.hero-btn-secondary {
    display: flex;
    height: 3.733vw;
    min-width: 12vw;
    align-items: center;
    justify-content: center;
    gap: 0.533vw;
    border-radius: 9999px;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.5);
    background-color: rgba(0, 0, 0, 0.2);
    padding-left: 1.6vw;
    padding-right: 1.6vw;
    backdrop-filter: blur(0.266vw);
    transition-property: all;
    transition-duration: 0.3s;
}

.hero-btn-secondary:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.hero-btn-play {
    font-size: 1.6vw;
    color: #ffffff;
}

.hero-btn-text2 {
    font-size: 1.2vw;
    font-weight: 700;
    color: #ffffff;
}

.scroll-indicator {
    position: absolute;
    bottom: 2.666vw;
    left: 50%;
    z-index: 20;
    display: flex;
    transform: translateX(-50%);
    flex-direction: column;
    align-items: center;
    gap: 0.533vw;
    color: rgba(255, 255, 255, 0.8);
}

.scroll-text {
    font-size: 0.666vw;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.scroll-line {
    height: 3.2vw;
    width: 0.066vw;
    background-image: linear-gradient(to bottom, #ffffff, transparent);
}

.concept-sec {
    position: relative;
    padding-top: 8.533vw;
    padding-bottom: 8.533vw;
    overflow: hidden;
    background-color: #ffffff;
}

.concept-deco-green {
    pointer-events: none;
    position: absolute;
    top: 10.666vw;
    left: -5.333vw;
    height: 25.6vw;
    width: 25.6vw;
    border-radius: 9999px;
    background-color: #dcfce7;
    filter: blur(6.666vw);
    opacity: 0.6;
}

.concept-deco-blue {
    pointer-events: none;
    position: absolute;
    right: 0;
    bottom: 0;
    height: 33.333vw;
    width: 33.333vw;
    border-radius: 9999px;
    background-color: #eff6ff;
    filter: blur(8vw);
    opacity: 0.4;
}

.concept-inner {
    margin-left: auto;
    margin-right: auto;
    max-width: 85.333vw;
    padding-left: 3.2vw;
    padding-right: 3.2vw;
    position: relative;
    z-index: 10;
}

.concept-grid {
    display: flex;
    gap: 3vw;
    align-items: center;
}

.concept-text-area {
    width: 85%;
}

.concept-header {
    margin-bottom: 2.133vw;
}

.section-label {
    margin-bottom: 1.066vw;
    display: i nline-block;
    font-size: 0.8vw;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: #16a34a;
}

.section-title {
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1.25;
    color: #111827;
}

.text-primary-dark {
    color: #22c55e;
}

.concept-desc-group {
    color: #4b5563;
    line-height: 2;
    font-size: 1.2vw;
    margin-bottom: 1.6vw;
}

.concept-p {
    margin-bottom: 1.6vw;
}

.pc-br {
    display: block;
}

.concept-features {
    padding-top: 1.066vw;
}

.feature-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1vw;
    row-gap: 2vwvw;
    border-top-width: 0.066vw;
    border-top-style: solid;
    border-top-color: #f3f4f6;
    padding-top: 2.133vw;
}

.feature-dt {
    margin-bottom: 0.533vw;
    display: flex;
    align-items: center;
    gap: 0.533vw;
    font-size: 0.933vw;
    font-weight: 700;
    color: #111827;
}

.feature-icon {
    color: #22c55e;
}

.feature-dd {
    font-size: 0.933vw;
    color: #6b7280;
}

.concept-image-area {
    order: 2;
    position: relative;
}

.concept-image-box {
    position: relative;
    aspect-ratio: 1 / 1;
    width: 100%;
    overflow: hidden;
    border-radius: 2.133vw;
    box-shadow: 0 1.6vw 3.333vw -0.8vw rgba(0, 0, 0, 0.25);
}

.concept-img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    transition-property: transform;
    transition-duration: 1s;
}

.concept-image-box:hover .concept-img {
    transform: scale(1.05);
}

.facilities-sec {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #f0fdf4;
}

.facilities-inner {
    margin-left: auto;
    margin-right: auto;
    max-width: 85.333vw;
    padding-left: 3.2vw;
    padding-right: 3.2vw;
}

.facilities-header {
    text-align: center;
    margin-bottom: 4.266vw;
}

.section-title-center {
    font-size: 2.4vw;
    font-weight: 700;
    color: #111827;
}

.section-desc-center {
    margin-top: 1.066vw;
    color: #4b5563;
}

.facilities-grid {
    display: grid;
    gap: 1.6vw;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    height: 53.333vw;
}

.facility-card-large {
    grid-column: span 3 / span 3;
    grid-row: span 1 / span 1;
    position: relative;
    overflow: hidden;
    border-radius: 1.6vw;
    background-color: #ffffff;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    transition-property: all;
    transition-duration: 0.3s;
}

.facility-card-large:hover {
    transform: translateY(-0.266vw);
    box-shadow: 0 1.333vw 1.666vw -0.333vw rgba(0, 0, 0, 0.1);
}

.facility-card-small {
    grid-column: span 2 / span 2;
    grid-row: span 1 / span 1;
    position: relative;
    overflow: hidden;
    border-radius: 1.6vw;
    background-color: #ffffff;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    transition-property: all;
    transition-duration: 0.3s;
}

.facility-card-small:hover {
    transform: translateY(-0.266vw);
    box-shadow: 0 1.333vw 1.666vw -0.333vw rgba(0, 0, 0, 0.1);
}

.facility-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.facility-img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    opacity: 0.9;
    transition-property: transform;
    transition-duration: 0.7s;
}

.facility-card-large:hover .facility-img,
.facility-card-small:hover .facility-img {
    transform: scale(1.05);
}

.facility-gradient {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.2), transparent);
}

.facility-gradient-light {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent, transparent);
}

.facility-content {
    position: relative;
    z-index: 10;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: flex-end;
    padding: 2.133vw;
    color: #ffffff;
}

.facility-content-small {
    position: relative;
    z-index: 10;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.6vw;
    color: #ffffff;
}

.facility-tag-group {
    margin-bottom: 0.533vw;
    display: flex;
    align-items: center;
    gap: 0.533vw;
}

.facility-tag {
    border-radius: 0.266vw;
    background-color: rgba(255, 255, 255, 0.2);
    padding-left: 0.533vw;
    padding-right: 0.533vw;
    padding-top: 0.133vw;
    padding-bottom: 0.133vw;
    font-size: 0.8vw;
    font-weight: 700;
    backdrop-filter: blur(0.266vw);
}

.facility-title {
    margin-bottom: 0.266vw;
    font-size: 1.6vw;
    font-weight: 700;
}

.facility-desc {
    font-size: 0.933vw;
    color: rgba(255, 255, 255, 0.8);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.facility-title-small {
    margin-bottom: 0.266vw;
    font-size: 1.333vw;
    font-weight: 700;
}

.facility-desc-small {
    font-size: 0.8vw;
    color: rgba(255, 255, 255, 0.9);
}

.news-sec {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #ffffff;
}

.news-inner {
    margin-left: auto;
    margin-right: auto;
    max-width: 59.733vw;
    padding-left: 1.6vw;
    padding-right: 1.6vw;
}

.news-header-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 3.2vw;
    border-bottom-width: 0.066vw;
    border-bottom-style: solid;
    border-bottom-color: #f3f4f6;
    padding-bottom: 1.066vw;
}

.view-all-link-pc {
    display: inline-flex;
    align-items: center;
    font-size: 0.933vw;
    font-weight: 700;
    color: #6b7280;
    transition-property: color;
    transition-duration: 0.3s;
}

.view-all-link-pc:hover {
    color: #22c55e;
}

.view-all-icon {
    margin-left: 0.266vw;
    font-size: 1.2vw;
}

.news-list {
    display: flex;
    gap: 1vw;
    flex-wrap: wrap;
}

.news-list.news-more {
    gap: 2vw 1vw;
}

.news-item {
    display: flex;
    width: 30%;
    flex-direction: column;
    gap: 1vw;
    border-radius: 1.066vw;
    background-color: #f9fafb;
    padding: 1.6vw;
    transition-property: background-color;
    transition-duration: 0.3s;
}

.news-item:hover {
    background-color: #f0fdf4;
}

.news-item-image img {
    width: 100%;
    height: 10vw;
    object-fit: cover;
}

.news-meta {
    display: flex;
    flex-shrink: 0;
    flex-direction: column;
    width: 8.533vw;
}

.news-date {
    font-size: 0.933vw;
    font-weight: 700;
    color: #9ca3af;
}

.news-tag-event {
    font-size: 0.8vw;
    font-weight: 700;
    color: #16a34a;
}

.news-tag-news {
    font-size: 0.8vw;
    font-weight: 700;
    color: #2563eb;
}

.news-tag-campaign {
    font-size: 0.8vw;
    font-weight: 700;
    color: #ea580c;
}

.news-item-title {
    font-size: 1.066vw;
    font-weight: 700;
    color: #1f2937;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    transition-property: color;
    transition-duration: 0.3s;
}

.news-item:hover .news-item-title {
    color: #166534;
}

.news-arrow-btn {
    margin-left: auto;
    border-radius: 9999px;
    background-color: #ffffff;
    padding: 0.533vw;
    color: #9ca3af;
    opacity: 0;
    transition-property: all;
    transition-duration: 0.3s;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
}

.news-item:hover .news-arrow-btn {
    opacity: 1;
}

.news-arrow-icon {
    display: block;
    font-size: 0.933vw;
}

.news-view-all-mobile {
    display: none;
}

.access-sec {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #f0fdf4;
}

.access-inner {
    margin-left: auto;
    margin-right: auto;
    max-width: 85.333vw;
    padding-left: 3.2vw;
    padding-right: 3.2vw;
}

.access-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 3.2vw;
    align-items: flex-start;
}

.access-info {
    grid-column: span 4 / span 4;
}

.section-title-mb {
    margin-bottom: 2.133vw;
    font-size: 2.4vw;
    font-weight: 700;
    color: #111827;
}

.access-cards {
    display: flex;
    flex-direction: column;
    gap: 2.133vw;
}

.access-card {
    border-radius: 1.066vw;
    background-color: #ffffff;
    padding: 1.6vw;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    transition-property: box-shadow;
    transition-duration: 0.3s;
}

.access-card:hover {
    box-shadow: 0 0.266vw 0.4vw -0.066vw rgba(0, 0, 0, 0.1);
}

.access-icon-wrapper {
    margin-bottom: 1.066vw;
    display: flex;
    height: 2.666vw;
    width: 2.666vw;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background-color: #f0fdf4;
    color: #16a34a;
    transition-property: background-color, color;
    transition-duration: 0.3s;
}

.access-card-title {
    font-size: 1.2vw;
    font-weight: 700;
    color: #111827;
}

.access-card-desc {
    margin-top: 0.533vw;
    font-size: 0.933vw;
    line-height: 1.625;
    color: #6b7280;
}

.access-note {
    font-size: 0.8vw;
    color: #16a34a;
}

.access-map-area {
    width: 100%;
    aspect-ratio: 1 / 1;
    grid-column: span 8 / span 4;
}

.access-map-area iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.parking-map {
    width: 75%;
    margin: 5vw auto;
}

.footer-sec {
    background-color: #111827;
    color: #ffffff;
    padding-top: 5.333vw;
    padding-bottom: 2.666vw;
}

.footer-inner {
    margin-left: auto;
    margin-right: auto;
    max-width: 85.333vw;
    padding-left: 3.2vw;
    padding-right: 3.2vw;
}

.footer-grid {
    display: flex;
    gap: 3.2vw;
    justify-content: space-between;
}

.footer-brand {
    grid-column: span 1 / span 1;
}

.footer-logo-row {
    display: flex;
    align-items: center;
    gap: 0.8vw;
    margin-bottom: 1.6vw;
}

.footer-logo-icon {
    display: flex;
    height: 3vw;
    width: 3vw;
    align-items: center;
    justify-content: center;
}

.footer-logo-icon img {
    width: 100%;
}

.footer-symbol {
    font-size: 1.2vw;
}

.footer-logo-text {
    font-size: 1.2vw;
    font-weight: 700;
}

.footer-desc {
    font-size: 0.933vw;
    color: #9ca3af;
    line-height: 1.625;
}

.footer-links {
    display: flex;
    gap: 2vw;
}

.footer-link-col {
    width: 12vw;
}

.footer-link-title {
    margin-bottom: 1.066vw;
    font-size: 0.933vw;
    font-weight: 700;
    color: #4ade80;
}

.footer-ul {
    display: flex;
    flex-direction: column;
    gap: 0.8vw;
}

.footer-a {
    font-size: 0.933vw;
    color: #9ca3af;
    transition-property: color;
    transition-duration: 0.3s;
}

.footer-a:hover {
    color: #ffffff;
}

.footer-social {
    grid-column: span 1 / span 1;
}

.social-row {
    display: flex;
    gap: 1.066vw;
}

.social-btn {
    display: flex;
    height: 3.2vw;
    width: 3.2vw;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background-color: rgba(255, 255, 255, 0.05);
    transition-property: all;
    transition-duration: 0.3s;
}

.social-btn:hover {
    background-color: #16a34a;
    color: #ffffff;
}

.social-text {
    font-size: 0.8vw;
    font-weight: 700;
}

.footer-bottom {
    margin-top: 5.333vw;
    border-top-width: 0.066vw;
    border-top-style: solid;
    border-top-color: rgba(255, 255, 255, 0.1);
    padding-top: 2.133vw;
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer-copy {
    font-size: 1.2vw;
    color: #fff;
}


/* --------------------------------------
    公式LINEボタン
     -------------------------------------- */
.line-btn {
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 8vw;
    height: 8vw;
    background-color: #00c300;
    border-top-left-radius: 1vw;
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 0.4vw 1vw rgba(0, 0, 0, 0.2);
}

.line-btn i {
    font-size: 3.5vw;
    margin-bottom: 0.5vw;
}

.line-btn span {
    font-size: 0.9vw;
    font-weight: bold;
    text-align: center;
}

/* フローティング */
.floating-container {
    position: absolute;
    right: 5vw;
    bottom: 5vw;
    z-index: 109;
    width: 12vw;
    animation: float-anime 2s ease-in-out infinite;
}

.floating-container span {
    font-size: 1.2vw;
    display: block;
    margin-top: -2vw;
    text-align: center;
}

.floating-img {
    display: block;
    width: 100%;
    height: auto;
}

@keyframes float-anime {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-20%);
    }

    100% {
        transform: translateY(0);
    }
}


/* --------------------------------------
     Mobile Menu Overlay (hidden by default)
     -------------------------------------- */
.mobile-menu-wrapper[data-menu="closed"] {
    display: none;
}

.mobile-menu-wrapper[data-menu="open"] {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(255, 255, 255, 0.95);
    z-index: 100;
}

.mobile-nav-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
    gap: 8vw;
}

.mobile-nav-link {
    font-size: 5.333vw;
    font-weight: 700;
    color: #1a1c1a;
}

.menu-anim-in {
    animation-name: fadeInMenu;
    animation-duration: 0.3s;
    animation-fill-mode: forwards;
}

@keyframes fadeInMenu {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }

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

/* =========================================================
     BASE STYLES & PC (701px - 1500px) : 1500px基準
========================================================= */
.main-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    background-color: #f7f9f7;
    font-family: 'Noto Sans JP', sans-serif;
    color: #1d2923;
}

.content-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 85vw;
    margin-top: 5vw;
    margin-left: auto;
    margin-right: auto;
    padding-top: 1.333vw;
    padding-bottom: 1.333vw;
}

/* Hero Section */
.lower .hero-section {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    text-align: center;
}

.lower .hero-inner {
    display: flex;
    flex-direction: column;
    gap: 1.066vw;
}

.lower .hero-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 4vw;
    font-weight: 700;
    letter-spacing: -0.025em;
    text-shadow: none;
    color: #273129;
    line-height: 1.1;
}

.lower .hero-subtitle {
    font-size: 1.333vw;
    color: #000;
}

.lower .hero-desc {
    font-size: 1.2vw;
    color: #5c6e62;
    text-shadow: none;
    line-height: 2.5;
    max-width: 48vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1vw;
}

.about-section {
    background-color: #f0f4f0;
    border-radius: 3vw;
    padding: 6vw 10vw;
    width: 80vw;
    margin: 0 auto;
    text-align: center;
    box-sizing: border-box;
}

.about-icon-container {
    margin-bottom: 2vw;
}

.about-icon {
    width: 4vw;
    height: 4vw;
}

.about-title {
    color: #273129;
    font-size: 2.2vw;
    font-weight: bold;
    margin-top: 0;
    margin-bottom: 3vw;
    letter-spacing: 0.05em;
}

.about-text-content {
    max-width: 100%;
    margin: 0 auto;
}

.about-paragraph {
    color: #5c6e62;
    font-size: 1.2vw;
    line-height: 2;
    margin-top: 0;
    margin-bottom: 2vw;
    text-align: left;
}

.about-paragraph:last-child {
    margin-bottom: 0;
}

/* Gallery Section */
.gallery-section {
    padding-top: 2.666vw;
    padding-bottom: 2.666vw;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.066vw;
    padding: 1.066vw;
}

.gallery-large {
    grid-column: span 2;
    grid-row: span 2;
    width: 100%;
    height: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 0.8vw;
}

.gallery-small {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 0.8vw;
}

/* Philosophy Section */
.philosophy-section {
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
}

.philosophy-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1.066vw;
}

.philosophy-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 2.4vw;
    font-weight: 700;
    letter-spacing: -0.025em;
}

.philosophy-desc {
    font-size: 1.066vw;
    color: #5d7a6a;
    line-height: 1.625;
    max-width: 48vw;
}

.philosophy-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.133vw;
}

.philosophy-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1.6vw;
    background-color: #ffffff;
    border: 0.066vw solid #e4e9e6;
    border-radius: 0.8vw;
    transition-property: box-shadow;
    transition-duration: 0.3s;
}

.philosophy-card:hover {
    box-shadow: 0 0.666vw 1vw -0.2vw rgba(0, 0, 0, 0.1);
}

.card-icon-wrapper {
    color: #4a6956;
    margin-bottom: 1.066vw;
}

.material-symbols-outlined {
    font-size: 2vw;
    font-family: 'Material Symbols Outlined';
    font-style: normal;
}

.card-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1.333vw;
    font-weight: 700;
    margin-bottom: 0.533vw;
}

.card-desc {
    font-size: 1.066vw;
    color: #5d7a6a;
    line-height: 1.625;
}

/* Founder Section */
.founder-section {
    padding-top: 2.666vw;
    padding-bottom: 2.666vw;
}

.founder-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background-color: #e4e9e6;
    border-radius: 0.8vw;
    padding: 3.2vw 5.333vw;
}

.founder-img-wrapper {
    margin-bottom: 1.6vw;
}

.founder-img {
    width: 8.533vw;
    height: 8.533vw;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 50%;
}

.founder-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 44.8vw;
}

.founder-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1.6vw;
    font-weight: 700;
    letter-spacing: -0.025em;
}

.founder-quote {
    font-size: 1.066vw;
    color: #5d7a6a;
    line-height: 2.5;
    margin-top: 1.066vw;
    text-align: left;
}

.founder-name {
    font-size: 1.066vw;
    color: #5d7a6a;
    margin-top: 1.066vw;
}

/* CTA Section */
.cta-section {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
}

.cta-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1.6vw;
    background-color: rgba(74, 105, 86, 0.1);
    border-radius: 0.8vw;
    padding: 3.2vw 5.333vw;
}

.cta-header {
    display: flex;
    flex-direction: column;
    gap: 0.533vw;
}

.cta-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 2vw;
    font-weight: 700;
}

.cta-desc {
    font-size: 1.066vw;
    color: #5d7a6a;
    max-width: 34.133vw;
}

.cta-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 8vw;
    height: 3.2vw;
    padding-left: 1.6vw;
    padding-right: 1.6vw;
    background-color: #4a6956;
    border: none;
    border-radius: 0.533vw;
    cursor: pointer;
    transition-property: background-color;
    transition-duration: 0.3s;
}

.cta-button:hover {
    background-color: #3b5445;
}

.cta-button-text {
    font-size: 1.066vw;
    font-weight: 700;
    color: #ffffff;
}

/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */
.shop-main {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 85.3333vw;
    margin: 10vw auto 100px;
    font-family: 'Plus Jakarta Sans', 'Noto Sans JP', sans-serif;
    color: #44403C;
}

/* Hero Section */
.shop-hero {
    position: relative;
    padding-top: 4.2666vw;
    padding-bottom: 5.3333vw;
    padding-left: 2.1333vw;
    padding-right: 2.1333vw;
    text-align: center;
    overflow: hidden;
}

.shop-hero-blur-bg {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 53.3333vw;
    height: 53.3333vw;
    background-color: rgba(106, 153, 78, 0.05);
    border-radius: 9999px;
    filter: blur(4.2666vw);
    z-index: -10;
}

.shop-hero-subtitle {
    color: #6A994E;
    font-weight: 700;
    letter-spacing: 0.2em;
    margin-bottom: 1.0666vw;
    font-size: 0.9333vw;
    text-transform: uppercase;
}

.shop-hero-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 3.2vw;
    font-weight: 700;
    color: #386641;
    line-height: 1.25;
    margin-bottom: 2.1333vw;
}

.shop-hero-br-sp {
    display: none;
}

.shop-hero-title-large {
    display: block;
    font-size: 4vw;
    margin-top: 0.5333vw;
}

.shop-hero-desc {
    color: #78716C;
    font-size: 1.2vw;
    max-width: 44.8vw;
    margin-left: auto;
    margin-right: auto;
    line-height: 2;
    font-weight: 500;
}

/* Image Section */
.shop-hero-image-area {
    padding-left: 2.1333vw;
    padding-right: 2.1333vw;
    margin-bottom: 6.4vw;
}

.shop-hero-image-wrapper {
    position: relative;
    width: 100%;
    height: 40vw;
    border-radius: 1.0666vw;
    overflow: hidden;
    box-shadow: 0 1.6666vw 3.3333vw -0.8333vw rgba(0, 0, 0, 0.25);
}

.shop-hero-image-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-size: cover;
    background-position: center;
    transition-property: transform;
    transition-duration: 10s;
}

.shop-hero-image-wrapper:hover .shop-hero-image-bg {
    transform: scale(1.05);
}

.shop-hero-image-gradient {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent, transparent);
}

/* Origin Section */
.shop-origin {
    padding-left: 2.1333vw;
    padding-right: 2.1333vw;
    margin-bottom: 8.5333vw;
}

.shop-origin-card {
    background-color: #ffffff;
    border-radius: 1.6vw;
    padding: 4.2666vw;
    box-shadow: 0 0.6666vw 2.6666vw -0.6666vw rgba(0, 0, 0, 0.05);
    border-width: 0.0666vw;
    border-style: solid;
    border-color: rgba(231, 229, 228, 0.5);
    position: relative;
    overflow: hidden;
}

.shop-origin-card-blur {
    position: absolute;
    top: 0;
    right: 0;
    width: 17.0666vw;
    height: 17.0666vw;
    background-color: rgba(167, 201, 87, 0.1);
    border-radius: 9999px;
    filter: blur(4.2666vw);
    transform: translateY(-50%) translateX(50%);
}

.shop-origin-layout {
    display: flex;
    flex-direction: row;
    gap: 3.2vw;
    align-items: center;
}

.shop-origin-text-area {
    width: 50%;
}

.shop-origin-header {
    margin-bottom: 1.0666vw;
}

.shop-origin-heading {
    font-family: 'Noto Serif JP', serif;
    font-size: 2vw;
    font-weight: 700;
    color: #386641;
    display: flex;
    align-items: center;
    gap: 0.8vw;
    margin-bottom: 1.0666vw;
}

.shop-origin-icon {
    font-size: 2.6666vw;
}

.shop-origin-line {
    height: 0.2666vw;
    width: 5.3333vw;
    background-color: #A7C957;
    border-radius: 9999px;
}

.shop-origin-paragraphs {
    color: #78716C;
    line-height: 1.625;
    text-align: justify;
}

.shop-origin-p {
    margin-bottom: 1.6vw;
}

.shop-origin-visual-area {
    width: 50%;
    display: flex;
    justify-content: flex-end;
    position: relative;
}

.shop-origin-circle-inner {
    position: relative;
    z-index: 10;
    background-color: #FDFCF8;
    padding: 2.1333vw;
    border-radius: 9999px;
    box-shadow: 0 0.2666vw 1.3333vw -0.1333vw rgba(56, 102, 65, 0.1);
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 17.0666vw;
    height: 17.0666vw;
    border-width: 0.2666vw;
    border-style: solid;
    border-color: rgba(167, 201, 87, 0.2);
}

.shop-origin-circle-icon {
    font-size: 4vw;
    color: #386641;
    margin-bottom: 0.8vw;
}

.shop-origin-circle-en {
    color: #386641;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-align: center;
    font-size: 0.9333vw;
}

.shop-origin-circle-line {
    width: 2.1333vw;
    height: 0.0666vw;
    background-color: rgba(56, 102, 65, 0.3);
    margin-top: 0.5333vw;
    margin-bottom: 0.5333vw;
}

.shop-origin-circle-ja {
    font-family: 'Noto Serif JP', serif;
    font-size: 1.3333vw;
    font-weight: 700;
    color: #386641;
    text-align: center;
}

.shop-origin-circle-ring-sm {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 21.3333vw;
    height: 21.3333vw;
    border-width: 0.0666vw;
    border-style: solid;
    border-color: rgba(56, 102, 65, 0.1);
    border-radius: 9999px;
}

.shop-origin-circle-ring-lg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 25.6vw;
    height: 25.6vw;
    border-width: 0.0666vw;
    border-style: solid;
    border-color: rgba(56, 102, 65, 0.05);
    border-radius: 9999px;
}

/* Shops & Services List */
.shop-services {
    padding-left: 2.1333vw;
    padding-right: 2.1333vw;
    margin-bottom: 3.2vw;
}

.shop-services-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 2.6666vw;
    font-weight: 700;
    text-align: center;
    color: #44403C;
    margin-bottom: 1.0666vw;
}

.shop-services-subtitle {
    text-align: center;
    color: #78716C;
    margin-bottom: 4.2666vw;
    letter-spacing: 0.1em;
    font-size: 0.9333vw;
}

.shop-services-list {
    display: flex;
    flex-direction: column;
    gap: 8.5333vw;
}

.shop-article {
    display: flex;
    flex-direction: row;
    gap: 4.2666vw;
    align-items: center;
}

.shop-article-info-a {
    order: 1;
    width: 50%;
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
}

.shop-article-images-a {
    order: 2;
    width: 50%;
    display: flex;
    flex-direction: row;
    gap: 1.0666vw;
}

.shop-article-info-b {
    order: 2;
    width: 50%;
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
}

.shop-article-images-b {
    order: 1;
    width: 50%;
    display: flex;
    flex-direction: row;
    gap: 1.0666vw;
}

.shop-article-tags {
    display: flex;
    align-items: center;
    gap: 0.8vw;
    margin-bottom: 0.5333vw;
}

.shop-article-floor {
    padding-left: 0.8vw;
    padding-right: 0.8vw;
    padding-top: 0.2666vw;
    padding-bottom: 0.2666vw;
    background-color: rgba(167, 201, 87, 0.2);
    color: #386641;
    font-size: 0.8vw;
    font-weight: 700;
    border-radius: 9999px;
    letter-spacing: 0.05em;
}

.shop-article-category {
    color: #78716C;
    font-size: 0.9333vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.shop-article-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 2.8vw;
    font-weight: 700;
    color: #44403C;
    transition-property: color;
    transition-duration: 0.3s;
}

.shop-article:hover .shop-article-name {
    color: #386641;
}

.shop-article-desc {
    color: #78716C;
    line-height: 2;
}

.shop-article-features {
    display: flex;
    flex-wrap: wrap;
    gap: 1.0666vw;
    font-size: 0.9333vw;
    color: #78716C;
    font-weight: 500;
    padding-top: 0.5333vw;
    padding-bottom: 0.5333vw;
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.shop-article-feature {
    display: flex;
    align-items: center;
    gap: 0.2666vw;
}

.shop-feature-icon {
    color: #386641;
    font-size: 1.2vw;
}

.shop-article-btn-wrap {
    padding-top: 0.5333vw;
}

.shop-article-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3.2vw;
    padding-left: 2.1333vw;
    padding-right: 2.1333vw;
    border-radius: 9999px;
    border-width: 0.0666vw;
    border-style: solid;
    border-color: #386641;
    color: #386641;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.05em;
    font-size: 0.9333vw;
    transition-property: background-color, color;
    transition-duration: 0.3s;
}

.shop-article-btn:hover {
    background-color: #386641;
    color: #ffffff;
}

.shop-btn-text {
    font-size: 1.4vw;
    font-weight: normal;
}

.shop-btn-icon {
    margin-left: 0.5333vw;
    transition-property: transform;
    transition-duration: 0.3s;
}

.shop-article-btn:hover .shop-btn-icon {
    transform: translateX(0.2666vw);
}

.shop-article-img-wrap-mt {
    width: 50%;
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 1.0666vw;
    box-shadow: 0 0.6666vw 1vw -0.2vw rgba(0, 0, 0, 0.1);
    margin-top: 2.1333vw;
}

.shop-article-img-wrap-mb {
    width: 50%;
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 1.0666vw;
    box-shadow: 0 0.6666vw 1vw -0.2vw rgba(0, 0, 0, 0.1);
    margin-bottom: 2.1333vw;
}

.shop-article-img-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-size: cover;
    background-position: center;
    transition-property: transform;
    transition-duration: 0.7s;
}

.shop-article-img-bg[data-hover="true"] {
    transform: scale(1.1);
}



/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */
.ev-main {
    display: flex;
    flex-direction: column;
    max-width: 64vw;
    margin-top: 10vw;
    margin-left: auto;
    margin-right: auto;
    gap: 4.266vw;
    padding-top: 2.666vw;
    font-family: 'Noto Sans JP', 'Plus Jakarta Sans', sans-serif;
    color: #273129;
}

.ev-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1.066vw;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.ev-title {
    font-size: 3.2vw;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: #386641;
}

.ev-desc {
    font-size: 1vw;
    color: #5C6E62;
    max-width: 44.8vw;
}

.ev-hero-wrapper {
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.ev-hero-container {
    position: relative;
    aspect-ratio: 2 / 1;
    width: 100%;
    border-radius: 2.133vw;
    overflow: hidden;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
}

.ev-hero-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-size: cover;
    background-position: center;
}

.ev-hero-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.4), transparent, transparent);
}

.ev-about-wrapper {
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.ev-about-container {
    display: flex;
    flex-direction: row;
    background-color: #E9EEE7;
    border-radius: 2.133vw;
    overflow: hidden;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.05);
}

.ev-about-left {
    flex: 1;
    padding: 3.2vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.6vw;
}

.ev-about-left-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.ev-about-badge {
    padding-left: 0.8vw;
    padding-right: 0.8vw;
    padding-top: 0.266vw;
    padding-bottom: 0.266vw;
    margin-bottom: 1.066vw;
    border-radius: 9999px;
    background-color: rgba(106, 153, 78, 0.1);
    color: #6A994E;
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.ev-about-title {
    font-size: 2.4vw;
    font-weight: 700;
    color: #273129;
    margin-bottom: 0.533vw;
}

.ev-about-subtitle {
    font-size: 1.2vw;
    color: #6A994E;
    font-weight: 500;
}

.ev-about-texts {
    color: #5C6E62;
}

.ev-about-p {
    margin-bottom: 1.066vw;
    line-height: 1.5;
}

.ev-about-right {
    width: 40%;
    background-color: #E2E8E0;
    padding: 3.2vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.6vw;
    position: relative;
    overflow: hidden;
}

.ev-about-blur-tr {
    position: absolute;
    top: 0;
    right: 0;
    margin-right: -4.266vw;
    margin-top: -4.266vw;
    width: 17.066vw;
    height: 17.066vw;
    border-radius: 9999px;
    background-color: rgba(56, 102, 65, 0.05);
    filter: blur(4.266vw);
}

.ev-about-blur-bl {
    position: absolute;
    bottom: 0;
    left: 0;
    margin-left: -4.266vw;
    margin-bottom: -4.266vw;
    width: 17.066vw;
    height: 17.066vw;
    border-radius: 9999px;
    background-color: rgba(106, 153, 78, 0.1);
    filter: blur(4.266vw);
}

.ev-about-features {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
}

.ev-feature {
    display: flex;
    align-items: flex-start;
    gap: 1.066vw;
}

.ev-feature-icon-wrapper {
    padding: 0.8vw;
    background-color: #F7F9F5;
    border-radius: 1.6vw;
    color: #386641;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
}

.ev-feature-icon {
    font-size: 1.6vw;
}

.ev-feature-text {
    display: flex;
    flex-direction: column;
}

.ev-feature-title {
    font-weight: 700;
    color: #273129;
    font-size: 1.2vw;
}

.ev-feature-desc {
    font-size: 0.933vw;
    color: #5C6E62;
    margin-top: 0.266vw;
}

.ev-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 3.2vw;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    margin-bottom: 20vw;
}

.ev-controls {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1.066vw;
}

.ev-filter-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.533vw;
}

.ev-filter-btn {
    display: flex;
    height: 2.666vw;
    align-items: center;
    justify-content: center;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    border-radius: 9999px;
    transition-property: background-color, border-color, color;
    transition-duration: 0.3s;
    cursor: pointer;
}

.ev-filter-btn[data-state="active"] {
    background-color: #386641;
    border-style: none;
}

.ev-filter-btn[data-state="default"] {
    background-color: transparent;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #E9EEE7;
}

.ev-filter-btn[data-state="default"]:hover {
    background-color: #E9EEE7;
}

.ev-filter-text {
    font-size: 0.933vw;
    font-weight: 500;
}

.ev-filter-btn[data-state="active"] .ev-filter-text {
    color: #F7F9F5;
}

.ev-filter-btn[data-state="default"] .ev-filter-text {
    color: #5C6E62;
}

.ev-search-wrapper {
    margin-left: auto;
    min-width: 17.066vw;
}

.ev-search-label {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 10.666vw;
    height: 3.2vw;
}

.ev-search-inner {
    display: flex;
    width: 100%;
    flex: 1;
    align-items: stretch;
    border-radius: 9999px;
    background-color: #E9EEE7;
}

.ev-search-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 1.066vw;
    color: #5C6E62;
}

.ev-search-icon {
    font-size: 1.6vw;
}

.ev-search-input {
    flex: 1;
    width: 100%;
    min-width: 0;
    resize: none;
    overflow: hidden;
    background-color: transparent;
    border-style: none;
    outline: none;
    padding-left: 0.533vw;
    padding-right: 1.066vw;
    font-size: 1.066vw;
    color: #273129;
}

.ev-search-input::placeholder {
    color: #5C6E62;
}

.ev-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.133vw;
}

.ev-card {
    display: flex;
    flex-direction: column;
    gap: 1.066vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #E9EEE7;
    border-radius: 2.133vw;
    padding: 1.066vw;
    transition-property: box-shadow;
    transition-duration: 0.3s;
}

.ev-card:hover {
    box-shadow: 0 0.666vw 1vw -0.2vw rgba(0, 0, 0, 0.1);
}

.ev-card-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    border-radius: 1.6vw;
}

.ev-card-info {
    display: flex;
    flex-direction: column;
    gap: 0.266vw;
}

.ev-card-category {
    font-size: 0.933vw;
    color: #6A994E;
    font-weight: 500;
}

.ev-card-title {
    font-size: 1.2vw;
    font-weight: 700;
    color: #273129;
    line-height: 1.25;
}

.ev-card-desc {
    font-size: 0.933vw;
    color: #5C6E62;
}

.ev-card-meta {
    display: flex;
    align-items: center;
    gap: 1.066vw;
    margin-top: auto;
}

.ev-meta-item {
    display: flex;
    align-items: center;
    gap: 0.4vw;
}

.ev-meta-icon {
    font-size: 1.066vw;
    color: #5C6E62;
}

.ev-meta-text {
    font-size: 0.933vw;
    color: #5C6E62;
}

/* =========================================
     Base (PC default: 701px - 1500px)
     1500px = 100vw
========================================= */

.fm-main {
    display: flex;
    flex-direction: column;
    gap: 2.666vw;
    width: 100%;
    max-width: 85.333vw;
    margin: 10vw auto;
    font-family: "Noto Sans JP", sans-serif;
    color: #4A4A4A;
    box-sizing: border-box;
}

.fm-intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1.6vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    width: 100%;
    box-sizing: border-box;
}

.fm-intro-headings {
    margin-bottom: 0.533vw;
}

.fm-intro-sub {
    color: #3E7A63;
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.533vw;
    font-family: "Plus Jakarta Sans", "Noto Sans JP", sans-serif;
}

.fm-intro-title {
    color: #4A4A4A;
    font-size: 3.2vw;
    font-weight: 800;
    letter-spacing: -0.025em;
    margin-bottom: 0.533vw;
    font-family: "Plus Jakarta Sans", "Noto Sans JP", sans-serif;
}

.fm-intro-ja {
    color: #787878;
    font-size: 1.2vw;
}

.fm-intro-desc {
    color: #4A4A4A;
    font-size: 1.066vw;
    line-height: 1.625;
    max-width: 42.666vw;
    margin-left: auto;
    margin-right: auto;
}

.fm-br-sm {
    display: none;
}

.fm-br-md {
    display: block;
}

.fm-concept {
    background-color: rgba(232, 240, 235, 0.5);
    border-radius: 1.6vw;
    padding: 3.2vw;
    text-align: center;
    width: 100%;
    max-width: 68.266vw;
    margin-left: auto;
    margin-right: auto;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(62, 122, 99, 0.1);
    box-sizing: border-box;
}

.fm-concept-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.066vw;
}

.fm-concept-badge {
    background-color: #FFFFFF;
    color: #3E7A63;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    padding-top: 0.266vw;
    padding-bottom: 0.266vw;
    border-radius: 9999px;
    font-size: 0.8vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(62, 122, 99, 0.1);
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
}

.fm-concept-title {
    font-size: 2vw;
    font-weight: 700;
    color: #3E7A63;
    margin-bottom: 0.533vw;
}

.fm-concept-desc {
    color: #4A4A4A;
    font-size: 1.2vw;
    line-height: 2;
    max-width: 48vw;
}

.fm-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 3.2vw;
    align-items: flex-start;
    margin-top: 1.066vw;
    box-sizing: border-box;
}

.fm-grid-left {
    grid-column: span 5 / span 5;
    display: flex;
    flex-direction: column;
    gap: 2.133vw;
}

.fm-floor-card {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
    padding: 2.133vw;
    background-color: #FFFFFF;
    border-radius: 1.6vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.05);
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    transition-property: box-shadow;
    transition-duration: 0.3s;
    box-sizing: border-box;
}

.fm-floor-card:hover {
    box-shadow: 0 0.266vw 0.4vw rgba(0, 0, 0, 0.1);
}

.fm-floor-header {
    display: flex;
    align-items: center;
    gap: 1.066vw;
    border-bottom-width: 0.066vw;
    border-bottom-style: solid;
    border-bottom-color: rgba(0, 0, 0, 0.05);
    padding-bottom: 1.066vw;
}

.fm-floor-icon-1f {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.2vw;
    height: 3.2vw;
    border-radius: 9999px;
    background-color: rgba(62, 122, 99, 0.1);
    color: #3E7A63;
    font-weight: 900;
    font-size: 1.333vw;
    font-family: "Plus Jakarta Sans", sans-serif;
}

.fm-floor-icon-2f {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.2vw;
    height: 3.2vw;
    border-radius: 9999px;
    background-color: rgba(200, 191, 169, 0.2);
    color: #8C7E63;
    font-weight: 900;
    font-size: 1.333vw;
    font-family: "Plus Jakarta Sans", sans-serif;
}

.fm-floor-title {
    font-size: 1.6vw;
    font-weight: 700;
    color: #4A4A4A;
    font-family: "Plus Jakarta Sans", sans-serif;
}

.fm-shop {
    display: flex;
    flex-direction: row;
    gap: 1.6vw;
    align-items: flex-start;
}

.fm-shop-border {
    display: flex;
    flex-direction: row;
    gap: 1.6vw;
    align-items: flex-start;
    padding-top: 1.6vw;
    border-top-width: 0.066vw;
    border-top-style: dashed;
    border-top-color: rgba(0, 0, 0, 0.05);
}

.fm-shop-img-wrapper {
    width: 10.666vw;
    height: 10.666vw;
    border-radius: 1.066vw;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    overflow: hidden;
    flex-shrink: 0;
}

.fm-shop-img-wrapper.sm {
    width: 8.533vw;
    height: 8.533vw;
}

.fm-shop-img,
.fm-shop-img-sm {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition-property: all;
    transition-duration: 0.3s;
}

.fm-shop:hover .fm-shop-img,
.fm-shop:hover .fm-shop-img-sm {
    transform: scale(1.1);
    opacity: 0.8;
}

.fm-shop-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.533vw;
}

.fm-shop-name {
    font-size: 1.333vw;
    font-weight: 700;
    color: #3E7A63;
}

.fm-shop-name-ja {
    font-size: 0.933vw;
    font-weight: 400;
    color: #787878;
    margin-left: 0.533vw;
}

.fm-shop-desc {
    font-size: 1.066vw;
    color: #787878;
    line-height: 1.625;
}

.fm-shop-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8vw;
    margin-top: 0.8vw;
}

.fm-shop-tag {
    padding-left: 0.8vw;
    padding-right: 0.8vw;
    padding-top: 0.266vw;
    padding-bottom: 0.266vw;
    background-color: #F9F8F6;
    border-radius: 9999px;
    font-size: 0.8vw;
    color: #787878;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.05);
}

.fm-floor-footer {
    margin-top: 0.533vw;
    padding-top: 1.066vw;
    border-top-width: 0.066vw;
    border-top-style: dashed;
    border-top-color: rgba(0, 0, 0, 0.1);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.066vw;
    font-size: 0.933vw;
    color: #787878;
}

.fm-footer-item {
    display: flex;
    align-items: center;
    gap: 0.533vw;
}

.fm-icon {
    font-size: 1.25rem;
    color: rgba(62, 122, 99, 0.7);
}

.fm-floor-shops {
    display: flex;
    flex-direction: column;
    gap: 2.133vw;
}

.fm-shop-info-sm {
    display: flex;
    flex-direction: column;
    gap: 0.266vw;
}

.fm-shop-name-sm {
    font-size: 1.2vw;
    font-weight: 700;
    color: #3E7A63;
}

.fm-shop-name-sm-dark {
    font-size: 1.2vw;
    font-weight: 700;
    color: #4A4A4A;
}

.fm-shop-name-ja-sm {
    font-size: 0.933vw;
    font-weight: 400;
    color: #787878;
    margin-left: 0.533vw;
}

.fm-shop-cat {
    font-size: 0.8vw;
    font-weight: 600;
    color: #C8BFA9;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.266vw;
}

.fm-shop-desc-sm {
    font-size: 0.933vw;
    color: #787878;
    line-height: 1.625;
}

.fm-grid-right {
    grid-column: span 7 / span 7;
    width: 100%;
    position: relative;
    height: 100%;
}

.fm-sticky-box {
    position: sticky;
    top: 2.133vw;
    display: flex;
    flex-direction: column;
    gap: 1.066vw;
}

.fm-map-card {
    width: 100%;
    overflow: hidden;
    aspect-ratio: 5 / 3;
    display: flex;
    position: relative;
    border-radius: 1.6vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.05);
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    background-color: #FFFFFF;
    padding-bottom: 5vw;
}

.fm-map-img {
    width: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    flex: 1;
    position: relative;
}

.fm-map-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(62, 122, 99, 0.05);
    mix-blend-mode: multiply;
    pointer-events: none;
}

.fm-map-nav {
    position: absolute;
    bottom: 0;
    left: auto;
    right: auto;
    width: 100%;
}

.fm-map-nav-inner {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(0.8vw);
    padding: 1.066vw;
    border-radius: 1.066vw;
    box-shadow: 0 1.333vw 1.666vw rgba(0, 0, 0, 0.1);
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.2);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.fm-nav-btn-active {
    display: flex;
    align-items: center;
    gap: 0.8vw;
    background: none;
    border: none;
    cursor: pointer;
}

.fm-nav-icon-active {
    width: 2.666vw;
    height: 2.666vw;
    border-radius: 9999px;
    background-color: #3E7A63;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    box-shadow: 0 0.266vw 0.4vw rgba(0, 0, 0, 0.1);
    transition-property: background-color;
    transition-duration: 0.3s;
}

.fm-nav-btn-active:hover .fm-nav-icon-active {
    background-color: #346653;
}

.fm-nav-texts {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.fm-nav-sub-active {
    font-size: 0.8vw;
    font-weight: 700;
    color: #3E7A63;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fm-nav-title-active {
    font-size: 0.933vw;
    font-weight: 500;
    color: #4A4A4A;
}

.fm-nav-divider {
    height: 2.133vw;
    width: 0.066vw;
    background-color: rgba(0, 0, 0, 0.1);
}

.fm-nav-btn {
    display: flex;
    align-items: center;
    gap: 0.8vw;
    background: none;
    border: none;
    cursor: pointer;
    opacity: 0.6;
    transition-property: opacity;
    transition-duration: 0.3s;
}

.fm-nav-btn:hover {
    opacity: 1;
}

.fm-nav-icon {
    width: 2.666vw;
    height: 2.666vw;
    border-radius: 9999px;
    background-color: #F3F4F6;
    color: #787878;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.05);
}

.fm-nav-sub {
    font-size: 0.8vw;
    font-weight: 700;
    color: #787878;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fm-nav-title {
    font-size: 0.933vw;
    font-weight: 500;
    color: #4A4A4A;
}

.fm-location-box {
    padding: 1.6vw;
    background-color: #F2F0EB;
    border-radius: 1.6vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.05);
    box-sizing: border-box;
}

.fm-location-text {
    font-size: 0.933vw;
    color: #787878;
    line-height: 1.625;
    display: flex;
    gap: 0.8vw;
}

.fm-location-icon {
    color: #3E7A63;
    flex-shrink: 0;
}

.fm-location-desc {
    display: block;
}

/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */
.ac-main {
    display: block;
    width: 100%;
    font-family: 'Noto Sans JP', sans-serif;
}

/* Hero Section */
.ac-hero {
    position: relative;
    width: 100%;
    height: 40vw;
    min-height: 26.666vw;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ac-hero-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: url("images/image-05_up-res.jpg");
    background-size: cover;
    background-position: center;
}

.ac-hero-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.6));
}

.ac-hero-content {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.ac-hero-subtitle {
    font-size: 1.066vw;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: rgba(200, 213, 185, 0.9);
    margin-bottom: 1.066vw;
}

.ac-hero-title {
    font-size: 4vw;
    font-family: serif;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: #FFFFFF;
    margin-bottom: 1.6vw;
}

.ac-hero-divider {
    height: 0.066vw;
    width: 5.333vw;
    background-color: rgba(255, 255, 255, 0.6);
    margin-bottom: 1.6vw;
}

.ac-hero-text {
    font-size: 1.2vw;
    font-weight: 300;
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.9);
}

.ac-br-sm {
    display: none;
}

.ac-br-md {
    display: inline;
}

/* Origin Section */
.ac-origin {
    background-color: #FFFFFF;
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    padding-left: 5.333vw;
    padding-right: 5.333vw;
    position: relative;
    overflow: hidden;
}

.ac-origin-bg-blur {
    position: absolute;
    top: 0;
    left: 0;
    width: 17.066vw;
    height: 17.066vw;
    background-color: rgba(200, 213, 185, 0.2);
    border-radius: 50%;
    filter: blur(3vw);
    transform: translate(-50%, -50%);
}

.ac-origin-inner {
    max-width: 59.733vw;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ac-origin-icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.8vw;
    border-radius: 9999px;
    background-color: rgba(74, 103, 65, 0.05);
    color: #4A6741;
    margin-bottom: 1.6vw;
}

.ac-origin-icon {
    font-size: 1.6vw;
}

.ac-origin-title {
    font-size: 2vw;
    font-weight: 700;
    color: #464C47;
    margin-bottom: 2.133vw;
    letter-spacing: 0.05em;
}

.ac-origin-text-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
    text-align: center;
}

.ac-origin-p {
    color: #7D8580;
    font-size: 1.066vw;
    line-height: 2;
}

.ac-origin-p-highlight {
    color: rgba(74, 103, 65, 0.8);
    font-size: 1.2vw;
    font-weight: 500;
    line-height: 2;
    margin-top: 2.133vw;
}

/* Info Section */
.ac-info-sec {
    padding-top: 5.333vw;
    padding-bottom: 5.333vw;
    padding-left: 5.333vw;
    padding-right: 5.333vw;
    background-color: #FAFAF8;
}

.ac-info-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 5.333vw;
}

.ac-info-grid {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: 3.2vw;
    align-items: stretch;
}

.ac-map-area {
    width: 100%;
    aspect-ratio: 1 / 1;
}

.ac-map-area iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.ac-details-area {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

.ac-details-card {
    background-color: #FFFFFF;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #E8EBE9;
    border-radius: 1.066vw;
    padding: 2.666vw;
    box-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    gap: 2.133vw;
}

.ac-details-header {
    border-left-width: 0.266vw;
    border-left-style: solid;
    border-left-color: #4A6741;
    padding-left: 1.066vw;
}

.ac-details-label {
    font-size: 0.933vw;
    font-weight: 700;
    color: #4A6741;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.266vw;
}

.ac-details-name {
    font-size: 1.333vw;
    font-weight: 500;
    color: #464C47;
}

.ac-details-item {
    display: flex;
    flex-direction: column;
}

.ac-details-item-title-wrap {
    display: flex;
    align-items: center;
    gap: 0.533vw;
    margin-bottom: 0.533vw;
}

.ac-details-icon {
    color: #4A6741;
    font-size: 1.333vw;
}

.ac-details-item-title {
    font-size: 0.933vw;
    font-weight: 700;
    color: #7D8580;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ac-details-item-text {
    font-size: 1.066vw;
    color: #464C47;
    padding-left: 1.866vw;
    line-height: 1.6;
}

.ac-details-item-text-bold {
    font-size: 1.066vw;
    font-weight: 500;
    color: #464C47;
    padding-left: 1.866vw;
}

.ac-map-btn {
    margin-top: 0.533vw;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    background-color: #FAFAF8;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #4A6741;
    color: #4A6741;
    border-radius: 0.533vw;
    text-decoration: none;
    transition-property: background-color, color;
    transition-duration: 0.3s;
    gap: 0.533vw;
    box-sizing: border-box;
}

.ac-map-btn:hover {
    background-color: #4A6741;
    color: #FFFFFF;
}

.ac-map-btn-text {
    font-size: 0.933vw;
    font-weight: 500;
}

.ac-map-btn-icon {
    font-size: 1.2vw;
    transition-property: transform;
    transition-duration: 0.3s;
}

.ac-map-btn:hover .ac-map-btn-icon {
    transform: translateX(0.266vw);
}

/* Transportation Section */
.ac-trans-header {
    text-align: center;
    margin-top: 50px;
}

.ac-trans-subtitle {
    color: #4A6741;
    font-weight: 500;
    letter-spacing: 0.1em;
    font-size: 0.933vw;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.533vw;
}

.ac-trans-title {
    font-size: 2vw;
    font-weight: 700;
    color: #464C47;
    font-family: serif;
}

.ac-trans-divider {
    width: 3.2vw;
    height: 0.266vw;
    background-color: rgba(74, 103, 65, 0.3);
    margin-left: auto;
    margin-right: auto;
    margin-top: 1.6vw;
    border-radius: 9999px;
}

.ac-trans-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.133vw;
}

.ac-trans-card-wrap {
    transition-property: transform;
    transition-duration: 0.3s;
}

.ac-trans-card-wrap:hover {
    transform: translateY(-0.266vw);
}

.ac-trans-card {
    background-color: #FFFFFF;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #E8EBE9;
    border-radius: 1.066vw;
    padding: 2.133vw;
    height: 100%;
    box-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition-property: box-shadow;
    transition-duration: 0.3s;
    box-sizing: border-box;
}

.ac-trans-card-wrap:hover .ac-trans-card {
    box-shadow: 0 0.266vw 0.4vw rgba(0, 0, 0, 0.1);
}

.ac-trans-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.266vw;
    height: 4.266vw;
    border-radius: 50%;
    background-color: rgba(200, 213, 185, 0.3);
    color: #4A6741;
    margin-bottom: 1.6vw;
    transition-property: background-color, color;
    transition-duration: 0.3s;
}

.ac-trans-card-wrap:hover .ac-trans-icon-wrap {
    background-color: #4A6741;
    color: #FFFFFF;
}

.ac-trans-icon {
    font-size: 2vw;
}

.ac-trans-card-title {
    font-size: 1.2vw;
    font-weight: 700;
    color: #464C47;
    margin-bottom: 1.066vw;
}

.ac-trans-card-divider {
    width: 100%;
    border-top-width: 0.066vw;
    border-top-style: solid;
    border-top-color: #E8EBE9;
    margin-bottom: 1.066vw;
}

.ac-trans-card-text {
    color: #7D8580;
    font-size: 0.933vw;
    line-height: 1.8;
}

.ac-trans-card-text-highlight {
    color: #4A6741;
    font-weight: 500;
    display: block;
    margin-top: 0.533vw;
}

/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */
.rc-main {
    display: block;
    width: 100%;
    background-color: #FAFAF8;
    font-family: 'Noto Sans JP', sans-serif;
    color: #3E3E3C;
}

/* -------------------- Hero -------------------- */
.rc-hero {
    position: relative;
    width: 100%;
    min-height: 40vw;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding-top: 5.333vw;
    padding-bottom: 5.333vw;
}

.rc-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('images/villa/image-36_up-res.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
}

.rc-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 2;
}

.rc-hero-content {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 59.733vw;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.rc-hero-badge {
    display: inline-block;
    padding-top: 0.266vw;
    padding-bottom: 0.266vw;
    padding-left: 0.8vw;
    padding-right: 0.8vw;
    border-radius: 9999px;
    background-color: rgba(255, 255, 255, 0.2);
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(0.266vw);
    color: #FFFFFF;
    font-size: 0.8vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 1.6vw;
}

.rc-hero-title {
    color: #FFFFFF;
    font-size: 4vw;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.025em;
    margin-bottom: 1.6vw;
    text-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.1);
}

.rc-br-sp {
    display: none;
}

.rc-br-pc {
    display: block;
}

.rc-hero-desc {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.333vw;
    font-weight: 500;
    line-height: 1.625;
    margin-bottom: 2.666vw;
    text-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.1);
}

.rc-hero-btn-wrap {
    display: flex;
    justify-content: center;
}

.rc-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-top: 1.066vw;
    padding-bottom: 1.066vw;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
    border-radius: 9999px;
    background-color: #FFFFFF;
    color: #556B2F;
    font-size: 1.2vw;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    transition-property: background-color;
    transition-duration: 0.3s;
}

.rc-hero-btn:hover {
    background-color: #F3F4F6;
}

/* -------------------- Concept -------------------- */
.rc-concept {
    width: 100%;
    max-width: 66.666vw;
    margin-left: auto;
    margin-right: auto;
    padding-top: 8vw;
    padding-bottom: 8vw;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.rc-concept-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 3.2vw;
}

.rc-concept-sub {
    color: #556B2F;
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 0.533vw;
}

.rc-concept-title {
    font-size: 2.4vw;
    font-weight: 700;
    color: #3E3E3C;
    margin-bottom: 1.6vw;
}

.rc-concept-line {
    width: 4.266vw;
    height: 0.266vw;
    background-color: #556B2F;
    border-radius: 9999px;
}

.rc-concept-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3.2vw;
    align-items: center;
}

.rc-concept-img-wrap {
    position: relative;
    width: 100%;
    height: 26.666vw;
    border-radius: 1.066vw;
    overflow: hidden;
    box-shadow: 0 1.333vw 1.666vw -0.333vw rgba(0, 0, 0, 0.1);
}

.rc-concept-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('images/owner/image-07.jpg');
    background-size: cover;
    background-position: center;
    transition-property: transform;
    transition-duration: 0.7s;
}

.rc-concept-img-wrap:hover .rc-concept-img {
    transform: scale(1.05);
}

.rc-concept-img-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 2.133vw;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
    display: flex;
    align-items: flex-end;
}

.rc-concept-img-text {
    color: #FFFFFF;
    font-size: 1.066vw;
    font-style: italic;
    font-weight: 500;
}

.rc-concept-texts {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
}

.rc-concept-item {
    display: flex;
    flex-direction: column;
}

.rc-concept-item-title {
    display: flex;
    align-items: center;
    gap: 0.533vw;
    font-size: 1.333vw;
    font-weight: 700;
    color: #556B2F;
    margin-bottom: 0.8vw;
}

.rc-concept-icon {
    font-size: 1.6vw;
}

.rc-concept-item-desc {
    color: #6B706B;
    font-size: 1.066vw;
    line-height: 1.625;
}

.rc-concept-note {
    margin-top: 1.066vw;
    padding: 1.066vw;
    background-color: rgba(85, 107, 47, 0.1);
    border-radius: 0.8vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(85, 107, 47, 0.2);
}

.rc-concept-note-text {
    font-size: 0.933vw;
    font-weight: 500;
    color: #3E3E3C;
    line-height: 1.5;
}

/* -------------------- Values -------------------- */
.rc-values {
    width: 100%;
    background-color: #F0F4F0;
    padding-top: 8vw;
    padding-bottom: 8vw;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    display: flex;
    justify-content: center;
}

.rc-values-inner {
    width: 100%;
    max-width: 73.333vw;
}

.rc-values-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 4.266vw;
}

.rc-values-title {
    font-size: 2.4vw;
    font-weight: 700;
    color: #3E3E3C;
    margin-bottom: 1.066vw;
}

.rc-values-desc {
    color: #6B706B;
    font-size: 1.066vw;
    max-width: 42.666vw;
    line-height: 1.5;
}

.rc-values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.133vw;
}

.rc-value-card {
    background-color: #FFFFFF;
    padding: 2.133vw;
    border-radius: 1.066vw;
    box-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.05);
    border-width: 0.066vw;
    border-style: solid;
    border-color: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition-property: border-color;
    transition-duration: 0.3s;
}

.rc-value-card:hover {
    border-color: rgba(85, 107, 47, 0.3);
}

.rc-value-icon-wrap {
    width: 4.266vw;
    height: 4.266vw;
    background-color: rgba(85, 107, 47, 0.1);
    color: #556B2F;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.6vw;
    transition-property: background-color, color;
    transition-duration: 0.3s;
}

.rc-value-card:hover .rc-value-icon-wrap {
    background-color: #556B2F;
    color: #FFFFFF;
}

.rc-value-icon {
    font-size: 2vw;
}

.rc-value-card-title {
    font-size: 1.333vw;
    font-weight: 700;
    color: #3E3E3C;
    margin-bottom: 0.8vw;
}

.rc-value-card-desc {
    font-size: 0.933vw;
    color: #6B706B;
    line-height: 1.625;
}

/* -------------------- Jobs -------------------- */
.rc-jobs {
    width: 100%;
    max-width: 64vw;
    margin-left: auto;
    margin-right: auto;
    padding-top: 8vw;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.rc-jobs-inner {
    display: flex;
    flex-direction: column;
}

.rc-jobs-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 3.2vw;
}

.rc-jobs-sub {
    color: #556B2F;
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 0.533vw;
}

.rc-jobs-title {
    font-size: 2.4vw;
    font-weight: 700;
    color: #3E3E3C;
    margin-bottom: 1.6vw;
}

.rc-jobs-desc {
    color: #6B706B;
    font-size: 1.066vw;
    max-width: 42.666vw;
}

.rc-jobs-list {
    display: flex;
    flex-direction: column;
    gap: 1.066vw;
}

.rc-job-item {
    background-color: #FFFFFF;
    border-radius: 0.8vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #E5E7EB;
    overflow: hidden;
    transition-property: box-shadow;
    transition-duration: 0.3s;
}

.rc-job-item[data-open="true"] {
    box-shadow: 0 0.266vw 0.4vw rgba(0, 0, 0, 0.1);
}

.rc-job-head {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.6vw;
    background-color: rgba(249, 250, 251, 0.5);
    border: none;
    cursor: pointer;
    transition-property: background-color;
    transition-duration: 0.3s;
}

.rc-job-head:hover {
    background-color: #F3F4F6;
}

.rc-job-head-left {
    display: flex;
    align-items: center;
    gap: 1.066vw;
}

.rc-job-badge-a {
    background-color: rgba(85, 107, 47, 0.1);
    color: #556B2F;
    padding-left: 0.8vw;
    padding-right: 0.8vw;
    padding-top: 0.266vw;
    padding-bottom: 0.266vw;
    border-radius: 0.4vw;
    font-size: 0.933vw;
    font-weight: 700;
    white-space: nowrap;
}

.rc-job-badge-b {
    background-color: rgba(222, 184, 135, 0.2);
    color: #B8860B;
    padding-left: 0.8vw;
    padding-right: 0.8vw;
    padding-top: 0.266vw;
    padding-bottom: 0.266vw;
    border-radius: 0.4vw;
    font-size: 0.933vw;
    font-weight: 700;
    white-space: nowrap;
}

.rc-job-badge-c {
    background-color: #DBEAFE;
    color: #1D4ED8;
    padding-left: 0.8vw;
    padding-right: 0.8vw;
    padding-top: 0.266vw;
    padding-bottom: 0.266vw;
    border-radius: 0.4vw;
    font-size: 0.933vw;
    font-weight: 700;
    white-space: nowrap;
}

.rc-job-title {
    font-size: 1.2vw;
    font-weight: 700;
    color: #3E3E3C;
}

.rc-job-arrow {
    color: #556B2F;
    font-size: 1.6vw;
    transition-property: transform;
    transition-duration: 0.3s;
}

.rc-job-item[data-open="true"] .rc-job-arrow {
    transform: rotate(180deg);
}

.rc-job-body {
    display: none;
    border-top-width: 0.066vw;
    border-top-style: solid;
    border-top-color: #F3F4F6;
}

.rc-job-body-inner {
    padding: 1.6vw;
    padding-top: 0.533vw;
}

.rc-job-body-desc {
    color: #6B706B;
    font-size: 1.066vw;
    line-height: 1.625;
    margin-bottom: 3vw;
}

.rc-job-body-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.6vw;
    margin-top: 1.066vw;
}

.rc-job-body-col {
    display: flex;
    flex-direction: column;
}

.rc-job-body-title {
    font-size: 0.933vw;
    font-weight: 700;
    color: #3E3E3C;
    margin-bottom: 0.533vw;
}

.rc-job-body-list {
    list-style-type: disc;
    list-style-position: inside;
    padding: 0;
    margin: 0;
}

.rc-job-body-li {
    font-size: 0.933vw;
    color: #6B706B;
    margin-bottom: 0.266vw;
}

/* -------------------- Process -------------------- */
.rc-process {
    width: 100%;
    max-width: 66.666vw;
    margin-left: auto;
    margin-right: auto;
    padding-top: 8vw;
    padding-bottom: 8vw;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.rc-process-inner {
    background-color: rgba(85, 107, 47, 0.05);
    border-radius: 1.6vw;
    padding: 3.2vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(85, 107, 47, 0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rc-process-title {
    font-size: 2vw;
    font-weight: 700;
    color: #3E3E3C;
    margin-bottom: 2.666vw;
}

.rc-process-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.133vw;
    width: 100%;
    position: relative;
    z-index: 1;
}

.rc-process-line {
    position: absolute;
    top: 3.2vw;
    left: 10%;
    width: 80%;
    height: 0.133vw;
    background-color: rgba(85, 107, 47, 0.2);
    z-index: -1;
}

.rc-process-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.066vw;
    background-color: rgba(255, 255, 255, 0.5);
    padding: 1.066vw;
    border-radius: 0.8vw;
    backdrop-filter: blur(0.266vw);
}

.rc-process-icon-wrap {
    width: 6.4vw;
    height: 6.4vw;
    background-color: #FFFFFF;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(85, 107, 47, 0.2);
    color: #556B2F;
}

.rc-process-icon {
    font-size: 2.4vw;
}

.rc-process-step-title {
    font-size: 1.2vw;
    font-weight: 700;
    color: #3E3E3C;
}

.rc-process-step-desc {
    font-size: 0.933vw;
    color: #6B706B;
}

.rc-process-footer {
    margin-top: 3.2vw;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rc-process-btn {
    background-color: #556B2F;
    color: #FFFFFF;
    font-size: 1.2vw;
    font-weight: 700;
    padding-top: 1.066vw;
    padding-bottom: 1.066vw;
    padding-left: 3.2vw;
    padding-right: 3.2vw;
    border-radius: 9999px;
    border: none;
    cursor: pointer;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    transition-property: transform, box-shadow;
    transition-duration: 0.3s;
}

.rc-process-btn:hover {
    transform: translateY(-0.266vw);
    box-shadow: 0 1.066vw 1.333vw rgba(0, 0, 0, 0.1);
}

.rc-process-note {
    margin-top: 1.066vw;
    font-size: 0.8vw;
    color: #6B706B;
}

/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */
.shop-mv-mainvisual {
    position: relative;
    height: 100vh;
    min-height: 40vw;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.shop-mv-bg-wrap {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0;
}

.shop-mv-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.9;
}

.shop-mv-bg-gradient {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3), transparent, #fdfbf7);
}

.shop-mv-content {
    position: relative;
    z-index: 10;
    text-align: center;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    max-width: 85vw;
    margin-left: auto;
    margin-right: auto;
}

.shop-mv-subtitle {
    display: block;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.066vw;
    letter-spacing: 0.2em;
    margin-bottom: 1.066vw;
    text-transform: uppercase;
}

.shop-mv-title {
    color: #ffffff;
    font-family: 'Noto Serif JP', serif;
    font-weight: 300;
    font-size: 6.4vw;
    letter-spacing: 0.025em;
    margin-bottom: 1.6vw;
    text-shadow: 0 0.133vw 0.266vw rgba(0, 0, 0, 0.5);
}

.shop-mv-desc {
    color: #fff;
    font-weight: 300;
    font-size: 1.333vw;
    letter-spacing: 0.1em;
    line-height: 1.625;
    max-width: 44.8vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.666vw;
    text-shadow: 0 0.133vw 0.266vw rgba(255, 255, 255, 0.5);
}

.shop-mv-br {
    display: block;
}

.shop-mv-btn-wrap {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 1.066vw;
}

.shop-mv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: 111;
    color: #111;
    background-color: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(0.266vw);
    border-radius: 0.133vw;
    text-decoration: none;
    transition-property: all;
    transition-duration: 0.3s;
}

.shop-mv-btn:hover {
    background-color: #ffffff;
    color: #785c42;
}

.shop-mv-btn-text {
    letter-spacing: 0.1em;
    font-size: 1.066vw;
}

.shop-mv-scroll {
    position: absolute;
    bottom: 2.666vw;
    left: 50%;
    margin-left: -1vw;
    color: rgba(0, 0, 0, 0.7);
    animation-name: shopMvBounce;
    animation-duration: 1s;
    animation-iteration-count: infinite;
}

.shop-mv-scroll-icon {
    font-size: 2vw;
    display: block;
}

@keyframes shopMvBounce {

    0%,
    100% {
        transform: translateY(-25%);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }

    50% {
        transform: none;
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}

/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */
.rlk-main {
    width: 100%;
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    color: #1f2937;
}

/* About Section */
.rlk-about {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #fdfbf7;
}

.rlk-about-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
}

.rlk-about-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4.266vw;
    align-items: center;
}

.rlk-about-img-area {
    position: relative;
}

.rlk-about-deco-tl {
    position: absolute;
    top: -1.066vw;
    left: -1.066vw;
    width: 6.4vw;
    height: 6.4vw;
    border-top-width: 0.133vw;
    border-left-width: 0.133vw;
    border-top-style: solid;
    border-left-style: solid;
    border-color: rgba(120, 92, 66, 0.3);
}

.rlk-about-img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 1.066vw;
    box-shadow: 0 1.6vw 3.333vw -0.8vw rgba(0, 0, 0, 0.25);
    aspect-ratio: 4 / 5;
}

.rlk-about-img {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition-property: transform;
    transition-duration: 0.7s;
}

.rlk-about-img-wrap:hover .rlk-about-img {
    transform: scale(1.05);
}

.rlk-about-img-overlay {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent);
    opacity: 0.6;
}

.rlk-about-deco-br {
    position: absolute;
    bottom: -1.066vw;
    right: -1.066vw;
    width: 6.4vw;
    height: 6.4vw;
    border-bottom-width: 0.133vw;
    border-right-width: 0.133vw;
    border-bottom-style: solid;
    border-right-style: solid;
    border-color: rgba(120, 92, 66, 0.3);
}

.rlk-about-content {
    display: flex;
    flex-direction: column;
    gap: 2.133vw;
}

.rlk-about-badge-wrap {
    display: inline-block;
    border-bottom-width: 0.066vw;
    border-bottom-style: solid;
    border-bottom-color: #785c42;
    padding-bottom: 0.533vw;
    width: max-content;
}

.rlk-about-badge {
    color: #785c42;
    font-family: 'Noto Serif JP', serif;
    letter-spacing: 0.1em;
    font-size: 0.933vw;
}

.rlk-about-title {
    font-size: 2.4vw;
    font-family: 'Noto Serif JP', serif;
    line-height: 1.25;
    color: #111827;
}

.rlk-about-desc {
    color: #4b5563;
    line-height: 2;
    font-size: 1.066vw;
}

.rlk-about-features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.6vw;
    padding-top: 1.066vw;
}

.rlk-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 0.8vw;
}

.rlk-feature-icon {
    color: #785c42;
    font-size: 1.6vw;
    margin-top: 0.266vw;
}

.rlk-feature-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 1.2vw;
    color: #1f2937;
    margin-bottom: 0.266vw;
}

.rlk-feature-desc {
    font-size: 0.8vw;
    color: #6b7280;
}

/* Atmosphere Section */
.rlk-atmosphere {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #f5f0e6;
}

.rlk-atmosphere-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.rlk-atmosphere-header {
    text-align: center;
    max-width: 48vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 4.266vw;
}

.rlk-atmosphere-badge {
    color: #785c42;
    font-family: 'Noto Serif JP', serif;
    letter-spacing: 0.1em;
    font-size: 0.933vw;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.8vw;
}

.rlk-atmosphere-title {
    font-size: 2.4vw;
    font-family: 'Noto Serif JP', serif;
    color: #111827;
    margin-bottom: 1.6vw;
}

.rlk-atmosphere-desc {
    color: #4b5563;
    font-size: 1.066vw;
    line-height: 1.625;
}

.rlk-atmosphere-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.133vw;
}

.rlk-atm-card {
    background-color: #ffffff;
    border-radius: 0.8vw;
    overflow: hidden;
    box-shadow: 0 0.666vw 1vw -0.2vw rgba(0, 0, 0, 0.1);
    transition-property: all;
    transition-duration: 0.3s;
}

.rlk-atm-card:hover {
    box-shadow: 0 1.6vw 3.333vw -0.8vw rgba(0, 0, 0, 0.25);
    transform: translateY(-0.266vw);
}

.rlk-atm-img-wrap {
    height: 17.066vw;
    overflow: hidden;
    position: relative;
}

.rlk-atm-img {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition-property: transform;
    transition-duration: 0.7s;
}

.rlk-atm-card:hover .rlk-atm-img {
    transform: scale(1.1);
}

.rlk-atm-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.2);
    transition-property: background-color;
    transition-duration: 0.3s;
}

.rlk-atm-card:hover .rlk-atm-overlay {
    background-color: rgba(0, 0, 0, 0.1);
}

.rlk-atm-content {
    padding: 2.133vw;
}

.rlk-atm-title {
    font-size: 1.333vw;
    font-family: 'Noto Serif JP', serif;
    color: #111827;
    margin-bottom: 0.8vw;
}

.rlk-atm-desc {
    font-size: 0.933vw;
    color: #4b5563;
    line-height: 1.625;
    margin-bottom: 1.066vw;
}

/* Menu Section */
.rlk-menu {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #fdfbf7;
    position: relative;
    overflow: hidden;
}

.rlk-menu-bg-circle-tl {
    position: absolute;
    top: 0;
    left: 0;
    width: 17.066vw;
    height: 17.066vw;
    background-color: rgba(120, 92, 66, 0.05);
    border-radius: 50%;
    filter: blur(2.133vw);
}

.rlk-menu-bg-circle-br {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 25.6vw;
    height: 25.6vw;
    background-color: rgba(166, 139, 92, 0.05);
    border-radius: 50%;
    filter: blur(2.133vw);
}

.rlk-menu-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    position: relative;
    z-index: 10;
}

.rlk-menu-grid {
    display: flex;
    flex-direction: row;
    gap: 3.2vw;
    align-items: center;
}

.rlk-menu-content {
    width: 50%;
    display: flex;
    flex-direction: column;
    gap: 2.133vw;
}

.rlk-menu-title {
    font-size: 3.2vw;
    font-family: 'Noto Serif JP', serif;
    color: #111827;
    line-height: 1.25;
}

.rlk-menu-desc {
    color: #4b5563;
    font-size: 1.2vw;
    line-height: 1.625;
}

.rlk-menu-list {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
    margin-top: 2.133vw;
    padding: 0;
    list-style: none;
}

.rlk-menu-item {
    display: flex;
    align-items: center;
    gap: 1.066vw;
    padding: 1.066vw;
    border-radius: 0.533vw;
    transition-property: background-color;
    transition-duration: 0.3s;
}

.rlk-menu-item:hover {
    background-color: #f5f0e6;
}

.rlk-menu-icon-wrap {
    flex-shrink: 0;
    width: 3.2vw;
    height: 3.2vw;
    border-radius: 50%;
    background-color: #f5f0e6;
    color: #785c42;
    display: flex;
    align-items: center;
    justify-content: center;
    transition-property: background-color, color;
    transition-duration: 0.3s;
}

.rlk-menu-item:hover .rlk-menu-icon-wrap {
    background-color: #785c42;
    color: #ffffff;
}

.rlk-menu-icon {
    font-size: 1.6vw;
}

.rlk-menu-texts {
    display: flex;
    flex-direction: column;
}

.rlk-menu-item-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 1.2vw;
    color: #111827;
    transition-property: color;
    transition-duration: 0.3s;
}

.rlk-menu-item:hover .rlk-menu-item-title {
    color: #785c42;
}

.rlk-menu-item-desc {
    font-size: 0.933vw;
    color: #6b7280;
}

.rlk-menu-arrow {
    margin-left: auto;
    color: #9ca3af;
    font-size: 1.6vw;
    transition-property: transform;
    transition-duration: 0.3s;
}

.rlk-menu-item:hover .rlk-menu-arrow {
    transform: translateX(0.266vw);
}

.rlk-menu-btn-wrap {
    padding-top: 1.6vw;
}

.rlk-menu-btn {
    background-color: #785c42;
    color: #ffffff;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    border-radius: 9999px;
    font-size: 0.933vw;
    letter-spacing: 0.05em;
    border: none;
    cursor: pointer;
    box-shadow: 0 0.666vw 1vw -0.2vw rgba(0, 0, 0, 0.1);
    transition-property: opacity;
    transition-duration: 0.3s;
}

.rlk-menu-btn:hover {
    opacity: 0.9;
}

.rlk-menu-images {
    width: 50%;
    position: relative;
}

.rlk-menu-img-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.066vw;
}

.rlk-menu-img-a,
.rlk-menu-img-b {
    border-radius: 1.066vw;
    box-shadow: 0 0.666vw 1vw -0.2vw rgba(0, 0, 0, 0.1);
    width: 100%;
    height: 17.066vw;
    background-size: cover;
    background-position: center;
}

.rlk-menu-img-a {
    margin-top: 3.2vw;
}


/* ==========================================================================
     Base & PC Styles (701px ~ 1500px) : 100vw = 1500px
     ========================================================================== */

.nv-main {
    background-color: #F9F7F5;
    color: #4A4A4A;
    font-family: 'Lato', 'Zen Kaku Gothic New', sans-serif;
    overflow: hidden;
}

/* --- Concept Section --- */
.nv-concept {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #FFFFFF;
}

.nv-concept-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
}

.nv-concept-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4.266vw;
    align-items: center;
}

.nv-concept-img-wrapper {
    position: relative;
    order: 1;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
    transition-delay: 0.1s;
}

.nv-concept-img-wrapper[data-visible="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nv-concept-img-main-box {
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: 1.066vw;
    overflow: hidden;
    position: relative;
    box-shadow: 0 1.6vw 3.333vw rgba(0, 0, 0, 0.25);
}

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

.nv-concept-img-border {
    position: absolute;
    top: 1.066vw;
    right: 1.066vw;
    bottom: 1.066vw;
    left: 1.066vw;
    border-width: 0.066vw;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.3);
    border-radius: 0.533vw;
    pointer-events: none;
}

.nv-concept-img-sub-box {
    position: absolute;
    bottom: -2.133vw;
    right: -2.133vw;
    width: 50%;
    aspect-ratio: 1 / 1;
    border-radius: 0.533vw;
    overflow: hidden;
    box-shadow: 0 1.333vw 2vw rgba(0, 0, 0, 0.1);
    border-width: 0.266vw;
    border-style: solid;
    border-color: #FFFFFF;
}

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

.nv-concept-content {
    order: 2;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
    transition-delay: 0.2s;
}

.nv-concept-content[data-visible="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nv-concept-label {
    display: block;
    color: #C4A484;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 0.933vw;
    margin-bottom: 1.066vw;
}

.nv-concept-title {
    font-size: 2vw;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    font-weight: 500;
    line-height: 1.375;
    margin-bottom: 2.133vw;
}

.nv-concept-desc {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
}

.nv-concept-text {
    color: #787878;
    font-weight: 300;
    line-height: 2;
    font-size: 1.066vw;
}

.nv-concept-link-box {
    margin-top: 2.666vw;
}

.nv-concept-link {
    display: inline-flex;
    align-items: center;
    color: #C4A484;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.933vw;
    font-weight: 700;
    text-decoration: none;
    transition-property: color;
    transition-duration: 0.3s;
}

.nv-concept-link:hover {
    color: rgba(196, 164, 132, 0.8);
}

.nv-concept-link-icon {
    margin-left: 0.533vw;
    font-size: 0.933vw;
    transition-property: transform;
    transition-duration: 0.3s;
}

.nv-concept-link:hover .nv-concept-link-icon {
    transform: translateX(0.266vw);
}

/* --- Atmosphere Section --- */
.nv-atmosphere {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #F9F7F5;
}

.nv-atmosphere-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.nv-atmosphere-header {
    text-align: center;
    margin-bottom: 4.266vw;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
}

.nv-atmosphere-header[data-visible="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nv-atmosphere-label {
    display: block;
    color: #C4A484;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 0.933vw;
    margin-bottom: 0.8vw;
}

.nv-atmosphere-title {
    font-size: 2vw;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    font-weight: 500;
}

.nv-atmosphere-desc {
    margin-top: 1.066vw;
    color: #787878;
    font-size: 1.066vw;
}

.nv-atmosphere-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.6vw;
}

.nv-atmosphere-item {
    position: relative;
    overflow: hidden;
    border-radius: 1.066vw;
    aspect-ratio: 3 / 4;
    cursor: pointer;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
}

.nv-atmosphere-item[data-visible="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nv-atmosphere-item:nth-child(1) {
    transition-delay: 0.1s;
}

.nv-atmosphere-item:nth-child(2) {
    transition-delay: 0.2s;
}

.nv-atmosphere-item:nth-child(3) {
    transition-delay: 0.3s;
}

.nv-atmosphere-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition-property: transform;
    transition-duration: 0.7s;
}

.nv-atmosphere-item:hover .nv-atmosphere-img {
    transform: scale(1.1);
}

.nv-atmosphere-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.2), transparent);
    opacity: 0.8;
    transition-property: opacity;
    transition-duration: 0.3s;
}

.nv-atmosphere-content {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 2.133vw;
    transform: translateY(1.066vw);
    transition-property: transform;
    transition-duration: 0.3s;
}

.nv-atmosphere-item:hover .nv-atmosphere-content {
    transform: translateY(0);
}

.nv-atmosphere-item-title {
    color: #FFFFFF;
    font-size: 1.333vw;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    letter-spacing: 0.05em;
    margin-bottom: 0.533vw;
}

.nv-atmosphere-item-desc {
    color: #E5E5E5;
    font-size: 0.933vw;
    font-weight: 300;
    line-height: 1.625;
    opacity: 0;
    transition-property: opacity;
    transition-duration: 0.3s;
    transition-delay: 0.1s;
}

.nv-atmosphere-item:hover .nv-atmosphere-item-desc {
    opacity: 1;
}

/* --- Menu Section --- */
.nv-menu {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #FFFFFF;
    position: relative;
}

.nv-menu-inner {
    max-width: 59.733vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    position: relative;
    z-index: 10;
}

.nv-menu-header {
    text-align: center;
    margin-bottom: 4.266vw;
}

.nv-menu-label {
    display: block;
    color: #C4A484;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 0.933vw;
    margin-bottom: 0.8vw;
}

.nv-menu-title {
    font-size: 2vw;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    font-weight: 500;
}

.nv-menu-list {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
}

.nv-menu-item {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
    border-bottom-width: 0.066vw;
    border-bottom-style: solid;
    border-bottom-color: #E5E5E5;
    padding-bottom: 1.066vw;
}

.nv-menu-item-left {
    flex: 1;
}

.nv-menu-item-name {
    font-size: 1.333vw;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    color: #4A4A4A;
    transition-property: color;
    transition-duration: 0.3s;
}

.nv-menu-item:hover .nv-menu-item-name {
    color: #C4A484;
}

.nv-menu-item-desc {
    font-size: 0.933vw;
    color: #787878;
    margin-top: 0.266vw;
    font-weight: 300;
}

.nv-menu-item-right {
    margin-left: 1.066vw;
}

.nv-menu-item-price {
    font-size: 1.2vw;
    font-family: 'Tenor Sans', 'Zen Old Mincho', serif;
    color: #4A4A4A;
}

.nv-menu-btn-box {
    margin-top: 3.2vw;
    text-align: center;
}

.nv-menu-btn {
    display: inline-block;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #4A4A4A;
    padding-left: 2.666vw;
    padding-right: 2.666vw;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    font-size: 0.933vw;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #4A4A4A;
    text-decoration: none;
    transition-property: all;
    transition-duration: 0.3s;
}

.nv-menu-btn:hover {
    background-color: #C4A484;
    border-color: #C4A484;
    color: #FFFFFF;
}

.nv-menu-bg-circle-1 {
    position: absolute;
    top: 0;
    right: 0;
    width: 17.066vw;
    height: 17.066vw;
    background-color: rgba(196, 164, 132, 0.05);
    border-radius: 50%;
    filter: blur(2.133vw);
    transform: translate(50%, -50%);
}

.nv-menu-bg-circle-2 {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 25.6vw;
    height: 25.6vw;
    background-color: rgba(196, 164, 132, 0.05);
    border-radius: 50%;
    filter: blur(2.133vw);
    transform: translate(-50%, 50%);
}

/* ==========================================================================
     BASE & PC Styles (701px ~ 1500px) : 100vw = 1500px
     ========================================================================== */

.nc-main {
    background-color: #FAF9F6;
    color: #333333;
    font-family: 'Noto Sans JP', sans-serif;
    overflow: hidden;
}

/* --- Concept Section --- */
.nc-concept {
    padding-top: 5.333vw;
    padding-bottom: 8.533vw;
    background-color: #FFFFFF;
}

.nc-concept-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
}

.nc-concept-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5.333vw;
    align-items: center;
}

.nc-concept-img-wrapper {
    position: relative;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
}

.nc-concept-img-wrapper[data-fade="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nc-concept-img-box-left {
    width: 50%;
    float: left;
    padding-right: 0.533vw;
}

.nc-concept-img-left {
    width: 100%;
    height: 17.066vw;
    object-fit: cover;
    border-radius: 0.8vw;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    transform: translateY(2.133vw);
}

.nc-concept-img-box-right {
    width: 50%;
    float: left;
    padding-left: 0.533vw;
    display: flex;
    flex-direction: column;
    gap: 1vw;
}

.nc-concept-img-right {
    width: 100%;
    height: 17.066vw;
    object-fit: cover;
    border-radius: 0.8vw;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
}

.nc-concept-bg-blur {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120%;
    height: 80%;
    transform: translate(-50%, -50%);
    background-color: rgba(141, 123, 104, 0.1);
    border-radius: 50%;
    filter: blur(2.133vw);
    z-index: -10;
}

.nc-concept-content {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
    transition-delay: 0.2s;
}

.nc-concept-content[data-fade="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nc-concept-label {
    color: #8D7B68;
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.nc-concept-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.3vw;
    color: #111827;
    line-height: 1.25;
}

.nc-concept-line {
    width: 4.266vw;
    height: 0.266vw;
    background-color: #8D7B68;
    border-radius: 9999px;
}

.nc-concept-desc {
    color: #4B5563;
    line-height: 2;
    font-size: 1.066vw;
}

.nc-concept-link-box {
    padding-top: 1.066vw;
}

.nc-concept-link {
    display: inline-flex;
    align-items: center;
    color: #8D7B68;
    font-weight: 500;
    text-decoration: none;
    font-size: 1.066vw;
    transition-property: color;
    transition-duration: 0.3s;
}

.nc-concept-link:hover {
    color: #6e5d4e;
}

.nc-concept-link-icon {
    margin-left: 0.533vw;
    font-size: 1.333vw;
    transition-property: transform;
    transition-duration: 0.3s;
}

.nc-concept-link:hover .nc-concept-link-icon {
    transform: translateX(0.266vw);
}

/* --- Atmosphere Section --- */
.nc-atmosphere {
    padding-top: 5.333vw;
    padding-bottom: 5.333vw;
    background-color: #FAF9F6;
}

.nc-atmosphere-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
}

.nc-atmosphere-header {
    text-align: center;
    max-width: 48vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 4.266vw;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
}

.nc-atmosphere-header[data-fade="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nc-atmosphere-label {
    display: block;
    color: #8D7B68;
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.nc-atmosphere-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.4vw;
    color: #111827;
    margin-top: 0.533vw;
    margin-bottom: 1.066vw;
}

.nc-atmosphere-desc {
    color: #6B7280;
    font-size: 1.066vw;
}

.nc-atmosphere-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.133vw;
}

.nc-atmosphere-item {
    position: relative;
    overflow: hidden;
    border-radius: 1.066vw;
    cursor: pointer;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
}

.nc-atmosphere-item[data-fade="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nc-atmosphere-item:nth-child(1) {
    transition-delay: 0.1s;
}

.nc-atmosphere-item:nth-child(2) {
    transition-delay: 0.2s;
}

.nc-atmosphere-item:nth-child(3) {
    transition-delay: 0.3s;
}

.nc-atmosphere-img {
    width: 100%;
    height: 21.333vw;
    object-fit: cover;
    transition-property: transform;
    transition-duration: 0.7s;
}

.nc-atmosphere-overlay {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.2), transparent);
    padding: 1.6vw;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.nc-atmosphere-item-title {
    font-size: 1.333vw;
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: 0.266vw;
}

.nc-atmosphere-item-desc {
    font-size: 0.933vw;
    color: #E5E7EB;
}

/* --- Menu Section --- */
.nc-menu {
    padding-top: 5.333vw;
    padding-bottom: 5.333vw;
    background-color: #FFFFFF;
    position: relative;
    overflow: hidden;
}

.nc-menu-bg-blur {
    position: absolute;
    top: 0;
    right: 0;
    width: 17.066vw;
    height: 17.066vw;
    background-color: rgba(141, 123, 104, 0.1);
    border-radius: 50%;
    filter: blur(2.133vw);
    transform: translate(50%, -50%);
}

.nc-menu-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
}

.nc-menu-grid {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 3.2vw;
}

.nc-menu-content {
    width: 50%;
    order: 1;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
}

.nc-menu-content[data-fade="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nc-menu-label {
    display: block;
    color: #8D7B68;
    font-size: 0.933vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.nc-menu-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.4vw;
    color: #111827;
    margin-top: 0.533vw;
    margin-bottom: 1.6vw;
}

.nc-menu-desc {
    color: #4B5563;
    line-height: 1.625;
    margin-bottom: 2.133vw;
    font-size: 1.066vw;
}

.nc-menu-list {
    display: flex;
    flex-direction: column;
    gap: 1.066vw;
}

.nc-menu-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.066vw;
    background-color: #FAF9F6;
    border-radius: 0.533vw;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    border-width: 0.066vw;
    border-style: solid;
    border-color: #F3F4F6;
}

.nc-menu-item-left {
    display: flex;
    align-items: center;
    gap: 1.066vw;
}

.nc-menu-icon-box {
    background-color: rgba(141, 123, 104, 0.2);
    padding: 0.533vw;
    border-radius: 9999px;
    color: #8D7B68;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nc-menu-icon {
    font-size: 1.6vw;
}

.nc-menu-item-text {
    display: flex;
    flex-direction: column;
}

.nc-menu-item-name {
    font-weight: 700;
    color: #111827;
    font-size: 1.066vw;
}

.nc-menu-item-sub {
    font-size: 0.933vw;
    color: #6B7280;
}

.nc-menu-item-price {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    font-size: 1.2vw;
    color: #8D7B68;
}

.nc-menu-btn-box {
    margin-top: 2.133vw;
}

.nc-menu-btn {
    display: inline-block;
    border-width: 0.066vw;
    border-style: solid;
    border-color: #8D7B68;
    color: #8D7B68;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    border-radius: 9999px;
    font-size: 1.066vw;
    text-decoration: none;
    transition-property: all;
    transition-duration: 0.3s;
}

.nc-menu-btn:hover {
    background-color: #8D7B68;
    color: #FFFFFF;
}

.nc-menu-img-wrapper {
    width: 50%;
    order: 2;
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
    transition-delay: 0.2s;
}

.nc-menu-img-wrapper[data-fade="true"] {
    opacity: 1;
    transform: translateY(0);
}

.nc-menu-img-box-left {
    width: 50%;
    float: left;
    padding-right: 0.533vw;
}

.nc-menu-img-left {
    width: 100%;
    height: 17.066vw;
    object-fit: cover;
    border-radius: 1.066vw;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    margin-bottom: .5vw;
}

.nc-menu-img-box-right {
    width: 50%;
    float: left;
    padding-left: 0.533vw;
}

.nc-menu-img-right {
    width: 100%;
    height: 17.066vw;
    object-fit: cover;
    border-radius: 1.066vw;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    transform: translateY(3vw);
    margin-bottom: .5vw;
}

/* --- Access Section --- */
.nc-access {
    padding-top: 5.333vw;
    padding-bottom: 5.333vw;
    background-color: #8D7B68;
    position: relative;
}

.nc-access-bg-texture {
    position: absolute;
    inset: 0;
    background-image: url('https://www.transparenttextures.com/patterns/wood-pattern.png');
    opacity: 0.1;
    pointer-events: none;
}

.nc-access-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
    position: relative;
    z-index: 10;
}

.nc-access-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4.266vw;
}

.nc-access-content {
    color: #FFFFFF;
}

.nc-access-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.4vw;
    margin-bottom: 2.133vw;
}

.nc-access-list {
    display: flex;
    flex-direction: column;
    gap: 1.6vw;
    font-size: 1.2vw;
    font-weight: 300;
}

.nc-access-item {
    display: flex;
    align-items: flex-start;
    gap: 1.066vw;
}

.nc-access-icon {
    margin-top: 0.266vw;
    font-size: 1.6vw;
}

.nc-access-item-text {
    display: flex;
    flex-direction: column;
}

.nc-access-item-name {
    font-weight: 500;
}

.nc-access-item-sub {
    opacity: 0.8;
    font-size: 1.066vw;
    margin-top: 0.266vw;
}

.nc-access-btns {
    margin-top: 2.666vw;
    display: flex;
    gap: 1.066vw;
    flex-wrap: wrap;
}

.nc-access-btn-primary {
    background-color: #FFFFFF;
    color: #8D7B68;
    padding-left: 1.6vw;
    padding-right: 1.6vw;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    border-radius: 9999px;
    font-weight: 500;
    text-decoration: none;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    transition-property: background-color;
    transition-duration: 0.3s;
    font-size: 1.066vw;
}

.nc-access-btn-primary:hover {
    background-color: #F3F4F6;
}

.nc-access-btn-secondary {
    border-width: 0.066vw;
    border-style: solid;
    border-color: #FFFFFF;
    color: #FFFFFF;
    padding-left: 1.6vw;
    padding-right: 1.6vw;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    border-radius: 9999px;
    font-weight: 500;
    text-decoration: none;
    transition-property: background-color;
    transition-duration: 0.3s;
    font-size: 1.066vw;
}

.nc-access-btn-secondary:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.nc-access-btn-primary,
.nc-access-btn-secondary {
    width: 15vw;
    text-align: center;
}

.nc-access-map-wrapper {
    background-color: #D1D5DB;
    border-radius: 0.8vw;
    overflow: hidden;
    box-shadow: 0 1.6vw 3.333vw rgba(0, 0, 0, 0.25);
    position: relative;
}

.nc-access-map-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.8;
    mix-blend-mode: multiply;
}

.nc-access-map-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nc-access-map-label {
    background-color: rgba(255, 255, 255, 0.9);
    color: #1F2937;
    padding-left: 1.6vw;
    padding-right: 1.6vw;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    border-radius: 0.533vw;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    font-weight: 700;
    font-size: 1.066vw;
}

/* ==========================================================================
     BASE & PC (701px - 1500px) : 1500px Baseline
     ========================================================================== */

.top-main {
    width: 100%;
    font-family: "Zen Kaku Gothic New", sans-serif;
    color: #333333;
}

.top-br-pc {
    display: block;
}

/* --- Global Animation --- */
[data-fade="false"] {
    opacity: 0;
    transform: translateY(1.333vw);
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
}

[data-fade="true"] {
    opacity: 1;
    transform: translateY(0);
}

/* --- Concept Section --- */
.top-concept {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #FAF9F6;
    position: relative;
    overflow: hidden;
}

.top-concept-deco {
    position: absolute;
    top: -5.333vw;
    right: -5.333vw;
    width: 25.6vw;
    height: 25.6vw;
    background-color: rgba(219, 207, 176, 0.2);
    border-radius: 50%;
    filter: blur(2.133vw);
    pointer-events: none;
}

.top-concept-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    position: relative;
    z-index: 10;
}

.top-concept-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4.266vw;
    align-items: center;
}

.top-concept-img-col {
    position: relative;
    order: 1;
}

.top-concept-main-wrap {
    aspect-ratio: 4 / 5;
    border-radius: 0.8vw;
    overflow: hidden;
    box-shadow: 0 1.6vw 3.333vw rgba(0, 0, 0, 0.25);
    position: relative;
    z-index: 10;
}

.top-concept-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition-property: transform;
    transition-duration: 0.7s;
}

.top-concept-main-wrap:hover .top-concept-main-img {
    transform: scale(1.05);
}

.top-concept-sub-wrap {
    position: absolute;
    bottom: -7vw;
    right: -2vw;
    width: 55%;
    aspect-ratio: 1 / 1;
    border-radius: 0.8vw;
    overflow: hidden;
    box-shadow: 0 1.333vw 1.666vw rgba(0, 0, 0, 0.1);
    z-index: 20;
    border-width: 0.533vw;
    border-style: solid;
    border-color: #FAF9F6;
    display: block;
}

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

.top-concept-text-col {
    order: 2;
}

.top-concept-label-wrap {
    display: flex;
    align-items: center;
    gap: 0.533vw;
    margin-bottom: 1.066vw;
}

.top-concept-label-line {
    height: 0.066vw;
    width: 2.133vw;
    background-color: #5D7052;
}

.top-concept-label {
    color: #5D7052;
    font-weight: 500;
    letter-spacing: 0.1em;
    font-size: 0.933vw;
    text-transform: uppercase;
}

.top-concept-title {
    font-family: "Noto Serif JP", serif;
    font-size: 2.4vw;
    color: #111827;
    margin-bottom: 1.6vw;
    line-height: 1.5;
}

.top-concept-text-1 {
    color: #4b5563;
    line-height: 2;
    margin-bottom: 1.6vw;
    font-size: 1.066vw;
}

.top-concept-text-2 {
    color: #4b5563;
    line-height: 2;
    margin-bottom: 2.133vw;
    font-size: 1.066vw;
}

.top-concept-list {
    display: flex;
    flex-direction: column;
    gap: 1.066vw;
    padding: 0;
    list-style: none;
}

.top-concept-item {
    display: flex;
    align-items: center;
    gap: 0.8vw;
    color: #374151;
}

.top-concept-icon {
    color: #5D7052;
    font-size: 1.6vw;
}

.top-concept-item-text {
    font-size: 1.066vw;
}

/* --- Services Section --- */
.top-services {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #FFFFFF;
}

.top-services-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.top-services-header {
    text-align: center;
    max-width: 48vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 4.266vw;
}

.top-services-label {
    color: #5D7052;
    font-weight: 500;
    letter-spacing: 0.1em;
    font-size: 0.933vw;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.533vw;
}

.top-services-title {
    font-family: "Noto Serif JP", serif;
    font-size: 2.4vw;
    color: #111827;
    margin-bottom: 1.6vw;
}

.top-services-desc {
    color: #4b5563;
    font-size: 1.066vw;
    line-height: 1.625;
}

.top-services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.133vw;
}

.top-service-card {
    background-color: #FAF9F6;
    border-radius: 0.8vw;
    overflow: hidden;
    box-shadow: 0 0.066vw 0.133vw rgba(0, 0, 0, 0.05);
    border-width: 0.066vw;
    border-style: solid;
    border-color: #F3F4F6;
    transition-property: box-shadow;
    transition-duration: 0.3s;
}

.top-service-card:hover {
    box-shadow: 0 1.333vw 1.666vw -0.333vw rgba(0, 0, 0, 0.1);
}

.top-service-img-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.top-service-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition-property: transform;
    transition-duration: 0.7s;
}

.top-service-card:hover .top-service-img {
    transform: scale(1.1);
}

.top-service-body {
    padding: 2.133vw;
}

.top-service-icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.2vw;
    height: 3.2vw;
    border-radius: 50%;
    background-color: rgba(93, 112, 82, 0.1);
    color: #5D7052;
    margin-bottom: 1.066vw;
}

.top-service-icon {
    font-size: 1.6vw;
}

.top-service-name {
    font-family: "Noto Serif JP", serif;
    font-size: 1.333vw;
    font-weight: 600;
    color: #111827;
    margin-bottom: 0.8vw;
}

.top-service-text {
    color: #4b5563;
    font-size: 0.933vw;
    line-height: 1.625;
    margin-bottom: 1.6vw;
}

.top-service-link {
    display: inline-flex;
    align-items: center;
    color: #5D7052;
    font-weight: 500;
    font-size: 0.933vw;
    text-decoration: none;
    transition-property: color;
    transition-duration: 0.3s;
}

.top-service-link:hover {
    color: #44523C;
}

.top-service-link-icon {
    font-size: 0.933vw;
    margin-left: 0.266vw;
}

/* --- Atmosphere Section --- */
.top-atmosphere {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #FAF9F6;
}

.top-atmosphere-inner {
    max-width: 85.333vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
}

.top-atmosphere-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 3.2vw;
}

.top-atmosphere-title-wrap {
    display: flex;
    flex-direction: column;
}

.top-atmosphere-label {
    color: #5D7052;
    font-weight: 500;
    letter-spacing: 0.1em;
    font-size: 0.933vw;
    text-transform: uppercase;
    margin-bottom: 0.533vw;
}

.top-atmosphere-title {
    font-family: "Noto Serif JP", serif;
    font-size: 2.4vw;
    color: #111827;
}

.top-atmosphere-desc {
    color: #6b7280;
    text-align: right;
    max-width: 29.866vw;
    font-size: 1.066vw;
}

.top-atmosphere-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(2, 13.333vw);
    gap: 1.066vw;
}

.top-atm-item-1,
.top-atm-item-2,
.top-atm-item-3,
.top-atm-item-4,
.top-atm-item-5,
.top-atm-item-6,
.top-atm-item-7,
.top-atm-item-8 {
    position: relative;
    border-radius: 0.8vw;
    overflow: hidden;
    cursor: pointer;
}

.atmosphere-space {
    height: 1vw;
}

.top-atm-item-1 {
    grid-column: span 2 / span 2;
    grid-row: span 2 / span 2;
}

.top-atm-item-2 {
    grid-column: span 1 / span 1;
    grid-row: span 2 / span 2;
}

.top-atm-item-3 {
    grid-column: span 1 / span 1;
    grid-row: span 1 / span 1;
}

.top-atm-item-4 {
    grid-column: span 1 / span 1;
    grid-row: span 1 / span 1;
}

.top-atm-item-5 {
    grid-column: span 1 / span 1;
    grid-row: span 1 / span 1;
}

.top-atm-item-6 {
    grid-column: span 1 / span 1;
    grid-row: 2;
}

.top-atm-item-7 {
    grid-column: span 1 / span 1;
    grid-row: span 2 / span 2;
}

.top-atm-item-8 {
    grid-column: span 2 / span 2;
    grid-row: span 2 / span 2;
}

.top-atm-img-1,
.top-atm-img-2,
.top-atm-img-3,
.top-atm-img-4,
.top-atm-img-5,
.top-atm-img-6,
.top-atm-img-7,
.top-atm-img-8 {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition-property: transform;
    transition-duration: 0.7s;
}

.top-atm-item-1:hover .top-atm-img-1,
.top-atm-item-2:hover .top-atm-img-2,
.top-atm-item-3:hover .top-atm-img-3,
.top-atm-item-4:hover .top-atm-img-4,
.top-atm-item-5:hover .top-atm-img-5,
.top-atm-item-6:hover .top-atm-img-6,
.top-atm-item-7:hover .top-atm-img-7,
.top-atm-item-8:hover .top-atm-img-8 {
    transform: scale(1.05);
}

.top-atm-overlay-1,
.top-atm-overlay-2,
.top-atm-overlay-3,
.top-atm-overlay-4,
.top-atm-overlay-5,
.top-atm-overlay-6,
.top-atm-overlay-7,
.top-atm-overlay-8 {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.2);
    transition-property: background-color;
    transition-duration: 0.3s;
}

.top-atm-item-1:hover .top-atm-overlay-1,
.top-atm-item-2:hover .top-atm-overlay-2,
.top-atm-item-3:hover .top-atm-overlay-3,
.top-atm-item-4:hover .top-atm-overlay-4,
.top-atm-item-5:hover .top-atm-overlay-5,
.top-atm-item-6:hover .top-atm-overlay-6,
.top-atm-item-7:hover .top-atm-overlay-7,
.top-atm-item-8:hover .top-atm-overlay-8 {
    background-color: rgba(0, 0, 0, 0.1);
}

.top-atm-text-wrap-1,
.top-atm-text-wrap-2,
.top-atm-text-wrap-3,
.top-atm-text-wrap-4,
.top-atm-text-wrap-5,
.top-atm-text-wrap-6,
.top-atm-text-wrap-7,
.top-atm-text-wrap-8 {
    position: absolute;
    bottom: 1.066vw;
    left: 1.066vw;
}

.top-atm-text-1,
.top-atm-text-2,
.top-atm-text-3,
.top-atm-text-4,
.top-atm-text-5,
.top-atm-text-6,
.top-atm-text-7,
.top-atm-text-8 {
    color: #FFFFFF;
    font-size: 0.933vw;
    font-weight: 500;
}

/* --- Recruit Section --- */
.top-recruit {
    padding-top: 6.4vw;
    padding-bottom: 6.4vw;
    background-color: #5D7052;
    position: relative;
    overflow: hidden;
}

.top-recruit-bg-pattern {
    position: absolute;
    inset: 0;
    opacity: 0.1;
    background-image: url('data:image/svg+xml,%3Csvg width="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%23ffffff" fill-opacity="1"%3E%3Cpath d="M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E');
}

.top-recruit-content {
    position: relative;
    z-index: 10;
    max-width: 59.733vw;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.066vw;
    padding-right: 1.066vw;
    text-align: center;
}

.top-recruit-title {
    font-family: "Noto Serif JP", serif;
    font-size: 3.2vw;
    color: #FFFFFF;
    margin-bottom: 1.6vw;
}

.top-recruit-desc {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.2vw;
    margin-bottom: 2.133vw;
    line-height: 1.625;
}

.top-recruit-btn-wrap {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 1.066vw;
}

.top-recruit-btn-primary {
    background-color: #FFFFFF;
    color: #5D7052;
    font-weight: 700;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
    border-radius: 9999px;
    box-shadow: 0 0.666vw 1vw rgba(0, 0, 0, 0.1);
    border: none;
    cursor: pointer;
    transition-property: background-color;
    transition-duration: 0.3s;
    font-size: 1.066vw;
}

.top-recruit-btn-primary:hover {
    background-color: #F3F4F6;
}

.top-recruit-btn-secondary {
    background-color: transparent;
    border-width: 0.133vw;
    border-style: solid;
    border-color: #FFFFFF;
    color: #FFFFFF;
    font-weight: 700;
    padding-top: 0.8vw;
    padding-bottom: 0.8vw;
    padding-left: 2.133vw;
    padding-right: 2.133vw;
    border-radius: 9999px;
    cursor: pointer;
    transition-property: background-color;
    transition-duration: 0.3s;
    font-size: 1.066vw;
}

.top-recruit-btn-secondary:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.smp {
    display: none;
}

/* ==========================================================================
     MOBILE (<= 700px) : 375px Baseline
     ========================================================================== */
@media (max-width: 700px) {
    .pc {
        display: none;
    }

    .smp {
        display: block;
    }

    .header {
        height: 16vw;
        backdrop-filter: blur(3.2vw);
        border-bottom-width: 0.266vw;
    }

    .header-inner {
        height: 16vw;
        max-width: 100vw;
        padding-left: 6.4vw;
        padding-right: 6.4vw;
    }

    .logo-group {
        gap: 2.133vw;
    }

    .logo-icon {
        height: 10.666vw;
        width: 10.666vw;
    }

    .logo-symbol {
        font-size: 6.4vw;
    }

    .logo-text {
        font-size: 5.333vw;
        letter-spacing: -0.053vw;
    }

    .pc-nav {
        display: none;
    }

    .mobile-menu-btn {
        display: flex;
        flex-direction: column;
        height: 10.666vw;
        width: 10.666vw;
        align-items: center;
        justify-content: center;
        gap: 1.6vw;
        position: relative;
        z-index: 110;
    }

    .menu-line-top,
    .menu-line-mid,
    .menu-line-bot {
        display: block;
        width: 6.4vw;
        height: 0.533vw;
        background-color: #1a1c1a;
        border-radius: 9999px;
        transition-property: all;
        transition-duration: 0.3s;
    }

    /* 開いた状態（×印）のアニメーション */
    .mobile-menu-btn[data-state="open"] .menu-line-top {
        transform: translateY(2.133vw) rotate(45deg);
    }

    .mobile-menu-btn[data-state="open"] .menu-line-mid {
        opacity: 0;
    }

    .mobile-menu-btn[data-state="open"] .menu-line-bot {
        transform: translateY(-2.133vw) rotate(-45deg);
    }

    .hero-content {
        padding-left: 6.4vw;
        padding-right: 6.4vw;
    }

    .hero-content-inner {
        max-width: 100%;
        padding-top: 21.333vw;
    }

    .hero-badge {
        gap: 3.2vw;
        border-width: 0.266vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
        padding-top: 2.133vw;
        padding-bottom: 2.133vw;
        backdrop-filter: blur(3.2vw);
        margin-bottom: 8.533vw;
    }

    .badge-dot-wrapper,
    .badge-dot-core {
        height: 2.133vw;
        width: 2.133vw;
    }

    .badge-text {
        font-size: 3.2vw;
        letter-spacing: 0.4vw;
    }

    .hero-title {
        font-size: 10.666vw;
        letter-spacing: -0.053vw;
        text-shadow: 0 0.533vw 1.066vw rgba(0, 0, 0, 0.1);
        margin-bottom: 8.533vw;
    }

    .hero-desc {
        max-width: 100%;
        font-size: 4.8vw;
        text-shadow: 0 0.533vw 1.066vw rgba(0, 0, 0, 0.1);
        margin-bottom: 8.533vw;
    }

    .hero-buttons {
        gap: 4.266vw;
        padding-top: 4.266vw;
        flex-direction: column;
    }

    .hero-btn-primary,
    .hero-btn-secondary {
        height: 14.933vw;
        width: 100%;
        padding-left: 6.4vw;
        padding-right: 6.4vw;
    }

    .hero-btn-secondary {
        border-width: 0.266vw;
        backdrop-filter: blur(1.066vw);
    }

    .hero-btn-text,
    .hero-btn-text2 {
        font-size: 3.733vw;
    }

    .hero-btn-play {
        font-size: 6.4vw;
    }

    .scroll-indicator {
        bottom: 3vw;
        gap: 2.133vw;
    }

    .scroll-text {
        font-size: 2.666vw;
    }

    .scroll-line {
        height: 12.8vw;
        width: 0.266vw;
    }

    .concept-sec {
        padding-top: 25.6vw;
        padding-bottom: 25.6vw;
    }

    .concept-deco-green {
        top: 42.666vw;
        left: -21.333vw;
        height: 102.4vw;
        width: 102.4vw;
        filter: blur(26.666vw);
    }

    .concept-deco-blue {
        height: 133.333vw;
        width: 133.333vw;
        filter: blur(32vw);
    }

    .concept-inner {
        max-width: 100vw;
        padding-left: 4vw;
        padding-right: 4vw;
    }

    .concept-grid {
        flex-direction: column;
        gap: 3vw;
    }

    .concept-text-area {
        width: 90%;
    }

    .section-label {
        margin-bottom: 4.266vw;
        font-size: 3.2vw;
    }

    .section-title {
        font-size: 8.533vw;
    }

    .concept-desc-group {
        font-size: 4.8vw;
        margin-bottom: 6.4vw;
    }

    .concept-p {
        margin-bottom: 6.4vw;
        font-size: clamp(16px, 3.5vw, 3.5vw);
    }

    .pc-br {
        display: none;
    }

    .concept-features {
        padding-top: 4.266vw;
    }

    .feature-list {
        grid-template-columns: minmax(0, 1fr);
        column-gap: 8.533vw;
        row-gap: 8.533vw;
        border-top-width: 0.266vw;
        padding-top: 8.533vw;
    }

    .feature-dt {
        margin-bottom: 2.133vw;
        gap: 2.133vw;
        font-size: 3.733vw;
    }

    .feature-dd {
        font-size: 3.733vw;
    }

    .concept-image-box {
        border-radius: 8.533vw;
        box-shadow: 0 6.4vw 13.333vw -3.2vw rgba(0, 0, 0, 0.25);
    }

    .facilities-sec {
        padding-top: 25.6vw;
        padding-bottom: 25.6vw;
    }

    .facilities-inner {
        max-width: 100vw;
        padding-left: 6.4vw;
        padding-right: 6.4vw;
    }

    .facilities-header {
        margin-bottom: 17.066vw;
    }

    .section-title-center {
        font-size: 8.533vw;
    }

    .section-desc-center {
        margin-top: 4.266vw;
    }

    .facilities-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto;
        height: auto;
        gap: 6.4vw;
    }

    .facility-card-large,
    .facility-card-small {
        grid-column: span 1 / span 1;
        height: 80vw;
        border-radius: 6.4vw;
        box-shadow: 0 0.266vw 0.533vw rgba(0, 0, 0, 0.05);
    }

    .facility-content {
        padding: 8.533vw;
    }

    .facility-content-small {
        padding: 6.4vw;
    }

    .facility-tag-group {
        margin-bottom: 2.133vw;
        gap: 2.133vw;
    }

    .facility-tag {
        border-radius: 1.066vw;
        padding-left: 2.133vw;
        padding-right: 2.133vw;
        padding-top: 0.533vw;
        padding-bottom: 0.533vw;
        font-size: 3.2vw;
        backdrop-filter: blur(1.066vw);
    }

    .facility-title {
        margin-bottom: 1.066vw;
        font-size: 6.4vw;
    }

    .facility-desc {
        font-size: 3.733vw;
    }

    .facility-title-small {
        margin-bottom: 1.066vw;
        font-size: 5.333vw;
    }

    .facility-desc-small {
        font-size: 3.2vw;
    }

    .news-sec {
        padding-top: 25.6vw;
        padding-bottom: 25.6vw;
    }

    .news-inner {
        max-width: 100vw;
        padding-left: 6.4vw;
        padding-right: 6.4vw;
    }

    .news-header-row {
        margin-bottom: 12.8vw;
        border-bottom-width: 0.266vw;
        padding-bottom: 4.266vw;
    }

    .view-all-link-pc {
        display: none;
    }

    .news-list {
        gap: 4.266vw;
        justify-content: unset;
        flex-direction: column;
    }

    .news-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 4.266vw;
        border-radius: 4.266vw;
        padding: 6.4vw;
        width: 100%;
    }

    .news-item-image img {
        width: 75vw;
        height: 40vw;
    }

    .news-meta {
        width: auto;
    }

    .news-date {
        font-size: 3.733vw;
    }

    .news-tag-event,
    .news-tag-news,
    .news-tag-campaign {
        font-size: 3.2vw;
    }

    .news-item-title {
        font-size: 4.266vw;
    }

    .news-arrow-btn {
        display: none;
    }

    .news-view-all-mobile {
        display: block;
        margin-top: 8.533vw;
        text-align: center;
    }

    .view-all-link-mobile {
        display: inline-flex;
        align-items: center;
        font-size: 3.733vw;
        font-weight: 700;
        color: #6b7280;
    }

    .access-sec {
        padding-top: 25.6vw;
        padding-bottom: 25.6vw;
    }

    .access-inner {
        max-width: 100vw;
        padding-left: 6.4vw;
        padding-right: 6.4vw;
    }

    .access-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12.8vw;
    }

    .parking-map {
        width: 95%;
        margin: 15vw auto 0;
    }

    .access-info {
        grid-column: span 7;
    }

    .section-title-mb {
        margin-bottom: 8.533vw;
        font-size: 8.533vw;
    }

    .access-cards {
        gap: 8.533vw;
    }

    .access-card {
        border-radius: 4.266vw;
        padding: 6.4vw;
        box-shadow: 0 0.266vw 0.533vw rgba(0, 0, 0, 0.05);
    }

    .access-icon-wrapper {
        margin-bottom: 4.266vw;
        height: 10.666vw;
        width: 10.666vw;
    }

    .access-card-title {
        font-size: 4.8vw;
    }

    .access-card-desc {
        margin-top: 2.133vw;
        font-size: 3.733vw;
    }

    .access-note {
        font-size: 3.2vw;
    }

    .footer-sec {
        padding-top: 21.333vw;
        padding-bottom: 10.666vw;
    }

    .footer-inner {
        max-width: 100vw;
        padding-left: 6.4vw;
        padding-right: 6.4vw;
        padding-bottom: 10vw;
    }

    .footer-grid {
        flex-direction: column;
        gap: 12.8vw;
    }

    .footer-links {
        grid-column: span 1 / span 1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8.533vw;
    }

    .footer-logo-row {
        gap: 3.2vw;
        margin-bottom: 6.4vw;
    }

    .footer-logo-icon {
        height: 8.533vw;
        width: 8.533vw;
    }

    .footer-symbol {
        font-size: 4.8vw;
    }

    .footer-link-col {
        width: 40%;
    }

    .footer-logo-text {
        font-size: 4.8vw;
    }

    .footer-desc {
        font-size: 3.733vw;
    }

    .footer-link-title {
        margin-bottom: 4.266vw;
        font-size: 3.733vw;
    }

    .footer-ul {
        gap: 3.2vw;
    }

    .footer-a {
        font-size: 3.733vw;
    }

    .social-row {
        gap: 4.266vw;
    }

    .social-btn {
        height: 12.8vw;
        width: 12.8vw;
    }

    .social-text {
        font-size: 3.2vw;
    }

    .footer-bottom {
        margin-top: 21.333vw;
        border-top-width: 0.266vw;
        padding-top: 8.533vw;
        flex-direction: column;
        gap: 4.266vw;
    }

    .footer-copy {
        font-size: 3.2vw;
    }

    /*---*/
    .content-wrapper {
        max-width: 100vw;
        margin-top: 30vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .hero-section {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .hero-inner {
        gap: 4.266vw;
    }

    .hero-title,
    .lower .hero-title {
        font-size: 9.6vw;
    }

    .hero-subtitle,
    .lower .hero-subtitle {
        font-size: 5.333vw;
    }

    .hero-desc,
    .lower .hero-desc {
        font-size: clamp(16px, 3.5vw, 3.5vw);
        line-height: 2;
        text-align: left;
        max-width: 100%;
        margin-bottom: 5vw;
    }

    .about-section {
        width: 90vw;
        padding: 10vw 6vw;
        border-radius: 6vw;
    }

    .about-icon {
        width: 10vw;
        height: 10vw;
    }

    .about-title {
        font-size: 5vw;
        margin-bottom: 6vw;
    }

    .about-paragraph {
        font-size: clamp(16px, 3.5vw, 3.5vw);
        line-height: 1.8;
        margin-bottom: 5vw;
    }

    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 4.266vw;
        padding: 4.266vw;
    }

    .gallery-large {
        border-radius: 3.2vw;
    }

    .gallery-small {
        border-radius: 3.2vw;
    }

    .philosophy-section {
        gap: 8.533vw;
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .philosophy-header {
        gap: 4.266vw;
    }

    .philosophy-title {
        font-size: 8vw;
    }

    .philosophy-desc {
        font-size: clamp(16px, 3.5vw, 3.5vw);
        max-width: 100%;
    }

    .philosophy-grid {
        grid-template-columns: 1fr;
        gap: 8.533vw;
    }

    .philosophy-card {
        padding: 6.4vw;
        border-radius: 3.2vw;
    }

    .card-icon-wrapper {
        margin-bottom: 4.266vw;
    }

    .material-symbols-outlined {
        font-size: 7.5vw;
    }

    .card-title {
        font-size: 5.333vw;
        margin-bottom: 2.133vw;
    }

    .card-desc {
        font-size: clamp(16px, 3.5vw, 3.5vw);
    }

    .founder-box {
        border-radius: 3.2vw;
        padding: 8.533vw 6.4vw;
    }

    .founder-img-wrapper {
        margin-bottom: 6.4vw;
    }

    .founder-img {
        width: 34.133vw;
        height: 34.133vw;
    }

    .founder-content {
        max-width: 100%;
    }

    .founder-title {
        font-size: 6.4vw;
    }

    .founder-quote {
        font-size: clamp(16px, 3.5vw, 3.5vw);
        margin: 10vw auto;
    }

    .founder-name {
        font-size: 4.266vw;
        margin-top: 4.266vw;
    }

    .cta-section {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .cta-box {
        gap: 6.4vw;
        border-radius: 3.2vw;
        padding: 8.533vw 6.4vw;
    }

    .cta-header {
        gap: 2.133vw;
    }

    .cta-title {
        font-size: 8vw;
    }

    .cta-desc {
        font-size: 4.266vw;
        max-width: 100%;
    }

    .cta-button {
        min-width: 32vw;
        height: 12.8vw;
        padding-left: 6.4vw;
        padding-right: 6.4vw;
        border-radius: 2.133vw;
    }

    .cta-button-text {
        font-size: 4.266vw;
    }

    .shop-main {
        max-width: 100vw;
    }

    .shop-hero {
        padding-top: 17.0666vw;
        padding-bottom: 21.3333vw;
        padding-left: 4.2666vw;
        padding-right: 4.2666vw;
    }

    .shop-hero-blur-bg {
        width: 213.3333vw;
        height: 213.3333vw;
        filter: blur(17.0666vw);
    }

    .shop-hero-subtitle {
        margin-bottom: 4.2666vw;
        font-size: 3.7333vw;
    }

    .shop-hero-title {
        font-size: 8vw;
        margin-bottom: 8.5333vw;
    }

    .shop-hero-br-sp {
        display: block;
    }

    .shop-hero-title-large {
        font-size: 10.6666vw;
        margin-top: 2.1333vw;
    }

    .shop-hero-desc {
        font-size: 4.2666vw;
        max-width: 100%;
    }

    .shop-hero-image-area {
        padding-left: 4.2666vw;
        padding-right: 4.2666vw;
        margin-bottom: 25.6vw;
    }

    .shop-hero-image-wrapper {
        height: 106.6666vw;
        border-radius: 4.2666vw;
    }

    .shop-origin {
        padding-left: 4.2666vw;
        padding-right: 4.2666vw;
        margin-bottom: 25.6vw;
    }

    .shop-origin-card {
        border-radius: 6.4vw;
        padding: 8.5333vw;
    }

    .shop-origin-card-blur {
        width: 68.2666vw;
        height: 68.2666vw;
        filter: blur(17.0666vw);
    }

    .shop-origin-layout {
        flex-direction: column;
        gap: 12.8vw;
    }

    .shop-origin-text-area {
        width: 100%;
    }

    .shop-origin-header {
        margin-bottom: 4.2666vw;
    }

    .shop-origin-heading {
        font-size: 6.4vw;
        gap: 3.2vw;
        margin-bottom: 4.2666vw;
    }

    .shop-origin-icon {
        font-size: 10.6666vw;
    }

    .shop-origin-line {
        height: 1.0666vw;
        width: 21.3333vw;
    }

    .shop-origin-p {
        margin-bottom: 6.4vw;
    }

    .shop-origin-visual-area {
        width: 100%;
        justify-content: center;
    }

    .shop-origin-circle-inner {
        padding: 8.5333vw;
        box-shadow: 0 1.0666vw 5.3333vw -0.5333vw rgba(56, 102, 65, 0.1);
        width: 68.2666vw;
        height: 68.2666vw;
        border-width: 1.0666vw;
    }

    .shop-origin-circle-icon {
        font-size: 16vw;
        margin-bottom: 3.2vw;
    }

    .shop-origin-circle-en {
        font-size: 3.7333vw;
    }

    .shop-origin-circle-line {
        width: 8.5333vw;
        height: 0.2666vw;
        margin-top: 2.1333vw;
        margin-bottom: 2.1333vw;
    }

    .shop-origin-circle-ja {
        font-size: 5.3333vw;
    }

    .shop-origin-circle-ring-sm {
        width: 85.3333vw;
        height: 85.3333vw;
        border-width: 0.2666vw;
    }

    .shop-origin-circle-ring-lg {
        width: 102.4vw;
        height: 102.4vw;
        border-width: 0.2666vw;
    }

    .shop-services {
        padding-left: 4.2666vw;
        padding-right: 4.2666vw;
        margin: 12vw auto;
    }

    .shop-services-title {
        font-size: 8vw;
        margin-bottom: 4.2666vw;
    }

    .shop-services-subtitle {
        margin-bottom: 17.0666vw;
        font-size: 3.7333vw;
    }

    .shop-services-list {
        gap: 25.6vw;
    }

    .shop-article {
        flex-direction: column;
        gap: 8.5333vw;
    }

    .shop-article-desc {
        font-size: 3.5vw;
    }

    /* スマホでは画像が先、情報が後 */
    .shop-article-info-a,
    .shop-article-info-b {
        order: 2;
        width: 100%;
        gap: 3vw;
    }

    .shop-article-images-a,
    .shop-article-images-b {
        order: 1;
        width: 100%;
        gap: 4.2666vw;
    }

    .shop-article-feature {
        gap: 1vw;
        font-size: 3vw;
    }

    .shop-btn-text {
        font-size: 4vw;
    }

    .shop-article-tags {
        gap: 3.2vw;
        margin-bottom: 2.1333vw;
    }

    .shop-article-floor {
        padding-left: 3.2vw;
        padding-right: 3.2vw;
        padding-top: 1.0666vw;
        padding-bottom: 1.0666vw;
        font-size: 3.2vw;
    }

    .shop-article-category {
        font-size: 3.7333vw;
    }

    .shop-article-name {
        font-size: 8vw;
    }

    .shop-article-features {
        gap: 4.2666vw;
        font-size: 3.7333vw;
        padding-top: 2.1333vw;
        padding-bottom: 2.1333vw;
    }

    .shop-feature-icon {
        font-size: 4.8vw;
    }

    .shop-article-btn-wrap {
        padding-top: 2.1333vw;
    }

    .shop-article-btn {
        height: 12.8vw;
        padding-left: 8.5333vw;
        padding-right: 8.5333vw;
        border-width: 0.2666vw;
        font-size: 3.7333vw;
    }

    .shop-btn-icon {
        margin-left: 2.1333vw;
    }

    .shop-article-img-wrap-mt,
    .shop-article-img-wrap-mb {
        border-radius: 4.2666vw;
        box-shadow: 0 2.6666vw 4vw -0.8vw rgba(0, 0, 0, 0.1);
    }

    .shop-article-img-wrap-mt {
        margin-top: 8.5333vw;
        margin-bottom: 0;
    }

    .shop-article-img-wrap-mb {
        margin-bottom: 8.5333vw;
        margin-top: 0;
    }


    .ev-main {
        max-width: 100vw;
        gap: 10.666vw;
        padding-top: 10.666vw;
    }

    .ev-header {
        gap: 4.266vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ev-title {
        font-size: 8vw;
    }

    .ev-desc {
        font-size: 4.266vw;
        max-width: 100%;
    }

    .ev-hero-wrapper {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ev-hero-container {
        aspect-ratio: 16 / 9;
        border-radius: 4.266vw;
    }

    .ev-about-wrapper {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ev-about-container {
        flex-direction: column;
        border-radius: 6.4vw;
        border-width: 0.266vw;
    }

    .ev-about-left {
        padding: 8.533vw;
        gap: 6.4vw;
    }

    .ev-about-badge {
        padding-left: 3.2vw;
        padding-right: 3.2vw;
        padding-top: 1.066vw;
        padding-bottom: 1.066vw;
        margin-bottom: 4.266vw;
        font-size: 3.2vw;
    }

    .ev-about-title {
        font-size: 8vw;
        margin-bottom: 2.133vw;
    }

    .ev-about-subtitle {
        font-size: 4.8vw;
    }

    .ev-about-p {
        margin-bottom: 4.266vw;
        font-size: 3.733vw;
    }

    .ev-about-right {
        width: 100%;
        padding: 8.533vw;
        gap: 6.4vw;
    }

    .ev-about-blur-tr {
        margin-right: -10.666vw;
        margin-top: -10.666vw;
        width: 42.666vw;
        height: 42.666vw;
        filter: blur(8.533vw);
    }

    .ev-about-blur-bl {
        margin-left: -10.666vw;
        margin-bottom: -10.666vw;
        width: 42.666vw;
        height: 42.666vw;
        filter: blur(8.533vw);
    }

    .ev-about-features {
        gap: 6.4vw;
    }

    .ev-feature {
        gap: 4.266vw;
    }

    .ev-feature-icon-wrapper {
        padding: 3.2vw;
        border-radius: 4.266vw;
    }

    .ev-feature-icon {
        font-size: 6.4vw;
    }

    .ev-feature-title {
        font-size: 4.8vw;
    }

    .ev-feature-desc {
        font-size: 3.733vw;
        margin-top: 1.066vw;
    }

    .ev-content-wrapper {
        gap: 8.533vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ev-controls {
        flex-direction: column;
        align-items: stretch;
        gap: 4.266vw;
    }

    .ev-filter-group {
        gap: 2.133vw;
    }

    .ev-filter-btn {
        height: 10.666vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ev-filter-btn[data-state="default"] {
        border-width: 0.266vw;
    }

    .ev-filter-text {
        font-size: 3.733vw;
    }

    .ev-search-wrapper {
        margin-left: 0;
    }

    .ev-search-label {
        height: 12.8vw;
    }

    .ev-search-icon-wrapper {
        padding-left: 4.266vw;
    }

    .ev-search-icon {
        font-size: 6.4vw;
    }

    .ev-search-input {
        padding-left: 2.133vw;
        padding-right: 4.266vw;
        font-size: 4.266vw;
    }

    .ev-grid {
        grid-template-columns: repeat(1, 1fr);
        gap: 8.533vw;
    }

    .ev-card {
        gap: 4.266vw;
        border-width: 0.266vw;
        border-radius: 6.4vw;
        padding: 4.266vw;
    }

    .ev-card-image {
        border-radius: 4.266vw;
    }

    .ev-card-info {
        gap: 1.066vw;
    }

    .ev-card-category {
        font-size: 3.733vw;
    }

    .ev-card-title {
        font-size: 5.333vw;
    }

    .ev-card-desc {
        font-size: 3.733vw;
    }

    .ev-card-meta {
        gap: 4.266vw;
    }

    .ev-meta-item {
        gap: 1.6vw;
    }

    .ev-meta-icon {
        font-size: 4.266vw;
    }

    .ev-meta-text {
        font-size: 3.733vw;
    }

    .fm-main {
        max-width: 100%;
        gap: 8vw;
        margin-top: 8vw;
    }

    .fm-intro {
        gap: 4.8vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .fm-intro-headings {
        margin-bottom: 2.133vw;
    }

    .fm-intro-sub {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .fm-intro-title {
        font-size: 9.6vw;
        margin-bottom: 2.133vw;
    }

    .fm-intro-ja {
        font-size: 4.8vw;
    }

    .fm-intro-desc {
        font-size: 4.266vw;
        max-width: 100%;
    }

    .fm-br-sm {
        display: block;
    }

    .fm-br-md {
        display: none;
    }

    .fm-concept {
        max-width: 91.466vw;
        padding: 6.4vw;
        border-radius: 4.266vw;
    }

    .fm-concept-inner {
        gap: 3.2vw;
    }

    .fm-concept-badge {
        padding-left: 3.2vw;
        padding-right: 3.2vw;
        padding-top: 1.066vw;
        padding-bottom: 1.066vw;
        font-size: 3.2vw;
    }

    .fm-concept-title {
        font-size: 6.4vw;
        margin-bottom: 2.133vw;
    }

    .fm-concept-desc {
        font-size: 4.266vw;
        max-width: 100%;
    }

    .fm-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 6.4vw;
        margin-top: 4.266vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .fm-grid-left {
        grid-column: span 1 / span 1;
        gap: 6.4vw;
        order: 2;
    }

    .fm-floor-card {
        padding: 6.4vw;
        gap: 4.8vw;
        border-radius: 4.266vw;
    }

    .fm-floor-header {
        gap: 3.2vw;
        padding-bottom: 3.2vw;
    }

    .fm-floor-icon-1f,
    .fm-floor-icon-2f {
        width: 10.666vw;
        height: 10.666vw;
        font-size: 4.266vw;
    }

    .fm-floor-title {
        font-size: 6.4vw;
    }

    .fm-shop {
        flex-direction: column;
        gap: 4.266vw;
    }

    .fm-shop-border {
        flex-direction: column;
        gap: 4.266vw;
        padding-top: 4.266vw;
    }

    .fm-shop-img-wrapper,
    .fm-shop-img-wrapper.sm {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-radius: 3.2vw;
    }

    .fm-shop-info {
        gap: 2.133vw;
    }

    .fm-shop-name {
        font-size: 5.333vw;
    }

    .fm-shop-name-ja {
        font-size: 3.733vw;
        margin-left: 2.133vw;
    }

    .fm-shop-desc {
        font-size: 3.733vw;
    }

    .fm-shop-tags {
        gap: 2.133vw;
        margin-top: 2.133vw;
    }

    .fm-shop-tag {
        padding-left: 3.2vw;
        padding-right: 3.2vw;
        padding-top: 1.066vw;
        padding-bottom: 1.066vw;
        font-size: 3.2vw;
    }

    .fm-floor-footer {
        margin-top: 2.133vw;
        padding-top: 4.266vw;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 3.2vw;
        font-size: 3.733vw;
    }

    .fm-footer-item {
        gap: 2.133vw;
    }

    .fm-floor-shops {
        gap: 6.4vw;
    }

    .fm-shop-info-sm {
        gap: 1.066vw;
    }

    .fm-shop-name-sm {
        font-size: 4.8vw;
    }

    .fm-shop-name-sm-dark {
        font-size: 4.8vw;
    }

    .fm-shop-name-ja-sm {
        font-size: 3.733vw;
        margin-left: 2.133vw;
    }

    .fm-shop-cat {
        font-size: 3.2vw;
        margin-bottom: 1.066vw;
    }

    .fm-shop-desc-sm {
        font-size: 3.733vw;
    }

    .fm-grid-right {
        grid-column: span 1 / span 1;
        order: 1;
    }

    .fm-sticky-box {
        position: static;
        gap: 4.266vw;
    }

    .fm-map-card {
        border-radius: 4.266vw;
        aspect-ratio: 5 / 4;
        padding-bottom: 18vw;
    }

    .fm-map-nav-inner {
        padding: 3.2vw;
        border-radius: 3.2vw;
    }

    .fm-nav-btn-active {
        gap: 2.133vw;
    }

    .fm-nav-icon-active,
    .fm-nav-icon {
        width: 8.533vw;
        height: 8.533vw;
    }

    .fm-nav-sub-active,
    .fm-nav-sub {
        font-size: 2.666vw;
    }

    .fm-nav-title-active,
    .fm-nav-title {
        font-size: 3.2vw;
    }

    .fm-nav-divider {
        height: 6.4vw;
    }

    .fm-nav-btn {
        gap: 2.133vw;
    }

    .fm-location-box {
        padding: 4.266vw;
        border-radius: 4.266vw;
    }

    .fm-location-text {
        font-size: 3.733vw;
        gap: 2.133vw;
    }

    .ac-hero {
        height: 106.666vw;
    }

    .ac-hero-content {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ac-hero-subtitle {
        font-size: 3.733vw;
        margin-bottom: 4.266vw;
    }

    .ac-hero-title {
        font-size: 10.666vw;
        margin-bottom: 6.4vw;
    }

    .ac-hero-divider {
        height: 0.266vw;
        width: 21.333vw;
        margin-bottom: 6.4vw;
    }

    .ac-hero-text {
        font-size: 4.266vw;
    }

    .ac-br-sm {
        display: inline;
    }

    .ac-br-md {
        display: none;
    }

    .ac-origin {
        padding-top: 12.8vw;
        padding-bottom: 12.8vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ac-origin-bg-blur {
        width: 68.266vw;
        height: 68.266vw;
        filter: blur(12.8vw);
    }

    .ac-origin-inner {
        max-width: 100%;
    }

    .ac-origin-icon-wrap {
        padding: 3.2vw;
        margin-bottom: 6.4vw;
    }

    .ac-origin-icon {
        font-size: 6.4vw;
    }

    .ac-origin-title {
        font-size: 6.4vw;
        margin-bottom: 8.533vw;
    }

    .ac-origin-text-wrap {
        gap: 6.4vw;
        text-align: left;
    }

    .ac-origin-p {
        font-size: 3.733vw;
    }

    .ac-origin-p-highlight {
        font-size: 4.266vw;
        margin-top: 4.266vw;
    }

    .ac-info-sec {
        padding-top: 12.8vw;
        padding-bottom: 12.8vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .ac-info-inner {
        max-width: 100%;
        gap: 12.8vw;
    }

    .ac-info-grid {
        grid-template-columns: 1fr;
        gap: 8.533vw;
    }

    .ac-map-area {
        min-height: 80vw;
        order: 2;
    }

    .ac-details-area {
        order: 1;
    }

    .ac-map-bg {
        border-radius: 4.266vw;
    }

    .ac-details-card {
        border-width: 0.266vw;
        border-radius: 4.266vw;
        padding: 6.4vw;
        gap: 6.4vw;
    }

    .ac-details-header {
        border-left-width: 1.066vw;
        padding-left: 3.2vw;
    }

    .ac-details-label {
        font-size: 3.2vw;
        margin-bottom: 1.066vw;
    }

    .ac-details-name {
        font-size: 5.333vw;
    }

    .ac-details-item-title-wrap {
        gap: 2.133vw;
        margin-bottom: 2.133vw;
    }

    .ac-details-icon {
        font-size: 5.333vw;
    }

    .ac-details-item-title {
        font-size: 3.2vw;
    }

    .ac-details-item-text {
        font-size: 3.733vw;
        padding-left: 7.466vw;
    }

    .ac-details-item-text-bold {
        font-size: 3.733vw;
        padding-left: 7.466vw;
    }

    .ac-map-btn {
        margin-top: 2.133vw;
        padding-top: 3.2vw;
        padding-bottom: 3.2vw;
        border-width: 0.266vw;
        border-radius: 2.133vw;
        gap: 2.133vw;
    }

    .ac-map-btn-text {
        font-size: 3.733vw;
    }

    .ac-map-btn-icon {
        font-size: 4.8vw;
    }

    .ac-trans-header {
        margin-bottom: 8.533vw;
    }

    .ac-trans-subtitle {
        font-size: 3.2vw;
        margin-bottom: 2.133vw;
    }

    .ac-trans-title {
        font-size: 6.4vw;
    }

    .ac-trans-divider {
        width: 12.8vw;
        height: 1.066vw;
        margin-top: 4.266vw;
    }

    .ac-trans-grid {
        grid-template-columns: 1fr;
        gap: 6.4vw;
    }

    .ac-trans-card {
        border-width: 0.266vw;
        border-radius: 4.266vw;
        padding: 6.4vw;
    }

    .ac-trans-icon-wrap {
        width: 17.066vw;
        height: 17.066vw;
        margin-bottom: 4.266vw;
    }

    .ac-trans-icon {
        font-size: 8.533vw;
    }

    .ac-trans-card-title {
        font-size: 4.8vw;
        margin-bottom: 4.266vw;
    }

    .ac-trans-card-divider {
        border-top-width: 0.266vw;
        margin-bottom: 4.266vw;
    }

    .ac-trans-card-text {
        font-size: 3.733vw;
    }

    .ac-trans-card-text-highlight {
        margin-top: 2.133vw;
    }

    .rc-hero {
        min-height: 160vw;
    }

    .rc-hero-content {
        max-width: 100%;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
        padding-top: 16vw;
        padding-bottom: 16vw;
    }

    .rc-hero-badge {
        padding-top: 1.066vw;
        padding-bottom: 1.066vw;
        padding-left: 3.2vw;
        padding-right: 3.2vw;
        font-size: 3.2vw;
        margin-bottom: 6.4vw;
    }

    .rc-hero-title {
        font-size: 9.6vw;
        margin-bottom: 6.4vw;
    }

    .rc-br-sp {
        display: block;
    }

    .rc-br-pc {
        display: none;
    }

    .rc-hero-desc {
        font-size: 4.266vw;
        margin-bottom: 10.666vw;
    }

    .rc-hero-btn {
        padding-top: 4.266vw;
        padding-bottom: 4.266vw;
        padding-left: 8.533vw;
        padding-right: 8.533vw;
        font-size: 4.266vw;
    }

    .rc-concept {
        max-width: 100%;
        padding-top: 21.333vw;
        padding-bottom: 21.333vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .rc-concept-header {
        margin-bottom: 12.8vw;
    }

    .rc-concept-sub {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .rc-concept-title {
        font-size: 8vw;
        margin-bottom: 6.4vw;
    }

    .rc-concept-line {
        width: 17.066vw;
        height: 1.066vw;
    }

    .rc-concept-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12.8vw;
    }

    .rc-concept-img-wrap {
        height: 80vw;
        border-radius: 4.266vw;
    }

    .rc-concept-img-overlay {
        padding: 8.533vw;
    }

    .rc-concept-img-text {
        font-size: 3.733vw;
    }

    .rc-concept-texts {
        gap: 6.4vw;
    }

    .rc-concept-item-title {
        gap: 2vw;
        font-size: 4.8vw;
        margin-bottom: 3.2vw;
    }

    .rc-concept-icon {
        font-size: 6.4vw;
    }

    .rc-concept-item-desc {
        font-size: clamp(16px, 3.5vw, 3.5vw);
        line-height: 1.8;
    }

    .rc-concept-note {
        margin-top: 4.266vw;
        padding: 4.266vw;
        border-radius: 3.2vw;
    }

    .rc-concept-note-text {
        font-size: 3.733vw;
    }

    .rc-values {
        padding-top: 21.333vw;
        padding-bottom: 21.333vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .rc-values-inner {
        max-width: 100%;
    }

    .rc-values-header {
        margin-bottom: 17.066vw;
    }

    .rc-values-title {
        font-size: 8vw;
        margin-bottom: 4.266vw;
    }

    .rc-values-desc {
        font-size: 3.733vw;
        max-width: 100%;
    }

    .rc-values-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 8.533vw;
    }

    .rc-value-card {
        padding: 8.533vw;
        border-radius: 4.266vw;
    }

    .rc-value-icon-wrap {
        width: 17.066vw;
        height: 17.066vw;
        margin-bottom: 6.4vw;
    }

    .rc-value-icon {
        font-size: 8vw;
    }

    .rc-value-card-title {
        font-size: 5.333vw;
        margin-bottom: 3.2vw;
    }

    .rc-value-card-desc {
        font-size: 3.733vw;
    }

    .rc-jobs {
        max-width: 100%;
        padding-top: 21.333vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .rc-jobs-header {
        margin-bottom: 12.8vw;
    }

    .rc-jobs-sub {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .rc-jobs-title {
        font-size: 8vw;
        margin-bottom: 6.4vw;
    }

    .rc-jobs-desc {
        font-size: 3.733vw;
        max-width: 100%;
    }

    .rc-jobs-list {
        gap: 4.266vw;
    }

    .rc-job-item {
        border-radius: 3.2vw;
    }

    .rc-job-head {
        padding: 6.4vw;
    }

    .rc-job-head-left {
        gap: 4.266vw;
        flex-wrap: wrap;
    }

    .rc-job-badge-a,
    .rc-job-badge-b,
    .rc-job-badge-c {
        padding-left: 3.2vw;
        padding-right: 3.2vw;
        padding-top: 1.066vw;
        padding-bottom: 1.066vw;
        font-size: 3.2vw;
        border-radius: 1.6vw;
    }

    .rc-job-title {
        font-size: 4.266vw;
        text-align: left;
        padding-right: 3vw;
    }

    .rc-job-arrow {
        font-size: 6.4vw;
    }

    .rc-job-body-inner {
        padding: 6.4vw;
    }

    .rc-job-body-desc {
        font-size: 3.733vw;
        margin-bottom: 4.266vw;
    }

    .rc-job-body-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 6.4vw;
        margin-top: 4.266vw;
    }

    .rc-job-body-title {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .rc-job-body-li {
        font-size: 3.733vw;
        margin-bottom: 1.066vw;
    }

    .rc-process {
        max-width: 100%;
        padding-top: 21.333vw;
        padding-bottom: 21.333vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .rc-process-inner {
        border-radius: 6.4vw;
        padding: 8.533vw;
    }

    .rc-process-title {
        font-size: 6.4vw;
        margin-bottom: 10.666vw;
    }

    .rc-process-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 8.533vw;
    }

    .rc-process-line {
        display: none;
    }

    .rc-process-step {
        gap: 4.266vw;
        padding: 4.266vw;
        border-radius: 3.2vw;
    }

    .rc-process-icon-wrap {
        width: 15vw;
        height: 15vw;
    }

    .rc-process-icon {
        font-size: 6vw;
    }

    .rc-process-step-title {
        font-size: 4.8vw;
    }

    .rc-process-step-desc {
        font-size: 3.733vw;
    }

    .rc-process-footer {
        margin-top: 12.8vw;
    }

    .rc-process-btn {
        font-size: 4.8vw;
        padding-top: 4.266vw;
        padding-bottom: 4.266vw;
        padding-left: 12.8vw;
        padding-right: 12.8vw;
    }

    .rc-process-note {
        margin-top: 4.266vw;
        font-size: 3.2vw;
    }

    .shop-mv-mainvisual {
        min-height: 160vw;
    }

    .shop-mv-content {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
        max-width: 100%;
    }

    .shop-mv-subtitle {
        font-size: 3.733vw;
        margin-bottom: 4.266vw;
    }

    .shop-mv-title {
        font-size: 8vw;
        margin-bottom: 6.4vw;
        text-shadow: 0 0.533vw 1.066vw rgba(0, 0, 0, 0.5);
    }

    .shop-mv-desc {
        font-size: 4.5vw;
        max-width: 100%;
        margin-bottom: 10.666vw;
        text-shadow: 0 0.533vw 1.066vw rgba(0, 0, 0, 0.5);
    }

    .shop-mv-btn-wrap {
        flex-direction: column;
        gap: 4.266vw;
    }

    .shop-mv-btn {
        padding-left: 8.533vw;
        padding-right: 8.533vw;
        padding-top: 3.2vw;
        padding-bottom: 3.2vw;
        border-width: 0.266vw;
        border-radius: 0.533vw;
        backdrop-filter: blur(1.066vw);
    }

    .shop-mv-btn-text {
        font-size: 4.266vw;
    }

    .shop-mv-scroll {
        bottom: 10.666vw;
        margin-left: -4vw;
    }

    .shop-mv-scroll-icon {
        font-size: 8vw;
    }

    .rlk-about {
        padding-top: 12.8vw;
        padding-bottom: 12.8vw;
    }

    .rlk-about-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .rlk-about-grid {
        grid-template-columns: 1fr;
        gap: 8.533vw;
    }

    .rlk-about-deco-tl {
        top: -2.133vw;
        left: -2.133vw;
        width: 12.8vw;
        height: 12.8vw;
        border-top-width: 0.266vw;
        border-left-width: 0.266vw;
    }

    .rlk-about-img-wrap {
        border-radius: 2.133vw;
    }

    .rlk-about-deco-br {
        bottom: -2.133vw;
        right: -2.133vw;
        width: 12.8vw;
        height: 12.8vw;
        border-bottom-width: 0.266vw;
        border-right-width: 0.266vw;
    }

    .rlk-about-content {
        gap: 4.266vw;
    }

    .rlk-about-badge-wrap {
        padding-bottom: 1.066vw;
        border-bottom-width: 0.266vw;
    }

    .rlk-about-badge {
        font-size: 3.2vw;
    }

    .rlk-about-title {
        font-size: 6.4vw;
    }

    .rlk-about-desc {
        font-size: 3.733vw;
    }

    .rlk-about-features {
        grid-template-columns: 1fr;
        gap: 3.2vw;
        padding-top: 2.133vw;
    }

    .rlk-feature-icon {
        font-size: 5.333vw;
        margin-top: 0.533vw;
    }

    .rlk-feature-title {
        font-size: 4.266vw;
        margin-bottom: 0.533vw;
    }

    .rlk-feature-desc {
        font-size: 3.2vw;
    }

    .rlk-atmosphere {
        padding-top: 12.8vw;
        padding-bottom: 12.8vw;
    }

    .rlk-atmosphere-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .rlk-atmosphere-header {
        max-width: 100%;
        margin-bottom: 8.533vw;
    }

    .rlk-atmosphere-badge {
        font-size: 3.2vw;
        margin-bottom: 1.6vw;
    }

    .rlk-atmosphere-title {
        font-size: 6.4vw;
        margin-bottom: 3.2vw;
    }

    .rlk-atmosphere-desc {
        font-size: 3.733vw;
    }

    .rlk-atmosphere-grid {
        grid-template-columns: 1fr;
        gap: 6.4vw;
    }

    .rlk-atm-card {
        border-radius: 2.133vw;
    }

    .rlk-atm-img-wrap {
        height: 53.333vw;
    }

    .rlk-atm-content {
        padding: 4.266vw;
    }

    .rlk-atm-title {
        font-size: 4.8vw;
        margin-bottom: 1.6vw;
    }

    .rlk-atm-desc {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .rlk-menu {
        padding-top: 12.8vw;
        padding-bottom: 12.8vw;
    }

    .rlk-menu-bg-circle-tl {
        width: 34.133vw;
        height: 34.133vw;
        filter: blur(4.266vw);
    }

    .rlk-menu-bg-circle-br {
        width: 51.2vw;
        height: 51.2vw;
        filter: blur(4.266vw);
    }

    .rlk-menu-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .rlk-menu-grid {
        flex-direction: column;
        gap: 8.533vw;
    }

    .rlk-menu-content {
        width: 100%;
        gap: 4.266vw;
    }

    .rlk-menu-title {
        font-size: 8vw;
    }

    .rlk-menu-desc {
        font-size: 3.733vw;
    }

    .rlk-menu-list {
        gap: 3.2vw;
        margin-top: 4.266vw;
    }

    .rlk-menu-item {
        gap: 2.133vw;
        padding: 2.133vw;
        border-radius: 1.066vw;
    }

    .rlk-menu-icon-wrap {
        width: 10.666vw;
        height: 10.666vw;
    }

    .rlk-menu-icon {
        font-size: 5.333vw;
    }

    .rlk-menu-item-title {
        font-size: 4.266vw;
    }

    .rlk-menu-item-desc {
        font-size: 3.2vw;
    }

    .rlk-menu-arrow {
        font-size: 5.333vw;
    }

    .rlk-menu-btn-wrap {
        padding-top: 3.2vw;
    }

    .rlk-menu-btn {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
        padding-top: 2.133vw;
        padding-bottom: 2.133vw;
        font-size: 3.733vw;
    }

    .rlk-menu-images {
        width: 100%;
    }

    .rlk-menu-img-grid {
        gap: 3.2vw;
    }

    .rlk-menu-img-a,
    .rlk-menu-img-b {
        height: 34.133vw;
        border-radius: 2.133vw;
    }

    .rlk-menu-img-a {
        margin-top: 6.4vw;
    }

    .nv-concept {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .nv-concept-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .nv-concept-grid {
        grid-template-columns: 1fr;
        gap: 10.666vw;
    }

    .nv-concept-img-wrapper {
        order: 2;
    }

    .nv-concept-img-main-box {
        border-radius: 3.2vw;
        box-shadow: 0 4.266vw 6.4vw rgba(0, 0, 0, 0.25);
    }

    .nv-concept-img-border {
        top: 2.133vw;
        right: 2.133vw;
        bottom: 2.133vw;
        left: 2.133vw;
        border-width: 0.266vw;
        border-radius: 2.133vw;
    }

    .nv-concept-img-sub-box {
        display: none;
    }

    .nv-concept-content {
        order: 1;
    }

    .nv-concept-label {
        font-size: 3.733vw;
        margin-bottom: 3.2vw;
    }

    .nv-concept-title {
        font-size: 7vw;
        margin-bottom: 6.4vw;
    }

    .nv-concept-desc {
        gap: 4.266vw;
    }

    .nv-concept-text {
        font-size: 4.266vw;
    }

    .nv-concept-link-box {
        margin-top: 8.533vw;
    }

    .nv-concept-link {
        font-size: 3.733vw;
    }

    .nv-concept-link-icon {
        margin-left: 2.133vw;
        font-size: 3.733vw;
    }

    .nv-atmosphere {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .nv-atmosphere-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .nv-atmosphere-header {
        margin-bottom: 10.666vw;
    }

    .nv-atmosphere-label {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .nv-atmosphere-title {
        font-size: 8vw;
    }

    .nv-atmosphere-desc {
        margin-top: 3.2vw;
        font-size: 4.266vw;
    }

    .nv-atmosphere-grid {
        grid-template-columns: 1fr;
        gap: 6.4vw;
    }

    .nv-atmosphere-item {
        border-radius: 3.2vw;
    }

    .nv-atmosphere-content {
        padding: 6.4vw;
        transform: translateY(0vw);
    }

    .nv-atmosphere-item-title {
        font-size: 5.333vw;
        margin-bottom: 2.133vw;
    }

    .nv-atmosphere-item-desc {
        font-size: clamp(16px, 3.5vw, 3.5vw);
        opacity: 1;
    }

    .nv-menu {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .nv-menu-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .nv-menu-header {
        margin-bottom: 10.666vw;
    }

    .nv-menu-label {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .nv-menu-title {
        font-size: 8vw;
    }

    .nv-menu-list {
        gap: 4.266vw;
    }

    .nv-menu-item {
        flex-direction: column;
        align-items: flex-start;
        border-bottom-width: 0.266vw;
        padding-bottom: 4.266vw;
    }

    .nv-menu-item-name {
        font-size: 5.333vw;
    }

    .nv-menu-item-desc {
        font-size: 3.733vw;
        margin-top: 1.066vw;
    }

    .nv-menu-item-right {
        margin-left: 0;
        margin-top: 2.133vw;
    }

    .nv-menu-item-price {
        font-size: 4.8vw;
    }

    .nv-menu-btn-box {
        margin-top: 8.533vw;
    }

    .nv-menu-btn {
        border-width: 0.266vw;
        padding-left: 8.533vw;
        padding-right: 8.533vw;
        padding-top: 3.2vw;
        padding-bottom: 3.2vw;
        font-size: 3.733vw;
    }

    .nv-menu-bg-circle-1 {
        width: 68.266vw;
        height: 68.266vw;
        filter: blur(8.533vw);
    }

    .nv-menu-bg-circle-2 {
        width: 102.4vw;
        height: 102.4vw;
        filter: blur(8.533vw);
    }

    .nc-concept {
        padding-top: 10.666vw;
        padding-bottom: 17.066vw;
    }

    .nc-concept-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .nc-concept-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .nc-concept-img-wrapper {
        order: 2;
    }

    .nc-concept-img-left {
        height: 42.666vw;
        border-radius: 2.133vw;
        transform: translateY(4.266vw);
    }

    .nc-concept-img-right {
        height: 42.666vw;
        border-radius: 2.133vw;
    }

    .nc-concept-bg-blur {
        width: 150%;
        height: 100%;
        filter: blur(4.266vw);
    }

    .nc-concept-content {
        order: 1;
        gap: 4.266vw;
    }

    .nc-concept-label {
        font-size: 3.733vw;
    }

    .nc-concept-title {
        font-size: 8vw;
    }

    .nc-concept-line {
        width: 10.666vw;
        height: 0.533vw;
    }

    .nc-concept-desc {
        font-size: 3.733vw;
    }

    .nc-concept-link-box {
        padding-top: 2.133vw;
    }

    .nc-concept-link {
        font-size: 3.733vw;
    }

    .nc-concept-link-icon {
        font-size: 4.8vw;
    }

    .nc-atmosphere {
        padding-top: 10.666vw;
        padding-bottom: 10.666vw;
    }

    .nc-atmosphere-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .nc-atmosphere-header {
        max-width: 100%;
        margin-bottom: 8.533vw;
    }

    .nc-atmosphere-label {
        font-size: 3.733vw;
    }

    .nc-atmosphere-title {
        font-size: 8vw;
        margin-top: 1.066vw;
        margin-bottom: 2.133vw;
    }

    .nc-atmosphere-desc {
        font-size: 3.733vw;
    }

    .nc-atmosphere-grid {
        grid-template-columns: 1fr;
        gap: 4.266vw;
    }

    .nc-atmosphere-item {
        border-radius: 2.133vw;
    }

    .nc-atmosphere-item:nth-child(2),
    .nc-atmosphere-item:nth-child(3) {
        transition-delay: 0s;
    }

    .nc-atmosphere-img {
        height: 53.333vw;
    }

    .nc-atmosphere-overlay {
        padding: 4.266vw;
    }

    .nc-atmosphere-item-title {
        font-size: 5.333vw;
        margin-bottom: 1.066vw;
    }

    .nc-atmosphere-item-desc {
        font-size: 3.2vw;
    }

    .nc-menu {
        padding-top: 10.666vw;
        padding-bottom: 10.666vw;
    }

    .nc-menu-bg-blur {
        width: 42.666vw;
        height: 42.666vw;
        filter: blur(6.4vw);
    }

    .nc-menu-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .nc-menu-grid {
        flex-direction: column-reverse;
        gap: 10vw;
        margin-bottom: 15vw;
    }

    .nc-menu-content {
        width: 100%;
        order: 2;
    }

    .nc-menu-label {
        font-size: 3.733vw;
    }

    .nc-menu-title {
        font-size: 8vw;
        margin-top: 1.066vw;
        margin-bottom: 4.266vw;
    }

    .nc-menu-desc {
        font-size: 3.733vw;
        margin-bottom: 6.4vw;
    }

    .nc-menu-list {
        gap: 2.133vw;
    }

    .nc-menu-item {
        padding: 3.2vw;
        border-radius: 1.066vw;
    }

    .nc-menu-item-left {
        gap: 3.2vw;
    }

    .nc-menu-icon-box {
        padding: 1.6vw;
    }

    .nc-menu-icon {
        font-size: 5.333vw;
    }

    .nc-menu-item-name {
        font-size: 3.733vw;
    }

    .nc-menu-item-sub {
        font-size: 3.2vw;
    }

    .nc-menu-item-price {
        font-size: 4.266vw;
    }

    .nc-menu-btn-box {
        margin-top: 6.4vw;
    }

    .nc-menu-btn {
        padding-left: 6.4vw;
        padding-right: 6.4vw;
        padding-top: 2.133vw;
        padding-bottom: 2.133vw;
        font-size: 3.733vw;
    }

    .nc-menu-img-wrapper {
        width: 100%;
        order: 1;
    }

    .nc-menu-img-left {
        height: 42.666vw;
        border-radius: 2.133vw;
    }

    .nc-menu-img-right {
        height: 42.666vw;
        border-radius: 2.133vw;
        transform: translateY(6.4vw);
    }

    .nc-access {
        padding-top: 10.666vw;
        padding-bottom: 10.666vw;
    }

    .nc-access-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .nc-access-grid {
        grid-template-columns: 1fr;
        gap: 8.533vw;
    }

    .nc-access-title {
        font-size: 8vw;
        margin-bottom: 6.4vw;
    }

    .nc-access-list {
        gap: 4.266vw;
        font-size: 4.266vw;
    }

    .nc-access-item {
        gap: 3.2vw;
    }

    .nc-access-icon {
        margin-top: 0.533vw;
        font-size: 5.333vw;
    }

    .nc-access-item-sub {
        font-size: 3.733vw;
        margin-top: 0.533vw;
    }

    .nc-access-btns {
        margin-top: 8.533vw;
        gap: 3.2vw;

    }

    .nc-access-btn-primary {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
        padding-top: 2.133vw;
        padding-bottom: 2.133vw;
        font-size: 3.733vw;
    }

    .nc-access-btn-secondary {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
        padding-top: 2.133vw;
        padding-bottom: 2.133vw;
        font-size: 3.733vw;
    }

    .nc-access-btn-primary,
    .nc-access-btn-secondary {
        width: 48%;
    }

    .nc-access-map-wrapper {
        height: 64vw;
        border-radius: 2.133vw;
    }

    .nc-access-map-label {
        padding-left: 4.266vw;
        padding-right: 4.266vw;
        padding-top: 2.133vw;
        padding-bottom: 2.133vw;
        border-radius: 1.066vw;
        font-size: 3.733vw;
    }


    .top-br-pc {
        display: none;
    }

    .top-concept {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .top-concept-deco {
        display: none;
    }

    .top-concept-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .top-concept-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12.8vw;
    }

    .top-concept-img-col {
        order: 2;
    }

    .top-concept-main-wrap {
        border-radius: 3.2vw;
    }

    .top-concept-sub-wrap {
        display: none;
    }

    .top-concept-text-col {
        order: 1;
    }

    .top-concept-label-wrap {
        margin-bottom: 3.2vw;
    }

    .top-concept-label-line {
        width: 6.4vw;
        height: 0.266vw;
    }

    .top-concept-label {
        font-size: 3.733vw;
    }

    .top-concept-title {
        font-size: 8vw;
        margin-bottom: 6.4vw;
    }

    .top-concept-text-1 {
        font-size: 3.733vw;
        margin-bottom: 4.266vw;
    }

    .top-concept-text-2 {
        font-size: 3.733vw;
        margin-bottom: 6.4vw;
    }

    .top-concept-list {
        gap: 3.2vw;
    }

    .top-concept-item {
        gap: 2.133vw;
    }

    .top-concept-icon {
        font-size: 5.333vw;
    }

    .top-concept-item-text {
        font-size: 3.733vw;
    }

    .top-services {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .top-services-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .top-services-header {
        max-width: 100vw;
        margin-bottom: 10.666vw;
    }

    .top-services-label {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .top-services-title {
        font-size: 8vw;
        margin-bottom: 4.266vw;
    }

    .top-services-desc {
        font-size: 3.733vw;
    }

    .top-services-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 6.4vw;
    }

    .top-service-card {
        border-radius: 3.2vw;
    }

    .top-service-body {
        padding: 6.4vw;
    }

    .top-service-icon-wrap {
        width: 10.666vw;
        height: 10.666vw;
        margin-bottom: 3.2vw;
    }

    .top-service-icon {
        font-size: 5.333vw;
    }

    .top-service-name {
        font-size: 5.333vw;
        margin-bottom: 2.133vw;
    }

    .top-service-text {
        font-size: 3.733vw;
        margin-bottom: 4.266vw;
    }

    .top-service-link {
        font-size: 3.733vw;
    }

    .top-service-link-icon {
        font-size: 3.733vw;
        margin-left: 1.066vw;
    }

    .top-atmosphere {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .top-atmosphere-inner {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .top-atmosphere-header {
        flex-direction: column;
        align-items: flex-start;
        margin-bottom: 8.533vw;
    }

    .top-atmosphere-label {
        font-size: 3.733vw;
        margin-bottom: 2.133vw;
    }

    .top-atmosphere-title {
        font-size: 8vw;
        margin-bottom: 4.266vw;
    }

    .top-atmosphere-desc {
        text-align: left;
        max-width: 100vw;
        font-size: 3.733vw;
    }

    .top-atmosphere-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 40vw;
        gap: 2.133vw;
    }

    .atmosphere-space {
        height: 2vw;
    }

    .top-atm-item-1,
    .top-atm-item-2,
    .top-atm-item-3,
    .top-atm-item-4,
    .top-atm-item-5,
    .top-atm-item-6,
    .top-atm-item-7,
    .top-atm-item-8 {
        border-radius: 2.133vw;
    }

    .top-atm-item-1 {
        grid-column: span 2 / span 2;
        grid-row: span 3 / span 2;
    }

    .top-atm-item-2 {
        grid-column: span 1 / span 1;
        grid-row: span 2 / span 2;
    }

    .top-atm-item-3 {
        grid-column: span 1 / span 1;
        grid-row: span 1 / span 1;
    }

    .top-atm-item-4 {
        grid-column: span 1 / span 1;
        grid-row: span 1 / span 1;
    }

    .top-atm-item-5 {
        grid-column: span 2 / span 2;
        grid-row: span 3 / span 2;
    }

    .top-atm-item-6 {
        grid-column: span 1 / span 1;
        grid-row: span 2 / span 2;
    }

    .top-atm-item-7 {
        grid-column: span 1 / span 1;
        grid-row: span 1 / span 1;
    }

    .top-atm-item-8 {
        grid-column: span 1 / span 1;
        grid-row: span 1 / span 1;
    }

    .top-atm-text-wrap-1,
    .top-atm-text-wrap-2,
    .top-atm-text-wrap-3,
    .top-atm-text-wrap-4,
    .top-atm-text-wrap-5,
    .top-atm-text-wrap-6,
    .top-atm-text-wrap-7,
    .top-atm-text-wrap-8 {
        bottom: 3.2vw;
        left: 3.2vw;
    }

    .top-atm-text-1,
    .top-atm-text-2,
    .top-atm-text-3,
    .top-atm-text-4,
    .top-atm-text-5,
    .top-atm-text-6,
    .top-atm-text-7,
    .top-atm-text-8 {
        font-size: 3.2vw;
    }

    .top-recruit {
        padding-top: 17.066vw;
        padding-bottom: 17.066vw;
    }

    .top-recruit-content {
        max-width: 100vw;
        padding-left: 4.266vw;
        padding-right: 4.266vw;
    }

    .top-recruit-title {
        font-size: 8vw;
        margin-bottom: 4.266vw;
    }

    .top-recruit-desc {
        font-size: 3.5vw;
        text-align: left;
        margin-bottom: 6.4vw;
    }

    .top-recruit-btn-wrap {
        flex-direction: column;
        gap: 3.2vw;
    }

    .top-recruit-btn-primary,
    .top-recruit-btn-secondary {
        font-size: 3.733vw;
        padding-top: 3.2vw;
        padding-bottom: 3.2vw;
    }

    .line-btn {
        right: 0;
        bottom: 0;
        width: 100vw;
        height: 15vw;
        flex-direction: row;
        border-radius: 0;
        box-shadow: 0 -0.5vw 1vw rgba(0, 0, 0, 0.1);
    }

    .line-btn i {
        font-size: 7vw;
        margin-bottom: 0;
        margin-right: 2vw;
    }

    .line-btn span {
        font-size: 4vw;
    }

    .floating-container {
        right: auto;
        bottom: auto;
        top: 25vw;
        left: 5vw;
        width: 30vw;
    }

    .floating-container span {
        font-size: 3.5vw;
        margin-top: -5vw;
        color: #fff;
    }
}

/* ==========================================================================
     WIDE (>= 1501px) : Fixed px based on 1500px values
     ========================================================================== */
@media (min-width: 1501px) {
    .header {
        height: 80px;
        backdrop-filter: blur(12px);
        border-bottom-width: 1px;
    }

    .header-inner {
        height: 80px;
        max-width: 1536px;
        padding-left: 48px;
        padding-right: 48px;
    }

    .logo-group {
        gap: 8px;
    }

    .logo-icon {
        height: 40px;
        width: 40px;
    }

    .logo-symbol {
        font-size: 24px;
    }

    .logo-text {
        font-size: 20px;
        letter-spacing: -0.2px;
    }

    .pc-nav {
        gap: 40px;
    }

    .nav-link {
        font-size: 14px;
        letter-spacing: 0.75px;
    }

    .header-actions {
        gap: 16px;
    }

    .hero-content {
        padding-left: 64px;
        padding-right: 64px;
    }

    .hero-content-inner {
        max-width: 896px;
        padding-top: 80px;
    }

    .hero-badge {
        gap: 12px;
        border-width: 1px;
        padding-left: 16px;
        padding-right: 16px;
        padding-top: 8px;
        padding-bottom: 8px;
        backdrop-filter: blur(12px);
        margin-bottom: 32px;
    }

    .badge-dot-wrapper,
    .badge-dot-core {
        height: 8px;
        width: 8px;
    }

    .badge-text {
        font-size: 12px;
        letter-spacing: 1.5px;
    }

    .hero-title {
        font-size: 72px;
        letter-spacing: -0.2px;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        margin-bottom: 32px;
    }

    .hero-desc {
        max-width: 576px;
        font-size: 20px;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        margin-bottom: 32px;
    }

    .hero-buttons {
        gap: 16px;
        padding-top: 16px;
    }

    .hero-btn-primary,
    .hero-btn-secondary {
        height: 56px;
        min-width: 180px;
        padding-left: 24px;
        padding-right: 24px;
    }

    .hero-btn-primary:hover .hero-btn-arrow {
        transform: translateX(4px);
    }

    .hero-btn-secondary {
        border-width: 1px;
        backdrop-filter: blur(4px);
    }

    .hero-btn-play {
        font-size: 24px;
    }

    .hero-btn-text,
    .hero-btn-text2 {
        font-size: 14px;
    }

    .scroll-indicator {
        bottom: 40px;
        gap: 8px;
    }

    .scroll-text {
        font-size: 10px;
    }

    .scroll-line {
        height: 48px;
        width: 1px;
    }

    .concept-sec {
        padding-top: 128px;
        padding-bottom: 128px;
    }

    .concept-deco-green {
        top: 160px;
        left: -80px;
        height: 384px;
        width: 384px;
        filter: blur(100px);
    }

    .concept-deco-blue {
        height: 500px;
        width: 500px;
        filter: blur(120px);
    }

    .concept-inner {
        max-width: 1280px;
        padding-left: 48px;
        padding-right: 48px;
    }

    .concept-grid {
        gap: 64px;
    }

    .concept-header {
        margin-bottom: 32px;
    }

    .section-label {
        margin-bottom: 16px;
        font-size: 12px;
    }

    .section-title {
        font-size: 48px;
    }

    .concept-desc-group {
        font-size: 18px;
        margin-bottom: 24px;
    }

    .concept-p {
        margin-bottom: 24px;
    }

    .concept-features {
        padding-top: 16px;
    }

    .feature-list {
        column-gap: 32px;
        row-gap: 32px;
        border-top-width: 1px;
        padding-top: 32px;
    }

    .feature-dt {
        margin-bottom: 8px;
        gap: 8px;
        font-size: 14px;
    }

    .feature-dd {
        font-size: 14px;
    }

    .concept-image-box {
        border-radius: 32px;
        box-shadow: 0 24px 50px -12px rgba(0, 0, 0, 0.25);
    }

    .facilities-sec {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .facilities-inner {
        max-width: 1280px;
        padding-left: 48px;
        padding-right: 48px;
    }

    .facilities-header {
        margin-bottom: 64px;
    }

    .section-title-center {
        font-size: 36px;
    }

    .section-desc-center {
        margin-top: 16px;
    }

    .facilities-grid {
        gap: 24px;
        height: 800px;
    }

    .facility-card-large:hover,
    .facility-card-small:hover {
        transform: translateY(-4px);
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    }

    .facility-card-large,
    .facility-card-small {
        border-radius: 24px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .facility-content {
        padding: 32px;
    }

    .facility-content-small {
        padding: 24px;
    }

    .facility-tag-group {
        margin-bottom: 8px;
        gap: 8px;
    }

    .facility-tag {
        border-radius: 4px;
        padding-left: 8px;
        padding-right: 8px;
        padding-top: 2px;
        padding-bottom: 2px;
        font-size: 12px;
        backdrop-filter: blur(4px);
    }

    .facility-title {
        margin-bottom: 4px;
        font-size: 24px;
    }

    .facility-desc {
        font-size: 14px;
    }

    .facility-title-small {
        margin-bottom: 4px;
        font-size: 20px;
    }

    .facility-desc-small {
        font-size: 12px;
    }

    .news-sec {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .news-inner {
        max-width: 896px;
        padding-left: 24px;
        padding-right: 24px;
    }

    .news-header-row {
        margin-bottom: 48px;
        border-bottom-width: 1px;
        padding-bottom: 16px;
    }

    .view-all-link-pc {
        font-size: 14px;
    }

    .view-all-icon {
        margin-left: 4px;
        font-size: 18px;
    }

    .news-list {
        gap: 16px;
    }

    .news-item {
        gap: 16px;
        border-radius: 16px;
        padding: 24px;
    }

    .news-meta {
        width: 128px;
    }

    .news-date {
        font-size: 14px;
    }

    .news-tag-event,
    .news-tag-news,
    .news-tag-recruit {
        font-size: 12px;
    }

    .news-item-title {
        font-size: 16px;
    }

    .news-arrow-btn {
        padding: 8px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .news-arrow-icon {
        font-size: 14px;
    }

    .access-sec {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .access-inner {
        max-width: 1280px;
        padding-left: 48px;
        padding-right: 48px;
    }

    .access-grid {
        gap: 48px;
    }

    .section-title-mb {
        margin-bottom: 32px;
        font-size: 36px;
    }

    .access-cards {
        gap: 32px;
    }

    .access-card {
        border-radius: 16px;
        padding: 24px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .access-card:hover {
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    }

    .access-icon-wrapper {
        margin-bottom: 16px;
        height: 40px;
        width: 40px;
    }

    .access-card-title {
        font-size: 18px;
    }

    .access-card-desc {
        margin-top: 8px;
        font-size: 14px;
    }

    .access-note {
        font-size: 12px;
    }

    .access-map-area {
        min-height: 400px;
    }

    .footer-sec {
        padding-top: 80px;
        padding-bottom: 40px;
    }

    .footer-inner {
        max-width: 1280px;
        padding-left: 48px;
        padding-right: 48px;
    }

    .footer-grid {
        gap: 48px;
    }

    .footer-links {
        gap: 32px;
    }

    .footer-logo-row {
        gap: 12px;
        margin-bottom: 24px;
    }

    .footer-logo-icon {
        height: 32px;
        width: 32px;
    }

    .footer-symbol {
        font-size: 18px;
    }

    .footer-logo-text {
        font-size: 18px;
    }

    .footer-desc {
        font-size: 14px;
    }

    .footer-link-title {
        margin-bottom: 16px;
        font-size: 14px;
    }

    .footer-ul {
        gap: 12px;
    }

    .footer-a {
        font-size: 14px;
    }

    .social-row {
        gap: 16px;
    }

    .social-btn {
        height: 48px;
        width: 48px;
    }

    .social-text {
        font-size: 12px;
    }

    .footer-bottom {
        margin-top: 80px;
        border-top-width: 1px;
        padding-top: 32px;
    }

    .footer-copy {
        font-size: 12px;
    }

    /**/
    .content-wrapper {
        max-width: 960px;
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .hero-section {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .hero-inner {
        gap: 16px;
    }

    .hero-title {
        font-size: 60px;
    }

    .hero-subtitle {
        font-size: 20px;
    }

    .hero-desc {
        font-size: 18px;
        max-width: 720px;
        margin-top: 16px;
    }

    .about-section {
        width: 100%;
        padding: 90px 150px;
        border-radius: 45px;
    }


    .about-icon {
        width: 60px;
        height: 60px;
    }

    .about-title {
        font-size: 33px;
        margin-bottom: 45px;
    }

    .about-paragraph {
        font-size: 18px;
        margin-bottom: 30px;
    }

    .gallery-section {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .gallery-grid {
        gap: 16px;
        padding: 16px;
    }

    .gallery-large {
        border-radius: 12px;
    }

    .gallery-small {
        border-radius: 12px;
    }

    .philosophy-section {
        gap: 48px;
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .philosophy-header {
        gap: 16px;
    }

    .philosophy-title {
        font-size: 36px;
    }

    .philosophy-desc {
        font-size: 16px;
        max-width: 720px;
    }

    .philosophy-grid {
        gap: 32px;
    }

    .philosophy-card {
        padding: 24px;
        border: 1px solid #e4e9e6;
        border-radius: 12px;
    }

    .philosophy-card:hover {
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .card-icon-wrapper {
        margin-bottom: 16px;
    }

    .material-symbols-outlined {
        font-size: 25px;
    }

    .card-title {
        font-size: 20px;
        margin-bottom: 8px;
    }

    .card-desc {
        font-size: 16px;
    }

    .founder-section {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .founder-box {
        border-radius: 12px;
        padding: 48px 80px;
    }

    .founder-img-wrapper {
        margin-bottom: 24px;
    }

    .founder-img {
        width: 128px;
        height: 128px;
    }

    .founder-content {
        max-width: 672px;
    }

    .founder-title {
        font-size: 24px;
    }

    .founder-quote {
        font-size: 16px;
        margin-top: 16px;
    }

    .founder-name {
        font-size: 16px;
        margin-top: 16px;
    }

    .cta-section {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .cta-box {
        gap: 24px;
        border-radius: 12px;
        padding: 48px 80px;
    }

    .cta-header {
        gap: 8px;
    }

    .cta-title {
        font-size: 30px;
    }

    .cta-desc {
        font-size: 16px;
        max-width: 512px;
    }

    .cta-button {
        min-width: 120px;
        height: 48px;
        padding-left: 24px;
        padding-right: 24px;
        border-radius: 8px;
    }

    .cta-button-text {
        font-size: 16px;
    }

    .shop-main {
        max-width: 1280px;
    }

    .shop-hero {
        padding-top: 64px;
        padding-bottom: 80px;
        padding-left: 32px;
        padding-right: 32px;
    }

    .shop-hero-blur-bg {
        width: 800px;
        height: 800px;
        filter: blur(64px);
    }

    .shop-hero-subtitle {
        margin-bottom: 16px;
        font-size: 14px;
    }

    .shop-hero-title {
        font-size: 48px;
        margin-bottom: 32px;
    }

    .shop-hero-title-large {
        font-size: 60px;
        margin-top: 8px;
    }

    .shop-hero-desc {
        font-size: 18px;
        max-width: 672px;
    }

    .shop-hero-image-area {
        padding-left: 32px;
        padding-right: 32px;
        margin-bottom: 96px;
    }

    .shop-hero-image-wrapper {
        height: 600px;
        border-radius: 16px;
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    }

    .shop-origin {
        padding-left: 32px;
        padding-right: 32px;
        margin-bottom: 128px;
    }

    .shop-origin-card {
        border-radius: 24px;
        padding: 64px;
        box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.05);
        border-width: 1px;
    }

    .shop-origin-card-blur {
        width: 256px;
        height: 256px;
        filter: blur(64px);
    }

    .shop-origin-layout {
        gap: 48px;
    }

    .shop-origin-header {
        margin-bottom: 16px;
    }

    .shop-origin-heading {
        font-size: 30px;
        gap: 12px;
        margin-bottom: 16px;
    }

    .shop-origin-icon {
        font-size: 40px;
    }

    .shop-origin-line {
        height: 4px;
        width: 80px;
    }

    .shop-origin-p {
        margin-bottom: 24px;
    }

    .shop-origin-circle-inner {
        padding: 32px;
        box-shadow: 0 4px 20px -2px rgba(56, 102, 65, 0.1);
        width: 256px;
        height: 256px;
        border-width: 4px;
    }

    .shop-origin-circle-icon {
        font-size: 60px;
        margin-bottom: 12px;
    }

    .shop-origin-circle-en {
        font-size: 14px;
    }

    .shop-origin-circle-line {
        width: 32px;
        height: 1px;
        margin-top: 8px;
        margin-bottom: 8px;
    }

    .shop-origin-circle-ja {
        font-size: 20px;
    }

    .shop-origin-circle-ring-sm {
        width: 320px;
        height: 320px;
        border-width: 1px;
    }

    .shop-origin-circle-ring-lg {
        width: 384px;
        height: 384px;
        border-width: 1px;
    }

    .shop-services {
        padding-left: 32px;
        padding-right: 32px;
        margin-bottom: 48px;
    }

    .shop-services-title {
        font-size: 40px;
        margin-bottom: 16px;
    }

    .shop-services-subtitle {
        margin-bottom: 64px;
        font-size: 14px;
    }

    .shop-services-list {
        gap: 128px;
    }

    .shop-article {
        gap: 64px;
    }

    .shop-article-info-a,
    .shop-article-info-b {
        gap: 24px;
    }

    .shop-article-images-a,
    .shop-article-images-b {
        gap: 16px;
    }

    .shop-article-tags {
        gap: 12px;
        margin-bottom: 8px;
    }

    .shop-article-floor {
        padding-left: 12px;
        padding-right: 12px;
        padding-top: 4px;
        padding-bottom: 4px;
        font-size: 12px;
    }

    .shop-article-category {
        font-size: 14px;
    }

    .shop-article-name {
        font-size: 42px;
    }

    .shop-article-features {
        gap: 16px;
        font-size: 14px;
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .shop-feature-icon {
        font-size: 18px;
    }

    .shop-article-btn-wrap {
        padding-top: 8px;
    }

    .shop-article-btn {
        height: 48px;
        padding-left: 32px;
        padding-right: 32px;
        border-width: 1px;
        font-size: 14px;
    }

    .shop-btn-icon {
        margin-left: 8px;
    }

    .shop-article-img-wrap-mt,
    .shop-article-img-wrap-mb {
        border-radius: 16px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .shop-article-img-wrap-mt {
        margin-top: 32px;
    }

    .shop-article-img-wrap-mb {
        margin-bottom: 32px;
    }

    .ev-main {
        max-width: 960px;
        gap: 64px;
        padding-top: 40px;
    }

    .ev-header {
        gap: 16px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .ev-title {
        font-size: 48px;
    }

    .ev-desc {
        font-size: 16px;
        max-width: 672px;
    }

    .ev-hero-wrapper {
        padding-left: 16px;
        padding-right: 16px;
    }

    .ev-hero-container {
        border-radius: 32px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .ev-about-wrapper {
        padding-left: 16px;
        padding-right: 16px;
    }

    .ev-about-container {
        border-radius: 32px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
        border-width: 1px;
    }

    .ev-about-left {
        padding: 48px;
        gap: 24px;
    }

    .ev-about-badge {
        padding-left: 12px;
        padding-right: 12px;
        padding-top: 4px;
        padding-bottom: 4px;
        margin-bottom: 16px;
        font-size: 14px;
    }

    .ev-about-title {
        font-size: 36px;
        margin-bottom: 8px;
    }

    .ev-about-subtitle {
        font-size: 18px;
    }

    .ev-about-p {
        margin-bottom: 16px;
    }

    .ev-about-right {
        padding: 48px;
        gap: 24px;
    }

    .ev-about-blur-tr {
        margin-right: -64px;
        margin-top: -64px;
        width: 256px;
        height: 256px;
        filter: blur(64px);
    }

    .ev-about-blur-bl {
        margin-left: -64px;
        margin-bottom: -64px;
        width: 256px;
        height: 256px;
        filter: blur(64px);
    }

    .ev-about-features {
        gap: 24px;
    }

    .ev-feature {
        gap: 16px;
    }

    .ev-feature-icon-wrapper {
        padding: 12px;
        border-radius: 24px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .ev-feature-icon {
        font-size: 24px;
    }

    .ev-feature-title {
        font-size: 18px;
    }

    .ev-feature-desc {
        font-size: 14px;
        margin-top: 4px;
    }

    .ev-content-wrapper {
        gap: 48px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .ev-controls {
        gap: 16px;
    }

    .ev-filter-group {
        gap: 8px;
    }

    .ev-filter-btn {
        height: 40px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .ev-filter-btn[data-state="default"] {
        border-width: 1px;
    }

    .ev-filter-text {
        font-size: 14px;
    }

    .ev-search-wrapper {
        min-width: 256px;
    }

    .ev-search-label {
        min-width: 160px;
        height: 48px;
    }

    .ev-search-icon-wrapper {
        padding-left: 16px;
    }

    .ev-search-icon {
        font-size: 24px;
    }

    .ev-search-input {
        padding-left: 8px;
        padding-right: 16px;
        font-size: 16px;
    }

    .ev-grid {
        gap: 32px;
    }

    .ev-card {
        gap: 16px;
        border-width: 1px;
        border-radius: 32px;
        padding: 16px;
    }

    .ev-card:hover {
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .ev-card-image {
        border-radius: 24px;
    }

    .ev-card-info {
        gap: 4px;
    }

    .ev-card-category {
        font-size: 14px;
    }

    .ev-card-title {
        font-size: 18px;
    }

    .ev-card-desc {
        font-size: 14px;
    }

    .ev-card-meta {
        gap: 16px;
    }

    .ev-meta-item {
        gap: 6px;
    }

    .ev-meta-icon {
        font-size: 16px;
    }

    .ev-meta-text {
        font-size: 14px;
    }

    .fm-main {
        gap: 40px;
        margin-top: 40px;
        max-width: 1280px;
    }

    .fm-intro {
        gap: 24px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .fm-intro-headings {
        margin-bottom: 8px;
    }

    .fm-intro-sub {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .fm-intro-title {
        font-size: 48px;
        margin-bottom: 8px;
    }

    .fm-intro-ja {
        font-size: 18px;
    }

    .fm-intro-desc {
        font-size: 16px;
        max-width: 640px;
    }

    .fm-concept {
        border-radius: 24px;
        padding: 48px;
        max-width: 1024px;
        border-width: 1px;
    }

    .fm-concept-inner {
        gap: 16px;
    }

    .fm-concept-badge {
        padding-left: 16px;
        padding-right: 16px;
        padding-top: 4px;
        padding-bottom: 4px;
        font-size: 12px;
        border-width: 1px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .fm-concept-title {
        font-size: 30px;
        margin-bottom: 8px;
    }

    .fm-concept-desc {
        font-size: 18px;
        max-width: 720px;
    }

    .fm-grid {
        gap: 48px;
        margin-top: 16px;
    }

    .fm-grid-left {
        gap: 32px;
    }

    .fm-floor-card {
        gap: 24px;
        padding: 32px;
        border-radius: 24px;
        border-width: 1px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .fm-floor-card:hover {
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }

    .fm-floor-header {
        gap: 16px;
        border-bottom-width: 1px;
        padding-bottom: 16px;
    }

    .fm-floor-icon-1f,
    .fm-floor-icon-2f {
        width: 48px;
        height: 48px;
        font-size: 20px;
    }

    .fm-floor-title {
        font-size: 24px;
    }

    .fm-shop {
        gap: 24px;
    }

    .fm-shop-border {
        gap: 24px;
        padding-top: 24px;
        border-top-width: 1px;
    }

    .fm-shop-img-wrapper {
        width: 160px;
        height: 160px;
        border-radius: 16px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .fm-shop-info {
        gap: 8px;
    }

    .fm-shop-name {
        font-size: 20px;
    }

    .fm-shop-name-ja {
        font-size: 14px;
        margin-left: 8px;
    }

    .fm-shop-desc {
        font-size: 16px;
    }

    .fm-shop-tags {
        gap: 12px;
        margin-top: 12px;
    }

    .fm-shop-tag {
        padding-left: 12px;
        padding-right: 12px;
        padding-top: 4px;
        padding-bottom: 4px;
        font-size: 12px;
        border-width: 1px;
    }

    .fm-floor-footer {
        margin-top: 8px;
        padding-top: 16px;
        border-top-width: 1px;
        gap: 16px;
        font-size: 14px;
    }

    .fm-footer-item {
        gap: 8px;
    }

    .fm-floor-shops {
        gap: 32px;
    }

    .fm-shop-img-wrapper.sm {
        width: 128px;
        height: 128px;
        border-radius: 16px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    .fm-shop-info-sm {
        gap: 4px;
    }

    .fm-shop-name-sm {
        font-size: 18px;
    }

    .fm-shop-name-sm-dark {
        font-size: 18px;
    }

    .fm-shop-name-ja-sm {
        font-size: 14px;
        margin-left: 8px;
    }

    .fm-shop-cat {
        font-size: 12px;
        margin-bottom: 4px;
    }

    .fm-shop-desc-sm {
        font-size: 14px;
    }

    .fm-sticky-box {
        top: 32px;
        gap: 16px;
    }

    .fm-map-card {
        border-radius: 24px;
        border-width: 1px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
    }

    .fm-map-nav {
        bottom: 24px;
        left: 24px;
        right: 24px;
    }

    .fm-map-nav-inner {
        padding: 16px;
        border-radius: 16px;
        box-shadow: 0 20px 25px rgba(0, 0, 0, 0.1);
        border-width: 1px;
    }

    .fm-nav-btn-active {
        gap: 12px;
    }

    .fm-nav-icon-active {
        width: 40px;
        height: 40px;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }

    .fm-nav-sub-active {
        font-size: 12px;
    }

    .fm-nav-title-active {
        font-size: 14px;
    }

    .fm-nav-divider {
        height: 32px;
        width: 1px;
    }

    .fm-nav-btn {
        gap: 12px;
    }

    .fm-nav-icon {
        width: 40px;
        height: 40px;
        border-width: 1px;
    }

    .fm-nav-sub {
        font-size: 12px;
    }

    .fm-nav-title {
        font-size: 14px;
    }

    .fm-location-box {
        padding: 24px;
        border-radius: 24px;
        border-width: 1px;
    }

    .fm-location-text {
        font-size: 14px;
        gap: 12px;
    }

    .ac-hero {
        height: 600px;
        min-height: 400px;
    }

    .ac-hero-content {
        padding-left: 16px;
        padding-right: 16px;
    }

    .ac-hero-subtitle {
        font-size: 16px;
        margin-bottom: 16px;
    }

    .ac-hero-title {
        font-size: 60px;
        margin-bottom: 24px;
    }

    .ac-hero-divider {
        height: 1px;
        width: 80px;
        margin-bottom: 24px;
    }

    .ac-hero-text {
        font-size: 18px;
    }

    .ac-origin {
        padding-top: 96px;
        padding-bottom: 96px;
        padding-left: 80px;
        padding-right: 80px;
    }

    .ac-origin-bg-blur {
        width: 256px;
        height: 256px;
        filter: blur(45px);
    }

    .ac-origin-inner {
        max-width: 896px;
    }

    .ac-origin-icon-wrap {
        padding: 12px;
        margin-bottom: 24px;
    }

    .ac-origin-icon {
        font-size: 24px;
    }

    .ac-origin-title {
        font-size: 30px;
        margin-bottom: 32px;
    }

    .ac-origin-text-wrap {
        gap: 24px;
    }

    .ac-origin-p {
        font-size: 16px;
    }

    .ac-origin-p-highlight {
        font-size: 18px;
        margin-top: 32px;
    }

    .ac-info-sec {
        padding-top: 80px;
        padding-bottom: 80px;
        padding-left: 80px;
        padding-right: 80px;
    }

    .ac-info-inner {
        max-width: 1280px;
        gap: 80px;
    }

    .ac-info-grid {
        gap: 48px;
    }

    .ac-map-area {
        min-height: 400px;
    }

    .ac-map-bg {
        border-radius: 16px;
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    }

    .ac-details-card {
        border-width: 1px;
        border-radius: 16px;
        padding: 40px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        gap: 32px;
    }

    .ac-details-header {
        border-left-width: 4px;
        padding-left: 16px;
    }

    .ac-details-label {
        font-size: 14px;
        margin-bottom: 4px;
    }

    .ac-details-name {
        font-size: 20px;
    }

    .ac-details-item-title-wrap {
        gap: 8px;
        margin-bottom: 8px;
    }

    .ac-details-icon {
        font-size: 20px;
    }

    .ac-details-item-title {
        font-size: 14px;
    }

    .ac-details-item-text {
        font-size: 16px;
        padding-left: 28px;
    }

    .ac-details-item-text-bold {
        font-size: 16px;
        padding-left: 28px;
    }

    .ac-map-btn {
        margin-top: 8px;
        padding-top: 12px;
        padding-bottom: 12px;
        border-width: 1px;
        border-radius: 8px;
        gap: 8px;
    }

    .ac-map-btn-text {
        font-size: 14px;
    }

    .ac-map-btn-icon {
        font-size: 18px;
    }

    .ac-map-btn:hover .ac-map-btn-icon {
        transform: translateX(4px);
    }

    .ac-trans-header {
        margin-bottom: 64px;
    }

    .ac-trans-subtitle {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .ac-trans-title {
        font-size: 30px;
    }

    .ac-trans-divider {
        width: 48px;
        height: 4px;
        margin-top: 24px;
    }

    .ac-trans-grid {
        gap: 32px;
    }

    .ac-trans-card-wrap:hover {
        transform: translateY(-4px);
    }

    .ac-trans-card {
        border-width: 1px;
        border-radius: 16px;
        padding: 32px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    }

    .ac-trans-card-wrap:hover .ac-trans-card {
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }

    .ac-trans-icon-wrap {
        width: 64px;
        height: 64px;
        margin-bottom: 24px;
    }

    .ac-trans-icon {
        font-size: 30px;
    }

    .ac-trans-card-title {
        font-size: 18px;
        margin-bottom: 16px;
    }

    .ac-trans-card-divider {
        border-top-width: 1px;
        margin-bottom: 16px;
    }

    .ac-trans-card-text {
        font-size: 14px;
    }

    .ac-trans-card-text-highlight {
        margin-top: 8px;
    }

    .rc-hero {
        min-height: 600px;
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .rc-hero-content {
        max-width: 896px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .rc-hero-badge {
        padding-top: 4px;
        padding-bottom: 4px;
        padding-left: 12px;
        padding-right: 12px;
        border-width: 1px;
        font-size: 12px;
        margin-bottom: 24px;
    }

    .rc-hero-title {
        font-size: 60px;
        margin-bottom: 24px;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }

    .rc-hero-desc {
        font-size: 20px;
        margin-bottom: 40px;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }

    .rc-hero-btn {
        padding-top: 16px;
        padding-bottom: 16px;
        padding-left: 32px;
        padding-right: 32px;
        font-size: 18px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
    }

    .rc-concept {
        max-width: 1000px;
        padding-top: 120px;
        padding-bottom: 120px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .rc-concept-header {
        margin-bottom: 48px;
    }

    .rc-concept-sub {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .rc-concept-title {
        font-size: 36px;
        margin-bottom: 24px;
    }

    .rc-concept-line {
        width: 64px;
        height: 4px;
    }

    .rc-concept-grid {
        gap: 48px;
    }

    .rc-concept-img-wrap {
        height: 400px;
        border-radius: 16px;
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    }

    .rc-concept-img-overlay {
        padding: 32px;
    }

    .rc-concept-img-text {
        font-size: 16px;
    }

    .rc-concept-texts {
        gap: 24px;
    }

    .rc-concept-item-title {
        gap: 8px;
        font-size: 20px;
        margin-bottom: 12px;
    }

    .rc-concept-icon {
        font-size: 24px;
    }

    .rc-concept-item-desc {
        font-size: 16px;
    }

    .rc-concept-note {
        margin-top: 16px;
        padding: 16px;
        border-radius: 12px;
        border-width: 1px;
    }

    .rc-concept-note-text {
        font-size: 14px;
    }

    .rc-values {
        padding-top: 120px;
        padding-bottom: 120px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .rc-values-inner {
        max-width: 1100px;
    }

    .rc-values-header {
        margin-bottom: 64px;
    }

    .rc-values-title {
        font-size: 36px;
        margin-bottom: 16px;
    }

    .rc-values-desc {
        font-size: 16px;
        max-width: 640px;
    }

    .rc-values-grid {
        gap: 32px;
    }

    .rc-value-card {
        padding: 32px;
        border-radius: 16px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        border-width: 1px;
    }

    .rc-value-icon-wrap {
        width: 64px;
        height: 64px;
        margin-bottom: 24px;
    }

    .rc-value-icon {
        font-size: 30px;
    }

    .rc-value-card-title {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .rc-value-card-desc {
        font-size: 14px;
    }

    .rc-jobs {
        max-width: 960px;
        padding-top: 120px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .rc-jobs-header {
        margin-bottom: 48px;
    }

    .rc-jobs-sub {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .rc-jobs-title {
        font-size: 36px;
        margin-bottom: 24px;
    }

    .rc-jobs-desc {
        font-size: 16px;
        max-width: 640px;
    }

    .rc-jobs-list {
        gap: 16px;
    }

    .rc-job-item {
        border-radius: 12px;
        border-width: 1px;
    }

    .rc-job-item[data-open="true"] {
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }

    .rc-job-head {
        padding: 24px;
    }

    .rc-job-head-left {
        gap: 16px;
    }

    .rc-job-badge-a,
    .rc-job-badge-b,
    .rc-job-badge-c {
        padding-left: 12px;
        padding-right: 12px;
        padding-top: 4px;
        padding-bottom: 4px;
        border-radius: 6px;
        font-size: 14px;
    }

    .rc-job-title {
        font-size: 18px;
    }

    .rc-job-arrow {
        font-size: 24px;
    }

    .rc-job-body {
        border-top-width: 1px;
    }

    .rc-job-body-inner {
        padding: 24px;
        padding-top: 8px;
    }

    .rc-job-body-desc {
        font-size: 16px;
        margin-bottom: 16px;
    }

    .rc-job-body-grid {
        gap: 24px;
        margin-top: 16px;
    }

    .rc-job-body-title {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .rc-job-body-li {
        font-size: 14px;
        margin-bottom: 4px;
    }

    .rc-process {
        max-width: 1000px;
        padding-top: 120px;
        padding-bottom: 120px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .rc-process-inner {
        border-radius: 24px;
        padding: 48px;
        border-width: 1px;
    }

    .rc-process-title {
        font-size: 30px;
        margin-bottom: 40px;
    }

    .rc-process-grid {
        gap: 32px;
    }

    .rc-process-line {
        top: 48px;
        height: 2px;
    }

    .rc-process-step {
        gap: 16px;
        padding: 16px;
        border-radius: 12px;
    }

    .rc-process-icon-wrap {
        width: 96px;
        height: 96px;
        border-width: 1px;
    }

    .rc-process-icon {
        font-size: 36px;
    }

    .rc-process-step-title {
        font-size: 18px;
    }

    .rc-process-step-desc {
        font-size: 14px;
    }

    .rc-process-footer {
        margin-top: 48px;
    }

    .rc-process-btn {
        font-size: 18px;
        padding-top: 16px;
        padding-bottom: 16px;
        padding-left: 48px;
        padding-right: 48px;
    }

    .rc-process-btn:hover {
        transform: translateY(-4px);
        box-shadow: 0 16px 20px rgba(0, 0, 0, 0.1);
    }

    .rc-process-note {
        margin-top: 16px;
        font-size: 12px;
    }

    .shop-mv-mainvisual {
        min-height: 600px;
    }

    .shop-mv-content {
        padding-left: 16px;
        padding-right: 16px;
        max-width: 896px;
    }

    .shop-mv-subtitle {
        font-size: 16px;
        margin-bottom: 16px;
    }

    .shop-mv-title {
        font-size: 82px;
        margin-bottom: 24px;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    }

    .shop-mv-desc {
        font-size: 20px;
        max-width: 672px;
        margin-bottom: 40px;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    }

    .shop-mv-btn-wrap {
        gap: 16px;
    }

    .shop-mv-btn {
        padding-left: 32px;
        padding-right: 32px;
        padding-top: 12px;
        padding-bottom: 12px;
        border-width: 1px;
        border-radius: 2px;
        backdrop-filter: blur(4px);
    }

    .shop-mv-btn-text {
        font-size: 16px;
    }

    .shop-mv-scroll {
        bottom: 40px;
        margin-left: -15px;
    }

    .shop-mv-scroll-icon {
        font-size: 30px;
    }

    .rlk-about {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .rlk-about-inner {
        max-width: 1280px;
        padding-left: 32px;
        padding-right: 32px;
    }

    .rlk-about-grid {
        gap: 64px;
    }

    .rlk-about-deco-tl {
        top: -16px;
        left: -16px;
        width: 96px;
        height: 96px;
        border-top-width: 2px;
        border-left-width: 2px;
    }

    .rlk-about-img-wrap {
        border-radius: 16px;
        box-shadow: 0 24px 50px -12px rgba(0, 0, 0, 0.25);
    }

    .rlk-about-deco-br {
        bottom: -16px;
        right: -16px;
        width: 96px;
        height: 96px;
        border-bottom-width: 2px;
        border-right-width: 2px;
    }

    .rlk-about-content {
        gap: 32px;
    }

    .rlk-about-badge-wrap {
        border-bottom-width: 1px;
        padding-bottom: 8px;
    }

    .rlk-about-badge {
        font-size: 14px;
    }

    .rlk-about-title {
        font-size: 36px;
    }

    .rlk-about-desc {
        font-size: 16px;
    }

    .rlk-about-features {
        gap: 24px;
        padding-top: 16px;
    }

    .rlk-feature-item {
        gap: 12px;
    }

    .rlk-feature-icon {
        font-size: 24px;
        margin-top: 4px;
    }

    .rlk-feature-title {
        font-size: 18px;
        margin-bottom: 4px;
    }

    .rlk-feature-desc {
        font-size: 12px;
    }

    .rlk-atmosphere {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .rlk-atmosphere-inner {
        max-width: 1280px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .rlk-atmosphere-header {
        max-width: 720px;
        margin-bottom: 64px;
    }

    .rlk-atmosphere-badge {
        font-size: 14px;
        margin-bottom: 12px;
    }

    .rlk-atmosphere-title {
        font-size: 36px;
        margin-bottom: 24px;
    }

    .rlk-atmosphere-desc {
        font-size: 16px;
    }

    .rlk-atmosphere-grid {
        gap: 32px;
    }

    .rlk-atm-card {
        border-radius: 12px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .rlk-atm-card:hover {
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
        transform: translateY(-4px);
    }

    .rlk-atm-img-wrap {
        height: 256px;
    }

    .rlk-atm-content {
        padding: 32px;
    }

    .rlk-atm-title {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .rlk-atm-desc {
        font-size: 14px;
        margin-bottom: 16px;
    }

    .rlk-menu {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .rlk-menu-bg-circle-tl {
        width: 256px;
        height: 256px;
        filter: blur(32px);
    }

    .rlk-menu-bg-circle-br {
        width: 384px;
        height: 384px;
        filter: blur(32px);
    }

    .rlk-menu-inner {
        max-width: 1280px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .rlk-menu-grid {
        gap: 48px;
    }

    .rlk-menu-content {
        gap: 32px;
    }

    .rlk-menu-title {
        font-size: 48px;
    }

    .rlk-menu-desc {
        font-size: 18px;
    }

    .rlk-menu-list {
        gap: 24px;
        margin-top: 32px;
    }

    .rlk-menu-item {
        gap: 16px;
        padding: 16px;
        border-radius: 8px;
    }

    .rlk-menu-icon-wrap {
        width: 48px;
        height: 48px;
    }

    .rlk-menu-icon {
        font-size: 24px;
    }

    .rlk-menu-item-title {
        font-size: 18px;
    }

    .rlk-menu-item-desc {
        font-size: 14px;
    }

    .rlk-menu-arrow {
        font-size: 24px;
    }

    .rlk-menu-item:hover .rlk-menu-arrow {
        transform: translateX(4px);
    }

    .rlk-menu-btn-wrap {
        padding-top: 24px;
    }

    .rlk-menu-btn {
        padding-left: 32px;
        padding-right: 32px;
        padding-top: 12px;
        padding-bottom: 12px;
        font-size: 14px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .rlk-menu-img-grid {
        gap: 16px;
    }

    .rlk-menu-img-a,
    .rlk-menu-img-b {
        border-radius: 16px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
        height: 256px;
    }

    .rlk-menu-img-a {
        margin-top: 48px;
    }

    .nv-concept {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .nv-concept-inner {
        max-width: 1280px;
        padding-left: 32px;
        padding-right: 32px;
    }

    .nv-concept-grid {
        gap: 64px;
    }

    .nv-concept-img-wrapper {
        transform: translateY(20px);
    }

    .nv-concept-img-main-box {
        border-radius: 16px;
        box-shadow: 0 24px 50px rgba(0, 0, 0, 0.25);
    }

    .nv-concept-img-border {
        top: 16px;
        right: 16px;
        bottom: 16px;
        left: 16px;
        border-width: 1px;
        border-radius: 8px;
    }

    .nv-concept-img-sub-box {
        bottom: -32px;
        right: -32px;
        border-radius: 8px;
        box-shadow: 0 20px 30px rgba(0, 0, 0, 0.1);
        border-width: 4px;
    }

    .nv-concept-content {
        transform: translateY(20px);
    }

    .nv-concept-label {
        font-size: 14px;
        margin-bottom: 16px;
    }

    .nv-concept-title {
        font-size: 30px;
        margin-bottom: 32px;
    }

    .nv-concept-desc {
        gap: 24px;
    }

    .nv-concept-text {
        font-size: 16px;
    }

    .nv-concept-link-box {
        margin-top: 40px;
    }

    .nv-concept-link {
        font-size: 14px;
    }

    .nv-concept-link-icon {
        margin-left: 8px;
        font-size: 14px;
    }

    .nv-concept-link:hover .nv-concept-link-icon {
        transform: translateX(4px);
    }

    .nv-atmosphere {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .nv-atmosphere-inner {
        max-width: 1280px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .nv-atmosphere-header {
        margin-bottom: 64px;
        transform: translateY(20px);
    }

    .nv-atmosphere-label {
        font-size: 14px;
        margin-bottom: 12px;
    }

    .nv-atmosphere-title {
        font-size: 30px;
    }

    .nv-atmosphere-desc {
        margin-top: 16px;
        font-size: 16px;
    }

    .nv-atmosphere-grid {
        gap: 24px;
    }

    .nv-atmosphere-item {
        border-radius: 16px;
        transform: translateY(20px);
    }

    .nv-atmosphere-content {
        padding: 32px;
        transform: translateY(16px);
    }

    .nv-atmosphere-item-title {
        font-size: 20px;
        margin-bottom: 8px;
    }

    .nv-atmosphere-item-desc {
        font-size: 14px;
    }

    .nv-menu {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .nv-menu-inner {
        max-width: 896px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .nv-menu-header {
        margin-bottom: 64px;
    }

    .nv-menu-label {
        font-size: 14px;
        margin-bottom: 12px;
    }

    .nv-menu-title {
        font-size: 30px;
    }

    .nv-menu-list {
        gap: 24px;
    }

    .nv-menu-item {
        border-bottom-width: 1px;
        padding-bottom: 16px;
    }

    .nv-menu-item-name {
        font-size: 20px;
    }

    .nv-menu-item-desc {
        font-size: 14px;
        margin-top: 4px;
    }

    .nv-menu-item-right {
        margin-left: 16px;
    }

    .nv-menu-item-price {
        font-size: 18px;
    }

    .nv-menu-btn-box {
        margin-top: 48px;
    }

    .nv-menu-btn {
        border-width: 1px;
        padding-left: 40px;
        padding-right: 40px;
        padding-top: 12px;
        padding-bottom: 12px;
        font-size: 14px;
    }

    .nv-menu-bg-circle-1 {
        width: 256px;
        height: 256px;
        filter: blur(32px);
    }

    .nv-menu-bg-circle-2 {
        width: 384px;
        height: 384px;
        filter: blur(32px);
    }

    .nc-concept {
        padding-top: 80px;
        padding-bottom: 128px;
    }

    .nc-concept-inner {
        max-width: 1280px;
        padding-left: 32px;
        padding-right: 32px;
    }

    .nc-concept-grid {
        gap: 80px;
    }

    .nc-concept-img-wrapper {
        transform: translateY(20px);
    }

    .nc-concept-img-box-left {
        padding-right: 8px;
    }

    .nc-concept-img-left {
        height: 256px;
        border-radius: 12px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
        transform: translateY(32px);
    }

    .nc-concept-img-box-right {
        padding-left: 8px;
    }

    .nc-concept-img-right {
        height: 256px;
        border-radius: 12px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
    }

    .nc-concept-bg-blur {
        filter: blur(32px);
    }

    .nc-concept-content {
        gap: 24px;
        transform: translateY(20px);
    }

    .nc-concept-label {
        font-size: 14px;
    }

    .nc-concept-title {
        font-size: 33px;
    }

    .nc-concept-line {
        width: 64px;
        height: 4px;
    }

    .nc-concept-desc {
        font-size: 16px;
    }

    .nc-concept-link-box {
        padding-top: 16px;
    }

    .nc-concept-link {
        font-size: 16px;
    }

    .nc-concept-link-icon {
        margin-left: 8px;
        font-size: 20px;
    }

    .nc-concept-link:hover .nc-concept-link-icon {
        transform: translateX(4px);
    }

    .nc-atmosphere {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .nc-atmosphere-inner {
        max-width: 1280px;
        padding-left: 32px;
        padding-right: 32px;
    }

    .nc-atmosphere-header {
        max-width: 720px;
        margin-bottom: 64px;
        transform: translateY(20px);
    }

    .nc-atmosphere-label {
        font-size: 14px;
    }

    .nc-atmosphere-title {
        font-size: 36px;
        margin-top: 8px;
        margin-bottom: 16px;
    }

    .nc-atmosphere-desc {
        font-size: 16px;
    }

    .nc-atmosphere-grid {
        gap: 32px;
    }

    .nc-atmosphere-item {
        border-radius: 16px;
        transform: translateY(20px);
    }

    .nc-atmosphere-img {
        height: 320px;
    }

    .nc-atmosphere-overlay {
        padding: 24px;
    }

    .nc-atmosphere-item-title {
        font-size: 20px;
        margin-bottom: 4px;
    }

    .nc-atmosphere-item-desc {
        font-size: 14px;
    }

    .nc-menu {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .nc-menu-bg-blur {
        width: 256px;
        height: 256px;
        filter: blur(32px);
    }

    .nc-menu-inner {
        max-width: 1280px;
        padding-left: 32px;
        padding-right: 32px;
    }

    .nc-menu-grid {
        gap: 48px;
    }

    .nc-menu-content {
        transform: translateY(20px);
    }

    .nc-menu-label {
        font-size: 14px;
    }

    .nc-menu-title {
        font-size: 36px;
        margin-top: 8px;
        margin-bottom: 24px;
    }

    .nc-menu-desc {
        margin-bottom: 32px;
        font-size: 16px;
    }

    .nc-menu-list {
        gap: 16px;
    }

    .nc-menu-item {
        padding: 16px;
        border-radius: 8px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
        border-width: 1px;
    }

    .nc-menu-item-left {
        gap: 16px;
    }

    .nc-menu-icon-box {
        padding: 8px;
    }

    .nc-menu-icon {
        font-size: 24px;
    }

    .nc-menu-item-name {
        font-size: 16px;
    }

    .nc-menu-item-sub {
        font-size: 14px;
    }

    .nc-menu-item-price {
        font-size: 18px;
    }

    .nc-menu-btn-box {
        margin-top: 32px;
    }

    .nc-menu-btn {
        border-width: 1px;
        padding-left: 32px;
        padding-right: 32px;
        padding-top: 12px;
        padding-bottom: 12px;
        border-radius: 20px;
        font-size: 16px;
    }

    .nc-menu-img-wrapper {
        transform: translateY(20px);
    }

    .nc-menu-img-box-left {
        padding-right: 8px;
    }

    .nc-menu-img-left {
        height: 256px;
        border-radius: 16px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
    }

    .nc-menu-img-box-right {
        padding-left: 8px;
    }

    .nc-menu-img-right {
        height: 256px;
        border-radius: 16px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
        transform: translateY(32px);
    }

    .nc-access {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .nc-access-inner {
        max-width: 1280px;
        padding-left: 32px;
        padding-right: 32px;
    }

    .nc-access-grid {
        gap: 64px;
    }

    .nc-access-content {
        transform: translateY(20px);
    }

    .nc-access-title {
        font-size: 36px;
        margin-bottom: 32px;
    }

    .nc-access-list {
        gap: 24px;
        font-size: 18px;
    }

    .nc-access-item {
        gap: 16px;
    }

    .nc-access-icon {
        margin-top: 4px;
        font-size: 24px;
    }

    .nc-access-item-sub {
        font-size: 16px;
        margin-top: 4px;
    }

    .nc-access-btns {
        margin-top: 40px;
        gap: 16px;
    }

    .nc-access-btn-primary {
        padding-left: 24px;
        padding-right: 24px;
        padding-top: 12px;
        padding-bottom: 12px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
        font-size: 16px;
    }

    .nc-access-btn-secondary {
        border-width: 1px;
        padding-left: 24px;
        padding-right: 24px;
        padding-top: 12px;
        padding-bottom: 12px;
        font-size: 16px;
    }

    .nc-access-btn-primary,
    .nc-access-btn-secondary {
        width: 200px;
    }

    .nc-access-map-wrapper {
        height: 320px;
        border-radius: 12px;
        box-shadow: 0 24px 50px rgba(0, 0, 0, 0.25);
        transform: translateY(20px);
    }

    .nc-access-map-label {
        padding-left: 24px;
        padding-right: 24px;
        padding-top: 12px;
        padding-bottom: 12px;
        border-radius: 8px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
        font-size: 16px;
    }


    .top-concept {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .top-concept-deco {
        top: -80px;
        right: -80px;
        width: 384px;
        height: 384px;
        filter: blur(32px);
    }

    .top-concept-inner {
        max-width: 1280px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .top-concept-grid {
        gap: 64px;
    }

    .top-concept-main-wrap {
        border-radius: 12px;
        box-shadow: 0 24px 50px rgba(0, 0, 0, 0.25);
    }

    .top-concept-sub-wrap {
        bottom: -40px;
        right: -40px;
        border-radius: 12px;
        box-shadow: 0 20px 25px rgba(0, 0, 0, 0.1);
        border-width: 8px;
    }

    .top-concept-label-wrap {
        gap: 8px;
        margin-bottom: 16px;
    }

    .top-concept-label-line {
        height: 1px;
        width: 32px;
    }

    .top-concept-label {
        font-size: 14px;
    }

    .top-concept-title {
        font-size: 36px;
        margin-bottom: 24px;
    }

    .top-concept-text-1,
    .top-concept-text-2 {
        margin-bottom: 24px;
        font-size: 16px;
    }

    .top-concept-list {
        gap: 16px;
    }

    .top-concept-item {
        gap: 12px;
    }

    .top-concept-icon {
        font-size: 24px;
    }

    .top-concept-item-text {
        font-size: 16px;
    }

    .top-services {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .top-services-inner {
        max-width: 1280px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .top-services-header {
        max-width: 720px;
        margin-bottom: 64px;
    }

    .top-services-label {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .top-services-title {
        font-size: 36px;
        margin-bottom: 24px;
    }

    .top-services-desc {
        font-size: 16px;
    }

    .top-services-grid {
        gap: 32px;
    }

    .top-service-card {
        border-radius: 12px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
        border-width: 1px;
    }

    .top-service-card:hover {
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    }

    .top-service-body {
        padding: 32px;
    }

    .top-service-icon-wrap {
        width: 48px;
        height: 48px;
        margin-bottom: 16px;
    }

    .top-service-icon {
        font-size: 24px;
    }

    .top-service-name {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .top-service-text {
        font-size: 14px;
        margin-bottom: 24px;
    }

    .top-service-link {
        font-size: 14px;
    }

    .top-service-link-icon {
        font-size: 14px;
        margin-left: 4px;
    }

    .top-atmosphere {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .top-atmosphere-inner {
        max-width: 1280px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .top-atmosphere-header {
        margin-bottom: 48px;
    }

    .top-atmosphere-label {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .top-atmosphere-title {
        font-size: 36px;
    }

    .top-atmosphere-desc {
        max-width: 448px;
        font-size: 16px;
    }

    .top-atmosphere-grid {
        grid-template-rows: repeat(2, 200px);
        gap: 16px;
    }

    .top-atm-item-1,
    .top-atm-item-2,
    .top-atm-item-3,
    .top-atm-item-4 {
        border-radius: 12px;
    }

    .top-atm-text-wrap-1,
    .top-atm-text-wrap-2,
    .top-atm-text-wrap-3,
    .top-atm-text-wrap-4 {
        bottom: 16px;
        left: 16px;
    }

    .top-atm-text-1,
    .top-atm-text-2,
    .top-atm-text-3,
    .top-atm-text-4 {
        font-size: 14px;
    }

    .top-recruit {
        padding-top: 96px;
        padding-bottom: 96px;
    }

    .top-recruit-content {
        max-width: 896px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .top-recruit-title {
        font-size: 48px;
        margin-bottom: 24px;
    }

    .top-recruit-desc {
        font-size: 18px;
        margin-bottom: 32px;
    }

    .top-recruit-btn-wrap {
        gap: 16px;
    }

    .top-recruit-btn-primary {
        padding-top: 12px;
        padding-bottom: 12px;
        padding-left: 32px;
        padding-right: 32px;
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
        font-size: 16px;
    }

    .top-recruit-btn-secondary {
        border-width: 2px;
        padding-top: 12px;
        padding-bottom: 12px;
        padding-left: 32px;
        padding-right: 32px;
        font-size: 16px;
    }

    .line-btn {
        width: 135px;
        height: 135px;
        border-top-left-radius: 25px;
        box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
    }

    .line-btn i {
        font-size: 52.5px;
        margin-bottom: 7.5px;
        margin-right: 0;
    }

    .line-btn span {
        font-size: 13.5px;
    }

    .floating-container {
        right: 60px;
        bottom: 60px;
        width: 150px;
    }

    .floating-container span {
        font-size: 18px;
        margin-top: -20px;
    }
}



/* =========================================
   スライドショー用スタイル
========================================= */
.nc-atmosphere-slideshow {
    width: 100%;
    height: 100%;
}

/* Slick読み込み前のレイアウト崩れを防ぐ */
.nc-atmosphere-slideshow img.nc-atmosphere-img:not(:first-child) {
    display: none;
}

.nc-atmosphere-slideshow.slick-initialized img.nc-atmosphere-img {
    display: block;
}