@charset "utf-8";

/* PC: px単位。計測: Figma node 26942:127005 */

#content {
    width: 100%;
}

#contents {
    width: 100%;
    padding-bottom: 0;
}

.buy-sim {
    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    padding-bottom: 0;
}

.buy-sim *,
.buy-sim *::before,
.buy-sim *::after {
    box-sizing: border-box;
}

.buy-sim__vh {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ========================================= */
/* MV */
/* 計測値: W:1920px, H:450px */
/* ========================================= */
.buy-sim__mv {
    width: 100%;
    margin: 0;
    padding: 0;
    line-height: 0;
}

.buy-sim__mv-img {
    display: block;
    width: 100%;
    height: 450px;
    object-fit: cover;
    margin: 0 auto;
}

/* ========================================= */
/* Intro */
/* 計測値: padding:50px 0, gap:13px, inner W:1140px */
/* タイトル: font-size:34px, line-height:1.45, weight:700 */
/* リード: font-size:18px, line-height:1.5, weight:500 */
/* ========================================= */
.buy-sim__intro {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    padding: 50px 0;
    text-align: center;
    background: #fff;
}

.buy-sim__intro-title {
    margin: 0;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.45;
    color: #000;
}

.buy-sim__intro-title-line {
    display: block;
}

.buy-sim__intro-title-accent {
    color: #d83c3c;
}

.buy-sim__intro-lead {
    margin: 0;
    width: 100%;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    color: #333;
}

/* ========================================= */
/* Form */
/* 計測値: fields W:828px, gap:1px, pb:60px */
/* field: padding:15px 20px, gap:6px, bg:#ecf6ec */
/* field-row: gap:20px, label W:123px 16px */
/* input: W:160px H:38px, border:1px #eaeaea, radius:6px */
/* slider: W:441px H:25px */
/* note: font-size:12px, color:#555 */
/* ========================================= */
.buy-sim__form-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 0 0 60px;
    background: #fff;
}

.buy-sim__fields {
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: 828px;
    margin: 0 auto;
}

.buy-sim__field {
    display: grid;
    grid-template-columns: 1fr 441px;
    column-gap: 20px;
    row-gap: 6px;
    align-items: center;
    padding: 15px 20px;
    background: #ecf6ec;
    min-height: 92px;
}

.buy-sim__field-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    align-items: center;
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    position: relative;
}

.buy-sim__label {
    flex: 0 0 123px;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    color: #333;
}

.buy-sim__badge {
    color: var(--color-text-white);
    font-size: var(--font-size-s);
    font-weight: var(--font-weight-medium);
    padding: 1px 6px 2px;
    border-radius: 2px;
    background: var(--color-primary-default-sub);
    height: fit-content;
    margin-left: 5px;
}

.buy-sim__input-wrap {
    display: flex;
    flex: 0 0 auto;
    gap: 6px;
    align-items: center;
    min-width: 0;
}

input[type="text"].buy-sim__input,
input[type="number"].buy-sim__input,
input[type="tel"].buy-sim__input,
input[type="email"].buy-sim__input,
input[type="date"].buy-sim__input,
input[type="password"].buy-sim__input {
    flex: 0 0 160px;
    width: 160px;
    height: 38px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #eaeaea;
    border-radius: 6px;
    background: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    color: #333;
    text-align: left;
    -moz-appearance: textfield;
}

.buy-sim__input::-webkit-outer-spin-button,
.buy-sim__input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.buy-sim__input::placeholder {
    color: #9e9e9e;
}

.buy-sim__unit {
    flex-shrink: 0;
    width: 28px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.25;
    color: #333;
    white-space: nowrap;
}

.buy-sim__slider-wrap {
    grid-column: 2;
    grid-row: 1;
    width: 441px;
    margin: 0;
    padding: 0;
}

.buy-sim__range {
    --buy-sim-range-pct: 0%;
    display: block;
    width: 100%;
    height: 4px;
    margin: 10px 0 0;
    border-radius: 2px;
    background: transparent;
    cursor: pointer;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.buy-sim__range::-webkit-slider-thumb {
    width: 25px;
    height: 25px;
    margin-top: -10.5px;
    border: 2px solid #56a856;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
}

.buy-sim__range::-moz-range-thumb {
    width: 25px;
    height: 25px;
    border: 2px solid #56a856;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
}

.buy-sim__range::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(
        to right,
        #56a856 0%,
        #56a856 var(--buy-sim-range-pct),
        #eaeaea var(--buy-sim-range-pct),
        #eaeaea 100%
    );
}

.buy-sim__range::-moz-range-track {
    height: 4px;
    border-radius: 2px;
    background: #eaeaea;
}

.buy-sim__range::-moz-range-progress {
    height: 4px;
    border-radius: 2px;
    background: #56a856;
}

.buy-sim__range::-moz-focus-outer {
    border: 0;
}

.buy-sim__note {
    grid-column: 1 / -1;
    margin: 0;
    width: 100%;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    color: #555;
}

