@charset "UTF-8";
/*===========================================================================*/
/*  function  */
/*===========================================================================*/
/*===========================================================================*/
/*  mixin  */
/*===========================================================================*/
/*===========================================================================*/
/*  mv  */
/*===========================================================================*/
.mv {
  padding-top: clamp(49px, 17.4123539232px + 3.5058430718vw, 70px);
  padding-bottom: clamp(36.4px, 12.9348914858px + 2.6043405676vw, 52px);
  background-color: #fff9b1;
}
@media (max-width: 900px) {
  .mv {
    padding-top: 51px;
    padding-bottom: 30px;
  }
}
.mv__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 900px) {
  .mv__inner {
    max-width: 500px;
    flex-direction: column;
    justify-content: center;
  }
}
.mv__content {
  width: 50.6666666667%;
  text-align: center;
}
@media (max-width: 900px) {
  .mv__content {
    width: 100%;
  }
}
.mv__expire {
  color: #1a1a1a;
  font-feature-settings: "palt" on, "calt" off;
  font-size: clamp(26.6px, 9.4524207012px + 1.9031719533vw, 38px);
  font-weight: 700;
  line-height: 1.3;
  padding: 0 7px;
  border: 1px solid #1a1a1a;
  display: inline-flex;
  align-items: center;
}
@media (max-width: 900px) {
  .mv__expire {
    font-size: 25px;
  }
}
.mv__expire__2027 {
  width: clamp(69.3px, 24.6260434057px + 4.958263773vw, 99px);
  vertical-align: inherit;
  margin-left: clamp(8.4px, 2.9849749583px + 0.6010016694vw, 12px);
}
@media (max-width: 900px) {
  .mv__expire__2027 {
    width: 67px;
    margin-left: 10px;
  }
}
.mv__expire__3 {
  width: clamp(17.5px, 6.2186978297px + 1.2520868114vw, 25px);
  margin-left: clamp(2.8px, 0.9949916528px + 0.2003338898vw, 4px);
  vertical-align: inherit;
}
@media (max-width: 900px) {
  .mv__expire__3 {
    width: 17px;
    margin-left: 1px;
  }
}
.mv__head {
  color: #1a1a1a;
  text-align: center;
  font-feature-settings: "palt" on, "calt" off;
  font-size: clamp(56px, 19.8998330551px + 4.0066777963vw, 80px);
  font-weight: 700;
  line-height: 1.3;
}
@media (max-width: 900px) {
  .mv__head {
    font-size: 44px;
  }
}
.mv__head__b {
  width: 55px;
}
@media (max-width: 900px) {
  .mv__head__b {
    width: 31px;
  }
}
.mv__head__top {
  display: flex;
  align-items: center;
}
@media (max-width: 900px) {
  .mv__head__top {
    justify-content: center;
  }
}
.mv__head__top__inner {
  display: flex;
  align-items: baseline;
}
.mv__head__top span {
  color: #1a1a1a;
  font-feature-settings: "palt" on, "calt" off;
  font-size: clamp(46.2px, 16.4173622705px + 3.305509182vw, 66px);
  font-weight: 700;
  line-height: 1.3;
}
@media (max-width: 900px) {
  .mv__head__top span {
    font-size: 36px;
  }
}
.mv__head__below {
  color: #f27040;
  text-align: center;
  font-feature-settings: "palt" on, "calt" off;
  font-size: clamp(50.4px, 17.9098497496px + 3.6060100167vw, 72px);
  font-weight: 700;
  line-height: 1.05;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 900px) {
  .mv__head__below {
    font-size: 40px;
  }
}
.mv__head__below__num {
  width: clamp(224px, 79.5993322204px + 16.0267111853vw, 320px);
}
@media (max-width: 900px) {
  .mv__head__below__num {
    width: 176px;
  }
}
.mv__image {
  width: 46.25%;
}
@media (max-width: 900px) {
  .mv__image {
    width: 100%;
  }
}
.mv__description {
  color: #1a1a1a;
  text-align: center;
  font-feature-settings: "palt" on, "calt" off;
  font-size: clamp(21.7px, 7.7111853088px + 1.5525876461vw, 31px);
  margin-bottom: clamp(15.4px, 5.4724540902px + 1.101836394vw, 22px);
  font-weight: 700;
  line-height: 1.3;
}
@media (max-width: 900px) {
  .mv__description {
    font-size: 17px;
  }
}
.mv__check {
  color: #1a1a1a;
  text-align: center;
  font-feature-settings: "palt" on, "calt" off;
  font-size: clamp(15.4px, 5.4724540902px + 1.101836394vw, 22px);
  font-weight: 700;
  line-height: 1.3;
  background-color: #fff;
  padding-top: clamp(7px, 2.4874791319px + 0.5008347245vw, 10px);
  padding-bottom: clamp(7.7px, 2.7362270451px + 0.550918197vw, 11px);
  width: 100%;
}
@media (max-width: 900px) {
  .mv__check {
    font-size: 16px;
  }
}
.mv__check span {
  background-image: linear-gradient(to top, #fff35f 50%, transparent 50%);
  background-repeat: no-repeat;
  background-size: 100% 0.7em;
  background-position: 0px 78%;
}

/*===========================================================================*/
/*  questionnaire  */
/*===========================================================================*/
.question {
  padding-bottom: 80px;
  padding-top: 80px;
}
@media (max-width: 900px) {
  .question {
    padding-top: 50px;
    padding-bottom: 50px;
    padding-inline: 20px;
  }
}
.question__head {
  font-weight: 700;
  font-size: 52px;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 24px;
}
@media (max-width: 900px) {
  .question__head {
    font-size: 28px;
    margin-bottom: 20px;
  }
}
.question__head span {
  color: #f27040;
}
.question__fukidashi {
  width: 182px;
  margin: 0 auto;
}
@media (max-width: 900px) {
  .question__fukidashi {
    width: 131px;
    margin-bottom: 2px;
  }
}

.qflow {
  max-width: 860px;
  margin: 0 auto;
  background-color: #f2f2f2;
}
@media (max-width: 900px) {
  .qflow {
    max-width: 500px;
  }
}
.qflow__content {
  padding: 40px 80px 58px;
  min-height: 483px;
}
@media (max-width: 900px) {
  .qflow__content {
    padding: 20px 15px 32px;
    min-height: auto;
  }
}
.qflow__title {
  margin: 0 0 32px;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-align: center;
}
@media (max-width: 900px) {
  .qflow__title {
    font-size: 20px;
    margin-bottom: 18px;
  }
}
.qflow__title .qflow__no {
  display: block;
  font-weight: 700;
  color: #f27040;
  margin-bottom: 12px;
}
@media (max-width: 900px) {
  .qflow__title .qflow__no {
    font-size: 22px;
    margin-bottom: 4px;
  }
}
.qflow__options {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (max-width: 900px) {
  .qflow__options {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
@media (max-width: 900px) {
  .qflow__options__pnone {
    padding-bottom: 0;
  }
}
.qflow__step {
  display: none;
}
.qflow__step.is-visible {
  display: block;
  animation: qflowStepIn 0.22s ease-out both;
  will-change: transform, opacity; /* 軽量化 */
}
.qflow__step .qflow__end {
  text-align: center;
}
.qflow__annotation {
  font-weight: 700;
  font-size: 14px;
  line-height: 1.4;
  text-align: center;
  margin-top: 36px;
}
@media (max-width: 900px) {
  .qflow__annotation {
    font-size: 12px;
    margin-top: 20px;
    text-align: left;
  }
}
.qflow__result__head {
  margin-bottom: 26px;
  text-align: center;
}
@media (max-width: 900px) {
  .qflow__result__head {
    margin-bottom: 20px;
  }
}
.qflow__result__head span {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.4;
  text-align: center;
  margin: 0 20px;
  vertical-align: middle;
}
@media (max-width: 900px) {
  .qflow__result__head span {
    font-size: 24px;
  }
}
.qflow__result__head img {
  width: 8px;
  height: 30px;
  vertical-align: middle;
}
@media (max-width: 900px) {
  .qflow__result__head img {
    width: 6px;
    height: 22px;
  }
}
.qflow__result__desc {
  font-weight: 500;
  font-size: 18px;
  line-height: 1.8;
}
@media (max-width: 900px) {
  .qflow__result__desc {
    font-size: 16px;
  }
}
.qflow__result__desc + .qflow__result__annotation {
  margin-top: 24px;
}
@media (max-width: 900px) {
  .qflow__result__desc + .qflow__result__annotation {
    margin-top: 20px;
  }
}
.qflow__result__desc span {
  color: #f27040;
}
.qflow__result__annotation {
  font-weight: 500;
  font-size: 14px;
  line-height: 1.8;
}
@media (max-width: 900px) {
  .qflow__result__annotation {
    font-size: 12px;
  }
}
.qflow__last__title {
  font-weight: 500;
  font-size: 26px;
  line-height: 1.8;
  text-align: center;
  margin-bottom: 24px;
}
@media (max-width: 900px) {
  .qflow__last__title {
    font-size: 14px;
    margin-bottom: 14px;
  }
}
.qflow__last__title span {
  color: #f27040;
}
.qflow__last__desc {
  font-weight: 500;
  font-size: 20px;
  line-height: 1.8;
  text-align: center;
  margin-bottom: 24px;
}
@media (max-width: 900px) {
  .qflow__last__desc {
    font-size: 11px;
  }
}
.qflow__last__desc span {
  color: #f27040;
}
.qflow__last__form {
  background-color: #fff;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.8;
  text-align: center;
  padding: 50px 40px;
}
@media (max-width: 900px) {
  .qflow__last__form {
    font-size: 16px;
    width: 100%;
    margin-bottom: 0;
    padding: 20px;
  }
}
.qflow__last__form h2 {
  margin-bottom: 20px;
}
@media (max-width: 900px) {
  .qflow__last__form h2 {
    margin-bottom: 10px;
  }
}
.qflow__last__form__wrapper {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 28px;
}
@media (max-width: 900px) {
  .qflow__last__form__wrapper {
    margin-bottom: 20px;
    gap: 8px;
  }
}
.qflow__last__form__box {
  display: grid;
  grid-template-columns: 109px auto;
  width: 100%;
}
@media (max-width: 900px) {
  .qflow__last__form__box {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}
.qflow__last__form__box label {
  text-align: left;
  display: flex;
  align-items: center;
}
.qflow__last__form__box label span {
  font-weight: 500;
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 3%;
  position: relative;
}
@media (max-width: 900px) {
  .qflow__last__form__box label span {
    font-size: 14px;
  }
}
.qflow__last__form__box label span sup {
  position: absolute;
  top: 3px;
  right: -14px;
  font-weight: 700;
  font-size: 10px;
  line-height: 1.85;
  letter-spacing: 3%;
  color: #ff0000;
}
@media (max-width: 900px) {
  .qflow__last__form__box label span sup {
    font-size: 10px;
    color: #f27040;
  }
}
.qflow__last__form__box input,
.qflow__last__form__box textarea,
.qflow__last__form__box select {
  width: 100%;
  background-color: #f2f2f2;
  border-radius: 5px;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 3%;
  padding: 15px;
  text-align: left;
}
@media (max-width: 900px) {
  .qflow__last__form__box input,
  .qflow__last__form__box textarea,
  .qflow__last__form__box select {
    font-size: 14px;
    padding: 11px;
  }
}
.qflow__last__form__box__annotation {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.85;
  letter-spacing: 3%;
  margin-top: 6px;
  text-align: left;
}
@media (max-width: 900px) {
  .qflow__last__form__box__annotation {
    font-size: 10px;
    margin-top: 4px;
  }
}
.qflow__last__form__box__center {
  padding-bottom: 30px;
}
@media (max-width: 900px) {
  .qflow__last__form__box__center {
    padding-bottom: 0;
  }
}
.qflow__last__form__submit {
  font-weight: 700;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 6%;
  padding: 17px 0;
  border-radius: 64px;
  width: 268px;
  display: block;
  color: #fff;
  margin: 0 auto;
  background: url(../images/icon_arrow_white.svg) no-repeat center
    center/contain;
  background-size: 12px 12px;
  background-position: right 20px center;
  background-color: #f27040;
  transition: opacity 0.5s 0s cubic-bezier(0.44, 0.14, 0.09, 1.02);
}
@media (max-width: 900px) {
  .qflow__last__form__submit {
    font-size: 14px;
    padding: 16px 0;
    width: 100%;
  }
}
.qflow__last__form__submit:hover {
  opacity: 0.7;
}
.qflow__last__form__submit.is-disabled,
.qflow__last__form__submit:disabled {
  cursor: not-allowed;
  background-color: #bababa;
  opacity: 1;
}
.qflow__last__form__submit.is-disabled:hover
  .qflow__last__form__submit:disabled:hover {
  opacity: 0.7;
}

@keyframes qflowStepIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* theme colors */
:root {
  --radio-color: #f27040; /* オレンジの輪 */
  --arrow-color: #4a90e2; /* 右の点線＆矢印 */
}

/* オプションカード */
.qflow__radio {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer; /* ← point → pointer に修正 */
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
  padding: 22px 25px;
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}
@media (max-width: 900px) {
  .qflow__radio {
    padding: 15px 20px 17px;
    font-size: 16px;
    gap: 8px;
  }
}
.qflow__radio {
  /* ネイティブのラジオは全面に広げて見えなくする（アクセシブル） */
}
.qflow__radio input[type="radio"] {
  position: absolute;
  inset: 0; /* top/right/bottom/left:0 */
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.qflow__radio {
  /* 左のオレンジの輪（未選択時は空） */
}
.qflow__radio::before {
  content: "";
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  box-sizing: border-box;
  border: 2px solid var(--radio-color);
}
.qflow__radio {
  /* hover/focus のフィードバック */
}
.qflow__radio:hover {
  border-color: #d7d7d7;
}
.qflow__radio:has(input[type="radio"]:focus-visible) {
  outline: 2px solid #111;
  outline-offset: 2px;
}
.qflow__radio {
  /* 選択状態：輪の中を塗る＋枠を強調 */
}
.qflow__radio:has(input[type="radio"]:checked) {
  border-color: var(--radio-color);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--radio-color), #fff 70%);
}
.qflow__radio:has(input[type="radio"]:checked)::before {
  /* 内側を塗る（リングの内側に塗りを入れる） */
  background: radial-gradient(
    circle at 50% 50%,
    var(--radio-color) 0 50%,
    transparent 56% 100%
  );
}

.qflow__segwrap {
  margin-top: 0;
}

.qflow__seg {
  --seg-count: 3;
  display: grid;
  grid-template-columns: repeat(var(--seg-count), 1fr);
  gap: 4px;
}
@media (max-width: 900px) {
  .qflow__seg {
    gap: 3px;
  }
}

.qflow__segItem {
  height: 8px;
  background: #f0bdab;
}
@media (max-width: 900px) {
  .qflow__segItem {
    height: 6px;
  }
}

.qflow__segItem.is-active,
.qflow__segItem.is-done {
  background: #f27040;
}

.qflow__button {
  display: flex;
  justify-content: center;
}
.qflow__button button {
  background-color: #1a1a1a;
  color: #fff;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.4;
  text-align: center;
  padding: 17px 0;
  width: 100%;
  display: block;
}
@media (max-width: 900px) {
  .qflow__button button {
    font-size: 16px;
  }
}
.qflow__button button[disabled] {
  cursor: default;
}
.qflow__button button img {
  width: 10px;
  height: 14px;
  vertical-align: middle;
  margin-left: 0.5em;
}

/*===========================================================================*/
/*  thanks  */
/*===========================================================================*/
.thanks {
  padding-top: 139px;
  padding-bottom: 139px;
  background-color: #fff9b1;
  padding-inline: 20px;
}
@media (max-width: 900px) {
  .thanks {
    padding-top: 109px;
    padding-bottom: 108px;
  }
}
@media (max-width: 900px) {
  .thanks__inner {
    max-width: 500px;
    margin: 0 auto;
  }
}
.thanks h1 {
  font-weight: 700;
  font-size: 52px;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 40px;
}
@media (max-width: 900px) {
  .thanks h1 {
    font-size: 27px;
  }
}
.thanks p {
  color: #323232;
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
}
@media (max-width: 900px) {
  .thanks p {
    font-size: 16px;
    text-align: left;
  }
}
.thanks p a {
  color: #0000ee;
}
.thanks p + p {
  margin-top: 20px;
}

.qflow__last__form__annotation {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.85;
  letter-spacing: 3%;
  margin-top: 8px;
}
