.mentor-b-page12 {
  --paper: #fff4f1;
  --ink: #202033;
  --muted: #6f6d78;
  --coral: #e88d80;
  --coral-soft: #f8ded8;
  --pink: #ed6681;
  --pink-soft: #fff0f3;
  --road: #d8d7d7;
  --line: #eee4e1;
  --white: #fff;
  position: absolute;
  inset: 0;
  width: 1920px;
  height: 1080px;
  overflow: hidden;
  background:
    radial-gradient(circle at 84% 8%, rgb(237 102 129 / .055) 0 210px, transparent 211px),
    var(--paper);
  color: var(--ink);
  font-family: "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;
}

.mentor-b-page12,
.mentor-b-page12 * { box-sizing: border-box; }

.mentor-b-page12 .sheet-header {
  position: absolute;
  left: 70px;
  top: 42px;
  width: 1780px;
  height: 142px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.mentor-b-page12 .title-block { position: relative; padding-left: 220px; }
.mentor-b-page12 .customer-tag {
  position: absolute;
  left: 0;
  top: 8px;
  width: 190px;
  margin: 0;
  padding: 14px 18px;
  border-radius: 999px;
  background: var(--coral);
  color: #fff;
  font-size: 25px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
}
.mentor-b-page12 .title-block h1 { margin: 0; font-size: 58px; letter-spacing: .045em; line-height: 1.1; }
.mentor-b-page12 .header-copy { margin: 14px 0 0; color: var(--muted); font-size: 22px; font-weight: 500; }
.mentor-b-page12 .arrival-badge {
  position: absolute;
  left: 980px;
  top: 2px;
  width: 330px;
  min-height: 104px;
  padding: 18px 26px;
  border: 2px solid var(--coral-soft);
  border-radius: 24px;
  background: rgb(255 255 255 / .72);
  text-align: center;
}
.mentor-b-page12 .page12-editable-card {
  cursor: pointer;
  outline: none;
}
.mentor-b-page12 .page12-editable-card:focus-visible {
  box-shadow: 0 0 0 5px rgb(232 141 128 / .34);
}
.mentor-b-page12 .arrival-badge span { display: block; color: var(--muted); font-size: 20px; font-weight: 700; }
.mentor-b-page12 .arrival-badge strong { display: block; margin-top: 4px; color: var(--coral); font-size: 38px; }
.mentor-b-page12 .page12-inline-editor { margin-top: 5px; }
.mentor-b-page12 .page12-inline-editor select,
.mentor-b-page12 .page12-popover select {
  width: 100%;
  height: 43px;
  border: 2px solid var(--coral);
  border-radius: 13px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  cursor: pointer;
}
.mentor-b-page12 .page12-inline-editor select:focus,
.mentor-b-page12 .page12-popover select:focus {
  outline: 4px solid rgb(232 141 128 / .24);
}

.mentor-b-page12 .route-panel {
  position: absolute;
  left: 70px;
  top: 205px;
  width: 1210px;
  height: 805px;
  overflow: hidden;
  border-radius: 38px;
  background: var(--white);
  box-shadow: 0 14px 42px rgb(32 32 51 / .075);
}
.mentor-b-page12 .section-heading { position: absolute; left: 50px; top: 34px; }
.mentor-b-page12 .section-heading span { color: var(--coral); font-size: 16px; font-weight: 900; letter-spacing: .18em; }
.mentor-b-page12 .section-heading h2 { margin: 5px 0 0; font-size: 34px; }

.mentor-b-page12 .route-canvas { position: absolute; left: 0; top: 130px; width: 1210px; height: 535px; }
.mentor-b-page12 .road {
  position: absolute;
  left: 118px;
  top: 352px;
  width: 972px;
  height: 102px;
  border-radius: 58px;
  background: var(--road);
}
.mentor-b-page12 .road::before,
.mentor-b-page12 .road::after {
  content: "";
  position: absolute;
  top: -20px;
  width: 98px;
  height: 122px;
  border: 48px solid var(--road);
  background: transparent;
}
.mentor-b-page12 .road::before { left: 145px; border-right: 0; border-bottom: 0; border-radius: 90px 0 0; }
.mentor-b-page12 .road::after { right: 140px; border-left: 0; border-bottom: 0; border-radius: 0 90px 0 0; }
.mentor-b-page12 .road span {
  position: absolute;
  left: 35px;
  right: 35px;
  top: 47px;
  height: 7px;
  background: repeating-linear-gradient(90deg, #fff 0 28px, transparent 28px 51px);
}
.mentor-b-page12 .route-car {
  position: absolute;
  left: 525px;
  top: 348px;
  width: 150px;
  height: 70px;
  object-fit: contain;
  filter: drop-shadow(0 4px 3px rgb(32 32 51 / .14));
}

.mentor-b-page12 .route-card {
  position: absolute;
  top: 18px;
  width: 324px;
  height: 354px;
  overflow: hidden;
  border: 2px solid var(--line);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 12px 26px rgb(32 32 51 / .07);
}
.mentor-b-page12 .route-card--provisional { left: 50px; }
.mentor-b-page12 .route-card--final { left: 443px; }
.mentor-b-page12 .route-card__label {
  height: 78px;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 0 28px;
  background: var(--coral);
  color: #fff;
  font-size: 29px;
  font-weight: 900;
}
.mentor-b-page12 .route-card--final .route-card__label { background: #444258; }
.mentor-b-page12 .route-card__label i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgb(255 255 255 / .2);
  font-size: 23px;
  font-style: normal;
}
.mentor-b-page12 .route-card__body { padding: 12px 27px 7px; }
.mentor-b-page12 .route-card__body p { margin: 0; padding: 7px 0; border-bottom: 1px solid var(--line); }
.mentor-b-page12 .route-card__body span { display: block; color: var(--muted); font-size: 14px; font-weight: 700; }
.mentor-b-page12 .route-card__body strong { display: block; margin-top: 1px; font-size: 23px; line-height: 1.2; }
.mentor-b-page12 .route-card__note { padding: 0 27px; color: var(--muted); font-size: 14px; font-weight: 500; line-height: 1.45; }

.mentor-b-page12 .license-goal {
  position: absolute;
  right: 44px;
  top: 35px;
  width: 330px;
  height: 337px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 34px;
  background: var(--pink);
  color: #fff;
  text-align: center;
  box-shadow: 0 15px 30px rgb(237 102 129 / .2);
}
.mentor-b-page12 .license-goal::before,
.mentor-b-page12 .license-goal::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  border: 2px solid rgb(255 255 255 / .18);
  border-radius: 50%;
}
.mentor-b-page12 .license-goal::before { left: -85px; top: -84px; }
.mentor-b-page12 .license-goal::after { right: -95px; bottom: -90px; }
.mentor-b-page12 .goal-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  margin-bottom: 10px;
  border-radius: 50%;
  background: #fff;
  color: var(--pink);
  font-size: 38px;
}
.mentor-b-page12 .license-goal small { font-size: 15px; font-weight: 900; letter-spacing: .2em; opacity: .86; }
.mentor-b-page12 .license-goal strong { margin-top: 5px; font-size: 43px; }
.mentor-b-page12 .license-goal span { margin-top: 18px; font-size: 17px; font-weight: 700; line-height: 1.65; }

