@charset "UTF-8";
/* ------------------------------------------
    FORM
------------------------------------------ */
.form_box *,
.form_box *::before,
.form_box *::after {
    box-sizing: border-box;
}
.form_box p.txt {
    margin: 0 0 4px;
    color: #C03232;
    font-weight: bolder;
    font-size: 17px;
    text-align: center;
}

/* PRIVACY
------------------------------------------ */
.form_box .privacy_box {
    height: 115px;
    margin: 0 5px 7px;
    border: 2px solid #C03232;
    overflow: auto;
}
.form_box .privacy_box .box_inner {
    line-height: 1.5;
    padding: 4px;
    color: #75777b;
    font-size: 0.813em;
}
.form_box .privacy_box .policy .policy-main-heading {
    font-weight: bold;
    font-size: 1.2em;
}
.form_box .privacy_box .policy .policy-heading {
    margin-top: 10px;
    font-weight: bold;
}
.form_box .privacy_box .policy table {
    margin: 5px;
}
.form_box .privacy_box .policy td {
    padding: 5px;
    border: 1px solid #333;
}
.form_box .privacy_box .policy p {
    padding: 0 0 5px;
}
.form_box .privacy_box .policy li {
    margin: 0 0 20px 20px;
}
.form_box .privacy_box .policy td.column1 {
    text-align: center;
    width: 20px;
}
.form_box .privacy_box .policy td.column2 {
    width: 150px;
}
.form_box .privacy_box .policy ul {
    margin: 0 10px;
}
.form_box .privacy_box .policy .responsibility {
    margin-top: 10px;
    text-align: right;
}
.form_box .privacy_box .policy a {
    text-decoration: underline;
}

/* 注意文 */
.form_box .privacy_notes {
    padding: 10px 15px;
    background: #FA5757;
    color: #FFF;
    font-weight: bold;
}
.form_box .privacy_notes p {
    text-align: center;
}

/* 入力欄
------------------------------------------ */
#lp-form dl {
    margin:0 0 5px;
}
#lp-form dl dt {
    margin: 0 0 2px;
    padding: 7px 10px 7px;
    background: linear-gradient(to right, #b0aeae 0%, #f0f0ef 100%);
    font-size: 16px;
}
/* 項目見出し */
#lp-form dl dt .title_wrap {
    display: flex;
    align-items: center;
}
#lp-form dl dt .title_wrap .title,
#lp-form dl dt .title_wrap .must {
    color: #FFF;
    font-weight: bold;
}
#lp-form dl dt .title_wrap .must {
    margin-left: 10px;
    padding: 2px 5px;
    border-radius: 4px;
    background: #fa5757;
    font-size: 13px;
    text-align: center;
    white-space: nowrap;
}
#lp-form dl dd {
    display: block;
    width: 78%;
    margin: 0 auto;
    padding: 10px 0 5px;
}
#lp-form dl dd::after {
    display: block;
    content: "";
    visibility: hidden;
    height: 0;
    clear: both;
}
#lp-form dl dd input,
#lp-form dl dd select,
#lp-form button {
    outline: none;
}
#lp-form .placeholder {
    color: #b7b7b7;
}
#lp-form dl dd input {
    border: 1px solid #9b9b9b;
    padding: 6px 11px;
    border-radius: 4px;
    font-size: 19px;
}
/* 氏名・ふりがな */
#lp-form dl.item_name dd {
    display: flex;
    justify-content: space-between;
}
#lp-form dl.item_name dd > div {
    width: calc((100% - 20px)/2);
}
#lp-form dl.item_name dd > div input {
    width: 100%;
}
/* 電話 */
#lp-form dl.item_tel dd input {
    width: 100%;
    font-size: 16px;
}
/* 性別 */
#lp-form #lpnetform-gender {
    max-width: 300px;
    margin: 0 auto;
    padding: 0 10px;
    border: 1px solid #959799;
    border-radius: 35px;
    box-shadow: 1px 1px 3px #c0c0c1 inset;
    text-align: center;
}
#lp-form #lpnetform-gender label {
    position: relative;
    display: inline-table;
    width: 48%;
    padding: 8px 0;
    font-size: 19px;
    text-align: center;
}
#lp-form #lpnetform-gender label:first-child {
    border-right:1px solid #ccc;
}
#lp-form #lpnetform-gender label::before,
#lp-form #lpnetform-gender label::after {
    content: "";
    position: absolute;
    border-radius: 100px;
}
#lp-form #lpnetform-gender label::before {
    top: 15px;
    left: 15px;
    width: 12px;
    height: 12px;
    background: #FFF;
}
#lp-form #lpnetform-gender label.label_selected::before {
    background: #C03232;
}
#lp-form #lpnetform-gender label::after {
    top: 10px;
    left: 10px;
    width: 22px;
    height: 22px;
    border: 2px solid #C03232;
}
#lpnetform-gender label input {
    display: none;
}
/* 生年月日 */
#lp-form dl.item_birth dd {
    text-align: center;
}
#lp-form dl.item_birth select {
    width: calc((100% - (110px + 20px)) / 2);
    margin: 0 0 0 3px;
    padding: 8px 5px;
    border: 1px solid #9b9b9b;
    border-radius: 4px;
    background: linear-gradient(to bottom, #FFF, #e4e4e5);
    box-shadow: 1px 1px 2px #e4e4e5;
    color: #545558;
    font-size: 14px;
}
#lp-form dl.item_birth select:first-child {
    width: 110px;
    margin: 0;
}
/* 保障内容 */
#lp-form dl.item_guarantee .plan_area li {
    border: 1px solid #bfc0c2;
    background: linear-gradient(to bottom, #dddee0, #e4e6ea);
    box-shadow: rgba(41, 43, 46, 0.25) 0px 4px 5px -3px inset;
    border-radius: 5px;
}
#lp-form dl.item_guarantee .plan_area li input {
    position: absolute;
    z-index: -1;
    visibility: hidden;
}
#lp-form dl.item_guarantee .plan_area li label {
    display: block;
    padding: 10px 34px;
    background: url(images/ico_checkbox_on.png) 15px center no-repeat;
    background-size: 23px 23px;
    font-size: 18px;
    text-align: center;
    text-shadow: #fff 1px 1px 1px;
}

