/* ===================================
   Reset & Base
   =================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  background-color: #e8f0f8;
  color: #333;
  line-height: 1.6;
  min-height: 100vh;
}

/* ===================================
   Page Header
   =================================== */
.page-header {
  text-align: center;
  padding: 64px 24px;
  background-color: #e8f0f8;
}

.page-header__brand {
  font-size: 35px;
  font-weight: 700;
  color: #222;
  margin-bottom: 4px;
}

.page-header__title {
  font-size: 27px;
  font-weight: 700;
  color: #222;
}

/* ===================================
   Confirmation Card (white area)
   =================================== */
.confirmation-card {
  background-color: #fff;
  max-width: 780px;
  margin: 0 auto 0;
  border-radius: 0;
  padding: 32px 32px;
}

/* ===================================
   User Info Bar
   =================================== */
.user-info-bar {
  background-color: #dce8f0;
  padding: 12px 20px;
  text-align: center;
  font-size: 12px;
  color: #555;
  letter-spacing: 0.02em;
}

.user-info-bar__separator {
  margin: 0 8px;
}

/* ===================================
   Section Common Styles
   =================================== */
.section {
  padding: 40px 24px;
}

.section--check {
  min-width: 732px;
  @media screen and (max-width: 768px) {
    min-width: 90%;
  }
}

.section__heading {
  font-size: 28px;
  font-weight: 700;
  color: #333;
  text-align: center;
  margin-bottom: 12px;
}

.section__divider {
  display: block;
  width: 50px;
  height: 4px;
  background-color: #e63e3e;
  margin: 0 auto 35px;
  border: none;
  border-radius: 100px;
}

/* ===================================
   Plan Table Section
   =================================== */
.plan-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}

.plan-table__header {
  border-bottom: 1px solid #ccc;
}

.plan-table__header-cell {
  padding: 8px 4px;
  font-weight: 700;
  color: #666;
  text-align: left;
  font-size: 12px;
  white-space: nowrap;
}

th.plan-table__header-cell--price, 
td.plan-table__header-cell--price {
  width:15%;
  text-align: right;
}

.plan-table__body-row {
  border-bottom: 1px solid #eee;
}

.plan-table__body-cell {
  padding: 10px 4px;
  font-size: 12px;
  color: #333;
  text-align: left;
  /* white-space: nowrap; */
}

/* ===================================
   Pricing Section
   =================================== */
.pricing {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 4px;
  padding: 16px 32px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.pricing__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #e63e3e;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 4px 16px;
  border-radius: 4px;
}

.pricing__amount {
  font-size: 24px;
  font-weight: 700;
  color: #333;
}

/* ===================================
   Payment Section
   =================================== */
.payment-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 auto;
  padding: 12px 28px;
  background-color: #555;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.payment-button:hover {
  background-color: #444;
}

.payment-button__arrow {
  font-size: 12px;
}

/* ===================================
   Notes Section
   =================================== */
.notes {
  padding: 24px 24px 0;
  text-align: center;
}

.notes__text {
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  margin-bottom: 24px;
}

.notes__highlight {
  color: #e63e3e;
  font-weight: 700;
  text-decoration: underline;
}

/* ===================================
   Action Buttons
   =================================== */
.action-buttons {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 16px 32px;
  gap: 16px;
}

.action-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1;
  padding: 16px 8px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  transition: opacity 0.2s ease;
  text-decoration: none;
}

.action-button:hover {
  opacity: 0.85;
}

.action-button--back {
  background-color: #fff;
  color: #666;
  border: 2px solid #ccc;
}

.action-button--submit {
  background-color: #fff;
  color: #e63e3e;
  border: 2px solid #e63e3e;
}
.action-button--disabled {
  background-color: #ccc;
  color: #fff;
  border: 2px solid #ccc;
  cursor: not-allowed;
}
.action-button__arrow--left {
  font-size: 12px;
}

.action-button__arrow--right {
  font-size: 12px;
}

/* ===================================
   Trial Info Section
   =================================== */
.trial-info {
  text-align: center;
  font-size: 14px;
  color: #555;
  margin-bottom: 24px;
  line-height: 1.8;
}

.trial-info__date {
  color: #e63e3e;
  font-weight: 700;
  font-size: 16px;
}

