@charset "utf-8";

/*==================================================
reset
================================================== */
body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, ul, ol, li {
    margin: 0;
    padding: 0;
}

ul[role="list"], ol[role="list"] {
    list-style: none
}

html:focus-within {
    scroll-behavior: smooth
}

a:not([class]) {
    text-decoration-skip-ink: auto
}

img, picture {
    max-width: 100%;
    display: block
}

input, button, textarea, select {
    font: inherit
}

html {
    block-size: 100%;
    -webkit-text-size-adjust: none
}

@media (prefers-reduced-motion:no-preference) {
    html:focus-within {
        scroll-behavior: smooth
    }
}

body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeSpeed;
    min-block-size: 100%
}



/*==================================================
icon
================================================== */
:root {
    --icon-tel: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2033%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M23.479%2C19.193c-2.134%2C2.131-2.134%2C4.264-4.269%2C4.264s-4.269-2.133-6.403-4.264c-2.135-2.133-4.269-4.266-4.269-6.399s2.134-2.132%2C4.269-4.265C14.941%2C6.398%2C8.538%2C0%2C6.403%2C0S0%2C6.398%2C0%2C6.398c0%2C4.265%2C4.385%2C12.911%2C8.538%2C17.06%2C4.153%2C4.148%2C12.807%2C8.53%2C17.075%2C8.53%2C0%2C0%2C6.404-4.265%2C6.404-6.397s-6.404-8.53-8.538-6.396Z%22%2F%3E%3C%2Fsvg%3E");

    --icon-contact: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2033%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M20%2C25h3l10-10-3-3-10%2C10v3Z%22%2F%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M26%2C26l-2%2C2H4v-3h13v-3H4v-3h14l3-3H4v-3h17v3l5-5V2.999s-.037-2.999-3-2.999H7L0%2C7l.007%2C22S.007%2C32%2C2.97%2C32h20.03c2%2C0%2C3-3%2C3-3v-3ZM10%2C2.999v6.001H4l6-6.001Z%22%2F%3E%3C%2Fsvg%3E");

    --icon-pagetop: url("data:image/svg+xml,%3Csvg%20width%3D%22108%22%20height%3D%22108%22%20xmlns%3D%22http://www.w3.org/2000/svg%22%3E%3Cpath%20fill%3D%22currentColor%22%20opacity%3D%220.5%22%20d%3D%22M100%2C108H8c-4%2C0-8-4-8-8V8c0-4%2C4-8%2C8-8h92c4%2C0%2C8%2C4%2C8%2C8v92C108%2C104%2C104%2C108%2C100%2C108z%22/%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M95.2%2C72.2H84.5c-0.1%2C1.1-0.1%2C2.2-0.3%2C3.2h6.9h0.4l1.2%2C0.3c0%2C0.1%2C0%2C0.4-0.1%2C0.5c-0.4%2C6.2-0.8%2C8.6-1.8%2C9.5c-0.7%2C0.7-1.3%2C0.8-3.4%2C0.8c-0.7%2C0-1.5%2C0-2.4%2C0c0-0.5-0.3-1.5-0.7-2c1.5%2C0.1%2C3%2C0.1%2C3.6%2C0.1c0.5%2C0%2C0.8%2C0%2C1.1-0.3c0.5-0.5%2C0.9-2.6%2C1.3-7h-6.6c-0.8%2C3.6-2.4%2C7.2-6.9%2C9.3c-0.3-0.5-0.9-1.2-1.5-1.6c5.9-2.7%2C6.5-8%2C6.8-12.8h-6.3v-2h8.5v-3.6l2.6%2C0.1c0%2C0.1-0.1%2C0.3-0.5%2C0.4v3.1h8.8C95.2%2C70.2%2C95.2%2C72.2%2C95.2%2C72.2z%22/%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M64.6%2C83.4H74v2H54.5v-2h8V67l2.7%2C0.1c0%2C0.1-0.1%2C0.3-0.5%2C0.4v5.9h7.8v2h-7.8V83.4z%22/%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M43.9%2C83.8h8.8v1.9H33.3v-1.9h8.5v-3.6h-6.6v-1.9h6.6v-2.8l2.6%2C0.1c0%2C0.1-0.1%2C0.3-0.5%2C0.4v2.3h6.9v1.9h-6.9V83.8z%20M50.6%2C76.5c-0.4-0.4-0.8-0.9-1.4-1.5c-5.3%2C0.3-10.7%2C0.4-14.2%2C0.4c0%2C0.1-0.3%2C0.3-0.4%2C0.3L34%2C73.4c0.9%2C0%2C2.2%2C0%2C3.4%2C0c0.7-1.1%2C1.3-2.6%2C1.9-3.8h-5.7v-1.9h18.5v1.9h-9.9c-0.1%2C0.1-0.3%2C0.1-0.5%2C0.1c-0.5%2C1.1-1.2%2C2.4-1.9%2C3.5c2.3%2C0%2C5-0.1%2C7.6-0.1c-0.8-0.8-1.8-1.5-2.6-2.2l1.6-1.1c2%2C1.5%2C4.7%2C3.6%2C5.9%2C5.1L50.6%2C76.5z%22/%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M12.8%2C67.9h17.8v18.5h-2.2v-1.5H14.8v1.5h-2V67.9z%20M14.8%2C83h13.6V69.9H14.8V83zM17.5%2C72.8h8.1v7.3h-8.1C17.5%2C80.1%2C17.5%2C72.8%2C17.5%2C72.8z%20M23.9%2C78.4v-3.9h-4.5v3.9H23.9z%22/%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2254%2C22%2034%2C42%2038%2C46%2054%2C30%2070%2C46%2074%2C42%20%22/%3E%3C/svg%3E");
}