/* エラー
------------------------------------------ */
#lp-form .error_wrap {
    display: block;
    margin: 0 auto;
    padding: 0 0 10px;
    width: 78%;
}
#lp-form .error_wrap::after {
    display: block;
    content: "";
    visibility: hidden;
    height: 0;
    clear: both;
}
#lp-form .error_wrap div {
    float: left;
    color: #C03232;
    font-size: 12px;
}

/* BTN
------------------------------------------ */
#lp-form .btn_confirm {
    margin: 0 25px 40px;
    padding: 0;
}
#lp-form .btn_confirm button {
    position: relative;
    display: inline-block;
    width: 100%;
    padding: 10px 30px;
    border: 2px solid #FFF;
    border-radius: 100px;
    background: linear-gradient(to bottom, #43c0ed 0%,#43c0ed 50%,#29a3cf 51%,#29a3cf 100%);
    color: #FFF;
    font-weight: bold;
    font-size: 22px;
}
#lp-form .btn_confirm button::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 20px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #FFF;
    border-right: 3px solid #FFF;
    transform: translateY(-50%) rotate(45deg);
}

/* btn 個人年金 */
#lp-form .btn_confirm.pension {
    position: relative;
    overflow: hidden;
}
#lp-form .btn_confirm.pension button {
    background: linear-gradient(180deg, #ec4045 49%, #e20008 50%);
}
#lp-form .btn_confirm.pension::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 30vw;
    height: 1000%;
    background: rgba(255, 255, 255, 0.5);
    transform: rotate(15deg) translate(-350px, -50%);
    animation: flash_frame 2s ease-out infinite;
    z-index: 10;
}
@keyframes flash_frame {
    0% {
        transform:rotate(15deg) translate(-350px, -50%);
    }
    100% {
        transform:rotate(15deg) translate(780px, -50%);
    }
}

/* ------------------------------------------
    CONFIRM
------------------------------------------ */
/* GTS連携でAPIから「空のデータ」が返ってくるときのみ表示されるページ（かなりレアなので、ほぼ表示されない） */
.confirm #lp-form dl dt,
.confirm #lp-form dl dd {
    font-size: 14px;
}
.confirm #lp-form dl dt {
    margin-bottom: 0;
}
.confirm .confirmation {
    margin:20px 0 15px;
    padding:8px 10px;
    border:3px solid #14B200;
    background:#CDFFC7;
    font-weight:bold;
    font-size: 12px;
}
.confirm .form_box .txt {
    font-size: 14px;
}

