@charset "UTF-8";

/*============================
Adobe Fonts（Typekit）の font-display 制御
============================*/
@font-face {
  font-family: "fot-udkakugoc80-pro";
  font-display: swap;
  /* Typekit の場合、src 指定は不要（Adobe 側で配信） */
}
/*============================
サブセットフォント
============================*/
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/*============================
リキッドレイアウト対応
============================*/
html {
  font-size: 2.1333333333vw;
}
@media (min-width: 750px) {
  html {
    font-size: 16px;
  }
}

body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background-color: #fff;
  color: #111;
  background: #fff;
  font-family: "fot-udkakugoc80-pro", "Hiragino Sans", "ヒラギノ角ゴシック", "Hiragino Kaku Gothic ProN", "Yu Gothic", "游ゴシック", YuGothic, "Meiryo", "メイリオ", "BIZ UDPGothic", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji";
  font-weight: 700;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
}

body.open {
  height: 100%;
  overflow: hidden;
}

main {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
}

footer {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
}

/* pcの電話番号発信対応 */
@media screen and (min-width: 750px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

/*============================
ホバー
============================*/
a {
  text-decoration: none;
  color: inherit;
}

/*============================
キーボード操作のフォーカス以外のoutlineを消す
============================*/
.js-focus-visible :focus:not(.focus-visible) {
  outline: 0;
}

*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Remove default padding */
ul,
ol {
  padding: 0;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Set core root defaults */
html {
  height: 100%;
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  height: 100%;
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul,
ol {
  list-style: none;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img {
  max-width: 100%;
  display: block;
  width: 100%;
}

/* Natural flow and rhythm in articles by default */
article > * + * {
  margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

button {
  padding: 0;
}

/* フォームリセット */
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
}

textarea {
  resize: vertical;
}

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

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

/*============================
.l-container
============================*/
.l-container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  background-color: #f7eee0;
}
@media screen and (min-width: 750px) {
  .l-container {
    max-width: 750px;
  }
}

/*============================
l-flow
============================*/
.l-flow {
  padding: 0.4rem 0 8.5rem;
}

/*============================
.inner
============================*/
.l-inner {
  width: 100%;
  margin: 0 auto;
  padding-right: 25px;
  padding-left: 25px;
  max-width: 800px;
}

/*============================
  c-btn
============================*/
.c-btn {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  border-radius: 0.625rem;
  border: none;
  cursor: pointer;
  font-size: 2.3125rem;
  letter-spacing: 0.06em;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
              -ms-user-select: none;
          user-select: none;
  -webkit-tap-highlight-color: transparent;
  border-radius: 0.625rem;
  border: none;
  background: transparent;
  padding: 0.6875rem 1rem 0.5375rem;
}
.c-btn:focus {
  outline: none;
}

.c-btn--next {
  border: 0.0625rem solid #2cae0e;
  color: #2cae0e;
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(246, 255, 235)), color-stop(48%, rgb(228, 252, 203)), to(rgb(160, 255, 108)));
  background-image: linear-gradient(180deg, rgb(246, 255, 235) 0%, rgb(228, 252, 203) 48%, rgb(160, 255, 108) 100%);
  -webkit-box-shadow: 0 0.25rem 0.2375rem 0.0125rem rgba(172, 184, 168, 0.51), -0.7rem -0.6rem 0.5rem 0 rgba(56, 215, 23, 0.11) inset;
          box-shadow: 0 0.25rem 0.2375rem 0.0125rem rgba(172, 184, 168, 0.51), -0.7rem -0.6rem 0.5rem 0 rgba(56, 215, 23, 0.11) inset;
}

/* STEP6：未入力時は次へボタンをグレー表示 */
.c-btn--next.is-disabled {
  background: #e1e0e0 !important;
  border-color: #e1e0e0 !important;
  color: #ffffff !important;
  -webkit-box-shadow: none;
          box-shadow: none;
  cursor: not-allowed;
}

.c-btn--next.is-disabled:hover {
  -webkit-filter: none;
          filter: none;
}

.c-btn--next.is-disabled:active {
  -webkit-transform: none;
          transform: none;
}

.c-btn--back {
  color: #827f7f;
  border: 0.0625rem solid #b7b7b7;
  background-color: #e5e5e5;
  -webkit-box-shadow: 0 0.25rem 0.2375rem 0.0125rem rgba(172, 184, 168, 0.51);
          box-shadow: 0 0.25rem 0.2375rem 0.0125rem rgba(172, 184, 168, 0.51);
}

.c-btn:hover {
  -webkit-filter: brightness(1.02);
          filter: brightness(1.02);
}

.c-btn:active {
  -webkit-transform: translateY(0.0625rem);
          transform: translateY(0.0625rem);
  -webkit-filter: brightness(0.99);
          filter: brightness(0.99);
}

/*============================
  c-submitBtn
  - Step7 送信ボタン（送信中は「送信中...」表示）
============================*/
.c-submitBtn {
  position: relative;
}
.c-submitBtn:focus {
  outline: none;
}
.c-submitBtn__img {
  display: block;
}
.c-submitBtn__sending {
  display: none;
  width: 100%;
  padding: 0.6875rem 1rem 0.5375rem;
  font-size: 2.3125rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-align: center;
  color: #ffffff;
}
.c-submitBtn.is-submitting, .c-submitBtn:disabled {
  cursor: not-allowed;
  opacity: 0.85;
  background: #e1e0e0;
  border: 0.0625rem solid #e1e0e0;
  border-radius: 0.625rem;
}
.c-submitBtn.is-submitting .c-submitBtn__img, .c-submitBtn:disabled .c-submitBtn__img {
  display: none;
}
.c-submitBtn.is-submitting .c-submitBtn__sending, .c-submitBtn:disabled .c-submitBtn__sending {
  display: block;
}

.c-submitBtn:hover:not(:disabled):not(.is-submitting) {
  -webkit-filter: brightness(1.02);
          filter: brightness(1.02);
}

.c-submitBtn:active:not(:disabled):not(.is-submitting) {
  -webkit-transform: translateY(0.0625rem);
          transform: translateY(0.0625rem);
  -webkit-filter: brightness(0.99);
          filter: brightness(0.99);
}

.c-btn:hover {
  -webkit-filter: brightness(1.03);
          filter: brightness(1.03);
}

.c-btn:active {
  -webkit-transform: translateY(0.0625rem);
          transform: translateY(0.0625rem);
}

/*===========================
  p-choice
============================*/
.p-choice {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0.125rem solid #d9d9d9;
  background: #fff;
  border-radius: 0.75rem;
  overflow: hidden;
  padding: 0;
  cursor: pointer;
  text-align: left;
  -webkit-transition: border-color 0.15s ease, -webkit-transform 0.08s ease, -webkit-box-shadow 0.15s ease;
  transition: border-color 0.15s ease, -webkit-transform 0.08s ease, -webkit-box-shadow 0.15s ease;
  transition: transform 0.08s ease, border-color 0.15s ease, box-shadow 0.15s ease;
  transition: transform 0.08s ease, border-color 0.15s ease, box-shadow 0.15s ease, -webkit-transform 0.08s ease, -webkit-box-shadow 0.15s ease;
}

.p-choice:hover {
  -webkit-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
  -webkit-box-shadow: 0 0.5rem 1.125rem rgba(0, 0, 0, 0.08);
          box-shadow: 0 0.5rem 1.125rem rgba(0, 0, 0, 0.08);
}

.p-choice:active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* タップ（押下）中は画像エリアをオレンジに */
.p-choice:active .p-choice__img {
  background: #fe9800;
}

/* JSで is-selected を付ける想定 */
.p-choice.is-selected {
  border-color: #10b25a;
  -webkit-box-shadow: 0 0.625rem 1.375rem rgba(16, 178, 90, 0.18);
          box-shadow: 0 0.625rem 1.375rem rgba(16, 178, 90, 0.18);
}

.p-choice__img {
  display: block;
  background: #eee;
  -webkit-transition: background-color 0.15s ease;
  transition: background-color 0.15s ease;
}

.p-choice__img img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/*============================
  p-flow
============================*/
/* ---------- Step toggle ---------- */
.p-flow__toggle {
  position: absolute;
  width: 0.0625rem;
  height: 0.0625rem;
  overflow: hidden;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  white-space: nowrap;
}

.p-flow__inner {
  padding: 0 1.8625rem;
}

/* 送信エラー時のメッセージ（nonce/validation） */
.p-flow__error-msg {
  margin: 1rem 1.8625rem;
  padding: 0.75rem 1rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
  color: #b91c1c;
  font-size: 0.9375rem;
  line-height: 1.5;
}

/* checked: Step1非表示 / Step2表示 */
.p-flow__toggle:checked ~ .p-flow__steps .p-step--1 {
  display: none;
}

.p-flow__toggle:checked ~ .p-flow__steps .p-step--2 {
  display: block;
}

/*============================
  p-footer
============================*/
.p-footer {
  background-color: #fbf6f1;
  padding: 1.875rem 1rem 3.125rem;
  color: #543506;
  font-size: 1.25rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.p-footer__permit,
.p-footer__company,
.p-footer__copyright {
  margin: 0;
}

.p-footer__permit {
  margin: 0 auto;
  padding: 1.1625rem 1rem 1.375rem;
  border: 0.125rem solid #cfcfcf;
  text-align: center;
}

.p-footer__company {
  margin-top: 1.925rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 3.25rem;
}

.p-footer__companyLabel,
.p-footer__companyName {
  display: inline-block;
}

.p-footer__links {
  margin: 0.125rem 0 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 3.25rem;
}

.p-footer__link {
  color: inherit;
}

.p-footer__link:hover {
  opacity: 0.85;
}

.p-footer__copyright {
  margin-top: 0.2rem;
}

/*============================
  p-header
============================*/
.p-header {
  position: relative;
  z-index: 10;
  background: #fbf6f1;
}

.p-header__inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-right: 1.475rem;
}

.p-header__brand {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75rem;
  width: 100%;
}

.p-header__logo {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  text-decoration: none;
}

.p-header__logo img {
  display: block;
  width: 18.825rem;
  height: auto;
}

.p-header__tagline {
  margin: 1rem 0 0 auto;
  color: #272626;
  font-size: 1.8125rem;
  font-weight: 700;
}

/* --- skip link --- */
.c-skip {
  position: absolute;
  left: -624.9375rem;
  top: 0.5rem;
  padding: 0.625rem 0.875rem;
  background: #111;
  color: #fff;
  border-radius: 0.375rem;
  text-decoration: none;
}

.c-skip:focus {
  left: 0.625rem;
}

/*============================
  _p-modal
============================*/
/* ---------- 利用規約・個人情報モーダル ---------- */
.p-terms-modal,
.p-privacy-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10000;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 1.25rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.p-terms-modal.is-open,
.p-privacy-modal.is-open {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

.p-terms-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  cursor: pointer;
}

.p-terms-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 37.5rem;
  max-height: 80vh;
  background: #fff;
  border-radius: 0.625rem;
  border: 0.0625rem solid #ff9902;
  -webkit-box-shadow: 0 0.4375rem 0.18375rem 0.00375rem rgba(222, 208, 186, 0.5);
          box-shadow: 0 0.4375rem 0.18375rem 0.00375rem rgba(222, 208, 186, 0.5);
  overflow: hidden;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}

