@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Alata&family=Noto+Sans+JP:wght@100..900&family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap');

:root {
    --noto-font: "Noto Sans JP", sans-serif;
    --zen-font: "Zen Maru Gothic", serif;
    --ala-font: "Alata", sans-serif;
    --color-green: #28b7af;
    --color-green2: #5bc8c2;
    --color-pink: #ff7d96;
    --color-orange: #ef8a29;
}

html,
body {
    font-family: var(--noto-font);
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: 0.1em;
    overflow-x: hidden;
}

/* header */
header {
    padding: 30px 0;
}

header .header-inner {
    width: 100%;
    margin: 0 auto;
}

header h1 {
    max-width: 500px;
    width: calc(100% - 100px);
    margin: 0 auto 30px;
}

header h1 img {
    width: 100%;
    height: auto;
}

header .header-dl {
    width: 130px;
    overflow: visible;
}

header .header-dl img {
    display: block;
    /* 画像をブロック要素として扱う */
    max-width: none;
    /* 画像が縮まらないようにする */
    height: auto;
    /* 縦横比を維持 */
    position: relative;
    /* 画像の制御を容易にする */
    width: 130px;
    margin: 0;
}

/* header navigation */

header nav {
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    padding: 15px 0;
}

@media (max-width:860px) {
    header nav {
        display: none;
    }
}

header nav ul {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 0;
}

header nav li {
    position: relative;
    /* 子要素を配置しやすくする */
    overflow: visible;
    /* liからはみ出しても表示させる */
}

header nav li.list {
    gap: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 40px;
    border-right: 1px solid #000;
    line-height: 1.3;
}

@media (max-width:1400px) {
    header nav li.list {
        padding: 0 20px;
    }
}

@media (max-width:1100px) {
    header nav li.list {
        padding: 0 15px;
    }
}

header nav li.list:first-child {
    border-left: 1px solid #000;
}

header nav ul a {
    font-family: var(--zen-font);
    font-weight: 700;
    color: #534c4a;
    letter-spacing: 0.15em;
    margin-right: 0.15em;
}

header nav ul a span {
    font-size: 10px;
    display: block;
    text-align: center;
    font-family: var(--ala-font);
    color: var(--color-green);
    letter-spacing: 0.1em;
}


/* mv */
#mv {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
}

#mv img {
    max-width: 100%;
    display: block;
    margin: 0 auto;
}

/* intro */
#intro {
    margin-bottom: 120px;
}

@media (max-width:640px) {
    #intro {
        margin-bottom: 60px;
    }
}

#intro .intro-inner {
    margin-bottom: 50px;
}

#intro .intro-msg {
    font-family: var(--zen-font);
    font-weight: 500;
    font-size: 1.75em;
    text-align: center;
    line-height: 1.75;
    letter-spacing: 0.2em;
    position: relative;
}

@media (max-width:640px) {
    #intro .intro-msg {
        letter-spacing: 0;
    }

    #intro .intro-msg span {
        display: block;
    }
}

#intro .intro-msg sup {
    font-size: 0.6em;
    position: relative;
    top: -0.6em;
}

#intro .intro-about {
    max-width: 780px;
    width: calc(100% - 20px);
    margin: 0 auto;
    padding: 30px;
    background-color: #fefce0;
    border-top: 1px solid var(--color-green);
    border-bottom: 1px solid var(--color-green);
}

@media (max-width:640px) {
    #intro .intro-about {
        letter-spacing: 0;
    }

    #intro .intro-about span {
        display: block;
    }
}


#intro h2 {
    font-family: var(--zen-font);
    font-weight: 500;
    letter-spacing: 0.2em;
    text-align: center;
    color: var(--color-green);
    position: relative;
    font-size: 1.5em;
    position: relative;
    margin-bottom: 30px;
}

#intro h2 sup {
    font-size: 0.6em;
    position: relative;
    top: -0.6em;
}

/* contact */
#contact {
    margin-bottom: 120px;
}

#contact h2 {
    font-family: var(--zen-font);
    font-weight: 500;
    font-size: 1.4em;
    text-align: center;
    line-height: 1.55;
    letter-spacing: 0.2em;
    position: relative;
    color: #fff;
    padding-top: 20px;
    margin-bottom: 100px;
}

#contact h2::before {
    width: 700px;
    height: 155px;
    display: block;
    content: "";
    background: url(../img/img-contact.png) no-repeat top center;
    position: absolute;
    top: 0;
    left: calc(50% - 350px);
    z-index: -1;
}

