@charset "UTF-8";

/*  共通
--------------------------------*/
#fp-contents {
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.7;
    color: #4a2c2a;
    position: relative;
    background: url("../img/bg.png"), linear-gradient(180deg, #dbffff, #fff3cd 34%, #dbffff 65%, #fff3cd 97%);
}
#fp-contents section {
    position: relative;
}
#fp-contents .container {
    position: relative;
    box-sizing: border-box;
    z-index: 100;
}
#fp-contents p {
    font-size: 22px;
    font-weight: 600;
}
#fp-contents img {
    width: 100%;
    vertical-align: bottom;
}
#fp-contents .pc {
    display: block;
}
#fp-contents .sp {
    display: none;
}
#fp-contents a {
    text-decoration: unset;
}
/* セクションタイトル */
#fp-contents h2 {
    font-family: "zen-maru-gothic", sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 30px;
    color: #4a2c2a;
    text-align: center;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    z-index: 100;
}
#fp-contents h2::before {
    width: 34px;
    height: 28px;
    content: "";
    background: url(../img/dog_ttl.png) no-repeat;
    background-size: contain;
}
#fp-contents h2::after {
    width: 34px;
    height: 28px;
    content: "";
    background: url(../img/dog_ttl.png) no-repeat;
    background-size: contain;
}
/* 見出しフォント */
#fp-contents .ttl {
    font-family: "zen-maru-gothic", sans-serif;
    font-weight: 900;
    font-style: normal;
    text-align: center;
    line-height: 1.6;
}
/* 本文フォント */
#fp-contents .txt {
    font-family: "m-plus-rounded-2p", sans-serif;
    font-weight: 700;
    font-style: normal;
    text-align: center;
}
/* 背景雲アニメーション */
@keyframes cloud_up {
    0% {
        background-position-y: top 0;
    }
    50%{
        background-position-y: top 20px;
    }
    100%{
        background-position-y: top 0;
    }
}
@keyframes cloud_down {
    0% {
        background-position-y: bottom 0;
    }
    50%{
        background-position-y: bottom 20px;
    }
    100%{
        background-position-y: bottom 0;
    }
}

@media screen and (max-width: 768px) {
    #fp-contents h2 {
        font-size: 26px;
    }
    #fp-contents h2::before {
        width: 26px;
        height: 22px;
    }
    #fp-contents h2::after {
        width: 26px;
        height: 22px;
    }
    #fp-contents .pc {
        display: none;
    }
    #fp-contents .sp {
        display: block;
    }
    @keyframes cloud_up {
        0% {
            background-position-y: top 0;
        }
        50% {
            background-position-y: top 10px;
        }
        100% {
            background-position-y: top 0;
        }
    }
    @keyframes cloud_down {
        0% {
            background-position-y: bottom 0;
        }
        50% {
            background-position-y: bottom 10px;
        }
        100% {
            background-position-y: bottom 0;
        }
    }
}

/*  めざまし共通ヘッダー サイズ調整
-----------------------------------------*/
@media screen and (max-width: 1024px) {
    #meza_header_full {
    width: 1200px;
}
}

.cx_smartphoneview #meza_header_full {
    width: 100%;
}
.cx_smartphoneview #meza_header_full .meza_header_inr {
    width: 100%;
    border-bottom: 6px solid #ffd39f;
    padding: 6px;
}
.cx_smartphoneview #meza_header_full .meza_header_logo {
    width: 42%;
    margin: 0 10px 0 0;
}
.cx_smartphoneview #meza_header_full .oaInfo {
    justify-content: space-between;
}
.cx_smartphoneview #meza_header_full .oaInfo li:first-of-type {
    margin-right: 6px;
    padding: 0 15px;
}
.cx_smartphoneview #meza_header_full .oaInfo li {
    text-align: center;
    padding: 0 10px;
    border-radius: 60px;
    width: 50%;
    height: 56px;
    text-align: center;
}

/*  追従TOPボタン
--------------------------------*/
.btn_top {
    width: 88px;
    position: fixed;
    bottom: 20px;
    right: 30px;
    z-index: 800;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
  /* 初期状態：非表示 */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.2s ease;
}
/* 表示状態（JSでクラス付与） */
.btn_top.is_visible {
    opacity: 1;
    visibility: visible;
}
/* PCのみ：hoverでscale 0.9 */
@media (hover: hover) and (pointer: fine) {
    .btn_top:hover {
    transform: scale(0.9);
    }
}
.btn_top_img {
    display: block;
    width: auto;
    height: auto;
}

