@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');

html,
body {
    overflow-x: hidden;
    width: 100%;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.8;
    letter-spacing: 0.05em;
    color: #333;
    -webkit-font-smoothing: antialiased;
}

/* Right click disable */
body {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Swiper adjustments */
.swiper-slide {
    height: auto;
}

.fv-swiper .swiper-slide img {
    width: 100%;
    height: auto;
    object-fit: cover;
    vertical-align: bottom;
}

.gallery-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    vertical-align: bottom;
}

/* Mobile Menu Transition */
#mobile-menu {
    transition: transform 0.3s ease-in-out;
}

#mobile-menu.hidden-menu {
    transform: translateX(100%);
}

#mobile-menu.visible-menu {
    transform: translateX(0);
}

/* Modal */
.modal-overlay {
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Custom Utilities */
.text-justify-custom {
    text-align: justify;
    text-justify: inter-ideograph;
}

/* Smooth Scroll */
html {
    scroll-behavior: smooth;
}