@charset "UTF-8";

/* =========================================
   Reset & Variables
========================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
    --c-primary: #000000;
    --c-secondary: #009100;
    --c-bg-light: #f9f9f6;
    --c-bg-beige: #efebe1;
    --c-accent: #ffcc00;
    --c-text: #222;
    --c-white: #fff;
    --c-dark: #1b1b1b;
}

body {
    font-family: "Zen Kaku Gothic New", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    color: var(--c-text);
    font-style: normal;
    line-height: 1.6;
}
h1,h2,h3,h4,h5 {font-weight:900;}
img { max-width: 100%; height: auto; }
ul { list-style: none; }
a { text-decoration: none; color: inherit; }
.pc_none {display:none;}
@media screen and (max-width:767px){
    .pc_none {display:block;}
    .sp_none {display:none;}
}

/* =========================================
   オープニングアニメーション (6枚の葉っぱ)
========================================= */
.js-body { overflow: hidden; }
.js-body.is-loaded { overflow: auto; }

.opening-curtain {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
    pointer-events: none;
    overflow: hidden;
    transition: background-color 1s ease 2s; /* 葉っぱが開くのと同時に背景色も消す場合 */
}
/* js-openingにis-openがついたら背景色を透明に */
.opening-curtain.is-open {
    background-color: transparent;
}

/* 葉っぱ共通設定 */
.opening-curtain__leaf {
    position: absolute;
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 2s cubic-bezier(0.77, 0, 0.175, 1);
}
/* 【左上】fv_openleaf01.png */
.leaf-1 { 
    width: 95vmax; height: 50vmax;
    background-image: url('../images/kakurenbo2026/fv_openleaf01.png');
    top: -5vmax;
    left: -5vmax;
    background-position: top left;
    z-index: 40;
}
/* 【左真ん中】fv_openleaf02.png（背景の壁役） */
.leaf-2 { 
    width: 140vmax; height: 140vmax; /* 隙間を完全遮断するため最大化 */
    background-image: url('../images/kakurenbo2026/fv_openleaf02.png');
    top: -20vmax;
    left: -15vmax; /* マイナスにしすぎないことで左端の隙間を防ぐ */
    background-position: center left;
    z-index: 30;
}
/* 【左下】fv_openleaf03.png */
.leaf-3 {
    width: 110vmax; height: 70vmax; /* 隙間を埋めるためさらに拡大 */
    background-image: url('../images/kakurenbo2026/fv_openleaf03.png');
    bottom: -3vmax; /* 少し上へ寄せる */
    left: -50vmax;   /* 少し右へ寄せる */
    background-position: bottom left;
    z-index: 35;
}
/* 【右上】fv_openleaf04.png */
.leaf-4 {
    width: 95vmax; height: 75vmax; /* 隙間を埋めるためさらに拡大 */
    background-image: url('../images/kakurenbo2026/fv_openleaf04.png');
    top: -22vmax;   /* 少し下へ寄せる */
    right: -26vmax; /* 少し左へ寄せる */
    background-position: top right;
    z-index: 35;
}
/* 【右真ん中】fv_openleaf05.png（背景の壁役） */
.leaf-5 {
    width: 140vmax; height: 140vmax; /* 隙間を完全遮断するため最大化 */
    background-image: url('../images/kakurenbo2026/fv_openleaf05.png');
    top: -20vmax;
    right: -15vmax; /* マイナスにしすぎないことで右端の隙間を防ぐ */
    background-position: center right;
    z-index: 30;
}
/* 【右下】fv_openleaf06.png */
.leaf-6 {
    width: 100vmax; height: 75vmax;
    background-image: url('../images/kakurenbo2026/fv_openleaf06.png');
    bottom: -50vmax;
    right: -5vmax;
    background-position: bottom right;
    z-index: 32;
}
.opening-curtain.is-open .leaf-1 { transform: translate(-120vmax, -120vmax) rotate(-15deg); }
.opening-curtain.is-open .leaf-2 { transform: translate(-120vmax, 0) rotate(-10deg); } /* 左へ */
.opening-curtain.is-open .leaf-3 { transform: translate(-120vmax, 120vmax) rotate(-15deg); }
.opening-curtain.is-open .leaf-4 { transform: translate(120vmax, -120vmax) rotate(15deg); }
.opening-curtain.is-open .leaf-5 { transform: translate(120vmax, 0) rotate(10deg); }   /* 右へ */
.opening-curtain.is-open .leaf-6 { transform: translate(120vmax, 120vmax) rotate(25deg); }

