/* ============================================================
   BRIDGE SEVEN エントリーフォーム（entry.html → MW WP Form 想定）
   ・css/bridge-seven.css（共通ヘッダー・フッター・トークン）の後に読み込む
   ・選択肢は MW WP Form の出力（.mwform-radio-field / .mwform-checkbox-field）に合わせたセレクタ
   ・単位は rem（1rem = 10px）、文字は最小 14px
   ============================================================ */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ------------------------------------------------------------
   ページ見出し
   ------------------------------------------------------------ */
.entry-hero {
  position: relative;
  overflow: hidden;
  padding-top: 17rem;
  background: #0b1535;
  color: #fff;
}

.entry-hero__image {
  position: absolute;
  top: 0;
  right: 0;
  width: 64%;
  height: 100%;
  object-fit: cover;
  object-position: 60% 38%;
}

.entry-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #0b1535 32%, rgba(11, 21, 53, 0.55) 58%, rgba(11, 21, 53, 0.15) 100%), linear-gradient(0deg, #0a1230 0%, transparent 45%);
}

.entry-hero__inner,
.entry-points {
  position: relative;
  z-index: 1;
}

.entry-hero__title {
  font: 400 clamp(4.4rem, 5vw, 6.8rem)/1.1 Georgia, "Times New Roman", serif;
  letter-spacing: 0.06em;
}

.entry-hero__lead {
  margin-top: 1.4rem;
  font: 600 1.8rem/1.6 var(--serif);
  letter-spacing: 0.08em;
}

.entry-points {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 4.4rem;
  padding: 2.2rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  list-style: none;
}

.entry-points li {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 0 2rem;
}

.entry-points li + li {
  border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.entry-points img {
  flex: 0 0 auto;
  width: 4.8rem;
  height: 4.8rem;
  padding: 0.7rem;
  border-radius: 50%;
  background: #fff;
}

.entry-points strong {
  display: block;
  font-size: 1.6rem;
  line-height: 1.5;
}

.entry-points span {
  display: block;
  font-size: 1.4rem;
  color: #c9cfe6;
}

/* ------------------------------------------------------------
   レイアウト（フォーム＋サイドバー）
   ------------------------------------------------------------ */
.entry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 29rem;
  gap: 4.4rem;
  padding: 5.2rem 0 9.6rem;
}

.entry-main {
  min-width: 0;
}

/* サイドバー */
.entry-aside {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.entry-steps {
  position: sticky;
  top: 9.2rem;
  z-index: 2;
  overflow: hidden;
  border: 1px solid #e1e4f2;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 -2rem 0 0.1rem #fff, 0 0.6rem 2.4rem rgba(19, 27, 80, 0.08);
}

.entry-steps__title {
  padding: 1.6rem 2rem;
  background: linear-gradient(110deg, #3a4aa6, #6a4cb3);
  color: #fff;
  font: 600 1.6rem/1.4 var(--serif);
  letter-spacing: 0.08em;
}

.entry-steps ol {
  list-style: none;
  margin: 0;
  padding: 0.6rem 0;
}

.entry-steps a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.1rem 2rem;
  font-size: 1.4rem;
  line-height: 1.5;
  color: var(--ink);
  transition: background-color 0.2s;
}

.entry-steps li + li a {
  border-top: 1px solid #eef0f7;
}

@media (hover: hover) and (min-width: 1151px) {
  .entry-steps a:hover {
    background: #f5f6fc;
  }
}
.entry-steps small {
  font-size: 1.4rem;
  color: #6b7190;
}

.entry-steps__no {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.8rem;
  height: 2.8rem;
  border: 1px solid #cfd4ea;
  border-radius: 0.4rem;
  font: 600 1.4rem/1 Arial, sans-serif;
  color: #3a4aa6;
}

.entry-steps a.is-current {
  background: #f5f6fc;
  font-weight: 600;
}

.entry-steps a.is-current::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.8rem;
  bottom: 0.8rem;
  width: 0.3rem;
  border-radius: 0.2rem;
  background: var(--pink);
}

