@charset "Shift_JIS";

/* Default Reset & Base Styles
Version:  Jan. 1st, 2022 */

/* ==============================
    Reset
============================== */
abbr, address, article, aside, audio, b, blockquote, body, canvas, caption, cite, code, dd, del, details, dfn, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, p, pre, q, samp, section, small, span, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, ul, var, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
    line-height: 1.5em
}
body {
    line-height: 1
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block
}
nav ul {
    list-style: none
}
blockquote, q {
    quotes: none
}
blockquote:after, blockquote:before, q:after, q:before {
    content: '';
    content: none
}
a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}
ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none
}
mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold
}
del {
    text-decoration: line-through
}
abbr[title], dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}
table {
    border-collapse: collapse;
    border-spacing: 0
}
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0
}
input, select {
    vertical-align: middle
}
*, :after, :before {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    color: #555555;
}
html {
    font-size: 62.5%;
    -webkit-text-size-adjust: 100%;
}
body {
    font-size: 1.4em;
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "YuGothic", "Meiryo", sans-serif;
    font-weight: 500;
    -webkit-font-feature-settings: "palt" 1;
    font-feature-settings: "palt" 1;
    letter-spacing: 0.05em;
    background: url(../img/bg_pattern-base_01.jpg) 0 0;
    width: 100%;
    position: relative;
    overflow-x: hidden;
}
@media (-ms-high-contrast:none) {
    body {
        font-family: "Meiryo", "Kozuka Gothic Pro", sans-serif;
    }
}
body.active {
    overflow-y: hidden;
}
input {
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "YuGothic", "Meiryo", sans-serif;
}
input:focus {
    outline: none;
}
p {
    line-height: 1.5em;
    font-size: 1.6rem;
    letter-spacing: 0.1rem;
}
img {
    vertical-align: bottom;
}
@media screen and (max-width:767px) {
    img {
        max-width: 100%;
        height: auto;
        display: block;
      }
}
@media screen and (max-width:767px) {
    input[type=text], select {
        -webkit-appearance: none;
        font-size: 1.6rem;
    }
    input[type=checkbox] {
        -webkit-appearance: checkbox;
    }
}
@media screen and (max-width:813px) {
    p {
        font-size: 1.4rem;
    }
}
a {
    text-decoration: none;
}
a:hover {
    color: #555555;
    text-decoration: none;
}
ol, ul {
    list-style: none;
}
address {
    font-style: initial;
    display: inline;
}

/* ==============================
    ***
============================== */
.view-pc {
    display: block;
}
.view-sp {
    display: none;
}
@media screen and (max-width:767px) {
	.view-pc {
		display: none;
	}
	.view-sp {
		display: block;
	}
}

.underline {
    background: linear-gradient(to right, #FFFF00, #FFFF00) no-repeat;
    background-size: 100% 50%;
    background-position: bottom;
}
.underline--02 {
    background: linear-gradient(to right, #f8d9dc, #f8d9dc) no-repeat;
    background-size: 100% 50%;
    background-position: bottom;
}

/* tel link off */
@media (min-width: 751px) {
    a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    }
}
/* ==============================
    layout
============================== */
.page-wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    -ms-overflow-style: none;
}
.main-content {
    flex: 1 auto;
    overflow-x: hidden;
    width: 660px;
    margin: 2rem auto 0;
}
.header-top__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 660px;
    min-height: 6.2rem;
    margin: 0 auto;
}
.header__logo-wrap {
    width: 660px;
    margin: 2rem auto 0;
}
.footer__inner {
    width: 660px;
    margin: 0 auto;
}
@media screen and (max-width:767px) {
    .main-content {
        width: calc(100% - 20px);
    }
    .header-top__inner {
        width: calc(100% - 20px);
    }
    .header__logo-wrap {
        width: calc(100% - 20px);
    }
    .footer__inner {
        width: calc(100% - 20px);
    }
}

/* ==============================
    
============================== */
/* header */
.header-top {
    background: #228ad9;
}
.header-top__image {
    padding: 1rem 0;
}
.header-top__image__image {
    height: 4.2rem;
    width: auto;
}
@media screen and (max-width:767px) {
    .header-top__image__image {
        height: calc(42 / 375 * 100vw);
    }
}

.header-top__title {
    padding-left: 1.5rem;
    color: #ffffff;
    font-size: 2.4rem;
    font-weight: 700;
}
@media screen and (max-width:767px) {
    .header-top__title {
        padding-left: calc(15 / 375 * 100vw);
        font-size: calc(20 / 375 * 100vw);
    }
}

@media screen and (max-width:767px) {
    .header__logo {
        width: 65vw;
    }
}

/* main-content */
.main-content__title {
    padding: 0.4rem 0 0.2rem;
    background: #228ad9;
    border-radius: calc(12px - 2px) calc(12px - 2px) 0 0;
    color: #ffffff;
    font-size: 3.2rem;
    font-weight: 700;
    text-align: center;
}
@media screen and (max-width:767px) {
    .main-content__title {
        font-size: calc(20 / 375 * 100vw);
        letter-spacing: 0;
    }
}

