*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
}
p,
img{
    display: block;
}
p{
    font-size: 14px;
    line-height: 1.5;
    color: #474747;
}
img{
    width: 100%;
    object-fit: contain;
}

.wrapper{
    max-width: 600px;
    margin-inline: auto;
}
.content{
    width: 94%;
    margin: 30px auto;
}
.content h2{
    margin-bottom: 20px;
}
.anno{
    font-size: 8px;
    color: #999;
    line-height: 1.3;
    text-align: right;
    margin-top: 5px;
}
.red{
    color: #ff2774;
}
mark{
    font-weight: bold;
    background: linear-gradient(to bottom, #fff 70%, #fff0bb 70%, #fff0bb 100%);
}

.scroll{
    text-align: center;
    color: #666;
    font-size: 12px;
    margin: -10px 0;
}
.table_wrapper{
    margin-top: 15px;
    overflow-x: scroll;
}
.table_wrapper table{
    width: 650px;
    border-collapse: collapse;
}
.table_wrapper table th,
.table_wrapper table td{
    font-size: 14px;
    text-align: center;
}
.table_wrapper table th{
    background-color: #ffc3c3;
    width: 10%;
    font-weight: normal;
    position: sticky;
    left: 0;
}
.table_wrapper table tr:first-child th{
    background: #fff;
}
.table_wrapper table tr:first-child td{
    background: none !important;
    border: none !important;
}
.table_wrapper table td{
    width: 18%;
    padding: 10px 5px;
    font-size: 12px;
    border: 1px dotted #ddd;
}
.table_wrapper table td:first-of-type{
    background-color: #fffbef;
}
.table_wrapper table .reserve img{
    width: 80%;
    margin-inline: auto;
}
.table_wrapper table tr .great,
.table_wrapper table tr .good,
.table_wrapper table tr .bad{
    display: block;
    text-align: center;
    font-size: 40px;
    line-height: 1;
}
.table_wrapper table tr .great{
    color: #ff2774;
}
.table_wrapper table tr .good{
    color: #ffde4c;
}
.table_wrapper table tr:nth-child(2) td a{
    color: #ff2774;
}
.table_wrapper table tr:last-child td a{
    text-decoration: none;
    border-radius: 5px;
    padding: 6px 12px;
    background-color: #ffcb7b;
    box-shadow: 0 5px 0 0 #ffc265;
    color: #fff;
    font-weight: bold;
}

.table_wrapper table tr:last-child .btn_mint a {
    text-decoration: none;
    border-radius: 5px;
    padding: 6px 12px;
    background-color: #3ddbc7;
    box-shadow: 0 5px 0 0 #30cfba;
    color: #fff;
    font-weight: bold;
}

.table_wrapper table tr:nth-child(2) td img{
    height: 50px;
    object-fit: cover;
    object-position: center;
}
.table_wrapper table tr td .line_icon{
    display: inline-block;
    width: 25px;
    margin-right: 5px;
    vertical-align: middle;
}

/* 余白等調整 */
.table_wrapper table tr:first-child td{
    padding: 0;
}
.table_wrapper table tr:nth-child(2) td{
    padding: 5px;
}
.table_wrapper table tr:nth-last-child(2) td{
    padding-bottom: 0;
    border-bottom: none;
    border-top: none;
    font-size: 10px;
    padding-bottom: 1%;
}
.table_wrapper table tr:last-child td{
    border-top: none;
    padding-top: 0;
}
/* 余白等調整 */

@media screen and (min-width: 768px){
    .table_wrapper table{
        width: 100%;
    }
}

.point_box{
    border: 2px solid #ffa4a3;
    padding: 20px;
    border-radius: 20px;
}
.point_box h3{
    padding-bottom: 10px;
    border-bottom: 2px solid #ffa4a3;
}
.point_box p+h3{
    margin-top: 20px;
}
.point_box img{
    margin: 10px 0;
}

.product{
    background-color: #ffb7b4;
    padding: 15px;
    position: relative;
    margin: 90px auto 20px;
}
.product::before{
    content: '';
    background-image: url('../img/wave.png');
    background-size: contain;
    background-position: top center;
    background-repeat: no-repeat;
    display: block;
    width: 100%;
    height: 70px;
    position: absolute;
    top: -50px;
    left: 0;
}

@media screen and (min-width: 767px){
    .product::before {
        height: 100%;
        top: -70px;
    }
}

.product .product_box{
    border: 2px solid #ffa4a3;
    padding: 25px 0;
    border-radius: 20px;
    background-color: #fff;
    position: relative;
    margin-bottom: 25px;
}
.product .product_box .inner{
    padding-inline: 15px;
}
.product .product_box h3{
    color: #474747;
    font-size: 34px;
    line-height: 1;
    padding-bottom: 10px;
    border-bottom: 2px solid #ffa4a3;
}
.product .product_box h3 .review{
    font-size: 10px;
    position: relative;
    top: -5px;
}
.product .product_box h3 .review .txt{
    border-radius: 100px;
    color: #ffa4a3;
    border: 1px solid #ffa4a3;
    background-color: #fff0f0;
    padding: 2px 10px;
}
.product .product_box h3 .review .star{
    color: #ffde4c;
}
.product .product_box h3 .review .star span{
    color: #ff2774;
    font-size: 18px;
    position: relative;
    top: 2px;
}
.product .product_box h3 p{
    margin-top: 10px;
    font-size: 16px;
}
.product .product_box .slider_wrapper{
    margin: 10px auto;
}
.product .product_box .mederi_slider img{
    margin-inline: 5px;
}
.product .product_box h4{
    background-color: #fff0f0;
    padding: 10px 0;
    text-align: center;
    margin: 30px 0 15px;
    color: #474747;
    font-size: 18px;
    position: relative;
    width: 102%;
    right: 2%;
}
.product .product_box h4::after{
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    border: 4px solid #ff2774;
    border-left: 4px solid transparent;
    border-bottom: 4px solid transparent;
    box-sizing: border-box;
    left: 0;
    top: 100%;
}
.product .product_box .price_table{
    margin: 50px auto 20px;
}
.product .product_box.second .price_table,
.product .product_box.third .price_table{
    margin-top: 0;
}
.product .product_box .price_table .price_table_flex{
    display: flex;
    justify-content: space-between;
}
.product .product_box .price_table .price_table_flex .price_child{
    border: 1px solid #ddd;
    width: 33%;
    font-size: 12px;
}
.product .product_box .price_table .price_table_flex.first .price_child{
    border-bottom: none;
    border-radius: 10px 10px 0 0;
}
.product .product_box .price_table .price_table_flex.second .price_child{
    border-top: none;
    border-bottom: none;
    padding-top: 0;
    padding-bottom: 0;
}
.product .product_box .price_table .price_table_flex.third .price_child{
    border-top: none;
    border-radius: 0 0 10px 10px;
}

.price_table_flex .pd5 {
    padding: 5px;
}

.pt17 {
    padding-top: 17px!important;
}

.product .product_box .price_table .price_table_flex .img{
    margin: 10px 0;
    position: relative;
}
.product .product_box .price_table .price_table_flex .img span{
    position: absolute;
    display: block;
    width: 100%;
    bottom: 0;
    right: 0;
    text-align: right;
}
.product .product_box .price_table .price_table_flex.first .price_child:first-child{
    position: relative;
}

.recommend{
    display: inline-block;
    position: absolute;
    height: 23px;
    left: 20px;
    margin-top: -26px;
    text-align: center;
    background: #ffe368;/*背景色*/
    color: #000000;/*文字色*/
    box-sizing: border-box;
    z-index: 999;
    font-size: 11px;
    padding: 2px 12px 4px 2px;
}

.recommend::after{
    position: absolute;
    content: '';
    width: 0px;
    height: 0px;
    z-index: 1;
    top: 0;
    right: 0;
    border-width: 11px 10px 11px 6px;
    border-color: transparent #fff transparent transparent;
    border-style: solid;
}

.product .product_box .price_table .price_table_flex .price_child h5{
    display: block;
    width: 100%;
    background-color: #fff0f0;
    padding: 3px 0;
    text-align: center;
    font-size: 12px;
    
    border-radius: 5px 5px 0 0;
    
}
.product .product_box .price_table .price_table_flex .price_child .price_flex{
    display: flex;
    justify-content: center;
    gap: 2px;
}
.product .product_box .price_table .price_table_flex .price_child .price_flex p{
    line-height: 1.2;
}
.product .product_box .price_table .price_table_flex .price_child .price_flex p:first-child{
    font-size: 16px;
    font-weight: bold;
    color: #ff2774;
}

.price_flex {
    padding: 5px 0;
}

.product .product_box .price_table .price_table_flex .price_child ul{
    list-style: none;
    line-height: 1.7;
    padding: 5px 5px;
    background-color: #fff5f4;
}
.product .product_box .price_table .price_table_flex .price_child ul li{
    font-size: 7px;
}
.product .product_box .price_table .price_table_flex.third .price_child p{
    text-align: center;
    font-size: 10px;
    font-weight: bold;
}
.product .product_box.second .price_table .price_table_flex.third .price_child p,
.product .product_box.third .price_table .price_table_flex.third .price_child p{
    font-weight: normal;
}
.product .product_box.second .price_table .price_table_flex.third .price_child p b,
.product .product_box.third .price_table .price_table_flex.third .price_child p b{
    font-size: 14px;
}
.product .product_box .price_table .price_table_flex.third .price_child p a{
    text-decoration: none;
    display: block;
    width: 100%;
    background-color: #50bf51;
    color: #fff;
    padding: 6px 0;
    border-radius: 5px;
    line-height: 1.4;
    font-size: 12px;
    font-weight: normal;
}
.product .product_box .recommend_point>div{
    border: 1px solid #474747;
}
.product .product_box .recommend_point>div+div{
    margin-top: 10px;
}
.product .product_box .recommend_point>div h5{
    background-color: #fffbef;
    padding: 5px 0 5px 5px;
    font-size: 15px;
}
.product .product_box .recommend_point>div p{
    padding: 5px;
}
.product .product_box .profile_table{
    border: 1px solid #474747;
    border-radius: 20px;
    padding: 10px;
}
.product .product_box .profile_table table{
    width: 100%;
    border-collapse: collapse;
    color: #474747;
}
.product .product_box .profile_table table tr{
    border-bottom: 1px solid #aaa;
}
.product .product_box .profile_table table tr:last-child{
    border: none;
}
.product .product_box .profile_table table th{
    font-size: 14px;
    text-align: left;
    width: 33%;
    vertical-align: top;
    padding: 8px 0;
}
.product .product_box .profile_table table th img{
    display: inline-block;
    width: 25px;
    vertical-align: middle;
}
.product .product_box .profile_table table td{
    font-size: 12px;
    padding: 8px 0;
}
.product .product_box .cta{
    text-align: center;
    margin: 20px auto;
}
.product .product_box .cta .campaign{
    font-weight: bold;
    font-size: 14px;
}
.product .product_box .cta .campaign span{
    font-size: 22px;
}
.product .product_box .btn_wrapper{
    position: relative;
    overflow: hidden;
}
.product .product_box .cta .btn_wrapper::before{
    position: absolute;
    content: '';
    display: inline-block;
    top: -180px;
    left: 0;
    width: 30px;
    height: 100%;
    background-color: #fff;
    animation: shiny 3s ease-in-out infinite;
    z-index: 2;
}
@-webkit-keyframes shiny{
    0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
}
.product .product_box .cta .btn_wrapper a{
    position: relative;
}
.product .product_box.second .cta .btn_wrapper a,
.product .product_box.third .cta .btn_wrapper a{
    background-color: #50bf51;
    color: #fff;
    text-decoration: none;
    display: block;
    width: 100%;
    padding: 15px 0;
    border-radius: 10px;
    font-size: 22px;
}
.product .product_box .cta .btn_wrapper .anno{
    margin-top: 0;
}
.product .product_box .tab_box .tab_flex{
    display: flex;
    justify-content: space-between;
}
.product .product_box .tab_box input[type="radio"] {
    display: none;
}
.product .product_box .tab_box label {
    display: inline-block;
    padding: 10px 0;
    text-align: center;
    background: #f1f1f1;
    border-radius: 10px 10px 0 0;
    cursor: pointer;
    position: relative;
    z-index: 1;
    width: 33%;
}
.product .product_box .tab_box input[type="radio"]:checked + label {
    background: #fec3c3;
    z-index: 2;
    font-weight: bold;
    color: #474747;
}
.product .product_box .tab_box .tab_content {
    padding: 10px;
    background: white;
    position: relative;
    border: 4px solid #fec3c3;
    border-radius: 0 0 20px 20px;
}
.product .product_box .tab_box .tab-content {
    display: none;
}
.product .product_box .tab_box #tab1:checked ~ .tab_content #content1,
.product .product_box .tab_box #tab2:checked ~ .tab_content #content2,
.product .product_box .tab_box #tab3:checked ~ .tab_content #content3 {
    display: block;
}
.product .product_box .voice_box{
    height: 350px;
    overflow-y: scroll;
}
.product .product_box.second .voice_box,
.product .product_box.third .voice_box{
    height: auto;
}
.product .product_box .voice_box .voice_child{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 1px dashed #ddd;
}
.product .product_box .voice_box .voice_child+.voice_child{
    margin-top: 10px;
}
.product .product_box .voice_box .voice_child:last-child{
    border-bottom: none;
}
.product .product_box .voice_box .voice_child .profile{
    width: 20%;
    font-size: 10px;
    text-align: center;
}
.product .product_box .voice_box .voice_child>p{
    width: 77%;
}
.product .product_box .writer_comment p{
    border: 1px dashed #aaa;
    padding: 10px;
    text-align: justify;
}
.product .product_box .campaign_box{
    border: 4px solid #ffe8c0;
    margin: 20px auto 0;
}
.product .product_box .campaign_box .ttl{
    background-color: #ffe8c0;
    text-align: center;
    font-weight: bold;
    font-size: 20px;
    padding: 10px 0;
}
.product .product_box .campaign_box .inner{
    padding: 10px;
}
.product .product_box .campaign_box .lead mark{
    background: #fff0bb;
    font-size: 18px;
}
.product .product_box .campaign_box .lead ul{
    list-style: none;
    margin: 10px auto;
}
.product .product_box .campaign_box .lead ul li{
    font-size: 14px;
}
.product .product_box .campaign_box table{
    width: 100%;
    border-collapse: collapse;
}
.product .product_box .campaign_box table th,
.product .product_box .campaign_box table td{
    border: 1px solid #aaa;
}
.product .product_box .campaign_box table th{
    width: 50%;
    background-color: #fff0f0;
    color: #474747;
    padding: 10px 0;
    font-size: 12px;
    line-height: 1.6;
}
.product .product_box .campaign_box table th span{
    color: #fff;
    background-color: #fda5a3;
    border-radius: 100px;
    padding: 3px 20px;
}
.product .product_box .campaign_box table td{
    text-align: center;
    font-size: 12px;
    padding: 15px 0 10px;
}
.product .product_box .campaign_box .price_flex{
    display: flex;
    justify-content: center;
    gap: 3px;
}
.product .product_box .campaign_box .price_flex p{
    line-height: 1.2;
}
.product .product_box .campaign_box .price_flex p:first-child{
    font-size: 30px;
    font-weight: bold;
    color: #ff2774;
}
.product .product_box .campaign_box .price_flex p:last-child{
    font-size: 10px;
    position: relative;
    top: 7px;
}

