@charset "UTF-8";

/* =========================
   Base
========================= */
* {box-sizing: border-box;}
html {scroll-behavior: smooth;}
body {margin: 0;padding: 0;background: #1f1f1f;color: #fff;font-family: "Noto Sans JP", sans-serif;}
img {display: block;max-width: 100%;height: auto;}
a {color: inherit;text-decoration: none;}


/* =========================
   Header
========================= */
#header.site_header {width: 100%;height: 88px;background: #1e1e1e;border: none;position: relative;z-index: 1000;border-bottom: 0.5px solid #fff;}
#header .inner {max-width: 1480px;height: 100%;margin: 0 auto;padding: 0 56px;display: flex;align-items: center;justify-content: space-between;gap: 40px;}
#header .header_logo {display: block;width: 12%;flex-shrink: 0;max-width: 150px;}
#header .header_logo img {width: 100%;height: auto;}
#header .nav_toggle {display: none;}
#header .header_nav {display: flex;align-items: center;gap: 42px;margin-left: auto;}
#header .header_nav a {font-family: "Oswald", sans-serif;font-size: 18px;font-weight: 700;letter-spacing: 0.08em;color: #fff;}
#header .header_nav a.active {color: #459129;}
#header .nav_sns {display: none;}
#header .header_right {display: flex;align-items: center;gap: 28px;}
#header .header_sns {display: flex;align-items: center;gap: 16px;}
#header .sns_link {display: block;width: 22px;height: 22px;}
#header .sns_link img {width: 100%;height: 100%;object-fit: contain;}
#header .language_switch {display: flex;align-items: center;gap: 2px;font-family: "Oswald", sans-serif;font-size: 14px;font-weight: 700;letter-spacing: 0.05em;color: #fff;}
#header .language_icon {display: none;}
#header .hamburger {display: none;}
#header .nav_bg_logo {display: none;}

@media screen and (max-width: 1024px) {
body {padding-top: 64px;}
#header.site_header {height: 64px;position: fixed;top: 0;left: 0;z-index: 1000;}
#header .inner {padding: 0 24px;}
#header .header_logo {width: 28%;max-width: 110px;}
#header .header_sns {display: none;gap: 12px;}
#header .language_switch {font-size: 15px;}

#header .header_nav {position: fixed;top: 64px;right: -100%;width: 100%;height: calc(100vh - 64px);background: rgba(0, 43, 16, 0.98);display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 34px;transition: right 0.35s ease;z-index: 999;}
#header .header_nav a {font-size: 24px;letter-spacing: 0.1em;}
#header .nav_sns {display: flex;align-items: center;gap: 24px;margin-top: 12px;}
#header .nav_sns a {display: block;width: 28px;height: 28px;}
#header .nav_sns img {width: 100%;height: 100%;object-fit: contain;}
#header .nav_toggle:checked ~ .header_nav {right: 0;}
#header .nav_toggle:checked ~ .header_right .menu_button_icon,
#header .nav_toggle:checked ~ .header_right .menu_button_text {transform: none;}
#header .header_nav {overflow: hidden;}
#header .header_nav > a,#header .nav_sns {position: relative;z-index: 2;}
#header .hamburger.menu_button {display: inline-flex;align-items: center;justify-content: center;gap: 9px;width: auto;height: 40px;padding: 0 18px;border: 1px solid rgba(255,255,255,0.75);border-radius: 999px;color: #fff;font-family: "Oswald", sans-serif;font-size: 14px;font-weight: 700;letter-spacing: 0.08em;line-height: 1;cursor: pointer;transition: opacity 0.3s ease, background 0.3s ease, color 0.3s ease;}
#header .hamburger.menu_button:hover {opacity: 0.65;}
#header .menu_button_icon {position: relative;width: 16px;height: 7px;display: block;}
#header .menu_button_icon span {position: absolute;left: 0;width: 16px;height: 1.5px;background: currentColor;transition: transform 0.3s ease, top 0.3s ease;}
#header .menu_button_icon span:nth-child(1) {top: 0;zw}
#header .menu_button_icon span:nth-child(2) {top: 5px;}
#header .menu_button_text {display: block;text-transform: uppercase;}
#header .nav_toggle:checked ~ .header_right .menu_button_icon span:nth-child(1) {top: 3px;transform: rotate(35deg);}
#header .nav_toggle:checked ~ .header_right .menu_button_icon span:nth-child(2) {top: 3px;transform: rotate(-35deg);}}

@media screen and (max-width: 600px) {
	#header .header_right {gap: 24px;}
	#header .hamburger.menu_button{font-size: 13px;height: 36px;}
	#header .language_switch {font-size: 14px;}
}


/* =========================
   Main Visual
========================= */
#top.main_visual {width: 100%;background: #1f1f1f;color: #fff;overflow: hidden;}
#top .inner {width: 100%;min-height: calc(100svh - 88px);margin: 0;padding: 0;display: grid;grid-template-columns: 25% 75%;position: relative;}
#top .mv_text {background: #1f1f1f;padding: 0 clamp(16px, 3vw, 58px);display: flex;flex-direction: column;justify-content: center;position: relative;z-index: 2;}
#top .mv_since {margin: 0 0 24px;font-family: "EB Garamond", serif;font-size: clamp(20px, 1.2vw, 32px);line-height: 1;letter-spacing: 0.08em;color: #fff;text-align: center;width: 100%;}
#top .mv_logo {width: min(17vw, 280px);margin: 0 auto 58px;}
#top .mv_logo img {width: 100%;height: auto;}
#top .mv_lead {margin: 0;font-family: "Noto Sans JP", sans-serif;font-size: clamp(15px, 1.2vw, 22px);line-height: 1.75;letter-spacing: 0.06em;color: #fff;}
#top .mv_image {width: 100%;height: calc(100svh - 88px);overflow: hidden;}
#top .mv_image img {width: 100%;height: 100%;object-fit: cover;}
#top .mv_badge {width: clamp(180px, 20vw, 320px);position: fixed;right: clamp(28px, 4vw, 72px);bottom: 0;z-index: 50;transition: opacity 0.3s ease, transform 0.3s ease;}
#top .mv_badge_link {display: block;}
#top .mv_badge img {width: 100%;height: auto;}
#top .mv_badge_close {position: absolute;right: 0;top: 0;width: 30px;height: 30px;border: none;border-radius: 50%;background: rgba(0,0,0,0.65);color: #fff;font-size: 20px;line-height: 1;cursor: pointer;display: flex;align-items: center;justify-content: center;}
#top .mv_badge.is-closed {opacity: 0;transform: scale(0.7);pointer-events: none;}
#top .mv_badge_restore {position: fixed;right: clamp(28px, 4vw, 72px);bottom: clamp(36px, 4vw, 86px);z-index: 49;width: 78px;height: 78px;border: none;border-radius: 50%;background: #168021;color: #fff;font-family: "Oswald", sans-serif;font-size: 13px;font-weight: 700;letter-spacing: 0.08em;cursor: pointer;opacity: 0;transform: scale(0.7);pointer-events: none;transition: opacity 0.3s ease, transform 0.3s ease;}
#top .mv_badge_restore.is-show {opacity: 1;transform: scale(1);pointer-events: auto;}

@media screen and (max-width: 1024px) {
#top .inner {display: flex;flex-direction: column;min-height: auto;}
#top .mv_text {width: 100%;padding: 32px 24px;text-align: center;align-items: center;}
#top .mv_since {margin-bottom: 20px;font-size: 16px;}
#top .mv_logo {width: 20%;margin-bottom: 32px;min-width: 200px;}
#top .mv_lead {font-size: 14px;line-height: 1.9;letter-spacing: 0.05em;}
#top .mv_image {width: 100%;height: 70vh;}
#top .mv_badge {width: clamp(185px, 30vw, 350px);right: 2%;bottom: -2%;}
#top .mv_badge_restore {width: 64px;height: 64px;right: 4%;bottom: 4%;font-size: 11px;}
#top .mv_badge_close {width: 26px;height: 26px;font-size: 18px;}}

@media screen and (max-width: 600px) {
#top .mv_logo {min-width: 170px;margin-bottom: 28px;}
#top .mv_text {padding: 72px 24px 24px;}
#top .mv_since {margin-bottom: 16px;font-size: 14px;}
}


/* =========================
   News
========================= */
#news.news_section {width: 100%;background: #1f1f1f;color: #fff;overflow: hidden;border-top: 0.5px solid #fff;border-bottom: 1px solid #555;}
#news .inner {max-width: 1340px;width: 86%;margin: 0 auto;padding: 48px 0 56px;position: relative;}
#news .section_label {display: flex;align-items: center;gap: 28px;margin-bottom: 40px;}
#news .section_label span {font-family: "Oswald", sans-serif;font-size: 28px;font-weight: 700;letter-spacing: 0.12em;color: #fff;}
#news .section_label i {display: block;width: 130px;height: 1px;background: #fff;}
#news .news_slider_area {position: relative;}
#news .news_slider {overflow: hidden;}
#news .news_card {color: #fff;}
#news .news_card a {display: block;color: #fff;}
#news .news_thumb {width: 100%;aspect-ratio: 16 / 10;background: #ddd;overflow: hidden;}
#news .news_thumb img {width: 100%;height: 100%;object-fit: cover;transition: transform 0.45s ease;}
#news .news_card a:hover .news_thumb img {transform: scale(1.06);}
#news .news_card time {display: block;margin-top: 16px;font-family: "Oswald", sans-serif;font-size: 13px;font-weight: 500;letter-spacing: 0.12em;color: #aaa;}
#news .news_card h3 {margin: 6px 0 0;font-size: 15px;line-height: 1.7;font-weight: 700;letter-spacing: 0.06em;color: #fff;}
#news .news_arrow {position: absolute;top: 38%;z-index: 10;width: 42px;height: 42px;border: none;border-radius: 50%;background: rgba(255,255,255,0.9);color: #1f1f1f;font-size: 32px;line-height: 1;display: flex;align-items: center;justify-content: center;cursor: pointer;transform: translateY(-50%);transition: opacity 0.3s ease;}
#news .news_arrow:hover {opacity: 0.75;}
#news .news_prev {left: 8px;}
#news .news_next {right: 8px;}
#news .news_view_all {display: flex;align-items: center;justify-content: center;width: fit-content;min-width: 180px;height: 48px;margin: 48px auto 0;padding: 0 18px;border: 1px solid #fff;color: #fff;font-family: "Oswald", sans-serif;font-size: 14px;font-weight: 600;letter-spacing: 0.08em;line-height: 1;gap: 12px;transition: all 0.3s ease;}
#news .news_view_all:hover {background: #fff;color: #1f1f1f;}
#news .news_view_all span {font-size: 18px;line-height: 1;}

@media screen and (max-width: 1024px) {
#news .inner {width: 90%;padding: 32px 0 40px;}
#news .section_label {margin-bottom: 38px;}
#news .section_label span {font-size: 20px;}
#news .news_card time {margin-top: 8px;}
#news .news_card h3 {font-size: 14px;line-height: 1.6;}
#news .news_view_all {margin-top: 40px;font-size: 13px;height: 45px;}}

@media screen and (max-width: 600px) {
#news .inner {padding: 24px 0 32px;}
#news .section_label {gap: 20px;margin-bottom: 20px;}
#news .section_label span {font-size: 16px;}
#news .section_label i {width: 120px;}
#news .news_card time {margin-top: 8px;font-size: 12px;}
#news .news_card h3 {font-size: 12px;line-height: 1.65;margin: 4px 0 0;}
#news .news_view_all {min-width: 160px;height: 35px;margin-top: 32px;font-size: 12px;}
#news .news_arrow {width: 32px;height: 32px;top: 36%;font-size: 24px;}
#news .news_prev {left: 4px;}
#news .news_next {right: 4px;}}


/* =========================
   About
========================= */
#about.about_section {width: 100%;background: #f7f7f4;color: #1f1f1f;}
#about .inner {max-width: 1340px;width: 86%;margin: 0 auto;padding: 48px 0 64px;}
#about .section_label {display: flex;align-items: center;gap: 28px;margin-bottom: 24px;}
#about .section_label span {font-family: "Oswald", sans-serif;font-size: 24px;font-weight: 700;letter-spacing: 0.08em;color: #2a0f0f;}
#about .section_label i {display: block;width: 200px;height: 1px;background: #aaa;}
#about .about_title {margin: 0 0 28px;font-family: "Oswald", sans-serif;font-size: clamp(42px, 4.8vw, 72px);line-height: 1.15;font-weight: 700;letter-spacing: 0.04em;color: #1f1f1f;}
#about .about_content {display: grid;grid-template-columns: 1.0fr 0.9fr;gap: 40px;align-items: flex-start;}
#about .about_image img {width: 100%;height: auto;}
#about .about_text h3 {margin: 0 0 28px;font-size: 30px;line-height: 1.35;font-weight: 700;letter-spacing: 0.04em;}
#about .about_text p {margin: 0 0 18px;font-size: 15px;line-height: 1.7;letter-spacing: 0.03em;}
#about .about_link {display: inline-flex;align-items: center;justify-content: center;min-width: 180px;height: 48px;margin-top: 16px;padding: 0 18px;border: 1px solid #1f1f1f;font-family: "Oswald", sans-serif;font-size: 14px;font-weight: 600;letter-spacing: 0.08em;color: #1f1f1f;line-height: 1;transition: all 0.3s ease;}
#about .about_link:hover {background: #1f1f1f;color: #fff;}
#about .about_gallery {margin-top: 34px;overflow: hidden;cursor: grab;}
#about .about_gallery:active {cursor: grabbing;}
#about .about_gallery .swiper-slide {aspect-ratio: 1 / 1;overflow: hidden;}
#about .about_gallery .swiper-slide img {width: 100%;height: 100%;object-fit: cover;}
#about .about_gallery .swiper-wrapper {transition-timing-function: linear;}

@media screen and (min-width: 1150px) and (max-width: 1380px) {
#about .about_text h3 {font-size: 26px;line-height: 1.4;}
#about .about_text p {font-size: 14px;line-height: 1.75;}}

@media screen and (min-width: 1025px) and (max-width: 1149px) {
#about .about_text h3 {font-size: 24px;line-height: 1.4;}
#about .about_text p {font-size: 13.5px;line-height: 1.75;}}

@media screen and (max-width: 1024px) {
#about .inner {width: 90%;padding: 40px 0 56px;}
#about .section_label span {font-size: 20px;}
#about .about_title {font-size: 40px;margin-bottom: 24px;}
#about .about_content {grid-template-columns: 1fr;gap: 20px;}
#about .about_image img {aspect-ratio: 16 / 9;}
#about .about_text h3 {font-size: 25px;margin-bottom: 24px;}}

@media screen and (max-width: 600px) {
#about .inner {padding: 24px 0 32px;}
#about .section_label {gap: 20px;margin-bottom: 12px;}
#about .section_label span {font-size: 16px;}
#about .about_title {font-size: 34px;margin-bottom: 16px;}
#about .about_content {gap: 16px;}
#about .about_text h3 {font-size: 21px;margin-bottom: 14px;}
#about .about_text p {margin: 0 0 18px;font-size: 14px;line-height: 1.7;letter-spacing: 0.03em;}
#about .about_link {height: 40px;margin-top: 8px;font-size: 13px;}
#about .about_gallery {margin-top: 12px;width: 100vw;margin-left: calc(50% - 50vw);margin-right: calc(50% - 50vw);}
#about.about_section {overflow: hidden;}}

/* =========================
   Menu
========================= */
#menu.menu_section {width: 100%;background: #1f1f1f;color: #fff;overflow: hidden;}
#menu .inner {max-width: 1340px;width: 86%;margin: 0 auto;padding: 56px 0 124px;}
#menu .section_label {display: flex;align-items: center;gap: 28px;margin-bottom: 24px;}
#menu .section_label span {font-family: "Oswald", sans-serif;font-size: 24px;font-weight: 700;letter-spacing: 0.08em;color: #fff;}
#menu .section_label i {display: block;width: 200px;height: 1px;background: #555;}
#menu .menu_title {margin: 0 0 54px;font-family: "Oswald", sans-serif;font-size: clamp(42px, 4.8vw, 72px);line-height: 1.1;font-weight: 700;letter-spacing: 0.04em;color: #fff;}
#menu .menu_content {display: grid;grid-template-columns: 1.2fr 0.8fr;gap: 56px;align-items: center;}
#menu .menu_visual {position: relative;width: 100%;min-height: 560px;}
#menu .menu_visual_deco {display: none;}
#menu .menu_card {position: absolute;overflow: hidden;border-radius: 0;background: #111;box-shadow: 0 22px 48px rgba(0,0,0,0.5);cursor: pointer;transition:top 0.6s cubic-bezier(0.22, 1, 0.36, 1),left 0.6s cubic-bezier(0.22, 1, 0.36, 1),width 0.6s cubic-bezier(0.22, 1, 0.36, 1),height 0.6s cubic-bezier(0.22, 1, 0.36, 1),transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),opacity 0.3s ease,box-shadow 0.3s ease;}
#menu .menu_card img {width: 100%;height: 100%;object-fit: cover;display: block;transition: transform 0.6s ease;}
#menu .menu_card_label {position: absolute;left: 18px;bottom: 16px;z-index: 2;display: inline-flex;align-items: center;height: 34px;padding: 0 14px;border-radius: 17px;background: rgba(0,0,0,0.72);color: #fff;font-family: "Oswald", sans-serif;font-size: 13px;letter-spacing: 0.06em;}
#menu .menu_card.is-active,#menu .menu_card.is-next,#menu .menu_card.is-last {width: 400px;height: auto;aspect-ratio: 1000 / 667;}
#menu .menu_card.is-active {top: 0;left: 28%;z-index: 3;transform: rotate(12deg);}
#menu .menu_card.is-next {top: 175px;left: 0;z-index: 5;transform: rotate(-14deg);}
#menu .menu_card.is-last {bottom: 0;left: 43%;z-index: 2;transform: rotate(-20deg);}
#menu .menu_card:hover {box-shadow: 0 28px 60px rgba(0,0,0,0.7);}
#menu .menu_card:hover img {transform: scale(1.04);}
#menu .menu_visual:hover .menu_card:not(:hover) {opacity: 0.78;}
#menu .menu_visual.is-rotating .menu_card {pointer-events: none;}
#menu .menu_visual.is-rotating .menu_card {pointer-events: none;}
#menu .menu_text h3 {margin: 0 0 28px;font-size: 30px;line-height: 1.35;font-weight: 700;letter-spacing: 0.04em;}
#menu .menu_text p {margin: 0 0 18px;font-size: 15px;line-height: 1.8;letter-spacing: 0.04em;}
#menu .menu_link {display: inline-flex;align-items: center;justify-content: center;min-width: 180px;height: 48px;margin-top: 16px;padding: 0 18px;border: 1px solid #fff;font-family: "Oswald", sans-serif;font-size: 14px;font-weight: 600;letter-spacing: 0.08em;color: #fff;line-height: 1;transition: all 0.3s ease;}
#menu .menu_link:hover {background: #fff;color: #1f1f1f;}

#menu.menu_section {position: relative;}
#menu .inner {position: relative;z-index: 2;}
#menu .menu_bg_logo {position: absolute;top: 56px;right: 7%;width: clamp(120px, 16vw, 250px);height: auto;opacity: 0.5;transform: rotate(14deg);z-index: 1;pointer-events: none;}

@media screen and (min-width: 1150px) and (max-width: 1380px) {
#menu .menu_content {grid-template-columns: 1.2fr 0.8fr;gap: 36px;}
#menu .menu_visual {min-height: 470px;}
#menu .menu_card.is-active,#menu .menu_card.is-next,#menu .menu_card.is-last {width: 350px;height: auto;aspect-ratio: 1000 / 667;}
#menu .menu_card.is-active {top: 0;left: 24%;transform: rotate(12deg);}
#menu .menu_card.is-next {top: 150px;left: 0;transform: rotate(-14deg);}
#menu .menu_card.is-last {top: 230px;left: 38%;bottom: auto;transform: rotate(-20deg);}
#menu .menu_text h3 {font-size: 26px;line-height: 1.4;}
#menu .menu_text p {font-size: 14px;line-height: 1.75;}}

@media screen and (min-width: 1025px) and (max-width: 1149px) {
#menu .menu_content {grid-template-columns: 1.1fr 0.8fr;gap: 28px;}
#menu .menu_visual {min-height: 430px;}
#menu .menu_card.is-active,#menu .menu_card.is-next,#menu .menu_card.is-last {width: 340px;height: auto;aspect-ratio: 1000 / 667;}
#menu .menu_card.is-active {top: 0;left: 25%;transform: rotate(12deg);}
#menu .menu_card.is-next {top: 125px;left: -40px;transform: rotate(-14deg);}
#menu .menu_card.is-last {top: 250px;left: 28%;bottom: auto;transform: rotate(-20deg);}
#menu .menu_text h3 {font-size: 24px;line-height: 1.4;}
#menu .menu_text p {font-size: 13.5px;line-height: 1.75;}
#menu .menu_link {margin-top: 12px;}}

@media screen and (max-width: 1024px) {
#menu .inner {width: 90%;padding: 40px 0 56px;}
#menu .section_label {gap: 28px;margin-bottom: 24px;}
#menu .section_label span {font-size: 20px;}
#menu .section_label i {width: 200px;}
#menu .menu_title {font-size: 40px;margin-bottom: 24px;line-height: 1.15;}
#menu .menu_content {grid-template-columns: 1fr;gap: 24px;}
#menu .menu_visual {min-height: 520px;margin-bottom: 48px;}
#menu .menu_card.is-active {top: 95px;left: 10px;width: 390px;height: 390px;}
#menu .menu_card.is-next {top: 0;right: 40px;width: 220px;height: 220px;}
#menu .menu_card.is-last {right: 10px;bottom: 10px;width: 240px;height: 240px;}
#menu .menu_text h3 {font-size: 25px;line-height: 1.4;margin-bottom: 24px;}
#menu .menu_text p {font-size: 15px;line-height: 1.7;margin-bottom: 18px;}
#menu .menu_link {margin-top: 16px;}
#menu .menu_visual {width: min(100%, 720px);min-height: 520px;margin: 32px auto 48px;}
#menu .menu_card.is-active,#menu .menu_card.is-next,#menu .menu_card.is-last {width: 390px;height: auto;aspect-ratio: 1000 / 667;}
#menu .menu_card.is-active {top: 0;left: 50%;transform: translateX(-28%) rotate(12deg);}
#menu .menu_card.is-next {top: 210px;left: 50%;transform: translateX(-88%) rotate(-14deg);}
#menu .menu_card.is-last {top: 255px;left: 50%;bottom: auto;transform: translateX(-5%) rotate(-20deg);}
#menu .menu_bg_logo {top: 28px;right: 4%;width: 22%;}}

@media screen and (max-width: 600px) {
#menu .inner {width: 90%;padding: 24px 0 24px;}
#menu .section_label {gap: 20px;margin-bottom: 12px;}
#menu .section_label span {font-size: 16px;}
#menu .section_label i {width: 120px;}
#menu .menu_title {font-size: 34px;line-height: 1.15;letter-spacing: 0.04em;margin-bottom: 24px;}
#menu .menu_content {gap: 16px;}
#menu .menu_visual {width: min(100%, 360px);min-height: 330px;margin: 20px auto 28px;position: relative;}
#menu .menu_card_label {left: 10px;bottom: 10px;height: 28px;padding: 0 10px;font-size: 11px;}
#menu .menu_card.is-active,#menu .menu_card.is-next,#menu .menu_card.is-last {width: 220px;height: auto;aspect-ratio: 1000 / 667;}
#menu .menu_card.is-active {top: 0;left: 50%;transform: translateX(-35%) rotate(12deg);}
#menu .menu_card.is-next {top: 130px;left: 50%;transform: translateX(-95%) rotate(-14deg);}
#menu .menu_card.is-last {top: 170px;left: 50%;bottom: auto;transform: translateX(-5%) rotate(-20deg);}
#menu .menu_visual:hover .menu_card.is-active {transform: rotate(12deg);}
#menu .menu_card:hover,#menu .menu_card.is-front {transform: none;}
#menu .menu_text h3 {font-size: 21px;line-height: 1.4;margin-bottom: 14px;}
#menu .menu_text p {margin: 0 0 18px;font-size: 14px;line-height: 1.7;letter-spacing: 0.03em;}
#menu .menu_link {height: 40px;margin-top: 8px;font-size: 13px;}
#menu .menu_bg_logo {top: 20px;right: 4%;width: 110px;display: none;}
#menu .menu_card.is-active:hover {transform: translateX(-35%) rotate(12deg);}
#menu .menu_card.is-next:hover {transform: translateX(-95%) rotate(-14deg);}
#menu .menu_card.is-last:hover {transform: translateX(-5%) rotate(-20deg);}
#menu .menu_visual:hover .menu_card.is-active {transform: translateX(-35%) rotate(12deg);}
#menu .menu_card:hover img {transform: none;}}



/* =========================
   System
========================= */
#system.system_section {width: 100%;background: #eeece7;color: #1f1f1f;overflow: hidden;}
#system .inner {max-width: 1340px;width: 86%;margin: 0 auto;padding: 48px 0 72px;}
#system .section_label {display: flex;align-items: center;gap: 28px;margin-bottom: 24px;}
#system .section_label span {font-family: "Oswald", sans-serif;font-size: 24px;font-weight: 700;letter-spacing: 0.08em;color: #2a0f0f;}
#system .section_label i {display: block;width: 200px;height: 1px;background: #aaa;}
#system .system_title {margin: 0 0 40px;font-family: "Oswald", sans-serif;font-size: clamp(42px, 4.8vw, 72px);line-height: 1.1;font-weight: 700;letter-spacing: 0.04em;color: #1f1f1f;}
#system .system_steps {max-width: 1080px;margin: 0 auto;display: flex;flex-direction: column;gap: 34px;}
#system .system_step_wrap {position: relative;}
#system .system_step {display: grid;grid-template-columns: 130px 1fr;align-items: center;min-height: 168px;padding: 20px 44px;background: #fff;border: 1px solid #aaa;box-shadow: 0 18px 40px rgba(0,0,0,0.08);}
#system .system_num {font-family: "Oswald", sans-serif;font-size: 48px;font-weight: 700;letter-spacing: 0.05em;line-height: 1;border-right: 1px solid #aaa;height: 100%;display: flex;align-items: center;}
#system .system_text {padding-left: 48px;}
#system .system_en {margin: 0 0 8px;font-family: "Oswald", sans-serif;font-size: 15px;font-weight: 700;letter-spacing: 0.05em;color: #459129;line-height: 1;}
#system .system_text h3 {margin: 0 0 18px;font-size: 28px;font-weight: 700;line-height: 1.35;letter-spacing: 0.04em;}
#system .system_text p {margin: 0;font-size: 14px;line-height: 1.7;letter-spacing: 0.04em;}
#system .system_arrow {position: absolute;left: 50%;bottom: -34px;z-index: 10;width: 42px;height: 42px;border-radius: 50%;background: #1f1f1f;transform: translateX(-50%);pointer-events: none;}
#system .system_arrow::before {content: "";position: absolute;left: 50%;top: 52%;width: 0;height: 0;border-left: 11px solid transparent;border-right: 11px solid transparent;border-top: 10px solid #fff;transform: translate(-50%, -50%);}

@media screen and (min-width: 1150px) and (max-width: 1380px) {
#system .system_text h3 {font-size: 25px;line-height: 1.4;}
#system .system_text p {font-size: 14px;line-height: 1.75;}}

@media screen and (min-width: 1025px) and (max-width: 1149px) {
#system .system_text h3 {font-size: 23px;line-height: 1.4;}
#system .system_text p {font-size: 13.5px;line-height: 1.75;}}

@media screen and (max-width: 1024px) {
#system .inner {width: 90%;padding: 40px 0 56px;}
#system .section_label span {font-size: 20px;}
#system .system_title {font-size: 40px;margin-bottom: 32px;}
#system .system_steps {gap: 28px;}
#system .system_step {grid-template-columns: 100px 1fr;padding: 20px 32px;}
#system .system_num {font-size: 40px;}
#system .system_text {padding-left: 34px;}
#system .system_text h3 {font-size: 22px;margin-bottom: 12px;}}

@media screen and (max-width: 600px) {
#system .inner {width: 90%;padding: 24px 0 32px;}
#system .section_label {gap: 20px;margin-bottom: 8px;}
#system .section_label span {font-size: 16px;}
#system .section_label i {width: 120px;}
#system .system_title {font-size: 26px;line-height: 1.15;letter-spacing: 0.04em;margin-bottom: 12px;}
#system .system_steps {gap: 12px;}
#system .system_step {display: grid;grid-template-columns: 34px 1fr;gap: 12px;align-items: flex-start;min-height: auto;padding: 10px 12px 14px;}
#system .system_num {height: auto;border-right: 1px solid #aaa;border-bottom: none;padding: 0 12px 0 0;font-size: 18px;line-height: 1;display: flex;align-items: flex-start;font-weight: 600;}
#system .system_text {padding-left: 0;}
#system .system_text h3 {font-size: 16px;line-height: 1.35;margin-bottom: 4px;}
#system .system_text p {font-size: 12.5px;line-height: 1.6;}
#system .system_text .system_en {font-size: 13px;letter-spacing: 0.04em;}
#system .system_text p br {display: none;}
#system .system_arrow {width: 25px;height: 25px;bottom: -20px;}
#system .system_arrow::before {border-left-width: 6px;border-right-width: 6px;border-top-width: 7px;}}

/* =========================
   Shop
========================= */
#shop.shop_section {width: 100%;background: #fff;color: #13172d;overflow: hidden;position: relative;}
#shop .inner {max-width: 1340px;width: 86%;margin: 0 auto;padding: 40px 0 80px;position: relative;}
#shop .section_label {display: flex;align-items: center;gap: 28px;margin-bottom: 80px;}
#shop .section_label span {font-family: "Oswald", sans-serif;font-size: 24px;font-weight: 700;letter-spacing: 0.08em;color: #2a0f0f;}
#shop .section_label i {display: block;width: 220px;height: 1px;background: #999;}
#shop .shop_intro {display: grid;grid-template-columns: 1fr 500px;gap: 56px;align-items: flex-start;margin-bottom: 56px;}
#shop .shop_title {margin: 0;font-family: "Oswald", sans-serif;font-size: clamp(72px, 7vw, 106px);line-height: 0.9;font-weight: 500;letter-spacing: -0.04em;color: #000;}
#shop .shop_title span {color: #cfc8b8;}
#shop .shop_intro_text {display: grid;grid-template-columns: 240px 1fr;gap: 24px;align-items: flex-start;padding-top: 10px;}
#shop .shop_intro_image {width: 240px;height: 130px;overflow: hidden;border-radius: 4px;}
#shop .shop_intro_image img {width: 100%;height: 100%;object-fit: cover;}
#shop .shop_intro_text p {margin: 0;font-family: "Oswald", sans-serif;font-size: 17px;line-height: 1.05;font-weight: 500;letter-spacing: 0.02em;color: #13172d;}
#shop .shop_area {position: relative;min-height: 560px;}
#shop .shop_list {position: relative;z-index: 2;width: 58%;padding-top: 112px;}
#shop .shop_item {position: relative;display: block;padding: 20px 0;border-bottom: 1px solid rgba(19,23,45,0.18);color: #13172d;overflow: visible;cursor: pointer;}
#shop .shop_item:first-child {border-top: 1px solid rgba(19,23,45,0.18);}
#shop .shop_item_inner {position: relative;z-index: 3;transition: opacity 0.3s ease;}
#shop .shop_name {margin: 0;font-family: "Oswald", sans-serif;font-size: clamp(48px, 4.8vw, 64px);line-height: 1;font-weight: 500;letter-spacing: 0.02em;color: #1f1f1f;}
#shop .shop_info {margin: 8px 0 0;font-family: "Oswald", sans-serif;font-size: 14px;font-weight: 600;letter-spacing: 0.12em;opacity: 0.65;}
#shop .shop_item:hover .shop_item_inner {opacity: 0;}
#shop .shop_marquee {position: absolute;left: 50%;top: 50%;z-index: 2;width: 140vw;height: 82px;transform: translate(-50%, -50%);display: flex;align-items: center;overflow: hidden;background: #1a1a1a;color: #459129;opacity: 0;visibility: hidden;transition: opacity 0.25s ease, visibility 0.25s ease;pointer-events: none;}
#shop .shop_item:hover .shop_marquee {opacity: 1;visibility: visible;}
#shop .shop_marquee_track {display: flex;align-items: center;width: max-content;white-space: nowrap;animation: shopMarquee 28s linear infinite;}
#shop .shop_marquee span {display: inline-block;padding-right: 48px;font-family: "Oswald", sans-serif;font-size: clamp(46px, 5.6vw, 82px);line-height: 1;font-weight: 500;letter-spacing: 0.02em;color: #459129;}
@keyframes shopMarquee {0% {transform: translateX(0);}100% {transform: translateX(-50%);}}
#shop .shop_hover_image {position: absolute;top: 0;right: 0;z-index: 5;width: min(40vw, 500px);aspect-ratio: 4 / 4.8;pointer-events: auto;opacity: 1;}
#shop .shop_hover_img {position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover;border-radius: 4px;opacity: 0;
clip-path: inset(0 50% 0 50%);transform: scale(1.02);transform-origin: center center;transition:opacity 0.2s ease,clip-path 0.55s cubic-bezier(0.22, 1, 0.36, 1),transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);}
#shop .shop_hover_img.is-active {opacity: 1;clip-path: inset(0 0 0 0);transform: scale(1);}
#shop .shop_detail_button {position: fixed;left: 0;top: 0;z-index: 999;width: 112px;height: 112px;border-radius: 50%;background: #168021;color: #fff;display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 6px;font-family: "Oswald", sans-serif;font-size: 12px;font-weight: 500;letter-spacing: 0.02em;text-align: center;pointer-events: none;opacity: 0;transform: translate(-50%, -50%) scale(0);transition: opacity 0.25s ease, transform 0.25s ease;}
#shop .shop_detail_button.is-show {opacity: 1;transform: translate(-50%, -50%) scale(1);}
#shop .shop_detail_button i {font-style: normal;font-size: 18px;line-height: 1;}
#shop .shop_sp_image {display: none;}
#shop .shop_detail {position: relative;z-index: 8;max-height: 0;opacity: 0;overflow: hidden;transition: max-height 0.45s ease, opacity 0.3s ease, margin 0.3s ease;}
#shop .shop_item.is-detail-open .shop_detail {max-height: 620px;opacity: 1;margin-top: 12px;}
#shop .shop_detail_inner {max-width: 600px;background: #fff;color: #1f1f1f;padding: 0 56px 16px;}
#shop .shop_detail_head {display: flex;align-items: center;gap: 18px;flex-wrap: wrap;margin-bottom: 12px;}
#shop .shop_detail_head h4 {margin: 0;font-family: "Oswald", sans-serif;font-size: 36px;line-height: 1;font-weight: 700;letter-spacing: 0.06em;color: #1f1f1f;}
#shop .shop_map_btn {display: inline-flex;align-items: center;justify-content: center;min-width: 126px;height: 36px;padding: 0 18px;border-radius: 18px;background: #168021;color: #fff;font-family: "Oswald", sans-serif;font-size: 13px;font-weight: 600;letter-spacing: 0.04em;}
#shop .shop_address,#shop .shop_access,#shop .shop_hours p {margin: 0;font-size: 14px;line-height: 1.65;letter-spacing: 0.03em;color: #1f1f1f;}
#shop .shop_hours {margin-top: 14px;}
#shop .shop_capacity {width: fit-content;margin-top: 18px;padding: 6px 16px;border: 1px solid #aaa;border-radius: 10px;display: flex;align-items: center;gap: 10px;color: #1f1f1f;}
#shop .shop_capacity span {font-size: 12px;font-weight: 600;letter-spacing: 0.02em;opacity: 0.6;text-transform: uppercase;}
#shop .shop_detail_actions {display: flex;align-items: center;gap: 12px;margin-top: 24px;}
#shop .shop_tel,#shop .shop_contact {height: 48px;border-radius: 24px;display: inline-flex;align-items: center;justify-content: center;font-family: "Oswald", sans-serif;font-size: 17px;font-weight: 600;letter-spacing: 0.06em;}
#shop .shop_tel {width: 240px;background: #1f1f1f;color: #fff;}
#shop .shop_contact {width: 140px;background: #ddd;color: #1f1f1f;border: 1px solid #aaa;}
#shop .shop_view_button {display: none;}
#shop .shop_detail {cursor: default;}
#shop .shop_detail a {cursor: pointer;}
#shop .shop_map_btn,#shop .shop_tel,#shop .shop_contact {transition: opacity 0.3s ease;}
#shop .shop_map_btn:hover,#shop .shop_tel:hover,#shop .shop_contact:hover {opacity: 0.5;}
#shop .shop_marquee .shop_marquee_icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0.22em;
  padding: 0;
  font-family: "Material Symbols Outlined";
  font-size: 0.82em;
  font-weight: 400;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  vertical-align: -0.08em;
  color: currentColor;
  font-feature-settings: "liga";
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}
@media screen and (min-width: 1025px) {
#shop .section_label span {font-size: 20px;}
#shop .shop_item:hover .shop_item_inner {opacity: 1;}
#shop .shop_item:hover .shop_marquee {opacity: 0;visibility: hidden;}
#shop .shop_item:not(.is-detail-open):hover .shop_item_inner,#shop .shop_item:not(.is-detail-open).is-current .shop_item_inner {opacity: 0;}
#shop .shop_item:not(.is-detail-open):hover .shop_marquee,#shop .shop_item:not(.is-detail-open).is-current .shop_marquee {opacity: 1;visibility: visible;}
#shop .shop_item.is-detail-open .shop_item_inner {opacity: 1;}
#shop .shop_item.is-detail-open .shop_marquee {opacity: 0;visibility: hidden;}}

@media screen and (max-width: 784px) {
#shop .inner {width: 90%;padding: 40px 0;}
#shop .section_label {margin-bottom: 40px;}
#shop .shop_intro {display: block;margin-bottom: 56px;}
#shop .shop_title {font-size: clamp(56px, 13vw, 80px);margin-bottom: 34px;}
#shop .shop_intro_text {max-width: 520px;display: grid;grid-template-columns: 245px 1fr;gap: 22px;}
#shop .shop_area {min-height: auto;}
#shop .shop_list {width: 100%;padding-top: 0;}
#shop .shop_hover_image,#shop .shop_detail_button {display: none;}
#shop .shop_item {display: flex;flex-direction: column;padding: 32px 0 40px;border-top: 1px solid rgba(19,23,45,0.18);border-bottom: none;overflow: visible;}
#shop .shop_item:last-child {border-bottom: 1px solid rgba(19,23,45,0.18);padding:12px 0 16px;}
#shop .shop_item_inner {order: 1;opacity: 1;}
#shop .shop_item:hover .shop_item_inner {opacity: 1;}
#shop .shop_name {font-size: clamp(40px, 10vw, 48px);}
#shop .shop_info {display: none;}
#shop .shop_sp_image {order: 2;display: block;position: relative;z-index: 3;width: 100%;margin: 24px auto 0;aspect-ratio: 16 / 9;overflow: hidden;border-radius: 8px;}
#shop .shop_sp_image img {width: 100%;height: 100%;object-fit: cover;}
#shop .shop_sp_image::before {content: "";position: absolute;left: 0;right: 0;bottom: 0;height: 42%;background: linear-gradient(to top, rgba(0,0,0,0.55), rgba(0,0,0,0));z-index: 1;pointer-events: none;}
#shop .shop_view_button {position: absolute;right: 22px;bottom: 18px;z-index: 4;display: inline-flex;align-items: center;gap: 8px;border: none;background: transparent;color: #fff;font-family: "Oswald", sans-serif;font-size: 22px;font-weight: 500;letter-spacing: 0.04em;cursor: pointer;}
#shop .shop_marquee {order: 3;position: relative;left: auto;top: auto;z-index: 2;width: calc(100% + 72px);height: 100px;margin: -8px -36px 0;transform: none;display: flex;align-items: center;overflow: hidden;opacity: 1;visibility: visible;pointer-events: none;}
#shop .shop_item:hover .shop_marquee {opacity: 1;visibility: visible;}
#shop .shop_marquee span {font-size: clamp(40px, 9vw, 64px);}
#shop .shop_detail {order: 4;width: 92%;margin-left: auto;margin-right: auto;}
#shop .shop_item.is-detail-open .shop_detail {max-height: 680px;opacity: 1;margin-top: 20px;}
#shop .shop_detail_inner {max-width: 100%;padding: 0;}
#shop .shop_detail_head {justify-content: space-between;gap: 12px;margin-bottom: 0;}
#shop .shop_detail_head h4 {font-size: 34px;}
#shop .shop_map_btn {min-width: 126px;height: 34px;font-size: 12px;}
#shop .shop_detail_actions {display: flex;gap: 10px;margin-top: 24px;}
#shop .shop_tel {flex: 1.2;width: auto;}
#shop .shop_contact {flex: 0.8;width: auto;}
#shop .shop_view_button span {display: inline-flex;align-items: center;justify-content: center;width: 18px;height: 18px;font-size: 0;line-height: 1;}
#shop .shop_view_button span::before {content: "＋";font-size: 18px;line-height: 1;}
#shop .shop_item.is-detail-open .shop_view_button span::before {content: "−";}}

@media screen and (max-width: 600px) {
#shop .inner {width: 90%;padding: 24px 0 24px;}
#shop .section_label {gap: 20px;margin-bottom: 24px;}
#shop .section_label span {font-size: 16px;}
#shop .section_label i {width: 120px;}
#shop .shop_intro {margin-bottom: 24px;}
#shop .shop_title {font-size: 58px;line-height: 1;margin-bottom: 20px;}
#shop .shop_intro_text {display: block;}
#shop .shop_intro_image {width: 200px;height: 108px;margin-bottom: 18px;}
#shop .shop_intro_text p {font-size: 16px;line-height: 1.15;}
#shop .shop_item {padding: 12px 0 0;}
#shop .shop_name {font-size: 28px;}
#shop .shop_sp_image {margin-top: 8px;aspect-ratio: 14 / 8;}
#shop .shop_view_button {right: 8px;bottom: 16px;font-size: 17px;}
#shop .shop_marquee {width: 100%;height: 40px;margin: -8px auto 0;border-radius: 0 0 8px 8px;}
#shop .shop_marquee span {font-size: 20px;padding-right: 0;padding-top: 4px;}
#shop .shop_detail {width: 98%;}
#shop .shop_item.is-detail-open .shop_detail {max-height: 680px;margin-top: 0;}
#shop .shop_detail_head h4 {font-size: 22px;}
#shop .shop_map_btn {min-width: 116px;height: 28px;font-size: 12px;}
#shop .shop_address,#shop .shop_access,#shop .shop_hours p {font-size: 13px;}
#shop .shop_tel,#shop .shop_contact {height: 40px;font-size: 15px;}
#shop .shop_hours {margin-top: 10px;}
#shop .shop_capacity {margin-top: 16px;padding: 2px 12px;gap: 6px;}
#shop .shop_capacity span {font-size: 11px;}
#shop .shop_capacity strong {font-size: 14px;}
#shop .shop_detail_actions {margin-top: 20px;}}

/* =========================
   Footer
========================= */
.footer {width: 100%;background: #1f1f1f;padding: 28px 20px;text-align: center;}
.footer p {margin: 0;font-family: "Oswald", sans-serif;font-size: 14px;font-weight: 600;letter-spacing: 0.04em;color: #fff;opacity: 0.5;}
@media screen and (max-width: 600px) {
.footer {padding: 24px 16px;}
.footer p {font-size: 15px;}}