@media screen and (max-width: 768px) {
    .btn_top {
        width: 60px;
        bottom: 84px;
        right: 12px;
    }
}

/*  メインビジュアル
--------------------------------*/
#fp-contents .main_visual {
    padding-top: 50px;
}
#fp-contents .main_visual h1 {
    position: relative;
    width: 90%;
    max-width: 762px;
    margin: 0 auto;
    z-index: 100;
}
/* 背景雲 */
#fp-contents .main_visual::before {
    content: '';
    display: block;
    width: 282px;
    height: 200px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 3%;
    margin: auto 0;
    background: url(../img/cloud01.png) no-repeat center;
    background-size: 282px 200px;
    animation: cloud_up 5s ease 0.3s infinite;
}
#fp-contents .main_visual::after {
    content: '';
    display: block;
    width: 282px;
    height: 210px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 3%;
    margin: auto 0;
    background: url(../img/cloud02.png) no-repeat center;
    background-size: 282px 210px;
    animation: cloud_down 5s ease 0.3s infinite;
}

@media screen and (max-width: 768px) {
    #fp-contents .main_visual {
        padding-top: 24px;
    }
    #fp-contents .main_visual::before {
        width: 182px;
        height: 129px;
        top: 0;
        left: 0;
        margin: unset;
        background-size: 182px 129px;
    }
    #fp-contents .main_visual::after {
        width: 182px;
        height: 135px;
        top: 60px;
        right: 0;
        margin: unset;
        background-size: 182px 135px;
    }
}

/*  contents_wrap
--------------------------------*/
#fp-contents .contents_wrap {
    padding-top: 40px;
    padding-bottom: 80px;
    position: relative;
}

@media screen and (max-width: 768px) {
    #fp-contents .contents_wrap {
        padding-top: 24px;
        padding-bottom: 40px;
    }
}

/*  導入エリア
--------------------------------*/
#fp-contents .introduction .container {
    width: 90%;
    max-width: 1000px;
    margin: 0 auto 100px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 20px;
    box-shadow: 0px 4px 15px -2px rgba(0, 0, 0, 0.15);
    padding: 40px;
}
#fp-contents .introduction .container .ttl_introduction {
    font-size: 36px;
}
#fp-contents .introduction .container .ttl_introduction span {
    color: #ed5693;
}
#fp-contents .introduction .container .txt_introduction span {
    color: #ed5693;
}
#fp-contents .introduction .container .img_foot_introduction {
    width: 112px;
    margin: 40px auto;
}
/* 背景雲 */
#fp-contents .introduction::before {
    content: '';
    display: block;
    width: 774px;
    height: 260px;
    position: absolute;
    bottom: -12%;
    left: 3%;
    background: url(../img/cloud03.png) no-repeat center;
    background-size: 774px 260px;
    animation: cloud_down 5s ease 0.3s infinite;
}
#fp-contents .introduction::after {
    content: '';
    display: block;
    width: 260px;
    height: 230px;
    position: absolute;
    bottom: -16%;
    right: 4%;
    background: url(../img/cloud04.png) no-repeat center;
    background-size: 260px 230px;
    animation: cloud_up 5s ease 0.3s infinite;
}

@media screen and (max-width: 768px) {
    #fp-contents .introduction .container {
        margin: 0 auto 40px;
        padding: 20px 16px;
    }
    #fp-contents .introduction .container .ttl_introduction {
        font-size: 24px;
    }
    #fp-contents .introduction .container .img_foot_introduction {
        width: 80px;
        margin: 24px auto;
    }
    #fp-contents .introduction .container .txt_introduction {
        font-size: 16px;
    }
    #fp-contents .introduction::before {
        width: 350px;
        height: 117px;
        bottom: 50%;
        left: 2%;
        background-size: 350px 117px;
    }
    #fp-contents .introduction::after {
        width: 160px;
        height: 142px;
        bottom: -10%;
        right: 40%;
        background-size: 160px 142px;
    }
}