@media screen and (max-width:767px){
    .leaf-1 {
        width: 56vmax;
        height: 40vmax;
        top: -4vmax;
    }
    .leaf-2 {
        width: 100vmax;
        height: 100vmax;
        top: -16vmax;
        left: -36vmax;
    }
    .leaf-3 {
        width: 100vmax;
        height: 70vmax;
        bottom: -3vmax;
        left: -50vmax;
    }
    .leaf-5 {
        width: 90vmax;
        height: 90vmax;
        top: -16vmax;
        right: -15vmax;
    }
    .leaf-6 {
        width: 100vmax;
        height: 75vmax;
        bottom: -30vmax;
        right: -15vmax;
    }
}

/* =========================================
    FV (First View)
========================================= */
.header {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 100;
}
.header_logo {
    width: 180px;
}
.fv_hero {
    position: relative;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: var(--c-white);
}
.fv_hero_background {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: -1;
    overflow: hidden;
}
.fv_hero_background img {
    width: 100%; height: 100%;
    object-fit: cover;
    transform: scale(1.15); /* 初期拡大状態 */
    transition: transform 2.5s ease-out, opacity 1.5s ease;
}
/* オープニング時にズームアウト */
.fv_hero.is-active .fv_hero_background img {
    transform: scale(1);
}
.fv_hero_maincopy { 
    z-index: 2;
    position: absolute;
    top: 30px;
    left: 50px;
}
.fv_hero_maincopy img { 
    max-width: 1100px;
    width: 80%;
}
.fv_hero_subcopy { 
    z-index: 2;
    position: absolute;
    right: 30px;
    bottom: 50px;
}
.fv_hero_subcopy h2 {
    font-size: 4.0rem;
    line-height: 1.3;
    margin-bottom: 10px;
}
.fv_hero_subcopy p {
    font-size: 2.6rem;
    font-weight: bold;
}
.fv_hero_subcopy p span {
    font-size: 1.5rem;
    margin: 0 2px;
}
@media screen and (max-width:767px){
    .header {
        top: 10px;
        right: 10px;
    }
    .fv_hero_maincopy {
        top: 100px;
        left: 15px;
    }
    .fv_hero_maincopy img {
        width: 95%;
    }
    .fv_hero_subcopy {
        right: auto;
        left: 15px;
        bottom: 80px;
    }
    .fv_hero_subcopy h2 {
        font-size: 2.2rem;
    }
    .fv_hero_subcopy p {
        font-size: 2.0rem;
        line-height: 1.2;
    }
    .fv_hero_subcopy p span {
        font-size: 1.2rem;
    }
}

/* =========================================
    共通セクションスタイル
========================================= */
.section_container {
    position: relative;
}
.section_inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 100px 20px;
}
.section_subtitle {
    text-align: center;
    color: var(--c-secondary);
    font-size: 2rem;
    line-height: 1;
    font-weight: bold;
    text-decoration: underline;
    margin-bottom: 20px;
}
.section_maintitle {
    text-align: center;
    color: var(--c-primary);
    font-size: 3rem;
    margin-bottom: 55px;
    line-height: 1.4;
}
@media screen and (max-width:767px){
    .section_inner {
        padding: 60px 15px;
    }
    .section_subtitle {
        font-size: 1.5rem;
        margin-bottom: 15px;
    }
    .section_maintitle {
        font-size: 2.0rem;
        margin-bottom: 30px;
    }
}