.entry-steps a.is-current .entry-steps__no {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}

/* サイドバーのカード */
.entry-card {
  padding: 2.4rem 2.2rem;
  border: 1px solid #e1e4f2;
  border-radius: 1rem;
  background: #f5f6fc;
  text-align: center;
}

.entry-card__title {
  font: 600 1.7rem/1.5 var(--serif);
  letter-spacing: 0.06em;
}

.entry-card__lead {
  margin-top: 1.2rem;
  font: 700 2.4rem/1.4 var(--serif);
}

.entry-card__accent {
  margin-top: 0.4rem;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--pink);
}

.entry-card__price {
  margin-top: 0.8rem;
  font: 700 4.2rem/1.3 var(--serif);
  letter-spacing: 0.1em;
  color: var(--pink);
}

.entry-card__text {
  margin-top: 1.2rem;
  font-size: 1.4rem;
  line-height: 1.8;
  text-align: left;
}

.entry-card__note {
  margin-top: 1rem;
  font-size: 1.4rem;
  line-height: 1.7;
  color: #6b7190;
  text-align: left;
}

.entry-card__link {
  display: inline-block;
  margin-top: 1.2rem;
  font-size: 1.4rem;
  color: var(--blue);
  text-decoration: underline;
}

/* ------------------------------------------------------------
   フォーム：ステップ
   ------------------------------------------------------------ */
.form-step {
  scroll-margin-top: 2rem;
}

.form-step + .form-step {
  margin-top: 5.2rem;
}

.form-step__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem 1.2rem;
  padding-bottom: 1.4rem;
  margin-bottom: 2.6rem;
  border-bottom: 1px solid var(--line);
  font: 600 2.2rem/1.4 var(--serif);
  letter-spacing: 0.06em;
}

.form-step__no {
  display: grid;
  place-items: center;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 0.4rem;
  background: var(--ink);
  color: #fff;
  font: 600 1.6rem/1 Arial, sans-serif;
  letter-spacing: 0;
}

.form-step__note {
  font: 400 1.4rem/1.5 var(--sans);
  letter-spacing: 0;
  color: #6b7190;
}

.badge {
  display: inline-block;
  padding: 0.3rem 0.8rem;
  border-radius: 0.3rem;
  font: 700 1.4rem/1.2 var(--sans);
  letter-spacing: 0.04em;
  vertical-align: middle;
}

.badge--required {
  background: #fde8f0;
  color: #d42f71;
}

.badge--optional {
  background: #eceef5;
  color: #6b7190;
}

/* ------------------------------------------------------------
   フォーム：グリッドと項目
   ------------------------------------------------------------ */
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.6rem 4rem;
}

.form-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.6rem 3.2rem;
}

.form-grid--wide-center {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1fr);
}

.form-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem 2.4rem;
}

.form-grid--upload {
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 0.9fr);
  gap: 2.4rem;
  align-items: start;
}

.form-grid--sns {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 2rem 1.6rem;
}

.form-grid + .form-grid,
.form-grid + .choices,
.form-grid + .field__note {
  margin-top: 2.6rem;
}

.form-grid--divided {
  padding-top: 2.6rem;
  border-top: 1px dashed var(--line);
}

.field {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.field--full {
  grid-column: 1/-1;
}

.field__label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem 0.8rem;
  margin-bottom: 1rem;
  padding: 0;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
}

.field__label--sns {
  gap: 0.8rem;
  font-size: 1.4rem;
}

.field__limit {
  font-size: 1.4rem;
  font-weight: 400;
  color: #6b7190;
}

.field__pair {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
}

.field__part {
  display: block;
  min-width: 0;
}

.field__sub {
  font-size: 1.4rem;
  color: #6b7190;
  white-space: nowrap;
}

.field__sub--block {
  display: block;
  margin: 1.6rem 0 0.6rem;
}

.field__date {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.4rem;
}

.field__date select {
  flex: 1 1 0;
  min-width: 0;
}

.field__date select:first-of-type {
  flex-grow: 1.4;
}

.field__date {
  flex-wrap: wrap;
}

