@charset "UTF-8";


/* #region MARK:フォームコンテナ */
.user-form-container {
  margin-top: 0;
  background-color: #fff;
  padding: 2.4rem 2rem 5rem;
  border-radius: 0.6rem;
  margin-top: clamp(2rem, -0.08rem + 6.615vw, 5rem);
}

@media (min-width: 768px) {
  .user-form-container {
    padding: 5rem 10rem 10rem;
  }
}

/* #endregion */
/* #region MARK:フォーム進捗インジケーター */
.user-form-progress {
  padding-block: 0;
  margin-top: -0.5rem;
}

.user-form-progress__list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: step;
}

.user-form-progress__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  flex: 1;
  max-width: 170px;
}

.user-form-progress__step {
  display: flex;
  align-items: baseline;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 9999px;
  border: 2px solid #73BCEE;
  background-color: #fff;
  color: #73BCEE;
  font-size: var(--fluid-24-36);
  font-weight: 500;
  line-height: 1;
  position: relative;
  z-index: 1;
  /* vertical-align: 8%; */
  padding-top: 0;
  justify-content: center;
}

.user-form-progress__item:not(:last-child) .user-form-progress__step::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 6rem;
  height: 2px;
  transform: translate(100%, -1px);
  background-color: #73BCEE;
}

@media (min-width: 768px) {
  .user-form-progress__item:not(:last-child) .user-form-progress__step::after {
    width: 15rem;
    height: 5px;
  }
}

.user-form-progress__item--active .user-form-progress__step {
  background-color: #73BCEE;
  color: #fff;
}

.user-form-progress__label {
  /* margin-top: 0.75rem; */
  font-size: var(--fluid-12-16);
  line-height: 1;
  color: #333;
  /* text-align: center; */
  white-space: nowrap;
  margin-top: 0.3rem;
}


/* PC */
@media (min-width: 768px) {
  .user-form-progress {
    padding-block: 0 5rem;
  }

  .user-form-progress__item:not(:last-child)::after {
    top: 33px;
    left: calc(50% + 45px);
    width: calc(100% - 90px);
    height: 5px;
  }

  .user-form-progress__step {
    width: 7rem;
    height: 7rem;
    padding-top: 0.3em;
  }
}

/* #endregion */
/* #region MARK:セクション入力 */
.section-input {
  margin-top: clamp(2rem, -1rem + 6.25vw, 4rem);
  padding: 0;
  display: none;
  animation: hideContent 1s ease;
}

.section-input:first-of-type {
  margin-top: 0;
}

.section-input-ready {
  display: block;
  animation: appearContent 1s ease;
}

@keyframes appearContent {
  0% {
    opacity: 0;
    transform: translate(0, 1rem);
  }

  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}

@keyframes hideContent {
  0% {
    opacity: 0;
    transform: translate(0, -1rem);
  }

  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}

@media (max-width: 767px) {
  .section-input {
    padding: 0;
  }
}

/* #endregion */
/* #region MARK:チャットUI */
.dl-chat {
  width: min(100%, 100%);
  margin: 0;
  padding-top: 1.2rem;
}

.dl-chat-dt {
  display: flex;
  align-items: center;
  gap: 0.5em;
}

.dl-chat-dt-icon {
  width: 12rem;
  height: auto;
  border-radius: 0;
  overflow: visible;
  background-color: transparent;
}

@media (min-width: 768px) {
  .dl-chat-dt-icon {
    width: 21.8rem;
  }
}

.dl-chat-dt-icon-image {
  width: 90%;
  height: auto;
}

.dl-chat-dd {
  margin: 0;
}

.dl-chat-dd-item {
  display: none;
  width: fit-content;
  max-width: 100%;
  background-color: var(--c-primary-10);
  border-radius: 0.6rem;
  padding: 0.8rem 0.8rem;
  margin-top: 1em;
  font-size: var(--fluid-12-16);
  position: relative;
  text-align: justify;
  line-height: 1.2;
}

@media (min-width: 768px) {
  .dl-chat-dd-item {
    padding: 1.8rem 1.4rem 1.8rem 2rem;
  }
}

.dl-chat-dd-item::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.8rem 0.8rem 0.8rem 0;
  border-color: hsla(220, 31.6%, 95.5%, 0) hsla(220, 31.6%, 95.5%, 1) hsla(220, 31.6%, 95.5%, 0) hsla(220, 31.6%, 95.5%, 0);
  top: 50%;
  left: 0;
  transform: translate(-100%, -50%);
}

@media (min-width: 768px) {
  .dl-chat-dd-item::after {
    border-width: 1.0rem 1.0rem 1.0rem 0;
  }
}

.dl-chat-dd-item.show {
  display: block;
  animation: appearContent 1s ease;
}

/* #endregion */
/* #region MARK:ローディングバブル */
.loading-bubble-outer {
  margin-top: 1em;
  /* border-radius: 0.5em; */
}

.loading-bubble-outer.hide {
  display: none;
  animation: hideContent 1s ease;
}

/* 入力部分（アニメーション後に表示） */
.section-input-body {
  display: none;
}

.section-input-body.show {
  display: block;
  animation: appearContent 1s ease;
}

.loading-bubble {
  border-radius: 5px;
  display: flex;
  gap: 0.5em;
}

.loading-bubble-dot {
  width: 8px;
  height: 8px;
  background: hsl(0, 0%, 75%);
  border-radius: 50%;
  opacity: 0;
  box-shadow: 0 0 2px black;
  animation: loadingFade 1s infinite;
}

.loading-bubble-dot:nth-child(1) {
  animation-delay: 0s;
}

.loading-bubble-dot:nth-child(2) {
  animation-delay: 0.1s;
}

.loading-bubble-dot:nth-child(3) {
  animation-delay: 0.2s;
}

.loading-bubble-dot:nth-child(4) {
  animation-delay: 0.3s;
}

@keyframes loadingFade {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0.8;
  }

  100% {
    opacity: 0;
  }
}

/* #endregion */
/* #region MARK:ラジオボタン（ケーキ型） */
.radio-cake-outer {
  margin-top: clamp(2rem, 6.25vw, 3rem);
  display: grid;
}

.radio-cake {
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  flex-direction: row;
}

@media (min-width: 768px) {
  .radio-cake {
    gap: 2rem
  }
}

.radio-cake-outer-center .radio-cake {
  justify-content: center;
}

.radio-cake-outer-text-center label {
  justify-content: center;
  text-align: center;
}

.radio-cake input[type="radio"] {
  left: -10000px;
  opacity: 0;
  position: fixed;
}

.radio-cake input[type="radio"]+label {
  cursor: pointer;
  display: flex;
  font-size: 1em;
  border: 1px solid var(--c-primary);
  border-radius: 0.6rem;
  padding: 1rem 0 1rem 1.3rem;
  line-height: 1.8;
  min-height: 6em;
  font-weight: 500;
  justify-content: center;
  text-align: center;
  flex-direction: column;
  text-align: left;
  overflow: hidden;
  font-size: var(--fluid-14-24);
  gap: 0.5rem;
  color: var(--c-primary);
  white-space: nowrap;
  /* text-align: justify; */
}

@media (min-width: 768px) {
  .radio-cake input[type="radio"]+label {
    display: grid;
    flex-direction: row;
    align-items: center;
    gap: 1.9rem;
    padding: 2.7rem 0 2.7rem 2rem;
    grid-template-columns: 4rem 1fr;
    /* min-height: 11.6rem; */
  }
}

.radio-cake input[type="radio"]+label::before {
  content: "";
  display: block;
  width: 2.4rem;
  height: 2.4rem;
  background-image: url("../images/icon/check-2-sm.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .radio-cake input[type="radio"]+label::before {
    width: 4rem;
    height: 4rem;
  }
}

.radio-cake input[type="radio"]:checked+label::before {
  background-image: url("../images/icon/check-2-sm-on.svg");
}

.radio-cake-outer .radio-cake label {
  width: 100%;
}

.radio-cake-outer-1-2 .radio-cake label {
  width: calc(50% - (1em * 1 / 2));
}