#contact .leaf01-box {
    position: absolute;
    z-index: -1;
    width: 150px;
    left: calc(50% - 550px);
    margin-top: 20px;
}

@media (max-width:1050px) {
    #contact .leaf01-box {
        left: 0;
        margin-top: 60px;
    }
}

@media (max-width:860px) {
    #contact .leaf01-box {
        display: none;
    }
}

#contact .leaf01-box img {
    width: 100%;
    height: auto;
}

#contact .leaf02-box {
    position: absolute;
    width: 120px;
    left: calc(50% + 400px);
    margin-top: -30px;
}

@media (max-width:1050px) {
    #contact .leaf02-box {
        left: calc(100% - 150px);
    }
}

@media (max-width:860px) {
    #contact .leaf02-box {
        display: none;
    }
}

#contact .leaf02-box img {
    width: 100%;
    height: auto;
}

#contact h3 {
    margin-bottom: 50px;
}

#contact h3 img {
    max-width: 400px;
    width: calc(100% - 30px);
    height: auto;
    display: block;
    margin: 0 auto;
}

#contact .contact-inner {
    max-width: 800px;
    width: calc(100% - 20px);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: top;
}

@media (min-width:861px) {
    #contact .contact-inner .contact-inner-img {
        width: 300px;
    }

    #contact .contact-inner .contact-inner-detail {
        width: calc(100% - 330px);
    }
}

@media (max-width:860px) {
    #contact .contact-inner .contact-inner-img {
        width: 250px;
    }

    #contact .contact-inner .contact-inner-detail {
        width: calc(100% - 280px);
    }
}

@media (max-width:640px) {
    #contact .contact-inner {
        display: block;
    }

    #contact .contact-inner .contact-inner-img {
        width: 250px;
        margin: 0 auto 20px;
    }

    #contact .contact-inner .contact-inner-detail {
        max-width: 500px;
        width: calc(100% - 20px);
        margin: 0 auto;
    }
}

#contact .contact-inner .contact-inner-img img {
    width: 100%;
    height: auto;
}


#contact h4 {
    display: flex;
    align-items: center;
    font-weight: bold;
    font-size: 1.2em;
    letter-spacing: 0.5em;
    margin-bottom: 10px;
}

#contact h4::after {
    margin-left: 10px;
    content: '';
    flex: 1;
    border-bottom: 1px solid #000;
}

#contact .name-box {
    font-family: var(--zen-font);
    font-weight: 700;
    font-size: 1.625em;
    letter-spacing: 0.25em;
}

#contact .leaf03-box {
    position: absolute;
    z-index: -1;
    width: 150px;
    left: calc(50% - 590px);
    margin-top: -30px;
}

@media (max-width:1050px) {
    #contact .leaf03-box {
        left: 10px;
        z-index: 2;
    }
}

@media (max-width:860px) {
    #contact .leaf03-box {
        display: none;
    }
}

#contact .leaf03-box img {
    width: 100%;
    height: auto;
}

/* service */
#service {
    background-color: #ecf7f8;
    padding: 80px 0 150px;
}

#service h2 {
    width: 60%;
    margin: 0 auto 30px;
}

#service h2 span.main {
    display: block;
    font-weight: bold;
    font-family: var(--zen-font);
    font-size: 1.75em;
    text-align: center;
    letter-spacing: 0.2em;
    border-bottom: 2px dotted #000;
    margin-bottom: 10px;
}

#service h2 span.sub {
    font-family: var(--ala-font);
    display: block;
    text-align: center;
    color: var(--color-green);
    font-size: 0.9em;
    letter-spacing: 0.2em;
    font-weight: bold;
}

#service .service-inner {
    position: relative;
    max-width: 800px;
    width: calc(100% - 20px);
    margin: 0 auto;
}

#service .service-inner dt {
    background-color: var(--color-green2);
    color: #fff;
    width: 100%;
    padding: 15px 0;
    border-radius: 10px;
    font-size: 1.3125em;
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.2em;
}

@media (max-width:640px) {
    #service .service-inner dt {
        letter-spacing: 0.05em;
    }
}

#service .service-inner dd {
    padding: 10px 0 0;
    margin-bottom: 30px;
    text-align: center;
}

#service .service-img2 {
    position: absolute;
    width: 240px;
    margin: 0 auto;
    top: -10px;
    left: -130px;
}

