@charset "UTF-8"; :root {
    --main-bg-color: #fff;
    --accent-color01: 247, 188, 211;
    --window-padding: 50px;
    --vertical-window-padding: 100px;
    --font-main: "Zen Old Mincho", "Hiragino Mincho ProN", "Hiragino Serif", "YuMincho", "Yu Mincho", "MS PMincho", serif;
    --font-family01: "Zen Old Mincho";
    --font-family02: "Noto Sans JP";
    --font-family03: "Inter";
    --font-family04: "Italianno", cursive;
    --font-yomogi: "Zen Old Mincho", cursive;
    --font-udmincho: "Zen Old Mincho";
    --font-color01: 88, 74, 65;
    --font-color02: 65, 30, 6;
}

body {
    font-family: var(--font-main);
    font-weight: 400;
    /* 基本の太さ */
    line-height: 1.8;
    /* 読みやすさのための行間 */
    color: #333;
    /* 文字色はお好みで */
    -webkit-font-smoothing: antialiased;
    /* 文字を滑らかにする（Mac/iOS用） */
    -moz-osx-font-smoothing: grayscale;
}

.text-center {
    text-align: center;
}

.font-fam-1 {
    font-family: var(--font-family01);
}

.font-fam-2 {
    font-family: var(--font-family02);
}

.font-fam-3 {
    font-family: var(--font-family03);
}

.font-fam-4 {
    font-family: var(--font-family04);
}

*, *::before, *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

.sp {
    display: none;
}

#top {
    padding-top: 137px;
    position: relative;
    color: rgb(var(--font-color01));
    /* background: url("../img/body_bg.png") no-repeat;
  background-position: bottom; */
    /* background-color: rgb(255, 253, 250); */
}

.bg_footer {
    position: fixed;
    width: 100%;
    height: 100vh;
    background: url("../img/body_bg.jpg") no-repeat;
    background-position: center;
    background-size: 100%;
    background-size: cover;
    z-index: -1;
    bottom: 0;
}

#top main {
    background-color: rgb(255, 253, 250);
}

body {
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
    padding-top: 137px;
}

body p {
    line-height: 1.5;
}

.pd-tb {
    padding-top: var(--vertical-window-padding);
    padding-bottom: var(--vertical-window-padding);
}

.pd-b {
    padding-bottom: var(--vertical-window-padding);
}

.pd-lr {
    padding-left: var(--window-padding);
    padding-right: var(--window-padding);
}

.mb10 {
    margin-bottom: 10px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb40 {
    margin-bottom: 40px;
}

.mb50 {
    margin-bottom: 50px;
}

.mb60 {
    margin-bottom: 60px;
}

.mb70 {
    margin-bottom: 70px;
}

.mb80 {
    margin-bottom: 80px;
}

.mb90 {
    margin-bottom: 90px;
}

.mb100 {
    margin-bottom: 100px;
}

.inner {
    max-width: 1000px;
    margin: 0 auto;
}

.text_shadow01 {
    text-shadow: rgba(0, 0, 0, 0.4) 0px 4px 5px;
}

.pink_btn {
    width: 100%;
    max-width: 900px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3%;
    font-family: var(--font-family01);
    font-size: 20px;
    border: 3px double #f7bcd3;
    margin: 0 auto;
    transform: scale(1);
    font-weight: 600;
    position: relative;
}

.pink_btn:hover span {
    transform: scale(1.1);
}

.pink_btn span {
    position: relative;
    transition: transform 0.3s ease;
}

.pink_btn span.mail::after {
    content: "";
    background: url("../img/mail-icon_pink.png") no-repeat;
    background-position: center;
    background-size: contain;
    width: 30px;
    height: 30px;
    right: -45px;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    transition: all 0.5s;
}

.pink_btn:hover span.mail::after {
    background: url("../img/mail-icon_white.png") no-repeat;
    background-position: center;
    background-size: contain;
    transition: all 0.5s;
}

.pink_btn span.arrow::after {
    content: "";
    background: url("../img/arrow-right.png") no-repeat;
    background-position: center;
    background-size: contain;
    width: 30px;
    height: 30px;
    right: -45px;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    transition: all 0.5s;
}

.pink_btn:hover span.arrow::after {
    background: url("../img/arrow-right_pink.png") no-repeat;
    background-position: center;
    background-size: contain;
    transition: all 0.5s;
}

.pink_btn.white {
    background-color: rgb(255, 253, 250);
    color: rgba(247, 188, 211);
    border: 3px double #f7bcd3;
    transition: all 0.5s;
}

.pink_btn.pink {
    background-color: rgba(247, 188, 211);
    color: rgb(255, 253, 250);
    border: 3px double #fffdfa;
    transition: all 0.5s;
}

.pink_btn.white:hover {
    background-color: rgba(247, 188, 211);
    color: rgb(255, 253, 250);
    border: 3px double #fffdfa;
    transition: all 0.5s;
}

.pink_btn.pink:hover {
    background-color: rgb(255, 253, 250);
    color: rgba(247, 188, 211);
    border: 3px double #f7bcd3;
    transition: all 0.5s;
}

.pink_btn.brown {
    background-color: #a08e80;
    color: rgb(255, 253, 250);
    border: 3px double #fffdfa;
    transition: all 0.5s;
    max-width: 700px;
    height: 50px;
}

.pink_btn.brown:hover {
    background-color: #fff;
    color: #a08e80;
    border: 3px double #ffbb81 !important;
    transition: all 0.5s;
}

.pink_btn.brown:hover span.arrow::after {
    background: url("../img/arrow-right_brown.png") no-repeat;
    background-position: center;
    background-size: contain;
    transition: all 0.5s;
}

#page_top {
    position: fixed;
    right: 2%;
    bottom: 2%;
    z-index: 99;
}

#page_top a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 150px;
    height: 150px;
    border-radius: 100vh;
    color: #fff;
    background: linear-gradient(90deg, #e4b2c7 0%, #dcd1c4 100%);
    box-shadow: 2.12px 2.12px 14px rgba(0, 0, 0, 0.31);
    transition: all 0.3s ease;
}

#page_top a:hover {
    background: url("../img/pagetop_bg.jpg");
    background-position: center;
    background-size: cover;
    transition: all 0.3s ease;
}

#page_top a span:nth-child(1) {
    font-family: var(--font-family04);
    font-size: 25px;
}

#page_top a span:nth-child(2) {
    font-family: var(--font-family01);
    margin-bottom: 10px;
    font-size: 18px;
}

#page_top .sp {
    display: none;
}

.mv {
    width: 100%;
    height: 100%;
    min-height: 689px;
    background-image: url("../img/top/mv_top.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    display: flex;
    align-items: center;
    position: relative;
}

.mv::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 25%);
}

.mv_text {
    max-width: 1200px;
    margin: 0 auto;
    color: #fff;
    width: 100%;
    z-index: 1;
    padding: 0 3%;
    display: block;
}

.mv_text_sp {
    display: none;
}

.mv_text h2 {
    font-size: 30px;
    text-shadow: #ffffff 0px 0px 6px;
    letter-spacing: 0.25em;
    font-family: var(--font-family01);
    font-weight: 900;
}

.mv_text h3 {
    font-size: 24px;
    font-family: var(--font-family01);
    font-weight: 900;
}

.mv_text h1 {
    font-size: 60px;
    text-shadow: #ffffff 0px 0px 6px;
    font-family: var(--font-family01);
    font-weight: 900;
}

.mv .scrollmv {
    position: absolute;
    font-family: "HelveticaNeueLT W20 45 Light";
    font-size: 17px;
    color: #fff;
    font-weight: 700;
    z-index: 1;
    letter-spacing: 10px;
    transform: rotate(90deg);
    right: 24%;
    bottom: 26%;
}

.mv .line {
    position: absolute;
    right: 27.3%;
    bottom: 0;
    width: 2px;
    height: 15%;
    background-color: #fff;
    display: flex;
    animation-name: lineanimation;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes lineanimation {
    from {
        bottom: 0;
    }

    90% {
        bottom: -1%;
    }

    80% {
        bottom: -2%;
    }

    70% {
        bottom: -3%;
    }

    60% {
        bottom: -3%;
    }

    50% {
        bottom: -2%;
    }

    40% {
        bottom: -1%;
    }

    30% {
        bottom: 1%;
    }

    20% {
        bottom: 2%;
    }

    10% {
        bottom: 1%;
    }

    to {
        bottom: 0;
    }
}

.top_section .inner {
    max-width: 1600px;
}

/* sec01 */
.top_section h2 {
    color: rgb(var(--font-color01));
    font-size: 74px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 50px;
    font-family: "Italianno", cursive;
    font-weight: 400;
    margin-bottom: 50px;
    position: relative;
}

.top_section h2::after {
    content: "";
    background-color: rgb(var(--accent-color01));
    width: 15%;
    height: 0.1px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    margin-left: 10%;
}

.top_section h2::before {
    content: "";
    background-color: rgb(var(--accent-color01));
    width: 15%;
    height: 0.1px;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    margin-right: 10%;
}

.top_section h2 span {
    font-size: 29px;
    font-family: "Playfair Display";
}

.top_section .section_ttl-box {
    display: flex;
    justify-content: center;
    align-items: end;
    gap: 20px;
    margin-bottom: 80px;
}

.top_section .section_ttl-box h3 {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 90px;
    /* font-family: "Italianno", serif; */
    line-height: 60px;
    font-weight: 100;
    position: relative;
    margin-right: 50px;
}

.top_section .section_ttl-box h3::after {
    content: "";
    background-image: url("../img/top/color_accent01.png");
    background-repeat: no-repeat;
    position: absolute;
    right: -5px;
    bottom: -47px;
    width: 95px;
    height: 95px;
    z-index: -1;
}

.top_section .section_ttl-box h5 {
    font-size: 28px;
    font-family: var(--font-family01);
}

.top_section .top_sec02 .section_ttl-box h5, .top_section .top_sec03 .section_ttl-box h5 {
    font-weight: 400;
}

.top_section .section_ttl-box h4 {
    font-size: 52px;
    line-height: 60px;
    font-family: var(--font-family01);
}

.top_section .top_sec02 .section_ttl-box h4 {
    font-size: 64px;
    line-height: 70px;
}

.top_section .section_ttl-box h3 span {
    font-size: 24px;
}

.top_section .img_box {
    margin-bottom: 80px;
    position: relative;
}

.top_section .img_box::after {
    content: "";
    position: absolute;
    width: 110px;
    height: 110px;
    background-image: url("../img/top/color_accent01.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    bottom: -66px;
    right: 20%;
}

.top_section .img_box img {
    width: 100%;
}

.top_section .wrap {
    display: flex;
    max-width: 900px;
    margin: 0 auto;
    padding-bottom: 50px;
    border-bottom: dashed 2px rgb(var(--accent-color01));
}

.top_section .top_sec02 .wrap, .top_section .top_sec03 .wrap {
    border-bottom: 0;
}

.top_section .wrap .cta {
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.top_section .wrap .cta .cta_btnwrap a {
    display: flex;
    flex-direction: column;
    color: #000;
    align-items: center;
    width: 220px;
    height: 220px;
    justify-content: center;
    position: relative;
    gap: 10px;
}

.top_section .wrap .cta .cta_btnwrap a::before {
    content: "";
    width: 100%;
    height: 100%;
    background-color: rgb(255, 253, 250);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
    border-radius: 100vh;
    filter: drop-shadow(1px 3px 4px #0004);
}

.top_section .wrap .cta .cta_btnwrap a span:nth-child(1) {
    font-family: var(--font-family04);
    font-size: 30px;
    color: rgb(var(--font-color01));
    position: relative;
}

.top_section .wrap .cta .cta_btnwrap a span:nth-child(1)::after {
    content: "|";
    position: absolute;
    left: -15px;
    top: 50%;
    color: rgb(var(--font-color01));
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(-20deg) translateY(-50%);
    font-size: 23px;
}

.top_section .wrap .cta .cta_btnwrap a span:nth-child(1)::before {
    content: "|";
    position: absolute;
    right: -15px;
    top: 50%;
    color: rgb(var(--font-color01));
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(20deg) translateY(-50%);
    font-size: 23px;
}

.top_section .wrap .cta .cta_btnwrap a span:nth-child(3) {
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
    font-weight: 600;
    transition: all 0.3s;
    transform: scale(1);
}

.top_section .wrap .cta .cta_btnwrap a span:nth-child(3):hover {
    transition: all 0.3s;
    transform: scale(1.1);
}

.top_section .top_sec03 .wrap .cta .cta_btnwrap a img {
    margin-left: 20px;
}

.top_section .top_sec02 .wrap .cta .cta_btnwrap a span:nth-child(3), .top_section .top_sec03 .wrap .cta .cta_btnwrap a span:nth-child(3) {
    font-size: 20px;
    letter-spacing: 5px;
}

.top_section .wrap .cta_textbox {
    width: 100%;
    font-family: var(--font-family01);
    font-weight: 600;
}

.top_section .wrap .cta_textbox p {
    font-size: 24px;
    line-height: 1.8;
    font-weight: 900;
}

.top_section .top_sec03 .wrap .cta_textbox p {
    display: flex;
    flex-direction: column;
    padding-bottom: 40px;
    position: relative;
}

.top_section .top_sec03 .wrap .cta_textbox p span {
    position: relative;
}

.top_section .top_sec03 .wrap .cta_textbox p span::after, .top_section .top_sec03 .wrap .cta_textbox p::after {
    content: "";
    border-bottom: solid 1px rgb(var(--accent-color01));
    width: 82%;
    height: 1px;
    left: 0;
    bottom: 0;
    position: absolute;
}

.top_section .top_sec03 .wrap .cta_textbox p span:nth-last-child(1)::after {
    content: unset;
}

.top_section .wrap .cta_textbox .large_txt {
    font-size: 30px;
}

.top_section .lower_txt {
    font-size: 24px;
    font-weight: 600;
    font-family: var(--font-family01);
    border-bottom: solid 3px rgb(var(--accent-color01));
    width: fit-content;
    margin: 0 auto;
    margin-top: 30px;
}

.top_section .top_sec02 .lower_txt, .top_section .top_sec03 .lower_txt {
    border-bottom: 0;
    position: relative;
    font-family: var(--font-family01);
    font-weight: 400;
    font-size: 20px;
    margin-bottom: 15px;
    padding: 0 20px;
}

.top_section .top_sec02 .lower_txt::after, .top_section .top_sec03 .lower_txt::after {
    content: "|";
    position: absolute;
    left: 0;
    top: 45%;
    color: rgb(var(--font-color01));
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(-20deg) translateY(-50%);
    font-size: 23px;
}

.top_section .top_sec02 .lower_txt::before, .top_section .top_sec03 .lower_txt::before {
    content: "|";
    position: absolute;
    right: 0;
    top: 45%;
    color: rgb(var(--font-color01));
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(20deg) translateY(-50%);
    font-size: 23px;
}

.top_section .top_sec03 .lower_txt02 {
    font-family: var(--font-family01);
    font-weight: 400;
    font-size: 24px;
    margin-bottom: 50px;
    text-align: center;
}

.top_section .top_sec03 .wrap {
    align-items: end;
}

.top_section .about_btn {
    transition: all 0.2s ease, visibility 0s;
    border-radius: 0px;
    background: #f7bcd3;
    border: 3px double #fffdfa;
    color: #fff;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    padding: 15px 20px;
    font-size: 20px;
    font-weight: 500;
    justify-content: center;
    font-family: var(--font-family02);
    position: relative;
}

.top_section .about_btn::after {
    content: "";
    position: absolute;
    background: url("../img/arrow-right.png") no-repeat;
    background-position: center;
    background-size: contain;
    width: 57px;
    height: 20px;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
}

.top_section .about_btn:hover {
    background: #fff;
    color: #f7bcd3;
    transition: all 0.2s ease, visibility 0s;
    border: 3px double #f7bcd3;
}

.top_section .about_btn:hover::after {
    background: url("../img/top/arrow-right_pink.png") no-repeat;
    background-position: center;
    background-size: contain;
}

.top_section .top_sec03 {
    padding-bottom: 80px;
    position: relative;
}

.top_section .top_sec03::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-bottom: dashed 1px rgb(var(--accent-color01));
    width: 100%;
    max-width: 1200px;
    height: 1px;
}

/* sec02 */
.top_access {
    background-color: rgba(247, 188, 211, 0.9);
    padding-top: 20px;
    padding-bottom: 50px;
}

.top_access .img_box {
    position: relative;
}

.top_access .img_box img {
    width: 100%;
}

.top_access .img_box .cta_wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 263px;
    height: 263px;
}

.top_access .img_box .cta_wrap.cta01 {
    top: -3%;
    left: 6%;
}

.top_access .img_box .cta_wrap.cta02 {
    top: 43%;
    left: 22%;
    width: 154px;
    height: 154px;
}

.top_access .img_box .cta_wrap a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background: #fff;
    border-radius: 100vh;
    filter: drop-shadow(3px 3px 3px #0005);
    transition: all 0.5s;
}

.top_access .img_box .cta_wrap a:hover {
    background: url("../img/top/access_bg01.png") no-repeat;
    transition: all 0.5s;
}

.top_access .img_box .cta_wrap.cta02 a:hover {
    background: url("../img/top/access_bg02.png") no-repeat;
    background-position: center;
    background-size: cover;
    transition: all 0.5s;
}

.top_access .img_box .cta_wrap a img {
    width: 100px;
}

.map-pc {
    display: block;
}

.map-sp {
    display: none;
}

.top_access .img_box .cta_wrap a .pink_txt {
    color: rgb(var(--accent-color01));
    font-size: 18px;
    font-weight: 600;
    font-family: var(--font-family02);
}

.top_access .img_box .cta_wrap a .yellow_txt {
    color: #da9e24;
    font-size: 12px;
    font-weight: 600;
    font-family: var(--font-family02);
}

.top_access .img_box .cta_wrap a .small_txt {
    font-size: 14px;
    color: #000;
    text-align: center;
}

.top_access .img_box .cta_wrap.cta02 a .small_txt {
    font-size: 11px;
}

.top_access .img_box .cta_wrap.cta02 a img {
    width: 130px;
}

.top_access .img_box .txt_wrap {
    position: absolute;
    right: 25px;
    bottom: 0;
    color: #fff;
    font-weight: 600;
    font-size: 18px;
    font-family: var(--font-family01);
}

/* sec03 */
.top_staff {
    position: relative;
    padding-bottom: 80px;
    overflow: hidden;
}

.top_staff .inner {
    z-index: 1;
    position: relative;
    border-bottom: dashed 2px rgb(247, 188, 211);
    padding-bottom: 80px;
}

.top_staff::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 18%;
    background: linear-gradient(175deg, rgba(247, 188, 211, 0.9) 50%, rgb(255 253 250) 50%);
}

.top_staff .wrap .img_wrap {
    display: flex;
    justify-content: center;
    gap: 100px;
    margin-bottom: 50px;
}

.top_staff .wrap .img_wrap .img_box {
    width: 333px;
    position: relative;
}

.top_staff .wrap .img_wrap .img_box img {
    width: 100%;
    border-radius: 100vh;
}

.top_staff .wrap .img_wrap .img_box.img_box01 {
    margin-left: 100px;
}

.top_staff .wrap .img_wrap .img_box.img_box02 {
    margin-top: 50px;
    margin-left: 100px;
    width: 300px;
}

.top_staff .wrap .img_wrap .img_box.img_box03 {
    width: 300px;
    margin-left: 150px;
}

.top_staff .wrap .img_wrap .img_box.img_box04 {
    margin-top: 50px;
    margin-left: 100px;
    width: 300px;
}

.top_access .section_ttl, .top_staff .section_ttl, .top_information .section_ttl {
    color: #fff;
    font-family: "Italianno", cursive;
    font-size: 74px;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    margin: 0 auto;
    position: relative;
    max-width: 1500px;
}

.top_access .section_ttl {
    padding-left: 20%;
    margin-bottom: 50px;
}

.top_staff .section_ttl {
    z-index: 1;
    position: relative;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto 50px 100px;
}

.top_information .section_ttl {
    color: rgb(var(--font-color01));
    font-size: 84px;
    margin-bottom: 80px;
}

.top_access .section_ttl::after, .top_staff .section_ttl::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    background-color: #fff;
    height: 1px;
}