.radio-cake-outer-1-4 .radio-cake label {
  width: calc(25% - (1em * 3 / 4));
}

@media (max-width: 767px) {
  .radio-cake input[type="radio"]+label {
    /* min-height: 12.4rem; */
    border-radius: 0.4rem;
  }

  .radio-cake-outer-sp-1-1 .radio-cake label {
    width: 100%;
  }

  .radio-cake-outer-sp-1-2 .radio-cake label {
    width: calc(50% - (1em * 1 / 2));
  }
}

/* #endregion */
/* #region MARK:ボタン＋チャット吹き出しレイアウト */
.btn-chat {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 2rem;
  align-items: center;
}

.btn-chat__action .radio-cake-outer {
  margin-top: 0;
}

.btn-chat__action .radio-cake-outer .btn-disable {
  border: 1px solid hsl(0, 0%, 85%) !important;
  box-shadow: none !important;
  color: var(--c-gray02) !important;
  cursor: default;
  pointer-events: none;
}

/* 大東建託選択時: ruumリンクとして押せる見た目にする */
.btn-chat__action .radio-cake-outer .btn-disable.link-added {
  cursor: pointer;
  pointer-events: auto;
  opacity: 1;
  filter: none;
  border: 1px solid var(--c-primary) !important;
  color: var(--c-primary) !important;
}

/* 大東建託・大和ハウス・賃貸その他選択時: 蛇口保証登録の吹き出しを非表示 */
:has(#InquiryField1_2:checked) #secService .btn-chat:nth-of-type(2) .btn-chat__message,
:has(#InquiryField1_3:checked) #secService .btn-chat:nth-of-type(2) .btn-chat__message,
:has(#InquiryField1_4:checked) #secService .btn-chat:nth-of-type(2) .btn-chat__message {
  display: none;
}

#secService {
  margin-top: clamp(3rem, 6.25vw, 5rem)
}

.btn-chat__message {
  align-self: center;
  font-size: var(--fluid-14-16);
  /* line-height: 1.4; */
}

.btn-chat__message .dl-chat-dd-item {
  width: unset;
  margin-top: 0;
}

.btn-chat__message .dl-chat-dd-item+.dl-chat-dd-item {
  margin-top: 1em;
}

@media (min-width: 768px) {
  .btn-chat {
    grid-template-columns: 42rem 1fr;
    gap: 2.4rem;
  }

  .btn-chat__message {
    font-size: 1em;
    /* line-height: 1.6; */
  }

  .btn-chat__message .dl-chat-dd-item::after {
    border-width: 1.6rem;
    border-color: hsla(220, 31.6%, 95.5%, 0) hsla(220, 31.6%, 95.5%, 1) hsla(220, 31.6%, 95.5%, 0) hsla(220, 31.6%, 95.5%, 0);
    top: 50%;
    left: 0;
    transform: translate(-100%, -50%);
  }
}

.btn-chat .radio-cake input[type="radio"]+label {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.5rem;
}

@media (min-width: 768px) {
  .btn-chat .radio-cake input[type="radio"]+label {
    gap: 2rem;
  }
}

/* #endregion */
/* #region MARK:フォームアクション（ボタンエリア） */
.form-actions {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column-reverse;
  gap: 1em;
  justify-content: center;
  margin-top: 3rem;
  border-radius: 0.6rem;
  padding: 3rem 0;
  background-color: var(--c-primary-10);
  font-weight: bold;
  align-items: center;
}

.form-actions-item {
  width: 100%;
}

.form-actions-1-2 .form-actions-item {
  width: 100%;
}

@media (min-width: 768px) {
  .form-actions {
    flex-direction: row;
    margin-top: 5rem;
    gap: 2rem;
  }

  .form-actions-item {
    width: calc(33.333% - (1em * 2 / 3));
  }

  .form-actions-item-lg {
    width: 38rem
  }

  .form-actions-1-2 .form-actions-item {
    /* width: calc(50% - (1em * 1 / 2)); */
    width: 42rem;
  }

  /* 要素が2つある場合 */
  .form-actions:has(.form-actions-item:nth-child(2)) {
    gap: 2rem;
  }

  .form-actions:has(.form-actions-item:nth-child(2)) .form-actions-item {
    width: 30rem;
  }

  .form-actions:has(.form-actions-item:nth-child(2)) .btn-back,
  .form-actions:has(.form-actions-item:nth-child(2)) .btn-action {
    width: 100%;
  }
}

/* #endregion */
/* #region MARK:アクションボタン */
.btn-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  /* padding: 1em 2em; */
  /* border: 1px solid var(--c-primary); */
  border-radius: 0.6rem;
  background-color: var(--c-secondary);
  background-image: url("../images/icon/arrow-r-w.svg");
  background-repeat: no-repeat;
  background-size: 1em auto;
  background-position: right 1em center;
  /* box-shadow: 0em 0.5em 0.5em 0em hsla(220, 31.6%, 52.5%, 0.3); */
  color: #fff;
  text-align: center;
  min-height: 5rem;
  font-size: var(--fluid-14-20);
  font-weight: 500;
  width: 23.4rem;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .btn-action {
    min-height: 6.2rem;
    width: 42rem;
  }
}

.btn-action:hover {
  filter: brightness(1.1);
}

.btn-action.btn-disable {
  background-color: var(--c-gray02);
  color: #FFF !important;
  background-image: url("../images/icon/arrow-r-w.svg");
  cursor: default;
  pointer-events: none;
}

/* #endregion */
/* #region MARK:非活性・バッジ */
input[type="radio"].btn-disable {
  cursor: default;
  pointer-events: none;
  color: var(--c-gray02) !important;
  border: 1px solid var(--c-gray02) !important;
}

.radio-cake input[type="radio"]+label.btn-disable::before {
  background-image: url("../images/icon/check-2-sm-gray.svg");
}

.pos-rel {
  position: relative;
}

.mark-free-left {
  position: absolute;
  right: -3%;
  top: -12%;
  width: 5.3rem;
  /* transform: translateY(-50%); */
}

.mark-free-left>img {
  aspect-ratio: 1;
  max-width: 100%;
  display: block;
  height: auto;
}

@media (min-width: 768px) {
  .mark-free-left {
    right: 5%;
    top: 50%;
    width: 9.6rem;
    transform: translateY(-50%);
  }
}

/* #endregion */
/* #region MARK:ユーティリティ */
.mt-sm {
  margin-top: 1em !important;
}

.mt-md {
  margin-top: 2em !important;
}

.mt-lg {
  margin-top: 4em !important;
}

.visible-xs-inline-block {
  display: none;
}

@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block;
  }

  .hidden-xs {
    display: none;
  }
}

.text-underline {
  text-decoration: underline !important;
}

.c-blue {
  color: #0075b7 !important;
}

.bd-1-gray {
  border: 1px solid var(--c-gray02);
}

.p-sm {
  padding: 1em;
}

.fz-08 {
  font-size: 0.8em !important;
}

.fz-09 {
  font-size: 0.9em !important;
}

.text-center {
  text-align: center !important;
}

.w-60 {
  width: 60%;
}

.lh-xs {
  line-height: 1.2;
}

.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* #endregion */
/* #region MARK:条件付き表示ブロック */
#house-maker-block {
  display: none;
}

/* #endregion */
/* #region MARK:フォームリセット・コントロール */
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}

::placeholder {
  color: hsla(214.3, 36.8%, 7.5%, 0.3);
}

textarea {
  resize: vertical;
}

input[type="checkbox"],
input[type="radio"] {
  display: none;
}

input[type="submit"],
input[type="button"],
label,
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

input[type="search"].form-control,
input[type="password"].form-control,
input[type="email"].form-control,
input[type="date"].form-control,
input[type="number"].form-control,
input[type="tel"].form-control,
input[type="phone"].form-control,
input[type="text"].form-control {
  padding-left: 2rem;
  border: 1px solid var(--c-primary);
  width: 100%;
  border-radius: clamp(0.4rem, 0.1rem + 0.39vw, 0.6rem);
  display: block;
  font-size: var(--fluid-14-20);
  height: clamp(5rem, 10vw, 6.2rem);
  color: var(--c-primary);
  font-weight: 500;
}