.product .product_box .campaign_box .total p:first-child{
    border: 1px solid #aaa;
    width: 50%;
    margin: 10px auto 5px 10px;
    font-size: 10px;
}
.product .product_box .campaign_box .total p:last-child{
    font-size: 16px;
    font-weight: bold;
}

.price_flex02 {
    padding-top: 0!important;
}

.price_flex02 p:last-child{
    font-size: 7px;
    position: relative;
    top: 7px;
}

.price_flex02 p:nth-of-type(1){
    font-size: 23px!important;
    position: relative;
}

.price_child p{
    font-size: 10px;
    text-align: center;
    padding-top: 5px;
}

.total02 {
    font-size: 7px;
}

.total02 p:first-child {
    border: 1px solid #aaa;
    width: 80%;
    margin: 0 auto;
    font-size: 9px!important;
    padding: 2px;
}

.product .product_box .campaign_box .cta{
    text-decoration: none;
    display: block;
    width: 100%;
    background: linear-gradient(to bottom, #50bf51 0, #06a008 100%);
    color: #fff;
    padding: 20px 0;
    border-radius: 5px;
    line-height: 1.4;
    font-size: 20px;
    font-weight: normal;
    position: relative;
    margin: 10px auto 0;
}
.product.closing .product_box .campaign_box .cta{
    padding: 0;
    border-radius: 0;
    background: none;
}

.product.closing{
    background: none;
    padding: 0;
    margin-top: 50px;
}
.product.closing::before{
    display: none;
}
.product.closing .product_box{
    width: 94%;
    margin-inline: auto;
}
.product.closing .product_box h3{
    text-align: center;
}

.column{
    width: 94%;
    margin: 20px auto;
}
.column h5{
    font-size: 18px;
    margin-bottom: 5px;
}
.column ul{
    list-style: none;
}
.column ul li a{
    color: #666;
    font-size: 14px;
}
footer{
    background-color: #999;
    padding: 30px 0;
    text-align: center;
}
footer a{
    color: #fff;
    font-size: 12px;
}

.column_page{
    min-height: 100vh;
    background-color: #ffe4e4;
    padding: 30px 2.5%;
}
.column_page h1{
    font-size: 24px;
    text-align: center;
    background-color: #fda5a3;
    color: #fff;
    padding: 10px 0;
}
.column_page h2{
    font-size: 18px;
    margin: 20px auto 10px;
    color: #fda5a3;
    border-bottom: 2px solid #fda5a3;
    text-align: center;
}
.column_page .back{
    text-align: center;
    margin-top: 50px;
}
.column_page .back a{
    color: #666;
}
@media screen and (min-width: 768px){
    .column_page h1 br{
        display: none;
    }
}