.f-xs {
    font-size: 120%;
}

.f-xl {
    font-size: 140%;
}

.f-sm {
    font-size: 170%;
}

.f-md {
    font-size: 200%;
}

.f-lg {
    font-size: 250%;
}

.col-white {
    color: #fff !important;
}

.col-black {
    color: #ffffff !important;
}

.col-red {
    color: #f94c4c !important;
}

.col-yel {
    color: #fbf946 !important;
}

.col-brown {
    color: #fcc858 !important;
}

.col-pink {
    color: #f97d89 !important;
}

.col-sky {
    color: #7fd4fc !important;
}

.col-blue {
    color: #27c5f9 !important;
}

.col-grey {
    color: #a8a6a5 !important;
}

.bg-pink {
    background: #f99595 !important;
}

.bg-hotpink {
    background: #f97d89 !important;
}

.bg-sky {
    background: #96e9fb !important;
}

.bg-orange {
    background: #fcc858 !important;
}

.border-brown {
    background: linear-gradient(to top, #fcc858 50%, transparent 50%);
}

.border-yel {
    background: linear-gradient(to top, #fae977 50%, transparent 50%);
}

.border-sky {
    background: linear-gradient(to top, #96e9fb 50%, transparent 50%);
}

.f-20 {
    font-size: 1.25rem;
}

.f-12 {
    font-size: .75rem;
}

.f-24 {
    font-size: 1.5rem;
}

.f-32 {
    font-size: 2rem;
}

.f-40 {
    font-size: 2.5rem;
}

.f-48 {
    font-size: 3rem;
}

@media screen and (max-width: 768px) {
    .f-48 {
        font-size: 2.5rem;
    }
}

@media screen and (max-width: 480px) {
    .f-20 {
        font-size: 1rem;
    }
    .f-24 {
        font-size: 1.125rem;
    }
    .f-32 {
        font-size: 1.25rem;
    }
    .f-40 {
        font-size: 1.5rem;
    }
    .f-48 {
        font-size: 1.75rem;
    }
    .sp-hide {
        display: none;
    }
}

.text-shadow {
    text-shadow: rgb(0, 0, 0) 3px 0px 0px, rgb(0, 0, 0) 2.83487px 0.981584px 0px, rgb(0, 0, 0) 2.35766px 1.85511px 0px, rgb(0, 0, 0) 1.62091px 2.52441px 0px, rgb(0, 0, 0) 0.705713px 2.91581px 0px, rgb(0, 0, 0) -0.287171px 2.98622px 0px, rgb(0, 0, 0) -1.24844px 2.72789px 0px, rgb(0, 0, 0) -2.07227px 2.16926px 0px, rgb(0, 0, 0) -2.66798px 1.37182px 0px, rgb(0, 0, 0) -2.96998px 0.42336px 0px, rgb(0, 0, 0) -2.94502px -0.571704px 0px, rgb(0, 0, 0) -2.59586px -1.50383px 0px, rgb(0, 0, 0) -1.96093px -2.27041px 0px, rgb(0, 0, 0) -1.11013px -2.78704px 0px, rgb(0, 0, 0) -0.137119px -2.99686px 0px, rgb(0, 0, 0) 0.850987px -2.87677px 0px, rgb(0, 0, 0) 1.74541px -2.43999px 0px, rgb(0, 0, 0) 2.44769px -1.73459px 0px, rgb(0, 0, 0) 2.88051px -0.838247px 0px;
}

.camp_inner {
    width: 100%;
    max-width: 1030px;
    margin: 0 auto;
    padding: 0 15px;
}

.contact-fix {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
}

.contact-fix-item {
    width: 50%;
    text-align: center;
}

.contact-fix-item a {
    display: block;
    max-width: none;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    padding: 10px 0;
    line-height: 2;
}

.contact-fix-item a i {
    margin-right: 10px;
}

.contact-fix-tel {
    background: #3d89e9;
}

.contact-fix-mail {
    background: #e38431;
}

#campaign header {
    border-top: none;
}

#campaign main {
    padding-top: 0;
    line-height: 1.3;
}

#campaign .mv {
    padding-top: 100px;
    background: url(./images/mv_bg.gif) no-repeat left center / cover;
}

#campaign .mv_cont {
    margin: 50px 0 10px;
}

#campaign .mv_ttl {
    position: absolute;
    left: 0;
    top: -20px;
    width: 100%;
    font-size: 2.5rem;
    line-height: 1.1;
}

#campaign .mv_copy {
    font-size: 2rem;
}

#campaign .mv .bg-pink {
    margin-top: 20px;
    padding: 20px 0;
}

#campaign .mv .bg-pink .f-xs:first-of-type {
    margin-right: 25px;
}

#campaign .mv .bg-sky {
    padding: 25px 0;
    background: #a8e2fa;
}

#campaign .mv .bg-sky .col-yel {
    margin-bottom: 10px;
}

@media screen and (min-width: 992px) {
    #campaign header {
        display: none;
    }
    #campaign .mv {
        padding-top: 20px;
    }
}

@media screen and (max-width: 991px) {
    #campaign .mv_ttl {
        font-size: 4.25vw;
    }
}

@media screen and (max-width: 768px) {
    #campaign .mv_copy {
        font-size: 1.25rem;
    }
}