.top_access .section_ttl::after {
    width: 44%;
}

.top_staff .section_ttl::after {
    width: 30%;
}

.top_information .section_ttl::after {
    content: "";
    position: absolute;
    top: 65%;
    transform: translateY(-50%);
    left: 0;
    background-color: #000;
    height: 0.1px;
    width: 37%;
}

.top_access .section_ttl::before, .top_staff .section_ttl::before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    background-color: #fff;
    height: 1px;
}

.top_information .section_ttl::before {
    content: "";
    position: absolute;
    top: 65%;
    transform: translateY(-50%);
    right: 0;
    background-color: #000;
    height: 0.1px;
    width: 37%;
}

.top_access .section_ttl::before {
    width: 20%;
}

.top_staff .section_ttl::before {
    width: 30%;
}

.top_access .section_ttl span, .top_staff .section_ttl span {
    font-family: var(--font-family01);
    font-size: 24px;
}

.top_staff .wrap .img_wrap .img_box span {
    background-color: rgba(247, 188, 211);
    color: #fff;
    font-family: var(--font-family04);
    font-size: 28px;
    width: 230px;
    height: 57px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
}

.top_staff .wrap .img_wrap .img_box.img_box.img_box01 span {
    right: -110px;
    bottom: 20px;
}

.top_staff .wrap .img_wrap .img_box.img_box.img_box02 span {
    right: -165px;
    bottom: -30px;
}

.top_staff .wrap .img_wrap .img_box.img_box.img_box03 span {
    top: -20px;
    left: -70px;
}

.top_staff .wrap .img_wrap .img_box.img_box.img_box04 span {
    top: 30px;
    left: -150px;
}

.top_staff .wrap .txt_box {
    text-align: center;
    font-family: var(--font-family01);
    font-size: 24px;
    font-weight: 600;
}

/* sec04 */
.top_information .desc {
    text-align: center;
    font-family: var(--font-family01);
    font-size: 20px;
    margin-bottom: 50px;
    font-weight: 900;
}

#blog-posts-container .blog-post {
    display: none;
    /* Hide all posts by default */
}

#blog-posts-container .blog-post.active {
    display: block;
    /* Show active page's posts */
}

#pagination-controls {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

#page-numbers span {
    padding: 5px 15px;
    color: rgb(var(--font-color01));
    font-size: 25px;
    font-family: "Cinzel", serif;
    font-weight: 600;
}

#page-numbers span.active {
    opacity: 0.6;
}

.top_information {
    background: url("../img/top/blog_bg.png") no-repeat;
    background-size: contain;
    background-position: 100% 10%;
}

.top_information .news_pagination button {
    appearance: none;
    border: 0;
    padding: 0;
    background-color: transparent;
    font-size: 25px;
}

.top_information .inner {
    background-color: rgba(247, 188, 211, 0.7);
    padding: 20px;
    padding: 20px 20px 20px;
}

.top_information .inner h3 {
    margin-bottom: 50px;
    font-size: 45px;
    font-family: "Cinzel", serif;
    font-weight: 400;
    position: relative;
    width: 100%;
    max-width: 400px;
}

.top_information .inner h3::after {
    content: "";
    position: absolute;
    height: 1px;
    width: 60%;
    border-bottom: dashed 1px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.top_information .inner .news_list {
    padding: 0 50px;
    margin-bottom: 60px;
}

.top_information .inner .news_list .blog-post {
    font-family: var(--font-family01);
    margin-bottom: 30px;
    font-weight: 900;
}

.top_information .inner .news_list .blog-post p {
    margin-bottom: 20px;
    font-size: 14px;
}

.top_information .inner .news_list .blog-post a {
    color: rgb(var(--font-color01));
    font-size: 20px;
    transition: all 0.3s;
}

.top_information .inner .news_list .blog-post a:hover {
    opacity: 0.6;
}

/* footer */
footer {
    padding-top: 20px;
    padding-bottom: 20px;
    position: relative;
}

footer::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #0000002e;
}

.footer .inner {
    position: relative;
}

.footer_logo a {
    display: flex;
    background-color: #fff;
    width: 100px;
    height: 100px;
    border-radius: 100vh;
    align-items: center;
    justify-content: center;
    margin: 0 auto 40px;
}

.footer_logo a img {
    width: 78px;
    height: 58px;
}

footer .desc {
    color: #fff;
    font-family: var(--font-family01);
    font-size: 24px;
    text-align: center;
    margin-bottom: 40px;
    font-weight: 600;
}

.footer_contact a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 38px;
    font-weight: 600;
    gap: 20px;
    font-family: var(--font-family01);
    position: relative;
    width: 100%;
    max-width: fit-content;
    margin: 0 auto 50px;
    padding-left: 65px;
}

.footer_contact a::after {
    content: "";
    background: url("../img/tel-icon.png") no-repeat;
    background-position: center;
    background-size: 30px;
    background-color: #ffa8cf;
    border-radius: 100vh;
    width: 50px;
    height: 50px;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.footer_contact a img {
    width: 30px;
}

.footer_contact p {
    text-align: center;
    color: #fff;
    font-family: var(--font-family01);
    font-size: 20px;
    margin-bottom: 10px;
}

.footer_contact .pink_bg {
    background-color: rgb(247, 188, 211);
    color: #fff;
    width: 100%;
    max-width: 700px;
    height: 70px;
    display: flex;
    margin: 0 auto;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    border: solid 1px;
    font-family: var(--font-family01);
}

.footer_nav ul {
    display: flex;
    justify-content: center;
    gap: 20px;
}

.footer_nav ul li a {
    color: #fff;
    font-family: var(--font-family01);
    font-weight: 600;
}

.copyright {
    text-align: center;
    color: #fff;
    font-size: 18px;
    font-weight: 400;
    position: relative;
}

.follow_cta {
    position: absolute;
    top: 20px;
    right: 25%;
    transform: translateX(-50%);
    text-align: center;
}

.follow_cta span {
    font-family: var(--font-family04);
    font-size: 30px;
    color: #fff;
    position: relative;
}

.follow_cta span::after {
    content: "|";
    position: absolute;
    left: -15px;
    top: 50%;
    color: #fff;
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(-20deg) translateY(-50%);
    font-size: 23px;
}

.follow_cta span::before {
    content: "|";
    position: absolute;
    right: -15px;
    top: 50%;
    color: #fff;
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(20deg) translateY(-50%);
    font-size: 23px;
}

.follow_cta .btns {
    display: flex;
    gap: 5px;
    align-items: center;
    justify-content: center;
}

.follow_cta .btns a {
    display: flex;
    align-items: center;
}

.follow_cta .btns a img {
    width: 100%;
}

/* company */
.sub_company {
    position: relative;
}

.sub_company.bg::after {
    content: "";
    background: linear-gradient(185deg, rgba(247, 188, 211, 1) 50%, rgba(255, 255, 255, 0) 50%);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 60%;
}

.sub_company .section_ttl-box {
    display: flex;
    align-items: center;
    margin-bottom: 100px;
}

.sub_company .section_ttl-box .line {
    border-bottom: 1px solid #ffff;
    border-top: 3px solid #fff;
    padding: 5px 0 0;
    width: 100%;
}

.sub_company .section_ttl-box div:nth-child(2) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    font-family: var(--font-family01);
    color: #fff;
}

.sub_company .section_ttl-box div:nth-child(2) h3 {
    font-size: 26px;
}

.sub_company .section_ttl-box div:nth-child(2) h2 {
    font-size: 50px;
}

.sub_company .inner {
    z-index: 1;
    position: relative;
}

.sub_company .sec01 {
    padding: 0px 3% 30px;
    text-align: center;
}

.sub_company .sec01 .img_txt {
    width: 300px;
    height: 60px;
    margin: 0 auto 50px;
}

.sub_company .sec01 .wrap {
    display: flex;
    gap: 40px;
    align-items: center;
    justify-content: center;
    margin-bottom: 50px;
}

.sub_company .sec01 .wrap .img_box {
    width: 100%;
}

.sub_company .sec01 .wrap .img_box img {
    width: 100%;
}

.sub_company .sec01 .wrap .txt_box {
    width: 100%;
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
}

.sub_company .sec01 .wrap .txt_box h3 {
    text-align: center;
    margin-bottom: 30px;
    font-size: 26px;
}

.sub_company .sec01 .wrap .txt_box p {
    font-size: 16px;
    line-height: 35px;
    text-align: start;
}

.sub_company .pink_btn:hover {
    border: 3px double rgb(255, 64, 64);
}

.sub_company .sec02 {
    padding: 60px 3% 80px;
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
    position: relative;
}

.sub_company .sec02::after {
    content: "";
    background: url("../img/company/color-accent-top.png");
    background-size: contain;
    width: 100%;
    height: 30px;
    position: absolute;
    top: 0;
    left: 0;
}

.sub_company .sec02::before {
    content: "";
    background: url("../img/company/color-accent-bottom.png");
    background-size: contain;
    width: 100%;
    height: 30px;
    position: absolute;
    bottom: 0;
    left: 0;
}

.sub_company .sec02 .txt_box {
    max-width: 800px;
    margin: 0 auto;
}

.sub_company .sec02 .txt_box h2 {
    font-size: 32px;
    text-align: center;
    margin-bottom: 30px;
}

.sub_company .sec02 .txt_box p {
    font-size: 18px;
    line-height: 35px;
    padding: 0 3%;
}

.sub_company .sec03 {
    padding-top: 30px;
    padding-bottom: 80px;
    position: relative;
}

.sub_company .sec03::after {
    content: "";
    background: linear-gradient(177deg, rgba(247, 188, 211, 1) 50%, rgba(255, 255, 255, 0) 50%);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 22%;
}

.sub_company .sec03 .ttl {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    font-size: 45px;
    font-family: "Playfair Display", serif;
    color: rgb(var(--font-color01));
    font-weight: 600;
    margin: 0 auto;
    margin-bottom: 120px;
    position: relative;
    width: 100%;
    max-width: 600px;
}

.sub_company .sec03 .ttl::after {
    content: "";
    background: url("../img/company/paw_icon01.png") no-repeat;
    background-position: center;
    background-size: contain;
    position: absolute;
    top: 0;
    right: 0;
    width: 100px;
    height: 100px;
}

.sub_company .sec03 .ttl span {
    font-size: 24px;
    font-family: var(--font-family01);
}

.sub_company .sec03 .wrap .card {
    display: flex;
    position: relative;
}

.sub_company .sec03 .wrap .card.paw-icon::after {
    content: "";
    background: url("../img/company/paw_icon02.png") no-repeat;
    background-position: center;
    background-size: contain;
    position: absolute;
    top: 0;
    left: 0;
    width: 100px;
    height: 100px;
}

.sub_company .sec03 .wrap .card.paw-icon.paw-icon2::after {
    right: 0;
    left: unset;
}

.sub_company .sec03 .wrap .card .img_box {
    width: 50%;
    text-align: center;
}

.sub_company .sec03 .wrap .card .img_box img {
    width: 257px;
    border-radius: 100vh;
}

.sub_company .sec03 .wrap .card .txt_box {
    width: 100%;
    color: rgb(var(--font-color02));
    font-family: var(--font-family01);
    font-size: 18px;
}

.sub_company .sec03 .wrap .card .txt_box .name {
    width: fit-content;
    text-align: center;
    margin: 0 auto 40px 0;
}

.sub_company .sec03 .wrap .card.card02 .txt_box .name {
    margin: 0 0 40px auto;
}

.sub_company .sec03 .wrap .card.card02 .txt_box .desc {
    padding-left: 25%;
    max-width: 550px;
}

.sub_company .sec03 .wrap .card.card03 .txt_box .desc {
    padding-left: 20%;
    max-width: 550px;
}

.sub_company .sec03 .wrap .card.card04 .txt_box .name {
    margin: 0 0 40px auto;
}

.sub_company .sec03 .wrap .card.card04 .txt_box .desc {
    padding-left: 25%;
    max-width: 600px;
}

.sub_company .sec03 .wrap .card .txt_box .name h3 {
    font-family: var(--font-family04);
    color: rgb(var(--font-color01));
    font-size: 28px;
    font-weight: 400;
}

.sub_company .sec03 .wrap .card .txt_box .name h2 {
    font-size: 30px;
}

.sub_company .sec03 .wrap .card .txt_box .name h4 {
    font-size: 18px;
}

.sub_company .sec03 .wrap .card .txt_box .desc {
    display: flex;
    flex-direction: column;
    max-width: 450px;
    padding-left: 10%;
}

.sub_company .sec03 .wrap .card .txt_box .desc span {
    border-bottom: dashed 1px;
    padding-right: 3%;
    margin-bottom: 20px;
    font-weight: 600;
}

.sub_company.sec04 {
    padding-bottom: 80px;
}

.sub_company.sec04 .section_ttl-box {
    background-color: rgb(247, 188, 211, 1);
    padding: 50px 3%;
    margin-bottom: 70px;
}

.sub_company.sec04 .section_ttl-box .inner {
    display: flex;
    align-items: center;
    width: 100%;
}

.sub_company.sec04 .section_ttl-box div:nth-child(2) h2 {
    font-size: 38px;
}

.sub_company.sec04 .wrap h2 {
    font-size: 32px;
    text-align: center;
    margin-bottom: 40px;
    color: rgb(var(--font-color01));
    font-family: var(--font-family01);
    width: 100%;
}

.sub_company.sec04 .wrap {
    margin-bottom: 60px;
}

.sub_company.sec04 .wrap .wrap_flex {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 50px;
}

.sub_company.sec04 .wrap .wrap_flex .img_box {
    width: 100%;
    text-align: center;
}

.sub_company.sec04 .wrap .wrap_flex .img_box img {
    width: 318px;
    height: 318px;
}

.sub_company.sec04 .wrap .wrap_flex .txt_box {
    width: 100%;
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
    font-weight: 600;
}

.sub_company.sec04 .wrap .wrap_flex .txt_box h3 {
    display: flex;
    flex-direction: column;
    align-items: self-end;
    width: fit-content;
    margin: 0 auto 20px;
    font-size: 22px;
    text-align: center;
}

.sub_company.sec04 .wrap .wrap_flex .txt_box h3 span {
    color: red;
    font-size: 13px;
}

.sub_company.sec04 .wrap .wrap_flex .txt_box p {
    text-align: start;
    font-size: 18px;
}