.entry-form .field__date .error {
  order: 1;
  flex: 0 0 100%;
  margin-top: 0.8rem;
}

.entry-form .field__date .error ~ .error {
  display: none;
}

.field__meta {
  margin: -0.4rem 0 1rem;
  font-size: 1.4rem;
  color: #6b7190;
}

.field__note {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  line-height: 1.7;
  color: #6b7190;
}

/* 入力欄 */
.entry-form input[type=text],
.entry-form input[type=email],
.entry-form input[type=tel],
.entry-form input[type=url],
.entry-form select,
.entry-form textarea {
  width: 100%;
  min-height: 4.6rem;
  padding: 1rem 1.4rem;
  border: 1px solid #d6daea;
  border-radius: 0.6rem;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 1.6rem;
  line-height: 1.5;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.entry-form select {
  appearance: none;
  padding-right: 3.4rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23131b50' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 1.4rem center/1.2rem auto;
  cursor: pointer;
}
.entry-form textarea {
  display: block;
  line-height: 1.8;
  resize: vertical;
}
.entry-form ::placeholder {
  color: #a3a9c2;
}
.entry-form input:focus,
.entry-form select:focus,
.entry-form textarea:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 0.3rem rgba(53, 91, 213, 0.16);
}
.entry-form .is-readonly {
  background: #f1f2f7;
  color: #6b7190;
}

/* ラジオ・チェックボックス（MW WP Form の出力構造） */
.choices {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem 2.8rem;
}

.choices--vertical {
  flex-direction: column;
  gap: 1.2rem;
}

.choices--grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17.6rem, 1fr));
  gap: 1.2rem 1.6rem;
}

.choices--agree {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem 3.2rem;
}

.entry-form .mwform-radio-field,
.entry-form .mwform-checkbox-field {
  display: block;
  margin: 0;
}
.entry-form .horizontal-item + .horizontal-item,
.entry-form .vertical-item + .vertical-item {
  margin: 0;
}
.entry-form .mwform-radio-field label,
.entry-form .mwform-checkbox-field label {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.8rem;
  font-size: 1.5rem;
  line-height: 1.6;
  cursor: pointer;
}
.entry-form input[type=radio],
.entry-form input[type=checkbox] {
  flex: 0 0 auto;
  width: 1.9rem;
  height: 1.9rem;
  margin: 0.2rem 0 0;
  accent-color: var(--pink);
  cursor: pointer;
}
.entry-form .mwform-checkbox-field-text a {
  color: var(--blue);
  text-decoration: underline;
}
.entry-form .error {
  display: block;
  margin-top: 0.6rem;
  font-size: 1.4rem;
  font-weight: 600;
  color: #d42f71;
}

/* 文字数カウント付きテキストエリア */
.count-box {
  position: relative;
}

.count-box textarea {
  padding-bottom: 3.4rem;
}

.count-box__num {
  position: absolute;
  right: 1.2rem;
  bottom: 1rem;
  font-size: 1.4rem;
  color: #6b7190;
  pointer-events: none;
}

.count-box.is-over .count-box__num {
  color: #d42f71;
  font-weight: 700;
}

/* ファイルアップロード */
.upload {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-height: 13.6rem;
  padding: 2rem 1.4rem;
  border: 0.15rem dashed #c5cbe0;
  border-radius: 0.8rem;
  background: #fafbff;
  color: #4b5277;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s;
}

.upload.is-dragover,
.upload:focus-within {
  border-color: var(--blue);
  background: #f1f4ff;
}

@media (hover: hover) and (min-width: 1151px) {
  .upload:hover {
    border-color: var(--blue);
    background: #f1f4ff;
  }
}
.upload.is-selected {
  border-style: solid;
  border-color: var(--blue);
}

.upload input[type=file] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.upload__icon {
  width: 3.6rem;
  height: 3.6rem;
  border: 0.15rem solid currentColor;
  border-radius: 0.6rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%234b5277' stroke-width='1.6'%3E%3Cpath d='M9 12V3M5 7l4-4 4 4M3 15h12'/%3E%3C/svg%3E") no-repeat center/1.8rem;
}