/* =========================================
   ABOUT
========================================= */
.about_section {
    text-align: center;
    background-color: var(--c-white);
}
.about_section .section_inner {
    padding: 150px 20px 200px;
} 
.section_body {
    font-size: 1.2rem;
    margin-bottom: 20px;
}
.about_movie {
    max-width: 800px;
    margin: 60px auto 60px;
    border-radius: 0px;
    overflow: hidden;
}
.about_movie video {
    width: 100%;
    display: block;
}
.section_copy {
    font-size: 2.4rem;
    color: var(--c-primary);
}
.leaf_background_top {
    position: absolute;
    top:0;
}
.leaf_background_bottom {
    position: absolute;
    bottom:0;
}
.leaf_background_bottom img {
    vertical-align: bottom;
}
@media screen and (max-width:767px){
    .about_section .section_inner {
        padding: 80px 20px 80px;
    }
    .section_body {
        font-size: 1rem;
    }
    .section_copy {
        font-size: 1.4rem;
    }
    .about_movie {
        margin: 40px auto 40px;
    }
}

/* =========================================
   GALLERY (Swiper)
========================================= */
.gallery_section {
    background-color: #F7F2E3;
    padding-bottom: 100px;
}
.gallery_inner.section_inner {
    padding: 100px 20px 0px;
}
.gallery_slider {
    width: 100%;
    position: relative;
    margin: 0 auto;
}
.gallery_list img { 
    width: 100%;
    border-radius: 8px;
    object-fit: cover;
}
.gallery_list h4 {
    margin-top: 10px;
    font-size: 1rem;
    text-align: center;
}
.gallery_slider .swiper-pagination {
    position: relative;
    margin-top:30px;
}
.gallery_slider .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    background: #d4d4d4;
    opacity: 1;
    margin: 0 6px !important;
}
.gallery_slider .swiper-pagination-bullet-active {
    background: #009900;
}
@media screen and (max-width:767px){
    .gallery_section {
        padding-bottom: 60px;
    }
    .gallery_inner.section_inner {
        padding: 60px 15px 0px;
    }
    .gallery_list h4 {
        margin-top: 3px;
    }
}

/* =========================================
   LOCATION
========================================= */
.location_section {
    background-color: #E1DAC4;
}
.location_section .section_inner {
    z-index: 10;
    position: relative;
}
.location_text,
.location_image {
    width: 50%;
}
.location_box {
    display: flex;
    gap: 60px;
    align-items: center;
}
.location_image video {
    width: 100%;
}
.location_text .section_subtitle,
.location_text .section_maintitle { 
    text-align: center;
}
.location_text .section_maintitle {
    font-size: 2.5rem;
    margin-bottom: 25px;
}
.location_text .section_body {
    margin-bottom: 0px;
}
.location_image_text {
    text-align: center;
    margin-top: 10px;
    font-weight: bold;
}
.location_background {
    position: absolute;
    bottom: 50px;
    max-width: 420px;
}
@media screen and (max-width:767px){
    .location_box {
        flex-direction: column;
        gap: 20px;
    }
    .location_text, .location_image {
        width: 100%;
    }
    .location_text .section_maintitle {
        font-size: 2.0rem;
    }
    .location_image_text {
        margin-top: 5px;
    }
    .location_background {
        bottom: -10px;
    }
}
@media screen and (min-width: 768px) and (max-width: 834px){
    .location_box {
        flex-direction: column;
        gap: 20px;
    }
    .location_text, .location_image {
        width: 100%;
    }
    .location_background {
        bottom: -10px;
    }
}