.p-terms-modal__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: none;
  background: transparent;
  font-size: 2rem;
  line-height: 1;
  color: #422904;
  cursor: pointer;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}
.p-terms-modal__close:hover, .p-terms-modal__close:focus {
  opacity: 0.7;
}

.p-terms-modal__title {
  margin: 0;
  padding: 1.25rem 3.125rem 0.75rem 1.25rem;
  font-size: 1.5rem;
  font-weight: 800;
  color: #2e1d03;
  border-bottom: 0.0625rem solid #eee;
}

.p-terms-modal__body {
  padding: 1.25rem;
  overflow-y: auto;
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: 1rem;
  line-height: 1.8;
  color: #422904;
}
.p-terms-modal__body p {
  margin: 0 0 0.75rem;
}
.p-terms-modal__body p:last-child {
  margin-bottom: 0;
}

.p-terms-modal__section {
  margin-bottom: 1.5rem;
}
.p-terms-modal__section:last-child {
  margin-bottom: 0;
}

.p-terms-modal__heading {
  margin: 0 0 0.625rem;
  font-size: 1rem;
  font-weight: 800;
  color: #2e1d03;
  padding-bottom: 0.375rem;
  border-bottom: 0.0625rem solid rgba(255, 153, 2, 0.3);
}

.p-terms-modal__subheading {
  margin: 1rem 0 0.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #2e1d03;
}

