body { margin: 0; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; color: #222; line-height: 1.7; }

p { font-size: clamp(14px, 1vw, 16px); }

img { width: 100%; height: auto; }

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

.inner { width: 94%; max-width: 1240px; margin: 0 auto; }

.sec { padding: 64px 0; text-align: center; }

.sec-en { font-size: 14px; font-weight: 700; margin: 0; }

.ph { background: #d9dde6; display: flex; align-items: center; justify-content: center; color: #6b7280; font-size: 13px; }

.text-shadow { text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8); }

.sub_title { display: block; text-align: center; font-size: clamp(26px, 7vw, 30px); font-weight: 700; margin-bottom: clamp(20px, 6%, 40px); }
.sub_title span { display: block; font-size: 60%; margin-bottom: 10px; }

.only-sp { display: none; }
@media (max-width: 480px) { .only-sp { display: block; } }

.hdr { background: #fff; }
.hdr .inner { display: flex; align-items: center; justify-content: space-between; height: 56px; max-width: 1200px; }

.hdr-logo { display: block; max-width: 300px; }

.hdr-nav { display: flex; align-items: center; gap: 24px; font-size: 13px; }

.btn-login { display: flex; align-items: center; font-weight: 700; }
.btn-login:before { display: block; content: ""; background: url("images/icon_lock.png") no-repeat; background-size: 15px; width: 20px; height: 20px; background-position: center center; content: ""; margin-right: 5px; }

.btn-join { background: #a50f14; color: #fff; padding: 6px 25px; border-radius: 5px; font-weight: 700; letter-spacing: 0.1em; }

.fv { background: url("images/mv_bg.png") no-repeat #6e0508; background-size: 100%; background-position: bottom; color: #fff; text-align: center; }

.fv-box_wrapper { padding: clamp(30px, 8vw, 80px) 15px 0; background: url("images/mv.png") no-repeat; background-size: 100%; background-position: bottom; }
@media (max-width: 930px) { .fv-box_wrapper { background-size: cover; } }

.fv-box { border: 2px solid #c9a24a; width: 92%; max-width: 800px; margin: 0 auto; padding: 46px; background: rgba(0, 0, 0, 0.5); }

.fv-ttl { display: block; max-width: 400px; margin: 0 auto 15px; }

.fv-sub { margin: 0; font-size: 26px; font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif; font-weight: 800; }

.fv-lead { font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif; font-size: 40px; margin: 12px 0 0; font-weight: 700; }

.fv-cta { display: inline-block; margin: 50px auto; max-width: 400px; }
.fv-cta img { filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.5)); transition: all linear 0.3s; }
.fv-cta:hover img { filter: drop-shadow(0 0 15px black); transform: scale(1.03, 1.03); }

.merit-ttl { font-size: 35px; font-weight: 700; margin: 0; }
.merit-ttl span { font-size: 20px; background: #a50f14; padding: 2px 40px; margin-right: 8px; font-weight: 600; clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 50%, 100% 100%, 0 100%, 8px 50%); }

.merit-txt { margin: 16px 0 36px; }

.merit-list { display: flex; gap: 12px; padding: 0 0 56px; margin: 0; list-style: none; }

.merit-item { position: relative; flex: 1; background: #fff; color: #222; border-radius: 6px; padding: 35px 8px 16px; font-weight: 700; font-size: clanp(16px, 1.2vw, 18px); line-height: 1.4; box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); }
@media (max-width: 480px) { .merit-item:nth-child(4) { font-size: 15px; } }
.merit-item small { display: block; font-size: 11px; font-weight: 500; margin-top: 5px; }

.merit-num { position: absolute; top: -20px; left: 50%; transform: translateX(-50%); width: 45px; height: 45px; line-height: 45px; border-radius: 50%; background: #a50f14; color: #fff; font-size: 28px; box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); }

.merit-icon { margin-bottom: 8px; border-radius: 4px; }

.cb { background: #f3efe4; }

.cb-ribbon { display: block; margin: 0 auto; max-width: 500px; }

.cb-ttl { display: flex; justify-content: center; align-items: center; margin-bottom: 20px; }
.cb-ttl h2 { font-size: 22px; margin: 0 0 32px; margin-bottom: 0; }
.cb-ttl h2 em { font-style: normal; color: #a50f14; font-size: 30px; border-bottom: 2px solid #a50f14; font-weight: 700; margin: 0 10px; }
.cb-ttl .img { display: block; width: 100px; }

.cb-body { display: flex; align-items: center; justify-content: center; gap: 40px; }

.cb-card { width: 400px; }

.cb-info { text-align: center; }

.cb-label { display: block; background: #a50f14; color: #fff; padding: 4px 24px; font-size: 22px; font-weight: 700; border-radius: 5px; margin-bottom: 8px; }

.cb-price { margin: 0; font-size: 60px; line-height: 1.2; font-weight: 700; color: #a50f14; }
.cb-price small { font-size: 28px; }

.cb-note { font-weight: 700; margin-top: 24px; }

.rank-label { display: inline-block; background: #0d2160; color: #fff; font-size: 16px; padding: 2px 40px; font-weight: 700; clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 50%, 100% 100%, 0 100%, 8px 50%); }

.rank-ttl { font-size: 28px; margin: 8px 0 20px; font-weight: 700; }
.rank-ttl em { font-style: normal; color: #a50f14; font-size: 45px; }

.rank-list { display: block; margin: 0 auto 24px; max-width: 700px; }

.rank-item { width: 160px; padding: 16px 8px; background: linear-gradient(#fff, #e9edf3); font-size: 13px; font-weight: 700; }
.rank-item strong { display: block; font-size: 22px; color: #a50f14; }

.rank-medal { width: 84px; height: 84px; margin: 0 auto 8px; border-radius: 50%; color: #fff; font-size: 12px; }

.rank-bronze { padding-top: 40px; }
.rank-bronze .rank-medal { background: #b9794f; }

.rank-silver { padding-top: 56px; }
.rank-silver .rank-medal { background: #9aa3ad; }

.rank-gold { padding-top: 72px; }
.rank-gold .rank-medal { background: #c9a24a; }

.rank-platinum { padding-top: 88px; }
.rank-platinum .rank-medal { background: #6f8bb3; }

.rank-foot { font-size: 18px; font-weight: 700; color: #0d2160; }

.area01 { padding: clamp(30px, 8%, 60px) 0; background: linear-gradient(#edecde 0%, rgba(237, 236, 222, 0) 100%); }
@media (max-width: 1080px) { .area01 { padding-bottom: 0; } }
.area01 .tab_wrap { display: flex; justify-content: center; align-items: flex-end; padding: 0 10px; }
.area01 .tab_wrap .tab { display: block; padding: 10px clamp(15px, 6%, 30px); margin: 0 5px; border-top-left-radius: 10px; border-top-right-radius: 10px; font-weight: bold; font-size: clamp(16px, 1.5vw, 18px); letter-spacing: 0.05em; font-weight: 900; position: relative; cursor: pointer; text-align: center; color: rgba(0, 0, 0, 0.4); }
@media (max-width: 480px) { .area01 .tab_wrap .tab { font-size: 12px; padding: 5px; line-height: 1.3; } }
.area01 .tab_wrap .tab:after { display: block; background: linear-gradient(rgba(0, 0, 0, 0) 0%, #000 100%); opacity: 0.3; content: ""; width: 100%; height: 10px; position: absolute; bottom: 0; left: 0; }
.area01 .tab_wrap .tab.active { color: white; padding-bottom: 20px; }
.area01 .tab_wrap .tab.active:after { display: none; }
.area01 .tab_wrap .tab._r { background: #627CB3; }
.area01 .tab_wrap .tab._l { background: #D899C3; }
.area01 .tab_wrap .tab._b { background: #C6BA81; }
.area01 .tabcontent_wrap { max-width: 1080px; margin: 0 auto; }
.area01 .tabcontent_wrap .tabcontent { display: block; padding: clamp(20px, 3%, 40px); color: #fff; display: none; }
.area01 .tabcontent_wrap .tabcontent._r { background: #627CB3; }
.area01 .tabcontent_wrap .tabcontent._l { background: #D899C3; }
.area01 .tabcontent_wrap .tabcontent._b { background: #C6BA81; }
.area01 .tabcontent_wrap .tabcontent h3 { display: block; text-align: center; font-weight: bold; font-size: clamp(18px, 2.5vw, 25px); margin-bottom: 1em; line-height: 1.5; }
.area01 .tabcontent_wrap .tabcontent h3 span { font-size: 150%; padding: 0 5px; }
.area01 .tabcontent_wrap .tabcontent.active { display: block; }
.area01 .tabcontent_wrap .tabcontent ul { display: flex; justify-content: space-between; padding: 0; }
.area01 .tabcontent_wrap .tabcontent ul li { width: 31%; list-style-type: none; line-height: 1.5; }
.area01 .tabcontent_wrap .tabcontent ul li .photo { margin-bottom: 15px; }
.area01 .tabcontent_wrap .tabcontent ul li .photo img { border: #fff 3px solid; }
.area01 .tabcontent_wrap .tabcontent ul li b { display: block; text-align: center; font-size: clamp(18px, 1.7vw, 22px); margin-bottom: 10px; }
@media (max-width: 640px) { .area01 .tabcontent_wrap .tabcontent ul li { width: 32%; } }
@media (max-width: 480px) { .area01 .tabcontent_wrap .tabcontent ul { flex-wrap: wrap; }
  .area01 .tabcontent_wrap .tabcontent ul li { width: 100%; } }

.area03 { background: url("images/bg_group.png") no-repeat; background-size: cover; background-position: center bottom; padding: clamp(20px, 3%, 40px) 15px; }
.area03 .sub_t { display: flex; justify-content: center; align-items: center; }
.area03 .sub_t h3 { font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif; color: #E8C16A; font-size: clamp(22px, 5vw, 45px); font-weight: 600; text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.8); }
.area03 .sub_t .icon { width: 20%; padding-left: 15px; max-width: 120px; }
@media (max-width: 480px) { .area03 .sub_t { flex-wrap: wrap; flex-direction: column-reverse; }
  .area03 .sub_t h3 { display: block; width: 100%; text-align: center; font-size: 27px; margin: 0 0 10px; }
  .area03 .sub_t .icon { width: 100%; text-align: center; }
  .area03 .sub_t .icon img { width: 70px; } }
.area03 .linkbanner { padding: 0; display: flex; align-items: flex-start; flex-wrap: wrap; max-width: 1260px; margin: 0 auto; }
.area03 .linkbanner li { list-style-type: none; width: calc(16.666% - 20px); margin: 10px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.6); }
.area03 .linkbanner li a { text-decoration: none; }
.area03 .linkbanner li a img { width: 100%; height: auto; transition: all linear 0.3s; }
.area03 .linkbanner li a:hover img { opacity: 0.6; }
.area03 .linkbanner li p { background: rgba(255, 255, 255, 0.7); margin: 0; padding: 10px; font-size: 12px; line-height: 1.4; }
.area03 .linkbanner li p a { color: #000; }
.area03 .linkbanner li p:first-of-type { min-height: 88px; }
@media (max-width: 950px) { .area03 .linkbanner li p:first-of-type { min-height: 104px; } }
.area03 .linkbanner li p.yoyaku { display: block; padding: 0; }
.area03 .linkbanner li p.yoyaku a { display: block; width: 100%; background: #001153; color: #fff; text-align: center; font-weight: bold; padding: 8px; font-size: 15px; transition: all linear 0.3s; }
.area03 .linkbanner li p.yoyaku a:hover { color: rgba(255, 255, 255, 0.5); }
@media (max-width: 1080px) { .area03 .linkbanner li { width: calc(20% - 20px); } }
@media (max-width: 768px) { .area03 .linkbanner li { width: calc(25% - 14px); margin: 7px; }
  .area03 .linkbanner li p { font-size: 11px; padding: 7px; } }
@media (max-width: 480px) { .area03 .linkbanner li { width: calc(33.3333% - 14px); } }
@media (max-width: 430px) { .area03 .linkbanner li { width: calc(50% - 14px); }
  .area03 .linkbanner li p:first-of-type { min-height: 76px; } }

.youtube { width: 100%; max-width: 800px; aspect-ratio: 16 / 9; margin: 0 auto; }
.youtube iframe { width: 100%; height: 100%; }

.faq-list { max-width: 1080px; margin: 0 auto; text-align: left; }

.faq-item { border: 1px solid #eee; background: #fff; border-radius: 6px; margin-bottom: 15px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); }
.faq-item.is-open .faq-q::after { transform: translateY(-30%) rotate(-135deg); }

.faq-q { position: relative; padding: 14px 44px 14px 20px; font-weight: 700; font-size: 16px; cursor: pointer; line-height: 1.4; }
.faq-q::after { content: ""; position: absolute; right: 20px; top: 50%; width: 8px; height: 8px; border: solid #0d2160; border-width: 0 2px 2px 0; transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.faq-q span { color: #0d2160; margin-right: 8px; font-size: 18px; }

.faq-a { display: none; padding: 0 20px 16px; }
.faq-a span { color: #a50f14; font-weight: 700; margin-right: 8px; }

#ft-root .inc_footer { background: #44433c !important; color: #ededed !important; }
#ft-root .inc_footer a, #ft-root .inc_footer address { color: #ededed !important; }

@media (max-width: 767px) { .sec { padding: 40px 0; }
  .sec-ttl { font-size: 22px; }
  .hdr-logo img { width: 200px; }
  .fv-box { padding: 30px 10px; width: calc(100% - 40px); margin: 0 auto; }
  .fv-box .fv-ttl { width: 70%; }
  .fv-box .fv-sub { margin: 0; font-size: clamp(18px, 3vw, 20px); }
  .fv-box .fv-lead { font-size: clamp(20px, 5vw, 25px); }
  .fv-cta { font-size: 18px; padding: 12px 28px; }
  .merit-list { flex-wrap: wrap; }
  .merit-item { flex: 0 0 calc(50% - 6px); margin-top: 16px; }
  .cb-body, .ft-cols, .ftr-top, .ftr-links { flex-direction: column; align-items: center; gap: 20px; }
  .cb-card { width: 100%; max-width: 340px; }
  .rank-list { flex-wrap: wrap; }
  .rank-item { width: 44%; padding-top: 16px; }
  .hotels-grid { grid-template-columns: repeat(2, 1fr); }
  .ftr-logos { width: 100%; } }
@media (max-width: 480px) { .hdr { width: 100%; max-width: 100%; border-radius: 0; position: fixed; top: 0; left: 0; z-index: 1; }
  .hdr .hdr-logo img { width: 180px; }
  .hdr .inner { width: 100%; padding: 5px; }
  .hdr .hdr-nav { gap: 10px; }
  .hdr .btn-join { padding: 5px 10px; }
  .hdr .btn-login:before { width: 15px; }
  .fv { margin-top: 56px; }
  .fv-box { width: calc(100% - 20px); }
  .merit-ttl span { display: block; max-width: 200px; margin: 0 auto 5px; }
  .cb-ttl { flex-wrap: wrap; }
  .cb-ttl h2 em { display: block; font-size: 26px; }
  .cb-ttl .img { display: none; }
  .rank-ttl { font-size: 23px; }
  .faq-q { padding: 10px 34px 10px 10px; font-size: 14px; }
  .faq-q:after { right: 10px; }
  .faq-a { font-size: 14px; } }
.faq ul.tabs { display: grid; grid-template-columns: 1fr 1fr 1fr; max-width: 800px; margin: 0 auto 30px; padding-left: 0; gap: 30px; }
.faq ul.tabs li.faqtab { display: block; background: #fff; border: #000 1px solid; padding: 10px; border-radius: 5px; font-weight: bold; cursor: pointer; }
.faq ul.tabs li.faqtab.active { background: #000; color: #fff; }
@media (max-width: 480px) { .faq ul.tabs { gap: 5px; line-height: 1.4; margin-bottom: 15px; }
  .faq ul.tabs li.faqtab { padding: 5px; font-size: 12px; } }
.faq .tab_contents { max-width: 1024px; margin: auto; }
.faq .tab_contents .tab_content { display: none; text-align: left; }
.faq .tab_contents .tab_content p { display: block; text-align: center; margin-bottom: 2em; }
.faq .tab_contents .tab_content.active { display: block; }
@media (max-width: 480px) { .faq .tab_contents .tab_content p { margin: 1.5em; font-size: 13px; } }
