* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root {
    /* color */
    --color-main:#00A73C;
    --color-sub: #ff0000;
    --color-accent: #ff0000;
    --color-black:#212121;
    --color-gray:#707070;
    --color-lightgray:#F4F4F4;
    --color-white:#ffffff;
    --color-red:#FD3636;
    /* fontsize */
    --fontSizes-xs:0.7rem;
    --fontSizes-sm:0.9rem;
    --fontSizes-md:1rem;
    --fontSizes-lg:1.2rem;
    --fontSizes-xl:1.4rem;
    --fontSizes-2xl:1.6rem;
    --fontSizes-3xl:1.8rem;
    /* fontweight */
    --fontWeight-normal: normal;
    --fontWeight-bold: 600;
}
body {
    font-family: "Inter","Noto Sans JP",sans-serif;
    color: var(--color-black);
    font-size: var(--fontSizes-sm);
    line-height: 1.5;
}
a:link, a:visited,
.txtlink{
    color: var(--color-main);
    text-decoration: none;
}
a:link:hover,
a[href]:hover,
.txtlink:hover{
    color: var(--color-main);
    text-decoration: underline;
}
#container{
    width: 100%;
    max-width: 1200px;
    padding: 0 15px;
}
main{
    margin: 0 auto;
}
.plan-name {
    font-size: var(--fontSizes-xs);
}
#main_column h2 {
    font-size: var(--fontSizes-xl);
    font-weight: var(--fontWeight-bold);
    border-bottom: none;
    padding: 0; 
    margin-bottom: 0;
}
.section h3.plan-catchphrase {
    border-bottom: 1px solid var(--color-black);
    display: inline-block;
    width: 75%;
    padding: 0 0 15px;
    margin-bottom: 30px;
    font-weight: normal;
    font-size: var(--fontSizes-sm);
}
.section h4 {
    font-size: var(--fontSizes-xl);
    margin-bottom: 10px;
    color: var(--color-main);
    font-weight: var(--fontWeight-bold);
}
.section h5 {
    font-size: var(--fontSizes-lg);
    font-weight: var(--fontWeight-bold);
}
.price {
    font-size: var(--fontSizes-md);
    font-weight: var(--fontWeight-bold);
}
.price b{
    font-size: var(--fontSizes-3xl);
    margin-right: 0.2rem;
}
.price span{
    margin-right: 0.2rem;
}
.discount{
    display: inline-block;
    padding: 0 1rem;
    background-color: var(--color-white);
    margin: 8px auto;
    font-size: var(--fontSizes-sm);
}
.discount span{
    font-size: var(--fontSizes-lg);
    color: var(--color-main);
    font-weight: var(--fontWeight-bold);
}
a.btn01,
button.btn01 {
    background-color: var(--color-main);
    color: var(--color-white);
    padding: 15px;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    font-size: var(--fontSizes-md);
    transition: background-color 0.3s ease;
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
    display: block;
    text-decoration: none;
    text-align: center;
}
a.btn01:hover,
button.btn01:hover {
    background-color: #218838;
    color: var(--color-white);
    opacity: 1;
    text-decoration: none;
}
a.btn02,
button.btn02,
input[type="button"].btn02,
label.btn02 {
    background-color: var(--color-white);
    color: var(--color-main);
    padding: 15px;
    border: 1.5px solid var(--color-main);
    border-radius: 30px;
    cursor: pointer;
    font-size: var(--fontSizes-md);
    transition: background-color 0.3s ease;
    width: 100%;
    max-width: 280px;
    display: block;
    text-decoration: none;
}
a.btn02:hover,
button.btn02:hover
input[type="button"].btn02:hover,
label.btn02:hover  {
    background-color: var(--color-main);
    color: var(--color-white);
}
.tag {
    background-color: var(--color-gray);
    color: var(--color-white);
    display: inline-block;
    padding: 2px 8px;
    font-size: var(--fontSizes-xs);
    letter-spacing: .1rem;
}
input[type="text"], input[type="email"], input[type="date"], input[type="tel"], select {
    width: 100%;
    padding: 15px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: var(--fontSizes-sm);
    box-sizing: border-box;
    color: var(--color-black);
    background-color: var(--color-white);
    appearance: none;
}
input::placeholder {
    color: #bbb;
}
input[type="text"].input50, input[type="date"].input50, select.input50{
    width: 50%;
}
.select {
    position: relative;
    width: 100%;
}

