.sp450 {
    display: none
}
.sp440 {
    display: none
}
@media screen and (min-width: 751px) {
    .sp {
        display: none !important
    }
    /* NAV */
    .hamburger {
        display: none;
    }
    nav {
        margin-bottom: 4.1797vh;
    }
    .nav_list > li {
        --color: var(--mcolor);
        margin-bottom: 1px;
    }
    .nav_list > li > a,
    .nav_list > li > .hook {
        position: relative;
        display: flex;
        align-items: center;
        position: relative;
        font-weight: 500;
        padding: 0.627vh 4.7022vh 0.9404vh;
        min-height: 8.7774vh;
        transition: none;
        border-top: 1px solid transparent;
        border-image: repeating-linear-gradient(to right, #B5B5B5 2px, transparent 4px, #B5B5B5 6px) 1;
        border-image-outset: 1px;
    }
    .nav_list > li:last-child > a,
    .nav_list > li:last-child > .hook {
        border-bottom: 1px solid transparent;
    }
    .nav_list .txt span {
        display: block;
        line-height: 1;
    }
    .nav_list .txt .en {
        font-family: var(--f-nunito);
        font-size: 1.4629vh;
        text-transform: uppercase;
        color: var(--color);
        position: relative;
        padding-left: 1.2857em;
        font-weight: bold;
        margin-bottom: 0.5714em;
        letter-spacing: -0.01em;
    }
    .nav_list .txt .en::before {
        content: "";
        position: absolute;
        width: 0.7143em;
        aspect-ratio: 1 / 1;
        height: auto;
        border-radius: 50%;
        top: calc(50% - 0.4286em);
        left: 0px;
        background: var(--color);
    }
    .nav_list .txt .ja {
        font-size: 1.8809vh;
        font-weight: bold;
    }
    .nav_list > li.parent {
        position: relative;
    }
    .nav_list > li.parent > .hook {
        cursor: default
    }
    .sub {
        position: absolute;
        z-index: 1;
        transition: all .3s;
        width: 100%;
        top: 1px;
        left: calc(100% + 5px);
        border-radius: var(--bdr-sm);
        border: 5px solid #fff;
        background: rgba(255, 255, 255, .88);
        padding: 0.627vh 1.0449vh;
    }
    .sub::before {
        content: "";
        position: absolute;
        width: 10px;
        height: calc(100% + 10px);
        top: -5px;
        right: 100%;
        background: transparent;
    }
    .sub ul li a {
        font-size: 1.6719vh;
        font-weight: 500;
        line-height: calc(21 / 16);
        width: 100%;
        display: flex;
        align-items: center;
        border-radius: inherit;
        padding: 1.0449vh;
    }
    .sub ul li a span {
        position: relative;
        padding-left: 1.4375em;
    }
    .sub ul li a span::before {
        content: "";
        position: absolute;
        width: 0.625em;
        aspect-ratio: 1 / 1;
        height: auto;
        border-radius: 50%;
        top: calc(50% - 0.3125em);
        left: 0px;
        background: var(--mcolor);
    }
    .sub ul li:not(:last-child) {
        padding-bottom: 0.5em;
        margin-bottom: 0.375em;
        border-bottom: 1px solid rgba(162, 162, 162, .88);
    }
    /* CUSTOM */
    .find_a, .find_out {
        cursor: pointer;
    }
    /* HOVER */
    .nav_list > li:hover > a,
    .nav_list > li:hover > .hook {
        --color: var(--yellow);
        background: var(--green);
        color: #fff;
    }
    .parent:not(:hover) .sub {
        display: none;
    }
    .parent:hover .sub {
        transform: translate(0, 0);
    }
    .sub a:hover {
        background-color: var(--green);
        color: #fff;
        text-decoration: none;
    }
    .sub a:hover span::before {
        background: var(--yellow);
    }
    .h_contact .contact_box > p.contact_mail a:hover {
        background: var(--orange)
    }
    .bnr_content .btn_contact.contact_mail a:hover {
        background: var(--orange);
    }
    .news_list .ite:hover .img img {
        transform: scale(1.2);
    }
    .news_list .ite:hover {
        opacity: 1;
    }
    .to_top img:hover, .find_a:hover {
        opacity: .8
    }
    .btn a:hover {
        background-color: var(--scolor);
    }
    .ft_col dl dd ul li a:hover {
        color: var(--mcolor);
    }
    /* header */
    .h_box {
        width: 15.625%;
        height: 100vh;
        top: 0;
        left: 0;
        background-color: #fff;
    }
    .h_inner {
        width: 100%;
        height: 100%;
        padding: 3.1348vh 0;
    }
    #logo {
        line-height: 1;
        text-align: center;
        width: 85.67%;
        max-width: 242px;
        margin: 0 auto 3.2393vh;
    }
    #logo img {
        max-width: 257px;
        width: 100%;
    }
    .h_slogan {
        font-size: 1.6719vh;
        text-align: center;
        margin-bottom: 2.0899vh;
    }
    #content {
        padding-bottom: 108px;
    }
    #content, footer {
        width: calc(100% - 15.625%);
        margin-left: 15.625%;
    }
    /* mv */
    .mv {
        padding-bottom: 60px;
    }
    .mv_inner::after {
        content: "";
        position: absolute;
        width: 70%;
        bottom: -23.2%;
        right: -22.7%;
        aspect-ratio: 1090 / 652;
        max-width: 1090px;
        height: auto;
        background: url("../images/mv_af.png") no-repeat center / cover;
        mix-blend-mode: multiply;
    }
    .mv_box {
        position: absolute;
        z-index: 2;
        bottom: 50px;
        left: 60px;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 34px 36px 32px;
        max-width: 700px;
        width: 45%;
    }
    .mv_logo {
        margin-right: 17px;
        margin-bottom: 0;
        margin-top: 8px;
        max-width: 171px;
        width: 28%;
    }
    .mv_txt {
        max-width: 432px;
        width: 70%;
    }
    .mv_txt h2 {
        font-size: clamp(1.375rem, -0.4315rem + 2.2581vw, 2.25rem);
        margin-bottom: 16px;
    }
    /* sec01 */
    .sec01 {
        padding: 0px 0 45px;
    }
    .sec01_box {
        --pd-size: 50px;
        padding: var(--pd-size);
        display: grid;
        grid-template-columns: minmax(30%, 470px) minmax(60%, 900px);
        grid-template-rows: auto 1fr;
        gap: 0 var(--pd-size);
    }
    .sec01_box::after {
        width: 54%;
        bottom: 59px;
        right: 67px;
    }
    .sec01_box01 {
        padding-top: 54px;
        margin-left: -7px;
        margin-bottom: 62px;
    }
    .sec01 .ttl_h3 {
        margin-bottom: 84px !important;
    }
    .sec01 .ttl_h3 .en {
        margin-bottom: -6px;
        margin-left: 3px;
    }
    .sec01_box_btn {
        margin-bottom: 83px;
    }
    .sec01_box_btn .btn {
        margin-left: -4px;
        width: 100%;
    }
    .sec01_box_btn .btn:not(:last-child) {
        margin-bottom: 20px;
    }
    .sec01_box02 p:last-child {
        padding-bottom: 160px;
    }
    .sec01 .img01 {
        margin-bottom: 45px;
    }
    .sec01_box03 {
        grid-column: 1 / 2;
    }
    .sec01_box02 {
        grid-column: 2 / 3;
        grid-row: 1 / 3;
    }
    .sec01_box02 p .char {
        margin-left: 9px;
    }
    /* sec02 */
    .sec02 {
        padding: 40px 0;
    }
    .sec02_box {
        padding: 70px 80px;
    }
    .sec02_head {
        display: flex;
        justify-content: space-between;
        padding-bottom: 39px;
    }
    .sec02 .ttl_h3 {
        margin-bottom: 0 !important;
    }
    .sec02 .ttl_h3 .en {
        margin-bottom: 4px;
        padding-left: 22px;
        letter-spacing: 0.03em;
    }
    .sec02 .ttl_h3 .en::before {
        width: 12px;
        top: calc(50% - 7px);
    }
    .sec02_box_btn {
        display: flex;
        gap: 10px;
        padding-top: 7px;
    }
    .sec02_box_btn .btn {
        margin-bottom: 0;
    }
    .sec02_box_btn .btn a {
        font-size: 20px;
    }
    .sec02_list.news_list {
        gap: 25px;
        padding: 52px 0px 24px 10px;
    }
    .sec02_list.news_list .ite {
        max-width: 220px;
        width: 16%;
    }
    .news_list .img {
        margin-bottom: 15px;
        height: 200px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .img {
        height: 330px;
    }
    .news_list .ite .img img {
        transition: all .3s ease;
    }
    .news_list .cate_date {
        font-size: 14px;
        margin-bottom: 11px;
    }
    .news_list .cate_date .cate {
        margin-right: 24px;
        padding: 5px 11px 4px;
    }
    .news_list .cate_date .date {
        top: 2px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) {
        max-width: 410px;
        width: 30%;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date {
        left: 20px;
        height: 40px;
        width: 170px;
        padding-bottom: 3px;
        justify-content: center;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date .cate {
        font-size: 16px;
        margin-right: 9px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date .date {
        margin-top: 5px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .ttl {
        bottom: 20px;
        right: 0;
        height: 40px;
        max-width: 340px;
        width: 83%;
        border-radius: 5px 0 0 5px;
        padding: 7px 15px;
    }
    /* sec03 */
    .sec03 {
        padding: 40px 0;
    }
    .sec03_bnr {
        margin-bottom: 80px;
    }
    .sec03_bnr .img {
        height: 270px;
        width: 1620px;
        margin-left: -9px;
    }
    .sec03_bnr .txt {
        margin-top: -24px;
    }
    .sec03_bnr .txt > span {
        font-size: 36px;
        padding: 27px 162px 31px;
    }
    .sec03_bnr .txt > span::before {
        width: 30px;
    }
    .sec03 .ttl_h3 {
        margin-bottom: 40px !important;
    }
    .sec03 .ttl_h3 .ja {
        font-size: 50px;
    }
    .sec03_list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }
    .sec03_list li {
        padding: 39px 80px 58px;
    }
    .sec03_list .ttl {
        font-size: 30px;
        margin-bottom: 28px;
    }
    .sec03_list .img {
        margin-bottom: 25px;
    }
    .sec03_list .desc {
        margin-bottom: 34px;
    }
    /* sec04 */
    .sec_head {
        padding: 32px 0 36px;
    }
    .sec_head .ttl_h3 .ja {
        font-size: 41px;
    }
    .sec04 {
        padding: 100px 0;
    }
    .sec04 .sec_head {
        margin-bottom: 49px;
    }
    .sec04_list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 40px 30px;
    }
    .sec04_list li dl dt .ttl {
        font-size: 26px;
        padding: 12px 20px 11px;
    }
    .sec04_list li dl dd {
        padding: 30px 30px 45px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        flex-grow: 1;
    }
    .sec04_list li dl dd .img {
        margin-bottom: 27px;
    }
    .sec04_list li dl dd .desc {
        margin-bottom: 23px;
    }
    .sec04_list li dl dd .btn a {
        max-width: 330px;
    }
    /* sec05 */
    .sec05 {
        padding: 50px 0;
    }
    .sec05 .sec_head {
        margin-bottom: 50px;
        padding-bottom: 35px;
    }
    .sec05_desc {
        margin-bottom: 59px;
        text-align: center;
    }
    .sec05_list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
        margin-bottom: 53px;
    }
    .sec05_list li {
        padding: 46px 40px 29px;
    }
    .sec05_list li:nth-of-type(even) {
        padding-left: 50px;
    }
    .sec05_list li dl {
        display: flex;
        justify-content: space-between;
    }
    .sec05_list li dl dt {
        width: 49%;
    }
    .sec05_list .ttl {
        margin-bottom: 19px;
        font-size: clamp(1.0625rem, 0.1593rem + 1.129vw, 1.5rem);
    }
    .sec05_list li dl dt .ttl .nb {
        margin-right: 0.55em;
        top: 3px;
    }
    .sec05_list li dl dd {
        flex-shrink: 0;
        max-width: 314px;
        width: 47%;
    }
    .sec05_list li dl dd img {
        position: relative;
    }
    .sec05_list li.ite01 dl dd img {
        top: 31px;
        left: -4px;
    }
    .sec05_list li.ite02 dl dd img {
        top: -10px;
        left: 23px;
    }
    .sec05_list li.ite03 dl dd img {
        top: 19px;
        left: 14px;
    }
    .sec05_list li.ite04 dl dd img {
        top: 38px;
        left: -18px;
        max-width: 212px;
    }
    .sec05_list li.ite04 dl dt {
        width: 60%;
    }
    .sec05_list li.ite04 dl dd {
        width: 30%;
    }
    .sec05_list li.ite03,
    .sec05_list li.ite04 {
        padding-bottom: 30px;
    }
    .sec05_list li.ite03 .ttl,
    .sec05_list li.ite04 .ttl {}
    .sec05_btn a {
        width: 500px;
        min-height: 120px;
        line-height: 1;
        font-size: 26px;
        padding-top: 16px;
    }
    .sec05_btn a > span {
        padding-bottom: 16px;
    }
    /* sec06 */
    .sec_group_inner {
        display: grid;
        grid-template-columns: minmax(39%, 620px) minmax(57%, 900px);
        gap: 40px;
        padding-top: 87px;
    }
    .sec06_box {
        padding: 70px 85px 41px;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    .sec06 .ttl_h3 {
        margin-bottom: 24px !important;
    }
    .sec06 .ttl_h3 .en {
        letter-spacing: -0.04em;
        margin-bottom: 11px;
    }
    .sec06 .ttl_h3 .ja {
        margin-left: -4px;
    }
    .sec06_list {
        padding-left: 10px;
        margin-bottom: 85px;
    }
    .sec06_list::before {
        content: "";
        width: 2px;
        height: 90%;
        top: 5%;
        left: 16px;
    }
    .sec06_list li {
        font-size: clamp(1.25rem, 0.4758rem + 0.9677vw, 1.625rem);
    }
    .sec06_list li span::before {
        margin-right: 0.4615em;
        top: -0.0769em;
    }
    .sec06_btn,
    .sec07_btn {
        margin-left: 13px;
    }
    /* sec07 */
    .sec07_box {
        padding: 71px 75px 41px;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    .sec07 .ttl_h3 {
        margin-bottom: 20px !important;
        margin-left: -1px;
    }
    .sec07 .ttl_h3 .en {
        margin-bottom: 11px;
        padding-left: 22px;
    }
    .sec07 .ttl_h3 .en::before {
        left: 4px;
    }
    .sec07_desc {
        margin-bottom: 23px;
    }
    .sec07_content {
        margin-bottom: 19px;
    }
    .sec_bnr02 {
        padding-bottom: 63px;
    }
    .ac_qa .ac_ite:not(:last-child) {
        margin-bottom: 10px;
    }
    .ac_qa .ac_question,
    .ac_qa .ac_answer {
        padding: 12px 41px 11px;
    }
    .ac_qa .ac_question {
        border-radius: 60px;
        margin-bottom: 10px;
        min-height: 80px;
    }
    .ac_qa .ac_answer {
        border-radius: 40px;
        padding: 27px 40px 24px;
    }
    .ac_qa .ac_ite p {
        padding-left: 68px;
    }
    .ac_qa .ac_answer p {
        padding-left: 59px;
    }
    .ac_qa .ac_ite p::before {
        font-size: clamp(2.1875rem, 1.5423rem + 0.8065vw, 2.5rem);
    }
    .ac_qa .ac_ite:nth-child(1) dt p::before {
        top: 0px;
    }
    .ac_qa .ac_question p::before {
        top: 1px;
    }
    .ac_qa .ac_answer p::before {
        top: 2px;
    }
    .ac_qa .ac_question p,
    .ac_qa .ac_answer .ttl {
        font-family: var(--f-zmg);
        font-weight: bold;
    }
    .ac_qa .ac_question p {
        font-size: clamp(1.125rem, 0.0927rem + 1.2903vw, 1.625rem);
    }
    .ac_qa .ac_ite:nth-child(1) dt p {
        font-size: clamp(1rem, 0.2258rem + 0.9677vw, 1.375rem);
    }
    .ac_qa .ac_answer .ttl {
        font-size: clamp(1.125rem, 0.0927rem + 1.2903vw, 1.625rem);
        margin-bottom: 0.3462em;
    }
}
@media screen and (min-width: 1921px) {
    .to_top {
        right: calc(50vw - 950px);
    }
    .h_slogan {
        font-size: 1vh;
    }
    .nav_list > li > a, .nav_list > li > .hook {
        padding: 1vh 1.0449vh;
        min-height: 10vh;
    }
    .nav_list .txt .en {
        font-size: 1.2vh;
    }
    .nav_list .txt .ja {
        font-size: 1.5vh;
    }
    .h_contact {
        padding: 3vh 0.2vh;
        margin: 0 0.2vh;
    }
    .h_contact .txt_en {
        font-size: 0.9vh;
        top: -4vh;
        margin-bottom: -3vh;
    }
    .h_contact .txt_ja {
        font-size: 1vh;
        margin-bottom: 1vh;
    }
    .contact_box > p a {
        font-size: 0.9vh;
        margin-bottom: 1vh;
    }
    .contact_tel .txt {
        font-size: 1vh;
        margin-bottom: 0.1vh;
    }
    .contact_tel .tel {
        font-size: 0.95vh;
        margin-bottom: 0;
    }
    .contact_tel .time {
        font-size: 0.6vh;
    }
    .sub {
        padding: 0.4vh 0.2vh;
    }
    .sub ul li a {
        font-size: 1.1vh;
        padding: 0.5vh 0.2vh;
    }
    .sub ul li a span {
        padding-left: 1em;
    }
}
@media screen and (min-width: 1907px) {
    .h_box {
        width: 300px;
    }
    #content, footer {
        width: calc(100% - 300px);
        margin-left: 300px;
    }
}
@media screen and (min-width: 751px) and (max-width: 1850px) {
    .sec05_list li {
        padding-left: 30px;
        padding-right: 30px;
    }
    .sec06_box {
        padding-left: 70px;
        padding-right: 70px;
    }
    .sec07_box {
        padding-left: 60px;
        padding-right: 60px;
    }
    .ac_qa .ac_ite p {
        padding-left: 60px;
    }
    .ac_qa .ac_question, .ac_qa .ac_answer {
        padding-left: 35px;
        padding-right: 35px;
    }
}
@media screen and (min-width: 751px) and (max-width: 1650px) {
    .h_box {
        min-width: 260px;
    }
    .nav_list .txt .en::before {
        width: 8px;
        top: calc(50% - 5px);
    }
    .sub ul li a span::before {
        width: 7px;
        top: calc(50% - 3px);
    }
    #content, footer {
        width: calc(100% - 260px);
        margin-left: 260px;
    }
    .mv_box {
        padding: 20px;
    }
    .mv_txt p {
        font-size: 14px;
    }
    .sec01_box {
        --pd-size: 30px;
    }
    .bnr_ttl > span {
        font-size: 24px;
    }
    .bnr_box {
        padding: 40px 20px;
    }
    .bnr_content {
        gap: 15px;
        padding: 30px 10px 0;
    }
    .bnr_content .contact_tel {
        width: 34%;
    }
    .bnr_content .contact_tel .time {
        font-size: 11px;
        margin-left: 0;
        padding: 4px 20px;
    }
    .sec02_box {
        padding: 40px 50px;
    }
    .btn.btn_sm a {
        width: 250px;
        font-size: 18px;
    }
    .news_list {
        gap: 15px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date .cate {
        font-size: 14px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date .date {
        margin-top: 2px;
    }
    .news_list .cate_date .cate {
        font-size: 12px;
        margin-right: 12px;
        padding: 4px;
    }
    .news_list .cate_date .date {
        font-size: 12px;
    }
    .news_list .img {
        height: 120px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .img {
        height: 220px;
    }
    .sec03_list li {
        padding: 30px 50px 50px;
    }
    .sec03_list {
        gap: 30px;
    }
    .sec04_list {
        gap: 30px 20px;
    }
    .sec04_list li dl dd {
        padding: 20px 20px 35px;
    }
    .sec04_list li dl dt .ttl {
        font-size: 22px;
    }
    .sec04_list li dl dd .btn a {
        min-height: 70px;
    }
    .sec05_desc {
        font-size: 14px;
    }
    .sec05_list {
        gap: 30px;
    }
    .sec05_list li dl dd,
    .sec05_list li.ite04 dl dd {
        width: 35%;
    }
    .sec05_list li dl dt {
        width: 60%;
    }
    .sec05_list li:nth-of-type(even) {
        padding-left: 35px;
    }
    .sec05_list p {
        font-size: 13px;
    }
    .sec05_list li.ite04 dl dd img {
        max-width: 100%;
        left: 0;
    }
    .sec_group_inner {
        gap: 30px;
    }
    .sec06_box,
    .sec07_box {
        padding: 60px 34px;
    }
    .ac_qa .ac_question, .ac_qa .ac_answer {
        padding-left: 25px;
        padding-right: 25px;
    }
    .ac_qa .ac_ite p {
        padding-left: 50px;
    }
    .ac_qa .ac_question {
        min-height: 70px;
    }
    .ac_qa .ac_ite:nth-child(1) dt p::before {
        top: 2px;
    }
    .ac_qa .ac_ite p span:not(.ttl) {
        font-size: 15px;
    }
    .sec06_list::before {
        left: 15px;
    }
    .sec06_btn,
    .sec07_btn {
        margin-left: 0;
    }
    .ft_inner {
        padding: 50px;
    }
    .ft_col:not(:last-child) {
        margin-right: 50px !important;
    }
    .to_top {
        width: 60px;
        height: 60px;
    }
}
@media (max-width: 1280px) and (min-height: 841px) {
    .h_contact .txt_ja {
        font-size: 15px;
    }
    .contact_box > p a {
        font-size: 14px;
    }
    .contact_tel .tel {
        font-size: 17px;
    }
}
/* screen-min:750px */
@media screen and (max-width: 750px) {
    img {
        max-width: 100%;
        height: auto;
    }
    #wrapper, header, main, footer, .inner {
        width: 100% !important;
        min-width: unset !important
    }
    .pc {
        display: none !important
    }
    body.is_nav {
        overflow: hidden;
    }
    body.mac nav {
        padding-bottom: 160px;
    }
    .ttl_h3 .en {
        margin-bottom: 3px;
    }
    .ttl_h3 .ja {
        font-size: 29px
    }
    /* NAV */
    nav {
        display: block;
        position: fixed;
        top: 70px;
        left: 0;
        width: 100%;
        height: calc(100vh - 70px);
        overflow: auto;
        z-index: 100;
        background: #fff;
        padding-bottom: 80px;
        opacity: 0;
        transform: translateX(100%);
        transition: all .3s ease-in-out;
    }
    nav.is_open {
        opacity: 1;
        transform: translateX(0);
    }
    nav .inner {
        padding: 0;
    }
    .nav_list {
        display: flex;
        flex-wrap: wrap;
    }
    .nav_list ul,
    .nav_list li {
        width: 100%
    }
    .nav_list ul li {
        background: #fff;
    }
    .nav_list li.ite50 {
        width: 50%;
    }
    .nav_list li.ite50 + li.ite50 {
        border-left: 1px solid var(--mcolor);
    }
    .nav_list ul li:not(:last-child) {
        border-bottom: 1px solid var(--mcolor)
    }
    .nav_list a {
        display: block;
        padding: 10px 15px;
        color: var(--mcolor);
        font-size: 16px;
        font-weight: bold;
        text-align: center;
        border-bottom: solid 1px var(--mcolor)
    }
    /* HAMBUGER BUTTON */
    .hamburger {
        position: absolute;
        right: 15px;
        width: 50px;
        height: 50px;
        font: inherit;
        display: block;
        overflow: visible;
        margin: 0;
        cursor: pointer;
        transition-timing-function: linear;
        transition-duration: .15s;
        transition-property: opacity, filter;
        text-transform: none;
        color: inherit;
        border: 0;
        z-index: 101;
        border-radius: 5px;
        background: var(--mcolor);
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .hamburger-box {
        position: relative;
        display: inline-block;
        width: 24px;
        height: 21px
    }
    .hamburger-inner {
        top: 50%;
        display: block;
        margin-top: -1px;
    }
    .hamburger-inner,
    .hamburger-inner::after,
    .hamburger-inner::before {
        position: absolute;
        width: 24px;
        height: 3px;
        transition: all ease 0.15s;
        background-color: #fff
    }
    .hamburger-inner::after,
    .hamburger-inner::before {
        display: block;
        content: ""
    }
    .hamburger-inner::before {
        top: -9px;
    }
    .hamburger-inner::after {
        bottom: -9px;
    }
    .hamburger--3dxy .hamburger-box {
        perspective: 80px
    }
    .hamburger--3dxy .hamburger-inner {
        transition: transform .15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0 cubic-bezier(0.645, 0.045, 0.355, 1) .1s
    }
    .hamburger--3dxy .hamburger-inner::after,
    .hamburger--3dxy .hamburger-inner::before {
        transition: all .3s ease-in-out;
    }
    .hamburger--3dxy.is_active .hamburger-inner {
        width: 0;
    }
    .hamburger--3dxy.is_active .hamburger-inner::before {
        transform: translate3d(0, 9px, 0) rotate(-45deg)
    }
    .hamburger--3dxy.is_active .hamburger-inner::after {
        transform: translate3d(0, -9px, 0) rotate(45deg)
    }
    /*=====================================================
                          C U S T O M
    ======================================================*/
    /*============ HEADER ============*/
    h1 {
        display: none;
    }
    .h_box {
        width: 100%;
        height: 70px;
        border-bottom: 1px solid #F1F1F1;
    }
    #logo {
        max-width: 231px;
        margin-bottom: 0;
    }
    .h_inner {
        width: 100%;
        height: 100%;
        padding: 0 15px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .h_slogan {
        font-size: 11px;
        margin-bottom: 0;
    }
    /*============ Main ============*/
    main {
        padding-top: 80px;
    }
    #content {
        padding-bottom: 70px;
    }
    .sec_bnr {
        display: none;
    }
    /* MAIN VISUAL */
    .mv_bg {
        height: 440px;
        position: relative;
    }
    .mv_bg::after {
        content: "";
        position: absolute;
        width: 137.4%;
        bottom: -34.3%;
        left: 50%;
        transform: translateX(-45.3%);
        height: auto;
        aspect-ratio: 577 / 283;
        background: url("../images/mv_af_sp.png") no-repeat center / cover;
        mix-blend-mode: multiply;
    }
    .mv_bg img {
        height: 100%;
        width: auto;
        object-fit: cover;
        object-position: 30% center;
    }
    .mv {
        padding-bottom: 20px;
    }
    .mv_box {
        width: 90%;
        margin: -60px auto 0;
        position: relative;
        text-align: center;
        z-index: 1;
    }
    .mv_txt {
        padding: 27px 5px;
    }
    .mv_txt h2 {
        font-size: 29px;
        margin-bottom: 8px;
        letter-spacing: -0.05em;
    }
    /* sec01 */
    .sec01 {
        padding-bottom: 30px;
    }
    .sec01_box {
        --pd-size: 20px;
        padding: 50px var(--pd-size) 24.5vw;
        border-width: 10px;
    }
    .sec01_box::after {
        width: 90%;
        bottom: 24px;
        left: 50%;
        transform: translateX(-50%);
    }
    .sec01 .ttl_h3 {
        margin-bottom: 44px;
    }
    .sec01 .ttl_h3 .en {
        margin-left: 3px;
    }
    .sec01_ic {
        width: 87.8%;
        margin: 0 auto;
    }
    .sec01_box01 {
        margin-bottom: 25px;
    }
    .sec01_box02 {
        margin-bottom: 33px;
    }
    .sec01 .img01 {
        margin-bottom: 28px;
        margin-left: calc(-0.5 * (var(--pd-size)));
    }
    .sec01 .img02 {
        margin-bottom: 37px;
    }
    .sec01 .img02 img {
        width: 100%;
    }
    .sec01_box03 {
        display: flex;
        flex-direction: column-reverse;
    }
    .sec01_box_btn .btn:not(:last-child) {
        margin-bottom: 20px;
    }
    /* sec02 */
    .sec02 {
        padding-bottom: 45px;
    }
    .sec02_box {
        padding: 50px 15px 47px;
    }
    .sec02 .ttl_h3 {
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 0;
    }
    .sec02 .ttl_h3 .en {
        font-size: 16px;
        padding-left: 21px;
        letter-spacing: -0.055em;
    }
    .sec02 .ttl_h3 .en::before {
        width: 12px;
        top: 3px;
    }
    .sec02 .ttl_h3 .ja {
        font-size: 36px;
    }
    .sec02_head {
        padding-bottom: 30px;
    }
    .news_list {
        flex-wrap: wrap;
        gap: 22px 14px;
        padding-top: 28px;
        justify-content: center;
    }
    .news_list .ite {
        width: 48%;
        max-width: 180px;
    }
    .news_list li:not(:first-child) .img {
        margin-bottom: 12px;
        aspect-ratio: 1 / 1;
        height: auto;
    }
    .news_list li:not(:first-child) .cate_date {
        font-size: 14px;
        margin-bottom: 11px;
        justify-content: space-between;
    }
    .news_list .cate_date .cate {
        padding: 5px 11px 4px;
    }
    .news_list .cate_date .date {
        top: 2px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) {
        width: 100%;
        max-width: 380px;
        margin-bottom: 8px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .img {
        height: 280px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date {
        left: 20px;
        height: 40px;
        width: 180px;
        padding: 5px 19px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date .cate {
        font-size: 16px;
        margin-right: 9px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .cate_date .date {
        margin-top: 5px;
        font-size: 14px;
    }
    .sec02_list.news_list .ite:nth-of-type(1) .ttl {
        bottom: 20px;
        right: 0;
        height: 40px;
        max-width: 330px;
        width: 87%;
        border-radius: 5px 0 0 5px;
        padding: 9px 5px;
    }
    /* sec03 */
    .sec03 {
        padding: 40px 0;
    }
    .sec03_bnr {
        margin-bottom: 60px;
    }
    .sec03_bnr .img {
        height: 210px;
        overflow: hidden;
    }
    .sec03_bnr .img img {
        width: 100%;
        height: auto;
    }
    .sec03_bnr .txt {
        margin-top: -28px;
    }
    .sec03_bnr .txt > span {
        font-size: 28px;
        padding: 17px 36px 23px;
    }
    .sec03_bnr .txt > span::before {
        width: 24px;
    }
    .sec03 .ttl_h3 {
        margin-bottom: 20px;
    }
    .sec03 .ttl_h3 .ja {
        font-size: 40px;
    }
    .sec03_list li {
        padding: 29px 30px 37px;
        max-width: 600px;
        margin: 0 auto;
    }
    .sec03_list .ttl {
        font-size: 30px;
        margin-bottom: 20px;
    }
    .sec03_list .img {
        margin-bottom: 25px;
    }
    .sec03_list .desc {
        margin-bottom: 19px;
    }
    .sec03_list li:not(:last-child) {
        margin-bottom: 30px;
    }
    /* sec04 */
    .sec_head {
        padding: 24px 0 23px;
        margin-bottom: 20px;
    }
    .sec_head .ttl_h3 .ja {
        font-size: 34px;
    }
    .sec04 {
        padding: 54px 0 30px;
    }
    .sec04_list li {
        max-width: 440px;
        margin: 0 auto;
    }
    .sec04_list li:not(:last-child) {
        margin-bottom: 20px;
    }
    .sec04_list li dl dt .ttl {
        font-size: 22px;
        padding: 9px 20px 3px;
    }
    .sec04_list li dl dd {
        padding: 10px 15px 32px;
    }
    .sec04_list li dl dd .img {
        margin-bottom: 14px;
    }
    .sec04_list li dl dd .desc {
        margin-bottom: 18px;
    }
    .sec04_list li dl dd .btn a {
        max-width: 280px;
    }
    /* sec05 */
    .sec05 {
        padding: 40px 0;
    }
    .sec05_desc {
        margin-bottom: 35px;
    }
    .sec05_list {
        margin-bottom: 15px;
    }
    .sec05_list li {
        padding: 25px 25px 40px;
    }
    .sec05_list li:not(:last-child) {
        margin-bottom: 20px;
    }
    .sec05_list .ttl {
        font-size: 24px;
        text-align: center;
        width: fit-content;
        margin: 0 auto 12px;
    }
    .sec05_list li dl dt .ttl .nb {
        margin-right: 17px;
        top: 3px;
    }
    .sec05_list li dl dt {
        margin-bottom: 19px;
    }
    .sec05_list li dl dd {
        text-align: center;
    }
    .sec05_btn a {
        width: 100%;
        max-width: 400px;
        min-height: 120px;
        line-height: 1;
        font-size: 26px;
        padding-top: 16px;
    }
    .sec05_btn a > span {
        padding-bottom: 16px;
    }
    .sec_group_inner {
        padding-top: 27px;
    }
    /* sec06 */
    .sec06 {
        margin-bottom: 40px;
    }
    .sec06_box,
    .sec07_box {
        padding: 40px 35px 50px;
    }
    .sec06 .ttl_h3,
    .sec07 .ttl_h3 {
        margin-bottom: 32px;
    }
    .sec06 .ttl_h3 .en,
    .sec07 .ttl_h3 .en {
        padding-left: 23px;
    }
    .sec06 .ttl_h3 .en::before,
    .sec07 .ttl_h3 .en::before {
        left: 5px;
        top: 4px;
    }
    .sec06_list {
        padding-left: 10px;
        margin-bottom: 50px;
    }
    .sec06_list::before {
        content: "";
        width: 2px;
        height: 90%;
        top: 5%;
        left: 15px;
    }
    .sec06_list li {
        font-size: 22px;
    }
    .sec06_list li span::before {
        margin-right: 0.4615em;
        top: -0.0769em;
    }
    /* sec07 */
    .sec07_desc {
        margin-bottom: 20px;
    }
    .sec07_content {
        margin-bottom: 19px;
    }
    .sec07 .ac_qa {
        margin: 0 -20px 30px;
    }
    .ac_qa .ac_ite:not(:last-child) {
        margin-bottom: 10px;
    }
    .ac_qa .ac_ite:not(:last-child):has(.ac_question.active) {
        margin-bottom: 15px;
    }
    .ac_qa .ac_question {
        border-radius: 60px;
        margin-bottom: 5px;
        min-height: 90px;
        padding: 12px 26px;
    }
    .ac_qa .ac_answer {
        border-radius: 20px;
        padding: 26px 23px;
    }
    .ac_qa .ac_ite p {
        padding-left: 55px;
    }
    .ac_qa .ac_answer p {
        padding-left: 50px;
    }
    .ac_qa .ac_ite p::before {
        font-size: 40px;
    }
    .ac_qa .ac_question p::before {
        top: 50%;
        transform: translateY(-50%);
    }
    .ac_qa .ac_answer p::before {
        top: -3px;
    }
    .ac_qa .ac_question p,
    .ac_qa .ac_answer .ttl {
        font-family: var(--f-zmg);
        font-weight: bold;
    }
    .ac_qa .ac_question p {
        font-size: 20px;
        line-height: calc(26 / 20);
    }
    .ac_qa .ac_answer .ttl {
        font-size: 24px;
        line-height: calc(31 / 24);
        margin-bottom: 16px;
    }
    .ac_qa .ac_answer p span:not(.ttl) {
        margin-left: -53px;
        margin-right: -5px;
        display: inline-block;
    }
    /* sec08 */
    /*============ FOOTER ============*/
    footer {
        margin-bottom: 120px;
    }
    /* SP CONTACT */
    .sp_contact {
        width: 100%;
        height: auto;
        position: fixed;
        left: 0;
        z-index: 99;
        bottom: -125px;
        transition: all 0.3s;
    }
    .sp_contact.show {
        bottom: 0;
    }
    .sp_contact_ttl {
        margin-bottom: -20px;
        position: relative;
    }
    .sp_contact_ttl > span {
        font-family: var(--f-zmg);
        font-weight: bold;
        font-size: 17px;
        border-radius: 60px;
        background: var(--orange);
        display: flex;
        justify-content: center;
        align-items: center;
        max-width: 350px;
        min-height: 40px;
        margin: 0 auto;
    }
    .sp_contact_ttl .big {
        font-size: calc((21/ 17) * 100%);
    }
    .sp_contact_ttl .lg {
        font-size: calc((19/ 17) * 100%);
    }
    .sp_contact_box {
        background: #2E2E2E;
        display: flex;
        justify-content: space-between;
        padding: 30px 15px 10px;
    }
    .sp_contact_box li {
        width: 32.15%;
        min-height: 60px;
    }
    .sp_contact_box li a {
        font-family: var(--f-zmg);
        line-height: 1;
        font-size: 12px;
        font-weight: bold;
        text-align: center;
    }
    .sp_contact_box li a span {
        position: relative;
    }
    .sp_contact_box li a span::before {
        content: "";
        position: absolute;
        height: auto;
        top: 50%;
        transform: translateY(-50%);
    }
    .sp_contact_box li a {
        width: 100%;
        height: 100%;
        background: #fff;
        border: 3px solid #4D4D4D;
        border-radius: var(--bdr-sm);
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .sp_contact_tel a span {
        padding-left: 37px;
    }
    .sp_contact_tel a span::before {
        left: 0px;
        width: 27px;
        aspect-ratio: 1 / 1;
        background: url("../images/ic_tel.png") no-repeat center / cover;
    }
    .sp_contact_mail a span {
        padding-left: 39px;
    }
    .sp_contact_mail a span::before {
        left: 0px;
        width: 33px;
        aspect-ratio: 37 / 30;
        background: url("../images/ic_mail.png") no-repeat center / cover;
    }
    .sp_contact_line a span {
        padding-left: 25px;
    }
    .sp_contact_line a span::before {
        width: 25px;
        aspect-ratio: 1 / 1;
        background: url("../images/ic_line.png") no-repeat center / cover;
        left: -4px;
    }
    /* TO TOP */
    .to_top {
        width: 50px;
        height: 50px;
        right: 10px;
        bottom: 125px;
    }
    /*============ END 750 ============ */
}
/* screen-max:550px */
@media screen and (max-width: 450px) {
    .sp450 {
        display: block !important;
    }
    .pc450 {
        display: none !important
    }
    .mv_txt p {
        font-size: 15px;
        line-height: calc(30 / 15);
    }
    .mv_txt h2 {
        margin-bottom: 7px;
    }
    .ttl_h3 .ja {
        font-size: 28px;
    }
    .sec01_box::after {
        width: 95%;
    }
    .ac_qa .ac_question p {
        font-size: 18px;
    }
    .ac_qa .ac_answer .ttl {
        font-size: 22px;
    }
}
/* screen-max:440px */
@media screen and (max-width: 429px) {
    input, button, textarea, select, p, blockquote, th, td, pre, address, li, dt, dd {
        font-size: 140%;
    }
    .sp440 {
        display: block !important;
    }
    .pc440 {
        display: none !important
    }
    .mv_bg {
        aspect-ratio: 420 / 440;
        height: auto;
    }
    .news_list {
        gap: 22px 0;
        justify-content: space-between;
    }
    .ttl_h3 .ja {
        font-size: 23px;
    }
    .btn a {
        font-size: 16px;
        min-height: 60px;
        max-width: 280px;
        width: 100%;
    }
    .btn a > span {
        padding-bottom: 5px;
    }
    .btn a > span::before {
        height: 3px;
    }
    .mv_box {
        width: 92%;
    }
    .mv_txt {
        padding: 25px 0;
    }
    .mv_txt h2 {
        font-size: 25px;
    }
    .mv_txt p {
        letter-spacing: -0.02em;
        margin-right: -8px;
        font-size: 14px;
    }
    .sec01_box {
        padding-bottom: 80px;
    }
    .sec02 {
        padding-bottom: 20px;
    }
    .sec02 .ttl_h3 .en {
        font-size: 14px;
    }
    .sec02 .ttl_h3 .ja {
        font-size: 29px;
    }
    .news_list .cate_date .cate {
        padding: 3px 5px 5px;
    }
    .sec03 {
        padding: 20px 0;
    }
    .sec03_bnr {
        margin-bottom: 50px;
    }
    .sec03_bnr .img {
        height: auto;
    }
    .sec03_bnr .txt > span {
        font-size: 24px;
        padding: 12px 25px 15px;
    }
    .sec03_bnr .txt > span::before {
        width: 18px;
    }
    .sec03 .ttl_h3 .ja {
        font-size: 30px;
    }
    .sec03_list li {
        padding: 25px 15px 30px;
    }
    .sec03_list .ttl {
        font-size: 24px;
    }
    .sec03_list .ttl span {
        background-size: 100% 17px;
    }
    .sec04 {
        padding: 20px 0;
    }
    .sec04_list li dl dt .ttl {
        padding: 5px 20px;
    }
    .sec_head {
        padding: 20px 0;
    }
    .sec_head .ttl_h3 .ja {
        font-size: 30px;
    }
    .sec05 {
        padding: 20px 0;
    }
    .sec05_desc {
        margin-bottom: 20px;
    }
    .sec05_list li {
        padding: 25px 15px;
    }
    .sec05_list .ttl {
        font-size: 22px;
    }
    .sec05_list li dl dd img {
        width: 60%;
    }
    .sec05_list li dl dt .ttl .nb {
        margin-right: 12px;
    }
    .sec05_list {
        margin-bottom: 40px;
    }
    .sec05_list li.ite02 {
        padding-bottom: 18px;
    }
    .sec05_list li.ite02 dl dt {
        margin-bottom: -10px;
    }
    .sec05_list li.ite03 {
        padding-bottom: 26px;
    }
    .sec05_list li.ite03 dl dt {
        margin-bottom: 6px;
    }
    .sec05_list li.ite04 {
        padding-bottom: 29px;
    }
    .sec05_list li.ite04 dl dt {
        margin-bottom: 27px;
    }
    .sec_group_inner {
        padding-top: 20px;
    }
    .sec06_box, .sec07_box {
        padding: 30px 15px;
    }
    .sec06 .ttl_h3, .sec07 .ttl_h3 {
        margin-bottom: 20px;
    }
    .sec06_list li {
        font-size: 18px;
    }
    .sec06_list {
        margin-bottom: 30px;
    }
    .sec06_list::before {
        left: 14px;
    }
    .sec07 .ac_qa {
        margin: 0 0 30px;
    }
    .ac_qa .ac_question {
        padding: 10px 20px;
        min-height: 70px;
    }
    .ac_qa .ac_question p {
        font-size: 16px;
        padding-left: 38px;
    }
    .ac_qa .ac_ite p::before {
        font-size: 28px;
    }
    .ac_qa .ac_answer p {
        padding-left: 38px;
    }
    .ac_qa .ac_answer {
        padding: 15px 20px;
    }
    .ac_qa .ac_answer .ttl {
        font-size: 18px;
        margin-bottom: 10px;
    }
    .ac_qa .ac_answer p span:not(.ttl) {
        margin-left: -38px;
        margin-right: 0;
    }
    footer {
        margin-bottom: 100px;
    }
    .sp_contact {
        bottom: -105px;
    }
    .sp_contact_ttl > span {
        max-width: 280px;
        font-size: 15px;
        min-height: 30px;
    }
    .sp_contact_box {
        padding: 30px 10px 10px;
    }
    .sp_contact_box li {
        min-height: 50px;
    }
    .sp_contact_box li a {
        font-size: 10px;
    }
    .sp_contact_tel a span {
        padding-left: 25px;
    }
    .sp_contact_tel a span::before {
        width: 20px;
    }
    .sp_contact_mail a span {
        padding-left: 28px;
    }
    .sp_contact_mail a span::before {
        width: 25px;
    }
    .sp_contact_line a span {
        padding-left: 22px;
    }
    .sp_contact_line a span::before {
        width: 22px;
    }
    .to_top {
        bottom: 105px;
    }
}
/* screen-max: 360px */
@media screen and (max-width: 360px) {
    .h_slogan {
        margin-bottom: 4px;
    }
    #logo {
        width: 194px;
    }
    .mv_txt h2 {
        font-size: 22px;
    }
    .mv_txt p {
        font-size: 12px;
    }
    .sec01_box_btn .btn a {
        font-size: 15px;
    }
    .sec01 .ttl_h3 .ja {
        font-size: 19px;
    }
    .sec02 .ttl_h3 .ja {
        font-size: 25px;
    }
    .news_list li:not(:first-child) .cate_date {
        font-size: 12px;
    }
    .news_list .ttl {
        font-size: 13px;
    }
    .sec03_bnr .txt > span {
        font-size: 22px;
    }
    .sec03 .ttl_h3 .ja {
        font-size: 26px;
    }
    .sec_head .ttl_h3 .ja {
        font-size: 26px;
    }
    .sec04_list li dl dt .ttl {
        font-size: 20px;
    }
    .sec05_list .ttl {
        font-size: 19px;
        margin-bottom: 10px;
    }
    .sec05_list li dl dt .ttl .nb {
        margin-right: 8px;
    }
    .sec06_list li {
        font-size: 17px;
    }
    .ac_qa .ac_question {
        padding: 10px 15px;
    }
    .ac_qa .ac_answer {
        padding: 15px;
    }
    .ac_qa .ac_question p {
        font-size: 15px;
    }
    .ac_qa .ac_answer .ttl {
        font-size: 17px;
        margin-right: -5px;
    }
    .ac_qa .ac_ite p::before {
        font-size: 24px;
    }
    .ac_qa .ac_ite p {
        padding-left: 30px;
    }
    .ac_qa .ac_answer p span:not(.ttl) {
        margin-left: -30px;
    }
}