input[type="search"]:focus.form-control,
input[type="password"]:focus.form-control,
input[type="email"]:focus.form-control,
input[type="date"]:focus.form-control,
input[type="number"]:focus.form-control,
input[type="tel"]:focus.form-control,
input[type="phone"]:focus.form-control,
input[type="text"]:focus.form-control {
  border: 1px solid var(--c-primary);
}

select.form-control {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("../images/icon/arrow-d-1.svg");
  background-position: right 0.8rem center;
  background-repeat: no-repeat;
  background-size: 1rem auto;
  padding: 0 0.8rem 0 0.8rem;
  border: 1px solid var(--c-primary);
  border-radius: 0.4rem;
  display: block;
  width: 100%;
  font-size: var(--fluid-14-20);
  min-height: 5rem;
  text-align: center;
  text-align-last: center;
  -webkit-text-align-last: center;
  font-weight: 500;
  color: var(--c-primary);
}

.form-control.error {
  background-color: hsl(348, 83%, 96%);
}

.form-error,
.error-message {
  color: var(--c-red);
  font-size: var(--fluid-12-14);
  /* line-height: 1.1; */
  margin-top: 0.5rem;
  text-align: justify;
}

.form-num {
  ime-mode: disabled;
}

/* #endregion */
/* #region MARK:フォームフレックス */
.form-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: fit-content;
  gap: 0.5rem;
  width: 100%;
  margin-top: clamp(2rem, 0.5rem + 0.2vw, 3rem);
  /* margin-top: 0.5rem; */
}

.form-flex-2 {
  gap: 1rem;
  margin-top: clamp(2rem, 0.5rem + 0.2vw, 3rem);
}

.form-flex>div {
  flex-basis: 0;
  flex-grow: 8;
  flex-shrink: 1;
  display: flex;
  flex-wrap: wrap;
}

.form-flex-1-2 {
  margin-top: clamp(2rem, 0.5rem + 0.2vw, 3rem);
  gap: 1rem;
}

.form-flex-1-2>div {
  width: calc(50% - (1em * 1 / 2));
  flex-grow: unset;
  flex-basis: unset;
}

/* モバイル100%、デスクトップ50% */
.form-flex-1-2-responsive>div {
  width: 100%;
  flex-grow: unset;
  flex-basis: unset;
  /* margin-top: clamp(2rem, 0.5rem + 0.2vw, 3rem); */
  gap: 0 1rem;
}

@media (min-width: 768px) {
  .form-flex-1-2-responsive>div {
    width: calc(50% - 0.5em);
  }
}

.form-flex-1-3>div {
  width: calc(33.333% - (1em * 2 / 3));
  flex-grow: unset;
  flex-basis: unset;
}

.form-flex>div input {
  margin-top: auto;
}

.form-flex-addon {
  flex-grow: 1 !important;
  flex-shrink: 0 !important;
  text-align: center;
  white-space: nowrap;
  align-items: center;
  justify-content: center;
  display: flex;
  font-weight: 400;
  font-size: var(--fluid-14-18);
}

.form-flex-label {
  /* margin-top: 1em; */
  display: block;
  width: 100%;
  /* font-size: var(--fluid-14-16); */
}

.form-flex-label-text {
  display: flex;
  font-size: 0.8em;
  /* margin-bottom: 0.3em; */
  font-size: var(--fluid-14-16);
  gap: 1rem;
  margin-bottom: 1rem;
  align-items: center;
}

@media (min-width: 768px) {
  .form-flex-label-text {
    /* margin-bottom: 1.3rem; */
    display: flex;
    align-items: center;
  }
}

/* #endregion */
/* #region MARK:見出し・入力グループ */
.article-input-group {
  margin-top: 2rem;
}

.article-input-group:first-child {
  margin-top: 0;
}

.hl-3 {
  padding: 1.6rem 0 0;
  border-top: 1px solid var(--c-gray02);
  font-size: var(--fluid-16-18);
  font-weight: 500;
  margin-block: clamp(3rem, 6.25vw, 5rem) 2rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 2rem;
  text-align: justify;
}

.hl-3-caption {
  font-size: var(--fluid-12-14);
  font-weight: normal;
  margin-top: 0.3em;
  /* color: var(--c-gray01); */
  display: block;
}

.hl-3-caption--note {
  text-indent: -1em;
  padding-left: 1em;
  width: 100%;
  text-align: justify;
}

.hissu {
  background-color: #c42f29;
  color: #FFF;
  display: inline-block;
  font-size: var(--fz-12);
  padding: 0 0.8rem;
  border-radius: 0.4rem;
  line-height: 1;
  /* margin-left: 2rem; */
  /* border: 1px solid crimson; */
  font-weight: normal;
  min-height: 2.3rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 0.1rem;
}

.hissu.ok {
  background-color: #389335;
  color: #FFF;
}

.hissu.ok::after {
  content: " \2713入力OK";
}

.hissu.error {
  background-color: #c42f29;
  color: #FFF;
}

/* .hissu.okがある場合、.form-errorを非表示（内部 or 直後の兄弟） */
/*.article-input-group:has(.hissu.ok) .form-error,*/
/*.article-input-group:has(.hissu.ok)+.form-error {*/
/*  display: none;*/
/*}*/

/* #endregion */
/* #region MARK:チェックボックス */
.checkbox-cake-outer {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  width: 100%;
  margin-top: 2rem;
}

.checkbox-cake {
  padding: 0;
  width: 100%;
}

.checkbox-cake input[type="checkbox"] {
  left: -10000px;
  opacity: 0;
  position: fixed;
}

.checkbox-cake input[type="checkbox"]+label {
  cursor: pointer;
  display: flex;
  font-size: var(--fluid-14-20);
  border: 1px solid var(--c-primary);
  border-radius: 0.4rem;
  padding-left: 1.75rem;
  /* line-height: 1.2; */
  align-items: center;
  min-height: 5rem;
  font-weight: 500;
  gap: 1rem;
  color: var(--c-primary);
  text-align: justify;
}

@media (min-width: 768px) {
  .checkbox-cake input[type="checkbox"]+label {
    padding-left: 2.25rem;
    min-height: 6.2rem;
    border-radius: 0.6rem;
    max-width: 30.6rem;
  }
}

.checkbox-cake.no-border input[type="checkbox"]+label {
  border: none;
  box-shadow: none;
}

.checkbox-cake-outer-sm input[type="checkbox"]+label {
  /* min-height: unset; */
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  /* line-height: 1.75; */
  /* font-weight: normal; */
}

.checkbox-cake input[type="checkbox"]+label::before {
  content: "";
  display: block;
  width: 2.4rem;
  height: 2.4rem;
  /* margin-right: 0.8em; */
  flex-shrink: 0;
  background-image: url("../images/icon/check-2-sm.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.checkbox-cake input[type="checkbox"]:checked+label {
  border-color: var(--c-primary);
}

.checkbox-cake input[type="checkbox"]:checked+label::before {
  background-image: url("../images/icon/check-2-sm-on.svg");
}

.checkbox-cake.no-border input[type="checkbox"]:checked+label {
  border: none;
  background-color: unset;
  color: unset;
}

.checkbox-cake-outer-terms .checkbox-cake input[type="checkbox"]+label {
  justify-content: center;
  display: grid;
  /* text-align: center; */
  gap: 1rem;
  padding: 1.8rem 3rem 1.8rem 1.8rem;
  grid-template-columns: auto 1fr;
  margin-top: 1rem;
  width: 100%;
  max-width: unset;
}

@media (min-width: 768px) {
  .checkbox-cake-outer-terms .checkbox-cake input[type="checkbox"]+label {
    width: 65.6rem;
    margin-inline: auto;
    gap: 2rem;
  }
}

.checkbox-cake-outer.c-red .checkbox-cake input[type="checkbox"]:not(:checked)+label {
  color: var(--c-red);
}

/* #endregion */
/* #region MARK:メール配信の同意チェック */
#mail-magazine-flg+label {
  justify-content: center;
  border: none;
  padding-left: 0;
  max-width: none;
  color: var(--c-text);
}