/*==================================================
sp
================================================== */
.pc_item {
    display: none;
}


/* ========================================================================
[sp]header
========================================================================= */
.header {
    height: 17.3333333333333vw;
    display: flex;
    align-items: center;
    border-bottom: 0.2666666666667vw #dddddd solid;
}

.header .logo a {
    margin: 0 0 0 4.9333333333333vw;
    display: block;
    width: 20.4vw;
    height: 12vw;
    background: url(/index_files/sun_logo.svg) no-repeat center center;
    background-size: 20.4vw auto;
    text-indent: -9999px;
    white-space: nowrap;
    overflow: hidden;
}

/* ========================================================================
[sp]contact
========================================================================= */
.contact {
    padding: 7.4666666666667vw 0 6vw;
    position: relative;
}

.contact::before {
    content: '';
    width: 100vw;
    height: 1.3333333333333vw;
    background: linear-gradient(to bottom, #ededed, #ffffff);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}

.contact .contact_info {
    margin: 0 auto;
    padding: 0 8vw 0;
    width: 84vw;
    border-radius: 1.0666666666667vw;
    background: #fff;
}

.contact .contact_info dl {
    margin: 0 auto;
    padding: 0 0 6.6666666666667vw;
    width: 68vw;
}

.contact .contact_info dl+dl {
    border-top: 0.2666666666667vw #dddddd solid;
    padding: 5.8666666666667vw 0 0;
}

.contact .contact_info dt {
    margin: 0 0 4.9333333333333vw;
    font-size: 5.3333333333333vw;
    font-weight: bold;
    position: relative;
}

.contact .contact_info .tell dt {
    padding: 0;
    text-align: center;
}

.contact .contact_info .form dt {
    padding: 0;
    text-align: center;
}


.contact .btn_tell {
    margin: 0 auto 6.6666666666667vw;
    padding: 0 0 0 16.4vw;
    width: 68vw;
    height: 14.6666666666667vw;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    font-family: Arial, sans-serif;
    font-size: 6.6666666666667vw;
    font-weight: bold;
    white-space: nowrap;
    color: #222;
    text-decoration: none;
    background: linear-gradient(180deg, #fff, #f4f4f4);
    border: 0.2666666666667vw #dddddd solid;
    border-radius: 7.333333333333333vw;
    position: relative;
}

.contact .btn_tell::before {
    content: '';
    width: 6.4vw;
    height: 6.4vw;
    background-color: #222222;
    -webkit-mask: var(--icon-tel);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    position: absolute;
    top: calc(50% - 3.2vw);
    left: 6.6666666666667vw;
}


.contact .btn_tell .hyphen {
    margin: 0 0.9333333333333vw;
    transform: scaleX(1.75) translate(0, -0.333333333333333vw);
}

.contact .note {
    font-size: 3.6vw;
    font-weight: bold;
    display: flex;
    justify-content: center;

}

.contact .note .label {
    white-space: nowrap;
    margin: 0;
    padding: 0;
}

.contact .note .label .colon {
    margin: 0 1.8666666666667vw;
}

.contact .note .text .number {
    margin-left: 2.6666666666667vw;
    font-family: "Avenir Next Condensed";
}

.contact .btn_contact {
    margin: 0 auto;
    padding: 0 0 0 25.066666666666667vw;
    width: 68vw;
    height: 13.3333333333333vw;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-size: 4.4vw;
    font-weight: bold;
    color: #222;
    text-decoration: none;
    background: linear-gradient(180deg, #fff, #f4f4f4);
    border: 0.2666666666667vw #dddddd solid;
    border-radius: 1.3333333333333vw;
    position: relative;
}

.contact .btn_contact::before {
    content: '';
    width: 6.6666666666667vw;
    height: 6.5333333333333vw;
    background-color: #222222;
    -webkit-mask: var(--icon-contact);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    position: absolute;
    top: calc(50% - 3.266666666666666);
    left: 14.133333333333333vw;
}

/* ========================================================================
[sp]footer
========================================================================= */
.footer {
    padding-bottom: 4vw;
}

.footer .footer_label {
    display: flex;
    flex-direction: column;
}

.footer h2 {
    margin: 0 auto 6.4vw;
    width: 20.4vw;
    height: 12vw;
    background: url(/index_files/sun_logo.svg) no-repeat center center;
    background-size: 20.4vw auto;
    text-indent: -9999px;
    white-space: nowrap;
    overflow: hidden;
    order: 2;
}

.footer .sns {
    margin-bottom: 9.3333333333333vw;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 10.6666666666667vw 0 6.6666666666667vw;
    order: 1;
}

.footer .sns p {
    margin-right: 4.6666666666667vw;
    font-size: 4.2666666666667vw;
    font-weight: bold;
    color: #222222;
}

.footer .sns_list {
    list-style-type: none;
    display: flex;
    align-items: center;
}

.footer .sns_list a {
    text-indent: -99999px;
    display: block;
}

.footer .sns_list .youtube a {
    margin-right: 2vw;
    width: 8.6666666666667vw;
    height: 6vw;
    background: url(/common/assets/img/icon_youtube.svg) no-repeat center center;
    background-size: 8.6666666666667vw auto;
}

.footer .sns_list .facebook a {
    margin-right: 2vw;
    width: 8vw;
    height: 8vw;
    background: url(/common/assets/img/icon_fb.svg) no-repeat center center;
    background-size: 8vw auto;
}

.footer .sns_list .instagram a {
    margin-right: 2vw;
    width: 8vw;
    height: 8vw;
    background: url(/common/assets/img/icon_instagram.svg) no-repeat center center;
    background-size: 8vw auto;
}

.footer .sns_list .line a {
    width: 8vw;
    height: 8vw;
    background: url(/common/assets/img/icon_line.svg) no-repeat center center;
    background-size: 8vw auto;
}

.footer .copyright {
    font-size: 2.6666666666667vw;
    vertical-align: middle;
    line-height: 1;
    text-align: center;
    color: #444;
}

/* ========================================================================
[sp]page_top
========================================================================= */
.page_top {
    width: 11.7vw;
    height: 11.7vw;
    background: url(/common/assets/img/page_top.svg) no-repeat center center;
    background-size: 11.7vw auto;
    position: fixed;
    bottom: 4.2vw;
    right: 2.6666666666667vw;
    z-index: 100;
    text-indent: -9999px;
    white-space: nowrap;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition-normal);
    cursor: pointer;
    border: none;
}

.page_top.active {
    opacity: 1;
    visibility: visible;
}

@media screen and (orientation: landscape) and (max-width: 767px) {
    .page_top {
        width: 11.7vw;
        height: 11.7vw;
        background: url(/common/assets/img/page_top.svg) no-repeat center center;
        background-size: 11.7vw auto;
        bottom: 4.2vw;
        right: 2.6666666666667vw;
    }
}

/*==================================================
Limit box-sizing to specific sections
================================================== */
.lp_contents *,
.lp_contents *::before,
.lp_contents *::after {
    box-sizing: border-box;
}

/*==================================================
font-setting
================================================== */
:root {
    -webkit-box-direction: normal;
    -webkit-font-smoothing: antialiased;
    font-family: "微軟正黑體", "5FAE8EDF6B639ED19AD4", "Microsoft JhengHei", "PingFang TC", "Hiragino Sans CNS", sans-serif;
    color: #222222;
}

:root {
    --color-main: #222222;
    --color-link: #0072ef;
}


/*==================================================
sp
================================================== */
.pc_item {
    display: none;
}


/* ========================================================================
[sp]main
========================================================================= */
.lp_contents .main {
    margin: 4vw 0;
}

.lp_contents .lp_area {
    margin: 0 auto;
    width: 92vw;
    height: 120vw;
    background: #f8f8f8;
    display: flex;
    align-items: center;
    justify-content: center;
}


.lp_contents .lp_area p {
    font-size: 6.4vw;
    font-weight: bold;
    color: #222;
}





/*==================================================
pc
================================================== */
@media print, screen and (min-width:768px) {

    /* ========================================================================
    [pc]header
    ========================================================================= */
    .header {
        height: 110px;
        display: flex;
        align-items: center;
        border-bottom: none;
        position: relative;
    }

    .header::after {
        content: '';
        width: 100%;
        height: 6px;
        background: linear-gradient(to bottom, #ededed, #ffffff);
        position: absolute;
        bottom: -6px;
        left: 0;
        z-index: 1;
    }

    .header .inner {
        margin: 0 auto;
        width: 1160px;
    }

    .header .logo a {
        margin: 0 0 0 60px;
        display: block;
        width: 121px;
        height: 71px;
        background: url(/index_files/sun_logo.svg) no-repeat center center;
        background-size: 121px auto;
        text-indent: -9999px;
        white-space: nowrap;
        overflow: hidden;
    }


    /* ========================================================================
    [pc]contact
    ========================================================================= */
    .contact {
        margin-bottom: 50px;
        padding: 50px 0 0;
    }

    .contact::before {
        content: '';
        width: 100%;
        height: 6px;
        background: linear-gradient(to bottom, #ededed, #ffffff);
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
    }

    .contact .contact_info {
        margin: 0 auto;
        padding: 0;
        width: 1040px;
        border-radius: 10px;
        background: #fff;
        display: flex;
        justify-content: flex-start;
    }

    .contact .contact_info dl {
        margin: 0 auto;
        padding: 0;
        width: 520px;
    }

    .contact .contact_info dl.tell {
        border-right: 1px #dddddd solid;
    }

    .contact .contact_info dl+dl {
        border-top: none;
        padding: 0;
    }

    .contact .contact_info dt {
        margin: 0;
        font-size: 24px;
        line-height: 1;
        font-weight: bold;
        position: relative;
    }

    .contact .contact_info .tell dt {
        margin: 0 0 25px 20px;
        padding: 0;
        text-align: center;
    }

    .contact .contact_info .form dt {
        margin: 0 0 40px 20px;
        padding: 0;
        text-align: center;
    }

    .contact .contact_info .tell dt::before {
        content: '';
        width: 32px;
        height: 32px;
        background-color: #222222;
        -webkit-mask: var(--icon-tel);
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        -webkit-mask-size: 100% 100%;
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center;
        position: absolute;
        top: -7px;
        left: 140px;
    }

    .contact .contact_info .form dt::before {
        content: '';
        width: 33px;
        height: 32px;
        background-color: #222222;
        -webkit-mask: var(--icon-contact);
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        -webkit-mask-size: 100% 100%;
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center;
        position: absolute;
        top: calc(50% - 16px);
        left: 140px;
    }

    .contact .btn_tell {
        margin: 0 0 20px;
        padding: 0;
        width: auto;
        height: auto;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: Arial, sans-serif;
        font-size: 46px;
        line-height: 1;
        font-weight: bold;
        color: #222;
        text-decoration: none;
        background: none;
        border: none;
        border-radius: 0;
        pointer-events: none;
    }

    .contact .btn_tell::before {
        display: none;
    }

    .contact .btn_tell .hyphen {
        margin: 0 6px;
        transform: scaleX(1.75) translate(0, -2.5px);
    }


    .contact .note {
        font-size: 17px;
        font-weight: bold;
        display: flex;
        justify-content: center;
    }

    .contact .note .label {
        white-space: nowrap;
    }

    .contact .note .label .colon {
        margin: 0 8px;
    }

    .contact .note .text .number {
        margin-left: 8px;
        font-family: "Avenir Next Condensed";
    }

    .contact .btn_contact {
        margin: 0 auto;
        padding: 0;
        width: 300px;
        height: 70px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 22px;
        font-weight: bold;
        color: #222;
        text-decoration: none;
        background: linear-gradient(180deg, #fff, #f4f4f4);
        border: 1px #dddddd solid;
        border-radius: 4px;
        transition: var(--transition-normal);
    }

    .contact .btn_contact:hover {
        background: linear-gradient(180deg, #f4f4f4, #fff);
    }

    .contact .btn_contact::before {
        display: none;
    }

    /* ========================================================================
    [pc]footer
    ========================================================================= */
    .footer {
        padding-bottom: 10px;
        width: 100%;
    }

    .footer .footer_label {
        margin: 0 auto;
        padding: 60px 0 0;
        width: 1160px;
        height: 130px;
        border-top: 1px #dddddd solid;
        display: flex;
        justify-content: flex-end;
        flex-direction: row;
        position: relative;
    }

    .footer h2 {
        margin: 0;
        width: 120px;
        height: 70px;
        background: url(/index_files/sun_logo.svg) no-repeat center center;
        background-size: 120px auto;
        text-indent: -9999px;
        white-space: nowrap;
        overflow: hidden;
        order: 1;
        position: absolute;
        top: calc(50% - 35px);
        left: calc(50% - 60px);
    }

    .footer .sns {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0;
        margin: 0;
        border-bottom: none;
        order: 2;
        height: 30px;
    }

    .footer .sns p {
        margin: 0 18px 0 0;
        font-size: 15px;
        color: #222222;
    }

    .footer .sns_list {
        list-style-type: none;
        display: flex;
        align-items: center;
    }

    .footer .sns_list a {
        text-indent: -99999px;
        display: block;
    }

    .footer .sns_list .youtube a {
        margin-right: 15px;
        width: 32px;
        height: 22px;
        background: url(/common/assets/img/icon_youtube.svg) no-repeat center center;
        background-size: 32px auto;
    }

    .footer .sns_list .youtube a:hover {
        background: url(/common/assets/img/icon_youtube_on.svg) no-repeat center center;
        background-size: 32px auto;
    }

    .footer .sns_list .facebook a {
        margin-right: 15px;
        width: 30px;
        height: 30px;
        background: url(/common/assets/img/icon_fb.svg) no-repeat center center;
        background-size: 30px auto;
    }

    .footer .sns_list .facebook a:hover {
        background: url(/common/assets/img/icon_fb_on.svg) no-repeat center center;
        background-size: 30px auto;
    }

    .footer .sns_list .instagram a {
        margin-right: 15px;
        width: 30px;
        height: 30px;
        background: url(/common/assets/img/icon_instagram.svg) no-repeat center center;
        background-size: 30px auto;
    }

    .footer .sns_list .instagram a:hover {
        background: url(/common/assets/img/icon_instagram_on.svg) no-repeat center center;
        background-size: 30px auto;
    }

    .footer .sns_list .line a {
        width: 30px;
        height: 30px;
        background: url(/common/assets/img/icon_line.svg) no-repeat center center;
        background-size: 30px auto;
    }

    .footer .sns_list .line a:hover {
        background: url(/common/assets/img/icon_line_on.svg) no-repeat center center;
        background-size: 30px auto;
    }

    .footer .copyright {
        margin: 0;
        font-size: 13px;
        vertical-align: middle;
        line-height: 1;
        text-align: center;
        color: #444;
    }


    /* ========================================================================
    [pc]page_top
    ========================================================================= */
    .page_top {
        width: 80px;
        height: 80px;
        background: url(/common/assets/img/page_top.svg) no-repeat center center;
        background-size: 80px auto;
        text-indent: -9999px;
        white-space: nowrap;
        overflow: hidden;
        position: fixed;
        bottom: 120px;
        right: auto;
        left: calc(50% + 500px);
        z-index: 100;
        opacity: 0;
        visibility: hidden;
        transition: var(--transition-normal);
        bottom: 10px;
        right: calc((100% - 1164px) / 2);
    }

    .page_top.active {
        opacity: 1;
        visibility: visible;
    }

    .page_top.bottom {
        bottom: 180px;
    }

    .pc_item {
        display: block;
    }

    .sp_item {
        display: none;
    }

    /* ========================================================================
    [pc]main
    ========================================================================= */
    .lp_contents .main {
        margin: 40px 0;
        min-width: 1160px;
    }

    .lp_contents .lp_area {
        margin: 0 auto;
        width: 1160px;
        height: 700px;
        background: #f8f8f8;
        display: flex;
        align-items: center;
        justify-content: center;
    }


    .lp_contents .lp_area p {
        font-size: 40px;
        font-weight: bold;
        color: #222;
    }


}