.buy-sim__note--multiline .buy-sim__note-line {
    margin: 0;
}

.buy-sim__field--rate {
    align-items: center;
}

/* ========================================= */
/* Submit */
/* 計測値: W:360px, H:57px, font-size:18px, radius:6px */
/* ========================================= */
.buy-sim__submit {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 360px;
    height: 57px;
    margin: 0;
    border: none;
    border-radius: 6px;
    background: #d83c3c;
    box-shadow: 0 2px 1.5px rgba(38, 50, 56, 0.1);
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
    text-align: center;
    cursor: pointer;
}

.buy-sim__submit:hover {
    transform: translateY(4px);
}

.buy-sim__submit--inactive {
    background: #eaeaea;
    color: #9e9e9e;
    box-shadow: none;
    cursor: default;
    pointer-events: none;
}

.buy-sim__submit--inactive:hover {
    transform: none;
}

.buy-sim__submit-text {
    pointer-events: none;
}

.buy-sim__submit-icon {
    position: absolute;
    top: 5px;
    bottom: 0;
    right: 22px;
    margin: auto;
    width: 12px;
    height: 8px;
    pointer-events: none;
}

.buy-sim__submit-icon--down {
    background: url(/images/pc/buy/simulation/icon_arrow-white.svg) no-repeat center / contain;
}

.buy-sim__submit--inactive .buy-sim__submit-icon--down {
    background: url(/images/pc/buy/simulation/icon_arrow-gray.svg) no-repeat center / contain;
}

/* ========================================= */
/* Result */
/* 計測値: padding:60px 0, card W:600px, gap:20px */
/* heading: font-size:26px, amount:80px, unit:30px */
/* disclaimer: W:828px, gap:3px, font-size:12px */
/* ========================================= */
.buy-sim__result {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 60px 0;
    background: #56a856;
}

.buy-sim__result.is-hidden {
    display: none;
}

.buy-sim__result-heading {
    margin: 0 0 20px;
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    text-align: center;
}

.buy-sim__result-card {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    width: 600px;
    min-height: 116px;
    margin: 0 auto 20px;
    padding: 11px 20px 24px 0;
    overflow: visible;
    border-radius: 6px;
    background: #ecf6ec;
}

.buy-sim__result-label {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 176px;
    height: 43px;
    margin: 13px 11px 0 0;
    padding: 6px 5px 7px 0;
    background: url(/images/pc/buy/simulation/bg_result-label.webp) no-repeat center / 100% 100%;
}

.buy-sim__result-label-text {
    font-size: 30px;
    font-weight: 500;
    line-height: 1;
    color: #fff;
    white-space: nowrap;
}

.buy-sim__result-value {
    display: flex;
    flex-wrap: nowrap;
    gap: 3px;
    align-items: flex-end;
    justify-content: flex-end;
    min-width: 275px;
}

.buy-sim__result-amount {
    font-size: 80px;
    font-weight: 700;
    line-height: 1;
    color: #d83c3c;
    white-space: nowrap;
}

.buy-sim__result-unit {
    flex-shrink: 0;
    margin-bottom: 5px;
    font-size: 30px;
    font-weight: 500;
    line-height: 1;
    color: #333;
    white-space: nowrap;
}

.buy-sim__result-bear {
    position: absolute;
    right: 26px;
    bottom: -13px;
    display: block;
    width: 115px;
    height: 117px;
    pointer-events: none;
}

.buy-sim__disclaimer {
    display: flex;
    flex-direction: column;
    gap: 3px;
    width: 828px;
    margin: 0 auto;
}

.buy-sim__disclaimer-p {
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    color: #fff;
    text-indent: -1em;
    padding-left: 1em;
}

.buy-sim__disclaimer-em {
    font-weight: 500;
    color: #fff;
    text-decoration: underline;
}

.buy-sim__reset {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 440px;
    height: 70px;
    margin: 20px auto 0;
    padding: 0 3px 0 0;
    border: none;
    border-radius: 6px;
    background: #ecf6ec;
    box-shadow: 0 2px 1.5px rgba(38, 50, 56, 0.1);
    text-align: center;
    cursor: pointer;
}

.buy-sim__reset:hover {
    transform: translateY(4px);
}

.buy-sim__reset-text {
    pointer-events: none;
    font-family: inherit;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    color: #56a856;
}

.buy-sim__reset-icon {
    position: absolute;
    top: 50%;
    right: 22px;
    width: 16px;
    height: 11px;
    transform: translateY(-50%);
    pointer-events: none;
}

.buy-sim__reset-icon--up {
    background: url(/images/pc/buy/simulation/icon_arrow-green.svg) no-repeat center / contain;
}

/* バリデーション（validationEngine） */
.buy-sim__input-wrap {
    position: relative;
}

.buy-sim__fields .buy-sim__field .formError {
    position: absolute;
    top: auto;
    bottom: -24px;
    left: 214px;
    z-index: 1;
}

.buy-sim__fields .buy-sim__field .formErrorContent {
    color: #ee0101;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
}