.contactbnr {
    background-image: url("../img/contactbnr.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    padding: 50px 3%;
    font-weight: 600;
}

.contactbnr .inner {
    overflow: hidden;
}

.contactbnr .wrap {
    background-color: #ffffff8a;
    padding: 30px;
    text-align: center;
    color: rgb(var(--font-color01));
    font-family: var(--font-family01);
    font-weight: 600;
    margin-bottom: 30px;
    position: relative;
    clip-path: polygon(0% 0%, 100% 0%, 100% 0%, 0% 0%);
}

.contactbnr .wrap.active {
    animation-name: animate-top;
    animation-duration: 1s;
    animation-delay: 250ms;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

@keyframes animate-top {
    0% {
        clip-path: polygon(0% 0%, 100% 0%, 100% 0%, 0% 0%);
    }

    100% {
        clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    }
}

.contactbnr .wrap h2 {
    /* font-family: "Fredericka the Great"; */
    font-size: 40px;
}

.contactbnr .wrap h3 {
    font-size: 22px;
    margin-bottom: 30px;
}

.contactbnr .contact_mail {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 100%;
    max-width: 426px;
    height: 60px;
    border-radius: 15px;
    background-color: #ffa8cf;
    color: rgb(var(--font-color01));
    font-size: 20px;
    font-weight: 600;
    margin: 0 auto 30px;
}

.contactbnr .contact_mail span {
    transform: scale(1);
    transition: all 0.5s;
    display: flex;
    align-items: center;
    gap: 15px;
}

.contactbnr .contact_mail span:hover {
    transform: scale(1.1);
}

.contactbnr .contact_mail img {
    width: 25px;
}

.contactbnr .contact_tel {
    font-size: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    color: rgb(var(--font-color01));
    margin-bottom: 30px;
}

.contactbnr .contact_tel div {
    background-color: #ffa8cf;
    border-radius: 100vh;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contactbnr .contact_tel div img {
    width: 30px;
}

.contactbnr .wrap02 {
    font-size: 18px;
    font-family: var(--font-family01);
    color: #fff;
    line-height: 35px;
}

.sub-service_flow {
    padding-top: 50px;
    padding-bottom: 80px;
}

.sub-service_flow .section-ttl_box {
    display: flex;
    align-items: center;
    gap: 30px;
    margin-bottom: 50px;
}

.sub-service_flow .section-ttl_box div {
    width: 100%;
}

.sub-service_flow .section-ttl_box div.line {
    border-bottom: solid 1px rgb(247, 188, 211);
    height: 1px;
    margin-top: 30px;
}

.sub-service_flow .section-ttl_box div:nth-child(2) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
}

.sub-service_flow .section-ttl_box div:nth-child(2) h3 {
    font-size: 25px;
}

.sub-service_flow .section-ttl_box div:nth-child(2) h2 {
    font-size: 36px;
}

.sub-service_flow .wrap01 {
    display: flex;
    align-items: center;
    justify-content: center;
}

.sub-service_flow .wrap01 .card {
    width: 250px;
    height: 408px;
    min-height: 408px;
    text-align: center;
    position: relative;
    font-family: var(--font-family01);
    font-weight: 600;
    padding: 50px 1% 20px;
}

.sub-service_flow .wrap01 .card01, .sub-service_flow .wrap01 .card03 {
    background-color: rgb(247, 187, 210);
    color: #fff;
}

.sub-service_flow .wrap01 .card01 a, .sub-service_flow .wrap01 .card03 a {
    color: #fff;
}

.sub-service_flow .wrap01 .card02, .sub-service_flow .wrap01 .card04 {
    background-color: rgb(220, 209, 196);
    color: rgb(var(--font-color01));
}

.sub-service_flow .wrap01 .card02 a, .sub-service_flow .wrap01 .card04 a {
    color: rgb(var(--font-color01));
}

.sub-service_flow .wrap01 .card h3 {
    position: absolute;
    top: 25px;
    left: 8px;
    transform: rotate(-25deg);
    font-size: 22px;
    /* font-family: cookhand, ms gothic, ヒラギノ角ゴ pro w3, hiragino kaku gothic pro, osaka, sans-serif; */
}

.sub-service_flow .wrap01 .card .img_box {
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.sub-service_flow .wrap01 .card a {
    border: solid 1px;
    padding: 5px 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    width: 100%;
    max-width: fit-content;
    margin: 0 auto;
    font-weight: 600;
    transition: all 0.3s;
}

.sub-service_flow .wrap01 .card a:hover {
    background-color: rgb(160, 82, 34);
    color: #fff;
}

.sub-service_flow .wrap01 .card h2 {
    margin-bottom: 30px;
    font-size: 22px;
}

.sub-service_flow .wrap01 .card h2 span {
    font-size: 16px;
}

.sub-service_flow .wrap01 .card p {
    margin-bottom: 25px;
    font-size: 14px;
    height: 60px;
}

.sub-service_flow .wrap01 .card svg {
    position: absolute;
    bottom: -23px;
    right: -17px;
    transform: rotate(80deg);
    z-index: 1;
}

.sub-service_flow.sec02 .ttl {
    font-size: 28px;
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
    margin-bottom: 30px;
    text-align: center;
}

.sub-service_flow.sec02 .ttl02 {
    font-size: 20px;
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
    margin-bottom: 100px;
    text-align: center;
}

.sub-service_flow.sec02 .wrap02 {
    border: solid 5px #f7bbd4;
    padding: 80px 50px 50px;
    position: relative;
    margin-bottom: 200px;
    position: relative;
}

.sub-service_flow.sec02 .wrap02.wrap02-04 {
    margin-bottom: 60px;
}

.sub-service_flow.sec02 .wrap02::after {
    content: "";
    background-image: url("../img/service-flow/step01.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    position: absolute;
    width: 170px;
    height: 104px;
    top: -75px;
    left: 50%;
    transform: translateX(-50%);
}

.sub-service_flow.sec02 .wrap02.wrap02-02::after {
    background-image: url("../img/service-flow/step02.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.sub-service_flow.sec02 .wrap02.wrap02-03::after {
    background-image: url("../img/service-flow/step03.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.sub-service_flow.sec02 .wrap02.wrap02-04::after {
    background-image: url("../img/service-flow/step04.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.sub-service_flow.sec02 .wrap02 .card h2 {
    text-align: center;
    font-size: 24px;
    color: rgb(var(--font-color01));
    margin-bottom: 30px;
}

.sub-service_flow.sec02 .wrap02.wrap02-02 .card h2, .sub-service_flow.sec02 .wrap02.wrap02-03 .card h2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.sub-service_flow.sec02 .wrap02 .card h2 span {
    font-size: 18px;
    font-family: var(--font-family01);
    font-weight: 400;
}

.sub-service_flow.sec02 .wrap02 .card .wrap-flex {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-bottom: 40px;
}

.sub-service_flow.sec02 .wrap02 .card .wrap-flex.sp {
    display: none;
}

.sub-service_flow.sec02 .wrap02 .card .wrap-flex .txt_box {
    width: 100%;
    font-size: 18px;
    color: rgb(var(--font-color01));
    font-family: var(--font-family01);
    line-height: 35px;
}

.sub-service_flow.sec02 .wrap02.wrap02-02 .card .wrap-flex, .sub-service_flow.sec02 .wrap02.wrap02-03 .card .wrap-flex {
    background: rgb(250, 250, 250);
    padding: 20px;
    filter: drop-shadow(0px 0px 5px #0005);
    position: relative;
}

.sub-service_flow.sec02 .wrap02.wrap02-03 .card .wrap-flex {
    padding: 40px 20px;
}

.sub-service_flow.sec02 .wrap02.wrap02-02 .card .wrap-flex.ribbon::after {
    content: "";
    position: absolute;
    background-image: url("../img/service-flow/ribbon01.png");
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    width: 100px;
    height: 100px;
    left: -35px;
    top: -30px;
}

.sub-service_flow.sec02 .wrap02.wrap02-02 .card .wrap-flex .txt_box h3, .sub-service_flow.sec02 .wrap02.wrap02-03 .card .wrap-flex .txt_box h3 {
    text-align: center;
    font-size: 25px;
    margin-bottom: 20px;
    position: relative;
    width: fit-content;
    margin: 0 auto 25px;
    padding: 0 30px;
}

.sub-service_flow.sec02 .wrap02.wrap02-02 .card .wrap-flex .txt_box h3::after {
    content: "";
    background-image: url("../img/service-flow/leaf01.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    width: 40px;
    height: 40px;
    right: -10px;
    bottom: 3px;
    transform: rotate(80deg);
}

.sub-service_flow.sec02 .wrap02.wrap02-03 .card .wrap-flex .txt_box h3::after {
    content: "";
    background-image: url("../img/service-flow/leaf02.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    width: 30px;
    height: 30px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.sub-service_flow.sec02 .wrap02.wrap02-02 .card p, .sub-service_flow.sec02 .wrap02.wrap02-03 .card p {
    margin-bottom: 20px;
    text-align: start;
}

.sub-service_flow.sec02 .wrap02 .card .wrap-flex .img_box {
    width: 90%;
}

.sub-service_flow.sec02 .wrap02 .card .wrap-flex .img_box img {
    width: 100%;
}

.sub-service_flow.sec02 .wrap02 .card p {
    text-align: center;
    color: rgb(var(--font-color01));
    font-family: var(--font-family01);
    font-size: 18px;
    margin-bottom: 40px;
}

.sub-service_flow.sec02 .wrap02 .card a {
    color: rgb(var(--font-color01));
    font-family: var(--font-family01);
    font-size: 20px;
    font-weight: 600;
    border: solid 1px #3333;
    padding: 10px;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

.sub-service_flow.sec02 .wrap02.arrow-down::before {
    content: "";
    position: absolute;
    background-image: url("../img/service-flow/arrow-down.png");
    background-position: center;
    background-size: 100%;
    background-repeat: no-repeat;
    bottom: -15%;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    height: 75px;
    animation-name: arrow-down_animation;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

.sub-service_flow.sec02 .wrap02.wrap02-02.arrow-down::before {
    animation-name: arrow-down_animation02;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

.sub-service_flow.sec02 .wrap02.wrap02-03.arrow-down::before {
    animation-name: arrow-down_animation03;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes arrow-down_animation {
    from {
        bottom: -15%;
    }

    90% {
        bottom: -16%;
    }

    80% {
        bottom: -17%;
    }

    70% {
        bottom: -18%;
    }

    60% {
        bottom: -19%;
    }

    50% {
        bottom: -20%;
    }

    40% {
        bottom: -19%;
    }

    30% {
        bottom: -18%;
    }

    20% {
        bottom: -17%;
    }

    10% {
        bottom: -16%;
    }

    to {
        bottom: -15%;
    }
}

@keyframes arrow-down_animation02 {
    from {
        bottom: -9%;
    }

    90% {
        bottom: -10%;
    }

    80% {
        bottom: -11%;
    }

    70% {
        bottom: -12%;
    }

    60% {
        bottom: -13%;
    }

    50% {
        bottom: -14%;
    }

    40% {
        bottom: -13%;
    }

    30% {
        bottom: -12%;
    }

    20% {
        bottom: -11%;
    }

    10% {
        bottom: -10%;
    }

    to {
        bottom: -9%;
    }
}

@keyframes arrow-down_animation03 {
    from {
        bottom: -8%;
    }

    90% {
        bottom: -9%;
    }

    80% {
        bottom: -10%;
    }

    70% {
        bottom: -11%;
    }

    60% {
        bottom: -12%;
    }

    50% {
        bottom: -13%;
    }

    40% {
        bottom: -12%;
    }

    30% {
        bottom: -11%;
    }

    20% {
        bottom: -10%;
    }

    10% {
        bottom: -9%;
    }

    to {
        bottom: -8%;
    }
}

.sub-service_flow .inner .lower-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.sub-service_flow .inner .lower-btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgb(var(--font-color01));
    font-family: var(--font-family01);
    font-size: 18px;
    padding: 10px 20px;
    width: 100%;
    margin: 0 auto;
    border: solid 1px #3333;
    max-width: 350px;
    font-weight: 600;
}

#voice .lower-mv::before {
    content: unset;
}

#voice .sub-voice {
    background-color: #f4f4f4;
}

.sub-voice {
    font-family: var(--font-family01);
    color: rgb(var(--font-color01));
    font-weight: 400;
}

.sub-voice .inner {
    max-width: 800px;
}

.sub-voice .ttl {
    font-size: 60px;
    color: rgb(160, 142, 128);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 55px;
    margin-bottom: 40px;
}

.sub-voice .ttl span {
    font-size: 25px;
    color: rgb(var(--font-color01));
    text-shadow: rgb(0 0 0 / 0%) 0px 4px 5px;
}

.sub-voice h3 {
    font-size: 22px;
    text-align: center;
    margin-bottom: 60px;
}

.sub-voice .wrap_voice {
    margin-bottom: 50px;
}

.sub-voice .wrap_voice h2 {
    display: flex;
    flex-direction: column;
    font-size: 22px;
    font-family: var(--font-family01);
    line-height: 45px;
    margin-bottom: 40px;
    padding: 20px;
    background-color: #ffffffe0;
}

.sub-voice .wrap_voice h2 span:nth-child(2) {
    text-align: end;
}

.sub-voice .wrap_voice .wrap_flex {
    display: flex;
    gap: 20px;
}

.sub-voice .wrap_voice .wrap_flex .img_box {
    display: flex;
    flex-direction: column;
    text-align: center;
    gap: 10px;
    width: 30%;
}

.sub-voice .wrap_voice .wrap_flex .img_box img {
    width: fit-content;
    border-radius: 100vh;
    margin: 0 auto;
}

.sub-voice .wrap_voice .wrap_flex .txt_box {
    width: 100%;
}

.sub-voice .wrap_voice .wrap_flex .txt_box p {
    margin-bottom: 20px;
    font-size: 18px;
}

.sub-voice .lower-btn h2 {
    text-align: center;
    font-size: 30px;
    margin-bottom: 40px;
    font-family: "Noto Serif JP", serif;
    font-weight: 300;
}

.sub-voice .lower-btn p {
    text-align: center;
}

.sub-voice .wrap_voice:nth-child(8) h2 {
    font-size: 20px;
}

.sub-voice .wrap_voice:nth-child(8) h2 span:nth-child(2) {
    text-align: start;
}

#common-cases .lower-mv::after {
    content: unset;
}

#common-cases .lower-mv {
    min-height: 538px;
}

.sub-common_cases {
    position: relative;
    padding-top: 20px;
    padding-bottom: 150px;
}

.sub-common_cases::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background-image: url("../img/common-cases/bg-color-accent.png");
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: 100% -34%;
}

.sub-common_cases.sec05::before {
    background-position: 100% -14%;
}

.sub-common_cases.sec05::after {
    background-position: 100% -15%;
}

.sub-common_cases::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background-image: url("../img/common-cases/bg-color-accent.png");
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: 100% -35%;
    transform: rotate(180deg);
}

.sub-common_cases .inner {
    z-index: 1;
    position: relative;
}

#common-cases .lower-mv .txt-box h2 {
    text-transform: unset;
}

#common-cases .ttl {
    font-size: 77px;
    margin-bottom: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #e7e5e5;
    font-family: var(--font-family01);
    padding-top: 50px;
}

#common-cases .ttl span {
    font-size: 25px;
    color: rgb(var(--font-color01));
    font-family: var(--font-family02);
    font-weight: 300;
}

.sub-common_cases .case {
    width: 100%;
    max-width: 608px;
    margin: 0 auto 150px;
}

.sub-common_cases .case:nth-last-child(1) {
    margin-bottom: 0;
}

.sub-common_cases .case .img_box {
    text-align: center;
    position: relative;
    width: fit-content;
    margin: 0 auto 30px;
}

.sub-common_cases .case .img_box img {
    width: 184px;
    height: 184px;
    border-radius: 100vh;
}

.sub-common_cases .case .img_box span {
    position: absolute;
    top: 25px;
    right: -100px;
    font-family: var(--font-family04);
    font-weight: 100;
    color: rgb(var(--font-color01));
    font-size: 25px;
    transform: rotate(-10deg);
}

.sub-common_cases .case.dachshund .img_box span {
    right: -190px;
}

.sub-common_cases .case.cat .img_box span {
    right: -40px;
}

.sub-common_cases .case .case_name {
    font-size: 25px;
    color: rgb(var(--font-color01));
    font-family: var(--font-family02);
    font-weight: 300;
    text-align: center;
}

.sub-common_cases .case .line {
    height: 10px;
    width: 100%;
    max-width: 600px;
    margin: 0 auto 40px;
    position: relative;
}

.sub-common_cases .case .line::after {
    content: "";
    background: url("../img/common-cases/line.png");
    background-size: contain;
    width: 100%;
    height: 3px;
    position: absolute;
    bottom: 0;
    left: 0;
}

.sub-common_cases .case .case_wrap {
    margin-bottom: 50px;
    font-size: 20px;
    color: rgb(var(--font-color01));
    font-family: var(--font-family02);
    font-weight: 300;
    position: relative;
}

.sub-common_cases .case .case_wrap.paw-left::before {
    content: "";
    position: absolute;
    left: -150px;
    top: -25px;
    width: 100px;
    height: 100px;
    background-image: url("../img/common-cases/paw-icon.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.sub-common_cases .case .case_wrap.paw-right::before {
    content: "";
    position: absolute;
    right: -150px;
    top: -25px;
    width: 100px;
    height: 100px;
    background-image: url("../img/common-cases/paw-icon.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.sub-common_cases .case .case_wrap h3 {
    font-size: 25px;
    font-weight: 400;
    margin-bottom: 20px;
    padding: 0 30px;
}

.sub-common_cases .case .case_wrap ul {
    padding: 20px 30px;
}

.sub-common_cases .case .case_wrap.case_a ul {
    background: #fff6db;
}

.sub-common_cases .case .case_wrap.case_b ul {
    background: #ded9d5;
}

.sub-common_cases .case .case_wrap.case_c ul {
    background: #ffecf1;
}

.sub-common_cases .case .case_wrap ul li {
    display: flex;
    margin-bottom: 10px;
    font-size: 17px;
}

.sub-common_cases .case .case_wrap ul .bb_dash {
    border-bottom: dashed 1px #000;
    margin-bottom: 10px;
}

.sub-common_cases .case .case_wrap ul li span:nth-child(1) {
    width: 100%;
}

.sub-common_cases .case .case_wrap ul li span:nth-child(2) {
    width: 20%;
}

.sub-common_cases .case a {
    display: flex;
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
    height: 60px;
    align-items: center;
    justify-content: center;
    padding: 0 3% 0 7%;
    color: rgb(var(--font-color01));
    background-color: #f7bcd3;
    border-radius: 10px;
    border: 3px double #fffdfa;
    font-size: 18px;
    position: relative;
    transform: scale(1);
    transition: all 0.3s;
}

.sub-common_cases .case a span::after {
    content: "";
    background-image: url("../img/common-cases/icon01.png");
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    left: -30px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
}

.sub-common_cases .case a.mail-icon span:after {
    background-image: url("../img/common-cases/mail-icon.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.sub-common_cases .case a span {
    position: relative;
    transition: all 0.3s;
}

.sub-common_cases .case a span:hover {
    transform: scale(1.1);
    color: #f7bcd3;
    font-weight: 600;
}

.sub-common_cases .case a span:hover:after {
    background-image: url("../img/common-cases/icon01-pink.png");
    background-repeat: no-repeat;
    background-size: contain;
}

.sub-common_cases .case a.mail-icon span:hover:after {
    background-image: url("../img/common-cases/mail-icon_pink.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.sub-common_cases .case a:hover {
    background-color: #fff;
}

#common-cases .contactbnr {
    position: relative;
}

#common-cases .contactbnr::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background-color: #ffffff9e;
    width: 100%;
    height: 100%;
}

#common-cases .contactbnr .wrap {
    font-family: var(--font-family02);
}

#common-cases .contactbnr .wrap h3 {
    font-weight: 300;
}

#common-cases .contactbnr .contact_mail span {
    font-weight: 300;
}

#common-cases .contactbnr .contact_tel {
    color: #000;
    background-color: #fff;
    border-radius: 10px;
    width: fit-content;
    margin: 0 auto;
    padding: 10px 3%;
    margin-bottom: 10px;
    font-weight: 400;
}

#common-cases .contactbnr .wrap02 {
    color: rgb(var(--font-color01));
    font-family: var(--font-family02);
    font-weight: 400;
}

@media screen and (max-width: 1400px) {
    body, #top {
        padding-top: 100px;
    }

    .bg_footer {
        background-size: cover;
    }

    .mv .line {
        right: 28.5%;
    }

    .mv {
        min-height: 450px;
    }

    .top_staff .wrap .img_wrap .img_box.img_box01 {
        margin-left: 0;
    }

    .top_staff .wrap .img_wrap .img_box.img_box02 {
        margin-left: 0;
    }

    .top_staff .wrap .img_wrap .img_box.img_box03 {
        margin-left: 50px;
    }

    .top_staff .wrap .img_wrap .img_box.img_box.img_box01 span {
        right: -80px;
        bottom: 30px;
    }

    .top_staff .wrap .img_wrap .img_box.img_box.img_box02 span {
        right: -140px;
        bottom: -20px;
    }

    .top_staff .section_ttl {
        margin: 0 auto;
    }

    .sub-common_cases::before {
        background-position: 100% -15%;
    }

    .sub-common_cases::after {
        background-position: 100% -20%;
    }

    .sub-common_cases.sec05::before {
        background-position: 100% -7%;
    }

    .sub-common_cases.sec05::after {
        background-position: 100% -8%;
    }
}

@media screen and (max-width: 1100px) {
    :root {
        --window-padding: 3%;
        --vertical-window-padding: 60px;
    }

    body, #top {
        padding-top: 90px;
    }

    .top_staff .wrap .img_wrap .img_box.img_box.img_box02 span {
        right: -100px;
    }

    .bg_footer {
        background-position: center;
        background-size: cover;
    }

    .mv .scrollmv {
        right: 0;
    }

    .mv .line {
        right: 5.7%;
    }

    .top_section h2::after {
        width: 5%;
        margin-left: 0;
    }

    .top_section h2::before {
        width: 5%;
        margin-right: 0;
    }

    .text_shadow01 {
    }

    .top_section .section_ttl-box h4 {
        font-size: 40px;
    }

    .top_staff .section_ttl {
        margin: 0 auto 100px;
    }

    .top_information .section_ttl::before, .top_information .section_ttl::after {
        width: 15%;
    }

    .top_section .wrap .cta_textbox p {
        font-size: 20px;
    }

    .top_section .wrap .cta_textbox .large_txt {
        font-size: 25px;
    }

    .top_section .about_btn {
        max-width: 800px;
    }

    .top_section .top_sec03 {
        padding-bottom: 50px;
        margin-bottom: 0;
    }

    .sub_company.bg::after {
        height: 35%;
        background: linear-gradient(182deg, rgba(247, 188, 211, 1) 50%, rgba(255, 255, 255, 0) 50%);
    }

    .sub_company .section_ttl-box {
        margin-bottom: 80px;
        gap: 20px;
    }

    .sub_company .section_ttl-box div:nth-child(2) h3 {
        font-size: 18px;
    }

    .sub_company .section_ttl-box div:nth-child(2) h2 {
        font-size: 35px;
    }

    .sub_company .sec01 .img_txt {
        width: 200px;
    }

    .sub_company .sec01 .wrap {
        flex-direction: column;
    }

    .sub-voice .wrap_voice h2 span:nth-child(2) {
        text-align: start;
    }

    .sub-voice .wrap_voice h2 {
        display: unset;
    }

    .sub-voice .wrap_voice .wrap_flex {
        margin-top: 30px;
    }

    .sub-common_cases::before {
        background-position: 100% -10%;
    }

    .sub-common_cases::after {
        background-position: 100% -15%;
    }

    .sub-common_cases.sec05::before {
        background-position: 100% -5%;
    }

    .sub-common_cases.sec05::after {
        background-position: 100% -5%;
    }
}