@media (max-width:1050px) {
    #service .service-img2 {
        width: 150px;
        top: -10px;
        left: -10px;
    }
}

@media (max-width:860px) {
    #service .service-img2 {
        display: none;
    }
}

#service .service-img2 img {
    width: 100%;
    height: auto;
    border-radius: 50%;
}

#service .service-img {
    max-width: 600px;
    width: calc(100% - 100px);
    margin: 0 auto;
}

#service .service-img img {
    width: 100%;
    height: auto;
}

#service .leaf04-box {
    position: absolute;
    width: 180px;
    left: calc(100% - 50px);
    margin-top: -30px;
}

@media (max-width:860px) {
    #service .leaf04-box {
        display: none;
    }
}

#service .leaf04-box img {
    width: 100%;
    height: auto;
}

/* flow */
#flow {
    background-color: #fff4f6;
    padding: 80px 0 150px;
}

@media (max-width:640px) {
    #flow {
        padding-bottom: 80px;
    }
}

#flow .flow-inner {
    width: calc(100% - 10px);
    margin: 0 auto;
}

@media (max-width:640px) {
    #flow .flow-inner span {
        display: block;
    }
}

#flow h2 {
    color: var(--color-pink);
    font-family: var(--zen-font);
    margin-bottom: 40px;
    text-align: center;
}

@media (max-width:640px) {
    #flow h2 {
        line-height: 1.3;
    }
}

#flow h2 .sub {
    display: block;
    text-align: center;
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 10px;
}

#flow h2 .sub::before {
    font-size: 1.1em;
    content: "\\";
    font-family: 'Courier New', Courier, monospace;
}

#flow h2 .sub::after {
    font-size: 1.1em;
    content: "/";
    font-family: 'Courier New', Courier, monospace;
}

#flow h2 .main {
    display: inline-block;
    margin: 0 auto;
    font-weight: bold;
    font-size: 2em;
    letter-spacing: 0.2em;
    position: relative;
}

@media (max-width:640px) {
    #flow h2 .main {
        letter-spacing: 0;
    }
}

@media (min-width:641px) {
    #flow h2 .main::before {
        position: absolute;
        content: "";
        width: calc(100% + 0.2em);
        left: -0.2em;
        bottom: 1.75em;
        height: 3px;
        background-color: var(--color-pink);
    }

    #flow h2 .main::after {
        position: absolute;
        content: "";
        width: calc(100% + 0.2em);
        left: -0.2em;
        bottom: -0.2em;
        height: 3px;
        background-color: var(--color-pink);
    }
}

#flow h3 {
    text-align: center;
    color: var(--color-pink);
    line-height: 1.4;
    position: relative;
    margin-bottom: 40px;
}

#flow h3::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    /* 中央に寄せる */
    width: 100px;
    /* 線を短めに */
    height: 2px;
    background-color: var(--color-pink);
    transform: translateX(-50%);
    /* 中央揃え */
}

#flow h3 .num {
    font-family: var(--ala-font);
    font-size: 2.375em;
    display: block;
}

#flow h3 .main {
    font-family: var(--zen-font);
    font-size: 1.8em;
    font-weight: bold;
    letter-spacing: 0.2em;
}


#flow h4 {
    font-weight: bold;
    text-align: center;
    font-size: 1.25em;
}

#flow .flow-img {
    max-width: 1000px;
    width: 100%;
    margin: 0 auto;
}

#flow .flow-img img {
    width: 100%;
    height: auto
}


/* service2 */
#service2 {
    padding: 80px 0 150px;
    background-color: #fffef7;
}

@media (max-width:640px) {
    #service2 {
        padding-bottom: 80px;
    }
}

#service2 .service2-inner {
    max-width: 800px;
    width: calc(100% - 20px);
    margin: 0 auto;
}

#service2 h2 {
    color: var(--color-orange);
    font-family: var(--zen-font);
    margin-bottom: 40px;
    text-align: center;
}

@media (max-width:640px) {
    #service2 h2 {
        line-height: 1.3;
    }
}

#service2 h2 .sub {
    display: block;
    text-align: center;
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 10px;
}

#service2 h2 .sub::before {
    font-size: 1.1em;
    content: "\\";
    font-family: 'Courier New', Courier, monospace;
}

#service2 h2 .sub::after {
    font-size: 1.1em;
    content: "/";
    font-family: 'Courier New', Courier, monospace;
}