.p-terms-modal__list {
  margin: 0 0 0.75rem;
  padding-left: 1.375rem;
  list-style: decimal;
}
.p-terms-modal__list li {
  margin-bottom: 0.375rem;
}
.p-terms-modal__list li:last-child {
  margin-bottom: 0;
}

.p-terms-modal__list--inner {
  margin: 0.375rem 0 0;
  padding-left: 1.125rem;
  list-style: disc;
}

.p-terms-modal__list--ul {
  list-style: disc;
}

.p-terms-modal__contact-label {
  font-weight: 700;
  margin-top: 0.5rem;
}

.p-terms-modal__note {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: #422904;
}

/*============================
p-mv
============================*/
.p-mv__img {
  margin: 0;
}

.p-mv__img img {
  width: 100%;
  display: block;
}

.p-mv__text {
  margin: 0.4rem 0 0.625rem;
  color: #543506;
  font-size: 1.5625rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-align: center;
}

/*============================
  p-step
============================*/
/* ---------- Step card ---------- */
.p-step {
  display: none;
  background: #fff;
  border: 0.0625rem solid #ff9902;
  border-radius: 0.625rem;
  -webkit-box-shadow: 0 0.4375rem 0.18375rem 0.00375rem rgba(222, 208, 186, 0.5);
          box-shadow: 0 0.4375rem 0.18375rem 0.00375rem rgba(222, 208, 186, 0.5);
}