.trial-detail {
  background-color: #ededed;
  border-radius: 8px;
  padding: 20px 24px;
  margin: 0 auto;
}

.trial-detail__label {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin-bottom: 16px;
  text-align: center;
}

.trial-detail__row {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}

.trial-detail__left {
  flex: 0 0 auto;
}

.trial-detail__right {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.trial-detail__table {
  border-collapse: collapse;
  font-size: 12px;
}

.trial-detail__item {
  padding: 4px 20px 4px 0;
  color: #333;
  font-size: 15px;
  white-space: nowrap;
}

.trial-detail__value {
  padding: 4px 0;
  font-weight: 600;
  color: #333;
  font-size: 15px;
}

.trial-detail__notes {
  background-color: #d6e9f8;
  border-radius: 6px;
  padding: 14px 18px;
  width: 100%;
  box-sizing: border-box;
}

.trial-detail__notes p {
  font-size: 11px;
  color: #2a6cb6;
  line-height: 1.8;
  margin: 0;
}

.trial-detail__button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: #e63e3e;
  color: #fff;
  padding: 10px 20px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  transition: opacity 0.2s ease;
  white-space: nowrap;
  align-self: center;
  border:0;
  cursor: pointer;
}

.trial-detail__button:hover {
  opacity: 0.85;
}

.trial-detail__button-arrow {
  font-size: 10px;
}

.trial-detail__left {
  flex: 0 0 auto;
  background-color: #fff;
  padding: 20px;
  border-radius: 20px;
}

/* ===================================
   Plan Cards Grid
   =================================== */
.plan-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.plan-card {
  background-color: #f2f2f2;
  border-radius: 10px;
  padding: 20px 16px 16px;
  text-align: center;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  border: 2px solid transparent;
  display: block;
}

.plan-card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* Hide native radio */
.plan-card__radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Custom check mark */
.plan-card__radio-mark {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 100px;
  border: 2px solid #ccc;
  margin: 0 auto 8px;
  position: relative;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.plan-card__radio-mark::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 6px;
  width: 6px;
  height: 10px;
  border: solid transparent;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
  transition: border-color 0.2s ease;
}

/* Selected state */
.plan-card__radio:checked~.plan-card__radio-mark {
  border-color: #3b9ee0;
  background-color: #3b9ee0;
}

.plan-card__radio:checked~.plan-card__radio-mark::after {
  border-color: #fff;
}

.plan-card:has(.plan-card__radio:checked) {
  border-color: #3b9ee0;
  box-shadow: 0 2px 12px rgba(59, 158, 224, 0.2);
}

.plan-card__name {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  display: block;
  margin-bottom: 12px;
  padding-bottom: 8px;
  position: relative;
}

.plan-card__name::after {
  content: "";
  display: block;
  width: 45px;
  height: 4px;
  background-color: #e63e3e;
  margin: 8px auto 0;
  border-radius: 10px;
}

.plan-card__specs {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 12px;
}

.plan-card__spec-label {
  font-size: 10px;
  color: #888;
  padding: 3px 4px;
  text-align: left;
}

.plan-card__spec-value {
  font-size: 12px;
  font-weight: 600;
  color: #333;
  padding: 3px 4px;
  text-align: right;
}

.plan-card__discount {
  margin-top: 4px;
}

.plan-card__discount-badge {
  display: inline-block;
  background-color: #e63e3e;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  padding: 4px 18px;
  border-radius: 4px;
}

.plan-card__select {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: #333;
  padding: 3px 6px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s ease;
  width: 100%;
  max-width: 100px;
}

.plan-card__select:focus {
  border-color: #3b9ee0;
}

/* ===================================
   Option Cards Grid
   =================================== */
.option-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.option-card {
  background-color: #f2f2f2;
  border-radius: 10px;
  padding: 20px 16px 16px;
  text-align: center;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  border: 2px solid transparent;
  display: block;
}

