/** Shopify CDN: Minification failed

Line 365:1 Expected "}" to go with "{"

**/
/* 基本テキスト */
p {
  font-size: clamp(13px, 1.5vw, 15px); /* Fluid Typography for p */
  margin-top: 0;
}

.stepbar {
  max-width: 900px;
  margin: 30px auto;
  padding: 20px;
}

.stepbar .stepbarwrap {
  margin: 2em 0;
  position: relative;
}

.step-title {
  font-size: clamp(18px, 2.5vw, 20px); /* Fluid Typography for step-title (h2相当) */
  margin: 0px;
}

.stepbar .stepbarwrap .steptitle {
  display: inline-flex;
  align-items: center;
}

.stepbar .stepbarwrap .stepline {
  display: block;
  width: 0;
  border-left: 4px dotted #333 !important;
  height: calc(100% + 2em);
  position: absolute;
  top: 1em;
  left: 30px;
  z-index: 0;
}

.stepbar .stepbarwrap .steptitle .stepcircle {
  display: inline-block;
  width: 4em;
  height: 4em;
  border-radius: 50%;
  background-color: #333;
  color: #fff;
  text-align: center;
  z-index: 1;
  position: relative;
}

.stepbar .stepbarwrap .steptitle .stepcircle span {
  display: inline-block;
  line-height: 1.2em;
  font-size: clamp(12px, 1.5vw, 14px); /* Fluid Typography for stepcircle text */
  font-weight: bold;
  font-family: Cabin, sans-serif;
  position: relative;
  top: 15px;
}

.stepbar .stepbarwrap .steptitle .title {
  margin: 0.5em 1.8em;
  font-weight: bold;
  font-size: clamp(18px, 2.5vw, 20px); /* Fluid Typography for title (h3相当) */
}

.stepbar .stepbarwrap .steptxt {
  padding-left: 6em;
}

.stepbarwrap:last-of-type .stepline {
  display: none;
}

.remarks-box {
  background-color: #f9f9f9;
  border-radius: 8px;
  font-size: clamp(11px, 1.5vw, 13px); /* Fluid Typography for remarks-box */
  padding: 15px;
  margin-top: 20px;
}

/* Guide Links */
.guide-link {
  display: flex;
  justify-content: center;
  margin: 0 auto 80px;
  padding: 0;
  list-style: none;
}

.guide-link li {
  list-style: none;
}

.guide-link li a {
  width: 207.5px;
  height: 40px;
  text-align: left;
  background-color: #fff;
  padding: 15px 20px;
  text-decoration: none;
  color: #333;
  font-size: clamp(12px, 1.5vw, 14px); /* Fluid Typography for guide-link */
  display: flex;
  align-items: center;
  position: relative;
  border-right: 2px dotted #ccc;
}

.guide-link li:first-child a {
  border-left: 2px dotted #ccc;
}

.guide-link li a::after {
  content: '';
  border: solid 2px #42BDD8;
  border-left: none;
  border-top: none;
  display: inline-block;
  width: 8px;
  height: 8px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.3s ease, top 0.3s ease;
}

.guide-link li a:hover::after {
  top: calc(50% + 5px);
}

.guide-link li:last-child a {
  border-right: 2px dotted #ccc;
}

.guide-title {
  font-size: clamp(24px, 3vw, 28px); /* Fluid Typography for guide-title (h2相当) */
  text-align: center;
}

.step-section {
  max-width: 900px;
  margin: 30px auto;
  padding: 20px;
}

.step-header {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #CCC;
  padding-bottom: 5px;
  margin: 50px 0 20px;
}

.step-number {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-right: 15px;
  font-family: 'Cabin', sans-serif;
  font-weight: bold;
  color: #333;
}

.step-label {
  font-size: clamp(12px, 1.5vw, 14px); /* Fluid Typography for step-label */
  font-weight: bold;
  letter-spacing: 0.1em;
  color: #333;
  margin-bottom: -5px;
}