.p-step.is-active {
  display: block;
}

.p-step__header {
  text-align: center;
  margin-bottom: 0;
}

.p-step__lead {
  padding: 0.625rem 0.625rem;
  background: #ff9902;
  border-radius: 0.625rem 0.625rem 0 0;
  font-size: 2.3125rem;
  letter-spacing: 0.06em;
  text-align: center;
  color: #fff;
  -webkit-text-stroke: 0.1875rem #1da21a;
  paint-order: stroke fill;
  -webkit-paint-order: stroke fill;
}
@supports not (paint-order: stroke fill) {
  .p-step__lead {
    color: #fff;
    -webkit-text-stroke: 0;
    text-shadow: 0.125rem 0.125rem 0 #1da21a, -0.125rem -0.125rem 0 #1da21a, 0.125rem -0.125rem 0 #1da21a, -0.125rem 0.125rem 0 #1da21a, 0 0.125rem 0 #1da21a, 0 -0.125rem 0 #1da21a, 0.125rem 0 0 #1da21a, -0.125rem 0 0 #1da21a;
  }
}

.p-step__lead .is-size-30 {
  font-size: 1.875rem;
}

.p-step__title {
  margin: 0;
  color: #422904;
  font-size: 2.875rem;
  text-align: center;
}

.p-step__title .is-size-40 {
  font-size: 2.5rem;
}

.p-step__title .is-size-35 {
  font-size: 2.1875rem;
}

.p-step__title .is-size-30 {
  font-size: 1.875rem;
}

.p-step--4 .p-step__title,
.p-step--6 .p-step__title {
  font-size: 2.5rem;
}

.p-step--7 .p-step__title {
  font-size: 2.1875rem;
}

/* ---------- Choices ---------- */
.p-step__choices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 1.075rem;
  gap: 1.075rem;
  margin-top: 2.1375rem;
  padding: 0 1rem;
}

/* ---------- Buttons ---------- */
.p-step__actions {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 1.325rem;
}

.p-step--choice-horizontal .p-step__actions {
  margin-top: 2.7375rem;
}

.p-step--choice-vertical .p-step__actions {
  margin-top: 1.7375rem;
}

.p-step__actions--split {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  gap: 0;
  /* 残り幅をspace-betweenで間隔にする */
}

