@charset "utf-8";
.campaign .catch img { max-width: 100%; width: 100%; height: auto;}
.campaign * { font-family: "M PLUS Rounded 1c", sans-serif; color: #222;}
.campaign section { scroll-margin-top: 80px;}
.campaign section:nth-of-type(odd) { background: #FFFBDE;}
.campaign .cont_inr { max-width: 1000px; width: 100%; margin: 0 auto; padding: 80px 0;}
.campaign h3 { text-align: center; margin-bottom: 40px;}
.campaign h3 span { font-size: 35px; text-align: center; font-weight: 600; line-height: 1;background: linear-gradient(transparent 1em, #E0162C 0, #E0162C calc(1em + 7px), transparent 0);}
.campaign .fixed_btn { position: fixed; top: 20%; right: 0; z-index: 2;}
.campaign .fixed_btn a { display: block; writing-mode: vertical-rl; padding: 20px 10px; background: #E0162C; line-height: 1.4; box-sizing: border-box; color: #fff; font-size: 20px; transition: all .3s; text-decoration: none; font-weight: 600;}
.campaign .fixed_btn a:hover { opacity: .7;}

.cont01 ul { display: flex;}
.cont01 ul li { width: calc((100% - 120px)/4); margin-right: 40px;}
.cont01 ul li:last-of-type { margin: 0;}
.cont01 ul li a { display: flex; position: relative; width: 100%; align-items: center; justify-content: center; border: 2px solid #E0162C; color: #E0162C; font-weight: 600; border-radius: 100px; background: #fff; height: 60px; line-height: 1; font-size: 18px; text-decoration: none; transition: all .3s;}
.cont01 ul li a img { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); transition: all .3s;}
.cont01 ul li a:hover img{ transform: translateY(0%); }
.cont01 dt { max-width: 800px; width: 100%; margin: 0 auto; margin-top: 90px; position: relative; border: 2px solid #E0162C; background: #fff; padding: 40px 40px 30px 40px; border-radius: 10px;}
.cont01 dt h2 { position: absolute; left: 50%; top: -32px; transform: translateX(-50%);}
.cont01 dt h2 img { width: 100%;}
.cont01 dt p { display: flex; align-items: center; font-size: 25px; font-weight: 600; line-height: 1;}
.cont01 dt p + p { margin-top: 5px;}
.cont01 dt p img { display: block; margin-right: 10px;}
.cont01 dt p span { display: flex; font-size: 20px; font-weight: 600; width: 120px; height: 40px; margin: 0 0 0 auto; background: #fff; color: #E0162C; border-radius: 100px; justify-content: center; align-items: center; border: 2px solid #E0162C;}
.cont01 dd { margin-top: 40px;}
.cont01 dd p { text-align: center; margin-bottom: 20px;}
.cont01 dd a { display: flex; background: #E0162C; color: #fff; transition: all .3s; margin: 0 auto 10px auto; width: 500px; height: 80px; font-weight: 600; font-size: 30px; line-height: 1; justify-content: center; align-items: center; border-radius: 100px; text-decoration: none;}
.cont01 dd a:hover { opacity: .7;}
.cont01 dd span { display: flex; justify-content: center; text-align: center; font-size: 14px;}


.cont02 ul { display: flex; align-items: center; border-radius: 10px; border: 2px solid #E0162C;}
.cont02 ul li { width: calc((100% - 20px)/2); margin-right: 20px; padding: 10px;}
.cont02 ul li:last-of-type { margin-right: 0;}
.cont02 ul li a { display: block; text-align: center; margin-top: 10px;}
.cont02 ul li a:hover { text-decoration: none;}
.cont02 ul li img { display: block; margin: 0 auto;}
.cont02 ul li:first-of-type img { width: 100%;}
.cont02 p { font-size: 14px; margin-top: 10px;}
.cont02 p span { font-size: 14px; font-weight: 600;}


.cont03 > .cont_inr > p { font-size: 25px; font-weight: 600; text-align: center; margin-bottom: 40px;}
.cont03 > .cont_inr > span { display: block; font-size: 14px; margin-top: 10px;}
.cont03 > .cont_inr > ul { display: flex;}
.cont03 > .cont_inr > ul > li { width: calc((100% - 20px)/2); margin-right: 20px; background: #fff; padding: 20px; border-radius: 10px;}
.cont03 > .cont_inr > ul > li:last-of-type { margin-right: 0;}
.cont03 > .cont_inr > ul > li h4 { font-size: 25px; justify-content: center; display: flex; align-items: center;}
.cont03 > .cont_inr > ul > li h4 img:first-of-type { margin-right: 10px;}
.cont03 > .cont_inr > ul > li h4 img:last-of-type { margin-left: 10px;}
.cont03 > .cont_inr > ul > li.cat h4 { color: #E0162C;}
.cont03 > .cont_inr > ul > li.dog h4 { color: #267F51;}
.cont03 > .cont_inr > ul > li dl { display: flex; justify-content: center; margin: 20px 0;}
.cont03 > .cont_inr > ul > li dl dt { width: calc(100%/3);}
.cont03 > .cont_inr > ul > li dl dt img { width: 100%;}
.cont03 > .cont_inr > ul > li dl dt p { text-align: center; font-size: 14px; line-height: 1.4; margin-top: 5px;}
.cont03 > .cont_inr > ul > li > .number > ul { display: flex; width: 60%; margin: 0 auto;}
.cont03 > .cont_inr > ul > li > .number > ul + ul { margin-top: 10px;}
.cont03 > .cont_inr > ul > li > .number > ul > li > span { display: flex; width: 40px; height: 30px; font-size: 18px; border-radius: 5px; line-height: 1; background: #E0162C; color: #fff; font-weight: 600; justify-content: center; align-items: center;}
.cont03 > .cont_inr > ul > li.dog > .number > ul > li > span { background: #267F51;}
.cont03 > .cont_inr > ul > li > .number > ul > li + li { margin-left: 10px;}
.cont03 > .cont_inr > ul > li > .number > ul > li > p { font-weight: 600; font-size: 16px;}
.cont03 a { display: flex; justify-content: center; align-items: center; width: 250px; height: 50px; font-size: 18px; text-decoration: none; font-weight: 600; color: #fff; background: #E0162C; border-radius: 100px; margin: 20px auto 0 auto; position: relative; transition: all .3s;}
.cont03 .dog a { background: #267F51;}
.cont03 a:hover { opacity: .7;}
.cont03 a > img { display: block; position: absolute; right: 20px; top: 50%; transform: translateY(-50%);}


.cont04 ul { display: flex;}
.cont04 ul li { width: calc((100% - 80px)/3); margin-right: 40px; border: 2px solid #E0162C; border-radius: 10px; padding: 30px; position: relative;}
.cont04 ul li:last-of-type { margin-right: 0;}
.cont04 ul li > .step { position: absolute; left: 50%; top: -22px; transform: translateX(-50%);}
.cont04 ul li p { text-align: center; font-weight: 600; font-size: 20px; line-height: 1.4; min-height: 70px;}
.cont04 ul li > .inr { display: block; margin: 0 auto;}
.cont04 .btn_area a { display: flex; background: #E0162C; color: #fff; transition: all .3s; width: 500px; margin: 40px auto 10px auto; height: 80px; font-weight: 600; font-size: 30px; line-height: 1; justify-content: center; align-items: center; border-radius: 100px; text-decoration: none;}
.cont04 .btn_area a:hover { opacity: .7;}
.cont04 .btn_area span { display: flex; justify-content: center; text-align: center; font-size: 14px;}


.cont05 dl { padding: 40px; background: #fff; border-radius: 10px;}
.cont05 dl dt ul { display: flex; justify-content: space-between;}
.cont05 dl dt ul li:first-of-type { width: 46%;}
.cont05 dl dt ul li:last-of-type { width: 55%;}
.cont05 dl dt ul li img { width: 100%;}
.cont05 dl dt ul li p { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.6;}
.cont05 dl dt ul li p { display: flex; align-items: center; gap: 10px;}
.cont05 dl dt ul li p + p { margin-top: 10px;}
.cont05 dl dt ul li p::before { content: ""; flex-shrink: 0; width: 10px; height: 10px; border-radius: 50%; background: #E0162C;}
.cont05 dl dd { margin-top: 40px; background: #f5f5f5; padding: 20px 40px;}
.cont05 dl dd h5 { display: flex; justify-content: center; align-items: center; color: #fff; background: #4F95DA; width: 140px; height: 50px; font-size: 25px; font-weight: 600; margin: 0 auto;}
.cont05 dl dd h5 img { display: block; margin-right: 10px;}
.cont05 dl dd ul { display: flex; margin-top: 20px;}
.cont05 dl dd ul li { width: calc((100% - 80px)/5); margin-right: 20px;}
.cont05 dl dd ul li:last-of-type { margin-right: 0;}
.cont05 dl dd ul li img { width: 100%;}
.cont05 dl dd ul li p { text-align: center; font-size: 18px; font-weight: 600; line-height: 1; margin-top: 10px;}

.cont06 .rule { height: 300px; overflow-y: auto; padding: 20px 24px; border: 1px solid #ccc; background: #fff; font-size: 14px; line-height: 1.6; overscroll-behavior: contain;}
.cont06 .rule p { margin: 0;}
.cont06 .rule { scrollbar-width: thin; scrollbar-color: #E0162C #eee;}
.cont06 .rule::-webkit-scrollbar { width: 8px;}
.cont06 .rule::-webkit-scrollbar-track { background: #eee; border-radius: 4px;}
.cont06 .rule::-webkit-scrollbar-thumb { background: #E0162C; border-radius: 4px;}
.cont06 .rule .rule_lead { margin-bottom: 8px;}
.cont06 .rule .rule_ttl { margin: 24px 0 8px; padding: 2px 0 2px 10px; border-left: 4px solid #E0162C; font-size: 15px; font-weight: bold; line-height: 1.5;}
.cont06 .rule .rule_sub { margin: 16px 0 4px; font-size: 14px; font-weight: bold; color: #E0162C;}
.cont06 .rule .rule_list { margin: 0; padding: 0; list-style: none;}
.cont06 .rule .rule_list li { position: relative; padding-left: 1em;}
.cont06 .rule .rule_list li::before { content: "・"; position: absolute; left: 0; top: 0;}
.cont06 .rule .rule_list li + li { margin-top: 4px;}
.cont06 .rule .rule_period { margin: 0 0 6px; padding: 0; list-style: none;}
.cont06 .rule .rule_period span { display: inline-block; margin-right: 12px; font-weight: bold; color: #E0162C;}
.cont06 .rule .rule_step { margin: 0; padding-left: 1.5em;}
.cont06 .rule .rule_step li + li { margin-top: 4px;}
.cont06 .rule .rule_note { padding-left: 1em; text-indent: -1em; font-size: 13px;}
.cont06 .rule .rule_note_alert { margin-top: 12px; font-weight: bold; color: #E0162C;}
.cont06 .rule .rule_contact a { color: inherit; text-decoration: underline;}

.cont07 .contact_box { max-width: 600px; width: 100%; margin: 0 auto; padding: 25px; background: #fff; border-radius: 10px; text-align: center;}
.cont07 .contact_ttl { font-size: 30px; font-weight: 600; line-height: 1.4;}
.cont07 img { margin-top: 10px;}
.cont07 .contact_time { margin-top: 10px; font-size: 18px; font-weight: 600;}
.cont07 .contact_btn { display: flex; justify-content: center; align-items: center; width: 300px; height: 50px; margin: 30px auto 0; background: #E0162C; color: #fff; font-size: 16px; font-weight: 600; line-height: 1; border-radius: 100px; text-decoration: none; transition: all .3s;}
.cont07 .contact_btn:hover { opacity: .7;}





@media screen and (max-width:1000px) {
    .campaign .cont_inr { padding: 80px 5vw; box-sizing: border-box;}
    .cont01 ul li { width: calc((100% - 60px)/4); margin-right: 20px;}
    .cont01 ul li a { font-size: 16px;}
}

@media screen and (max-width:960px) {
    .campaign .cont_inr { padding: 60px 20px;}
    .campaign h3 span { font-size: 30px;}

    .cont01 ul { flex-wrap: wrap; gap: 15px;}
    .cont01 ul li { width: calc((100% - 15px)/2); margin-right: 0;}
    .cont01 dt { margin-top: 70px; padding: 40px 24px 24px;}
    .cont01 dt p { font-size: 20px;}
    .cont01 dt p span { width: 100px; height: 36px; font-size: 16px;}
    .cont01 dd p img { width: 100%;}

    .cont02 ul li img { width: 100%;}

    .cont04 ul li { padding: 30px 16px;}
    .cont04 ul li p { font-size: 18px;}
    .cont04 ul li > .inr { width: 70%;}
    .cont04 ul li:last-of-type > .inr { width: 50%;}

    .cont05 dl { padding: 30px 20px;}
    .cont05 dl dt ul { flex-direction: column; gap: 24px;}
    .cont05 dl dt ul li:first-of-type { width: 100%; max-width: 500px; margin: 0 auto;}
    .cont05 dl dt ul li:last-of-type { width: 100%;}
    .cont05 dl dd { padding: 20px;}
    .cont05 dl dd ul { flex-wrap: wrap; justify-content: center; gap: 20px;}
    .cont05 dl dd ul li { width: calc((100% - 40px)/3); margin-right: 0;}
}

@media screen and (max-width:600px) {
    .campaign section { scroll-margin-top: 60px;}
    .campaign .cont_inr { padding: 40px 5vw;}
    .campaign h3 { margin-bottom: 30px;}
    .campaign h3 span { font-size: 24px;}
    .campaign .fixed_btn { top: auto; bottom: 0; width: 100%;}
    .campaign .fixed_btn a { display: flex; justify-content: center; align-items: center; writing-mode: inherit; padding: 10px;}

    .cont01 ul li a { height: 50px; font-size: 14px;}
    .cont01 ul li a img { right: 12px;}
    .cont01 dt { margin-top: 50px; padding: 50px 5vw 30px;}
    .cont01 dt h2 { top: -24px; width: 80%; text-align: center;}
    .cont01 dt p { display: block; text-align: center; gap: 6px 10px; font-size: 20px; line-height: 1.4;}
    .cont01 dt p + p { margin-top: 30px; border-top: 1px solid #d1d1d1; padding-top: 30px;}
    .cont01 dt p img { margin: 0 auto 10px auto; width: 120px;}
    .cont01 dt p span { width: 200px; height: 40px; margin: 20px auto 0 auto; font-size: 20px;}
    .cont01 dd { margin-top: 30px;}
    .cont01 dd a { width: 100%; height: 64px; font-size: 20px;}
    .cont01 dd span { display: block; text-align: left; font-size: 12px;}

    .cont02 ul { flex-direction: column;}
    .cont02 ul li { width: 100%; margin-right: 0;}
    .cont02 p { font-size: 12px;}
    .cont02 p span { font-size: 12px;}

    .cont03 > .cont_inr > p { font-size: 18px; margin-bottom: 24px;}
    .cont03 > .cont_inr > span { font-size: 12px;}
    .cont03 > .cont_inr > ul { flex-direction: column; gap: 20px;}
    .cont03 > .cont_inr > ul > li { width: 100%; margin-right: 0; padding: 20px 16px;}
    .cont03 > .cont_inr > ul > li h4 { font-size: 20px;}
    .cont03 > .cont_inr > ul > li > .number > ul { width: 100%; justify-content: center;}
    .cont03 > .cont_inr > ul > li > .number > ul > li > p { font-size: 14px;}
    .cont03 a { width: 220px; height: 46px; font-size: 16px;}

    .cont04 ul { flex-direction: column; gap: 40px;}
    .cont04 ul li { width: 100%; margin-right: 0; padding: 30px 20px 20px;}
    .cont04 ul li p { min-height: 0; margin-bottom: 10px;}
    .cont04 .btn_area a { width: 100%; height: 64px; font-size: 20px; margin-top: 30px;}
    .cont04 .btn_area span { display: block; text-align: left; font-size: 12px;}

    .cont05 dl { padding: 20px 16px;}
    .cont05 dl dt ul li p { font-size: 14px;}
    .cont05 dl dd { margin-top: 30px; padding: 20px 16px;}
    .cont05 dl dd h5 { width: 120px; height: 40px; font-size: 20px;}
    .cont05 dl dd ul { gap: 12px;}
    .cont05 dl dd ul li { width: calc((100% - 12px)/2);}
    .cont05 dl dd ul li p { font-size: 14px;}

    .cont06 .rule { padding: 16px; font-size: 13px;}

    .cont07 .contact_box { padding: 30px 16px;}
    .cont07 .contact_ttl { font-size: 22px;}
    .cont07 .contact_tel { gap: 8px;}
    .cont07 img { width: 100%;}
    .cont07 .contact_tel img { width: 38px;}
    .cont07 .contact_num { font-size: 36px;}
    .cont07 .contact_num rt { font-size: 11px; letter-spacing: 0.1em; padding-bottom: 4px;}
    .cont07 .contact_time { font-size: 14px;}
    .cont07 .contact_btn { width: 100%; height: 60px; font-size: 16px; margin-top: 30px;}
}

@media screen and (max-width:420px) {
    .campaign h3 span { font-size: 22px;}
    .cont01 ul li a { height: 46px; font-size: 13px;}
    .cont01 ul li a img { right: 10px;}
    .cont01 dt p { font-size: 18px;}
    .cont01 dd a { height: 56px; font-size: 18px;}
    .cont03 > .cont_inr > p { font-size: 14px;}
    .cont03 > .cont_inr > ul > li dl dt p { font-size: 12px;}
    .cont04 .btn_area a { height: 56px; font-size: 18px;}
    .cont07 .contact_num { font-size: 30px;}
    .cont07 .contact_tel img { width: 32px;}
    .cont07 .contact_time { font-size: 13px;}
}