/*  サンプル動画
--------------------------------*/
#fp-contents .movie .container {
    width: 90%;
    max-width: 750px;
    margin: 32px auto 0;
}
#fp-contents .movie div.video-warap video {
    border-radius: 10px;
    border: 4px solid #fff;
}
/* 背景雲 */
#fp-contents .movie::before {
    content: '';
    display: block;
    width: 258px;
    height: 216px;
    position: absolute;
    top: 40%;
    left: 7%;
    background: url(../img/cloud05.png) no-repeat center;
    background-size: 258px 216px;
    animation: cloud_up 5s ease 0.3s infinite;
}
#fp-contents .movie::after {
    content: '';
    display: block;
    width: 216px;
    height: 163px;
    position: absolute;
    bottom: 0;
    right: 1%;
    background: url(../img/cloud06.png) no-repeat center;
    background-size: 216px 163px;
    animation: cloud_down 5s ease 0.3s infinite;
}

@media screen and (max-width: 768px) {
    #fp-contents .movie .container {
        margin: 16px auto 0;
    }
    #fp-contents .movie::before {
        width: 158px;
        height: 132px;
        top: 40%;
        left: 0;
        background-size: 158px 132px;
    }
    #fp-contents .movie::after {
        width: 96px;
        height: 72px;
        bottom: -60px;
        right: 1%;
        background-size: 96px 72px;
    }
}

/*  応募はフジテレビクラブから！
--------------------------------*/
#fp-contents .apply .container {
    width: 90%;
    max-width: 640px;
    margin: 100px auto;
}
#fp-contents .apply:last-child .container {
    margin: 100px auto 20px;
}
#fp-contents .apply .container a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 640px;
    height: 80px;
    background-color: #ed5693;
    color: #fff;
    font-size: 24px;
    border: 2px solid #fff;
    border-radius: 50px;
    cursor: pointer;
    transition: transform .3s, background-color .3s ease, color .3s ease, border .3s ease;
    position: relative;
}
#fp-contents .apply .container a:hover {
    background-color: #fff;
    color: #ed5693;
    border: 2px solid #ed5693;
}
#fp-contents .apply .container a::after {
    content: "";
    position: absolute;
    display: block;
    top: auto;
    right: 50px;
    width: 16px;
    height: 19px;
    background: url(../img/btn_arrow.png) no-repeat center / contain;
    transition: transform .3s ease;
}
/* hover時の矢印移動 */
#fp-contents .apply .container a:hover::after {
    transform: translateX(5px);
    background: url(../img/btn_arrow_pink.png) no-repeat center / contain;
}
#fp-contents .apply .container .caption {
    font-size: 17px;
    margin-top: 8px;
}


@media screen and (max-width: 768px) {
    #fp-contents .apply .container {
        margin: 40px auto;
    }
    #fp-contents .apply:last-child .container {
        margin: 40px auto 0;
    }
    #fp-contents .apply .container a {
        height: 60px;
        font-size: 19px;
    }
    #fp-contents .apply .container a::after {
        right: 18px;
        width: 12px;
        height: 14px;
    }
    #fp-contents .apply .container .caption {
    font-size: 14px;
}
}