:root {
    --padding-lr: 50px;
    --padding-50px: 50px;
    --padding-100px: 100px;
}

.yomogi {
    font-family: var(--font-yomogi) !important;
}

.pd-px {
    padding-left: var(--padding-lr);
    padding-right: var(--padding-lr);
}

.pd-py {
    padding-top: var(--padding-50px);
    padding-bottom: var(--padding-50px);
}

.pd-y {
    padding-top: var(--padding-100px);
}

.pd-b {
    padding-bottom: var(--padding-100px);
}

.pd-x {
    padding-bottom: var(--padding-100px);
}

main.sub {
    background-color: rgb(255, 253, 250);
}

a.anchor {
    width: 0;
    height: 0;
    opacity: 0;
    appearance: none;
    visibility: hidden;
    position: relative;
    top: -100px;
}

.lower-mv {
    position: relative;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    height: 390px;
    min-height: 390px;
    width: 100%;
    z-index: 1;
}

.lower-mv::before {
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    background-color: #0000002b;
    position: absolute;
    left: 0;
    top: 0;
}

.lower-mv::after {
    content: "";
    width: 100%;
    height: 100px;
    position: absolute;
    left: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(255, 253, 250, 0) 0%, #fffdfa 100%);
}

#faq .lower-mv::after {
    background: url("../img/faq/accent2.png") no-repeat;
    background-position: center bottom;
    bottom: -50px;
}

.lower-mv .txt-box {
    position: absolute;
    bottom: 150px;
}

.lower-mv .txt-box h2 {
    font-size: 36px;
    font-weight: 600;
    color: #fff;
    font-family: var(--font-family01);
    line-height: 1;
    letter-spacing: 5px;
    text-transform: capitalize;
}

.lower-mv .txt-box p {
    font-size: 62px;
    font-weight: 600;
    color: #fff;
    margin: 7px 0 0;
    font-family: var(--font-family01);
}

.mininav {
    padding: 60px 25px;
    background-color: rgb(255, 222, 95);
}

.mininav ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    transition: all 0.2 ease;
}

.mininav a {
    font-family: var(--font-family02);
    font-size: 18px;
    font-weight: 600;
    color: rgb(88, 74, 65);
}

.mininav a:hover {
    opacity: 0.7;
}

p.color01, h1.color01, h2.color01, h3.color01, h4.color01, span.color01 {
    color: #181818 !important;
}

#privacy .box ul p.color02 {
    color: #584a41;
}

#privacy .ttlsub {
    font-size: 24px;
    font-family: var(--font-family01);
    position: relative;
    z-index: 5;
}

#privacy .ttlsub::before {
    content: "";
    width: 60px;
    aspect-ratio: 1;
    background-color: #f7bcd3b7;
    position: absolute;
    left: 50%;
    top: -30px;
    transform: translateX(-50%);
    display: block;
    z-index: -1;
}

#privacy h2 {
    font-size: 32px;
    /* font-family: var(--font-family02); */
}

#privacy h3 {
    font-size: 20px;
    font-weight: 600;
    font-family: var(--font-family02);
    line-height: 2;
    text-align: center;
}

#privacy .box {
    max-width: 1000px;
    width: 100%;
    margin: auto;
    padding: 60px 25px;
    border: 2px solid #000;
}

#privacy .box ul {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
}

#privacy .box ul p {
    line-height: 1.7;
    font-size: 18px;
    font-family: var(--font-family02);
}

#privacy .sub-privacy .inner {
    display: flex;
    flex-direction: column;
    row-gap: 30px;
    align-items: center;
    justify-content: center;
}

#privacy .box.disc {
    max-width: 600px;
    width: 100%;
    text-align: center;
}

#privacy .warning {
    color: #f60419;
}

#privacy .sideline {
    display: flex;
    align-items: center;
    gap: 20px;
    white-space: nowrap;
}

#privacy .sideline span {
    display: block;
    width: 60%;
    height: 1px;
    background-color: #000;
}

#privacy .box2 p, #privacy .box2 h4, #privacy .box2 span {
    font-family: var(--font-family02);
}

#privacy .box2 h4 {
    background-color: #000;
    color: #fff;
    padding: 20px;
    font-size: 20px;
}

#privacy .box2 p {
    font-size: 18px;
    line-height: 1.7;
}

#privacy .box2 .round {
    width: 250px;
    background-color: #000;
    border-radius: 50vw;
    color: #fff;
    font-size: 20px;
    padding: 15px 20px;
    display: block;
    text-align: center;
}

#privacy .box2 .cornered {
    padding: 15px 20px;
    width: 100%;
    border: 2px solid #000;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 250px;
    font-size: 18px;
    font-weight: 600;
}

#privacy .box2 img {
    max-width: fit-content;
    width: 100%;
}

#privacy .box2 {
    display: flex;
    flex-direction: column;
    row-gap: 25px;
}

.sub-quotation {
    font-family: var(--font-family03);
}

.sub-quotation .radio-box.basket-option-container {
    display: none;
}

.sub-quotation .size .price-container {
    /* visibility: hidden; */
}

.sub-quotation .weight .price-container {
    visibility: hidden;
    height: 50px;
}

.sub-quotation .btn-close {
    position: absolute;
    right: 3%;
    top: 30px;
    width: 32px;
    height: 32px;
    opacity: 0.7;
}

.sub-quotation .btn-close:hover {
    opacity: 1;
}

.sub-quotation .btn-close:before, .sub-quotation .btn-close:after {
    position: absolute;
    left: 15px;
    content: " ";
    height: 33px;
    width: 2px;
    background-color: #e9e9e9;
}

.sub-quotation .btn-close:before {
    transform: rotate(45deg);
}

.sub-quotation .btn-close:after {
    transform: rotate(-45deg);
}

.sub-quotation .quotation-modal {
    background-color: #000000c2;
    height: 0;
    width: 0;
}

.sub-quotation .quotation-modal.active {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    padding: 30px 3%;
    z-index: 10;
}

.sub-quotation .quotation-modal.active ~ .sub-quote .modal-img.active {
    box-shadow: 0 0 20px 2px #0000005c;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    aspect-ratio: 3 / 2;
    z-index: 11;
}

#privacy .warning {
    color: #f60419;
}

#privacy .lined {
    position: relative;
    width: 100%;
    max-width: 700px;
}

#privacy .lined::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    border-bottom: solid 1px #000;
    width: 75%;
    height: 1px;
}

.sub-quote .inner {
    max-width: 800px;
    display: flex;
    flex-direction: column;
    row-gap: 40px;
}

.sub-quote .group-ttl {
    font-size: 30px;
    font-weight: 600;
    text-align: center;
    color: rgb(88, 74, 65);
    text-shadow: rgba(0, 0, 0, 0.4) 0px 4px 5px;
}

.sub-quote .ttl-desc {
    font-size: 22px;
    text-align: center;
    line-height: 1.7;
    color: rgb(88, 74, 65);
}

.sub-quote .col-inner {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
}

.sub-quote .dashed-ttl {
    font-size: 26px;
    font-weight: 600;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #373b4d;
    text-shadow: rgba(0, 0, 0, 0.4) 0px 4px 5px;
}

.sub-quote .dashed-ttl::before, .sub-quote .dashed-ttl::after {
    content: "";
    position: relative;
    width: 100%;
    border-bottom: 2px dashed rgb(221, 170, 230);
}

.sub-quote .dashed-ttl span {
    min-width: 250px;
}

.sub-quote p {
    font-size: 16px;
    line-height: 1.7;
    color: #373b4d;
    position: relative;
}

.sub-quote .radio-box p {
    max-width: fit-content;
    width: 100%;
}

.sub-quote p.unq1::after {
    content: "(火葬のみ)";
    font-size: 12px;
    position: absolute;
    right: 0;
    bottom: -15px;
    color: rgb(88, 74, 65);
    font-family: var(--font-family03);
}

.sub-quote p.unq2::after {
    content: "(レンタル又はご自身で用意)";
    font-size: 12px;
    position: absolute;
    right: 0;
    bottom: -15px;
    color: rgb(88, 74, 65);
    font-family: var(--font-family03);
}

.sub-quote p.unq1, .sub-quote p.unq2 {
    margin-bottom: 10px;
}

.sub-quote .display-box p {
    color: rgb(88, 74, 65);
}

.sub-quote p.unqcolor {
    color: rgb(88, 74, 65);
}

.sub-quote label {
    display: flex;
    align-items: center;
    gap: 4px;
}

.sub-quote input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: red;
    background-color: blue;
    position: relative;
}

.sub-quote input[type="radio"]::before {
    content: "";
    width: 100%;
    height: 100%;
    border-radius: 50vw;
    background-color: #FFFFFF;
    position: absolute;
    left: 0;
    top: 0;
    border: 1px solid #ffa8a6;
}

.sub-quote input[type="radio"]:checked::before {
    background: RGB(221, 170, 230);
    background: radial-gradient(circle, rgb(247, 188, 211) 35%, rgba(255, 255, 255, 1) 35%);
    border: 1px solid #ffa8a6;
}

.sub-quote input[type="radio"].other-checked::before {
    background-color: #fff;
    border: 1px solid #ffa8a6;
}

.sub-quote input[type="radio"]:disabled::before {
    background-color: #eee;
    /* or keep it white */
    border-color: #aaa;
    /* grey border for disabled */
    cursor: not-allowed;
    opacity: 0.6;
}

.no-flower-cremation {
    display: none;
    color: red;
    font-size: 14px;
}

.sub-quote .radio-box {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
}

.sub-quote .radio-box p {
    display: flex;
    align-items: center;
    gap: 5px;
}

.sub-quote .display-box {
    display: flex;
    gap: 20px;
}

.sub-quote .item {
    border: 1px solid #000;
    padding: 20px 25px;
    width: 48%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    row-gap: 15px;
}

/* .sub-quote .display-box.display3 .item {
  justify-content: flex-start;
} */
.sub-quote .col-wrap {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
}

.sub-quote .col-wrap span {
    font-size: 13px;
    line-height: 1.7;
}

.sub-quote .center {
    max-width: fit-content;
    width: 100%;
    margin: auto;
}

.sub-quote .flex-box {
    display: flex;
    gap: 225px;
}

.sub-quote .flex-box .box {
    width: 50%;
    max-width: 150px;
    display: flex;
    justify-content: center;
}

.sub-quote .flex-box .box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.sub-quote .quotation-box {
    border: 1px solid #000;
}

.sub-quote .quotation-box h3 {
    background-color: rgb(232, 186, 214);
    color: #fff;
    display: flex;
    align-items: center;
    padding: 10px 25px;
    font-size: 24px;
}

.sub-quote .quotation-box .value {
    padding: 50px 25px;
    padding-top: 20px;
}

.sub-quote .quotation-box .cost {
    font-size: 30px;
    font-weight: 600;
    display: flex;
    max-width: 50%;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-left: auto;
    padding-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #000;
}

.sub-quote .quotation-box .cost p {
    font-size: 30px;
}

.sub-quote .detail-box h3::before, .sub-quote .detail-box h3::after {
    content: "";
    width: 50px;
    height: 50px;
    background: url("../img/quotation/clover.png") no-repeat;
    display: block;
}

.sub-quote .detail-box h3 {
    font-size: 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
}

.sub-quote .detail-box {
    border: 3px solid rgb(232, 186, 214);
    padding: 25px;
    position: relative;
}

.sub-quote .detail-box::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 15px solid transparent;
    /* Adjust size as needed */
    border-right: 15px solid transparent;
    /* Adjust size as needed */
    border-top: 20px solid rgb(232, 186, 214);
    /* Adjust size and color as needed */
    display: block;
    position: absolute;
    bottom: -20px;
    left: 10%;
}

.sub-quote .detail-box p {
    text-align: center;
}

.sub-quote .detail-box p span:nth-of-type(1) {
    color: red;
    font-size: 25px;
    font-weight: 600;
    word-break: keep-all;
}

.sub-quote .detail-box p span:nth-of-type(2) {
    color: red;
}

.sub-quote .input-box {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
}

.sub-quote input[type="text"] {
    width: 100%;
    height: 50px;
    border-radius: 5px;
}

.sub-quote input[type="text"]:invalid, .sub-quote input[type="text"]:invalid:required {
    background-color: rgb(232, 186, 214);
}

.sub-quote .submit-quote {
    width: 100%;
    height: 50px;
    font-size: 20px;
    background-color: rgb(232, 186, 214);
    color: #000;
    border: none;
    border-radius: 5px;
    font-weight: 600;
    transition: 0.3s ease;
    margin-top: 20px;
}

.sub-quote .submit-quote:hover {
    background-color: #000;
    color: #fff;
}

/* about-start */
.sub-about .inner {
    max-width: 900px;
    display: flex;
    flex-direction: column;
    row-gap: 50px;
}

.sub-about .flex-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
}

.sub-about .flex-box p {
    font-size: 20px;
    line-height: 1.7;
    font-family: var(--font-family01);
    color: #584a41;
}

.sub-about .flex-box p span {
    font-size: 28px;
}

.sub-about .flex-box h3 {
    font-size: 28px;
    font-weight: 600;
    font-family: var(--font-family01);
    color: #584a41;
}

.accentc {
    max-width: fit-content;
    width: 100%;
    margin-left: auto;
    display: block;
}

.sub-about .center {
    text-align: center;
    font-family: var(--font-family01);
    color: #584a41;
}

.secbtn {
    max-width: 600px;
    width: 100%;
    border: 3px double #f7bcd3;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 10px;
    margin: auto;
    transition: 0.3s ease;
    color: #f7bcd3;
    margin-top: 15px;
    font-family: var(--font-family03);
    gap: 15px;
}

.secbtn:hover {
    background-color: #f7bcd3;
    border: 3px double #fff;
    color: #fff;
}

.secbtn::after {
    content: "";
    max-width: 50px;
    width: 100%;
    height: 50px;
    background: url("../img/arrow-right_pink.png") no-repeat;
    background-position: right center;
    background-size: contain;
    display: block;
}

.secbtn.wh::after {
    max-width: 50px;
    height: 50px;
}

.secbtn.wh {
    border: 3px double #fff;
}

.secbtn.wh:hover {
    border: 3px double #f7bcd3;
    color: #f7bcd3;
}

.secbtn:hover::after {
    background: url("../img/arrow-right.png") no-repeat;
    background-position: right center;
    background-size: contain;
}

.secbtn.wh::after {
    background: url("../img/arrow-right.png") no-repeat;
    background-position: right;
    background-size: contain;
}

.secbtn.wh:hover::after {
    background: url("../img/arrow-right_pink.png") no-repeat;
    background-position: right;
    background-size: contain;
}

.sub-about.plx {
    position: relative;
    background-image: url("../img/about/px-bg.jpg");
    /* ← replace */
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    /* Parallax */
    background-repeat: no-repeat;
}