/* =========================================
   VOICE
========================================= */
.voice_section {
    background-color: #074E2B;
}
.voice_section .section_subtitle {
    margin-bottom: 15px;
}
.voice_section .section_maintitle {
    color: var(--c-white);
}
.voice_box { 
    display: flex; 
    gap: 30px;
}
.voice_list {
    background: #002A15;
    color: #fff;
    padding: 20px;
}
.voice_list h4 {
    color: #fff;
    margin-bottom: 10px;
    font-size: 1.3rem;
}
@media screen and (max-width:767px){
    .voice_box {
        flex-direction: column;
        gap: 15px;
    }
    .voice_list {
        padding: 16px;
    }
    .voice_list h4 {
        font-size: 1.1rem;
        margin-bottom: 5px;
    }
}
@media screen and (min-width: 768px) and (max-width: 834px){
    .location_box {
        flex-direction: column;
        gap: 20px;
    }
    .location_text, .location_image {
        width: 100%;
    }
    .location_background {
        bottom: -10px;
    }
    .voice_box {
        flex-direction: column;
        gap: 15px;
    }
}

/* =========================================
   CTA
========================================= */
.cta_section {
    position: relative;
    background-color: var(--c-dark);
    color: var(--c-white);
    padding: 80px 20px;
    text-align: center;
    overflow: hidden;
}
.cta_content {
    position: relative;
    z-index: 2;
}
.cta_content h2 { 
    font-size: 8rem;
    line-height: 1;
}
.cta_content h3 { 
    font-size: 3.5rem;
    color: #fff;
    margin-bottom: 30px;
}
.cta_button a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    background: #FFEA00;
    color: var(--c-dark);
    padding: 15px 40px;
    border-radius: 50px;
    font-weight: bold;
    font-size: 1.8rem;
    transition: 0.3s;
}
.cta_button a:hover {
    opacity: 0.8;
}
.cta_button span {
    display: flex;
    align-items: center;
    width: 50px;
}
.cta_background {
    position: absolute;
    bottom: -15px;
    left: 0;
    width: 100%;
    z-index: 1;
    opacity: 0.1;
    overflow: hidden; 
    pointer-events: none;
}
.cta_marquee {
    display: flex;
    white-space: nowrap;
    animation: marquee 20s linear infinite;
}
.cta_background_text {
    font-size: 13rem;
    font-weight: 900;
    line-height: 1;
    margin: 0 20px;
}
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@media screen and (max-width:767px){
    .cta_section {
        padding: 50px 20px 60px;
    }
    .cta_content h2 {
        font-size: 3.4rem;
    }
    .cta_content h3 {
        font-size: 1.6rem;
    }
    .cta_button a {
        width: 100%;
        justify-content: space-around;
        gap: 20px;
        padding: 15px 10px 15px 30px;
        font-size: 1.1rem;
    }
    .cta_button span {
        width: 30px;
    }
    .cta_background_text {
        font-size: 8rem;
    }
}
@media screen and (min-width: 768px) and (max-width: 834px){
    .cta_content h2 {
        font-size: 5rem;
    }
    .cta_content h3 {
        font-size: 2.5rem;
    }
}

/* =========================================
   INFORMATION (Table & Tabs)
========================================= */
.information_section {
    background: #F7F2E3;
}
.information_box { 
    background: var(--c-white);
    padding: 55px 40px;
    border-radius: 8px;
}
.information_inner { 
    margin-bottom: 0px;
}
.information_subtitle { 
    font-size: 1.8rem;
    margin-bottom: 20px;
}
.information_table { 
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 40px;
}
.information_table th {
    padding: 15px;
    text-align: left;
    border-top: 2px solid #009100;
    width: 20%;
    white-space: nowrap;
}
.information_table th.information_table_th_last {
    border-bottom: 1px solid #009100;
}
.information_table td {
    border-top: 1px solid #83A695;
    padding: 15px;
    text-align: left;
}
.information_table td span {
    color: #009100;
    font-weight: bold;
    margin-bottom: 5px;
    display: block;
}
.information_table td.information_table_td_last {
    border-bottom: 1px solid #83A695;
}
.information_table td ul {
    list-style: disc;
    margin-left: 20px;
}
.information_tablink {
    display: flex;
    gap: 0px;
    justify-content: center;
    margin: 25px 0px;
}
.information_tablink li {
    font-size: 1.3rem;
    padding: 10px 30px;
    cursor: pointer;
    color: #ccc;
    font-weight: bold;
    border-bottom: 3px solid #ccc;
}
.information_tablink li.is-active {
    color: #000;
    border-bottom: 3px solid #009100;
 }