.upload__text {
  font-size: 1.4rem;
  line-height: 1.7;
}

.upload__file {
  max-width: 100%;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--blue);
  word-break: break-all;
}

.upload__file:empty {
  display: none;
}

.upload__hint {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  color: #6b7190;
  text-align: center;
}

.upload .mwform-file-delete {
  position: absolute;
  top: 0.6rem;
  right: 1rem;
  z-index: 1;
  font-size: 2rem;
  cursor: pointer;
}

.info-box {
  padding: 1.8rem 1.8rem;
  border-radius: 0.8rem;
  background: #f5f6fc;
  font-size: 1.4rem;
  line-height: 1.8;
}

.info-box--notice {
  margin-bottom: 2.4rem;
  border: 1px solid #cdd5f5;
  background: #f3f5fe;
}

.info-box__title {
  margin-bottom: 0.6rem;
  font-size: 1.5rem;
  font-weight: 700;
}

/* SNS アイコン */
.sns-icon {
  flex: 0 0 auto;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 0.6rem;
  background: no-repeat center/100% 100%;
}

.sns-icon--instagram {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23f9a13a'/%3E%3Cstop offset='.5' stop-color='%23e1306c'/%3E%3Cstop offset='1' stop-color='%236a3ad8'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='22' height='22' rx='6' fill='url(%23g)'/%3E%3Crect x='5' y='5' width='12' height='12' rx='3.6' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3Ccircle cx='11' cy='11' r='2.8' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3Ccircle cx='14.6' cy='7.4' r='.9' fill='%23fff'/%3E%3C/svg%3E");
}