.step-count {
  font-size: clamp(40px, 5vw, 48px); /* Fluid Typography for step-count */
  font-weight: bold;
  line-height: 1;
  color: #333;
}

.step-title-h3 {
  background: #f9f9f9;
  display: table;
  font-size: clamp(14px, 1.5vw, 16px); /* Fluid Typography for step-title-h3 (h3相当) */
  letter-spacing: 2px;
  margin: 30px 0 10px;
  padding: 10px 30px;
}

/* Confirmation Message */
.confirmation-message {
  border: 1px solid #ccc;
  padding: 15px;
  text-align: center;
  margin-top: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}

.confirmation-message svg {
  margin-right: 8px;
}

.confirmation-message p {
  margin: 0;
  font-weight: bold;
  text-align: center;
  font-size: clamp(11px, 1.5vw, 13px); /* Fluid Typography for confirmation-message p */
}

/* Payment Section */
.payment-section .bank-info-list {
  margin: 20px 0;
  max-width: 500px;
  width: 100%;
  display: flex;
  border: 1px solid #ddd;
}

.payment-section .bank-info-title {
  background: #f9f9f9;
  justify-content: center;
  font-size: clamp(14px, 1.5vw, 16px); /* Fluid Typography for bank-info-title */
  padding: 10px;
  white-space: nowrap;
}

.payment-section .bank-info-detail {
  padding: 10px 15px;
  flex: 1;
  font-size: clamp(14px, 1.5vw, 16px); /* Fluid Typography for bank-info-detail */
  line-height: 28px;
}

.payment-notice {
  font-size: clamp(11px, 1.5vw, 13px); /* Fluid Typography for payment-notice */
  list-style: disc inside;
  padding-inline-start: 0; /* 左側のパディングをリセット */
  padding-left: 0; /* 互換性のため */
}

.payment-notice li::marker {
  color: #42BDD8;
}

.credit-card-image {
  max-width: 250px;
  height: auto;
  display: inline-block;
}

/* Custom Table */
.custom-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.custom-table {
  max-width: 500px;
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #ddd;
}

.custom-table th,
.custom-table td {
  padding: 10px;
  border: 1px solid #ddd;
  text-align: left;
  font-size: clamp(12px, 1.5vw, 14px); /* Fluid Typography for table */
}

.custom-table th {
  background-color: #f9f9f9;
  color: #333;
}

.custom-table td:nth-child(2) {
  white-space: nowrap;
}

/* モバイル対応（max-width: 960px） */
@media (max-width: 960px) {
  .stepbar .stepbarwrap .steptitle .stepcircle {
    width: 3em;
    height: 3em;
  }

  .stepbar .stepbarwrap .steptitle .stepcircle span {
    top: 10px;
  }

  .stepbar .stepbarwrap .steptitle .title {
    margin-left: 10px;
  }

  .stepbar .stepbarwrap .steptxt {
    padding-left: 4em;
  }

  .stepbar .stepbarwrap .stepline {
    border-left: 3px dotted #333 !important;
    left: 20px;
  }

  .custom-page-header__nav {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }
}

/* モバイル対応（max-width: 768px） */
@media (max-width: 768px) {
  .guide-link {
    display: block;
    text-align: center;
  }

  .guide-link li {
    width: auto;
    margin-bottom: 10px;
  }

  .guide-link li a {
    width: auto;
    max-width: 90%;
    margin: 0 auto;
    padding: 10px;
    height: 30px;
    text-align: left;
    border-bottom: 2px dotted #ccc;
    border-right: none;
    border-left: none;
  }

  .guide-link li:last-child a {
    border-bottom: none;
  }

  p {

  .step-section {
    padding: 25px;
  }

  .confirmation-message {
    padding: 12px;
  }

  .payment-section .bank-info-detail {
    margin-left: 0; /* モバイル時に左マージンをリセット */
  }

}