.sub-about .message-box {
    max-width: fit-content;
    margin: auto;
    display: flex;
    flex-direction: column;
    row-gap: 40px;
}

.sub-about.plx .linkttl {
    font-size: 65px;
    font-weight: 600;
    color: #e7e5e5;
    font-family: var(--font-family03);
}

.sub-about .descttl, .sub-about.plx .descttl {
    font-size: 28px;
    font-weight: 600;
    font-family: var(--font-family01);
}

.sub-about.plx .descttl {
    color: #584a41;
}

.sub-about.plx p {
    font-size: 20px;
    line-height: 1.7;
    font-family: var(--font-family01);
    color: #584a41;
}

.sub-about.plx .center span {
    font-size: 24px;
    font-weight: 600;
    font-family: var(--font-family01);
}

.about-yt iframe {
    width: 100%;
}

.sub-about.section03 .inner {
    max-width: 1100px;
}

.sub-about.section03 h3 {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 44px;
    font-weight: 600;
    font-family: var(--font-family01);
    color: #584a41;
}

.sub-about.section03 .descttl, .sub-about.section03 .center, .contact-sec .descttl, .contact-sec .flex-items2 .item p {
    color: #584a41;
}

.contact-sec .flex-items2 .item .hd-ttl {
    font-size: 20px;
    /* font-family: var(--font-noto); */
}

.sub-about.section03 .flex-items .descttl {
    font-size: 24px;
    display: flex;
    align-items: flex-end;
    gap: 15px;
    line-height: 1;
    font-family: var(--font-family01);
}

.sub-about.section03 .flex-items .descttl span {
    font-size: 60px;
    color: rgb(232, 186, 214);
    line-height: 1;
    display: block;
    margin-bottom: -6px;
}

.sub-about.section03 .flex-items {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    row-gap: 60px;
}

.sub-about.section03 .flex-items p {
    font-family: var(--font-udmincho);
    line-height: 2;
    color: #584a41;
}

.sub-about.section03 .flex-items .item {
    max-width: 425px;
    width: 100%;
    display: flex;
    flex-direction: column;
    row-gap: 30px;
}

.sub-about.section03 .flex-items .item .descttl {
    font-family: var(--font-udmincho);
}

.sub-about.section03 .flex-items .item div {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
}

.contact-sec {
    background: url("../img/about/accent2.png") no-repeat;
    background-position: center top;
    background-size: contain;
    padding: 100px 25px 100px 25px;
    position: relative;
}

.contact-sec::after {
    content: "";
    width: 100%;
    height: 100px;
    background: url("../img/about/accent-green.png") no-repeat;
    background-size: cover;
    background-position: center center;
    position: absolute;
    bottom: 0;
    left: 0;
}

.contact-sec .descttl {
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-sec .flex-items2 {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 30px;
}

.contact-sec .flex-items2 .item {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.contact-sec .flex-items2 .item p {
    font-size: 18px;
    font-family: var(--font-family03);
}

.contact-sec .secbtn {
    background-color: rgb(232, 186, 214);
    color: #fff;
}

.contact-sec .secbtn:hover {
    background-color: #fff;
    color: #000;
}

/* about-end */
/* faq-start */
.sub-faq p {
    font-size: 20px;
    font-family: var(--font-udmincho);
    color: #584a41;
}

.sub-faq .descttl {
    font-size: 24px;
    font-family: var(--font-udmincho);
    margin-bottom: 10px;
    letter-spacing: 8px;
    color: #584a41;
}

.sub-faq h2 {
    font-size: 40px;
    font-family: var(--font-udmincho);
    color: #584a41;
}

.sub-faq .center {
    max-width: fit-content;
    width: 100%;
    margin: auto;
}

.sub-faq.faqbox {
    background: url("../img/faq/bg.png") no-repeat;
    background-position: center;
    background-size: cover;
    position: relative;
}

/* .sub-faq.faqbox::before {
  content: "";
  width: 100%;
  height: 100%;
  background-color: #ffffff93;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
} */
.hidden {
    display: none;
}

.sub-faq.faqbox .faqwrap {
    background-color: #ffffffb2;
    padding: 0 25px;
}

.sub-faq.faqbox label {
    position: relative;
    z-index: 9;
    border-bottom: 1px solid #00000046;
    display: block;
}

.sub-faq.faqbox .question {
    height: 100px;
    display: flex;
    align-items: center;
    padding: 25px 0;
    position: relative;
    font-family: var(--font-udmincho);
}

.sub-faq.faqbox .question::after {
    content: "";
    width: 14px;
    height: 14px;
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
    transform: rotate(45deg);
    position: absolute;
    right: 20px;
    transition: 0.2s ease;
}

.sub-faq.faqbox .answer {
    padding: 25px 0 50px 0;
    height: 0;
    display: none;
    font-family: var(--font-family03);
}

.sub-faq.faqbox label:nth-of-type(2) .answer a {
    color: #a05222;
    font-size: 18px;
    font-size: var(--font-family01);
    text-decoration-line: underline;
}

.sub-faq.faqbox label:nth-of-type(4) .answer a {
    background-color: #d5d4d4;
    padding: 12px;
    border-radius: 10px;
    color: #fff;
    font-size: 14px;
    font-family: var(--font-family01);
}

.sub-faq.faqbox .answer .img-box {
    display: flex;
    gap: 30px;
}

.sub-faq.faqbox .answer .img-box div {
    display: flex;
    flex-direction: column;
    row-gap: 5px;
}

.sub-faq.faqbox .answer .img-box div:nth-of-type(2) {
    position: relative;
    bottom: -25px;
}

.sub-faq.faqbox .answer .img-box img {
    max-width: 200px;
}

#faq1:checked ~ .sub-faq.faqbox label:nth-of-type(1) .answer, #faq2:checked ~ .sub-faq.faqbox label:nth-of-type(2) .answer, #faq3:checked ~ .sub-faq.faqbox label:nth-of-type(3) .answer, #faq4:checked ~ .sub-faq.faqbox label:nth-of-type(4) .answer, #faq5:checked ~ .sub-faq.faqbox label:nth-of-type(5) .answer, #faq6:checked ~ .sub-faq.faqbox label:nth-of-type(6) .answer, #faq7:checked ~ .sub-faq.faqbox label:nth-of-type(7) .answer, #faq8:checked ~ .sub-faq.faqbox label:nth-of-type(8) .answer, #faq9:checked ~ .sub-faq.faqbox label:nth-of-type(9) .answer, #faq10:checked ~ .sub-faq.faqbox label:nth-of-type(10) .answer, #faq11:checked ~ .sub-faq.faqbox label:nth-of-type(11) .answer {
    display: block;
    height: inherit;
}

#faq1:checked ~ .sub-faq.faqbox label:nth-of-type(1) .question::after, #faq2:checked ~ .sub-faq.faqbox label:nth-of-type(2) .question::after, #faq3:checked ~ .sub-faq.faqbox label:nth-of-type(3) .question::after, #faq4:checked ~ .sub-faq.faqbox label:nth-of-type(4) .question::after, #faq5:checked ~ .sub-faq.faqbox label:nth-of-type(5) .question::after, #faq6:checked ~ .sub-faq.faqbox label:nth-of-type(6) .question::after, #faq7:checked ~ .sub-faq.faqbox label:nth-of-type(7) .question::after, #faq8:checked ~ .sub-faq.faqbox label:nth-of-type(8) .question::after, #faq9:checked ~ .sub-faq.faqbox label:nth-of-type(9) .question::after, #faq10:checked ~ .sub-faq.faqbox label:nth-of-type(10) .question::after, #faq11:checked ~ .sub-faq.faqbox label:nth-of-type(11) .question::after {
    transform: rotate(-140deg);
}

/* faq-end */
/* price-starts */
#price .lower-mv::after {
    display: none;
}

#price .lower-mv::before {
    background-color: #ffffff48;
}

.sub-price.top-price {
    position: relative;
    padding-top: 60px;
    padding-bottom: 60px;
}

.sub-price.top-price::before {
    content: "";
    width: 100%;
    height: 300px;
    background: url("../img/price/triangle.png") no-repeat;
    background-size: cover;
    background-position: center center;
    position: absolute;
    left: 0;
    top: -100px;
    display: block;
    z-index: 0;
}

.sub-price.top-price .inner {
    position: relative;
}

.sub-price .coloredttl {
    font-size: 42px;
    font-weight: 600;
    position: relative;
    text-align: center;
    color: #fff;
    font-family: var(--font-family01);
    margin-bottom: 100px;
}

.sub-price p.center {
    font-size: 26px;
    font-weight: 600;
    font-family: var(--font-family01);
    text-align: center;
    margin-bottom: 40px;
}

.sub-price.top-price .box {
    background-color: #f7bcd3;
    max-width: 620px;
    width: 100%;
    margin: auto;
    padding: 25px;
    margin-bottom: 50px;
}

.sub-price.top-price .box p {
    font-size: 26px;
    font-weight: 600;
    color: #fff;
    text-align: center;
    font-family: var(--font-family01);
    margin-bottom: 25px;
}

.sub-price.top-price .box ul {
    max-width: fit-content;
    width: 100%;
    margin: auto;
    font-size: 22px;
    font-family: var(--font-family01);
    color: #fff;
    display: flex;
    flex-direction: column;
    row-gap: 10px;
}

.sub-price.top-price .box ul li {
    padding-bottom: 5px;
    border-bottom: 1px dashed #fff;
}

.sub-price .flex-box {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    column-gap: 30px;
    row-gap: 20px;
    max-width: 900px;
    width: 100%;
    margin: auto;
}

.sub-price .flex-box .item {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
    position: relative;
    padding: 20px 25px;
    max-width: 430px;
    width: 100%;
    height: 380px;
    background-color: rgba(246, 235, 255, 0.664);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.sub-price .flex-box .item img.round {
    border-radius: 50vw;
    max-width: 145px;
    width: 100%;
    height: 145px;
}

.sub-price .flex-box .item .blob img {
    max-width: 167px;
    width: 100%;
    height: 174px;
}

.sub-price .flex-box .item .blob {
    position: relative;
    top: -25px;
}

.sub-price .flex-box .item p {
    display: flex;
    justify-content: center;
    color: rgb(88, 74, 65);
    font-family: var(--font-family01);
    font-weight: 600;
    font-size: 24px;
    margin-bottom: 5px;
}

.sub-price .flex-box .item a {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    color: rgb(88, 74, 65);
    font-family: var(--font-family01);
    transition: all 0.2s ease, visibility 0s;
    background: #fffdfa;
    border: 1px solid;
    border-width: 3px;
    border-image: linear-gradient(90deg, #f7bcd3 1%, #c8d2ea 100%) 1 / 3px stretch;
    max-width: 300px;
    width: 100%;
    margin: auto;
    gap: 5px;
    padding: 5px;
}

.sub-price .flex-box .item a:hover {
    background: linear-gradient(90deg, #f7bcd3 1%, #f9fbff 100%);
}

.sub-price .flex-box .item a img {
    max-width: 30px;
    height: 30px;
    width: 100%;
}

.sub-price .flex-box .img-box {
    display: flex;
    justify-content: space-evenly;
    align-items: flex-end;
    height: 100%;
}

.sub-price .flex-box .float {
    position: absolute;
    top: 35px;
    left: 20px;
    transform: rotate(-25deg);
    font-family: var(--font-family04);
    color: rgb(88, 74, 65);
    display: flex;
    gap: 5px;
}

.sub-price .paws {
    max-width: 45px;
    width: 100%;
    height: 40px;
}

.sub-price .float {
    font-size: 32px;
    line-height: 1;
}

.sub-price .flex-box .item:nth-of-type(3) .float {
    font-size: 28px;
}

.sub-price.pricelist h2 {
    font-family: var(--font-family01);
    color: rgb(88, 74, 65);
    font-weight: 600;
    text-align: center;
    font-size: 33px;
    margin-bottom: 60px;
    display: flex;
    align-items: center;
    column-gap: 30px;
}

.sub-price.pricelist h2::before, .sub-price.pricelist h2::after {
    content: "";
    max-width: 100px;
    width: 100%;
    height: 2px;
    border-bottom: 2px dotted #f7bcd3;
    display: block;
    padding-top: 15px;
}

.sub-price .cat-box {
    max-width: 900px;
    width: 100%;
    height: 450px;
    border: 15px solid rgb(254, 243, 244);
    padding: 25px 50px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin: auto;
    position: relative;
}

.sub-price .cat-box .float2 {
    position: absolute;
    left: 50%;
    top: 60px;
    transform: translateX(-50%);
}

.sub-price .cat-box .float2 span {
    position: absolute;
    top: -20px;
    left: -70px;
    font-size: 62px;
    font-family: var(--font-family04);
    color: rgb(88, 74, 65);
    transform: rotate(-30deg);
}

.sub-price .cat-box .round img {
    max-width: fit-content;
    width: 100%;
    border-radius: 50vw;
}

.sub-price .cat-box .round {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.sub-price .cat-box .round p {
    font-size: 20px;
    font-weight: 600;
    font-family: var(--font-family01);
}

.sub-price .cat-box p {
    font-size: 20px;
    font-weight: 600;
    font-family: var(--font-family01);
    color: rgb(88, 74, 65);
}

.sub-price .cat-box .item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.sub-price .cat-box .item:nth-of-type(3) {
    align-items: flex-end;
}

.sub-price .cat-box .item:nth-of-type(1) .blob {
    position: relative;
    top: -80px;
}

.sub-price .cat-box .item .blob img {
    max-width: fit-content;
    width: 100%;
}

.sub-price .cat-box .btn-sp {
    display: none;
}

.sub-price .cat-box .item .blob {
    position: relative;
    top: -25px;
}

/* .sub-price .cat-box .item #blob01 {
  mask-image: url("../img/price/blob01.png");
}

.sub-price .cat-box .item #blob02 {
  mask-image: url("../img/price/blob2.png");
} */
/* Shared mask settings */
.sub-price .cat-box .item #blob01, .sub-price .cat-box .item #blob02 {
    /* -webkit-mask-size: cover;
  mask-size: cover; */
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-mode: alpha;
    mask-mode: alpha;
}

/* BLOB 01 */
/* .sub-price .cat-box .item #blob01 {
  -webkit-mask-image: url("../img/price/blob01.svg");
  mask-image: url("../img/price/blob01.svg");
} */
/* BLOB 02 */
/* .sub-price .cat-box .item #blob02 {
  -webkit-mask-image: url("../img/price/blob2.svg");
  mask-image: url("../img/price/blob2.svg");
} */
.sub-price .cat-box .item a, .sub-price .cat-box .btn-sp a {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    color: rgb(88, 74, 65);
    font-family: var(--font-family01);
    transition: all 0.2s ease, visibility 0s;
    background: #fffdfa;
    border: 1px solid;
    border-width: 3px;
    border-image: linear-gradient(90deg, #f7bcd3 1%, #c8d2ea 100%) 1 / 3px stretch;
    max-width: 300px;
    width: 100%;
    margin: auto;
    gap: 5px;
    padding: 5px;
    margin-top: 15px;
}

.sub-price .cat-box .item a:hover {
    background: linear-gradient(90deg, #f7bcd3 1%, #f9fbff 100%);
}

.sub-price .cat-box .item a img {
    max-width: 30px;
    height: 30px;
    width: 100%;
}

.sub-price.pricelist .inner {
    display: flex;
    flex-direction: column;
    row-gap: 40px;
}

.morebtn {
    max-width: 550px;
    width: 100%;
    height: 50px;
    background-color: #f7bcd3;
    margin: auto;
    color: #fff;
    font-size: 20px;
    font-family: var(--font-family01);
    font-weight: 600;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    transition: all 0.2s ease, visibility 0s;
    border: 3px double #fffdfa;
}

.morebtn:hover {
    background-color: #3f7652;
}

.morebtn img {
    max-width: 50px;
}

.accent-boxtop img {
    max-width: fit-content;
    width: 100%;
}

/* price-ends */
@media screen and (max-width: 1200px) {
    .mininav ul {
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        text-align: center;
        gap: 0;
        row-gap: 15px;
    }

    .mininav ul li {
        max-width: calc(100% / 5 - 30px);
        width: 100%;
    }
}

@media screen and (max-width: 1000px) {
    .mv_text h1 {
        font-size: 50px;
    }

    .mv_text h3 {
        font-size: 20px;
    }

    .lower-mv .txt-box p {
        font-size: 42px;
    }

    .lower-mv .txt-box h2 {
        font-size: 24px;
    }

    .sub-about .flex-box {
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        row-gap: 20px;
    }

    .sub-about .flex-box img {
        order: 2;
    }

    .sub-about .flex-box .box {
        order: 1;
    }

    .sub-about .flex-box .btn-unq {
        order: 3;
    }

    /* .sub-about .flex-box p br {
    display: none;
  } */
    /* .sub-about .flex-box p {
    text-align: center;
    font-size: 18px;
  }

  .sub-about .flex-box h3 {
    font-size: 22px;
    text-align: center;
  } */
    .sub-about {
        position: relative;
    }

    .sub-price .coloredttl {
        font-size: 30px;
    }

    .sub-price p.center {
        font-size: 20px;
    }

    .sub-price.top-price .box p {
        font-size: 22px;
    }

    .sub-price.top-price .box ul {
        font-size: 18px;
    }

    .sub-price.pricelist h2 {
        font-size: 24px;
    }

    .sub-price .flex-box {
        flex-wrap: wrap;
        justify-content: space-evenly;
    }

    .sub-price.pricelist h2 {
        justify-content: center;
    }

    .sub-price .cat-box {
        max-width: 567px;
        width: 100%;
        height: auto;
    }

    .sub-price .cat-box .item .blob img, .sub-price .cat-box .round img {
        max-width: 120px;
        width: 100%;
    }

    .sub-price .cat-box .item .sp-none {
        display: none;
    }

    .sub-price .cat-box .btn-sp {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        row-gap: 20px;
        margin-top: 20px;
    }

    .sub-price .cat-box p {
        font-size: 12px;
    }

    .sub-price .cat-box p span {
        font-size: 16px;
    }

    .sub-price .cat-box {
        flex-wrap: wrap;
        padding-top: 80px;
    }

    .sub-price .cat-box .btn-sp .btnbox {
        display: flex;
        flex-direction: column;
        row-gap: 5px;
    }

    .sub-price .cat-box .btn-sp a {
        font-size: 15px;
        margin-top: 0;
    }

    .sub-price .cat-box .btn-sp a img {
        max-width: 25px;
        height: 25px;
    }

    .sub-price .cat-box .item {
        max-width: calc(100% / 3);
        width: 100%;
    }

    .sub-price .cat-box .item:nth-of-type(1) .blob {
        top: 0;
    }

    .sub-price .cat-box .item .blob {
        top: 0;
    }

    .sub-price .cat-box .item.float2 {
        position: relative;
        left: initial;
        transform: none;
        top: -60px;
    }

    .sub-price .cat-box .float2 span {
        left: initial;
        right: -45px;
        top: 15px;
        font-size: 35px;
        display: flex;
        flex-direction: row-reverse;
        gap: 15px;
    }

    .sub-price .cat-box .round {
        gap: 15px;
    }

    .sub-price.pricelist h2::before, .sub-price.pricelist h2::after {
        display: none;
    }

    .sub-faq h2 {
        font-size: 30px;
    }

    .sub-faq .descttl {
        font-size: 20px;
    }

    /* .sub-faq p {
    font-size: 16px;
  } */
    .mininav ul li {
        max-width: 50%;
        width: 100%;
    }
}

@media screen and (max-width: 768px) {
    :root {
        --padding-lr: 25px;
        --padding-50px: 25px;
        --padding-100px: 80px;
    }

    .lower-mv {
        min-height: 0;
        height: 200px;
    }

    .lower-mv .txt-box {
        bottom: 65px;
    }

    .lower-mv::after {
        height: 50px;
    }

    #privacy .ttlsub::before {
        width: 50px;
    }

    #privacy h2 {
        font-size: 24px;
    }

    #privacy .sub-privacy.pd-py {
        padding-top: 100px;
    }

    #privacy h3 {
        font-size: 16px;
    }

    #privacy .box ul p {
        font-size: 16px;
    }

    #privacy .ttlsub {
        font-size: 18px;
        text-align: center;
    }

    #privacy .box2 h4 {
        font-size: 18px;
        padding: 15px;
    }

    #privacy .box2 p {
        font-size: 14px;
    }

    #privacy .box2 .round {
        font-size: 16px;
        max-width: 180px;
    }

    #privacy .box2 .cornered {
        font-size: 16px;
    }

    .mininav a {
        font-size: 16px;
    }

    /* .sub-about.plx p {
    font-size: 16px;
  } */
    .accentc {
        position: absolute;
        right: 0;
    }

    .sub-about .accentc {
        max-width: 100px;
        right: 50%;
        top: 220px;
        transform: translateX(50%);
        z-index: 999;
    }

    .sub-about .flex-box h3 {
        margin-bottom: 20px;
    }

    .sub-about.plx p br {
        display: none;
    }

    .sub-about.plx p.center br {
        display: block;
    }

    .sub-about.plx .linkttl {
        font-size: 42px;
        border-bottom: 2px dotted #e7e5e5;
        width: 100%;
        display: block;
    }

    .sub-about.plx .center span {
        font-size: 18px;
    }

    .sub-about .descttl {
        font-size: 20px;
    }

    .sub-about.section03 h3 {
        font-size: 32px;
    }

    .sub-about.section03 h3 img {
        display: none;
    }

    .sub-about.section03 .sp-accent {
        max-width: 100px;
        width: 100%;
        margin: auto;
    }

    .sub-about .descttl img {
        max-width: 55px;
    }

    .sub-about .message-box {
        row-gap: 15px;
    }

    .contact-sec {
        background-size: 100% 50px;
    }

    /* .sub-about.section03 .flex-items .descttl {
    font-size: 18px;
  }

  .sub-about.section03 .flex-items .descttl {
    font-size: 16px;
  }

  .sub-about.section03 .flex-items .descttl span {
    font-size: 42px;
    margin: -5px;
  } */
    .sub-about.section03 .flex-items p {
        text-align: left;
    }

    .sub-about.section03 .flex-items .item p br {
        display: none;
    }

    .sub-about.section03 .flex-items .item {
        max-width: 650px;
    }

    .sub-about.section03 .flex-items {
        row-gap: 40px;
    }

    .contact-sec .flex-items2 {
        flex-wrap: wrap;
    }

    .contact-sec .flex-items2 img {
        max-width: 100%;
        width: 100%;
    }

    .contact-sec .flex-items2 .item {
        margin-right: auto;
    }

    /* .contact-sec .flex-items2 .item p {
    font-size: 16px;
  } */
    .sub-about img {
        max-width: 100%;
        width: 100%;
    }

    .sub-about .inner {
        row-gap: 25px;
    }

    .about-order {
        display: flex;
        flex-direction: column;
    }

    .about-order .sub-about:nth-of-type(1) {
        order: 1;
    }

    .about-order .sub-about:nth-of-type(2) {
        order: 3;
    }

    .about-order .about-yt {
        order: 2;
    }

    .about-order .sub-about:nth-of-type(3) {
        order: 4;
    }

    .about-order .contact-sec {
        order: 5;
    }

    /* quotation start */
    .sub-quote .item {
        padding: 15px;
    }

    /* quotation end */
    .sub-price.top-price {
        padding-top: 25px;
    }

    .sub-price .coloredttl {
        font-size: 24px;
        margin-bottom: 50px;
    }

    .sub-price.top-price::before {
        height: 100px;
        background-size: 100% 100px;
        top: 0;
    }

    .sub-price .flex-box .item {
        height: auto;
        padding-top: 25px;
    }

    .sub-price .flex-box .item .blob {
        top: 0;
    }

    .sub-price .flex-box .item:nth-of-type(even) .img-box {
        flex-direction: row-reverse;
    }

    .sub-price .flex-box .item:nth-of-type(even) .float {
        left: initial;
        right: 20px;
        transform: rotate(25deg);
        text-wrap: nowrap;
    }

    .sub-price .flex-box .item .float {
        font-size: 25px;
    }

    .sub-price .flex-box .item:nth-of-type(3) .float {
        font-size: 25px;
    }

    .sub-price .paws {
        max-width: 25px;
        height: 25px;
    }

    .sub-price .flex-box .item .blob img {
        height: auto;
    }
}