.sns-icon--tiktok {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Crect width='22' height='22' rx='6' fill='%23111'/%3E%3Cpath d='M12.3 5v8.2a2.6 2.6 0 1 1-2.2-2.6' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M12.3 5.2c.4 1.8 1.6 2.9 3.4 3.1' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

.sns-icon--x {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Crect width='22' height='22' rx='6' fill='%23111'/%3E%3Cpath d='M6.5 6l9 10M15.5 6l-9 10' stroke='%23fff' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
}

.sns-icon--youtube {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Crect y='3' width='22' height='16' rx='5' fill='%23f00'/%3E%3Cpath d='M9 7.6v6.8l5.6-3.4z' fill='%23fff'/%3E%3C/svg%3E");
}

.sns-icon--other {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Crect x='.75' y='.75' width='20.5' height='20.5' rx='5.25' fill='%23fff' stroke='%236b7190' stroke-width='1.5'/%3E%3Cpath d='M11 6.5v9M6.5 11h9' stroke='%236b7190' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
   送信エリア
   ------------------------------------------------------------ */
.entry-submit {
  margin-top: 6rem;
  padding: 4.4rem 2.4rem 3.6rem;
  border: 1px solid #e0e3f3;
  border-radius: 1.2rem;
  background: linear-gradient(135deg, #f5f1fb 0%, #eef2fd 100%);
  text-align: center;
}

.entry-submit__catch {
  font: 500 2.6rem/1.6 var(--serif);
  letter-spacing: 0.08em;
}

.entry-submit__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2rem 3.6rem;
  margin-top: 2.6rem;
}

.entry-submit__logo {
  width: 15rem;
  height: auto;
}

.entry-submit__button {
  display: inline-flex;
  align-items: center;
  gap: 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  min-width: 36rem;
  padding: 1.8rem 2.8rem 1.8rem 3.2rem;
  border: 0;
  border-radius: 0.6rem;
  background: linear-gradient(105deg, #df3b70 0%, #a12b9a 45%, #204dcc 100%);
  box-shadow: 0 0.8rem 2.4rem rgba(161, 43, 154, 0.28);
  color: #fff;
  cursor: pointer;
  transition: filter 0.2s, transform 0.2s;
}

@media (hover: hover) and (min-width: 1151px) {
  .entry-submit__button:hover {
    filter: brightness(1.12);
    transform: translateY(-0.2rem);
  }
}
.entry-submit__button::before {
  content: "ENTRY";
  font: 400 2.8rem/1 Georgia, serif;
  letter-spacing: 0.04em;
}

.entry-submit__button::after {
  content: "→";
  content: "→"/"";
  margin-left: auto;
  font: 400 2.6rem/1 Georgia, serif;
}

.entry-submit__note {
  margin-top: 1.6rem;
  font-size: 1.4rem;
  color: #6b7190;
}

.sp-br {
  display: none;
}

/* ------------------------------------------------------------
   進行表示（入力 → 確認 → 完了）
   画面の状態は MW WP Form が付けるクラスで判定するので、3画面とも同じ HTML
   ------------------------------------------------------------ */
.entry-flow {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-top: 4rem;
  padding: 0;
  list-style: none;
}

.entry-flow__item {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 1rem;
  white-space: nowrap;
  font-size: 1.5rem;
  font-weight: 700;
  color: #9aa0b8;
}

.entry-flow__item + .entry-flow__item::before {
  content: "";
  width: 6.4rem;
  height: 1px;
  margin: 0 1.6rem;
  background: #d6daea;
}

.entry-flow__no {
  display: grid;
  place-items: center;
  width: 3.4rem;
  height: 3.4rem;
  border: 1px solid #d6daea;
  border-radius: 50%;
  background: #fff;
  font: 600 1.5rem/1 Arial, sans-serif;
}

.entry-flow__item--input,
body:has(.mw_wp_form_confirm) .entry-flow__item--confirm,
body:has(.mw_wp_form_complete) .entry-flow__item--complete {
  color: var(--ink);
}

.entry-flow__item--input .entry-flow__no,
body:has(.mw_wp_form_confirm) .entry-flow__item--confirm .entry-flow__no,
body:has(.mw_wp_form_complete) .entry-flow__item--complete .entry-flow__no {
  border-color: transparent;
  background: linear-gradient(135deg, #df3b70, #6a4cb3);
  color: #fff;
}

body:has(.mw_wp_form_confirm) .entry-flow__item--input .entry-flow__no,
body:has(.mw_wp_form_complete) .entry-flow__item--input .entry-flow__no,
body:has(.mw_wp_form_complete) .entry-flow__item--confirm .entry-flow__no {
  border-color: var(--ink);
  background: #fff;
  color: var(--ink);
}

body:has(.mw_wp_form_confirm) .entry-flow__item--input,
body:has(.mw_wp_form_complete) .entry-flow__item--input,
body:has(.mw_wp_form_complete) .entry-flow__item--confirm {
  color: var(--ink);
}

body:has(.mw_wp_form_confirm) .entry-flow__item--confirm::before,
body:has(.mw_wp_form_complete) .entry-flow__item::before {
  background: var(--ink);
}

/* ------------------------------------------------------------
   リード（エラー・確認のときだけ表示）
   ------------------------------------------------------------ */
.entry-read {
  display: none;
  margin-bottom: 3.6rem;
  padding: 2rem 2.4rem 2rem 6.2rem;
  position: relative;
  border: 1px solid;
  border-radius: 0.8rem;
  font-size: 1.4rem;
  line-height: 1.8;
}

.entry-read::before {
  content: "";
  position: absolute;
  left: 2.2rem;
  top: 2.2rem;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  background: no-repeat center/1.4rem;
}

.entry-read__title {
  margin-bottom: 0.4rem;
  font-size: 1.7rem;
  font-weight: 700;
}

.entry-form:has(.error:not(.js-url-error)) .entry-read--error,
.entry-form.has-error .entry-read--error {
  display: block;
  border-color: #f3b8cf;
  background: #fff4f8;
  color: #8f1d4b;
}

.entry-read--error::before {
  background-color: #d42f71;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 2.5v5.5' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='7' cy='11' r='1.2' fill='%23fff'/%3E%3C/svg%3E");
}

.mw_wp_form_confirm .entry-read--confirm {
  display: block;
  border-color: #cdd5f5;
  background: #f3f5fe;
  color: var(--ink);
}

.entry-read--confirm::before {
  background-color: var(--blue);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.3l2.6 2.6L11 4.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
   エラー画面：該当項目を赤で示す
   ------------------------------------------------------------ */
.entry-form .error {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  grid-column: 1/-1;
}
.entry-form .error::before {
  content: "!";
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 1.7rem;
  height: 1.7rem;
  margin-top: 0.2rem;
  border-radius: 50%;
  background: #d42f71;
  color: #fff;
  font: 700 1.2rem/1 Arial, sans-serif;
}
.entry-form .field:has(.error) :is(input[type=text], input[type=email], input[type=tel], input[type=url], select, textarea),
.entry-form .field:has(.error) .upload,
.entry-form .field.has-error :is(input[type=text], input[type=email], input[type=tel], input[type=url], select, textarea),
.entry-form .field.has-error .upload {
  border-color: #d42f71;
  background-color: #fff8fb;
}
.entry-form .form-step:has(.error) .form-step__no,
.entry-form .form-step.has-error .form-step__no {
  background: #d42f71;
}

.entry-steps a.has-error .entry-steps__no {
  border-color: #d42f71;
  background: #d42f71;
  color: #fff;
}

.entry-steps a.has-error::after {
  content: "要確認";
  margin-left: auto;
  font-size: 1.4rem;
  font-weight: 700;
  color: #d42f71;
  white-space: nowrap;
}

/* ------------------------------------------------------------
   確認画面：入力欄の代わりに値を表示（MW WP Form の確認画面出力）
   ------------------------------------------------------------ */
.mw_wp_form_confirm .badge,
.mw_wp_form_confirm .field__sub:not(.field__sub--block),
.mw_wp_form_confirm .field__limit,
.mw_wp_form_confirm .field__meta,
.mw_wp_form_confirm .field__note,
.mw_wp_form_confirm .upload__icon,
.mw_wp_form_confirm .upload__text,
.mw_wp_form_confirm .upload__hint,
.mw_wp_form_confirm .count-box__num,
.mw_wp_form_confirm .info-box,
.mw_wp_form_confirm .form-step__note {
  display: none;
}
.mw_wp_form_confirm .field {
  padding-bottom: 1.4rem;
  border-bottom: 1px solid #eef0f7;
  font-size: 1.6rem;
  line-height: 1.8;
  word-break: break-word;
}
.mw_wp_form_confirm .field__label {
  margin-bottom: 0.4rem;
  font-size: 1.4rem;
  color: #6b7190;
}
.mw_wp_form_confirm .field__sub--block {
  margin: 1.4rem 0 0.2rem;
}
.mw_wp_form_confirm .field__pair,
.mw_wp_form_confirm .field__date {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.8rem;
  font-size: 1.6rem;
}
.mw_wp_form_confirm .field__date {
  gap: 0 0.4rem;
}
.mw_wp_form_confirm .choices {
  display: block;
}
.mw_wp_form_confirm .upload {
  display: block;
  min-height: 0;
  padding: 0 0 0 2.6rem;
  border: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='%23355bd5' stroke-width='1.5'%3E%3Cpath d='M4 2h7l3 3v11H4z'/%3E%3Cpath d='M11 2v3h3'/%3E%3C/svg%3E") no-repeat left center/1.8rem;
  color: var(--ink);
  font-weight: 700;
  text-align: left;
  cursor: default;
}
.mw_wp_form_confirm .field__empty {
  color: #6b7190;
  font-weight: 400;
}
.mw_wp_form_confirm .form-grid--upload {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.entry-submit__buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
}

.entry-submit__back {
  min-height: 6.4rem;
  padding: 1.4rem 2.8rem;
  border: 1px solid var(--ink);
  border-radius: 0.6rem;
  background: #fff;
  color: var(--ink);
  font-size: 1.6rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s;
}

@media (hover: hover) and (min-width: 1151px) {
  .entry-submit__back:hover {
    background: #eef0fa;
  }
}
/* ------------------------------------------------------------
   完了画面
   ------------------------------------------------------------ */
.entry-complete {
  padding: 4rem 0 10rem;
}

.entry-complete__panel {
  max-width: 78rem;
  margin: 0 auto;
  padding: 5.6rem 4.8rem 4.8rem;
  border: 1px solid #e0e3f3;
  border-radius: 1.4rem;
  background: linear-gradient(160deg, #f7f3fc 0%, #eef2fd 100%);
  text-align: center;
}

.entry-complete__icon {
  display: block;
  width: 7.6rem;
  height: 7.6rem;
  margin: 0 auto 2.2rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #df3b70, #6a4cb3 55%, #204dcc);
  box-shadow: 0 1rem 2.8rem rgba(161, 43, 154, 0.25);
  position: relative;
}

.entry-complete__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 46%;
  width: 2.6rem;
  height: 1.4rem;
  border-left: 0.35rem solid #fff;
  border-bottom: 0.35rem solid #fff;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.entry-complete__eyebrow {
  font: 600 1.4rem/1.5 Arial, sans-serif;
  letter-spacing: 0.22em;
  color: #6b7190;
}

.entry-complete__title {
  margin-top: 1rem;
  font: 600 3rem/1.5 var(--serif);
  letter-spacing: 0.06em;
}

.entry-complete__lead {
  margin-top: 1.6rem;
  font: 500 1.7rem/1.9 var(--serif);
}

.entry-complete__text {
  margin-top: 1.2rem;
  font-size: 1.5rem;
  line-height: 2;
}

.entry-complete__notice {
  margin-top: 3.2rem;
  padding: 2rem 2.4rem;
  border-radius: 0.8rem;
  background: #fff;
  text-align: left;
}

.entry-complete__notice-title {
  margin-bottom: 0.8rem;
  font-size: 1.5rem;
  font-weight: 700;
}

.entry-complete__notice ul {
  margin: 0;
  padding-left: 1.3em;
  font-size: 1.4rem;
  line-height: 1.9;
  color: #4b5277;
}

.entry-complete__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.2rem 2.8rem;
  margin-top: 3.2rem;
}

.entry-complete__actions .more-button {
  margin-top: 0;
}

.entry-complete__sub {
  font-size: 1.4rem;
  color: var(--blue);
  text-decoration: underline;
}

/* ------------------------------------------------------------
   WordPress（page-entry.php）用
   ------------------------------------------------------------ */
.entry-submit__logo--bg {
  display: block;
  width: 15rem;
  aspect-ratio: 880/373;
  background: url("../common/images/logo-dark.webp") no-repeat center/contain;
}

body:has(.mw_wp_form_complete) .entry-layout {
  display: block;
}
body:has(.mw_wp_form_complete) .entry-aside {
  display: none;
}

/* 固定ボタンが無いページはフッター下の余白を詰める */
.page-entry footer {
  padding-bottom: 2.2rem;
}

/* ------------------------------------------------------------
   レスポンシブ
   ------------------------------------------------------------ */
@media only screen and (max-width: 1150px) {
  .entry-layout {
    grid-template-columns: minmax(0, 1fr) 25rem;
    gap: 3.2rem;
  }
  .form-grid--sns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .form-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .choices--agree {
    grid-template-columns: 1fr;
  }
}
@media only screen and (max-width: 1024px) {
  .entry-layout {
    display: flex;
    flex-direction: column;
    gap: 3.6rem;
  }
  .entry-aside {
    order: -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.4rem;
  }
  .entry-steps {
    display: none;
  }
  .entry-card {
    padding: 1.8rem 1.6rem;
  }
  .entry-points li {
    padding: 0 1.2rem;
  }
  .form-grid--3,
  .form-grid--wide-center {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .form-grid--upload {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .form-grid--upload .info-box {
    grid-column: 1/-1;
  }
}
@media only screen and (max-width: 850px) {
  .entry-hero__image {
    width: 100%;
    opacity: 0.55;
  }
  .entry-points {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.8rem 0;
  }
  .entry-points li:nth-child(3) {
    border-left: 0;
  }
  .form-grid,
  .form-grid--3,
  .form-grid--wide-center {
    grid-template-columns: 1fr;
  }
  .entry-aside {
    grid-template-columns: 1fr;
  }
}
@media only screen and (max-width: 600px) {
  .entry-hero {
    padding-top: 12rem;
  }
  .entry-hero__lead {
    font-size: 1.5rem;
  }
  .entry-points {
    grid-template-columns: 1fr;
    margin-top: 2.8rem;
    padding: 1.6rem 0;
  }
  .entry-points li {
    padding: 0;
  }
  .entry-points li + li {
    border-left: 0;
  }
  .entry-layout {
    padding: 3.2rem 0 6.4rem;
  }
  .form-step + .form-step {
    margin-top: 4rem;
  }
  .form-step__title {
    font-size: 1.9rem;
  }
  .form-grid--4,
  .form-grid--sns,
  .form-grid--upload {
    grid-template-columns: 1fr;
  }
  .choices {
    gap: 1.2rem 2rem;
  }
  .entry-submit {
    padding: 3.2rem 1.6rem 2.8rem;
  }
  .entry-submit__catch {
    font-size: 1.8rem;
    letter-spacing: 0.02em;
  }
  .sp-br {
    display: inline;
  }
  .pc-space {
    display: none;
  }
  .entry-aside {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .entry-card {
    padding: 1.8rem 1.8rem;
  }
  .entry-card__title {
    font-size: 1.4rem;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .entry-card__lead {
    margin-top: 0.6rem;
    font-size: 1.8rem;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .entry-card__accent {
    font-size: 1.4rem;
  }
  .entry-card__price {
    margin-top: 0;
    font-size: 3rem;
  }
  .entry-card__text,
  .entry-card__note {
    margin-top: 0.6rem;
  }
  .entry-submit__button {
    justify-content: center;
    width: 100%;
    min-width: 0;
    gap: 1.2rem;
    padding: 1.6rem 1.8rem;
    font-size: 1.5rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .entry-submit__button::before {
    font-size: 2.2rem;
  }
  .entry-submit__button::after {
    font-size: 2.2rem;
  }
}
@media only screen and (max-width: 600px) {
  .entry-flow {
    margin-top: 2.8rem;
  }
  .entry-flow__item + .entry-flow__item::before {
    width: 2.4rem;
    margin: 0 0.8rem;
  }
  .entry-read {
    padding: 1.6rem 1.6rem 1.6rem 5.2rem;
  }
  .entry-read::before {
    left: 1.6rem;
    top: 1.8rem;
  }
  .mw_wp_form_confirm .form-grid--upload {
    grid-template-columns: 1fr;
  }
  .entry-submit__buttons {
    flex-direction: column-reverse;
    width: 100%;
  }
  .entry-submit__back {
    width: 100%;
    min-height: 5.4rem;
  }
  .entry-submit__row:has(.entry-submit__buttons) .entry-submit__logo {
    display: none;
  }
  .entry-complete {
    padding: 2.8rem 0 6.4rem;
  }
  .entry-complete__panel {
    padding: 4rem 1.8rem 3.2rem;
  }
  .entry-complete__title {
    font-size: 2.3rem;
  }
  .entry-complete__lead {
    font-size: 1.5rem;
  }
  .pc-br {
    display: none;
  }
}
@media only screen and (max-width: 374px) {
  .entry-submit__button {
    gap: 0.8rem;
    padding: 1.5rem 1.4rem;
    letter-spacing: 0;
  }
  .entry-submit__button::before {
    font-size: 2rem;
  }
  .entry-flow__item {
    gap: 0.6rem;
  }
  .entry-flow__item + .entry-flow__item::before {
    width: 1.4rem;
    margin: 0 0.6rem;
  }
  .entry-flow__no {
    width: 3rem;
    height: 3rem;
  }
}
@media only screen and (max-width: 600px) {
  .entry-card__note,
  .form-step__note,
  .field__note,
  .entry-submit__note {
    font-size: 1.3rem;
  }
}

/*# sourceMappingURL=entry.css.map */
