@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap");
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	under__title
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.under__title {
  height: 132px;
  background: #0085ff;
}

@media only screen and (max-width: 768px) {
  .under__title {
    height: 80px;
  }
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	price__content
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.price__content {
  font-family: "Helvetica Neue";
  margin: 80px 0;
}
.price__content.first {
  margin: 40px 0 80px;
}
.price__content h2 {
  position: relative;
  padding: 4px 0 4px 24px;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
}
.price__content h2:before {
  content: "";
  width: 4px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #0085ff;
}
.price__content h3 {
  font-weight: 700;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  margin-bottom: 24px;
}
.price__content h4 {
  position: relative;
  padding: 4px 0 4px 24px;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
}
.price__content h4:before {
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
}

.price__content h4.cebu:before {
  background: linear-gradient(135deg, #92d3e8 0%, #0085ff 100%);
}

.price__content h4.okinawa:before {
  background: linear-gradient(135deg, #36b906 0%, #31c1bc 100%);
}

.price__content h4.niseko:before {
  background: linear-gradient(135deg, #ffdd4d 0%, #f49c10 100%);
}
.price__content p {
  font-size: 14px;
  margin-bottom: 24px;
}
.price__content .price__btn {
  text-align: center;
}
.price__content .price__btn a {
  display: inline-block;
  color: #0085ff;
  padding-bottom: 4px;
  border-bottom: 1px solid #0085ff;
  width: auto;
  margin: 0 auto;
}
.price__content .type1__flex2 {
  flex-wrap: wrap;
}
.price__content .type1__flex2 > div {
  max-width: 100%;
  width: 48.837209302%;
}

@media only screen and (max-width: 768px) {
  .price__content {
    margin: 64px 0;
    padding: 0 20px;
  }
  .price__content.first {
    margin: 24px 0 64px;
  }
  .price__content h2 {
    padding: 4px 0 4px 20px;
    font-size: 20px;
  }
  .price__content h3 {
    font-size: 14px;
  }
  .price__content h4 {
    padding: 4px 0 4px 20px;
    font-size: 14px;
  }
  .price__content h4:before {
    width: 12px;
    height: 12px;
  }
  .price__content p {
    font-size: 12px;
  }
  .price__content .type1__flex2 > div {
    width: 100%;
  }
  .price__content .scroll {
    overflow: scroll;
  }
  .price__content .scroll img {
    width: 560px;
  }
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	price__flex
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.price__content .price__flex {
  display: flex;
  justify-content: space-between;
}
.price__content .price__flex > div {
  max-width: 100px;
  text-align: center;
}
.price__content .price__flex > div img {
  margin-bottom: 8px;
}
.price__content .price__flex > div p {
  font-weight: 700;
}

@media only screen and (max-width: 768px) {
  .price__content .price__flex {
    flex-wrap: wrap;
  }
  .price__content .price__flex > div {
    width: 32.241555783%;
    max-width: 180px;
  }
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	price__course
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.price__course {
  align-items: stretch;
}
.price__course--box {
  cursor: pointer;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 24px;
  text-align: center;
}
.price__course--box:nth-of-type(2n-1) {
  border: 2px solid #56c1ff;
}
.price__course--box:nth-of-type(2n) {
  border: 2px solid #0385ff;
}
.price__course--box > p {
  margin-bottom: 0;
}
.price__course--box > p:nth-of-type(1) {
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  padding-bottom: 16px;
  margin-bottom: 16px;
}
.price__course--box:nth-of-type(2n-1) > p:nth-of-type(1) {
  color: #56c1ff;
  border-bottom: 2px solid #56c1ff;
}
.price__course--box:nth-of-type(2n) > p:nth-of-type(1) {
  color: #0385ff;
  border-bottom: 2px solid #0385ff;
}
.price__course--box > p:nth-of-type(2) {
  position: relative;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  padding-left: 24px;
  margin-bottom: 16px;
  text-align: left;
}
.price__course--box > p:nth-of-type(2):before {
  display: block;
  content: "";
  width: 14.72px;
  height: 12.75px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
}
.price__course--box:nth-of-type(2n-1) > p:nth-of-type(2):before {
  background: url(../images/price/price__course--lightblue.svg);
  background-repeat: no-repeat;
  background-position: center;
}
.price__course--box:nth-of-type(2n) > p:nth-of-type(2):before {
  background: url(../images/price/price__course--blue.svg);
  background-repeat: no-repeat;
  background-position: center;
}
.price__course--box > p:nth-of-type(3) {
  display: inline-block;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.price__course--box:nth-of-type(2n-1) > p:nth-of-type(3) {
  color: #56c1ff;
  border-bottom: 1px solid #56c1ff;
}
.price__course--box:nth-of-type(2n) > p:nth-of-type(3) {
  color: #0385ff;
  border-bottom: 1px solid #0385ff;
}
.price__course--box div {
  text-align: left;
  margin-bottom: 16px;
}
.price__course--box div p {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-bottom: 0;
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	price__modal
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.price__modal {
  display: none;
  font-family: "Helvetica Neue";
}
.price__modal.active {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 80px 0;
  background: rgba(39, 39, 39, 0.95);
  z-index: 20;
}
.price__modal--box {
  max-width: 647px;
  background: #fff;
  border-radius: 8px;
  padding: 20px;
  margin: 0 auto;
  text-align: center;
}
.modal1 .price__modal--box,
.modal3 .price__modal--box {
  border: 2px solid #56c1ff;
}
.modal2 .price__modal--box,
.modal4 .price__modal--box {
  border: 2px solid #0385ff;
}
.price__modal--box--title {
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  padding-bottom: 16px;
  margin-bottom: 16px;
}
.modal1 .price__modal--box--title,
.modal3 .price__modal--box--title {
  color: #56c1ff;
  border-bottom: 2px solid #56c1ff;
}
.modal2 .price__modal--box--title,
.modal4 .price__modal--box--title {
  color: #0385ff;
  border-bottom: 2px solid #0385ff;
}
.price__modal--box--text {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-bottom: 20px;
  text-align: left;
}
.price__modal--box .type1__flex2 {
  align-items: flex-start;
}
.price__modal--box--subtitle {
  position: relative;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  padding-left: 24px;
  margin-bottom: 16px;
  text-align: left;
}
.price__modal--box--subtitle:before {
  display: block;
  content: "";
  width: 14.72px;
  height: 12.75px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
}
.modal1 .price__modal--box--subtitle:before,
.modal3.price__modal--box--subtitle:before {
  background: url(../images/price/price__course--lightblue.svg);
  background-repeat: no-repeat;
  background-position: center;
}
.modal2 .price__modal--box--subtitle:before,
.modal4 .price__modal--box--subtitle:before {
  background: url(../images/price/price__course--blue.svg);
  background-repeat: no-repeat;
  background-position: center;
}
.price__modal--box--points {
  text-align: left;
  margin-bottom: 16px;
}
.price__modal--box--points p {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-bottom: 0;
}

@media only screen and (max-width: 768px) {
  .price__modal--box {
    max-width: 100%;
    margin: 0 20px;
  }
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	price__cta
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.price__cta {
  font-family: "Helvetica Neue";
  background: linear-gradient(135deg, #fc75ae 0%, #eb9377 100%);
  padding: 40px 0;
}
.price__cta h2 {
  color: #fff;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  margin-bottom: 32px;
}

@media only screen and (max-width: 768px) {
  .price__cta {
    padding: 40px 32px;
  }
  .price__cta h2 {
    font-size: 20px;
  }
  .price__cta .type1__flex2 {
    display: block;
  }
  .price__cta .type1__flex2 div:first-of-type {
    margin-bottom: 32px;
  }
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	price__pickup
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.price__pickup {
  font-family: "Helvetica Neue";
  margin: 80px 0;
}
.price__pickup h2 {
  font-weight: 700;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  margin-bottom: 32px;
}
.price__pickup .type1__flex2 {
  flex-wrap: wrap;
}
.price__pickup .type1__flex2 div {
  margin-bottom: 32px;
}
.price__pickup .type1__flex2 div p {
  font-weight: 700;
  text-align: center;
}
.price__pickup .type1__flex2 div img {
  margin-bottom: 16px;
}

@media only screen and (max-width: 768px) {
  .price__pickup {
    margin: 64px 0;
    padding: 0 20px;
  }
}
/* ===== Unified Table System ===== */
.plan-table-wrap {
  overflow-x: auto;
  border: 2px solid #000;
border-radius: 12px;
}

.plan-table,
.plan-table * {
  font-family: "Noto Sans JP", "Helvetica Neue", Arial, sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
}

.plan-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  border-spacing: 0;
  background: #fff;
}

/* Header cells */
.plan-table thead th {
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  text-align: center;
  padding: 12px 10px;
  border-right: 1px solid #dbdbdb;
}

.plan-table thead th:last-child {
  border-right: none;
}

.plan-table thead th:first-child {
  background: #fff;
  color: #000;
  text-align: left;
  padding-left: 16px;
  width: 28%;
}

.plan-table thead th:not(:first-child) {
  width: 24%;
}

/* Default: Multi-color scheme (Plan) */
.plan-table thead th.lite {
  background: #fe8abb;
}

.plan-table thead th.standard {
  background: #0786f8;
}

.plan-table thead th.premium {
  background: #5ccb2f;
}

.plan-table tbody th {
  background: #eaeaea;
  color: #000;
}

.plan-table tbody tr:nth-child(even) td {
  background-color: #f0f0f0;
}

/* Price scheme modifier: Blue theme */
.plan-table.price-scheme thead th:not(:first-child) {
  background-color: #0b82f1;
}

.plan-table.price-scheme tbody th {
  background-color: #4aa3ff;
  color: #ffffff;
}

.plan-table.price-scheme tbody tr:nth-child(even) td {
  background-color: #f3f3f3;
}

/* Left column row headers */
.plan-table tbody th {
  font-weight: 700;
  font-size: 16px;
  text-align: left;
  padding: 18px 24px;
  white-space: nowrap;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  vertical-align: middle;
}

.plan-table tbody tr:first-child th {
  border-top: none;
}

.plan-table tbody tr:last-child th {
  border-bottom: none;
}

/* Body cells */
.plan-table tbody td {
  background: #fff;
  color: #222;
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  padding: 18px 10px !important;
  border-right: 1px solid #dbdbdb;
}

.plan-table tbody td:last-child {
  border-right: none;
}

/* Lists inside cells */
.plan-table ul {
  padding-left: 0.8em;
  margin: 0;
  text-align: left;
  list-style-type: disc;
}

.plan-table li {
  font-size: 12px;
  font-weight: 550;
}

/* Price emphasis */
.plan-table .price {
  font-size: 22px;
  font-weight: 500;
}

/* Mobile responsive */
@media (max-width: 768px) {
  .plan-table {
    min-width: 700px;
  }

  .plan-table thead th,
  .plan-table tbody th,
  .plan-table tbody td {
    font-size: 14px;
    padding: 14px 8px;
  }

  .plan-table .price {
    font-size: 20px;
  }
}

/* Yen symbol styling */
.yen-symbol {
  font-size: 16px;
  font-weight: inherit;
}

/* ===== Price Summary Base ===== */
.plan-table.price-summary {
  --main-background-color: #6ad336;
  --sub-background-color: #9af07a;
  --color: #fff;
}

.plan-table.price-summary thead th {
  background: var(--main-background-color);
  color: var(--color);
  font-size: 16px;
  font-weight: 700;
  padding: 20px;
  text-align: center;
  border-right: none;
}

.plan-table.price-summary tbody th {
  background: #efefef;
  font-size: 16px;
  font-weight: bold;
  width: 35%;
  border-right: none;
}

.plan-table.price-summary tbody td {
  text-align: left;
  font-size: 18px;
  font-weight: 600;
  padding-left: 24px !important;
  border-right: none;
  border-left: 2px solid #fff;
}

.plan-table.price-summary .section-header th {
  background: var(--sub-background-color);
  color: var(--color);
  text-align: center;
}

.plan-table.price-summary .section-header + tr th {
  border-top: none;
}

.plan-table.price-summary .discount th,
.plan-table.price-summary .discount td {
  color: #ff0000;
}

.plan-table.price-summary .price {
  font-size: 20px;
  font-weight: 550;
}

.plan-table.price-summary .total th,
.plan-table.price-summary .total td {
  font-size: 22px;
  font-weight: 650;
}

/* ===== Color Themes ===== */
.plan-table.price-summary.theme-green {
  --main-background-color: #5cca34;
  --sub-background-color: #94ef72;
  --color: #fff;
}

.plan-table.price-summary.theme-blue {
  --main-background-color: #0085ff;
  --sub-background-color: #44a5ff;
  --color: #fff;
}

.plan-table.price-summary.theme-yellow {
  --main-background-color: #ffd93a;
  --sub-background-color: #ffe67b;
  --color: #000;
}