#mail-magazine-flg+label::before {
  display: block;
}

#mail-magazine-flg:checked+label {
  background-color: transparent;
  border: none;
  color: var(--c-text);
}

/* #endregion */
/* #region MARK:ラジオボタン（画像挿入型） */
.radio-cake-insert {
  display: none;
}

.radio-cake-insert-item {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.radio-cake-label-figure {
  /* order: 1; */
  width: 100%;
  /* margin-bottom: 0.5em; */
}

.radio-cake-label-figure-image {
  /* max-width: 60%; */
  margin: 0 auto;
  display: block;
}

.radio-cake-label-text {
  display: block;
  text-align: center;
  word-break: break-word;
}

/* radio-cake-outer-tl: ラジオボタンを左上に */
.radio-cake-outer-tl .radio-cake label {
  position: relative;
}

.radio-cake-outer-tl .radio-cake input[type="radio"]+label {
  display: grid;
  text-align: left;
  padding: 1rem;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1rem;
  width: 100%;
}

@media (min-width: 768px) {
  .radio-cake-outer-tl .radio-cake input[type="radio"]+label {
    width: calc((100% - 4rem) / 3);
    /* display: flex; */
  }
}

.radio-cake-outer-tl .radio-cake input[type="radio"]+label::before {
  /* position: absolute; */
  left: 0.8em;
  top: 50%;
  /* transform: translateY(-50%); */
}

/* #endregion */
/* #region MARK:交換サイクル */
.cycle-people-title {
  white-space: nowrap;
  font-weight: normal;
  font-size: 0.6em;
  line-height: 1;
  margin-bottom: 0.3em;
}

.cycle-people {
  display: grid;
  grid-template-columns: 2.2rem 1fr;
  align-items: center;
  margin-bottom: 0.5rem;
  gap: 0.3rem;
  width: fit-content;
}

.cycle-people-icon {
  text-align: center;
}

.cycle-people-text {
  text-align: center;
  font-size: 0.8em;
  white-space: nowrap;
  display: block;
}

@media (min-width: 768px) {
  .cycle-people-text {
    font-size: 1em;
  }

  .cycle-people-title {
    font-size: 0.8em;
  }
}

/* #endregion */
/* #region MARK:カートリッジ用ラジオボタン */
.radio-cake-outer-cartridge .radio-cake label {
  width: 100%;
}

.radio-cake-label-cartridge {
  display: grid;
  gap: 1em;
  align-items: center;
  width: 100%;
  grid-template-columns: auto max-content;
}

.radio-cake-label-recommend {
  font-size: var(--fluid-16-20);
  color: #fff;
  background-color: var(--c-primary);
  /* padding: 0.5em 0; */
  border-radius: 0.4rem 0.4rem 0 0;
  margin:-0.8rem -1rem 0rem -1rem;
  font-weight: 500;
  text-align: center;
  min-height: 3.2rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

@media (min-width: 768px) {
  .radio-cake-label-recommend {
    border-radius: 0.6rem 0.6rem 0 0;
    margin: -1.7rem -2rem 1.35rem -8rem;
  }
}

.radio-cake-label-cartridge-body {
  flex-grow: 1;
  flex-basis: 0;
  flex-shrink: 1;
  white-space: nowrap;
  /* font-size: 1.4em; */
  white-space: nowrap;
  /* line-height: 1.4; */
  font-weight: 500;
  text-align: left;
  font-size: var(--fluid-16-20);
}

.radio-cake-label-cartridge-price {
  flex-grow: 1;
  text-align: right;
  font-size: var(--fluid-24-32);
  line-height: 1.6;
  font-weight: 500;
  white-space: nowrap;
}

.radio-cake-label-cartridge-price-miscs {
  font-size: var(--fluid-14-16);
  line-height: 1.8;
  display: block;
}

.radio-cake-label-cartridge-price-note {
  font-size: 0.6em;
  letter-spacing: 0;
}

/* #endregion */
/* #region MARK:固定ボタン */
.form-actions-last.fixed {
  position: fixed;
  background-color: hsla(220, 31.6%, 92.5%, 0.9);
  backdrop-filter: blur(0.5em);
  width: 100%;
  left: 0;
  bottom: 0;
  padding: 1em;
  z-index: 100;
  margin: 0;
  box-shadow: 0em -0.5em 0.5em 0em hsla(0, 0%, 0%, 0.05);
  border-radius: 0;
}

.form-actions-last.fixed .form-actions-item {
  width: 100%;
  max-width: 26em;
  margin: 0 auto;
}

.form-actions-last.fixed .btn-action {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}

/* #endregion */
/* #region MARK:規約 */
.terms-ol {
  list-style: none;
  counter-reset: terms-ol;
  padding-left: 0.5em;
  margin: 0.5em 0;
}

.terms-ol > li {
  counter-increment: terms-ol;
  padding-left: 1.5em;
  position: relative;
  text-align: justify;
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  line-height: 1.4;
}

.terms-ol > li::before {
  content: counter(terms-ol) ". ";
  position: absolute;
  left: 0;
}

.terms-ol > li + li {
  margin-top: 0.4em;
}

.terms-ol > li > ul,
.terms-ol > li > ol {
  padding-left: 0;
  margin: 0.3em 0;
}

.terms-ol-paren {
  list-style: none;
  counter-reset: terms-paren;
  padding-left: 0;
  margin: 0.3em 0;
}

.terms-ol-paren > li {
  counter-increment: terms-paren;
  padding-left: 1.5em;
  position: relative;
  text-align: justify;
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  line-height: 1.4;
}

.terms-ol-paren > li::before {
  content: counter(terms-paren) ")";
  position: absolute;
  left: 0;
}

.terms-ol-paren > li + li {
  margin-top: 0.3em;
}

.terms-ul-dot {
  list-style: none;
  padding-left: 0;
  margin: 0.3em 0;
}

.terms-ul-dot > li {
  padding-left: 1em;
  position: relative;
  text-align: justify;
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  line-height: 1.4;
}

.terms-ul-dot > li::before {
  content: "・";
  position: absolute;
  left: 0;
}

.terms-ul-dot > li + li {
  margin-top: 0.2em;
}

.terms-ul-note {
  list-style: none;
  padding-left: 0;
  margin: 0.3em 0;
}

.terms-ul-note > li {
  padding-left: 1em;
  position: relative;
  text-align: justify;
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  line-height: 1.4;
}

.terms-ul-note > li::before {
  content: "※";
  position: absolute;
  left: 0;
}

.terms-ul-note > li + li {
  margin-top: 0.2em;
}

.terms-indent {
  padding-left: 1em;
}

.article-terms h4,
.article-terms h5 {
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  font-weight: 400;
  /* margin-bottom: 0.5em; */
  margin-block: 1rem 0 !important;
  text-align: justify;
}

.article-terms h5 {
  margin-block: 1rem 0 !important;
}

.article-terms p {
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  margin-block: 0;
}

.article-terms {
  padding: 0 1.8rem 2rem;
  border: 1px solid var(--c-primary);
  margin-top: clamp(2rem, 0.5rem + 3.2vw, 3rem);
  height: 16rem;
  overflow-x: hidden;
  overflow-y: scroll;
  position: relative;
  border-radius: 0.4rem;
  scrollbar-color: #6880ba #cccccc;
  scrollbar-width: auto;
}

.article-terms::-webkit-scrollbar {
  width: 10px;
}

.article-terms::-webkit-scrollbar-track {
  background: #cccccc;
  border-radius: 0px;
}

.article-terms::-webkit-scrollbar-thumb {
  background: #6880ba;
  border-radius: 0;
}

.article-terms-title {
  position: sticky;
  left: 0;
  top: 0;
  background: #fff;
  z-index: 1;
  padding-bottom: 1rem;
  font-size: clamp(1.6rem, 1.25vw + 1rem, 2rem);
  padding-block: 2rem;
  margin-bottom: 1rem;
}

.article-terms a {
  font-size: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.open-modal::after {
  content: "";
  display: inline-block;
  width: 0.95em;
  height: 0.74em;
  margin-left: 0.4em;
  vertical-align: 0.08em;
  background: url("../images/icon/external-b.svg") no-repeat center / contain;
}

.vbox-inline .open-modal::after {
  display: none;
}

.open-modal--noicon::after {
  display: none;
}

.article-terms dl,
.article-terms dt,
.article-terms dd {
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  margin: 0;
}

.Style01 {
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
  margin-top: 2rem;
}

.Style01,
.Style01 * {
  display: block;
  font-weight: 400;
  text-align: left;
  text-align: justify;
}

.Style01 a {
  display: inline;
}

.Style01 th,
.Style01 td {
  padding: 1rem 2rem;
}

.Style01 th {
  background-color: var(--c-primary-10);
  border-block: 1px solid var(--c-gray02) 0;
}

@media (min-width: 768px) {
  .Style01 {
    display: table;
    width: 100%;
  }

  .Style01 tbody {
    display: table-row-group;
  }

  .Style01 tr {
    display: table-row;
  }

  .Style01 th,
  .Style01 td {
    display: table-cell;
    border-block: none;
    vertical-align: top;
    border-top: 1px solid var(--c-gray02)
  }

  .Style01 th {
    width: 22rem;
  }
}

/* 規約同意チェックボックス */
.checkbox-cake--terms {
  width: 100%;
  margin-inline: auto;
}

/* 規約同意チェックボックス非活性時 */
.checkbox-cake-outer-terms .btn-disable {
  cursor: default;
  pointer-events: none;
  opacity: 0.4;
  filter: grayscale(1);
}

/* VenoBox規約モーダル用オーバーライド */
.vbox-backdrop {
  background-color: rgba(255, 255, 255, 0.75) !important;
}

.vbox-close {
  position: fixed !important;
  width: 4rem;
  height: 4rem;
  background-color: var(--c-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.2s;
  top: 1rem !important;
  right: 1rem !important;
  color: #fff;
  padding: 0 !important;
  z-index: 9999 !important;
}

@media (min-width: 768px) {
  .vbox-close {
    top: 2rem !important;
    right: 2rem !important;
  }
}

.vbox-close:hover {
  transform: scale(1.1);
}

.vbox-close svg,
.vbox-close .vbox-close-icon {
  width: 1.8rem !important;
  height: 1.8rem !important;
  display: block;
}

.vbox-inline {
  max-width: 80rem !important;
  width: calc(100% - 2rem);
}

@media (min-width: 768px) {
  .vbox-inline {
    width: calc(100% - 4rem);
    padding: 4rem !important;
    box-shadow: none !important;
  }
}

/* VenoBoxモーダル内の規約コンテンツ */
.vbox-inline.article-terms {
  height: auto;
  max-height: 70vh;
  border: none;
  margin-top: 0;
  padding: 1rem;
  border-radius: 0.4rem;
  box-shadow: none !important;
}

@media (min-width: 768px) {
  .vbox-inline.article-terms {
    max-height: 75vh;
    padding: 2rem;
  }
}

.vbox-inline.article-terms .article-terms-title {
  position: static;
}

.vbox-inline.article-terms .article-terms-title a {
  pointer-events: none;
  text-decoration: none;
  cursor: default;
}

.vbox-inline.article-terms::-webkit-scrollbar {
  width: 10px;
}

.vbox-inline.article-terms::-webkit-scrollbar-track {
  background: #cccccc;
  border-radius: 0px;
}

.vbox-inline.article-terms::-webkit-scrollbar-thumb {
  background: #6880ba;
  border-radius: 0;
}

.table-privacy {
  width: 100%;
  margin-top: 2rem;
  font-size: clamp(1.4rem, 0.625vw + 1.1rem, 1.6rem);
}

.table-privacy th,
.table-privacy td {
  border-top: 1px solid var(--c-gray02);
  padding: 1rem 0;
  /* vertical-align: top; */
  text-align: justify;
}

.table-privacy caption {
  text-align: left;
  padding: 1rem 0.5rem
}

.table-privacy img {
  /* margin: 1rem; */
  margin-inline: auto;
  padding-inline: 1rem;
}

@media (max-width: 767px) {
  .article-terms {
    font-size: 1.12rem;
    --fluid-12-14: calc(var(--fz-12) * 0.8);
    --fluid-14-16: calc(var(--fz-14) * 0.8);
    --fluid-16-18: calc(var(--fz-16) * 0.8);
    --fluid-20-24: calc(var(--fz-20) * 0.8);
  }

  .article-terms-title {
    font-size: 1.28rem;
  }

  .article-terms p,
  .article-terms h4,
  .article-terms h5,
  .article-terms dl,
  .article-terms dt,
  .article-terms dd,
  .article-terms .terms-ol > li,
  .article-terms .terms-ol-paren > li,
  .article-terms .terms-ul-dot > li,
  .article-terms .terms-ul-note > li,
  .article-terms .table-privacy,
  .article-terms .Style01 {
    font-size: 1.12rem;
  }
}

/* #endregion */
/* #region MARK:メール説明画像 */
.ill-mail {
  max-width: 53rem;
  margin: 2rem auto;
}

.ill-mail img {
  width: 100%;
  height: auto;
}

/* #endregion */
/* #region MARK:住居形態専用 */
.radio-cake--house-type {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr 1fr;
}

@media (min-width: 768px) {
  .radio-cake--house-type {
    width: 66rem;
    margin-inline: auto;
    gap: 2rem;
  }
}

.radio-cake--house-type .radio-cake-label-figure-image {
  width: 7.7rem;
  height: 8.3rem;
  object-fit: contain;
  object-position: center
}

@media (min-width: 768px) {
  .radio-cake--house-type .radio-cake-label-figure-image {
    width: 17.8rem;
    height: 16.4rem;
  }
}

.radio-cake--house-type input[type="radio"]+label {
  padding: 1rem 1.3rem 1rem 1.3rem;
  aspect-ratio: 1;
}

@media (min-width: 768px) {
  .radio-cake--house-type input[type="radio"]+label {
    display: flex;
    flex-direction: column;
    padding: 2rem;
  }
}

.radio-cake--house-type .radio-cake-label-text {
  font-size: var(--fluid-14-24);
  text-align: center;
}

.radio-cake--house-type label {
  text-align: left;
  position: relative
}

.radio-cake--house-type input[type="radio"]+label::before {
  position: absolute;
  left: 1rem;
  top: 1rem;
}

@media (min-width: 768px) {
  .radio-cake--house-type input[type="radio"]+label::before {
    position: absolute;
    left: 2rem;
    top: 2rem;
  }
}

.radio-cake--house-type .radio-cake-insert-item {
  gap: 0.1rem;
}

@media (min-width: 768px) {
  .radio-cake--house-type .radio-cake-insert-item {
    gap: 2rem;
  }
}

.form-flex-3 select.form-control {
  min-width: 0;
  flex: 1 1 0%;
}

.form-flex-3 .form-flex-addon {
  flex-grow: 0 !important;
}


.radio-cake-outer-1-3 .radio-cake,
.radio-cake-outer-1-3 .radio-cake-insert {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr 1fr;
}

.radio-cake-outer-1-3 .radio-cake--housing {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2rem;
}

/* #region MARK:居住形態グルーピング */
.housing-select {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.housing-select__row {
  display: flex;
  align-items: stretch;
  gap: 1rem;
}

.housing-select__group-label {
  position: relative;
  writing-mode: vertical-rl;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 3.2rem;
  padding: 0.8rem 0.4rem;
  background: var(--c-primary-10);
  border-radius: 0.4rem;
  font-size: var(--fluid-12-16);
  font-weight: 500;
  letter-spacing: 0.2em;
}

.housing-select__group-label::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  transform: translateY(-50%);
  border: 0.5rem solid transparent;
  border-right-width: 0;
  border-left-color: var(--c-primary-10);
}

.housing-select__row .radio-cake {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.housing-select__row .radio-cake input[type="radio"]+label {
  height: 100%;
  white-space: normal;
}

@media (max-width: 767px) {
  .housing-select__row .radio-cake input[type="radio"]+label {
    font-size: var(--fluid-12-16);
    padding-right: 0.8rem;
  }
}

.housing-select__text {
  text-align: left;
}

.housing-select__caption {
  display: block;
  font-size: 0.65em;
  line-height: 1;
  margin-bottom: 0.4em;
}

@media (min-width: 768px) {
  .housing-select__caption--spacer {
    display: none;
  }

  .housing-select__row--rent .radio-cake {
    grid-template-columns: repeat(3, 1fr);
  }

  .housing-select__row--own .radio-cake {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* #endregion */

.cycle-pattern--normal .radio-cake,
.cycle-pattern--normal .radio-cake-insert {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

.cycle-pattern--cheap .radio-cake {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

.form-flex-addon-red {
  font-size: var(--fluid-16-24);
  color: #E7002A;
  font-weight: 500;
}

.form-flex-addon-yellow {
  font-size: var(--fluid-16-24);
  color: #F59800;
  font-weight: 500;
}

.form-flex-addon-text {
  font-size: var(--fluid-16-24);
  color: var(--c-text);
  font-weight: 500;
}

.form-flex-addon-navy {
  font-size: var(--fluid-16-24);
  color: #004EA1;
  font-weight: 500;
}

.form-flex-addon-blue {
  font-size: var(--fluid-16-24);
  color: #029DDD;
  font-weight: 500;
}

.form-flex-addon-green {
  font-size: var(--fluid-16-24);
  color: #91C022;
  font-weight: 500;
}

/* #endregion */
/* #region MARK:デスクトップ用レイアウト */
@media (min-width: 768px) {
  .radio-cake-outer-1-3 .radio-cake--seal-type {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .radio-cake--head-type {
    display: flex;
    gap: 2rem;
    grid-template-columns: 1fr 1fr 1fr;
    justify-content: center;
  }

  .headtype-2 .radio-cake-label-figure-image,
  .headtype-3 .radio-cake-label-figure-image {
    width: 50%;
  }

  .form-flex--faucet-num {
    width: fit-content;
  }

  .form-flex--faucet-num-long {
    width: fit-content;
  }

  .form-flex--faucet-num .form-control {
    width: 20rem;
    min-width: 20rem !important;
    max-width: 20rem !important;
  }

  .form-flex--faucet-num-long .form-control {
    width: 32rem;
    min-width: 32rem !important;
    max-width: 32rem !important;
  }

  .form-flex--lot-num {
    width: fit-content;
  }

  .form-flex--lot-num .form-control {
    width: 32rem;
    min-width: 32rem !important;
    max-width: 32rem !important;
  }

  select.form-control {
    min-height: 6.2rem;
    background-size: 1.2rem auto;
    padding: 0 1.2rem 0 1.2rem;
  }

  .form-flex {
    gap: 2rem;
    /* margin-top: 1.5rem; */
  }

  .form-flex-3 {
    width: fit-content;
  }

  .form-flex-3 select.form-control {
    min-width: 20rem;
  }

  .checkbox-cake-outer {
    margin-top: 3rem;
  }
}

/* #endregion */
/* #region MARK:品番シールタイプ */
.radio-cake--seal-type input[type="radio"]+label {
  /* カスタムスタイル */
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  align-items: center;
  padding: 1rem;
}

.radio-cake--seal-type .radio-cake-label-figure-image {
  /* 画像のカスタムスタイル */
  width: 22rem;
  margin-inline: auo;
}

.radio-cake--seal-type .radio-cake-label-text {
  /* テキストのカスタムスタイル */
  color: var(--c-text);
  font-size: var(--fluid-14-18);
  text-align: center;
  line-height: 1.4;
	margin-top: 0.4em;
}

/* #region MARK:ヘッドタイプ */
.radio-cake-insert-item-head {
  display: flex;
  gap: 1px;
  justify-content: center;
}

.radio-cake-insert-item-head-item {
  width: 33%;
}

.radio-cake--head-type {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.radio-cake--head-type label {
  padding: 1rem;
  font-size: var(--fluid-14-18);
}

.radio-cake--head-type .radio-cake-label-text {
  color: var(--c-text);
  font-size: var(--fluid-14-18);
  text-align: left;
}

@media (min-width: 768px) {
  .radio-cake--head-type {
    display: flex;
    flex-direction: row;
  }
}

/* #endregion */
/* #region MARK:カートリッジタイプ */
.radio-cake--cartridge-type {
  gap: 2rem;
}

.radio-cake--cartridge-type input[type="radio"]+label {
  padding: 0.5rem 1rem 0.5rem;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  align-items: center;
}

.radio-cake--cartridge-type label:has(.radio-cake-label-recommend)::before {
  margin-top: 3.8rem;
}

.headtype-2 .radio-cake-label-figure-image,
.headtype-3 .radio-cake-label-figure-image {
  width: 50%;
}

@media (min-width: 768px) {
  .radio-cake-insert-item {
    gap: 0;
  }

  .radio-cake--cartridge-type {
    gap: 3rem;
  }

  .radio-cake--cartridge-type input[type="radio"]+label {
    padding: 1.7rem 2rem;
    min-height: unset;
  }

  .radio-cake--cartridge-type label:has(.radio-cake-label-recommend)::before {
    margin-top: 4.3rem;
  }
}

/* #endregion */
/* #region MARK:交換サイクルパターン */
.cycle-pattern .radio-cake input[type="radio"]+label {
  display: grid;
  gap: 1rem;
  grid-template-columns: auto 1fr;
  align-items: center;
  padding: 1rem;
  min-height: 9.8rem !important;
}

.cycle-pattern--normal .radio-cake input[type="radio"]+label {
  grid-template-columns: 1fr;
  justify-items: center;
}

.cycle-pattern--normal .radio-cake-insert-item {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: center;
  align-items: center;
  column-gap: 0rem;
  row-gap: 0.0rem;
}

.cycle-pattern--normal .radio-cake-label-cycle {
  display: contents;
}

.cycle-pattern--normal .radio-cake-label-cycle-title {
  grid-area: 1 / 1 / 2 / 3;
}

.cycle-pattern--normal .radio-cake-label-cycle-icon {
  grid-area: 2 / 1 / 3 / 2;
}

.cycle-pattern--normal .radio-cake-label-cycle-text {
  grid-area: 2 / 2 / 3 / 3;
}

.cycle-pattern--normal .radio-cake-label-cycle-month {
  grid-area: 3 / 1 / 4 / 3;
}

.radio-cake-label-cycle-month {
  font-size: var(--fluid-16-24);
  font-weight: 500;
  white-space: nowrap;
  text-align: center;
}

.radio-cake-label-cycle-icon {
  width: 2.7rem;
  height: auto;
  flex-shrink: 0;
  aspect-ratio: 1;
  object-fit: contain;
}

@media (min-width: 1025px) {
.radio-cake-label-cycle-icon {
  width: 4.2rem;
}
}
  


.radio-cake-label-cycle {
  white-space: nowrap;
  text-align: center;
}

.radio-cake-label-cycle-title {
  font-weight: 400;
  font-size: var(--fluid-12-14);
  white-space: nowrap;
  display: block;
}

.radio-cake-label-cycle-text {
  font-weight: 500;
  font-size: var(--fluid-14-24);
  white-space: nowrap;
  text-align: center;
  display: block;
}

.cycle-pattern--cheap label {
  font-size: var(--fluid-24-32) !important;
  font-weight: 500;
  min-height: auto !important;
  text-align: center !important;
  padding-inline: 1rem !important;
  grid-template-columns: 1fr !important;
}

.cycle-pattern--normal input[name="cycle"][value="3"]+label {
  border-width: 3px;
}

@media (min-width: 768px) {
  .cycle-pattern .radio-cake input[type="radio"]+label {
    min-height: auto !important;
    padding: 1.5rem 2rem;
  }

  .cycle-pattern--normal .radio-cake-insert-item {
    column-gap: 1rem;
  }
}

/* #endregion */
/* #region MARK:交換サイクル目安テーブル */
.table__cycle {
  margin-top: 1rem;
  text-align: center;
  border-collapse: collapse;
  width: 100%;
}

.table__cycle caption {
  font-weight: 500;
  font-size: var(--fluid-14-16);
  padding-block: 1rem;
}

.table__cycle thead {
  font-weight: 400;
  border-top: 1px solid var(--c-gray02);
}

.table__cycle tr {
  border-bottom: 1ox solid var(--c-gray02);
}

.table__cycle th {
  font-weight: 400;
  font-size: var(--fluid-12-16);
  border-bottom: 1px solid var(--c-gray02);
  padding-block: 1rem;
  white-space: nowrap;
}

.table__cycle td {
  font-size: var(--fluid-14-16);
  border-bottom: 1px solid var(--c-gray02);
  padding-block: 1rem;
}

.table__cycle td:last-child {
  color: var(--c-primary);
}

@media (min-width: 768px) {
  .table__cycle {
    table-layout: fixed;
  }
}

/* #endregion */
/* #region MARK:お届け希望時期 */
.radio-cake--delivery {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr 1fr;
}

.radio-cake--delivery input[type="radio"]+label {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr;
  gap: 1rem;
  padding: 1rem;
  white-space: nowrap;
  text-align: center;
}

.radio-cake--delivery input[type="radio"]+label span {
  font-size: var(--fluid-14-20);
  font-weight: 500;
}

.radio-cake--delivery input[type="radio"]+label small {
  font-size: var(--fluid-12-14);
  display: block;
}

@media (min-width: 768px) {
  .radio-cake--delivery {
    gap: 2rem;
  }

  .radio-cake--delivery input[type="radio"]+label {
    gap: 1rem;
    padding: 2rem;
    min-height: 11.6rem;
  }
}

/* #endregion */
/* #region MARK:数字リスト */
.list-num {
  margin-top: clamp(2rem, 0.5rem + 0.2vw, 3rem);
  padding-left: 1.5em;
  font-size: var(--fluid-14-16);
}

.list-num>li {
  display: list-item;
  list-style: decimal;
  /* line-height: 1.3; */
  text-align: justify;
}

.list-num>li+li {
  margin-top: 0.5rem;
}

.list-circle {
  margin-top: 1em;
  padding-left: 1.0em;
  font-size: 1.4rem;
}

.list-circle>li {
  display: list-item;
  line-height: 1.0;
  list-style: none;
  position: relative;
  font-size: var(--fluid-09-16);
  text-align: justify;
}

.list-circle>li::before {
  content: "";
  position: absolute;
  background-color: #0c121a;
  width: 0.2em;
  height: 0.2em;
  border-radius: 50%;
  left: -0.7em;
  top: 0.65em;
}

.list-circle>li+li {
  margin-top: 0.2em;
}

.c-red {
  color: var(--c-red);
}

.radio-cake--trigger input[type="radio"]+label {
  padding: 0.5rem 0.6rem;
  display: grid;
  grid-template-columns: 1fr;
  white-space: nowrap;
  align-items: center;
  min-height: 8rem;
  font-size: var(--fluid-12-18);
  text-align: center;
}

@media (min-width: 768px) {
  .radio-cake--trigger {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr 1fr 1fr;
  }

  .radio-cake--trigger input[type="radio"]+label {
    width: auto;
    padding: 2rem;
  }
}

.radio-cake--payment input[type="radio"]+label {
  padding: 1rem;
  display: grid;
  grid-template-columns: 1fr;
  text-align: center;
  white-space: nowrap;
  align-items: center;
  min-height: 9rem;
  font-size: var(--fluid-14-20);
}

@media (min-width: 768px) {
  .radio-cake--payment {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr 1fr;
  }

  .radio-cake--payment input[type="radio"]+label {
    width: auto;
    min-height: 11.6rem;
    padding: 2rem;
  }
}

@media (min-width: 768px) {
  .form-flex--expiry {
    max-width: 50rem;
  }

  .form-flex--security-code {
    max-width: 30rem;
  }
}

/* #endregion */
/* #region MARK:確認画面 */
.hl-confirm {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.6rem;
  padding: 1.6rem 0;
  border: 3px solid var(--c-primary);
  margin-top: clamp(3rem, 6.25vw, 5rem);
  border-radius: 0.6rem;
  padding: 2rem;
  flex-direction: column;
}

@media (min-width: 768px) {
  .hl-confirm {
    display: grid;
    flex-direction: row;
    grid-template-columns: 1fr 20rem;
    gap: 2rem;
    margin-bottom: 3rem;
  }
}

.hl-confirm-body {
  font-size: var(--fz-18);
  font-weight: 500;
  color: var(--c-primary);
  white-space: nowrap;
}

@media (min-width: 768px) {
  .hl-confirm-body {
    text-align: center;
    padding-left: 22rem;
  }
}

.hl-confirm-body-full {
  width: 100%;
  text-align: center;
}

.hl-confirm-append {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: var(--fz-14);
  color: var(--c-primary);
  text-decoration: none;
  white-space: nowrap;
  border-radius: 0.4rem;
  border: 1px solid var(--c-primary);
  min-height: 5rem;
  width: 20rem;
  justify-content: center;
  background-image: url("../images/icon/arrow-r-1.svg");
  background-repeat: no-repeat;
  background-size: 0.8em auto;
  background-position: right 1em center;
  padding-inline: 2em;
}

.hl-confirm-append:hover {
  filter: brightness(1.1);
}

.hl-confirm-icon {
  width: 1.2em;
  height: 1.2em;
}

@media (max-width: 767px) {
  .hl-confirm {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 0.8rem;
    padding: 0.5rem 0.8rem;
    border: none;
    background-color: var(--c-primary);
    margin-top: 2.4rem;
  }

  .hl-confirm:not(:has(.hl-confirm-append)) {
    grid-template-columns: 1fr;
    padding-block: 0.8rem;
  }

  .hl-confirm-body {
    grid-column: 2;
    font-size: var(--fz-12);
    text-align: center;
    line-height: 1.5;
    color: #fff;
  }

  .hl-confirm-body-full {
    grid-column: 1 / -1;
    white-space: normal;
  }

  .hl-confirm-append {
    grid-column: 3;
    justify-self: end;
    width: auto;
    min-height: 2.4rem;
    background-color: #fff;
    border-color: #fff;
    color: var(--c-primary);
    font-size: var(--fz-12);
    padding-left: 0.7em;
    padding-right: 1.6em;
    background-size: 0.6em auto;
    background-position: right 0.5em center;
  }
}

.user-input {
  margin-top: 0 !important;
}

.user-input-text {
  display: block;
  font-size: var(--fluid-14-16);
  line-height: 1.8;
  color: var(--c-text);
  text-align: justify;
}

/* #endregion */
/* #region MARK:確認画面ボタン */
.btn-border {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 1px solid var(--c-primary);
  border-radius: 0.6rem;
  background-color: #fff;
  color: var(--c-primary);
  text-align: center;
  min-height: 5rem;
  font-size: var(--fluid-14-20);
  font-weight: 500;
  text-decoration: none;
}

.btn-border:hover {
  background-color: var(--c-primary-10);
}

.btn-border--arrow {
  background-image: url("../images/icon/arrow-r-1.svg");
  background-repeat: no-repeat;
  background-size: 1em auto;
  background-position: right 1em center;
  max-width: 26rem;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .btn-border {
    min-height: 6.2rem;
  }

  .btn-border--arrow {
    width: 36rem;
    max-width: unset;
    height: 100%;
  }
}

[id^="confirm-"] .hl-3 {
  margin-top: 2rem !important;
}

[id^="confirm-"] p {
  display: block;
  font-size: var(--fluid-14-16) !important;
  line-height: 1.8 !important;
  color: var(--c-text) !important;
}

#secConfirm p.user-input {
  margin-top: 0 !important;
}

.btn-back {
  width: 23.4rem;
  margin-inline: auto;
  background-image: url("../images/icon/arrow-l-1.svg");
  background-repeat: no-repeat;
  background-size: 1em auto;
  background-position: left 1em center;
}

.btn-gray-body {
  display: block;
}

.btn-action-sky {
  background-color: #73BCEE;
}

.btn-action-sky:hover {
  background-color: #5AABDE;
}

.btn-action-body {
  display: block;
}

/* #endregion */
.section-explanation {
  font-size: var(--fluid-14-16);
}

.anshin-support {
  margin-top: 4rem;
  color: #FFF;
  background-color: var(--c-secondary);
  border-radius: 0.4rem;
  padding: 0.4rem 1rem 0.8rem;
  position: relative;
}

.anshin-support__title {
  font-size: var(--fluid-20-32);
}

.visible-xs-inline-block {}

.anshin-support__desc {
  margin-top: 0.8rem;
  font-size: var(--fluid-09-16);
  line-height: 1.4;
}


.anshin-support__badge {
  width: 6.1rem;
  position: absolute;
  right: 1rem;
  top: -2rem;
}

.anshin-support__figure {}

.anshin-support__figure-image {
  margin-top: 2rem;
}

.anshin-support__notice {
  border-block: 1px solid var(--c-gray02);
  margin-top: 2rem;
  font-size: var(--fluid-14-16) !important;
  margin-bottom: 3rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0;
}

.anshin-support__notice-title {
padding: 0.8rem 1rem;
	background-color: var(--c-primary-10);
	font-size: var(--fluid-10-14);
}

.anshin-support__notice-body {
margin: 0;
	padding: 0.8rem 1rem;
	font-size: var(--fluid-14-16);
}

.anshin-support__notice-list {
  margin-top: 0;
}

.anshin-support__notice-item {}

@media (min-width: 768px) {
  .section-explanation {}

  .anshin-support {
    border-radius: 0.6rem;
    padding: 2.5rem 4rem 4rem;
  }

  .anshin-support__title {}

  .visible-xs-inline-block {}

  .anshin-support__desc {line-height: 2.1;}

  .anshin-support__badge {width: 10rem;}

  .anshin-support__figure {}

  .anshin-support__figure-image {
    margin-top: 4rem;
  }

  .anshin-support__notice {
    margin-top: 4rem;
    display: grid;
    gap: 0;
    grid-template-columns: 24rem 1fr;
    margin-bottom: 5rem;
  }

  .anshin-support__notice-title {}

  .anshin-support__notice-body {}

  .anshin-support__notice-list {}

  .anshin-support__notice-item {}
}

.form-actions--thanks {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.form-actions--thanks-item {
  width: 25rem;
}

.btn-2ndary--arrow {
  background-color: var(--c-secondary);
  color: #FFF;
  background-image: url(../images/icon/arrow-r-w.svg);
  background-repeat: no-repeat;
  background-size: 1.6rem auto;
  background-position: right 2rem center;
  padding: 1.8rem 0;
  white-space: nowrap;
  border: 1px solid var(--c-secondary);
}

.btn-2ndary--arrow:hover {
  background-color: var(--c-secondary);
  border-color: var(--c-secondary);
}

.form-actions--thanks .btn-border--arrow:hover {
  background-color: transparent;
  border-color: var(--c-primary);
}

@media (min-width: 768px) {
  .form-actions--thanks {
    display: grid;
    gap: 2rem;
    grid-template-columns: 38rem 38rem;
  }

  .form-actions--thanks-item {
    width: 100% !important;
    height: 100%;
  }

  .btn-2ndary--arrow {}

  .form-actions--thanks-item .btn-border--arrow {
    width: 100%;
  }
}

/* #region MARK:大和リビング専用スタイル */
.guide-daiou {
  margin-block: 2rem;
  /* padding: 2rem; */
  /* background-color: #f8f9fa; */
  border-radius: 0.8rem;
  border-radius: 0.4rem;
}

.article-guide {
  /* text-align: center; */
  margin-bottom: 2rem;
  background-color: var(--c-primary);
  color: #FFF;
  padding: 1rem 2rem 1.5rem;
  border-radius: 0.4rem;
}

@media (min-width: 768px) {
.article-guide {padding: 2.5rem 4rem 3.7rem;border-radius: 0.6rem;}
}

.article-guide__body {
  font-size: var(--fluid-14-18);
  line-height: 1.8;
  font-weight: 400;
}

.article-guide__title {
  font-size: var(--fluid-20-32);
  font-weight: 500;
  /* color: var(--c-primary); */
  margin-bottom: 1rem;
  line-height: 1.6;
}

.article-guide__highlight {
  color: var(--c-yellow);
  font-weight: 400;
  /* font-size: 1.2em; */
}

.article-guide__note {
  display: block;
  font-size: var(--fluid-12-14);
  /* color: #666; */
  margin-top: 2rem;
}

.article-flow {}

.article-flow__figure {
  margin-bottom: 2rem;
  margin-top: 1rem;
}

.article-flow__picture {}

.article-flow__image {
  width: 100%;
  height: auto;
}

.article-flow__table-payment {
  width: 100%;
  margin-bottom: 1rem;
  border-collapse: collapse;
  font-size: var(--fluid-12-14);
  margin-top: 2rem;
border-bottom: 1px solid var(--c-gray02);
}

.article-flow__table-head {}

.article-flow__table-row {}

.article-flow__table-header {
  background-color: var(--c-primary-10);
  /* color: #fff; */
  padding: 1.3rem 0;
  text-align: center;
  font-weight: 400;
  font-size: var(--fluid-14-20);
  border-block: 1px solid var(--c-gray02);
}

.article-flow__table-body {}

.article-flow__table-cell {
  padding: 1.3rem 0;
  /* border: 1px solid var(--c-gray02); */
  text-align: center;
  vertical-align: top;
  font-size: var(--fluid-14-20);
  width: 50%;
}

.article-flow__table-row .article-flow__table-cell:last-child {border-left: 1px solid var(--c-gray02);}

.article-flow__table-label {
  display: block;
  font-weight: 400;
  /* margin-bottom: 0.5rem; */
}

.article-flow__table-label-2 {
  /* color: var(--c-primary); */
}

.article-flow__table-price {
  display: block;
}

.article-flow__table-price strong {
  font-size: var(--fluid-24-32);
  /* color: #e74c3c; */
  font-weight: 500;
}

.article-flow__table-note {
  display: block;
  font-size: var(--fluid-12-14);
  /* color: #666; */
  margin-top: 0.5rem;
}

.border-bold {
  border: none;
  border-top: 3px solid var(--c-primary);
  margin-block: 2rem;
}

@media (min-width: 768px) {
  .guide-daiou {
    margin-block: 3rem;
    /* padding: 3rem; */
  }

  .article-guide__body {
    font-size: var(--fluid-16-18);
  }

  .article-flow__table-payment {
    font-size: var(--fluid-14-16);
    margin-top: 3rem;
  }
}

.guide-daiou__title{
    font-size: var(--fluid-18-24);
    text-align: center;
    font-weight: 500;
}

@media (min-width: 768px) {
.guide-daiou__title{}
}

/* #endregion */
/* #region MARK:選択UI チェックアイコン非表示（背景色方式） */
.radio-cake input[type="radio"]+label::before,
.checkbox-cake input[type="checkbox"]+label::before {
  display: none;
}

@media (min-width: 768px) {
  .radio-cake input[type="radio"]+label {
    grid-template-columns: 1fr;
  }
}

.radio-cake input[type="radio"]:checked+label,
.checkbox-cake input[type="checkbox"]:checked+label {
  background-color: var(--c-primary);
  border-color: var(--c-primary);
  color: #FFF;
}

.radio-cake input[type="radio"]:checked+label .radio-cake-label-text {
  color: #FFF;
}

.radio-cake input[type="radio"]:checked+label .radio-cake-label-cycle-icon {
  filter: brightness(0) invert(1);
}
/* #endregion */