.p-step__actions--split label,
.p-step__actions--split button {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.p-step__actions--split .c-btn,
.p-step__actions--split .c-btn--back,
.p-step__actions--split .c-btn--next {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

/* 139 / 637 = 21.8210% */
.p-step__actions--split .c-btn--back {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 21.821%;
      -ms-flex: 0 0 21.821%;
          flex: 0 0 21.821%;
}

/* 452 / 637 = 70.9576% */
.p-step__actions--split .c-btn--next,
.p-step__actions--split .c-submitBtn {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 70.9576%;
      -ms-flex: 0 0 70.9576%;
          flex: 0 0 70.9576%;
}

.p-step__actions--split .p-step__next {
  width: auto;
  max-width: none;
}

/* ---------- Step（進捗 + 画像ボタン用の共通拡張） ---------- */
.p-step__content {
  position: relative;
  border-radius: 0.625rem;
}

.p-step__body {
  padding: 0.3rem 1.625rem 3rem;
}

/* 指アイコン（Step6・Step7のみ・JSで位置更新） */
.p-step .p-step__hand--pointing {
  position: absolute;
  width: 4.875rem;
  height: auto;
  pointer-events: none;
  -webkit-transition: right 0.65s ease, bottom 0.65s ease;
  transition: right 0.65s ease, bottom 0.65s ease;
  z-index: 2;
}
.p-step .p-step__hand--pointing img {
  width: 100%;
  height: auto;
  display: block;
}

.p-step__progress {
  margin: 0.525rem auto;
  padding: 0 7.625rem;
  max-width: 100%;
}

.p-step__progressList {
  list-style: none;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.375rem;
  padding: 0;
  margin: 0;
  position: relative;
}

.p-step__progressList::before {
  content: "";
  position: absolute;
  left: 1.125rem;
  right: 1.125rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  height: 0.125rem;
  background: rgba(254, 152, 0, 0.55);
}

.p-step__progressItem {
  position: relative;
  z-index: 1;
  line-height: 1;
  padding: 0.35rem 0.5rem 0.25rem 0.6875rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 1.705625rem;
  letter-spacing: 0.06em;
  color: #fe9800;
  background: #fff;
  border: 0.125rem solid #fe9800;
}

.p-step__progressItem.is-current {
  font-size: 1.875rem;
  color: #fff;
  background: #fe9800;
}

.p-step__progressItem.is-done {
  color: #fff;
  background: #fe9800;
  padding: 0.65rem 0.5rem 0.65rem 0.3rem;
}
.p-step__progressItem.is-done img {
  width: 1.6rem;
  height: auto;
  display: block;
}

.p-step__choices--stack {
  grid-template-columns: 1fr;
  padding: 0;
  margin-top: 1.125rem;
}

.p-step__choices--grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 2rem;
  gap: 2rem;
  margin-top: 0.625rem;
  padding: 0 1rem;
}

.p-step__choice--img {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  width: 100%;
  cursor: pointer;
  display: block;
}

.p-step__choice--img img {
  width: 100%;
  height: auto;
  display: block;
}

.p-step--1 .p-step__choice--img {
  border: 0.25rem solid #d5d3d3;
  border-radius: 0.8125rem;
}

.p-step__choice--img.is-selected {
  border: 0.25rem solid rgba(255, 153, 2, 0.9);
  border-radius: 0.8125rem;
}

.p-step__choice--img:focus-visible {
  outline: 0.1875rem solid rgba(62, 122, 130, 0.9);
  outline-offset: 0;
  border-radius: 0.625rem;
}

.p-step__next {
  width: 100%;
  max-width: 45rem;
}

.p-step .p-step__error[hidden] {
  display: none;
}

.p-step .p-step__error {
  position: relative;
  margin: 1.175rem 0 0;
  width: 100%;
  padding: 0 1rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: #fe5700;
  color: #fff;
  font-weight: 900;
  font-size: 1.6875rem;
  letter-spacing: 0.12em;
  border-radius: 0.625rem;
  line-height: 1.2;
}
.p-step .p-step__error::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  -webkit-transform: translate(-50%, -100%);
          transform: translate(-50%, -100%);
  width: 0;
  height: 0;
  border-left: 0.75rem solid transparent;
  border-right: 0.75rem solid transparent;
  border-bottom: 0.75rem solid #fe5700;
}