/* BTN
------------------------------------------ */
.confirm #lp-form .confirm_btn_wrap {
    display: flex;
    flex-wrap: wrap;
    margin: 30px 40px;
}
.confirm #lp-form .confirm_btn {
    width: 100%;
}
.confirm #lp-form .confirm_btn a {
    position: relative;
    display: block;
    width: 100%;
    margin-bottom: 15px;
    padding: 10px;
    border-radius: 100px;
    color: #FFF;
    font-weight: bold;
    font-size: 18px;
    text-decoration: none;
    text-align: center;
}
.confirm #lp-form .confirm_btn a::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 30px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #FFF;
    border-right: 3px solid #FFF;
}
/* btn back */
.confirm #lp-form .btn_back {
    order: 2;
}
.confirm #lp-form .btn_back a {
    background: linear-gradient(180deg, #B9B9B9 49%, #A7A7A7 50%);
}
.confirm #lp-form .btn_back a::after {
    transform: translateY(-50%) rotate(-130deg);
}
/* btn start */
.confirm #lp-form .btn_start {
    order: 1;
}
.confirm #lp-form .btn_start a {
    background: linear-gradient(180deg, #ec4045 49%, #e20008 50%);
}
.confirm #lp-form .btn_start a::after {
    transform: translateY(-50%) rotate(45deg);
}

/* ------------------------------------------
    THANKS
------------------------------------------ */
.thanks .form_box {
    min-height: 400px;
    padding: 100px 0 0 0;
}
.thanks .form_box img {
    width: initial;
}
.thanks .form_box a {
    font-weight:bold;
}

@media screen and (min-width: 768px) {
    /* ------------------------------------------
        FORM
    ------------------------------------------ */
    .form_box {
        max-width: 800px;
        margin: auto;
    }
    .form_box p.txt {
        margin-bottom: 30px;
        color: #e60012;
        font-size: 25px;
    }

    /* PRIVACY
    ------------------------------------------ */
    .form_box .privacy_box {
        height: 170px;
        margin-bottom: 30px;
        border-width: 3px;
        font-size: 16px;
    }
    .form_box .privacy_box .box_inner {
        padding: 8px;
    }
    .form_box .privacy_notes {
        margin-bottom: 30px;
        padding: 7px;
        background: #8a5651;
        font-size: 16px;
    }

    /* 入力欄
    ------------------------------------------ */
    #lp-form dl.item_name dd > div {
        width: calc((100% - 40px)/2);
    }
    /* 性別 */
    #lp-form #lpnetform-gender label {
        cursor: pointer;
    }
    /* 生年月日 */
    #lp-form dl.item_birth select:first-child,
    #lp-form dl.item_birth select {
        width: calc((100% - 40px) / 3);
        font-size: 16px;
    }

    /* BTN
    ------------------------------------------ */
    #lp-form .btn_confirm {
        max-width: 550px;
        margin: 20px auto 50px;
        transition: all .4s ease;
    }
    #lp-form .btn_confirm:hover {
        transform:translateY(10px);
    }
    #lp-form .btn_confirm button {
        font-size: 35px;
        cursor: pointer;
    }
    #lp-form .btn_confirm button::after {
        right: 25px;
        width: 17px;
        height: 17px;
        border-width: 4px;
    }
    /* btn 個人年金 */
    #lp-form .btn_confirm.pension::after {
        width: 30%;
        animation-delay: 3s;
    }
    @keyframes flash_frame{
        0%{
            transform:rotate(15deg) translate(-320px, -50%);
        }
        80%{
            transform:rotate(15deg) translate(-320px, -50%);
        }
        100%{
            transform:rotate(15deg) translate(780px, -50%);
        }
    }

    /* ------------------------------------------
        CONFIRM
    ------------------------------------------ */
    .confirm .form_box .txt {
        color: #c03232;
        font-size: 32px;
    }
    .confirm #lp-form dl dt,
    .confirm #lp-form dl dd {
        font-size: 16px;
    }
    .confirm #lp-form dl dd {
        width: 92%;
    }
    .confirm #lp-form .confirm_btn_wrap {
        justify-content: space-between;
    }
    .confirm #lp-form .confirm_btn a {
        font-size: 25px;
    }
    .confirm #lp-form .confirm_btn a:hover {
        opacity: .8;
    }
    /* btn back */
    .confirm #lp-form .btn_back {
        order: 1;
        width: 40%;
    }
    /* btn start */
    .confirm #lp-form .btn_start {
        order: 2;
        width: 58%;
    }
}