@media screen and (max-width: 480px) {
    #campaign .mv {
        padding-top: 75px;
    }
    #campaign .mv_copy {
        font-size: 1rem;
    }
    #campaign .mv .bg-pink .f-xs:first-of-type {
        margin-right: 0;
    }
}

section {
    padding: 30px 0;
}

.camp_content_num p {
    position: relative;
    display: inline-block;
    margin-bottom: 15px;
    padding: 5px 70px 5px 80px;
    background: #fcc858;
}

.camp_content_num p span {
    position: absolute;
    bottom: 0;
    right: 5px;
    line-height: 1.15;
}

.content_plan {
    margin-top: 20px;
    background: #3bcceb;
}

.content_plan h2 {
    position: absolute;
    right: 15px;
    top: 0;
    transform: translateY(-60%);
}

.content_plan .d-flex figure {
    width: 60%;
}

.content_plan .d-flex p {
    flex: 1;
    padding-bottom: 50px;
    line-height: 1.8;
}

.content1_txt {
    position: absolute;
    right: 15px;
    bottom: 15px;
    max-width: calc(100% - 30px);
}

.content_price {
    padding: 50px 0;
}

.content_price h3 {
    display: inline-block;
    padding-bottom: 10px;
    color: #fd8fbb;
    border-bottom: 3px solid #a8e2fa;
}

.content_price .content_price_ttl {
    margin: 25px 0;
}

.camp_box {
    margin-top: 15px;
    padding: 40px 5%;
}

.content_price_list li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}

.content_price_list li:last-child {
    margin-bottom: 0;
}

.price_val {
    text-decoration: underline;
}

.flex-1 {
    flex: 1;
}

.ma_to20 {
    margin-top: 20px;
}

@media screen and (max-width: 768px) {
    .content_plan .d-flex figure {
        width: 100%;
    }
    .content_plan .d-flex p {
        flex: none;
        width: 100%;
        padding: 35px 0 0;
    }
}

@media screen and (max-width: 480px) {
    .camp_content_num p {
        padding: 5px 50px 5px 60px;
    }
    .price_val {
        width: 100%;
        text-align: right;
    }
}

.content2 h2 {
    color: #fe5b02;
}

.content2 .camp_box {
    width: 48%;
    line-height: 1.5;
}

.content2 figure {
    width: 50%;
    margin-top: 15px;
    margin-bottom: -20px;
}

.content2_btn a {
    display: block;
    padding: 20px;
    border-radius: 20px;
}

@media screen and (max-width: 768px) {
    .content2 .camp_box,
    .content2 figure {
        width: 100%;
    }
}

.content3 .camp_box {
    line-height: 1.5;
    background: #fae977 url(./images/content3.jpg) no-repeat center / contain;
}

.content4_cont {
    padding: 5em 0;
    background: url(./images/content4.jpg) no-repeat center / cover;
}

.content4_cont .camp_box {
    background: rgba(251, 197, 127, .4);
}

@media screen and (max-width: 480px) {
    .content4_cont {
        padding: 3em 0;
    }
}

.content_flow {
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.content_flow li:not(:last-child):after {
    content: url(./images/arrow.png);
    display: block;
    margin: 20px auto;
    text-align: center;
    line-height: 0;
}

.content_flow li .flow_cont {
    padding: 20px 5%;
    border-radius: 20px;
    background: #9bdefa;
}

.content_flow li:nth-child(2n) .flow_cont {
    background: #37c0f8;
}

.content_flow li:last-child .flow_cont {
    background: #fa6464;
}

.content_flow li .flow_cont figure {
    position: absolute;
    bottom: 0;
    width: 15%;
}

.content_flow li:nth-child(2n+1) .flow_cont figure {
    right: 87%;
}

.content_flow li:nth-child(2n) .flow_cont figure {
    left: 87%;
}

.content_flow li:nth-child(3) .flow_cont figure {
    width: 20%;
    right: 83%;
}

.content_flow li:nth-child(4) .flow_cont figure {
    width: 20%;
    left: 83%;
}

.content5_bnr {
    margin-top: 3em;
}

@media screen and (max-width: 480px) {
    .content_flow li .flow_cont {
        padding: 10px 5%;
        border-radius: 10px;
    }
}

.content6_cont {
    padding: 40px 0 20px;
}

.content6_cont a {
    display: block;
    margin-top: 30px;
    padding: 20px 10px;
    border-radius: 20px;
    background: #f9efa8;
}

.content7 h2 {
    display: inline-block;
    padding-bottom: 10px;
    border-bottom: 3px solid #a8e2fa;
}

.content7_cont {
    margin-top: 30px;
    padding: 40px 0 50px;
    background: url(./images/content7.jpg) no-repeat center / cover;
}

.content7_cont h3 {
    margin-bottom: 30px;
    padding: 10px;
    text-align: center;
    background: rgba(251, 245, 150, .7);
}

.camp_repair {
    padding: 50px 0;
}

.camp_repair ul li {
    width: 48.5%;
    padding: 0 10px 15px;
}

.camp_repair ul li figure {
    margin-bottom: 15px;
}

@media screen and (max-width: 480px) {
    .camp_repair ul li {
        width: 100%;
    }
}