.p-step__field .p-step__title {
  line-height: 1.25;
}

/* ---------- Note (footer inside step) ---------- */
.p-step__note {
  margin-top: 1.125rem;
  padding-top: 0.875rem;
  border-top: 0.0625rem solid #d9d9d9;
  color: #777;
  font-size: 0.75rem;
  line-height: 1.7;
  text-align: center;
}

.p-step__note a {
  color: inherit;
  text-decoration: underline;
}

.p-step__links {
  margin: 0.375rem 0 0;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 0.75rem;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}

.p-step__input-wrap {
  display: block;
  width: 100%;
}

.p-step .p-step__input {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.p-step--6 .p-step__inputWrap,
.p-step--7 .p-step__inputWrap {
  position: relative;
}

.p-step__input {
  width: 100%;
  padding: 0.4rem 1.375rem;
  border: 0.125rem solid #ff9902;
  border-radius: 0.625rem;
  background: #fff;
  color: #422904;
  font-size: 2.006875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  outline: none;
}
.p-step__input::-moz-placeholder {
  color: #bdbdbd;
  font-weight: 700;
}
.p-step__input::-webkit-input-placeholder {
  color: #bdbdbd;
  font-weight: 700;
}
.p-step__input:-ms-input-placeholder {
  color: #bdbdbd;
  font-weight: 700;
}
.p-step__input::-ms-input-placeholder {
  color: #bdbdbd;
  font-weight: 700;
}
.p-step__input::placeholder {
  color: #bdbdbd;
  font-weight: 700;
}
.p-step__input:focus {
  -webkit-box-shadow: 0 0 0 0.1875rem rgba(255, 153, 2, 0.25);
          box-shadow: 0 0 0 0.1875rem rgba(255, 153, 2, 0.25);
}

.p-step__input.is-error,
.p-step__input[aria-invalid=true] {
  background: #fbdac9;
  border: 0.125rem solid #fe5700;
  border-radius: 0.625rem;
}

/* ---------- Step6（入力フォーム） ---------- */
.p-step--6 {
  /* 右側の指アイコン（.p-step__hand--pointing のときはJSで位置指定するため right/top は使わない） */
}
.p-step--6 .p-step__form {
  position: relative;
  margin-top: 1.125rem;
}
.p-step--6 .p-step__field {
  margin-top: 1.625rem;
}
.p-step--6 .p-step__field:first-child {
  margin-top: 0;
}
.p-step--6 .p-step__hand:not(.p-step__hand--pointing) {
  position: absolute;
  right: -2.375rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 4.5rem;
  height: auto;
  pointer-events: none;
}
.p-step--6 .p-step__hand:not(.p-step__hand--pointing) img {
  width: 100%;
  height: auto;
  display: block;
}
.p-step--6 .p-step__hand--pointing {
  right: auto;
  top: auto;
}

/* ---------- Step7（連絡先フォーム） ---------- */
.p-step--7 {
  /* 2カラム（苗字/名前） */
  /* Step7の指は共通 .p-step .p-step__hand--pointing を継承 */
  /* 規約リンク行 */
  /* 画像ボタンの表示を安定化 */
}
.p-step--7 .p-step__title {
  text-align: center;
  margin-bottom: 1.125rem;
}
.p-step--7 .p-step__form {
  position: relative;
  margin-top: 0.625rem;
}
.p-step--7 .p-step__row2 {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-column-gap: 1.375rem;
  -moz-column-gap: 1.375rem;
       -webkit-column-gap: 1.375rem;
       column-gap: 1.375rem;
  grid-row-gap: 1.5rem;
  row-gap: 1.5rem;
  -webkit-box-align: start;
  -webkit-align-items: start;
      -ms-flex-align: start;
          align-items: start;
  margin-bottom: 2.125rem;
}
.p-step--7 .p-step__field {
  margin: 0;
}
.p-step--7 .p-step__label {
  margin: 0 0 0.625rem;
  color: #422904;
  font-weight: 800;
  font-size: 1.5rem;
  letter-spacing: 0.04em;
}
.p-step--7 .p-step__links {
  margin: 0.5rem 0 0;
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.75rem;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}
.p-step--7 .p-step__link {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  color: #ff6a00;
  font-weight: 900;
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.p-step--7 .p-step__link:hover {
  text-decoration: underline;
}
.p-step--7 .c-btn--img img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---------- Step toggle（checkboxで表示切替） ---------- */
#step2Toggle:checked ~ .p-flow__steps .p-step--1 {
  display: none;
}

#step2Toggle:checked ~ .p-flow__steps .p-step--2 {
  display: block;
}