#service2 h2 .main {
    display: inline-block;
    margin: 0 auto;
    font-weight: bold;
    font-size: 2em;
    letter-spacing: 0.2em;
    position: relative;
}

@media (max-width:640px) {
    #service2 h2 .main {
        letter-spacing: 0;
    }
}

@media (min-width:641px) {
    #service2 h2 .main::before {
        position: absolute;
        content: "";
        width: calc(100% + 0.2em);
        left: -0.2em;
        bottom: 1.75em;
        height: 3px;
        background-color: var(--color-orange);
    }

    #service2 h2 .main::after {
        position: absolute;
        content: "";
        width: calc(100% + 0.2em);
        left: -0.2em;
        bottom: -0.2em;
        height: 3px;
        background-color: var(--color-orange);
    }
}

#service2 h3 {
    text-align: center;
    margin-bottom: 20px;
}

#service2 h3 span {
    font-size: 1.2em;
    font-weight: bold;
    padding: 5px 15px 5px calc(15px + 0.2em);
    display: inline-block;
    color: var(--color-orange);
    border: 1px solid var(--color-orange);
    letter-spacing: 0.2em;
    border-radius: 10px;
}

#service2 h4 {
    font-family: var(--zen-font);
    font-weight: bold;
    text-align: center;
    font-size: 1.4em;
    color: var(--color-orange);
}

@media (max-width:640px) {
    #service2 h4 span {
        display: block;
    }
}

#service2 i::before {
    color: var(--color-orange);
}

#service2 .service2-img01 {
    width: 250px;
    position: absolute;
    margin-top: -80px;
    left: calc(50% - 600px);
}

#service2 .service2-img02 {
    width: 300px;
    margin: 80px auto 0;
}

#service2 .service2-img03 {
    width: 300px;
    position: absolute;
    margin-top: -30px;
    left: calc(50% + 250px);
}

@media (max-width:1050px) {
    #service2 .service2-img01 {
        width: 200px;
        left: 10px;
    }

    #service2 .service2-img03 {
        width: 250px;
        left: calc(100% - 270px);
    }
}

@media (max-width:860px) {

    #service2 .service2-img01,
    #service2 .service2-img03 {
        display: none;
    }
}

#service2 .service2-img01 img,
#service2 .service2-img02 img,
#service2 .service2-img03 img {
    width: 100%;
    height: auto;
}

/* outline */
#outline {
    padding: 50px 0 150px;
}

@media (max-width:1050px) {
    #outline {
        padding-bottom: 80px;
    }
}

#outline .outline-inner {
    max-width: 800px;
    width: calc(100% - 20px);
    margin: 0 auto;
}

#outline h2 {
    width: 60%;
    margin: 0 auto 30px;
}

#outline h2 span.main {
    display: block;
    font-weight: bold;
    font-family: var(--zen-font);
    font-size: 1.75em;
    text-align: center;
    letter-spacing: 0.2em;
    border-bottom: 2px dotted #000;
    margin-bottom: 10px;
}

#outline h2 span.sub {
    font-family: var(--ala-font);
    display: block;
    text-align: center;
    color: var(--color-green);
    font-size: 0.9em;
    letter-spacing: 0.2em;
    font-weight: bold;
}

#outline .outline-detail {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
}

#outline .outline-detail .outline-detail-img {
    width: 150px;
}

#outline .outline-detail .outline-detail-img img {
    width: 100%;
    height: auto;
}

#outline .outline-detail .outline-detail-info {
    width: calc(100% - 180px);
}

#outline .outline-detail .outline-detail-info dl {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    margin-bottom: 10px;
}

#outline .outline-detail .outline-detail-info dt {
    width: 100px;
}

#outline .outline-detail .outline-detail-info dd {
    width: calc(100% - 120px);
}

@media (max-width:860px) {
    #outline .outline-detail .outline-detail-info dd span {
        display: block;
    }
}

@media (max-width:640px) {
    #outline .outline-detail {
        display: block;
    }

    #outline .outline-detail .outline-detail-img {
        margin: 0 auto 20px;
    }

    #outline .outline-detail .outline-detail-info {
        width: auto;
        margin: 0 auto;
    }

}

#outline .outline-btn {
    position: absolute;
    width: 150px;
    left: calc(50% + 360px);
    margin-top: -30px;
}

@media (max-width:1050px) {
    #outline .outline-btn {
        display: block;
        position: relative;
        left: auto;
        margin: 30px auto 0;
    }
}