.select::after {
    content: "";
    position: absolute;
    top: 18px;
    right: 52%;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--color-gray);
    border-bottom: 2px solid var(--color-gray);
    transform: rotate(45deg);
}
.section{
    padding: 45px 0;
    text-align: center;
}
.section  > p{
    padding: 15px 0 0;
}
.container{
    width: 100%;
    margin: 45px auto;
}
.container > p{
    padding: 15px 0 0;
}
.plan-inner {
    margin-top: 30px;
    width: 100%;
    list-style-type: none;
    text-align: left;
    font-size: var(--fontSizes-md);
    height: 100%;
}
.plan-inner .btn01{
    margin: -15px auto 30px;
}
.plan-inner ul li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
}
.plan-inner ul li span{
    font-weight: var(--fontWeight-bold);
    font-size: var(--fontSizes-md);
}
.plan-inner ul li.li-sub{
    justify-content: flex-end;
    background-color: var(--color-lightgray);
    font-size: var(--fontSizes-xs);
    padding: 8px;
    margin-bottom: 8px;
    text-align: right;
    line-height: 1.7;
}
.plan-inner ul li.plan-total{
    border-top: 1px solid var(--color-black);
    margin: 8px 0;
    padding: 15px 0;
}
.plan-inner ul li.plan-total div{
    font-size: var(--fontSizes-2xl);
    font-weight: var(--fontWeight-bold);
}
.form-container {
    max-width: 800px;
}
.form-container .gray-container {
    background-color: var(--color-lightgray);
    padding: 45px;
}
.form-container dd {
    margin-bottom: 30px;
    text-align: left;
}
.form-container dd .error {
    display: none;
    color:red;
}
.form-container dd .error.active{
    display: block;
    font-size: var(--fontSizes-sm);
    text-align: left;
    margin-top: 8px;
}
.form-container label {
    display: block;
    margin-bottom: 8px;
    font-size: var(--fontSizes-sm);
    text-align: left;
}
.form-container label span{
    border: 1.5px solid var(--color-red);
    color: var(--color-red);
    padding: 3px;
    margin: 8px;
    font-size: var(--fontSizes-xs);
    vertical-align: text-bottom;
}
.form-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
    max-width: 600px;
    margin: 0 auto;
}
.sub-container {
    display: inline-flex;
    align-items: center;
    margin: 0 0 30px;
}
.sub-container label{
    display: inline-flex;
    align-items: center;
    column-gap: 8px;
    line-height: 1;
    cursor: pointer;
}
.radio-section label{
    display: inline-flex;
    align-items: center;
    column-gap: 8px;
    line-height: 1;
    cursor: pointer;
    font-weight: var(--fontWeight-bold);
}

.checkboxItem:not(:last-of-type),
.radioboxItem:not(:last-of-type) {
    margin-right: 16px;
}
.checkbox {
    appearance: none;
    position: relative;
    width: 20px;
    height: 20px;
    border: 1px solid var(--color-gray);
    background-color: var(--color-white);
    border-radius: 2px;
    cursor: pointer;
}
.checkbox:checked {
    background-color: var(--color-main);
    border: 1px solid var(--color-main);
}
.checkbox:checked::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 10px;
    height: 6px;
    border-bottom: 2px solid #ffffff;
    border-left: 2px solid #ffffff;
    transform: rotate(-45deg);
}
.radiobox {
    appearance: none;
    position: relative;
    width: 25px;
    height: 25px;
    border: 1px solid var(--color-gray);
    background-color: var(--color-white);
    border-radius: 15px;
    cursor: pointer;
}
.radiobox:checked {
    background-color: var(--color-main);
    border: 1px solid var(--color-main);
}
.radiobox:checked::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 6px;
    width: 10px;
    height: 6px;
    border-bottom: 2px solid #ffffff;
    border-left: 2px solid #ffffff;
    transform: rotate(-45deg);
}
.txt-inner{
    padding: 0 0 30px;
}
.block-min768{
    display: block;
}

