@charset "utf-8";

.mb-20 {
  margin-bottom: 20px;
}

.mb-60 {
  margin-bottom: 60px;
}

.fs-14 {
  font-size: 14px;
  line-height: 1.5;
}

.fw-bold {
  font-weight: bold;
}

.txt-red {
  color: var(--clr-red);
}

.d-flex {
  display: flex;
}

.d-block {
  display: block;
}

.position-relative {
  position: relative;
}

.sub-sec-ttl,
.registration-content {
  margin-bottom: 40px;
}

.registration-content:last-child {
  margin-bottom: 0;
}

.entrance-fee {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.entrance-fee tr th,
.entrance-fee tr td {
  padding: 10px 18px;
  border: 1px solid var(--clr-border);
  vertical-align: middle;
  text-align: left;
}

.entrance-fee tr th {
  background-color: var(--clr-bg);
}

.pre-regist-list li {
  font-size: 14px;
  line-height: 1.5;
  padding-left: 15px;
  position: relative;
}

.pre-regist-list li::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}

.register-steps,
.gray-container {
  background-color: var(--clr-bg);
  padding: 20px 20px 0 20px;
}

.register-steps ol {
  counter-reset: number;
  padding-left: 0;
}

.register-steps ol>li {
  padding-left: 55px;
  margin-bottom: 20px;
  position: relative;
}

.register-steps ol>li::before {
  content: 'Step'counter(number)'.';
  counter-increment: number;
  position: absolute;
  top: 0;
  left: 0;
  font-weight: bold;
}

.pre-regist-list {
  margin-top: 10px;
}

.link-btn-container {
  padding-block: 30px;
}

.gray-border-top {
  border-top: 1px dashed var(--clr-border);
}

.txt-center {
  text-align: center;
}

.link-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  line-height: 1.5;
  padding: 10px;
  margin-top: 20px;
  background-color: var(--clr-primary);
  color: var(--clr-neutral-100);
  font-weight: 500;
  transition: opacity .6s;
  width: 280px;
  max-width: 100%;
  border-radius: 100vw;
  gap: 5px;
}

.link-btn:hover {
  opacity: 0.7;
}

.payment-method h4 {
  margin-bottom: 10px;
}

.payment-method>div {
  padding-left: 16px;
  margin-bottom: 15px;
}

.cancel-date {
  display: inline-block;
  width: 220px;
}

.address h5 {
  font-size: 16px;
}

.gray-border {
  border: 1px solid var(--clr-border);
  padding: 20px;
  margin: 10px 0;
}

.phone {
  color: var(--clr-neutral-900);
}

@media (max-width: 768.9px) {
  .main-content {
    padding-bottom: 40px;
  }

  .registration-content h4 {
    margin-bottom: 10px;
  }

  .entrance-fee-sp h4 {
    margin-top: 20px;
  }

  .entrance-fee {
    margin-top: 0;
    table-layout: auto;
  }

  .entrance-fee tr th,
  .entrance-fee tr td {
    padding: 9px;
    text-align: center;
  }

  .entrance-fee-sp.pcnone+.pre-regist-list {
    margin-top: 10px;
  }

  .register-steps ol>li {
    padding-left: 0;
  }

  .register-steps ol>li::before {
    position: unset;
    display: block;
  }
}