/* recruit */
#recruit {
    background-color: #ecf7f8;
    padding: 80px 0 150px;
}

@media (max-width:640px) {
    #recruit {
        padding-bottom: 80px;
    }
}

#recruit .recruit-inner {
    max-width: 800px;
    width: calc(100% - 20px);
    margin: 0 auto;
}

#recruit h2 {
    width: 60%;
    margin: 0 auto 30px;
}

#recruit h2 span.main {
    display: block;
    font-weight: bold;
    font-family: var(--zen-font);
    font-size: 1.75em;
    text-align: center;
    letter-spacing: 0.2em;
    border-bottom: 2px dotted #000;
    margin-bottom: 10px;
}

#recruit h2 span.sub {
    font-family: var(--ala-font);
    display: block;
    text-align: center;
    color: var(--color-green);
    font-size: 0.9em;
    letter-spacing: 0.2em;
    font-weight: bold;
}

#recruit .recruit-box {
    line-height: 3;
    padding: 20px;
    border: 2px dotted var(--color-green);
    border-radius: 20px;
    margin-bottom: 30px;
}

#recruit .recruit-square {
    border: 1px solid #000;
    padding: 3px 10px;
}

#recruit .recruit-msg {
    text-align: center;
    font-family: var(--zen-font);
    font-size: 1.125em;
    font-weight: bold;
    letter-spacing: 0.2em;
}

#recruit .recruit-title {
    background-color: var(--color-green);
    color: #fff;
    font-family: var(--ala-font);
    font-weight: bold;
    padding: 5px 25px;
    font-size: 1.125em;
    margin-right: 1.5vw;
}

#recruit .recruit-tel {
    position: relative;
    color: var(--color-green);
    font-family: var(--ala-font);
    font-weight: bold;
    font-size: 1.875em;
    top: 2px;
    letter-spacing: 0.2em;
}

@media (max-width:860px) {
    #recruit .recruit-msg {
        margin-bottom: 10px;
    }

    #recruit .recruit-tel {
        display: block;
    }
}

#recruit .recruit-img01 {
    position: absolute;
    width: 120px;
    margin-top: -120px;
    left: calc(50% + 470px);
}

@media (max-width:1200px) {
    #recruit .recruit-img01 {
        margin-top: -140px;
        left: calc(100% - 140px);
    }
}

@media (max-width:860px) {
    #recruit .recruit-img01 {
        display: none;
    }
}

#recruit .recruit-img02 {
    position: absolute;
    width: 100px;
    margin-top: -120px;
    left: calc(50% - 570px);
}

@media (max-width:1200px) {
    #recruit .recruit-img02 {
        left: 10px;
    }
}

@media (max-width:860px) {
    #recruit .recruit-img02 {
        display: none;
    }
}

#recruit .recruit-img01 img,
#recruit .recruit-img02 img {
    width: 100%;
    height: auto;
}

/* footer-image */
#ftr {
    background: url(../img/bg-footer.jpg) no-repeat center center;
    background-size: cover;
    width: 100%;
    height: 520px;
}

@media (max-width:860px) {
    #ftr {
        height: 460px;
    }
}

@media (max-width:640px) {
    #ftr {
        height: 320px;
    }
}


/* footer */
footer {
    padding: 30px 0;
}

footer .footer-inner {
    max-width: 800px;
    width: calc(100% - 20px);
    margin: 0 auto 20px;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 40px;
}

@media (max-width:860px) {
    footer .footer-inner {
        display: block;
    }
}

footer .footer-logo {
    width: 300px;
    height: auto;
}

@media (max-width:860px) {
    footer .footer-logo {
        margin: 0 auto 20px;
    }
}

footer .footer-logo img {
    width: 100%;
}

footer .footer-address {
    font-size: 0.9em;
}

@media (max-width:860px) {
    footer .footer-address {
        text-align: center;
    }

}

footer .footer-address .footer-tel {
    font-family: var(--ala-font);
    font-weight: bold;
    font-size: 1.9em;
}

@media (max-width:640px) {
    footer .footer-address .footer-tel {
        display: block;
    }
}

footer .footer-service {
    text-align: center;
    border-top: 0.5px solid #534c4a;
    border-bottom: 0.5px solid #534c4a;
    padding: 7px 0;
    margin-bottom: 20px;
    font-size: 0.9em
}

@media (max-width:640px) {
    footer .footer-service span {
        display: block;
    }
}

footer #copyright {
    font-family: var(--ala-font);
    font-size: 0.8em;
    text-align: center;
}