/* 料金プラン */
.exchang-btn{
    display: flex;
    justify-content: flex-start;
    flex-direction: row-reverse;
    border-radius: 20px;
    background-color: var(--color-lightgray);
    width: 40%;
    margin: 15px auto 0;
}
.exchang-btn li {
    width: 50%;
}
.exchang-btn li a{
    display: flex;
    align-items: center;
    justify-content: center;
    color:var(--color-black);
    text-decoration: none;
    height: 35px;
}
.exchang-btn li a.active {
    color: var(--color-white);
    background-color: var(--color-main);
    border-radius: 20px;
}
.exchang-btn li a[href]:hover {
    text-decoration: none;
}
.exchang-container .exchang-section {
    display: none;
}
.exchang-container .exchang-section.active{
    display: block;
}
.exchang-container .exchang-section .pricing-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.exchang-container .exchang-section .pricing-list .pricing-plan {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    background-color: var(--color-lightgray);
    padding: 30px 0 0;
    margin: 0 10px 30px;
    width: 100%;
    position: relative;
}
.exchang-container .exchang-section .pricing-list .pricing-plan .plan-header {
    margin-bottom: 15px;
    min-height: 220px;
}
.exchang-container .exchang-section .pricing-list .pricing-plan .plan-inner {
    /* flex-grow: 1; */
    background-color: var(--color-white);
    border: 1px solid  var(--color-lightgray);
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    padding: 0 15px 15px 15px;
    font-size: var(--fontSizes-sm);
}

/* >プラン内容の確認 */
.confirmation-container {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}
.confirmation-container .options label span{
    color: var(--color-black);
    font-size: var(--fontSizes-md);
    font-weight: var(--fontWeight-bold);
    margin: 0 30px 0 0;
}
.confirmation-container .options .btn02{
    width: 30%;
    padding: 8px;
    font-size: var(--fontSizes-sm);
}
.confirmation-container .left-container,
.confirmation-container .right-container {
    display: flex;
    flex-direction: column;
}
.confirmation-container .left-container {
    width: 100%;
    background-color: var(--color-lightgray);
    padding: 30px 0 0;
    text-align: left;
}
.confirmation-container .left-container .plan-section {
    padding: 0 30px 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
}
.confirmation-container .left-container .plan-section .plan-details{
    width: 100%;
}
.confirmation-container .left-container .plan-section .plan-details .plan-item {
    font-size: var(--fontSizes-sm);
    line-height: 1.7;
}

.confirmation-container .left-container .plan-section .plan-price {
    width: 100%;
    line-height: 1.7;
    padding: 30px 0 0;
}
/* オプション */
.confirmation-container .left-container .option-section {
    background-color: var(--color-white);
    border: 1px solid var(--color-lightgray);
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    padding: 30px;
    width: 100%;
    height: 100%;
}
.confirmation-container .left-container .option-section h3 {
    font-size: 18px;
    color: #333;
    margin-bottom: 15px;
}

.confirmation-container .left-container  .option-section .options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 15px 0;
    background-color: var(--color-lightgray);
    padding: 10px 30px;
}
.confirmation-container .left-container  .option-section .options label{
    margin-bottom: 0;
}
.confirmation-container .left-container .plan-section .plan-details input {
    display: none;
}
.confirmation-container .left-container .plan-section .plan-details #overlay {
    visibility: hidden;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    z-index: 90;
    width: 100%;
    height: 100%;   
}
.confirmation-container .left-container .plan-section .plan-details #overlay #bg_gray {
    background: rgba(0,0,0,0.5);
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 80;
    padding: 35% 0;
}
.confirmation-container .left-container .plan-section .plan-details #overlay .price-ym {
    display: flex;
    flex-direction: row;
    justify-content: center;
    column-gap: 60px;
}
.confirmation-container .left-container .plan-section .plan-details #overlay .price-ym span{
    font-weight: normal;
    border-bottom: 3px solid var(--color-main);
    display: block;
    margin: 0 auto -8px;
    padding: 8px 0;
    width: 70%;
}