.mentor-b-page12 .route-footer {
  position: absolute;
  left: 50px;
  right: 50px;
  bottom: 35px;
  height: 105px;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 19px 28px;
  border-radius: 24px;
  background: #fdf3f0;
}
.mentor-b-page12 .route-footer__mark {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 50%;
  background: var(--coral);
  color: #fff;
  font-size: 27px;
  font-weight: 900;
}
.mentor-b-page12 .route-footer p { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.45; }
.mentor-b-page12 .route-footer strong { color: var(--ink); font-size: 21px; }

.mentor-b-page12 .offer-panel {
  position: absolute;
  left: 1310px;
  top: 205px;
  width: 540px;
  height: 805px;
  overflow: hidden;
  border-radius: 38px;
  background: #fff;
  box-shadow: 0 14px 42px rgb(32 32 51 / .075);
}
.mentor-b-page12 .offer-heading { position: relative; height: 200px; padding: 34px 40px 28px; background: #444258; color: #fff; }
.mentor-b-page12 .offer-heading span { color: #ffd6ce; font-size: 18px; font-weight: 800; }
.mentor-b-page12 .offer-heading h2 { margin: 6px 0 3px; font-size: 43px; }
.mentor-b-page12 .offer-heading p { margin: 8px 0 0; color: rgb(255 255 255 / .78); font-size: 17px; font-weight: 500; line-height: 1.45; }
.mentor-b-page12 .page12-popover {
  position: absolute;
  z-index: 3;
  left: 28px;
  right: 28px;
  top: 50px;
  min-height: 128px;
  padding: 13px 16px 11px;
  border: 2px solid rgb(255 214 206 / .9);
  border-radius: 18px;
  background: rgb(68 66 88 / .98);
  box-shadow: 0 14px 28px rgb(24 23 38 / .3);
}
.mentor-b-page12 .page12-popover label {
  display: block;
  margin-bottom: 7px;
  color: #ffd6ce;
  font-size: 15px;
  font-weight: 900;
}
.mentor-b-page12 .page12-popover select { height: 46px; text-align: left; }
.mentor-b-page12 .page12-popover small {
  display: block;
  margin-top: 6px;
  color: rgb(255 255 255 / .7);
  font-size: 12px;
  font-weight: 700;
  text-align: right;
}
.mentor-b-page12 .price-summary { margin: 28px 35px 0; padding: 0 7px; }
.mentor-b-page12 .price-line { display: flex; align-items: center; justify-content: space-between; min-height: 48px; font-size: 19px; }
.mentor-b-page12 .price-line span { color: var(--muted); font-weight: 700; }
.mentor-b-page12 .price-line strong { font-size: 25px; }
.mentor-b-page12 .price-line--discount strong { color: var(--coral); }
.mentor-b-page12 .price-final { margin-top: 12px; padding: 19px 22px 17px; border-radius: 22px; background: var(--pink-soft); }
.mentor-b-page12 .price-final span { display: block; color: #a94158; font-size: 19px; font-weight: 900; }
.mentor-b-page12 .price-final strong { display: block; margin-top: 3px; color: var(--pink); font-size: 47px; line-height: 1.15; white-space: nowrap; }
.mentor-b-page12 .price-final strong.is-empty { color: #c8bfc1; }
.mentor-b-page12 .price-final small { margin-left: 3px; color: var(--ink); font-size: 20px; }
.mentor-b-page12 .payment-summary { margin: 18px 35px 0; padding: 21px 26px 18px; border: 2px solid var(--line); border-radius: 25px; }
.mentor-b-page12 .payment-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.mentor-b-page12 .payment-heading span { color: var(--muted); font-size: 17px; font-weight: 700; }
.mentor-b-page12 .payment-heading strong { font-size: 20px; line-height: 1.35; text-align: right; }
.mentor-b-page12 .payment-summary dl { margin: 16px 0 0; padding: 11px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.mentor-b-page12 .payment-summary dl div { display: flex; justify-content: space-between; padding: 6px 0; }
.mentor-b-page12 .payment-summary dt { color: var(--muted); font-size: 16px; }
.mentor-b-page12 .payment-summary dd { margin: 0; font-size: 18px; font-weight: 800; }
.mentor-b-page12 .payment-total { display: flex; align-items: center; justify-content: space-between; margin-top: 13px; }
.mentor-b-page12 .payment-total span { color: var(--muted); font-size: 17px; font-weight: 700; }
.mentor-b-page12 .payment-total strong { font-size: 24px; }
.mentor-b-page12 .match-badge {
  width: max-content;
  margin: 15px 0 0 auto;
  padding: 7px 13px;
  border-radius: 999px;
  background: var(--coral-soft);
  color: #a9473e;
  font-size: 16px;
  font-weight: 900;
}
.mentor-b-page12 .match-badge i { margin-right: 6px; font-style: normal; }
.mentor-b-page12 .match-badge.is-short { background: #fff1d8; color: #9c6416; }
.mentor-b-page12 .match-badge.is-over { background: #ffe5e8; color: #b54859; }
.mentor-b-page12 .match-badge.is-empty { background: #f5f2f2; color: #aaa2a5; }
.mentor-b-page12 .sheet-number {
  position: absolute;
  right: 72px;
  bottom: 24px;
  margin: 0;
  color: #c9b9b5;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .16em;
}

@media (prefers-reduced-motion: no-preference) {
  .mentor-b-page12 .customer-tag,
  .mentor-b-page12 .title-block h1,
  .mentor-b-page12 .route-card,
  .mentor-b-page12 .license-goal,
  .mentor-b-page12 .offer-panel { animation: page12-reveal .34s ease-out both; }
  .mentor-b-page12 .title-block h1 { animation-delay: .05s; }
  .mentor-b-page12 .route-card--provisional { animation-delay: .1s; }
  .mentor-b-page12 .route-card--final { animation-delay: .17s; }
  .mentor-b-page12 .license-goal { animation-delay: .24s; }
  .mentor-b-page12 .offer-panel { animation-delay: .31s; }
}

@keyframes page12-reveal {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
