@charset "UTF-8";

/* ==========================================================================
   1. Base & Reset
   ========================================================================== */

/* フォント設定 */
.font-so {
  font-family: "Source Sans Pro", sans-serif;
}

html,
body {
  color: #333;
  font-weight: 400;
  font-size: 10px; /* 基準フォントサイズ */
  line-height: 1.6;
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  
  /* スクロールバー非表示設定 (rule.cssより統合) */
  height: 100%;
  overflow-y: scroll; /* コンテンツ量に応じてスクロール */
  -ms-overflow-style: none; /* IE, Edge */
  scrollbar-width: none;    /* Firefox */
}

/* Chrome, Safari スクロールバー非表示 */
body::-webkit-scrollbar {
  display: none;
  -webkit-appearance: none;
  scrollbar-width: none;
}
body::-webkit-scrollbar-thumb {
  display: none;
  -webkit-appearance: none;
  scrollbar-width: none;
}

a {
  color: #333;
  text-decoration: none; /* 下線なしをデフォルトに */
  transition: all 0.3s ease;
}
a:hover, a:active, a:focus {
  color: #333;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.7; /* 共通ホバーエフェクト */
}

img {
  max-width: 100%;
  vertical-align: bottom;
}

ul, dl, ol, dt, dd,
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5,
figure, p {
  padding: 0;
  margin: 0;
}

/* レスポンシブフォントサイズ調整 */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, figure, p,
ul, dl, ol, dt, dd {
  font-size: 1.6rem; /* 基本サイズ */
  font-weight: 400;
}

@media screen and (max-width: 767px) {
  h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, figure,
  ul, dl, ol, dt, dd {
    font-size: 1.3rem; /* スマホサイズ */
  }
  p {
    font-size: 1.3rem;
  }
}

li {
  list-style: none;
}


/* ==========================================================================
   2. Layout Utilities
   ========================================================================== */

.wrap880 {
  max-width: 90rem;
  padding: 0 1rem;
  margin: 0 auto;
}

.wrap980 {
  max-width: 100rem;
  padding: 0 1rem;
  margin: 0 auto;
}

.bodyWrapper {
  overflow: hidden;
  position: relative;
}
.bodyWrapper::-webkit-scrollbar { 
  display: none;
}

/* 表示切り替えユーティリティ */
.d-pc-block { display: block; }
.d-pc-inline { display: inline; }
.d-sp-block { display: none; }
.d-sp-inline { display: none; }

@media screen and (max-width: 767px) {
  .d-pc-block { display: none; }
  .d-pc-inline { display: none; }
  .d-sp-block { display: block; }
  .d-sp-inline { display: block; }
}