.information_tabinner {
    display: none;
}
.information_tabinner.is-active { 
    display: flex;
    justify-content: center;
    gap: 25px; 
    animation: fadeIn 0.5s ease; 
}
.information_day01, 
.information_day02,
.information_day03 {
    width: 100%;
    max-width: 355px;
}
.information_day_title {
    background-color: #074E2B;
    color: var(--c-white);
    text-align: center;
    font-size: 1.2rem;
    font-weight: bold;
    padding: 10px;
    margin-bottom: 20px;
}
.information_day_list {
    margin: 0;
    padding: 0 0 0 10px;
}
.information_day_list li {
    display: block;
    position: relative;
    padding: 0 0 35px 25px;
    border-bottom: none;
}
.information_day_list li::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: -15px;
    left: 4px;
    width: 2px;
    background-color: #CDDCD5;
}
.information_day_list li:last-child::before {
    bottom: 20px; 
}
.information_day_list li::after {
    content: "";
    position: absolute;
    top: 5px;
    left: 0;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background-color: #074E2B;
}
.information_day_list_title {
    width: auto;
    color: #074E2B;
    font-weight: bold;
    font-size: 1.1rem;
    line-height: 1.3;
    margin-bottom: 10px;
}
.information_day_text {
    line-height: 1.6;
    color: var(--c-text);
}
.information_day_text span {
    font-size: 0.85em;
    color: #444;
}
@media screen and (max-width:767px){
    .information_box {
        padding: 30px 20px;
    }
    .information_subtitle {
        font-size: 1.4rem;
        margin-bottom: 10px;
        text-align: center;
    }
    .information_tabinner {
        flex-direction: column;
    }
    .information_table th {
        padding: 15px 5px;
        text-align: left;
        width: 27%;
        white-space: normal;
    }
    .information_table td {
        padding: 15px 5px 15px 5px;
    }
    .information_tablink li {
        font-size: 1.1rem;
        padding: 6px 20px;
    }
    .information_day_title {
        font-size: 1.1rem;
        padding: 7px;
    }
    .information_day_list li {
        padding: 0 0 15px 25px;
    }
}