@media screen and (max-width: 650px) {
    /* quoatation start */ .sub-quote .ttl-desc {
        text-align: left;
        width: 100%;
    }

    .sub-quote .ttl-desc br:nth-child(1) {
        display: none;
    }

    .sub-quote .dashed-ttl {
        font-size: 22px;
    }

    .sub-quote .dashed-ttl span {
        min-width: 180px;
    }

    .sub-quote .display-box {
        flex-direction: column;
        align-items: center;
    }

    .sub-quote .item {
        width: 100%;
    }

    .sub-quote .quotation-box .value {
        padding: 15px;
    }

    .sub-quote .quotation-box .cost {
        font-size: 26px;
    }

    .sub-quote .detail-box {
        padding: 15px;
    }

    .basket .flex-box {
        flex-direction: column-reverse;
    }

    /* quotation end */
}

@media screen and (max-width: 567px) {
    .about-order .sub-about:nth-of-type(1).pd-py {
        padding-bottom: 0;
    }

    .sub-about .accentc {
        top: 165px;
        max-width: 75px;
    }

    .sub-about .flex-box h3 {
        margin-bottom: 10px;
    }

    .sub-about.section03 h3 {
        font-size: 28px;
    }

    .sub-about .descttl {
        font-size: 18px;
    }

    .sub-about.section03 h3 img, .sub-about .descttl img {
        max-width: 40px;
    }

    .sub-about .flex-box p {
        text-align: center;
        font-size: 14px;
        margin-bottom: 15px;
    }

    .sub-about .flex-box p span {
        font-size: 14px;
    }

    .sub-about .flex-box h3 {
        text-align: center;
    }

    .sub-about .center {
        font-size: 12px;
    }

    .secbtn {
        font-size: 14px;
    }

    .secbtn::after, .secbtn.wh::after {
        height: 30px;
        max-width: 30px;
    }

    .sub-about.plx .linkttl {
        font-size: 30px;
    }

    .sub-about .flex-box h3, .sub-about .descttl, .sub-about.plx .descttl {
        font-size: 16px;
    }

    .contact-sec .descttl {
        font-size: 20px;
        gap: 10px;
    }

    .sub-about.plx .descttl {
        font-size: 14px;
    }

    .sub-about.section03 .descttl.center {
        font-size: 18px;
    }

    .sub-about.section03 .flex-items .descttl {
        gap: 5px;
    }

    .sub-about.section03 .flex-items .item .descttl {
        font-size: 16px;
    }

    .sub-about.section03 .flex-items .descttl span {
        font-size: 40px;
        margin-bottom: -5px;
    }

    .sub-about.section03 .sp-accent {
        max-width: 70px;
    }

    .sub-about.plx p {
        font-size: 12px;
    }

    .contact-sec .flex-items2 .item .hd-ttl {
        font-size: 14px;
    }

    .contact-sec .flex-items2 .item p {
        font-size: 12px;
    }

    .contact-sec .secbtn {
        font-size: 14px;
    }

    .lower-mv .txt-box p {
        font-size: 20px;
    }

    .sub-price.pricelist h2 {
        margin-bottom: 25px;
    }

    .sub-price .flex-box .item p {
        font-size: 16px;
    }

    .sub-price .flex-box .float {
        font-size: 24px;
    }

    .sub-price .paws {
        max-width: 30px;
        width: 100%;
    }

    .sub-price .coloredttl {
        font-size: 24px;
        margin-bottom: 65px;
    }

    .sub-price.pricelist h2 {
        font-size: 16px;
    }

    .accent-boxtop img {
        height: 50px;
        max-width: 100%;
    }

    .sub-price.pricelist .inner {
        row-gap: 25px;
    }

    .sub-price.top-price {
        padding-top: 40px;
    }

    .morebtn {
        font-size: 14px;
    }

    .sub-price p.center, .sub-price.top-price .box p {
        font-size: 16px;
    }

    .sub-price.top-price::before {
        height: 70px;
        background-size: 100% 70px;
    }

    .sub-price .coloredttl {
        margin-bottom: 40px;
        font-size: 18px;
    }

    .sub-price.top-price {
        padding-top: 10px;
    }

    .sub-price .flex-box .item .blob {
        max-width: 130px;
        width: 100%;
        height: 155px;
    }

    .sub-price .flex-box .item img.round {
        max-width: 110px;
        height: 110px;
    }

    .sub-price .flex-box .item a {
        font-size: 13px;
    }

    .sub-price .flex-box .item a img {
        max-width: 25px;
        height: 25px;
    }

    .sub-price .cat-box {
        max-width: 430px;
    }

    .sub-price .cat-box p {
        font-size: 12px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        max-width: 100%;
    }

    .sub-price .cat-box .round p {
        justify-content: center;
    }

    .sub-price .cat-box p span {
        font-size: 14px;
        max-width: fit-content;
        width: 100%;
        display: block;
    }

    .sub-price .cat-box .item a img {
        max-width: 25px;
        height: 25px;
    }

    .sub-price .cat-box .btn-sp a {
        max-width: 100%;
        width: 100%;
    }

    .sub-price .cat-box .float2 span {
        right: -70px;
    }

    .sub-price .cat-box .btn-sp {
        width: 100%;
    }

    .sub-price .cat-box .btn-sp .btnbox {
        width: 100%;
    }

    .sub-price .cat-box {
        padding: 15px;
        padding-top: 70px;
    }

    .sub-price .flex-box .item .float {
        font-size: 20px;
    }

    .sub-price .flex-box .item:nth-of-type(3) .float {
        font-size: 20px;
    }

    .sub-price .cat-box .item {
        border-width: 10px;
    }

    .sub-faq.faqbox .faqwrap {
        padding: 0;
    }

    .sub-faq.faqbox .faqwrap {
        padding: 0 35px 0 10px;
    }

    .sub-faq p {
        font-size: 19px;
        line-height: 1.7;
    }

    .sub-faq.faqbox .answer {
        padding: 10px 0 60px 0;
    }

    .sub-faq.faqbox .answer .img-box {
        flex-wrap: wrap;
        row-gap: 10px;
    }

    .sub-faq.faqbox .answer .img-box img {
        max-width: 250px;
        width: 100%;
    }

    .sub-faq.faqbox .question::after {
        max-width: 12px;
        height: 12px;
        right: -15px;
        top: 25px;
    }

    .sub-faq .center {
        text-align: center;
        font-size: 12px;
    }

    .sub-faq h2 {
        font-size: 26px;
    }

    .sub-faq .descttl {
        font-size: 14px;
    }

    #privacy h3 {
        font-size: 14px;
    }

    #privacy .box ul p {
        font-size: 14px;
    }

    .mininav {
        display: none;
    }

    #privacy .box2 h4, #privacy .box2 .round, #privacy .box2 .cornered {
        font-size: 14px;
        padding: 7px 12.5px;
    }

    #privacy .box2 p {
        font-size: 12px;
    }

    #privacy .box2 img {
        max-width: 180px;
    }

    /* quotation  start*/
    .sub-quote .quotation-box .cost {
        min-width: 200px;
    }

    /* quotation end */
}

@charset "UTF-8"; /* header-globals */
:root {
    --header-inner: 1600px;
    --header-pd: 50px;
    --hide-pc: none;
    --header-height: 80px;
}

.hide-pc {
    display: none;
}

.header-main {
    display: flex;
    align-items: center;
    position: fixed;
    width: 100%;
    background: radial-gradient(circle at 100% 14.9%, rgba(133,178,129,0.55) 0 17.5%, rgba(133,178,129,0) 35%), radial-gradient(circle at 15.4% 8.99%, rgba(228,178,199,0.55) 0 38.25%, rgba(228,178,199,0) 85%), radial-gradient(circle at 100% 55.7%, rgba(220,209,196,0.55) 0 50%, rgba(220,209,196,0) 100%), radial-gradient(circle at 24% 74.16%, rgba(228,178,199,0.55) 0 35%, rgba(228,178,199,0) 50%), radial-gradient(circle at 48.9% 49.5%, rgba(255,253,250,0.55) 0 100%, rgba(255,253,250,0) 100%);
    z-index: 10;
    height: 137px;
    top: 0;
    left: 0;
    transition: transform 0.3s ease;
    padding: 0 20px;
}

.header_logo {
    display: flex;
}

.header-main_sub {
    top: 0;
    height: 80px;
    width: 100%;
}

.header-main.active {
    transition: 0.5s;
}

.header-main .inner {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    max-width: 1220px;
    gap: 20px;
}

.header-main_sub .inner {
    max-width: 1200px;
    margin: 0 auto;
}

.header-main .nav-box {
    display: flex;
    align-items: center;
    gap: 30px;
}

.header-main .header-nav .link-wrap {
    display: flex;
    gap: 22px;
}

.header-main .header-nav .link-wrap a {
    font-size: 18px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    position: relative;
    padding-bottom: 5px;
    font-family: var(--font-family01);
    transition: all 0.3s;
}

.header-main .header-nav .link-wrap a:hover {
    color: rgb(var(--font-color01));
    transition: all 0.3s;
}

.header-main .header-nav .link-wrap .link-item {
    width: fit-content;
}

.header-main .header-nav .link-wrap.sp {
    display: none;
}

.contact-box {
    display: flex;
    gap: 10px;
    position: relative;
}

.contact-box .follow_cta {
    position: absolute;
    top: -35px;
    right: -7px;
    font-family: var(--font-family04);
    font-size: 24px;
    color: #fff;
}

.contact-box .follow_cta:after {
    content: "|";
    position: absolute;
    left: -15px;
    top: 50%;
    color: #fff;
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(-20deg) translateY(-50%);
    font-size: 23px;
}

.contact-box .follow_cta:before {
    content: "|";
    position: absolute;
    right: -15px;
    top: 50%;
    color: #fff;
    width: fit-content;
    font-family: var(--font-family01);
    transform: rotate(20deg) translateY(-50%);
    font-size: 23px;
}

.contact-box .contact-tel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: end;
    color: #fff;
    font-weight: 600;
    position: relative;
    gap: 5px;
    font-size: 16px;
    margin-right: 10px;
}

.contact-box .contact-tel span {
    font-size: 14px;
}

.tel-num::before {
    content: "";
    display: inline-block;
    position: relative;
    width: 22px;
    height: 22px;
    background: url("../img/tel-icon02.png") no-repeat;
    background-position: center;
    background-size: 15px;
    background-color: #fff;
    border-radius: 100vh;
    left: 0px;
    margin: 0 7px 0 0;
    bottom: -5px;
}

.contact-box .contact-time {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: end;
    color: #fff;
    font-weight: 600;
    position: relative;
    gap: 5px;
    font-size: 16px;
    margin-right: 10px;
    line-height: 1.6;
}