.option-card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* Hide native checkbox */
.option-card__checkbox {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Custom check mark */
.option-card__check-mark {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 100px;
  border: 2px solid #ccc;
  margin: 0 auto 8px;
  position: relative;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.option-card__check-mark::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 6px;
  width: 6px;
  height: 10px;
  border: solid transparent;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
  transition: border-color 0.2s ease;
}

/* Checked state */
.option-card__checkbox:checked~.option-card__check-mark {
  border-color: #3b9ee0;
  background-color: #3b9ee0;
}

.option-card__checkbox:checked~.option-card__check-mark::after {
  border-color: #fff;
}

.option-card:has(.option-card__checkbox:checked) {
  border-color: #3b9ee0;
  box-shadow: 0 2px 12px rgba(59, 158, 224, 0.2);
}

.option-card__title {
  font-size: 19px;
  font-weight: 700;
  color: #333;
  margin-bottom: 8px;
  padding-bottom: 16px;
  position: relative;
}

.option-card__title::after {
  content: "";
  display: block;
  width: 45px;
  height: 4px;
  background-color: #e63e3e;
  margin: 8px auto 0;
  border-radius: 10px;
  margin-bottom: 30px;
}

.option-card__desc {
  font-size: 13px;
  color: #333;
  margin-bottom: 12px;
  margin-top: 20px;
}

.option-card__specs {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 12px;
}

.option-card__spec-label {
  font-size: 15px;
  color: #333;
  padding: 3px 4px;
  text-align: left;
}

.option-card__spec-value {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  padding: 3px 4px;
  text-align: right;
}

.option-card__discount {
  margin-top: 4px;
}

.option-card__discount-badge {
  display: inline-block;
  background-color: #e63e3e;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  padding: 4px 18px;
  border-radius: 4px;
}

/* Set input */
.option-card__set {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 14px;
  margin-top: 4px;
}

.option-card__set-label {
  font-size: 12px;
  font-weight: 700;
  color: #555;
}

.option-card__set-input {
  font-family: "Noto Sans JP", sans-serif;
  width: 64px;
  padding: 6px 8px;
  font-size: 16px;
  font-weight: 700;
  color: #333;
  text-align: center;
  border: 2px solid #ccc;
  border-radius: 6px;
  background-color: #fff;
  outline: none;
  transition: border-color 0.2s ease;
  -moz-appearance: textfield;
  appearance: textfield;
}

.option-card__set-input::-webkit-inner-spin-button,
.option-card__set-input::-webkit-outer-spin-button {
  /* -webkit-appearance: none; */
  margin: 0;
}

.option-card__set-input:focus {
  border-color: #3b9ee0;
}

/* ===================================
   Total Pricing Section
   =================================== */
.total-pricing {
  text-align: center;
}

.total-pricing__row {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.total-pricing__summary {
  margin-bottom: 16px;
}

.pricing--highlight {
  border: 2px solid #e63e3e;
}

/* Selectable pricing cards */
.pricing--selectable {
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  border: 2px solid transparent;
  position: relative;
}

.pricing--selectable:hover {
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}


.pricing__radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.pricing__radio-mark {
  width: 20px;
  height: 20px;
  border-radius: 100px;
  border: 2px solid #ccc;
  position: relative;
  flex-shrink: 0;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.pricing__radio-mark::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 5px;
  width: 6px;
  height: 10px;
  border: solid transparent;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
  transition: border-color 0.2s ease;
}

.pricing__radio:checked~.pricing__radio-mark {
  border-color: #3b9ee0;
  background-color: #3b9ee0;
}

.pricing__radio:checked~.pricing__radio-mark::after {
  border-color: #fff;
}

.pricing--selectable:has(.pricing__radio:checked) {
  border-color: #3b9ee0;
  box-shadow: 0 2px 12px rgba(59, 158, 224, 0.2);
}

.pricing__badge--yearly {
  background-color: #555;
}

.total-pricing__action {
  margin-top: 40px;
}

.action-button--full {
  flex: none;
  width: 80%;
  max-width: 360px;
  margin: 0 auto;
}

.trial-alert {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  border: 1px solid #efc9c9;
  background: #fdf2f2;
  border-radius: 6px;
  box-sizing: border-box;
  margin-bottom: 20px;
  margin-top: 20px;
}

.trial-alert__icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #e55757;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  margin-top: 2px;

}

.trial-alert__content {
  display: flex;
  flex-direction: column;
  gap: 8px;

}

.trial-alert__title {
  margin: 0;
  color: #d94b4b;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.trial-alert__text {
  margin: 0;
  color: #d94b4b;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

@media (max-width: 768px) {
  .trial-alert {
    gap: 10px;
    padding: 14px 14px;
  }

  .trial-alert__title {
    font-size: 14px;
  }

  .trial-alert__text {
    font-size: 14px;
  }
}

/* ===================================
   Status Badges (Plan Page)
   =================================== */
.status-badges {
  display: flex;
  justify-content: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.status-badge {
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
  padding: 6px 16px;
  border-radius: 4px;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

button.status-badge.status-badge--red {
  background-color: #e63f3e;
  color: #fff;
}

.status-badge-text {
  font-size: 14px;
}

.status-badge:hover {
  opacity: 0.85;
}

.status-badge--blue {
  background-color: #3b82c4;
  color: #fff;
}

.status-badge--green {
  background-color: #2ea86f;
  color: #fff;
}

/* ===================================
   Current Plan Info (Plan Page)
   =================================== */
.current-plan {
  border: 2px solid #e63e3e;
  border-radius: 8px;
  padding: 16px 24px;
  text-align: center;
  margin-bottom: 20px;
}

.current-plan__label {
  font-size: 14px;
  font-weight: 700;
  color: #e63e3e;
  margin-bottom: 8px;
}

.current-plan__info {
  font-size: 13px;
  color: #333;
  font-weight: 600;
}

.plan_title {
  font-size: 14px!important;
  font-weight: 700;
  color: #e63e3e;
  margin-bottom: 8px;
  width:80%;
  border:1px solid #e63e3e;
  border-radius: 8px;
  padding: 2px 16px;
  margin: 5px auto;
  background-color: #e63e3e;
  color: #fff;
}
/* ===================================
   Plan Tabs (Plan Page)
   =================================== */
.plan-tabs {
  display: flex;
  justify-content: center;
  gap: 0;
  margin: 0 24px 0;
}

.plan-tab {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 700;
  padding: 10px 32px;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
  background-color: #ccc;
  color: #666;
  border-radius: 8px 8px 0 0;
}

.plan-tab--active {
  background-color: #e63f3e;
  color: #ffffff;
  box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.06);
}

.plan-tab-wrapper {
  background-color: #fff;
  border-radius: 0 16px 16px 16px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  margin: 0 24px;
  padding: 8px 0;
  border: solid 2px #e63f3e;
  min-width:668px;
  @media screen and (max-width: 768px) {
    min-width: 90%;
  }
}

/* ===================================
   Section Heading Red Variant
   =================================== */
.section__heading--red {
  color: #e63e3e;
}
.section__note{
text-align: center;
font-size: 14px;
color: #e63e3e;
font-weight: 700;
margin-bottom: 24px;
margin-left: 10px;
}
/* ===================================
   Query About Section (Plan Page)
   =================================== */

/* --- 4条件の図解 --- */
.query-diagram {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 20px 24px;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  margin-bottom: 24px;
  flex-wrap: wrap;
  justify-content: center;
}

.query-diagram__items {
  display: flex;
  align-items: center;
  gap: 12px;
  @media screen and (max-width: 768px) {
    flex-direction: column;
  }
}

.query-diagram__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}


.query-diagram__label {
  font-size: 12px;
  font-weight: 700;
  color: #333;
}

.query-diagram__separator {
  font-size: 20px;
  font-weight: 700;
  color: #999;
}

.query-diagram__result p {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  line-height: 1.6;
  margin: 0;
}

.query-diagram__highlight {
  color: #e63e3e;
  font-size: 18px;
}

/* --- 説明文 --- */
.query-about__text {
  margin-bottom: 24px;
  line-height: 1.8;
}

.query-about__text p {
  font-size: 14px;
  color: #333;
  margin: 0 0 2px;
}

.query-about__text strong {
  color: #e63e3e;
}

/* --- 例テーブル --- */
.query-example-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
  font-size: 14px;
}

.query-example-table thead th {
  font-weight: 700;
  color: #555;
  padding: 10px 12px;
  text-align: left;
  border-bottom: 2px solid #ccc;
}

.query-example-table tbody td {
  padding: 10px 12px;
  color: #333;
  border-bottom: 1px solid #eee;
}

.query-example-table__device--pc strong {
  color: #e63e3e;
}

.query-example-table__device--sp strong {
  color: #e63e3e;
}

/* --- 注意書き --- */
.query-about__note {
  background-color: #fff8e1;
  border-radius: 6px;
  padding: 16px 20px;
}

.query-about__note p {
  font-size: 13px;
  color: #b8860b;
  line-height: 1.7;
  margin: 0;
}

/* ===================================
   Responsive（768px以下）
   =================================== */
@media screen and (max-width: 768px) {
  .page-header {
    padding: 40px 16px;
  }

  .page-header__brand {
    font-size: 28px;
  }

  .page-header__title {
    font-size: 20px;
  }

  .confirmation-card {
    max-width: 100%;
    margin: 0 8px;
    padding: 32px 12px;
  }

  .user-info-bar {
    font-size: 10px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .user-info-bar__separator {
    display: none;
  }

  .section {
    padding: 40px 12px;
  }

  .section__heading {
    font-size: 23px;
  }

  .plan-table {
    font-size: 10px;
  }

  .plan-table__header-cell {
    font-size: 9px;
    padding: 6px 2px;
  }

  .plan-table__body-cell {
    font-size: 10px;
    padding: 8px 2px;
  }

  .pricing {
    width: 100%;
  }

  .pricing__badge {
    font-size: 12px;
    padding: 3px 12px;
  }

  .pricing__amount {
    font-size: 20px;
  }

  .payment-button {
    font-size: 15px;
    padding: 10px 20px;
    width: 80%;
  }

  .notes {
    padding: 20px 12px 0;
  }

  .notes__text {
    font-size: 11px;
    line-height: 1.7;
  }

  .action-buttons {
    padding: 20px 4px 24px;
    gap: 8px;
  }

  .action-button {
    font-size: 15px;
    padding: 12px 6px;
    gap: 4px;
  }

  /* --- Plan Cards Responsive --- */
  .trial-detail__label {
    text-align: center;
  }

  .plan-cards {
    grid-template-columns: repeat(1, 1fr);
  }

  .plan-card__name {
    font-size: 19px;
  }

  .plan-card__spec-label {
    font-size: 15px;
  }

  .plan-card__spec-value {
    font-size: 15px;
  }

  /* --- Option Cards Responsive --- */
  .option-cards {
    grid-template-columns: 1fr;
  }

  /* --- Trial Section Responsive --- */
  .trial-detail__row {
    flex-direction: column;
    align-items: center;
  }

  .trial-detail__button {
    width: 100%;
    justify-content: center;
  }

  /* --- Total Pricing Responsive --- */
  .total-pricing__row {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .action-button--full {
    width: 90%;
  }

  /* --- Plan Page Responsive --- */
  .plan-tabs {
    margin: 0 12px 0;
  }

  .plan-tab {
    font-size: 13px;
    padding: 8px 24px;
  }

  .plan-tab-content {
    margin: 0 12px;
  }

  .status-badges {
    justify-content: center;
  }

  .current-plan {
    padding: 12px 16px;
  }
}

        /* ===================================
           Signup Page Specific Styles
           =================================== */
    
        /* ホワイトカード（フォームエリア） */
        .signup-card {
          background-color: #fff;
          max-width: 780px;
          margin: 0 auto;
          padding: 40px 32px 60px;
        }
    
        /* 注意書きブロック */
        .signup-notice {
          font-size: 13px;
          color: #444;
          line-height: 1.85;
          margin-bottom: 36px;
        }
    
        .signup-notice a {
          color: #3b82c4;
          text-decoration: none;
        }
    
        .signup-notice a:hover {
          text-decoration: underline;
        }
    
        /* フォーム */
        .signup-form {
          max-width: 380px;
          margin: 0 auto;
        }
    
        .signup-form__group {
          margin-bottom: 28px;
        }
    
        .signup-form__label {
          display: block;
          font-size: 14px;
          font-weight: 600;
          color: #333;
          margin-bottom: 8px;
        }
    
        .signup-form__input {
          display: block;
          width: 100%;
          padding: 10px 12px;
          font-family: "Noto Sans JP", sans-serif;
          font-size: 14px;
          color: #333;
          background-color: #fff;
          border: 1.5px solid #b0c4d8;
          border-radius: 4px;
          outline: none;
          transition: border-color 0.2s ease, box-shadow 0.2s ease;
          box-sizing: border-box;
        }
    
        .signup-form__input:focus {
          border-color: #3b82c4;
          box-shadow: 0 0 0 3px rgba(59, 130, 196, 0.15);
        }
    
        .signup-form__input::placeholder {
          color: #aaa;
        }
    
        /* reCAPTCHA モック */
        .signup-recaptcha {
          display: flex;
          align-items: center;
          gap: 14px;
          background-color: #f9f9f9;
          border: 1px solid #d3d3d3;
          border-radius: 4px;
          padding: 14px 16px;
          margin-bottom: 32px;
          width: 100%;
          max-width: 380px;
          margin-left: auto;
          margin-right: auto;
          box-sizing: border-box;
        }
    
        .signup-recaptcha__checkbox {
          width: 24px;
          height: 24px;
          border: 2px solid #bbb;
          border-radius: 2px;
          flex-shrink: 0;
          background-color: #fff;
        }
    
        .signup-recaptcha__label {
          font-size: 13px;
          color: #333;
          flex: 1;
        }
    
        .signup-recaptcha__logo {
          display: flex;
          flex-direction: column;
          align-items: center;
          gap: 3px;
          flex-shrink: 0;
        }
    
        .signup-recaptcha__logo-icon {
          width: 32px;
          height: 32px;
        }
    
        .signup-recaptcha__logo-text {
          font-size: 9px;
          color: #888;
          text-align: center;
          line-height: 1.3;
        }
    
        .signup-recaptcha__links {
          font-size: 9px;
          color: #888;
          text-align: center;
          line-height: 1.5;
        }
    
        .signup-recaptcha__links a {
          color: #888;
          text-decoration: none;
        }
    
        /* 送信前テキスト */
        .signup-submit-hint {
          text-align: center;
          font-size: 14px;
          color: #333;
          line-height: 1.7;
          margin-bottom: 14px;
        }
    
        /* 送信ボタン */
        .signup-submit-btn {
          display: block;
          width: 100%;
          max-width: 380px;
          margin: 0 auto 28px;
          padding: 14px 16px;
          background-color: #3b5bdb;
          color: #fff;
          font-family: "Noto Sans JP", sans-serif;
          font-size: 16px;
          font-weight: 700;
          text-align: center;
          border: none;
          border-radius: 4px;
          cursor: pointer;
          transition: background-color 0.2s ease, opacity 0.2s ease;
          box-sizing: border-box;
        }
    
        .signup-submit-btn:hover {
          background-color: #3451c7;
        }
    
        /* ログインリンク */
        .signup-login-link {
          text-align: center;
          font-size: 14px;
        }
    
        .signup-login-link a {
          color: #3b82c4;
          text-decoration: none;
        }
    
        .signup-login-link a:hover {
          text-decoration: underline;
        }
    
        /* ===================================
           Responsive
           =================================== */
        @media screen and (max-width: 768px) {
    
          .signup-card {
            padding: 32px 16px 48px;
          }
    
          .signup-form {
            max-width: 100%;
          }
    
          .signup-recaptcha {
            max-width: 100%;
          }
    
          .signup-submit-btn {
            max-width: 100%;
          }
        }

        /* ===================================
       Sent Page Specific Styles
       =================================== */

        /* ホワイトカード */
        .sent-card {
            background-color: #fff;
            max-width: 780px;
            margin: 0 auto;
            padding: 40px 32px 80px;
        }

        /* メイン本文 */
        .sent-body {
            font-size: 14px;
            color: #333;
            line-height: 2;
            margin-bottom: 28px;
        }

        /* 赤いリンクっぽいテキスト */
        .sent-body__accent {
            color: #e63e3e;
            text-decoration: none;
            display: inline;
        }

        /* ご注意セクション */
        .sent-notice {
            font-size: 13px;
            color: #333;
            line-height: 2;
        }

        .sent-notice__heading {
            font-size: 13px;
            font-weight: 700;
            color: #333;
            margin-bottom: 4px;
        }

        /* ===================================
       Responsive
       =================================== */
        @media screen and (max-width: 768px) {


            .sent-card {
                padding: 32px 16px 60px;
            }
        }
        