/* =========================================
   RULE
========================================= */
.rule_section {
    background-color: #fff;
}
.rule_section .section_inner {
    padding: 150px 20px 140px;
    position: relative;
    z-index: 10;
}
.rule_vs_box {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 55px;
}
.rule_vs_list {
    width: 30%;
    text-align: center;
}
.rule_vs_title { 
    font-size: 2.5rem;
    font-weight: bold;
    color: #009100;
}
.rule_vs_text {
    font-size: 1.4rem;
    font-weight: bold;
}
.rule_vs_center {
    font-size: 2rem;
    font-weight: 900;
    color: #000;
}
.rule_time_box {
    text-align: center;
    margin-bottom: 55px;
}
.rule_time_title {
    display: inline-flex;
    align-items: flex-end;
    font-size: 2.6rem;
    line-height: 1;
    color: #009100;
    font-weight: bold;
    margin-bottom: 15px;
    border-bottom: 2px solid #009100;
    padding-bottom: 10px;
}
.rule_time_title span {
    font-size: 3.8rem;
    margin-right: 10px;
}
.rule_time_flow {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top:20px;
}
.rule_time_list {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    margin-right: 100px;
}
.rule_time_list:last-child {
    margin-right: 0;
}
.rule_time_list_title {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 5px;
}
.rule_time_list_time {
    font-size: 3.0rem;
    font-weight: 900;
    line-height: 1;
    color: #000;
}
.rule_time_list_time span {
    font-size: 1.2rem;
    font-weight: bold;
    margin-left: 2px;
}
.rule_time_list:not(:last-child)::after {
    content: "";
    position: absolute;
    right: -55px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 10px 0 10px 8px;
    border-color: transparent transparent transparent #000;
}
.rule_position_box {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 55px;
}
.rule_position_list {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--c-white);
    border: 2px solid var(--c-primary);
    border-radius: 50%;
    width: 300px;
    height: 300px;
    padding: 20px;
    text-align: center;
}
.rule_position_list.rule_position_list_red {
    border: 2px solid #EE3F2F;
}
.rule_position_list.rule_position_list_gold {
    border: 2px solid #DBA119;
}
.rule_position_list.rule_position_list_blue {
    border: 2px solid #2F87ED;
}
.rule_position_crown {
    line-height: 1;
}
.rule_position_crown img {
    width: 30px;
    margin-bottom: 0px;
}
.rule_position_title {
    font-size: 1.6rem;
    line-height: 1.2;
    font-weight: bold;
    margin-top: 10px;
    margin-bottom: 15px;
}
.rule_position_text {
    font-size: 1.2rem;
    font-weight: bold;
}
.rule_position_list_red .rule_position_title {
    color: #EE3F2F;
}
.rule_position_list_gold .rule_position_title {
    color: #DBA119;
}
.rule_position_list_blue .rule_position_title {
    color: #2F87ED;
}
.rule_information_box {
    background: #F7F2E3;
    padding: 30px;
    margin-bottom: 55px;
}
.rule_information_box_lists {
    display: flex;
    gap: 20px;
}
.rule_information_list {
    width: 50%;
}
.rule_information_box_subtitle {
    font-weight: bold;
    margin: 20px 0px 5px;
}
.rule_information_list ul {
    list-style: disc;
    margin-left: 20px;
}
.rule_information_box h4,
.rule_restrictedArea_title {
    font-size: 1.6rem;
    line-height: 1.2;
    color: var(--c-primary);
    margin-bottom: 15px;
}
.rule_restrictedArea_title,
.rule_restrictedArea_text {
    text-align: center;
}
.rule_restrictedArea_box_lists { 
    display: flex;
    gap: 30px;
    margin-top: 30px;
}
.rule_restrictedArea_list { 
    width: 33%;
    text-align: center;
}
.rule_restrictedArea_list img {
    margin-bottom: 0px;
}
@media screen and (max-width:767px){
    .rule_section .section_inner {
        padding: 60px 15px 60px;
    }
    .rule_vs_list {
        width: 40%;
    }
    .rule_vs_title {
        font-size: 2.0rem;
    }
    .rule_vs_text {
        font-size: 1.0rem;
    }
    .rule_time_title {
        font-size: 2.2rem;
    }
    .rule_time_title span {
        font-size: 3.0rem;
    }
    .rule_time_list {
        margin-right: 5%;
        width: 25%;
    }
    .rule_time_list:not(:last-child)::after {
        right: -22%;
    }
    .rule_time_list_title {
        font-size: 1rem;
    }
    .rule_time_list_time {
        font-size: 2.0rem;
    }
    .rule_position_box {
        flex-direction: column;
    }
    .rule_position_list {
        flex-direction: row;
        gap: 20px;
        border-radius: 0%;
        width: 100%;
        height: auto;
    }
    .rule_position_list_crowntitle {
        width: 40%;
    }
    .rule_position_title {
        font-size: 1.13rem;
        margin-top: 0px;
        margin-bottom: 0px;
    }
    .rule_position_text {
        font-size: 1rem;
        width: 60%;
    }
    .rule_information_box {
        padding: 25px;
    }
    .rule_information_box h4, .rule_restrictedArea_title {
        font-size: 1.4rem;
    }
    .rule_information_box_lists {
        flex-direction: column;
    }
    .rule_information_list {
        width: 100%;
    }
    .rule_restrictedArea_box_lists {
        flex-direction: column;
    }
    .rule_restrictedArea_list { 
        width: 100%;
    }
}
@media screen and (min-width: 768px) and (max-width: 834px){
    .rule_position_text {
        font-size: 1.1rem;
    }
}