/* テキストカラー */
.text-red { color: #df2c28; }
.text-yellow { color: #f6eb40; }


/* ==========================================================================
   3. Header
   ========================================================================== */

.pageHeaderWrap {
  position: fixed;
  width: 100%;
  background-color: white;
  z-index: 1500;
  display: flex;
  justify-content: center;
}

.pageHeader {
  padding: 1.6rem 3.3rem;
  display: flex;
  align-items: flex-end;
  width: 100%;
  background-color: white;
  max-width: 1000px;
  color: green; /* 元のCSS指定 */
}

@media screen and (max-width: 767px) {
  .pageHeader {
    padding: 0;
  }
}

.pageHeader-l {
  width: 16.8rem;
}

@media screen and (max-width: 767px) {
  .pageHeader-l {
    padding: 1.2rem 2rem;
  }
}

.pageHeader-l h1, .pageHeader-l .h1 {
  margin: 0;
}

.pageHeader-l h1 .logo, .pageHeader-l .h1 .logo {
  display: flex;
  align-items: center;
}

@media screen and (max-width: 767px) {
  .pageHeader-l h1 .logo img, .pageHeader-l .h1 .logo img {
    width: 7rem;
  }
}

.pageHeader-r {
  flex: 1;
  flex-wrap: wrap;
  display: flex;
  justify-content: flex-end;
}

/* ヘッダー右上のリンク */
.hhcross-top {
  width: 100%;
  text-align: right;
  margin-bottom: 2rem;
}
.hhcross-top a {
  display: inline-block;
  padding: 0 1em;
  background: #333;
  border-radius: 1em;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .hhcross-top { display: none; }
}

/* グローバルナビ（PC） */
.pageHeader-r .gnavi ul {
  margin: 0;
  padding: 0;
}
.pageHeader-r .gnavi ul li {
  display: inline-block;
  padding-left: 3rem;
}
.pageHeader-r .gnavi ul li a {
  font-size: 1.4rem;
  font-weight: 500;
}

@media screen and (max-width: 1024px) {
  .pageHeader-r .gnavi ul li { padding-left: 2rem; }
  .pageHeader-r .gnavi ul li a { font-size: 1.2rem; }
}
@media screen and (max-width: 767px) {
  .pageHeader-r .gnavi { display: none; }
}


/* ==========================================================================
   4. Hamburger Menu (Mobile)
   ========================================================================== */

.pageHeader-r .menuArea {
  background: #333;
  width: 5rem;
  height: 5rem;
  text-align: center;
  box-shadow: 0 5px 15px 0 rgba(0, 0, 0, 0.16);
  z-index: 1000;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease;
  position: absolute;
  top: 0;
  right: 0;
}
@media screen and (max-width: 767px) {
  .pageHeader-r .menuArea {
    visibility: visible;
    opacity: 1;
  }
}

.pageHeader-r .menuArea .ham_btn {
  display: block;
  position: absolute;
  top: 50%;
  right: 50%;
  transform: translate(50%, -38%);
  width: 100%;
  max-width: 8rem;
  height: 100%;
  background-color: transparent;
  color: #71B6B7;
  z-index: 101;
  border: none;
}

.pageHeader-r .menuArea .ham_btn .ham_line,
.pageHeader-r .menuArea .ham_btn .ham_line::before,
.pageHeader-r .menuArea .ham_btn .ham_line::after {
  position: absolute;
  left: 25%;
  background-color: white;
  height: 2px;
  transition: all 0.2s ease;
}

.pageHeader-r .menuArea .ham_btn .ham_line {
  width: 50%;
  top: 38%;
}
.pageHeader-r .menuArea .ham_btn .ham_line::before {
  content: "";
  top: -9px;
  left: 0;
  width: 100%;
}
.pageHeader-r .menuArea .ham_btn .ham_line::after {
  content: "";
  bottom: -9px;
  left: 0;
  width: 50%;
}
.pageHeader-r .menuArea .ham_btn .ham_txt {
  font-size: 1.2rem;
  position: absolute;
  bottom: 5%;
  left: 50%;
  transform: translateX(-50%);
  padding-top: 2rem;
  font-weight: 600;
}

/* ハンバーガー Active状態 */
.pageHeader-r .menuArea .ham_btn.active .ham_line {
  background-color: transparent;
}
.pageHeader-r .menuArea .ham_btn.active .ham_line::before {
  top: 0px;
  transform: rotate(45deg);
}
.pageHeader-r .menuArea .ham_btn.active .ham_line::after {
  width: 100%;
  bottom: 0px;
  transform: rotate(-45deg);
}

.pageHeader-r .menuArea-txt {
  padding-top: 3.5rem;
  color: white;
  letter-spacing: 11rem;
}

/* ハンバーガーメニューの中身 */
.ham_menu {
  transform: translateX(-100%);
  visibility: hidden;
  opacity: 0;
  position: fixed;
  top: 5rem;
  left: 0;
  background-color: white;
  width: 100%;
  z-index: 1000;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .ham_menu {
    visibility: visible;
    opacity: 1;
  }
}
.ham_menu.active { transform: translateX(0); }
.ham_menu.active ul{ height: 100vh; }
.ham_menu.nonactive { opacity: 0; transform: translateX(0); }

.ham_menu .hamNav { border-top: solid 1px #cdd6dd; }
.ham_menu .hamNav>li>a {
  display: block;
  font-size: 1.4rem;
  font-weight: 500;
  padding: 2rem 0 2rem 2.5rem;
  border-bottom: solid 1px #cdd6dd;
  background-color: white;
}
.ham_menu .hamNav>li>a span {
  display: inline-block;
  padding: 0 1em;
  background: #333;
  border-radius: 1em;
  color: #fff;
}
.ham_menu .btns {
  display: flex;
  width: 80%;
  justify-content: space-around;
  margin: 0 auto;
  padding: 2rem 0;
  flex-direction: column;
}
.ham_menu .btns>li a {
  font-size: 1.2rem;
  font-weight: 600;
}


/* ==========================================================================
   5. Modules & Components
   ========================================================================== */

/* メインビジュアル下 */
.subFvWrap { padding-top: 9.3rem; }
.subFvWrap .subFv { padding: 8rem 0; }
@media screen and (max-width: 767px) {
  .subFvWrap { padding-top: 5.1rem; }
  .subFvWrap .subFv { padding: 4.5rem 0; }
}

/* ストアリンクバー */
.stores {
  padding: 1.3rem 0;
  background-color: #df2c28;
  background-image: repeating-linear-gradient(-45deg, #C60918, #C60918 2px, transparent 0, transparent 5px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.stores .txt {
  width: 100%;
  text-align: center;
  color: white;
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}
.stores .item { padding: 0 0.4rem; }

/* ポータルリンクエリア */
.portal {
  text-align: center;
  padding: 5rem 0;
  border-bottom: solid 1px #d2dae1;
}
.portal .btn-portal {
  font-size: 1.4rem;
  font-weight: 500;
  margin-top: 4rem;
  display: block;
  text-align: center;
}
.portal .btn-portal .icon-hhct06::before {
  color: #333;
  font-size: 1.2rem;
}
.portal-logo {
  max-width: 30rem;
  padding-bottom: 1.2rem;
}
.portal-desc { font-size: 1.3rem; }

/* 規約ボタン */
.kiyakuBtnWrap {
  display: flex;
  justify-content: center;
  padding: 4rem 0;
  border-bottom: solid 1px #d2dae1;
}
.kiyakuBtnWrap a {
  font-size: 1.8rem;
  font-weight: 600;
}

/* ダウンロードバナー */
.downloadBnr {
  background-color: #df2c28;
  background-image: repeating-linear-gradient(-45deg, #C60918, #C60918 2px, transparent 0, transparent 5px);
  padding: 1.5rem 0;
}
.downloadBnr .downloadBox { display: flex; flex-wrap: wrap; }
.downloadBnr .downloadBox-l { display: flex; align-items: center; }
.downloadBnr .downloadBox-l .miniLogo { width: 5.4rem; }
.downloadBnr .downloadBox-l .ttl {
  flex: 1;
  font-size: 2.2rem;
  color: white;
  line-height: 1.4;
  padding: 0 1rem;
}
.downloadBnr .downloadBox-r {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.downloadBnr .downloadBox-r .item { flex: 1; padding-right: 0.5rem; }

@media screen and (max-width: 1024px) {
  .downloadBnr .downloadBox-l .miniLogo { display: none; }
  .downloadBnr .downloadBox-l .ttl {
    font-size: 1.5rem;
    text-align: center;
    padding-bottom: 0.5rem;
  }
  .downloadBnr .downloadBox-r { justify-content: center; }
  .downloadBnr .downloadBox-r .item {
    flex: 0 1 auto;
    width: 30% !important;
  }
}

/* 見出し */
.head01 {
  font-size: 3.6rem;
  font-weight: 500;
  text-align: center;
  position: relative;
  padding-bottom: 2rem;
}
.head01::before {
  position: absolute;
  content: "";
  display: block;
  width: 11rem;
  height: 0.5rem;
  background: linear-gradient(90deg, #ff4d5a 50%, #df2c28 50%);
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  .head01 { font-size: 2rem; }
}

.mediumTxt {
  font-size: 2.4rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .mediumTxt { font-size: 1.5rem; }
}

/* ニュース */
.news .newsBox .item:hover{ cursor: auto; }

/* LINE Iframe */
iframe#lineFrame {
  width: 100%;
  height: 100%;
  min-height: 70rem;
  margin-bottom: 10rem;
  padding: 2rem 0 4rem;
  overflow-y: hidden;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
iframe#lineFrame::-webkit-scrollbar { display:none; }

@media screen and (max-width: 767px) {
  iframe#lineFrame {
    min-height: 55rem;
    margin-bottom: 2rem;
    padding: 1rem 0 2rem;
  }
}

/* ページトップボタン */
.page-top {
  position: fixed;
  right: 1em;
  bottom: 1em;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 10;
  transition: all 0.3s ease;
}
.show { opacity: 0; }
.show.scrolled { opacity: 1; }
.page-top:after {
  content: "";
  position: absolute;
  top: calc(50% - 3px);
  left: calc(50% - 5px);
  width: 10px;
  height: 10px;
  border-left: 2px solid #fff;
  border-top: 2px solid #fff;
  transform: rotate(45deg);
}


/* ==========================================================================
   6. Footer
   ========================================================================== */

.pageFooter {
  color: red; /* 元のCSS指定 */
}

.under { padding: 3rem 0; }

.underList {
  display: flex;
  justify-content: center;
  max-width: 80rem;
  padding: 0 1rem;
  margin: 0 auto;
  flex-wrap: wrap;
}
.underList>li { padding: 0 2rem; }
.underList>li>a {
  font-size: 1.4rem;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 1024px) {
  .underList>li { width: 100%; padding-bottom: 1rem; }
}

.copyBox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 88rem;
  margin: 0 auto;
  padding: 0 4rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}
.copyBox-l {
  max-width: 12.2rem;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .copyBox { margin-bottom: 5rem; }
  .copyBox-l {
    width: 100%;
    text-align: center;
    max-width: 11rem;
    margin: auto;
  }
  .copyBox-r {
    width: 100%;
    padding-top: 1rem;
    text-align: center;
  }
}

.footer-nav-bottom {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding-top: 25px;
  margin-bottom: 38px;
  font-size: 1.4rem;
}
.footer-nav-bottom li:not(:last-child) { margin-right: 16px; }
.footer-nav-title {
  position: relative;
  padding-left: 14px;
}
.footer-nav-title::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 6px;
  height: 6px;
  margin-right: 5px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  transform: rotate(45deg) translateY(-50%);
}

@media screen and (max-width: 767px) {
  .footer-nav-bottom {
    display: block;
    padding-left: 6%;
  }
  .footer-nav-bottom li:not(:last-child) {
    margin-right: 0;
    margin-bottom: 10px;
  }
  .footer-nav-title { font-size: 1rem; }
}

.shohyou { padding: 3rem 0 2rem; }
.shohyou-desc {
  font-size: 1.3rem;
  font-weight: 600;
  padding: 0 1.5rem;
}


/* ==========================================================================
   7. Rules & Terms Specific Styles (Merged from rule.css & terms_style.css)
   ========================================================================== */

/* ルールボックスのコンテナ */
.rule { overflow: hidden; }
.rule .ruleBox {
  padding: 2rem 2rem 2rem;
  letter-spacing: 0.1em;
  line-height: 1.65;
  margin-bottom: 3rem;
  overflow-x: hidden;
  height: 55rem;
}

/* スマホ時のpadding調整（terms_style.cssの設定を優先して採用） */
@media screen and (max-width: 767px) {
  .rule .ruleBox {
    padding: 1rem 0.5rem 2rem;
    width: 100%;
    height: 45rem;
  }
}

/* 利用規約や法律系のページ用（スクロールさせない） */
.rule.terms, .rule.law {
  overflow-y: hidden;
  height: auto;
  border: none;
}
.law .ruleBox { border: none; }
.ruleBox.termBox { height: 100%; }
@media screen and (max-width: 767px) {
  .rule .ruleBox.termBox {
    width: 100%;
    height: 100%;
  }
}

/* ルールボックス内のテキスト・リスト */
.rule .ruleBox .postTime { text-align: right; margin-bottom: 1rem; }
.rule .ruleBox h2 {
  font-size: 1.9rem;
  font-weight: 700;
  padding-bottom: 0.5rem;
  padding-top: 2.5rem;
}
.rule .mediumTxt { font-weight: 500; margin-bottom: 1em; }

.rule .ruleBox p {
  padding-left: 5rem;
  padding-bottom: 1.5rem;
  padding-top: 1rem;
}
.rule .ruleBox p.postTxt { padding-left: 0rem; }
.rule .ruleBox p.terms_ttl { padding-left: 0; }

.rule .ruleBox ul, .rule .ruleBox ol {
  font-size: 1.6rem;
  padding-left: 4rem;
  padding-bottom: 1.5rem;
  padding-top: 1rem;
}
@media screen and (max-width: 767px) {
  .rule .ruleBox p { padding-left: 1rem; }
  .rule .ruleBox ul, .rule .ruleBox ol {
    font-size: 1.3rem;
    padding-left: 1rem;
  }
}

/* リストスタイル（インデント・カウンター） */
.rule .ruleBox ul {
  list-style-type: none;
  text-indent: -1.7em;
  margin-left: 1.7em;
}
.ruleBox ol { counter-reset: count 0; }
.ruleBox ol li { position: relative; padding-left: 1rem; }
.ruleBox ol ul li:before { display: none; }

/* 1. 2. 3. ... */
.ruleBox .postStart li:before,
.ruleBox .postStart2 li:before {
  content: counter(count) ". ";
  counter-increment: count 1;
  position: absolute;
  left: -1em;
}
@media screen and (max-width: 767px) {
  .ruleBox .postStart li:before,
  .ruleBox .postStart2 li:before { left: -0.5em; }
}

/* サオリストの上書き解除 */
.ruleBox .postStart2 li li:before {
  content: "";
  counter-increment: none;
}

/* (1) (2) ... */
.rule .ruleBox ol.postWrap { padding-left: 3rem; }
.ruleBox .postWrap li { position: relative; padding-left: 1rem; }
.ruleBox .postWrap li:before {
  counter-increment: count 1;
  content: "("counter(count)")";
  position: absolute;
  left: -1.5rem;
}
.ruleBox .postStart li .postWrap li:before { left: -2.5rem; }
@media screen and (max-width: 767px) {
  .rule .ruleBox ol.postWrap { padding-left: 1rem; }
  .ruleBox .postWrap li:before { left: -1rem; }
  .ruleBox .postStart li .postWrap li:before { left: -1.8rem; }
}

/* （ 1 ） （ 2 ） ... terms_styleのスタイル */
.ruleBox .postWrap2 li { position: relative; padding-left: 3.5rem; }
.ruleBox .postWrap2 > li:before {
  counter-increment: count 1;
  content: "（ "counter(count)" ）";
  position: absolute;
  left: -2rem;
}
@media screen and (max-width: 767px) {
  .ruleBox .postWrap2 li:before { left: -0.5rem; }
}

/* (i) (ii) ... */
.ruleBox .postFin li { position: relative; padding-left: 1rem; }
.ruleBox .postFin li:before {
  counter-increment: count 1;
  content: "("counter(count, lower-roman)")";
  position: absolute;
  left: -1.5rem;
}
.ruleBox .postStart li .postFin li:before { left: -2rem; }
@media screen and (max-width: 767px) {
  .ruleBox .postFin li:before { left: -1rem; }
  .ruleBox .postStart li .postFin li:before { left: -1.5rem; }
}

/* その他リストユーティリティ */
.ruleBox .disc li {
  position: relative;
  padding-left: 0rem;
  list-style-type: disc;
  text-indent: 0em;
  margin-left: 0em;
}
.ruleBox .ul_ofuse li {
  position: relative;
  padding-left: 0rem;
  text-indent: -1.5em;
  margin-left: 0em;
}

/* テーブル風レイアウト (.terms_box) */
.terms_ttl { font-weight: 700; }
.terms_cntr { display: block; text-align: center; }
.terms_right { display: block; text-align: right; }
.terms_ba { word-break: break-all; }
.t_mb0 { margin-bottom: 0em; }

.terms_box, .terms_box2 {
  display: flex;
  flex-wrap: wrap;
  border: solid #000;
  font-size: 1.3rem;
  word-break: break-all;
  margin-bottom: 2em;
}

/* terms_box specific */
.terms_box { border-width: 1px 0 0 1px; }
.terms_box div {
  display: flex;
  flex-wrap: wrap;
  border: solid #000;
  border-width: 0 1px 1px 0;
  width: 100%;
  padding: 0.8em 1em;
}

/* terms_box2 specific */
.terms_box2 { border: 1px solid #000; gap: 1px; padding: 1px; background: #000; }
.terms_box2 div {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  padding: 0.8em 1em;
  background: #fff; /* 隙間をボーダーに見せるため白背景 */
}

.terms_box div.head, .terms_box2 div.head {
  background-color: #f7f7f7;
  font-weight: 700;
}

@media (min-width: 768px) {
  .terms_box, .terms_box2 { font-size: 1.6rem; }
  
  /* terms_box PC Layout */
  .terms_box div { width: 67%; }
  .terms_box div.head { width: 33%; }
  .terms_box div.w100 { width: 100%; }

  /* terms_box2 PC Layout */
  .terms_box2 div { width: 50%; flex-grow: 1; }
  .terms_box2 div.head { width: 33%; flex-grow: 0; }
}

/* サブタイトル */
.terms-sub--ttl {
  font-size: 16px;
  padding-top: 10px;
  font-weight: 500;
}
@media (max-width: 767px) {
  .terms-sub--ttl { font-size: 0.0427vw; /* 元コード維持だが小さすぎる可能性あり要確認 */ }
}

/* ポリシーテーブル */
.policy-table th, .policy-table td {
  border-width: 1px;
  padding: 0.5em;
}
@media (max-width: 767px) {
  .policy-table {
    table-layout: fixed;
    max-width: 280px;
    width: 100%;
    margin: 0 auto;
  }
}

/* ルールページ用ボタン */
.rule .btnWrap {
  padding: 7rem 0;
  display: flex;
  justify-content: center;
}
.rule .btnWrap .btn-red {
  font-size: 1.6rem;
  padding: 1.7rem;
  background-color: #df2c28;
  width: 80%;
  max-width: 35rem;
  text-align: center;
  color: white;
  border-radius: 6px;
  position: relative;
  transition: all 0.3s ease;
}
.rule .btnWrap .btn-red:hover { opacity: 0.8; }
.rule .btnWrap .btn-red::before {
  content: "\e909";
  font-family: "icomoon";
  font-size: 1.2rem;
  position: absolute;
  left: 2rem;
  top: 50%;
  transform: translateY(-50%);
}

body * {
    font-size:14px  !important;
}
@media screen and (min-width: 768px) {
    body * {
        font-size:14px !important;
    }
}
h1.pagetitle{
    font-size:16px !important;
    line-height:20px !important;
    font-weight:700 !important;
}
@media screen and (min-width: 768px) {
    h1.pagetitle{
        font-size: 16px !important;
        line-height: 20px !important;
    }
}
h2 {
    font-size: 16px !important;
    line-height:20px !important;
    font-weight: 700 !important;
}
@media screen and (min-width: 768px) {
    h2 {
        font-size: 16px !important;
        line-height:20px !important;
    }
}

.ruleBox .disc {
    padding-left:0 !important;
}
.ruleBox .disc li{
    list-style:none !important;
    padding-left:16px;
    position:relative;
}
.ruleBox .disc li::before {
    content:"・";
    position:absolute;
    left:0;
    top:0;
    display:block;
}
a {
    text-decoration:underline !important;
}
a:hover {
    text-decoration:none !important;
}