/* =========================================================
  SIMULATION BASE
========================================================= */
.sim_section{
  padding:40px 16px;
}

.sim_intro{
  text-align:center;
}

.sim_kicker{
  font-size:12px;
  letter-spacing:.08em;
  opacity:.75;
  margin:0;
}

.sim_title{
  font-size:34px;
  letter-spacing:.06em;
  margin:10px 0 18px;
}

.sp {
  display: none;
}

/* =========================================================
  APP WRAP（ページ内 / 非モーダル）
========================================================= */
.sim_app{
  position:relative;
  max-width:980px;
  margin:0 auto;
  border-radius:18px;
}

/* 暗転レイヤー（クリック絶対無効） */
.sim_appDim{
  position:absolute;
  inset:0;
  border-radius:18px;
  transition:background .18s ease;
  pointer-events:none !important;
  z-index:0 !important;
}

section.sim_pane {
    padding: 40px 44px;
    background: #F5F5F5;
    border-radius: 16px;
}

h1.en {
    text-transform: uppercase;
}

p.sim_u-bar {
    position: relative;
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 2px;
    margin-top: 40px;
    padding-bottom: 18px;
}

p.sim_u-bar:before {
    width: 310px;
    height: 10px;
    bottom: 0;
    left: 50%;
    position: absolute;
    content: "";
    background: url(../img/sim/bar_1.svg);
    transform: translate(-50%, 0);
}

h2 {
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 30px;
    font-style: normal;
    font-weight: 500;
    line-height: 48px;
    letter-spacing: 0.6px;
    margin-top: 10px;
    margin-bottom: 16px;
}

p.s {
    text-align: center;
}

/* =========================================================
  CARD
========================================================= */
.sim_cardWrap{
  position:relative !important;
  z-index:10 !important;
  padding:16px;
}

.sim_card{
  position:relative !important;
  z-index:11 !important;
  border-radius:18px;
  padding:18px;
  animation:sim_in .22s ease-out both;
}

@keyframes sim_in{
  from{ transform:translateY(8px); opacity:.6; }
  to{ transform:translateY(0); opacity:1; }
}

/* =========================================================
  STEP BAR（矢印型 / HTML変更なし）
========================================================= */
.sim_stepBar{
  display:flex;
  width:100%;
  margin:0 auto 40px;
  gap:0;
}

/* 共通 */
.sim_stepPill{
  position:relative;
  flex:1;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;

  background:#e6e6e6;
  color:#9a9a9a;

  font-weight:900;
  letter-spacing:.02em;
  border-radius:0;
  overflow:hidden;
}

/* active */
.sim_stepPill.is-active{
  background:#212121;
  color:#fff;
}

/* text */
.sim_stepNo{
  font-size:14px;
  font-weight:950;
}

.sim_stepText{
  font-size:16px;
  font-weight:950;
}

/* 左STEP → 右向き矢印 */
.sim_stepPill--left::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-top: 26px solid #fbfbfc;
    border-bottom: 26px solid #fbfbfb;
    border-left: 26px solid #212121;
    z-index: 2;
}

.sim_stepPill--left:not(.is-active)::after{
  border-left-color:#e6e6e6;
}

/* 右STEP → 左凹み */
.sim_stepPill--right{
  padding-left:26px;
}

.sim_stepPill--right::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0px;
    width: 0;
    height: 0;
    border-top: 26px solid transparent;
    border-bottom: 26px solid transparent;
    border-left: 26px solid #fafbfa;
    z-index: 1;
}

.sim_stepPill--right::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-top: 26px solid #fafafb;
    border-bottom: 26px solid #fafafa;
    border-left: 26px solid lab(91 0.02 0 / 0.03);
    z-index: 2;
}

/* =========================================================
  QUESTION
========================================================= */
h3.sim_q {
    font-family: "Noto Sans JP";
    font-size: 26px;
    font-style: normal;
    font-weight: 500;
    line-height: 38px;
    letter-spacing: 0.52px;
    text-align: center;
    margin-bottom: 40px;
}

h3.sim_q span {
    color: var(--Neutral-Gray-500, #9E9E9E);
    font-family: Lato;
    font-size: 32px;
    font-style: normal;
    font-weight: 500;
    line-height: 38px;
    letter-spacing: 0.64px;
    text-transform: uppercase;
}

.sim_help{
  margin:-6px 0 12px;
  font-size:12px;
  opacity:.75;
}

/* =========================================================
  OPTIONS
========================================================= */
.sim_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-bottom: 40px;
}

.sim_grid--3{
  grid-template-columns:repeat(2, 1fr);
}

.sim_opt {
    border-radius: 12px;
    padding: 33px 12px;
    font-weight: 500;
    cursor: pointer;
    transition: .15s;
    background: #9E9E9E;
    color: #fff;
}

.sim_opt:hover{
  border-color:#212121;
}

.sim_opt.is-selected{
  background: #212121;
}

/* =========================================================
  NAV BUTTON
========================================================= */
.sim_nav{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:16px;
}

.sim_btn{
  flex:1;
  padding:12px 14px;
  border-radius:999px;
  border:1px solid #212121;
  background:#fff;
  color:#212121;
  font-weight:950;
  cursor:pointer;
}