/* etc */
.font18 {
    font-size: 1.125em;
}

.font24 {
    font-size: 1.5em;
}

.font26 {
    font-size: 1.625em;
}

.font27 {
    font-size: 1.6875em;
}

.center {
    text-align: center;
}

@media (max-width:640px) {
    .center640 {
        text-align: center;
    }
}

.fontbold {
    font-weight: bold;
}

.mb10 {
    margin-bottom: 10px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb50 {
    margin-bottom: 50px;
}

.mb80 {
    margin-bottom: 80px;
}

.mb100 {
    margin-bottom: 100px;
}

@media (min-width:641px) {
    .hide-pc {
        display: none !important;
    }
}

/* rubi */
rt {
    font-size: 0.4em;
}


/*faq*/

article {
    max-width: 1000px;
    width: calc(100% - 20px);
    margin: 60px auto 150px;
}

article h2 {
    margin: 0 auto 50px;
}

article h2 .main {
    max-width: 400px;
    width: calc(100% - 40px);
    margin: 30px auto 0;
    display: block;
}

article h2 .main img {
    width: 100%;
    height: auto;
}

article h2 .sub {
    font-family: var(--zen-font);
    display: block;
    text-align: center;
    font-size: 1.5625em;
    font-weight: bold;
    margin-bottom: 10px;
    letter-spacing: 0.3em;
    color: var(--color-green);
}

@media (max-width:640px) {
    article h2 .sub {
        letter-spacing: 0;
    }
}


article .sub::before {
    color: var(--color-green);
    font-size: 1.1em;
    content: "\\";
    margin-right: 5px;
    font-family: 'Courier New', Courier, monospace;
}

article h2 .sub::after {
    color: var(--color-green);
    font-size: 1.1em;
    content: "/";
    margin-left: 5px;
    font-family: 'Courier New', Courier, monospace;
}

article dl.faq-dl  {
    padding:30px 0;
    border-bottom:1px solid var(--color-green);
}
@media (min-width:861px) {
    article dl.faq-dl  {
        display: flex;
        align-items: stretch;
        justify-content: space-between;
    }
}

article dl.faq-dl dt {
    display: flex;
    align-items: center;
    justify-content:flex-start;
    gap:20px;
    position:relative;
}

@media (min-width:861px) {
    article dl.faq-dl dt {
        width:45%;
        background:#FFFFFF;
        padding:10px 30px 10px 10px;
        border-right:1px solid #A5D050;
    }
    article dl.faq-dl dt::after, article dl.faq-dl dt::before{
        border: solid transparent;
        content:'';
        height:0;
        width:0;
        pointer-events:none;
        position:absolute;
        left:100%;
        top:50%;
    }
    article dl.faq-dl dt::after{
        border-color: rgba(255, 255, 255, 0);
        border-top-width:10px;
        border-bottom-width:10px;
        border-left-width:10px;
        border-right-width:10px;
        margin-top: -10px;
        border-left-color:#FFFFFF;
    }
    article dl.faq-dl dt::before{
        border-color: rgba(165, 208, 80, 0);
        border-top-width:11px;
        border-bottom-width:11px;
        border-left-width:11px;
        border-right-width:11px;
        margin-top: -11px;
        margin-left: 1px;
        border-left-color:#A5D050;
    }
}


@media (max-width:860px) {
    article dl.faq-dl dt {
        align-items:flex-start;
    }
}

article dl.faq-dl dt .num {
    background-color:#c8a880;
    color:#fff;
    font-family: var(--zen-font);
    font-size:2em;
    display: inline-block;
    font-weight: bold;
    text-align: center;
    line-height: 1;
    padding:10px 20px 15px;
    border-radius: 50%;
}

article dl.faq-dl dt .title {
    display: block;
    font-size:1.125em;
    font-weight: bold;
}

article dl.faq-dl dd {
    font-size:0.95em;
}

@media (min-width:861px) {
    article dl.faq-dl dd {
        width:50%;
    }
}

@media (max-width:860px) {
    article dl.faq-dl dd {
        margin:10px 0 0 40px;
    }
}

.faq-img-box {
    max-width:800px;
    width:calc(100% - 40px);
    margin:30px auto 60px;
}

.faq-img-box img {
    width:100%;
    height: auto;
}


#page-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    font-size: 80%;
}

#page-top a {
    text-decoration: none;
}

#page-top a:hover {
    text-decoration: none;
}