/* main-content dtail */
.detail {
    padding: 2.7rem calc(9rem - 4px) 5rem;
    border-right: 2px solid #228ad9;
    border-bottom: 2px solid #228ad9;
    border-left: 2px solid #228ad9;
    border-radius: 0 0 calc(12px - 2px) calc(12px - 2px);
}
.detail__text {
    font-size: 1.8rem;
    font-weight: 700;   
    text-align: center;
}
@media screen and (max-width:767px) {
    .detail {
        padding: 2.7rem 1.5rem 5rem;
    }
    .detail__text {
        font-size: 1.65rem;
    }
}

/* main-content period */
.period {
    text-align: center;
}

.period__title {
    color: #228ad9;
    font-size: 1.8rem;
    font-weight: 700; 
}
@media screen and (max-width:767px) {
    .period__title {
        font-size: calc(16 / 375 * 100vw);
    }
}

.period__note {
    font-size: 1.5rem;
}
.text-emphasis {
    color: #e50012;
    font-weight: bold;
}

.period__title-inner {
    color: #228ad9;
    position: relative;
}

.period__title-inner::before,
.period__title-inner::after {
    content: "";
    display: block;
    position: absolute;
    top: 0.1rem; 
    width: 1px;
    height: 1.8rem;
    background: #228ad9;
}
.period__title-inner::before {
    left: -1.2rem;
    transform: rotate(-20deg);
}
.period__title-inner::after {
    right: -1.2rem;
    transform: rotate(20deg);
}
@media screen and (max-width:767px) {
    .period__title-inner::before,
    .period__title-inner::after {
        height: calc(14 / 375 * 100vw);
        top: calc(2 / 375 * 100vw);
    }
}