.sim_btn--primary{
  background:#212121;
  color:#fff;
}

/* =========================================================
  INPUT
========================================================= */
.sim_field{
  max-width:520px;
  margin:0 auto;
}

.sim_input{
  width:100%;
  height:46px;
  border:1px solid #ddd;
  border-radius:12px;
  padding:0 12px;
  font-size:16px;
  font-weight:900;
}

.sim_hint{
  margin:10px 0 0;
  font-size:12px;
  opacity:.7;
}

/* =========================================================
  RESULT
========================================================= */
.sim_resultTitle {
    margin: 0;
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 34px;
    font-style: normal;
    font-weight: 500;
    line-height: 52px;
    letter-spacing: 0.68px;
}

.sim_resultLead {
    opacity: .8;
    margin: 8px 0 14px;
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 1px;
    margin-top: 16px;
}

.sim_priceBox{
  text-align:center;
  margin:8px 0 0;
}

.sim_priceLabel {
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 32px;
    font-style: normal;
    font-weight: 500;
    line-height: 46.051px;
    letter-spacing: 0.64px;
}

.sim_price {
    margin-top: 8px;
    text-align: center;
    font-family: Lato;
    font-size: 78px;
    font-style: normal;
    font-weight: 700;
    line-height: 57.685px;
    letter-spacing: 1px;
}

.sim_price span {
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 50px;
    font-style: normal;
    font-weight: 700;
    line-height: 67.864px;
    letter-spacing: 1px;
}

/* breakdown */
.sim_break{
  max-width:720px;
  margin:14px auto 0;
  background:#f7f7f7;
  border-radius:14px;
  padding:14px;
}

.sim_break .sim_row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:6px 0;
}

.sim_break hr{
  border:0;
  border-top:1px solid #e5e5e5;
  margin:10px 0;
}

.sim_break span{
  opacity:.75;
  font-weight:800;
}

.sim_break b{
  font-weight:950;
}

p.flexible {
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 26px;
    font-style: normal;
    font-weight: 500;
    line-height: 38px;
    letter-spacing: 0.52px;
    margin: 32px 0 16px;
}

.sim_result_wrap {
    width: 608px;
    margin: auto;
}

.sim_top-btn_wrap {
  position: absolute;
  width: 100%;
  display: flex;
  justify-content: center;
  left: 0;
  bottom: -40px;
}

p.top_btn span {
  display: inline-block;
  width: 20px;
}


/* =========================================================
  RESPONSIVE
========================================================= */
@media (max-width:767px){

  .sp {
    display: block;
  }

  .sim_grid--3{ grid-template-columns:1fr; }

  .sim_stepBar {
      flex-direction: column;
      height: 114px;
  }

  div#sim_step_left {
      margin-bottom: 10px;
  }

  .sim_price {
    font-size: clamp(0px, 13.465vw, 56.414px);
    letter-spacing: 0;
  }

  .sim_price span {
    font-size: clamp(0px, 9.273vw, 36.163px);
  }

  .sim_offer{
    flex-direction:column;
  }

  .sim_offerBadge{
    width:100%;
    border-radius:16px;
  }

  .sim_stepPill{
    height:54px;
    gap:10px;
  }

  .sim_stepText{
    font-size:14px;
  }

  .sim_stepPill--left::after,
  .sim_stepPill--right::before{
    border-top-width:27px;
    border-bottom-width:27px;
  }

  h2 {
      text-align: center;
      font-family: "Noto Sans JP";
      font-size: clamp(0px, 5.6vw, 25px);
      font-style: normal;
      font-weight: 500;
      line-height: 43px;
      letter-spacing: 0.6px;
      margin-top: 10px;
      margin-bottom: 16px;
  }

  p.s {
    font-size: clamp(0px, 4vw, 16px);
  }

  .sim_section {
      padding: 0 0;
  }

  h3.sim_q span {
    font-size: 22px;
  }
  h3.sim_q {
    font-size: 20px;
  }

  .sim_opt {
    height: 82px;
    padding: 15px 5px;
  }

  .sim_resultTitle {
      font-size: 24px;
  }

  p.sim_resultLead {
    font-size: clamp(0px, 4.5vw, 18px);
  }

  section.sim_pane {
    padding: 40px 2px;
    background: #F5F5F5;
    border-radius: 16px;
  }

  .sim_priceLabel {
    font-size: 23px;
  }

  p.flexible {
    font-size: clamp(0px, 5.4vw, 22px);
  }

  .sim_result_wrap {
    width: 97%;
  }

  .sim_offer {
    width: 95%;
    margin: 24px auto;
  }

  p.top_btn span {
    display: inline-block;
    width: 20px;
  }

  .sim_top-btn_wrap {
    position: absolute;
    width: 100%;
    display: flex;
    justify-content: center;
    left: 0;
    bottom: -40px;
  }

  .sim_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 40px;
  }

  .sim_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin: 0 16px 40px;
  }

  p.sim_help {
    width: 96%;
    margin: auto 2%;
  }

  .sim_field {
    width: 96%;
  }

  
}