/* =========================================
   CHAMPIONSHIP
========================================= */
.championship_section {
    background-color: #F7F2E3;
}
.championship_box {
    display: flex;
    gap: 40px;
    align-items: center;
    margin-bottom: 30px;
}
.championship_box_text,
.championship_box_image {
    width: 50%;
}
.championship_box_text {
    font-size: 1.1rem;
}
.championship_information {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.championship_information_table th { 
    text-align: left;
    padding: 5px 20px;
    background: #009100;
    color: #fff;
}
.championship_information_table td {
    padding: 5px 20px;
}
.championship_information_image {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-end;
}
.championship_information_image_jpkakurenbo {
    width: 320px;
    height: auto;
}
.championship_information_image_mujintopj { 
    width: 240px;
    height: auto;
}
@media screen and (max-width:767px){
    .championship_box {
        flex-direction: column;
        gap: 20px;
    }
    .championship_box_text, .championship_box_image {
        width: 100%;
    }
    .championship_box_text {
        font-size: 1rem;
    }
    .championship_information {
        flex-direction: column;
        gap: 20px;
    }
    .championship_information_table th {
        width: 25%;
        text-align: center;
        padding: 5px 10px;
    }
    .championship_information_table td {
        width: 75%;
        padding: 5px 10px;
    }
    .championship_information_image {
        align-items: center;
    }
    .championship_information_image_jpkakurenbo {
        width: 220px;
    }
    .championship_information_image_mujintopj {
        width: 220px;
    }
}

/* =========================================
   ACCESS (Tabs)
========================================= */
.access_section {
    background: #E1DAC4;
}
.access-tab-list {
    display: flex;
    border-bottom: 2px solid #074E2B;
}
.access-tab {
    width: 25%;
    text-align: center;
    padding: 10px 20px;
    cursor: pointer;
    font-weight: bold;
    background: #f7f2e3;
}
.access-tab.is-active {
    background: #074E2B;
    color: var(--c-white);
}
.access-tab-content { 
    display: none;
    background: #F7F2E3;
    padding: 40px;
}
.access-tab-content.is-active { 
    display: block;
    animation: fadeIn 0.5s ease;
}
.access-heading { 
    font-size: 1.6rem;
    color: var(--c-primary);
    margin-bottom: 20px;
}
.access-wrapper { 
    display: flex;
    gap: 30px;
}
.access-body, .access-map {
    width: 50%;
}
@media screen and (max-width:767px){
    .access-tab-list {
        flex-wrap: wrap;
        gap: 5px;
    }
    .access-tab {
        width: fit-content;
    }
    .access-tab-content {
        padding: 20px;
    }
    .access-wrapper {
        flex-direction: column;
        gap: 20px;
    }
    .access-body, .access-map {
        width: 100%;
    }
    .access-heading {
        font-size: 1.3rem;
        margin-bottom: 10px;
    }
}

/* =========================================
   FAQ (Accordion)
========================================= */
.faq_section {
    background-color: #fff;
}
.kakurenbo-faq-item {
    border-bottom: 1px solid #D5D5D5;
    margin-bottom: 0px;
    overflow: hidden;
}
.kakurenbo-faq-heading {
    display: flex;
    align-items: center;
    gap:10px;
    font-size: 1.3rem;
    line-height: 1.2;
    padding: 25px 20px;
    cursor: pointer;
    font-weight: bold;
    position: relative;
    margin: 0;
}
.kakurenbo-faq-heading span {
    font-size: 2.2rem;
    color: #009100;
}
.kakurenbo-faq-heading::before, .kakurenbo-faq-heading::after {
    content: "";
    display: inline-block;
    position: absolute;
    width: 2px;
    height: 22px;
    background-color: #009100;
    right: 25px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease-in-out, top 0.3s ease-in-out, opacity 0.3s;
}
.kakurenbo-faq-heading::after {
    transform: translateY(-50%) rotate(90deg);
}
.kakurenbo-faq-item.is-open .kakurenbo-faq-heading::before {
    transform: translateY(-50%) rotate(90deg);
}
.kakurenbo-faq-item.is-open .kakurenbo-faq-heading::after {
    transform: translateY(-50%) rotate(180deg);
    opacity: 0;
}
.kakurenbo-faq-content { 
    display: none;
    padding: 0px 25px 30px;
}
@media screen and (max-width:767px){
    .kakurenbo-faq-heading {
        font-size: 1.1rem;
        line-height: 1.4;
        padding: 20px 50px 20px 10px;
    }
    .kakurenbo-faq-heading span {
        font-size: 1.7rem;
    }
    .kakurenbo-faq-heading::before, .kakurenbo-faq-heading::after {
        height: 17px;
    }
    .kakurenbo-faq-content {
        padding: 0px 10px 20px;
    }
}

/* Footer */
footer {
    background: #074E2B;
    color: var(--c-white);
    text-align: center;
    padding: 20px;
    font-size: 0.9rem;
}

/* =========================================
   追従CTA (Floating CTA)
========================================= */
.floating-cta {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 280px;
    background-color: #FFEA00; /* デザインに合わせた黄色 */
    border: 2px solid #000;
    z-index: 100; /* 葉っぱのオープニングよりは下、他の要素よりは上に */
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}
.floating-cta.is-hidden,
.floating-cta.is-hidden-at-fv {
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    pointer-events: none;
}
.floating-cta__close {
    position: absolute;
    top: 5px;
    right: 10px;
    background: transparent;
    border: none;
    font-size: 1.5rem;
    font-weight: bold;
    color: #000;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}
.floating-cta__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 25px 20px 15px;
    text-decoration: none;
    color: #000;
}
.floating-cta__link:hover {
    opacity: 0.8;
}
.floating-cta__subtext {
    font-size: 0.85rem;
    font-weight: bold;
    margin-bottom: 5px;
}
.floating-cta__maintext {
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.05em;
    margin-bottom: 10px;
}
.floating-cta__icon img {
    width: 32px;
    height: auto;
}
.floating-cta.is-hidden-at-footer {
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    pointer-events: none;
}
@media screen and (max-width: 767px) {
    .floating-cta {
        bottom: 0;
        right: 0;
        left: 0;
        width: 100%;
        border-width: 2px 0 0 0; /* 上の枠線のみ表示 */
    }
    .floating-cta__link {
        /* 横並びにして、はみ出た分を折り返す設定 */
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        padding: 10px 15px 12px;
    }
    .floating-cta__subtext {
        /* 1行目として単独で表示させるため幅を100%に */
        width: 100%;
        text-align: center;
        font-size: 0.8rem;
        margin-bottom: 2px;
    }
    .floating-cta__maintext {
        font-size: 1.6rem;
        margin-bottom: 0;
        margin-right: 8px; /* 矢印アイコンとの隙間 */
    }
    .floating-cta__icon {
        display: flex;
        align-items: center;
    }
    .floating-cta__icon img {
        width: 1.6rem;
    }
    .floating-cta__close {
        top: 2px;
        right: 12px;
        font-size: 1.4rem;
    }
}

/* 共通アニメーション */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }