@charset "UTF-8";

body {
    margin-inline: auto;
    padding: 0;
    font-family: "Noto Sans JP", "ヒラギノ角ゴシック", "Hiragino Sans", "メイリオ", Meiryo, sans-serif;
    color: #483C2F;
    line-height: 1.3;
    word-wrap: break-word;
    width: 100%;
    height: 100dvh;
    font-weight: 500;
    overscroll-behavior-y: none;
    -webkit-font-smoothing: antialiased;
    position: relative;
    top: 0;
}

img {
    display: block;
    width: 100%;
    height: auto;
}

.mincho {
    font-family: "Noto Serif JP", "ヒラギノ明朝 ProN W6", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}


main {
    margin: 0 auto;
    overflow: hidden;
}


/* トップ */
.top {
    display: block;
    width: 100%;
    background: #E4D0C6;
    padding: 0 20px 67px;
    position: relative;
    z-index: 0;
}
@media screen and (max-width: 768px) {
    .top {
        padding: 0 4.1% 11%;
}
}

.top::before {
    content: '';
    display: inline-block;
    width: 265px;
    height: 564px;
    background: url(../images/top_left_flowers.png) no-repeat center center / contain;
    position: absolute;
    z-index: 1;
    top: 40px;
    left: 0px;
}
@media screen and (max-width: 768px) {
    .top::before {
        width: 28vmin;
        height: 62vmin;
        top: -7vmin;
        left: -2%;
}
}

.top::after {
    content: '';
    display: inline-block;
    width: 254px;
    height: 691px;
    background: url(../images/top_right_flowers.png) no-repeat center center / contain;
    position: absolute;
    z-index: 1;
    top: 80px;
    right: 0px;
}
@media screen and (max-width: 768px) {
    .top::after {
        width: 31vmin;
        height: 79vmin;
        top: 49vmin;
        left: 72%;
}
}

.top-box {
    display: block;
    width: 100%;
    position: relative;
    z-index: 100;
}

.top .logo-img {
    display: block;
    width: fit-content;
    background: #FFF;
    margin: 0 auto;
    text-align: center;
    padding: 31px 95px 22px;
    border-radius: 0 0 80px 80px;
}
@media screen and (max-width: 768px) {
    .top .logo-img {
        padding: 5.8% 20% 4.38%;
        border-radius: 0 0 15vmin 15vmin;
        width: 77%;
    }
}

.top h1 {
    line-height: 1.0em;
    font-feature-settings: "palt";
    font-size: 109px;
    font-weight: 400;
    text-align: center;
    margin-top: 50px;
}
@media screen and (max-width: 768px) {
    .top h1 {
        font-size: 11.6vmin;
        margin-top: 15%;
    }
}

.top .copy {
    font-size: 30px;
    font-weight: 500;
    line-height: 1.4em;
    text-align: center;
    margin: 33px 0 70px 0;
}
@media screen and (max-width: 768px) {
    .top .copy {
        font-size: 6.1vmin;
        line-height: 8vw;
    }
}

.top .circle-box {
    display: block;
    width: fit-content;
    margin: 0 auto 48.5px;
}
@media screen and (max-width: 768px) {
    .top .circle-box  {
        margin: 0 auto 7.2vmin;
    }
}

.top .circle {
    display: flex;
    gap: 2vmin;
}
@media screen and (max-width: 768px) {
    .top .circle  {
        flex-flow: column;
        gap: 5.5vmin;
        width: 70%;
        margin: 0 auto;
    }
}


/* お問い合わせボックス */
.call {
    display: block;
    width: fit-content;
    margin: 0 auto;
    background: #FFF;
    border: 4px solid #483C2F;
    border-radius: 15px 15px;
    box-shadow: 4px 4px 2px rgba(4, 0, 0, 0.3);
    padding: 20px 41px;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .call {
        border: 1vmin solid #483C2F;
        border-radius: 3vmin 3vmin;
        padding: 3%;
    }
}

.call .call-text {
    font-size: 28px;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .call .call-text {
        font-size: 4.7vmin;
    }
}

.call .call-number {
    display: block;
    width: 100%;
    font-size: 62px;
    font-weight: 900;
    padding-left: 40px;
    position: relative;
    font-family:"Noto Sans","Noto Sans CJK JP";
}
@media screen and (max-width: 768px) {
    .call .call-number {
        font-size: 10.5vmin;
        padding: 0 0 2vmin 6.5vmin;
        line-height: 1;
    }
}

.call .call-number::before {
    content: '';
    display: block;
    width: 37px;
    height: 39px;
    background: url(../images/call.png) no-repeat center center / contain;
    position: absolute;
    left: 6px;
    top: calc(50% - 15px);
}
@media screen and (max-width: 768px) {
    .call .call-number::before {
    width: 6.5vmin;
    height: 6.5vmin;
    left: 0%;
    top: 22%;
    }
}


.top .call-date {
    font-size: 18px;
    font-weight: 600;
}
@media screen and (max-width: 768px) {
    .call .call-date {
        font-size: 3.5vmin;
    }
}


/* 注意事項 */
.attention {
    font-size: 16px;
    font-feature-settings: "palt";
    text-align: center;
    margin-top: 26px;
}
@media screen and (max-width: 768px) {
    .attention {
        display: block;
        font-size: 3.8vw;
        text-align: left;
        width: fit-content;
        margin: 4% auto 0
    }
}


/* お客様の声 */
.voice{
    width: 100%;
    padding: 5% 12%;
}
@media screen and (max-width: 768px) {
    .voice{
        padding: 9% 5%;
    }
}

.voice .voice-img {
    display: block;
    width: 75%;
    margin: 0 auto;
}
@media screen and (max-width: 768px) {
.voice .voice-img {
        display: block;
        width: 100%;
        margin: 0 auto;
    }
}
.voice .voice-text {
    font-size: 3.45vmin;
    font-weight: 600;
    color: #FFF;
    background: #483C2F;
    text-align: center;
    margin: 20px auto 0;
    padding: 8px 30px;
    width: fit-content;
}
@media screen and (max-width: 768px) {
    .voice .voice-text {
        display: block;
        font-size: 6vw;
        font-weight: 600;
        color: #FFF;
        background: #483C2F;
        text-align: center;
        margin: 20px auto 0;
        padding: 8px 30px;
        width: 100%;
    }
}


/* 共通h2 */
h2 {
    display: block;
    width: fit-content;
    font-size: 60px;
    line-height: 1em;
    border-bottom:solid 5px #483C2F;
    margin: 0 auto;
}
@media screen and (max-width: 768px) {
    h2 {
        font-size: 11vmin;
        border-bottom:solid 0.8vmin #483C2F;
    }
}

/* プラン例 */
.plan {
    padding: 56px 20px 124px;
    background: #F9F2E5;
}
@media screen and (max-width: 768px) {
    .plan {
        padding: 8% 4.2% 14%;
        background: #F9F2E5;
    }
}


.plan .plan-text1 {
    font-size: 2.9vmin;
    font-weight: 600;
    text-align: center;
    margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
    .plan .plan-text1 {
        font-size: 3.9vw;
        font-feature-settings: "palt";
        margin-bottom: 10%;
    }
}


.plan .plan-text2 {
    font-size: 2.9vmin;
    font-weight: 600;
    color: #D07B64;
    text-align: center;
    margin: 56px 0 45px;
}
@media screen and (max-width: 768px) {
    .plan .plan-text2 {
        font-size: 3.9vw;
        margin: 6.4% 0;
    }
}


.plan .plan-img-pc {
    display: block;
    width: fit-content;
    margin: 0 auto;
}
@media screen and (max-width: 768px) {
    .plan .plan-img-pc {
        display: none;
    }
}

.plan .plan-img-sp {
    display: none;
}
@media screen and (max-width: 768px) {
    .plan .plan-img-sp {
        display: contents;
        width: fit-content;
        margin: 0 auto;
    }
}



/* サービス概要 */
.service {
    padding: 73px 0 80px;
}
@media screen and (max-width: 768px) {
    .service {
        padding: 17% 0 21.8%;
    }
}

.service table{
    border-spacing: 7.8vmin 2vmin;
    border-collapse: separate;
    margin: 60px auto 0;
}
@media screen and (max-width: 768px) {
    .service table{
        margin: 13.3% auto 0;
    }
}

@media screen and (max-width: 768px) {
    .service tr {
        outline: none;
        display: grid;
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    .service tr:not(:last-child)  {
        margin-bottom: 8.4vmin;
    }
}

.service td{
    font-weight: 600;
    font-size: 2.6vmin;
    font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
    .service td {
        margin: 0 auto;
        font-size: 5vmin;
        line-height: 1.1em;
}
}

.service td:nth-of-type(1) {
    color: #AD936A;
    text-align: center;
    display: block;
    width: 27vmin;
    letter-spacing: 0.1em;
    position: relative;
}
@media screen and (max-width: 768px) {
    .service td:nth-of-type(1) {
        width: 48vmin;
        font-size: 5.5vmin;
        margin-bottom: 3vmin;
}
}

.service td:nth-of-type(1)::before {
    content: '';
    display: block;
    width: 3px;
    height: 31px;
    background: #AD936A;
    top: 2px;
    position: absolute;
}
@media screen and (max-width: 768px) {
    .service td:nth-of-type(1)::before {
        width: 1.3%;
        height: 100%;
        top: 5%;
}
}

.service td:nth-of-type(1)::after {
    content: '';
    display: block;
    width: 3px;
    height: 31px;
    background: #AD936A;
    top: 2px;
    right: 0px;
    position: absolute;
}
@media screen and (max-width: 768px) {
    .service td:nth-of-type(1)::after {
        width: 1.3%;
        height: 100%;
        top: 5%;
}
}

.service span {
    font-size: 2vmin;
}
@media screen and (max-width: 768px) {
    .service span {
        font-size: 3.8vmin;
    }
}


/* 申し込み方法 */
.sign {
    background: #E1E9DD;
    padding: 53px 0 84px;
}
@media screen and (max-width: 768px) {
    .sign {
        padding: 12% 11% 11.3%;
    }
}

.sign .sign-way-flow {
    margin-top: 52px;
}
@media screen and (max-width: 768px) {
    .sign .sign-way-flow {
        margin-top: 6.3%;
    }
}

.sign .sign-way-flow li {
    display: flex;
    flex-flow: column;
    justify-content: space-between;
    width: 600px;
    font-size: 30px;
    color: #FFF;
    background: #483C2F;
    padding: 30px 10px;
    text-align: center;
    margin: 0 auto;
    position: relative;
}
@media screen and (max-width: 768px) {
    .sign .sign-way-flow li{
    font-size: 7.5vmin;
    width: 100%;
    }
}

.sign .sign-way-flow li:not(:last-child) {
    margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
    .sign .sign-way-flow li:not(:last-child) {
        margin-bottom: 11%;
    }
}

.sign .sign-way-flow li:not(:last-child)::after {
    content: "";
    width: 36px;
    height: 20px;
    background: url(../images/triangle.png) no-repeat center center / contain;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 112%;
}
@media screen and (max-width: 768px) {
    .sign .sign-way-flow li:not(:last-child)::after {
        width: 25vmin;
        height: 5vmin;
        top: 108%;
    }
}

.documents {
    text-align: center;
}

.documents .documents-title {
    margin: 74px 0 39px;
    font-size: 30px;
    letter-spacing: 0.1em
}
@media screen and (max-width: 768px) {
    .documents .documents-title {
        margin: 10.5% 0 5.8%;
        font-size: 8.3vmin;
    }
}

.documents .documents-number {
    display: block;
    width: 280px;
    font-size: 22px;
    background: #FFF;
    margin: 0 auto;
    font-weight: 600;
}
@media screen and (max-width: 768px) {
    .documents .documents-number {
        font-size: 6vmin;
        width: 100%;
        font-weight: 500;
    }
}

.documents  .documents-color {
    color: #689254;
}

.documents .documents1-items .documents-color {
    font-weight: 900;
}

.documents .documents1-items {
    margin: 12px 0 22px;
    width: 100%;
    font-size: 16px;
    font-weight: 600;
    display: flex;
    justify-content: center;
}
@media screen and (max-width: 768px) {
    .documents .documents1-items {
        margin: 3.3% 0 8.6%;
        width: 100%;
        font-size: 5vmin;
        display: block;
    }
}

.documents .documents1-items li {
    font-size: 16px;
    font-feature-settings: "palt";
    letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
    .documents .documents1-items li {
        font-size: 5vmin;
        font-weight: 500;
    }
}


.documents p:nth-of-type(3) {
    margin-bottom: 15px;
}

.documents .documents1-items li:nth-of-type(2) {
    margin: 0 16px;
}

.documents .documents3-title {
    font-size: 16px;
    margin: 9px 0 11px;
    font-weight: 600;
    font-feature-settings: "palt";
    letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
    .documents .documents3-title {
        font-size: 4.8vmin;
        margin: 3% 0;
        font-weight: 500;
    }
}

.documents .document3-box {
    display: block;
    width: fit-content;
    margin: 0 auto;
    position: relative;
}
@media screen and (max-width: 768px) {
    .documents .document3-box {
        width: 56vmin;
    }
}

.documents .document3-box::before {
    content: "";
    width: 10px;
    height: 110%;
    border-top: solid 2px;
    border-bottom: solid 2px;
    border-left: solid 2px;
    left: -27px;
    top: -5px;
    position: absolute;
}
@media screen and (max-width: 768px) {
    .documents .document3-box::before {
        width: 5%;
        left: -15%;
    }
}

.documents .document3-box::after {
    content: "";
    width: 10px;
    height: 110%;
    border-top: solid 2px;
    border-bottom: solid 2px;
    border-right: solid 2px;
    left: 640px;
    top: -5px;
    position: absolute;
}
@media screen and (max-width: 768px) {
    .documents .document3-box::after {
        width: 5%;
        left: 110%;
    }
}

.documents .documents3-items {
    display: flex;
    justify-content: center;
    margin: 0 auto;
    gap: 18px;
}
@media screen and (max-width: 768px) {
    .documents .documents3-items {
        display: block;
        text-align: left; 
    }
}

.documents .documents3-items li{
    font-size: 16px;
    font-weight: 600;
    font-feature-settings: "palt";
    position: relative;
}
@media screen and (max-width: 768px) {
    .documents .documents3-items li {
        font-size: 4.4vmin;
        font-weight: 500;
        line-height: 1.5em;
    }
}
@media screen and (max-width: 768px) {
    .documents .documents3-items li:nth-of-type(4) {
        margin-top: 2%;
    }
}

.documents .documents-small {
    font-size: 13px;
    font-weight: 600;
    font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
    .documents .documents-small {
        font-size: 2.8vmin;
        font-weight: 500;
        font-feature-settings: "palt";
        display: block;
        padding-left: 2em;
        line-height: 1em;
    }
}

@media screen and (max-width: 768px) {
    .documents .small2 {
        line-height: 1.4em;
        margin-top: -1%;
    }
}

.documents .fa-solid.fa-circle {
    color: #689254;
    margin-right: 7px;
}
@media screen and (max-width: 768px) {
    .documents .fa-solid.fa-circle {
        font-size: 90%;
        margin-right: 3%;
}
}



/* お問い合わせボックス 下 */
.call-under {
    padding: 60px 0 47px;
}
@media screen and (max-width: 768px) {
    .call-under {
        padding: 10% 4.5% 13%;
    }
}


/* フッター */
footer {
    text-align: center;
    padding: 54px 0 50px;
    background-color: #CCBB9F;
}
@media screen and (max-width: 768px) {
    footer {
        padding: 12% 0 10%;
    }
}

footer .company {
    font-size: 30px;
    font-weight: 600;
}
@media screen and (max-width: 768px) {
    footer .company {
        font-size: 6.1vw;
    }
}

footer .company-url {
    font-size: 24px;
    font-weight: 600;
    margin: 20px 0 48px;
}
@media screen and (max-width: 768px) {
    footer .company-url {
        font-size: 6.1vw;
        margin: 0 0 48px;
    }
}

footer a:link, footer a:visited, footer a:hover, footer a:active {
    color: #483C2F;
}

footer .company-explanation {
    font-size: 16px;
    font-weight: 600;
}
@media screen and (max-width: 768px) {
    footer .company-explanation {
        font-size: 4.4vw;
        font-weight: 500;
    }
}


/* none */
.br-pc-none {
    display: none;
}
@media screen and (max-width: 768px) {
    .br-pc-none {
        display: block;
    }
}


.span-pc-none {
    display: none;
}
@media screen and (max-width: 768px) {
    .span-pc-none {
        display: contents;
    }
}

@media screen and (max-width: 768px) {
    .span-sp-none {
        display: none;
    }
}


.p-pc-none {
    display: none;
}
@media screen and (max-width: 768px) {
    .p-pc-none {
        display: block;
    }
}

@media screen and (max-width: 768px) {
    .p-sp-none {
        display: none;
    }
}