#step3Toggle:checked ~ .p-flow__steps .p-step--1,
#step3Toggle:checked ~ .p-flow__steps .p-step--2 {
  display: none;
}

#step3Toggle:checked ~ .p-flow__steps .p-step--3 {
  display: block;
}

#step4Toggle:checked ~ .p-flow__steps .p-step--1,
#step4Toggle:checked ~ .p-flow__steps .p-step--2,
#step4Toggle:checked ~ .p-flow__steps .p-step--3 {
  display: none;
}

#step4Toggle:checked ~ .p-flow__steps .p-step--4 {
  display: block;
}

#step5Toggle:checked ~ .p-flow__steps .p-step--1,
#step5Toggle:checked ~ .p-flow__steps .p-step--2,
#step5Toggle:checked ~ .p-flow__steps .p-step--3,
#step5Toggle:checked ~ .p-flow__steps .p-step--4 {
  display: none;
}

#step5Toggle:checked ~ .p-flow__steps .p-step--5 {
  display: block;
}

#step6Toggle:checked ~ .p-flow__steps .p-step--1,
#step6Toggle:checked ~ .p-flow__steps .p-step--2,
#step6Toggle:checked ~ .p-flow__steps .p-step--3,
#step6Toggle:checked ~ .p-flow__steps .p-step--4,
#step6Toggle:checked ~ .p-flow__steps .p-step--5 {
  display: none;
}

#step6Toggle:checked ~ .p-flow__steps .p-step--6 {
  display: block;
}

#step7Toggle:checked ~ .p-flow__steps .p-step--1,
#step7Toggle:checked ~ .p-flow__steps .p-step--2,
#step7Toggle:checked ~ .p-flow__steps .p-step--3,
#step7Toggle:checked ~ .p-flow__steps .p-step--4,
#step7Toggle:checked ~ .p-flow__steps .p-step--5,
#step7Toggle:checked ~ .p-flow__steps .p-step--6 {
  display: none;
}

#step7Toggle:checked ~ .p-flow__steps .p-step--7 {
  display: block;
}

/*============================
  .p-thankyou
============================*/
.p-thankyou__inner {
  position: relative;
  padding-bottom: 5rem;
  /* 背景画像を入れる場合: background-image: url(...); background-size: cover; など */
}