.confirmation-container .left-container .plan-section .plan-details #overlay .popup-inner {
    width: 90%;
    max-width: 650px;
    padding: 30px 7%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    background: #fff;
    box-shadow: 0px 0px 20px -6px rgba(0,0,0,0.6);
    z-index: 90;
    opacity: 0;
    text-align: center;
    margin-top: 50px;
}
.confirmation-container .left-container .plan-section .plan-details #overlay .popup-inner #msg{
    padding: 15px 0;
}
.confirmation-container .left-container .plan-section .plan-details #overlay .popup-inner #msg .price b{
    font-size: var(--fontSizes-2xl);
}
.confirmation-container .left-container .plan-section .plan-details #overlay .popup-inner .btn02{
    margin: 0 auto;
    text-align: center;
}
#popup:checked ~ #overlay {
    visibility: visible;
}
#popup:checked ~ #overlay  .popup-inner {
    animation: fadein 500ms forwards;
    animation-timing-function: ease-in-out;
}
@keyframes fadein {
    100% {
        opacity: 1;
    }
}
.confirmation-container .right-container {
    width: 100%;
    padding: 0 45px;
}

/* 支払い方法 */
.confirmation-container .left-container .radio-section {
    padding: 15px 30px 15px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
}
.form-container .card-img{
    width: 50%;
}

.form-container .form-card {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0 15px;
}
.form-container .form-card dl{
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    width: 100%;
    max-width: 100%;
    flex-basis: 45%;
}
.form-container .form-card dd{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: 15px;
    align-items: center;
}
.form-container .form-card dd img{
    width: 20%;
}
.form-container .form-card dd .select::after{
    right: 8%;
}


/* レスポンシブ対応 */
@media screen and (min-width: 768px){
    .block-min768{
        display: none;
    }
    /* 料金プラン */
    .exchang-btn{
        width: 30%;
    }
    .exchang-container .exchang-section .pricing-list .pricing-plan  {
        flex-basis: 45%;
        max-width: 500px;
    }
    .confirmation-container .left-container .plan-section {
        padding: 0 30px 30px;
        display: flex;
        flex-direction: row;
    }
    .confirmation-container .left-container .plan-section .plan-details{
        border-right: 1px solid #000;
        width: 65%;
    }
    .confirmation-container .left-container .plan-section .plan-price {
        width: 35%;
        padding: 0 0 0 30px;
    }
    .confirmation-container .left-container .plan-section .plan-details #overlay .popup-inner {
        width: 60%;
    }
}
@media screen and (min-width: 1024px){
    .confirmation-container {
        flex-direction: row;
    }
    .confirmation-container .left-container {
        width: 70%;
    }
    .confirmation-container .right-container {
        width: 30%;
        padding-left: 45px;
    }
    .confirmation-container .left-container .plan-section .plan-details #overlay .popup-inner {
        width: 50%;
    }
}

@media screen and (min-width: 1280px){
    #container{
        padding: 0;
    }
    /* 料金プラン */
    .exchang-btn{
        width: 20%;
        margin: 0 0 0 auto;
    }
    .exchang-container .exchang-section .pricing-list .pricing-plan  {
        flex-basis: 0;
        max-width: 450px;
    }
}


/* ここから下は飛田追加分*/

/*フォーム画面*/
#undercolumn .msg_container {
	width: 800px;
	margin: 0 auto;
	text-align: center;
}

#undercolumn .msg_container p {
	text-align: left;
}
#header_wrap,
#footer,
#footer_company,
#copyright {
	display: none;
}

.form-section span.plan_name {
	font-size: var(--fontSizes-md);
	font-weight: var(--fontWeight-bold);
	color: var(--color-main);
}
.additional-content {
	padding: 10px 0 0 0;
}
.additional-content span {
	vertical-align: text-top;
}

/*確認画面*/
.form-container .confirm-value{
    display: block;
    margin-bottom: 30px;
    font-size: var(--fontSizes-lg);
    text-align: left;
    margin-left: 20px;
    font-weight: var(--fontWeight-bold);
}

.application_confirm .msg_container {
    padding: 45px 0 0 0;
}
.complete_msg_container {
    padding: 0 0 30px;
}
.complete_msg_container .txt-inner{
    padding: 30px 0;
    font-weight: var(--fontWeight-bold);
    overflow-wrap: break-word;
}

.blank-section {
    height: 30px;
    background-color: white;
}

h4.nsapp_payment_method {
    color: var(--color-black);
    font-size: var(--fontSizes-md);
    padding: 15px 15px 0px;
}

/*MYページ*/
a.btn01.in-use-plan,
button.btn01.in-use-plan {
    background-color: var(--color-gray);
    cursor: auto;
}