.contact-box .tel-num {
    display: inline-block;
    margin-left: 0px;
    /* ← 好きなだけ右へずらせる */
    font-size: 16px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

.tel-num a {
    color: inherit;
    /* 親の色を引き継ぐ */
    text-decoration: none;
    /* 下線も消す */
}

.contact-box .contact_cta {
    position: relative;
}

.contact-box .contact_cta img {
    width: 50px;
}

.contact-box-sp {
    display: none;
}

/* accordion */
.accordion-btn {
    display: none;
}

.accordion-content {
    display: none;
}

    .mv_text_by {
        display:none;
    }
/* accordion */
@media screen and (max-width: 1500px) {
    .header-main .nav-box {
        gap: 20px;
    }
}

@media screen and (max-width: 1400px) {
    .header-main .header-nav .link-wrap {
        gap: 15px;
    }

    .header-main .header-nav .link-wrap .link-item {
        width: fit-content;
    }

    .header-main .header-nav .link-wrap a span {
        font-size: 12px;
    }

    .header-main {
        height: 100px;
    }

    .contact-box .follow_cta {
        top: -20px;
        right: -7px;
    }

    .contact-box .contact_cta {
        top: 10px;
    }
}

@media screen and (max-width: 1250px) {
    .header-main .header-nav .link-wrap {
        gap: 10px;
    }

    .header-main .header-nav .link-wrap a {
        font-size: 14px;
    }
}

@media screen and (max-width: 1000px) {
    .header__navi--box.flex {
        display: none;
        background: white;
        padding-top: var(--half-padding);
    }

    .header .sp-menu.sp span {
        width: 100%;
        height: 2px;
        display: block;
        background: #000;
        position: absolute;
        left: 0;
        -moz-transition: all 0.2s ease-in-out;
        -o-transition: all 0.2s ease-in-out;
        -webkit-transition: all 0.2s ease-in-out;
        transition: all 0.2s ease-in-out;
    }

    .header .sp-menu.sp {
        height: 25px;
        width: 25px;
        margin: 0 3% 0 0;
        position: relative;
    }

    .header .sp-menu.sp span:nth-child(1) {
        top: 4px;
    }

    .header .sp-menu.sp span:nth-child(2) {
        top: 12px;
    }

    .header .sp-menu.sp span:nth-child(3) {
        bottom: 3px;
    }

    .header__navi--list {
        padding: 20px 3% 20px;
    }

    .header__navi--box {
        position: absolute;
        top: 60px;
        background: #fff;
        display: none;
        width: 100%;
    }

    .header_logo {
        width: 100%;
    }

    .header-main .inner {
        justify-content: flex-end;
        gap: 0;
    }
}

@media screen and (max-width: 1100px) {
    .header-main {
        padding: 0 3%;
        height: 90px;
    }

    .header-main .nav-box {
        position: absolute;
        left: 0;
        top: 0;
        background-image: url("../img/nav_bg.png");
        background-position: center;
        background-size: 100%;
        width: 100%;
        height: 100vh;
        gap: 0;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
        align-items: center;
        justify-content: center;
        z-index: 10;
    }

    .header-main .nav-box::before {
        content: "";
        background-color: #ffc0cb82;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        position: absolute;
        z-index: 10;
    }

    .header-main .nav-box .header-nav {
        width: 100%;
        max-width: 290px;
        background-color: #ffffffc4;
        padding: 20px;
        position: relative;
        z-index: 11;
    }

    .header-main .nav-box.open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .header-main .header-nav .link-wrap {
        justify-content: center;
        gap: 0;
    }

    .header-main .header-nav .link-wrap .link-item {
        width: 100%;
        padding: 10px 3%;
    }

    .header-main .header-nav .link-wrap a {
        color: rgb(var(--font-color01));
        width: 100%;
        align-items: center;
        position: relative;
        font-size: 16px;
    }

    .header-main .header-nav .link-wrap a.home {
        color: rgb(255, 168, 207);
        font-size: 20px;
    }

    .header-main .header-nav .link-wrap a::after {
        content: "";
        background-image: url("../img/top/icon/arrow-right.png");
        background-repeat: no-repeat;
        background-position: center;
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 20px;
        height: 20px;
    }

    .header-main .header-nav .link-wrap.pc {
        display: none;
    }

    .header-main .header-nav .link-wrap.sp {
        display: flex;
    }

    .header-main .inner {
        justify-content: flex-end;
    }

    .header_logo {
        width: 100%;
        max-width: fit-content;
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
    }

    .sp-menu.hide-pc {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        gap: 7px;
        width: 50px;
        min-width: 50px;
        height: 50px;
        padding: 10px;
        background-color: transparent;
        transition: 0.5s ease;
        z-index: 11;
        position: relative;
        background-color: #fff;
    }

    .sp-menu span {
        display: block;
        width: 100%;
        height: 4px;
        border-radius: 100vh;
        background-color: #00000075;
        transition: 0.5s ease;
    }

    .sp-menu.active {
        gap: 0;
    }

    .sp-menu.active span:nth-of-type(1) {
        transform: rotate(-135deg);
        margin-top: 7px;
        margin-left: 3px;
        background-color: #000;
    }

    .sp-menu.active span:nth-of-type(2) {
        transform: rotate(-45deg);
        background-color: #000;
    }

    .sp-menu.active span:nth-of-type(3) {
        transform: rotate(-134deg);
        margin-bottom: 8px;
        margin-right: 2px;
        background-color: #000;
    }

    .sp-menu span:nth-of-type(1) {
        width: 30%;
        position: absolute;
        left: 10px;
        top: 10px;
    }

    .sp-menu span:nth-of-type(2) {
    }

    .sp-menu span:nth-of-type(3) {
        width: 30%;
        position: absolute;
        right: 10px;
        bottom: 10px;
    }

    .header-main .header-nav .link-wrap {
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .header-main .header-nav .link-wrap .link-item.accordion {
        padding: 0;
    }

    .contact-box-pc {
        display: none;
    }

    .contact-box-sp {
        display: flex;
        align-items: center;
        flex-direction: column;
        width: 100%;
        max-width: fit-content;
        position: absolute;
        top: 50%;
        left: 3%;
        transform: translateY(-50%);
        gap: 0;
    }

    .contact-box-sp .contact_btns-sp {
        display: flex;
    }

    .contact-box-sp .contact_btns-sp a img {
        width: 30px;
    }

    .contact-box-sp .contact_num {
        color: #fff;
        font-size: 13px;
        display: flex;
        flex-direction: column;
        text-align: center;
    }

    .contact-box-sp .contact_num span {
        font-size: 10px;
    }

    .header_logo img {
        width: 100%;
        max-width: 75px;
    }

    .contact-box .contact_cta {
        position: unset;
    }
}

@media screen and (max-width: 768px) {
}

@media screen and (max-width: 576px) {
    .accordion-btn {
        background: none;
        border: none;
        font-size: 14px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 10px 3%;
        font-weight: 600;
        color: #000;
    }

    .accordion-content {
        display: none;
    }

    .accordion-btn .icon {
        margin-left: 0;
        font-weight: 100;
        font-size: 30px;
        color: #3339;
    }

    .accordion.open .accordion-content {
        display: block;
    }

    .accordion.open .accordion-content li {
        padding: 10px 3% 10px;
        background: #EDEDED;
    }
}

@media screen and (max-width: 468px) {
}

@media screen and (max-width: 320px) {
    .sp-menu.hide-pc {
        width: 50px;
        min-width: 50px;
    }
}

@media screen and (max-width: 1200px) {
    footer {
        padding-bottom:100px;
    }
}

@media screen and (max-width: 1000px) {
    :root {
        --window-padding: 25px;
        --vertical-window-padding: 60px;
    }

    .sp {
        display: block;
    }

    .pc {
        display: none;
    }

    .btn01 {
        height: 50px;
        font-size: 16px;
        max-width: 250px;
        margin: 0 auto;
    }

    .follow_cta {
        position: unset;
        transform: unset;
        text-align: center;
        margin-bottom: 20px;
    }

    .footer_nav {
        position: relative;
    }

    .footer_nav ul {
        flex-direction: column;
    }

    .footer_nav ul li {
        text-align: center;
    }

    .footer_nav .footer_link {
    }

    .follow_cta a::after {
        display: none;
    }

    .follow_cta .btns a {
        padding: 0;
        margin: 0;
    }
}

@media screen and (max-width: 768px) {
    @charset "UTF-8";
    :root {
        --window-padding: 3%;
        --vertical-window-padding: 50px;
    }

    .mv_text h1 {
        font-size: 36px;
        text-shadow: #ffffffa6 0px 0px 6px;
    }

    .mv_text h2 {
        font-size: 24px;
    }

    .mv_text h3 {
        font-size: 14px;
    }

    .top_section h2 {
        flex-direction: column;
        line-height: 50px;
        gap: 0;
        display: none;
    }

    .top_section .wrap {
        flex-direction: column-reverse;
        gap: 30px;
    }

    .top_section .top_sec02 .wrap {
        flex-direction: column;
        padding-bottom: 0;
    }

    .top_section .wrap .cta {
        width: 100%;
        margin: 20px 0;
    }

    .map-pc {
        display: none;
    }

    .map-sp {
        display: block;
    }

    .top_section .img_box {
        margin-bottom: 50px;
    }

    .top_section .section_ttl-box {
        margin-bottom: 50px;
        align-items: center;
        flex-wrap: wrap;
        gap: 0;
    }

    .top_section .section_ttl-box h3 {
        margin-right: 0;
        width: 100%;
        margin-bottom: 10px;
        font-size: 40px;
        /* text-align: center; */
    }

    .top_section .section_ttl-box h3::after {
        right: 45%;
        transform: translateX(50%) translateY(-50%);
        width: 60px;
        top: 90%;
        /* right: 73%; */
        height: 60px;
        background-size: contain;
    }

    .top_section .img_box::after {
        width: 90px;
        height: 90px;
        right: 0;
    }

    .top_section .top_sec02 .img_box::after {
        right: unset;
        left: 0;
    }

    .top_section .top_sec03 .img_box::after {
        bottom: unset;
        top: -20px;
    }

    .top_section .section_ttl-box h5, .top_section .section_ttl-box h4 {
        width: fit-content;
    }

    .top_access .section_ttl {
        padding-left: 0;
        margin-bottom: 50px;
        flex-direction: column-reverse;
        gap: 0;
        line-height: 50px;
    }

    .top_access .section_ttl::before, .top_access .section_ttl::after {
        width: 15%;
    }

    .top_access .img_box .txt_wrap {
        position: unset;
    }

    .top_staff .section_ttl {
        flex-direction: column;
        gap: 20px;
        line-height: 40px;
        align-items: self-start;
    }

    .top_staff .section_ttl::before, .top_staff .section_ttl::after {
        width: 15%;
    }

    .top_staff .wrap .img_wrap .img_box.img_box.img_box03 span, .top_staff .wrap .img_wrap .img_box.img_box.img_box04 span {
        top: unset;
        bottom: 72%;
        left: 60%;
        transform: translate(-50%, 50%);
        width: 180px;
        font-size: 27px;
        height: auto;
    }

    .top_staff .wrap .img_wrap .img_box.img_box.img_box04 span {
        left: 37%;
    }

    .top_staff .wrap .img_wrap .img_box.img_box.img_box01 span, .top_staff .wrap .img_wrap .img_box.img_box.img_box02 span {
        right: 45%;
        bottom: 72%;
        transform: translate(50%, 50%);
        width: 160px;
        padding: 0 10px;
        font-size: 27px;
        height: auto;
    }

    .top_staff .wrap .img_wrap .img_box.img_box.img_box02 span {
        right: 61%;
    }

    .top_staff .wrap .img_wrap {
        flex-direction: column;
        align-items: center;
        gap: 0;
        margin-bottom: 0;
    }

    .top_staff .wrap .img_wrap:nth-child(2) {
        margin-bottom: 30px;
    }

    .top_staff .wrap .img_wrap .img_box.img_box04, .top_staff .wrap .img_wrap .img_box.img_box02, .top_staff .wrap .img_wrap .img_box.img_box03, .top_staff .wrap .img_wrap .img_box.img_box01 {
        margin-top: 0;
        margin-left: 0;
        width: 100%;
    }

    .top_staff .wrap .img_wrap .img_box img {
        width: 45%;
    }

    .top_staff .wrap .img_wrap .img_box.img_box02, .top_staff .wrap .img_wrap .img_box.img_box04 {
        text-align: end;
        margin-top: -25px;
    }

    .top_staff .wrap .txt_box {
        font-size: 16px;
    }

    .top_staff .inner {
        padding-bottom: 30px;
    }

    .sub_company .section_ttl-box {
        margin-bottom: 50px;
        flex-direction: column;
    }

    .sub_company.bg::after {
        height: 25%;
    }

    .sub_company .sec01 .wrap .img_box h3 {
        text-align: center;
        margin-bottom: 30px;
        font-size: 26px;
        font-family: var(--font-family01);
        color: rgb(var(--font-color01));
    }

    .sub_company .sec02 .txt_box h2 {
        font-size: 26px;
    }

    .sub_company .sec02 .txt_box p {
        font-size: 16px;
    }

    .sub_company .sec03 .wrap .card {
        flex-direction: column;
    }

    .sub_company .sec03 .wrap .card .img_box {
        width: 100%;
        margin-bottom: 30px;
    }

    .sub_company .sec03 .wrap .card .txt_box .name {
        margin: 0 auto 35px;
    }

    .sub_company .sec03 .wrap .card .txt_box .desc {
        padding-left: 0;
        margin: 0 auto;
    }

    .sub_company .sec03 .wrap .card.card02, .sub_company .sec03 .wrap .card.card04 {
        flex-direction: column-reverse;
    }

    .sub_company .sec03 .wrap .card.card02 .txt_box .name {
        margin: 0 auto 30px;
    }

    .sub_company .sec03 .wrap .card.card02 .txt_box .desc {
        padding-left: 0;
        max-width: 450px;
    }

    .sub_company .sec03 .wrap .card.card03 .txt_box .desc {
        padding-left: 0;
        max-width: 450px;
    }

    .sub_company .sec03 .wrap .card.card04 .txt_box .name {
        margin: 0 auto 30px;
    }

    .sub_company .sec03 .wrap .card.card04 .txt_box .desc {
        padding-left: 0;
        max-width: 450px;
    }

    .sub_company.sec04 .section_ttl-box .inner {
        gap: 20px;
        flex-direction: column;
    }

    .sub_company.sec04 .section_ttl-box div:nth-child(2) h2 {
        font-size: 28px;
    }

    .sub_company.sec04 .wrap .wrap_flex {
        flex-direction: column-reverse;
        gap: 30px;
        padding: 0 3%;
    }

    .sub_company.sec04 .wrap .wrap_flex .txt_box p {
        font-size: 16px;
    }

    .sub_company.sec04 .wrap:nth-child(2) {
        margin-bottom: 0;
    }

    .sub_company .sec03 .wrap .card.paw-icon::after {
        left: 10%;
    }

    .sub_company .sec03 .wrap .card.paw-icon.paw-icon2::after {
        right: 10%;
    }

    .sub-service_flow .section-ttl_box div.line {
        display: none;
    }

    .sub-service_flow .wrap01 {
        display: none;
    }

    .sub-service_flow .section-ttl_box div:nth-child(2) {
        width: 100%;
        border-top: solid 1px rgb(247, 188, 211);
        border-bottom: solid 1px rgb(247, 188, 211);
        padding: 15px 3%;
    }

    .sub-service_flow.sec02 .ttl02 {
        margin-bottom: 200px;
        font-size: 16px;
    }

    .sub-service_flow.sec02 .ttl {
        font-size: 20px;
    }

    .sub-service_flow.sec02 .wrap02::after {
        top: -150px;
    }

    .sub-service_flow .wrap01 .card {
        width: 47%;
    }

    .sub-service_flow.sec01 {
        padding-top: 40px;
        padding-bottom: 0;
    }

    .sub-service_flow .section-ttl_box {
        margin-bottom: 0;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex {
        flex-direction: column;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex.pc {
        display: none;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex.sp {
        display: flex;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex .img_box {
        width: 100%;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex .img_box p {
        margin-bottom: 0;
        margin-top: 20px;
    }

    .sub-service_flow.sec02 .wrap02.wrap02-03 .card .wrap-flex {
        padding: 40px 20px 20px;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex .img_box span {
        font-size: 14px;
        color: rgb(var(--font-color01));
        font-family: var(--font-family01);
        margin-top: 20px;
    }

    @keyframes arrow-down_animation {
        from {
            bottom: -9%;
        }

        90% {
            bottom: -10%;
        }

        80% {
            bottom: -11%;
        }

        70% {
            bottom: -12%;
        }

        60% {
            bottom: -13%;
        }

        50% {
            bottom: -14%;
        }

        40% {
            bottom: -13%;
        }

        30% {
            bottom: -12%;
        }

        20% {
            bottom: -11%;
        }

        10% {
            bottom: -10%;
        }

        to {
            bottom: -9%;
        }
    }

    @keyframes arrow-down_animation02 {
        from {
            bottom: -4%;
        }

        90% {
            bottom: -4.5%;
        }

        80% {
            bottom: -5%;
        }

        70% {
            bottom: -5.5%;
        }

        60% {
            bottom: -6%;
        }

        50% {
            bottom: -6.5%;
        }

        40% {
            bottom: -6%;
        }

        30% {
            bottom: -5.5%;
        }

        20% {
            bottom: -5%;
        }

        10% {
            bottom: -4.5%;
        }

        to {
            bottom: -4%;
        }
    }

    @keyframes arrow-down_animation03 {
        from {
            bottom: -4%;
        }

        90% {
            bottom: -4.5%;
        }

        80% {
            bottom: -5%;
        }

        70% {
            bottom: -5.5%;
        }

        60% {
            bottom: -6%;
        }

        50% {
            bottom: -6.5%;
        }

        40% {
            bottom: -6%;
        }

        30% {
            bottom: -5.5%;
        }

        20% {
            bottom: -5%;
        }

        10% {
            bottom: -4.5%;
        }

        to {
            bottom: -4%;
        }
    }

    .sub-service_flow.sec02 .wrap02.arrow-down::before {
        display: none;
    }

    .sub-service_flow.sec02 .wrap02 .card a {
        font-size: 18px;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex .txt_box {
        font-size: 16px;
    }

    .sub-service_flow.sec02 .wrap02.wrap02-02 .card .wrap-flex .txt_box h3 {
        font-size: 19px;
        margin-bottom: 25px;
        padding: 0;
        padding-right: 35px;
        margin: 30px auto 20px 0;
    }

    .sub-service_flow.sec02 .wrap02.wrap02-02 .card .wrap-flex .txt_box h3::after {
        width: 40px;
        height: 40px;
        right: unset;
        left: 10px;
        bottom: 30px;
    }

    .sub-service_flow.sec02 .wrap02.wrap02-02 .card .wrap-flex.ribbon::after {
        width: 60px;
        height: 60px;
        left: unset;
        right: 5px;
        top: 6px;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex:nth-last-child(1) {
        margin-bottom: 0;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex:nth-last-child(1) .txt_box h3 {
        padding: 0;
        font-size: 18px;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex:nth-last-child(1) .txt_box h3::after {
        left: unset;
        right: -20px;
    }

    .sub-service_flow.sec02 .wrap02 {
        padding: 50px 3% 50px;
        margin-bottom: 150px;
    }

    #common-cases .ttl {
        font-size: 32px;
        padding: 50px 3% 0;
    }

    #common-cases .ttl span {
        font-size: 20px;
    }

    .sub-common_cases .case .case_name {
        font-size: 20px;
    }

    .sub-common_cases::before {
        background-size: 200% 40%;
        background-position: 50% 0;
    }

    .sub-common_cases::after {
        background-size: 120% 10%;
        background-position: 50% 0;
    }

    .sub-common_cases.sec05::before {
        background-size: 200% 24%;
        background-position: 50% 0;
    }

    .sub-common_cases.sec05::after {
        background-size: 120% 10%;
        background-position: 50% 0;
    }

    .sub-common_cases .case .case_wrap.paw-right::before {
        right: 0;
        top: 0;
        width: 40px;
        height: 40px;
    }

    .sub-common_cases .case .case_wrap.paw-left::before {
        right: 0;
        left: unset;
        top: 0;
        width: 40px;
        height: 40px;
    }

    .mv {
        background-image: url("../img/top/mv_sp.jpg");
        background-repeat: no-repeat;
        background-size: cover;
        background-position: left bottom;
        height: auto;
        min-height: auto;
        position: relative;
        width: 100%;
        /* 高さの指定（スマホでちょうどよく見せるための例） */
        /* ※すでに高さが設定されている場合は、既存のものを優先してください */
        height: calc(100vh - 90px);
        /* 画面の高さの65%くらい（縦書きテキストとのバランスが良いです） */
        min-height: 510px;
        /* はみ出し防止（念のため） */
        overflow: hidden;
    }

    .mv .scrollmv {
        right: auto;
        bottom: 30%;
        font-size: 10px;
        left: 0;
        display: none;
    }

    .mv .line {
        right: auto;
        left: 47px;
        display: none;
    }

    .mv_text_by {
        display:block;
        color: #FFF;
        font-family: "Italianno", cursive;
        font-size: 40px;
        position: absolute;
        z-index: 2;
        left: 0;
        bottom: 20px;
        line-height: 1;
        width: 100%;
        text-align: center;
    }

    .mv_text_by span {
        color: #FFF;
        display: block;
        position: relative;
        font-family: "Playfair Display";
        font-size: 18px;
    }

    .mv_text {
        display: none;
    }

    .mv_text_sp {
        display: block;
        /* 古いSafariのバグを回避するため、絶対配置で浮かす */
        position: absolute;
        top: 40px;
        /* 上からの位置（画像に合わせて調整してください） */
        right: 40px;
        /* 右からの位置（縦書きは右から左に進むので右寄りが基本です） */
        z-index: 9;
        line-height: 1;
        width: 25px;
    }

    .mv_text_sp p {
        /* 縦書きの指定（右から左へ） */
        writing-mode: vertical-rl;
        -webkit-writing-mode: vertical-rl;
        /* 必須：古いiOS（Safari）への保険 */
        /* フォントと見た目の設定 */
        font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
        /* 整理した明朝体 */
        color: #fff;
        /* 写真に合わせて文字色を調整してください */
        font-size: 26px;
        font-weight: bold;
        /* 縦書きならではの余白調整 */
        letter-spacing: 0.15em;
        /* 文字と文字の縦の隙間（少し広げるとスッキリ上品に見えます） */
        line-height: 1;
        /* 複数行になった場合の行間（横の隙間） */
        margin: 0;
        /* 文字の向きを正しく保つ（半角英数字などが混ざった時の横転がりを防ぐ） */
        text-orientation: upright;
        /* テキストに薄い影をつけて、背景が明るい花でも文字を読みやすくする */
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
        white-space: nowrap;
    }

    p.mv_text_sp_01 {
    }

    p.mv_text_sp_02 {
        position: relative;
        bottom: 158px;
        left: -50px;
    }

    .text_shadow01 {
        text-shadow: rgb(0 0 0 / 18%) 0px 4px 5px;
    }
}

@media screen and (max-width: 568px) {
    #page_top {
        width: 95%;
        right: 50%;
        transform: translateX(50%);
        bottom: 10px;
        background: rgb(128, 128, 128);
        z-index: 5;
    }

    #page_top .sp {
        display: flex;
        justify-content: center;
        width: 100%;
    }

    #page_top .pc {
        display: none;
    }

    #page_top a {
        width: 100%;
        height: auto;
        border-radius: 0;
        background: rgb(128, 128, 128);
        box-shadow: unset;
        padding: 15px;
        gap: 5px;
    }

    #page_top a span:nth-child(1) {
        font-size: 16px;
    }

    #page_top a span:nth-child(2) {
        font-size: 14px;
        margin-bottom: 0;
    }

    #page_top a img {
        width: 25px;
        height: 25px;
    }

    #page_top a:hover {
        background: rgb(128, 128, 128);
    }

    .mv_text h1 {
        font-size: 23px;
    }

    .mv_text h3 {
        padding-right: 9%;
        font-size: 12px;
    }

    .mv_text h2 {
        font-size: 14px;
        margin-bottom: 20px;
    }

    .mv_text h2:nth-child(2) {
        margin-bottom: 0px;
    }

    .pink_btn span.mail::after {
        width: 20px;
        height: 20px;
        right: -30px;
    }

    .pink_btn {
        padding: 0 15% 0 10%;
        font-size: 14px;
        max-width: fit-content;
        height: 50px;
    }

    .sub_company .sec02::after {
        background-size: 130% 100%;
        background-repeat: no-repeat;
        height: 40px;
    }

    .sub_company .sec02::before {
        background-size: 130% 100%;
        background-repeat: no-repeat;
        height: 40px;
    }

    .top_section .top_sec02 .lower_txt {
        font-size: 10px;
    }

    .top_section .top_sec03 .lower_txt {
        font-size: 10px;
        text-align: center;
    }

    .top_section .top_sec02 .about_btn, .top_section .top_sec03 .about_btn {
        font-size: 14px;
        padding: 20px 10px 20px;
        max-width: 300px;
    }

    .top_section .about_btn::after {
        width: 40px;
        height: 20px;
        right: 10%;
        top: 45%;
        display: none;
    }

    .top_section .top_sec02 .lower_txt::before, .top_section .top_sec03 .lower_txt::before {
        right: 0;
    }

    .top_section .top_sec02 .lower_txt::after, .top_section .top_sec03 .lower_txt::after {
        left: 0;
    }

    .top_section .section_ttl-box h4 {
        font-size: 22px;
    }

    .top_section .section_ttl-box h5 {
        font-size: 20px;
    }

    .top_section .wrap .cta_textbox p {
        font-size: 14px;
        text-align: center;
    }

    .top_section .top_sec03 .wrap .cta_textbox p {
        padding-bottom: 0;
    }

    .top_section .top_sec03 .lower_txt02 {
        font-size: 17px;
    }

    .top_section h2 {
        line-height: 50px;
        font-size: 40px;
        align-items: self-start;
        padding-left: 30px;
    }

    .top_section .lower_txt {
        font-size: 13px;
    }

    .top_section h2 span {
        font-size: 20px;
        width: 100%;
        text-align: end;
    }

    .top_section h2::after {
        width: 75%;
        margin-left: 0;
        top: -5px;
    }

    .top_section h2::before {
        width: 48%;
        margin-right: 0;
        top: unset;
        bottom: 6px;
        transform: unset;
    }

    .top_section .section_ttl-box h3 {
        text-align: start;
        align-items: self-start;
        flex-direction: row;
        gap: 10px;
        /* font-size: 70px; */
    }

    .top_section .top_sec02 .section_ttl-box h3 {
        justify-content: flex-end;
    }

    .top_section .top_sec02 .section_ttl-box, .top_section .top_sec03 .section_ttl-box {
        margin-bottom: 25px;
    }

    .top_section .top_sec02 .section_ttl-box h5 {
        width: 50%;
        font-size: 14px;
    }

    .top_section .top_sec03 .section_ttl-box h5 {
    }

    .top_section .section_ttl-box h3::after {
        right: 72%;
        /* transform: translateX(50%) translateY(-50%); */
        top: 80%;
        /* background-size: contain; */
    }

    .top_section .top_sec02 .section_ttl-box h3::after {
        right: -10px;
        transform: translateY(-50%);
    }

    .top_section .wrap .cta .cta_btnwrap a {
        width: 200px;
        height: 200px;
    }

    .top_section .wrap .cta .cta_btnwrap a span:nth-child(1) {
        font-size: 30px;
        font-weight: 600;
    }

    .top_section .top_sec02 .wrap .cta .cta_btnwrap a span:nth-child(3), .top_section .top_sec03 .wrap .cta .cta_btnwrap a span:nth-child(3) {
        font-size: 14px;
        letter-spacing: 0px;
    }

    .top_section .wrap .cta .cta_btnwrap a img {
        width: 100%;
        max-width: 50px;
    }

    .top_section .wrap .cta .cta_btnwrap a span:nth-child(3) {
        font-size: 14px;
    }

    .top_section .section_ttl-box {
        margin-bottom: 0px;
    }

    .top_section .top_sec02 .section_ttl-box h4 {
        font-size: 30px;
        line-height: 40px;
        width: 100%;
        text-align: center;
        width: fit-content;
    }

    .top_section .top_sec03 .section_ttl-box h4 {
        font-size: 30px;
    }

    .top_section .top_sec03 .wrap .cta_textbox p span::after, .top_section .top_sec03 .wrap .cta_textbox p::after {
        display: none;
    }

    .top_section .top_sec03 .wrap .cta_textbox p span {
        border-bottom: solid 1px rgb(var(--accent-color01));
        width: fit-content;
    }

    .top_section .wrap .cta_textbox .large_txt {
        font-size: 20px;
    }

    .top_access .section_ttl {
        line-height: 60px;
        font-size: 45px;
        align-items: self-start;
        margin-bottom: 0;
    }

    .top_access .section_ttl span {
        width: 100%;
        text-align: end;
    }

    .top_access .section_ttl::after {
        top: 0;
        width: 65%;
    }

    .top_access .section_ttl::before {
        width: 30%;
        bottom: 0;
        top: unset;
        transform: unset;
    }

    .top_staff .section_ttl span {
        padding-left: 20%;
    }

    .top_access .img_box .cta_wrap.cta01 {
        position: unset;
    }

    .top_access .img_box .cta_wrap {
        width: 200px;
        height: 200px;
    }

    .top_access .img_box .cta_wrap a img {
        width: 68px;
    }

    .top_access .img_box .cta_wrap a .small_txt {
        font-size: 10px;
    }

    .top_access .img_box .cta_wrap a .pink_txt {
        font-size: 14px;
    }

    .top_access .img_box .cta_wrap.cta02 a img {
        width: 140px;
    }

    .top_access .img_box .cta_wrap.cta02 a .small_txt {
        font-size: 12px;
    }

    .top_access .img_box .cta_wrap a .yellow_txt {
        font-size: 14px;
    }

    .top_access .img_box .cta_wrap.cta02 {
        position: unset;
        width: 200px;
        height: 200px;
        margin: -24px 5% 30px auto;
    }

    .top_access .img_box {
        display: flex;
        flex-direction: column;
    }

    .top_access .img_box .txt_wrap {
        font-size: 14px;
    }

    .top_information .section_ttl {
        font-size: 45px;
        margin-bottom: 0;
        line-height: 55px;
        border-top: solid 1px;
        padding-top: 5px;
    }

    .top_information .desc {
        text-align: center;
        font-family: var(--font-family01);
        font-size: 16px;
        margin-bottom: 50px;
        font-weight: 900;
        border-bottom: solid 1px;
        padding-bottom: 15px;
    }

    .top_information .inner .news_list {
        padding: 0;
        margin-bottom: 0;
    }

    .sub_company .sec01 .wrap .img_box h3 {
        font-size: 23px;
    }

    .sub_company .sec03 .ttl {
        margin-bottom: 50px;
    }

    .sub_company .sec03 .wrap .card .txt_box .desc, .sub_company .sec03 .wrap .card.card04 .txt_box .desc, .sub_company .sec03 .wrap .card.card02 .txt_box .desc, .sub_company .sec03 .wrap .card.card03 .txt_box .desc {
        padding: 0 3%;
        font-size: 14px;
    }

    .sub_company .sec03 {
        padding-bottom: 30px;
    }

    .sub_company.sec04 .wrap .wrap_flex .txt_box h3 {
        font-size: 18px;
    }

    .pink_btn.brown {
        max-width: 310px;
        font-size: 14px;
        padding: 0;
    }

    .pink_btn span.arrow::after {
        width: 16px;
        height: 16px;
        right: -25px;
    }

    .contactbnr .wrap h3 {
        font-size: 17px;
    }

    .contactbnr .contact_mail {
        font-size: 14px;
    }

    .contactbnr .contact_tel {
        font-size: 30px;
    }

    .contactbnr .wrap02 {
        font-size: 16px;
    }

    .sub_company.sec04 .section_ttl-box {
        padding: 30px 3%;
        margin-bottom: 30px;
    }

    .sub_company.bg::after {
        height: 39%;
        background: linear-gradient(186deg, rgba(247, 188, 211, 1) 50%, rgba(255, 255, 255, 0) 50%);
    }

    .sub_company .section_ttl-box div:nth-child(2) h3 {
        font-size: 16px;
    }

    .sub_company .section_ttl-box div:nth-child(2) h2 {
        font-size: 25px;
    }

    .sub-service_flow .section-ttl_box div:nth-child(2) h3 {
        font-size: 20px;
    }

    .sub-service_flow .section-ttl_box div:nth-child(2) h2 {
        font-size: 28px;
    }

    .sub-service_flow {
        padding-bottom: 30px;
    }

    .sub-service_flow .wrap01 .card svg {
        right: 0;
    }

    .sub-service_flow.sec02 .ttl {
        font-size: 24px;
    }

    .sub-service_flow.sec02 .ttl02 {
        font-size: 16px;
        margin-bottom: 150px;
    }

    .sub-service_flow.sec02 .wrap02::after {
        top: -135px;
        width: 135px;
    }

    .sub-service_flow.sec02 .wrap02 {
        padding: 20px 3% 3%;
        margin-bottom: 150px;
    }

    .sub-service_flow.sec02 .wrap02 .card h2 {
        font-size: 20px;
        margin-bottom: 25px;
    }

    .sub-service_flow.sec02 .wrap02 .card h2 span {
        font-size: 14px;
    }

    .sub-service_flow.sec02 .wrap02 .card .wrap-flex .txt_box {
        font-size: 14px;
        line-height: 25px;
    }

    .sub-service_flow.sec02 .wrap02 .card p {
        font-size: 14px;
    }

    .sub-service_flow.sec02 .wrap02 .card a {
        font-size: 16px;
    }

    @keyframes arrow-down_animation02 {
        from {
            bottom: -5%;
        }

        90% {
            bottom: -5.5%;
        }

        80% {
            bottom: -6%;
        }

        70% {
            bottom: -6.5%;
        }

        60% {
            bottom: -7%;
        }

        50% {
            bottom: -7.5%;
        }

        40% {
            bottom: -7%;
        }

        30% {
            bottom: -6.5%;
        }

        20% {
            bottom: -6%;
        }

        10% {
            bottom: -5.5%;
        }

        to {
            bottom: -5%;
        }
    }

    .sub-voice .wrap_voice .wrap_flex {
        flex-direction: column;
    }

    .sub-voice .wrap_voice .wrap_flex .img_box {
        width: 100%;
    }

    .sub-common_cases .case .img_box {
        display: flex;
        flex-direction: column-reverse;
        gap: 10px;
    }

    .sub-common_cases .case .img_box span {
        position: unset;
        transform: unset;
    }

    .sub-common_cases .case .case_wrap ul li span:nth-child(2) {
        width: 50%;
        text-align: end;
    }

    .sub-common_cases .case .case_wrap ul {
        padding: 20px 3%;
    }

    .sub-common_cases .case .case_wrap ul li {
        font-size: 14px;
    }

    .top_section .wrap {
        gap: 10px;
        padding-bottom: 15px;
    }

    .top_section .inner .top_sec01.mb80, .top_section .inner .top_sec02.mb80 {
        margin-bottom: 40px;
    }

    .top_section .inner .top_sec03.mb80 {
        margin-bottom: 0;
    }

    .top_section .top_sec03 .img_box::after {
        top: -30px;
        right: -10px;
    }

    .top_section .img_box::after {
        width: 70px;
        height: 70px;
    }

    .top_staff .section_ttl {
        font-size: 50px;
        gap: 0;
    }

    .top_staff .section_ttl::before {
        width: 70%;
        top: 30%;
    }

    .top_staff .section_ttl::after {
        bottom: -5px;
        top: unset;
        width: 70%;
    }

    .top_staff::after {
        height: 18%;
        background: linear-gradient(169deg, rgba(247, 188, 211, 0.9) 50%, rgb(255 253 250) 50%);
    }

    .top_information .section_ttl::before, .top_information .section_ttl::after {
        display: none;
    }

    .top_information .inner h3 {
        margin-bottom: 20px;
        font-size: 35px;
        color: #fff;
    }

    .top_information .inner h3::after {
        border-bottom: dashed 1px #000;
    }

    .top_information .inner .news_list .blog-post p {
        font-size: 14px;
        color: #fff;
        margin-bottom: 0;
    }

    .top_information .inner .news_list .blog-post a {
        font-size: 16px;
        color: #fff;
    }

    .top_information {
        padding: 0 6% 30px;
    }

    .top_information .inner {
        padding: 20px 1% 20px;
    }

    .news_list .blog-post .txt_box {
        width: 100%;
        display: flex;
        flex-direction: column-reverse;
        justify-content: start;
        gap: 10px;
    }

    #blog-posts-container .blog-post.active {
        border-bottom: solid 1px #fff;
        padding: 15px 10px 30px;
        margin-bottom: 0;
        border-right: solid 1px #fff;
        border-left: solid 1px #fff;
    }

    #blog-posts-container .blog-post.active:nth-child(1) {
        border-top: solid 1px #fff;
    }

    #blog-posts-container .blog-post.img_wrap.active {
        display: flex;
        gap: 10px;
    }

    .news_list .blog-post .img_box {
        width: 30%;
    }

    .news_list .blog-post .img_box img {
        width: 100%;
    }

    footer {
        padding-bottom: 100px;
    }

    footer .desc {
        font-size: 14px;
        margin-bottom: 5px;
    }

    .footer_logo a {
        margin: 0 auto 20px;
    }

    .footer_contact {
        margin-bottom: 20px;
    }

    .footer_contact a {
        font-size: 25px;
        margin: 0 auto 20px;
        padding-left: 50px;
    }

    .footer_contact a::after {
        background-size: 22px;
        width: 40px;
        height: 40px;
    }

    .footer_contact p {
        font-size: 14px;
    }

    .footer_contact .pink_bg {
        font-size: 14px;
        max-width: 300px;
    }

    .footer_nav ul {
        margin-bottom: 20px;
    }

    .copyright {
        font-size: 14px;
    }
}

@media screen and (max-width: 375px) {
    .sub-service_flow .wrap01 .card {
        width: 100%;
    }
}