/* メインカード */
.p-thankyou__card {
  position: relative;
  width: 100%;
  max-width: 43.3375rem;
  margin: 0 auto;
  padding-bottom: 1rem;
  background: #fffef9 url("../images/thankyou/thankyou-bg.png") center/cover no-repeat;
  border: 0.0625rem solid #f49a00;
  border-radius: 0.625rem;
  -webkit-box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.08);
          box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.08);
  overflow: hidden;
  /* 左下：キラキラ画像 */
}
.p-thankyou__card::before {
  content: "";
  position: absolute;
  bottom: 0.4rem;
  left: 0.4rem;
  z-index: 3;
  width: 1.5rem;
  height: 1.5rem;
  background-image: url("../images/thankyou/thankyou-left-down-sparkle.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left bottom;
  pointer-events: none;
}

/* 緑リボンバナー（画像） */
.p-thankyou__ribbon {
  margin-top: 0.4rem;
  text-align: center;
}

.p-thankyou__ribbon-img {
  display: block;
  width: 100%;
  max-width: 41.8125rem;
  height: auto;
  margin: 0 auto;
}

/* 感謝セクション */
.p-thankyou__thanks {
  margin-top: -0.4rem;
}

.p-thankyou__title-wrap {
  margin: 0 0 0.75rem;
}

.p-thankyou__title-img {
  display: block;
  max-width: 39.6875rem;
  height: auto;
  margin: 0 auto 0 0.6rem;
}

.p-thankyou__desc-wrap {
  margin-top: -1rem;
  padding-bottom: 0.75rem;
}

.p-thankyou__desc-img {
  display: block;
  max-width: 40.125rem;
  height: auto;
  margin: 0 auto 0 2.6rem;
}

/* 次のステップ（flow・オレンジ枠・見出しは上枠中央） */
.p-thankyou__flow {
  position: relative;
  margin: 1.8rem 1.35rem 0;
  padding: 0;
  background: #fffaf4;
  border: 0.0625rem solid #fe9800;
  border-radius: 0.9375rem;
  overflow: visible;
  /* 右上：カルテ（クリップボード）画像 */
  /* 右下：キラキラ画像 */
}
.p-thankyou__flow::before {
  content: "";
  position: absolute;
  top: -5.3rem;
  right: -1.1rem;
  z-index: 3;
  width: 6.25rem;
  height: 7.625rem;
  background-image: url("../images/thankyou/thankyou-clipboard.png");
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
}
.p-thankyou__flow::after {
  content: "";
  position: absolute;
  bottom: 2.2rem;
  right: -0.5rem;
  z-index: 3;
  width: 3.625rem;
  height: 3.1875rem;
  background-image: url("../images/thankyou/thankyou-sparkle.png");
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
}

/* 「次のステップ」画像：上枠の真ん中に配置（枠に少し重なる） */
.p-thankyou__flow-title-wrap {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  margin: 0;
  text-align: center;
}

.p-thankyou__flow-title-img {
  display: block;
  width: auto;
  max-width: 16.875rem;
  height: auto;
  margin: 0 auto;
}

/* 女性 + ①②③リストを横並び */
.p-thankyou__flow-content {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  gap: 1rem;
}

/* 女性イラスト：①②③全体の左側・下にピッタリ揃える */
.p-thankyou__flow-visual {
  width: 13.125rem;
  max-width: 100%;
  margin-top: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.p-thankyou__flow-img {
  display: block;
  width: 100%;
  max-height: 100%;
  height: auto;
}

/* flowリスト（①②③） */
.p-thankyou__flow-list {
  margin-top: 1.8rem;
  margin-left: -1.8rem;
}

.p-thankyou__flow-item {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  /* 2番目・3番目に余白 */
}
.p-thankyou__flow-item--img {
  width: 100%;
}
.p-thankyou__flow-item:nth-child(2) {
  margin-top: 0.9rem;
}
.p-thankyou__flow-item:nth-child(3) {
  margin: 0.7rem 0 0.4rem;
}

.p-thankyou__flow-text-img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

/* ステップ①②③テキスト画像の最大幅（デザイン指定） */
.p-thankyou__flow-list > .p-thankyou__flow-item:nth-child(1) .p-thankyou__flow-text-img {
  max-width: 27.3125rem;
}

.p-thankyou__flow-list > .p-thankyou__flow-item:nth-child(2) .p-thankyou__flow-text-img {
  max-width: 27.3125rem;
}

.p-thankyou__flow-list > .p-thankyou__flow-item:nth-child(3) .p-thankyou__flow-text-img {
  max-width: 24.8125rem;
}

/*============================
  .p-nonce-error-modal
============================*/
/* nonce エラー時アラート（TOPへ戻るリンク） */
.p-nonce-error-modal .p-terms-modal__backdrop {
  z-index: 1;
  pointer-events: none;
  /* 背面タップで閉じない・ダイアログのリンクが確実にクリックできるようにする */
}

.p-nonce-error-modal .p-terms-modal__dialog {
  z-index: 2;
  max-width: 25rem;
  pointer-events: auto;
}

.p-nonce-error-modal__link-wrap {
  margin-top: 1.25rem;
  margin-bottom: 0;
  text-align: center;
}

.p-nonce-error-modal__link {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: #ff9902;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  border-radius: 0.5rem;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}
.p-nonce-error-modal__link:hover, .p-nonce-error-modal__link:focus {
  color: #fff;
  opacity: 0.9;
}
/*# sourceMappingURL=styles-lp.css.map */