/*  ステップ
--------------------------------*/
#fp-contents .step .container {
    width: 90%;
    max-width: 1000px;
    margin: 72px auto 0;
    background: url("../img/pat_step.png"), #fff;
    background-repeat: repeat;
    border-radius: 20px;
    box-shadow: 0px 4px 15px -2px rgba(0, 0, 0, 0.15);
    padding: 40px;
    position: relative;
}
#fp-contents .step .container .img_foot_step {
    position: absolute;
    width: 102px;
    right: 0;
    left: 0;
    top: -32px;
    margin: 0 auto;
}
#fp-contents .step .container .ttl_step {
    margin-top: 32px;
    font-size: 30px;
    color: #ed5693;
}
#fp-contents .step .container .txt_step {
    margin-top: 16px;
    font-size: 22px;
}
#fp-contents .step .container .txt_step span {
    color: #ed5693;
}
#fp-contents .step .container .img_capture_step01,
#fp-contents .step .container .img_capture_step03 {
    margin: 32px auto 0;
    width: 100%;
    max-width: 438px;
}
#fp-contents .step .container .img_capture_step02 {
    margin: 32px auto 0;
    width: 214px;
}
/* 背景雲 */
#fp-contents .step::before {
    content: '';
    display: block;
    width: 282px;
    height: 200px;
    position: absolute;
    top: -3%;
    left: 3%;
    background: url(../img/cloud01.png) no-repeat center;
    background-size: 282px 200px;
    animation: cloud_up 5s ease 0.3s infinite;
}
#fp-contents .step::after {
    content: '';
    display: block;
    width: 282px;
    height: 210px;
    position: absolute;
    top: -3%;
    right: 3%;
    background: url(../img/cloud02.png) no-repeat center;
    background-size: 282px 210px;
    animation: cloud_down 5s ease 0.3s infinite;
}
#fp-contents .step .wrap {
    position: relative;
}
#fp-contents .step .wrap.step01::before {
    content: '';
    display: block;
    width: 774px;
    height: 260px;
    position: absolute;
    bottom: -50%;
    left: 3%;
    background: url(../img/cloud03.png) no-repeat center;
    background-size: 774px 260px;
    animation: cloud_down 5s ease 0.3s infinite;
}
#fp-contents .step .wrap.step01::after {
    content: '';
    display: block;
    width: 260px;
    height: 230px;
    position: absolute;
    bottom: -50%;
    right: 4%;
    background: url(../img/cloud04.png) no-repeat center;
    background-size: 260px 230px;
    animation: cloud_up 5s ease 0.3s infinite;
}
#fp-contents .step .wrap.step02::before {
    content: '';
    display: block;
    width: 258px;
    height: 216px;
    position: absolute;
    top: 60%;
    left: 7%;
    background: url(../img/cloud05.png) no-repeat center;
    background-size: 258px 216px;
    animation: cloud_up 5s ease 0.3s infinite;
}
#fp-contents .step .wrap.step02::after {
    content: '';
    display: block;
    width: 216px;
    height: 163px;
    position: absolute;
    bottom: 3%;
    right: 1%;
    background: url(../img/cloud06.png) no-repeat center;
    background-size: 216px 163px;
    animation: cloud_down 5s ease 0.3s infinite;
}
#fp-contents .step .wrap.step03::before {
    content: '';
    display: block;
    width: 282px;
    height: 200px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 3%;
    margin: auto 0;
    background: url(../img/cloud01.png) no-repeat center;
    background-size: 282px 200px;
    animation: cloud_up 5s ease 0.3s infinite;
}
#fp-contents .step .wrap.step03::after {
    content: '';
    display: block;
    width: 282px;
    height: 210px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 3%;
    margin: auto 0;
    background: url(../img/cloud02.png) no-repeat center;
    background-size: 282px 210px;
    animation: cloud_down 5s ease 0.3s infinite;
}

@media screen and (max-width: 768px) {
    #fp-contents .step .container {
        margin: 40px auto 0;
        background-size: 18px 28px;
        padding: 16px
    }
    #fp-contents .step .container.step02,
    #fp-contents .step .container.step03 {
        margin: 48px auto 0;
    }
    #fp-contents .step .container .img_foot_step {
        width: 72px;
        top: -25px;
    }
    #fp-contents .step .container .ttl_step {
        font-size: 20px;
    }
    #fp-contents .step .container .txt_step {
        margin-top: 8px;
        font-size: 16px;
    }
    #fp-contents .step .container .img_capture_step01,
    #fp-contents .step .container .img_capture_step03 {
        margin: 16px auto 0;
    }
    #fp-contents .step .container .img_capture_step02 {
        margin: 16px auto 0;
        width: 154px;
    }
    #fp-contents .step::before {
        width: 182px;
        height: 129px;
        top: 0;
        left: 0;
        margin: unset;
        background-size: 182px 129px;
    }
    #fp-contents .step::after {
        width: 182px;
        height: 135px;
        top: 100px;
        right: 0;
        margin: unset;
        background-size: 182px 135px;
    }
    #fp-contents .step .wrap.step01::before {
        width: 350px;
        height: 117px;
        bottom: 0%;
        left: 2%;
        background-size: 350px 117px;
    }
    #fp-contents .step .wrap.step01::after {
        width: 160px;
        height: 142px;
        bottom: -21%;
        right: 20%;
        background-size: 160px 142px;
    }
    #fp-contents .step .wrap.step02::before {
        width: 158px;
        height: 132px;
        top: 30%;
        left: 0;
        background-size: 158px 132px;
    }
    #fp-contents .step .wrap.step02::after {
        width: 96px;
        height: 72px;
        bottom: -60px;
        right: 1%;
        background-size: 96px 72px;
    }
    #fp-contents .step .wrap.step03::before {
        width: 158px;
        height: 132px;
        top: 30%;
        left: 0;
        background-size: 158px 132px;
    }
    #fp-contents .step .wrap.step03::after {
        width: 182px;
        height: 135px;
        top: unset;
        bottom: 0;
        right: 0;
        margin: unset;
        background-size: 182px 135px;
    }
}