.period__period {
    display: inline;
    padding: 0 0.5rem;
    color: #228ad9;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.4rem;
    font-weight: 900;
    background-image: repeating-linear-gradient(-60deg, #FFFF00, #FFFF00 2px, transparent 2px, transparent 4px);
    background-position: center bottom;
    background-repeat: repeat-x;
    background-size: auto 40%;
}
.period__period .text-small {
    margin-left: -0.2rem;
    color: #228ad9;
    font-size: 0.8em;
}
@media screen and (max-width:767px) {
    .period__period {
        font-size: calc(21 / 375 * 100vw);
    }

}
/* main-content privilege */
.privilege {
    margin-top: 2rem;
}
.privilege-dl__box{
    display: flex;
    align-items: center;
}
.privilege-dl__box:nth-child(n+2) {
    margin-top: 3.2rem;
}
@media screen and (max-width:767px) {
    .privilege {
        margin-top: 2rem;
    }
    .privilege-dl__box{
        flex-direction: column;
    }
}
.privilege-dl__title {
   flex-basis: 6.5rem;
   text-align: center;
}
@media screen and (max-width:767px) {
    .privilege-dl__title {
        flex-basis: auto;
    }
}

.privilege__num {
    display: inline-block;
    padding: 0 0.8rem;
    border: 1px solid #e50012;
    color: #e50012;
    font-size: 1.8rem;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    letter-spacing: 0;
}
@media screen and (max-width:767px) {
    .privilege__num {
        padding: 0 calc(8 / 375 * 100vw);
    }
    .privilege__num {
        font-size: calc(16 / 375 * 100vw);
    }
}
.privilege-dl__desc{
    flex-basis: calc(100% - 6.5rem - 1.6rem);
    margin-left: 1.6rem;
}
.privilege-dl__detail{
    color: #e50012;
    font-size: 3.2rem;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 900;
    letter-spacing: 0;
}
.privilege-dl__detail .text-end-sentence{
    display: block;
    color: #e50012;
    margin-top: 1rem;
}
.privilege-dl__detail .text-large {
    color: #e50012;
    font-size: 6.4rem;
    line-height: 0.8;
    vertical-align: -0.025em;
    letter-spacing: -0.02em;
}
.privilege-dl__detail .text-small {
    color: #e50012;
    display: inline;
    font-size: 2rem;
}
@media screen and (max-width:767px) {
    .privilege-dl__desc{
        margin-top: 0.8rem;
        margin-left: 0;
    }
    .privilege-dl__detail{
        font-size: calc(24 / 375 * 100vw);
        text-align: center;
    }
    .privilege-dl__detail .text-large {
        font-size: calc(52 / 375 * 100vw);
    }
    .privilege-dl__detail .text-small {
        font-size: calc(16 / 375 * 100vw);
    }
}

.privilege-dl__note{
    margin-top: 0.6rem;
    font-size: 1.5rem;
}

/* main-content note */
.note{
    margin-top: 5rem;
}
.note-list__item {
    position: relative;
    letter-spacing: 0;
    margin-left: 1em;
    text-indent: -1.25em;
}
.note-list__item::before {
    content: "";
    margin-right: 0.25em;
}
.note-list__item:nth-child(n+2){
    margin-top: 0.5rem;
}
.note-list__item .text-emphasis {
    color: #e50012;
    font-weight: bold;
}
.note-list__item:nth-child(1)::before {
    color: #e50012;
    font-weight: bold;
}

/* main-content estimate */
.estimate{
    margin-top: 6rem;
}
.estimate__text{
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.75;
}
@media screen and (max-width:767px) {
    .estimate__text{
        font-size: 1.65rem;
    }
}

.estimate-dl{
    margin-top: 5rem;
}
.estimate-dl__box{
    display: flex;
    align-items: center;
}
.estimate-dl__box:nth-child(n+2) {
    margin-top: 3rem;
}
@media screen and (max-width:767px) {
    .estimate-dl__box {
        flex-direction: column;
    }
}

.estimate-dl__title{
    flex-basis: 16.5rem;
    font-size: 1.6rem;
    font-weight: 700;
}
@media screen and (max-width:767px) {
    .estimate-dl__title {
        flex-basis: 100%;
        width: 100%;
        text-align: center;
    }
}

.estimate-dl__desc {
    flex-basis: 30rem;
    margin-left: 1.5rem;
}
@media screen and (max-width:767px) {
    .estimate-dl__desc {
        flex-basis: 100%;
        width: 100%;
        margin-left: 0;
        text-align: center;
    }
    .estimate-dl__box:nth-child(1) .estimate-dl__desc {
        margin-top: 0.8rem;
    }
}

.estimate-dl__btn {
    position: relative;
    width: 100%;
    height: 5.6rem;
    border: solid 1px #fd319b;
    background: #fd319b;
    color: #ffffff;
    font-size: 1.8rem;
    font-weight: 700;
    vertical-align: -0.15rem;
    text-align: center;
    line-height: 5.6rem;
    -webkit-transition: 0.3s ease all;
    -o-transition: 0.3s ease all;
    transition: 0.3s ease all;
}
.estimate-dl__btn::after {
    content: "";
    position: absolute;
    top: calc(50% - 0.375rem);
    transform: translateY(-50%);
    right: 2rem;
    width: 0.75rem;
    height: 0.75rem;
    border-top: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
    transform: rotate(45deg);
}
.estimate-dl__btn__link {
    display: block;
    color: #ffffff;
}
.estimate-dl__btn:hover {
    background: #fff;
}
.estimate-dl__btn:hover .estimate-dl__btn__link {
    color: #fd319b;
}
.estimate-dl__btn:hover::after {
    border-top: 2px solid #fd319b;
    border-right: 2px solid #fd319b;
}
@media screen and (max-width:767px) {
    .estimate-dl__btn {
        margin: 0 auto;
        width: calc(476 / 667 * 100vw);
    }
}

@media screen and (max-width:414px) {
    .estimate-dl__btn {
        width: 100%;
    }
}

.estimate-dl__tel-num {
    position: relative;
    font-size: 3.6rem;
    font-weight: 900;
    font-family: 'Heebo', sans-serif;
    letter-spacing: 0;
    padding-left: 5.2rem;
}
.estimate-dl__tel-num::before {
    content: "";
    position: absolute;
    display: block;
    background: url(../img/icon_free_official.svg) 0 0;
    margin-right: 0.5rem;
    width: 4.7rem;
    height: 2.689rem;
    top: 50%;
    left: 0;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}
@media screen and (max-width:767px) {
    .estimate-dl__tel-num {
        display: inline;
        font-size: calc(36 / 375 * 100vw);
        letter-spacing: -0.01em;
    }
}

.estimate-dl__tel__note {
    margin-top: -0.8rem;
    font-size: 1.4rem;
    letter-spacing: -0.01rem;
}
@media screen and (max-width:767px) {
    .estimate-dl__tel__note {
        margin-top: calc(-4 / 375 * 100vw);
        font-size: calc(15 / 375 * 100vw);
    }
}

/* footer */
.footer {
    margin-top: 5rem;
    padding: 1.8rem 0;
    background: #228ad9;
}
.copyright {
    text-align: center; 
}
.copyright small {
    color: #ffffff;
    font-size: 1.4rem;
    font-family: 'Hind', sans-serif;
    font-weight: 400;
}
@media screen and (max-width:767px) {
    .copyright small {
        font-size: 1.2rem;
        letter-spacing: 0;
    }
}

/* ==============================
    other
============================== */
.unique-box {
    display: flex;
    justify-content: space-between;
    margin: 2.4rem auto 0;
    padding: 1rem 1.2rem;
    width: 42rem;
    border: 1px solid #555555;
}
.unique-desc {
    margin-left: 1rem;
}
.unique-desc__title {
    font-size: 1.6rem;
    font-weight: 700;
}
.unique-desc__text {
    font-size: 1.4rem;
    line-height: 1.4;
    letter-spacing: 0.05rem;
}

@media screen and (max-width:767px) {
    .unique-box {
        width: 90%;
    }
    .unique-image {
        min-width: 20%;
    }
    .unique-desc__title {
        font-size: 1.4rem;
    }
    .unique-desc__text {
        font-size: 1.2rem;
    }
}