/* =========================================================
   PAGE / SINGLE
========================================================= */

.page-main,
.single-main {
    --content-bg: #f3edda;
    --content-text: #292620;
    --content-sub: #81765e;

    width: 100%;

    background: var(--content-bg);

    color: var(--content-text);
}


/* =========================================================
   COMMON ENTRY
========================================================= */

.page-entry,
.single-entry {
    width: min(calc(100% - 120px), 1200px);

    margin: 0 auto;

    padding:
        clamp(150px, 12vw, 220px)
        0
        clamp(120px, 10vw, 190px);

    box-sizing: border-box;
}


/* =========================================================
   PAGE HEADER
========================================================= */

.page-entry__header {
    margin-bottom: clamp(60px, 7vw, 110px);

    text-align: center;
}


.page-entry__label {
    margin: 0 0 22px;

    font-family: "Inter", sans-serif;

    font-size: 11px;
    font-weight: 500;

    line-height: 1;

    letter-spacing: .25em;

    text-transform: uppercase;

    color: var(--content-sub);
}


.page-entry__title {
    margin: 0 !important;
    padding: 0 !important;

    color: var(--content-text) !important;

    font-family: "Noto Sans JP", sans-serif;

    font-size: clamp(36px, 4vw, 64px);
    font-weight: 700 !important;

    line-height: 1.4;

    letter-spacing: .04em;

    text-align: center;
}


/* =========================================================
   PAGE CONTENT
========================================================= */

.page-entry__content {
    width: min(100%, 900px);

    margin: 0 auto;

    font-family: "Noto Sans JP", sans-serif;

    color: var(--content-text);

    font-size: 16px;

    line-height: 2.1;

    letter-spacing: .035em;
}


/* =========================================================
   SINGLE HEADER
========================================================= */

.single-entry__header {
    width: min(100%, 950px);

    margin:
        0
        auto
        clamp(55px, 6vw, 90px);

    text-align: center;
}


.single-entry__label {
    margin: 0 0 24px;

    font-family: "Inter", sans-serif;

    font-size: 12px;
    font-weight: 500;

    line-height: 1;

    letter-spacing: .28em;

    text-transform: uppercase;

    color: var(--content-sub);
}


.single-entry__title {
    margin: 0 !important;
    padding: 0 !important;

    color: var(--content-text) !important;

    font-family: "Noto Sans JP", sans-serif;

    font-size: clamp(34px, 3.5vw, 58px);
    font-weight: 700 !important;

    line-height: 1.5;

    letter-spacing: .035em;

    text-align: center;
}


.single-entry__meta {
    margin-top: 28px;

    font-family: "Inter", sans-serif;

    font-size: 12px;
    font-weight: 400;

    letter-spacing: .16em;

    color: var(--content-sub);
}


/* =========================================================
   SINGLE FEATURED IMAGE
========================================================= */

.single-entry__thumbnail {
    width: min(100%, 1100px);

    margin:
        0
        auto
        clamp(60px, 7vw, 100px);

    overflow: hidden;
}


.single-entry__thumbnail img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio: 16 / 9;

    object-fit: cover;
}


/* =========================================================
   SINGLE CONTENT
========================================================= */

.single-entry__content {
    width: min(100%, 820px);

    margin: 0 auto;

    color: var(--content-text);

    font-family: "Noto Sans JP", sans-serif;

    font-size: 16px;

    line-height: 2.15;

    letter-spacing: .035em;
}


/* =========================================================
   CONTENT TYPOGRAPHY
========================================================= */

.page-entry__content p,
.single-entry__content p {
    margin:
        0
        0
        2em;
}


.page-entry__content h2,
.single-entry__content h2 {
    margin:
        3.5em
        0
        1.4em;

    padding: 0;

    color: var(--content-text) !important;

    font-size: clamp(25px, 2.3vw, 34px);
    font-weight: 700;

    line-height: 1.6;

    letter-spacing: .04em;
}


.page-entry__content h3,
.single-entry__content h3 {
    margin:
        2.8em
        0
        1.2em;

    padding: 0;

    color: var(--content-text) !important;

    font-size: clamp(20px, 1.8vw, 26px);
    font-weight: 700;

    line-height: 1.6;
}


.page-entry__content h4,
.single-entry__content h4 {
    margin:
        2.4em
        0
        1em;

    color: var(--content-text);

    font-size: 18px;
    font-weight: 700;
}


.page-entry__content a,
.single-entry__content a {
    color: inherit;

    text-decoration: underline;

    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
}


.page-entry__content img,
.single-entry__content img {
    max-width: 100%;
    height: auto;
}


/* =========================================================
   LIST
========================================================= */

.page-entry__content ul,
.page-entry__content ol,
.single-entry__content ul,
.single-entry__content ol {
    margin:
        0
        0
        2em;

    padding-left: 1.5em;
}


.page-entry__content li,
.single-entry__content li {
    margin-bottom: .7em;
}


/* =========================================================
   BLOCKQUOTE
========================================================= */

.page-entry__content blockquote,
.single-entry__content blockquote {
    margin:
        3em
        0;

    padding:
        25px
        30px;

    border-left: 3px solid var(--content-sub);

    color: #514d43;
}


/* =========================================================
   TABLE
========================================================= */

.page-entry__content table,
.single-entry__content table {
    width: 100%;

    margin:
        35px
        0;

    border-collapse: collapse;
}


.page-entry__content th,
.page-entry__content td,
.single-entry__content th,
.single-entry__content td {
    padding:
        16px
        18px;

    border: 1px solid rgba(41, 38, 32, .2);

    text-align: left;
}


/* =========================================================
   BACK BUTTON
========================================================= */

.single-entry__back {
    width: min(100%, 820px);

    margin:
        clamp(80px, 8vw, 130px)
        auto
        0;

    text-align: center;
}


.single-entry__back a {
    display: inline-flex;

    align-items: center;

    gap: 18px;

    color: var(--content-text);

    font-family: "Noto Sans JP", sans-serif;

    font-size: 14px;
    font-weight: 600;

    text-decoration: none;

    transition:
        opacity .3s ease;
}


.single-entry__back a:hover {
    opacity: .55;
}


.single-entry__back-arrow {
    font-family: "Inter", sans-serif;

    font-size: 22px;
}


/* =========================================================
   SP
========================================================= */

@media (max-width: 767px) {

    .page-entry,
    .single-entry {
        width: 100%;

        padding:
            110px
            22px
            90px;
    }


    /* PAGE */

    .page-entry__header {
        margin-bottom: 50px;
    }


    .page-entry__label {
        margin-bottom: 17px;

        font-size: 9px;
    }


    .page-entry__title {
        font-size: 31px;

        line-height: 1.45;
    }


    /* SINGLE */

    .single-entry__header {
        margin-bottom: 42px;

        text-align: left;
    }


    .single-entry__label {
        margin-bottom: 18px;

        font-size: 10px;
    }


    .single-entry__title {
        font-size: 28px;

        line-height: 1.55;

        text-align: left;
    }


    .single-entry__meta {
        margin-top: 20px;

        font-size: 10px;
    }


    .single-entry__thumbnail {
        margin-bottom: 50px;
    }


    .single-entry__thumbnail img {
        aspect-ratio: 4 / 3;
    }


    /* CONTENT */

    .page-entry__content,
    .single-entry__content {
        width: 100%;

        font-size: 14px;

        line-height: 2.05;
    }


    .page-entry__content h2,
    .single-entry__content h2 {
        margin-top: 3em;

        font-size: 23px;
    }


    .page-entry__content h3,
    .single-entry__content h3 {
        font-size: 19px;
    }


    .page-entry__content table,
    .single-entry__content table {
        font-size: 12px;
    }


    .page-entry__content th,
    .page-entry__content td,
    .single-entry__content th,
    .single-entry__content td {
        padding:
            11px
            10px;
    }


    .single-entry__back {
        margin-top: 70px;
    }

}


/* =========================================================
   4K
========================================================= */

@media (min-width: 2560px) {

    .page-entry,
    .single-entry {
        width: min(calc(100% - 240px), 1500px);
    }


    .page-entry__content {
        width: min(100%, 1050px);

        font-size: 19px;
    }


    .single-entry__content {
        width: min(100%, 950px);

        font-size: 19px;
    }


    .page-entry__title {
        font-size: 76px;
    }


    .single-entry__title {
        font-size: 68px;
    }


    .single-entry__thumbnail {
        width: min(100%, 1350px);
    }

}

/* =========================================================
   CONTACT PAGE
========================================================= */

.contact-page {
    width: 100%;

    background: #f3edda;

    color: #292620;
}


.contact-page__section {
    width: 100%;

    padding:
        clamp(150px, 12vw, 220px)
        30px
        clamp(120px, 10vw, 180px);

    box-sizing: border-box;
}


.contact-page__inner {
    width: min(100%, 900px);

    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.contact-page__header {
    margin-bottom: clamp(60px, 7vw, 100px);

    text-align: center;
}


.contact-page__en {
    margin:
        0
        0
        25px;

    font-family: "Inter", sans-serif;

    font-size: 13px;
    font-weight: 500;

    letter-spacing: .25em;

    text-transform: uppercase;
}


.contact-page__title {
    margin:
        0
        0
        35px !important;

    padding: 0 !important;

    color: #292620 !important;

    font-family: "Noto Sans JP", sans-serif;

    font-size: clamp(38px, 4vw, 60px);

    font-weight: 700 !important;

    line-height: 1.4;

    letter-spacing: .05em;

    text-align: center;
}


.contact-page__lead {
    margin: 0;

    font-family: "Noto Sans JP", sans-serif;

    font-size: 15px;

    line-height: 2;

    letter-spacing: .05em;
}


/* =========================================================
   FORM
========================================================= */

.contact-page__form {
    width: 100%;

    padding:
        clamp(40px, 5vw, 70px);

    box-sizing: border-box;

    background: rgba(255, 255, 255, .5);

    border-radius: 24px;
}


/* Fluent Forms
--------------------------------------------------------- */

.contact-page__form .fluentform {
    font-family: "Noto Sans JP", sans-serif;

    color: #292620;
}


.contact-page__form .ff-el-group {
    margin-bottom: 30px;
}


.contact-page__form .ff-el-input--label {
    margin-bottom: 10px;
}


.contact-page__form .ff-el-input--label label {
    color: #292620;

    font-size: 14px;

    font-weight: 600;

    letter-spacing: .04em;
}


/* INPUT */

.contact-page__form input[type="text"],
.contact-page__form input[type="email"],
.contact-page__form input[type="tel"],
.contact-page__form input[type="number"],
.contact-page__form textarea,
.contact-page__form select {

    width: 100%;

    padding:
        15px
        18px !important;

    box-sizing: border-box;

    background: #fff !important;

    border:
        1px solid
        rgba(41, 38, 32, .18) !important;

    border-radius: 8px !important;

    color: #292620 !important;

    font-family: "Noto Sans JP", sans-serif !important;

    font-size: 15px !important;

    outline: none;

    transition:
        border-color .3s ease;
}


.contact-page__form textarea {
    min-height: 180px;

    resize: vertical;
}


.contact-page__form input:focus,
.contact-page__form textarea:focus,
.contact-page__form select:focus {
    border-color: #292620 !important;
}


/* =========================================================
   SUBMIT
========================================================= */

.contact-page__form
.ff-btn-submit {

    min-width: 260px;

    min-height: 65px;

    padding:
        15px
        40px !important;

    background: #292620 !important;

    border: 1px solid #292620 !important;

    border-radius: 50px !important;

    color: #fff !important;

    font-family: "Noto Sans JP", sans-serif !important;

    font-size: 15px !important;

    font-weight: 600 !important;

    letter-spacing: .08em;

    transition:
        background-color .3s ease,
        color .3s ease;
}


.contact-page__form
.ff-btn-submit:hover {

    background: transparent !important;

    color: #292620 !important;
}


/* =========================================================
   SP
========================================================= */

@media (max-width: 767px) {

    .contact-page__section {
        padding:
            110px
            20px
            90px;
    }


    .contact-page__header {
        margin-bottom: 50px;
    }


    .contact-page__en {
        margin-bottom: 18px;

        font-size: 10px;
    }


    .contact-page__title {
        margin-bottom: 25px !important;

        font-size: 32px;
    }


    .contact-page__lead {
        font-size: 13px;

        line-height: 1.9;
    }


    .pc-only {
        display: none;
    }


    .contact-page__form {
        padding:
            30px
            20px;

        border-radius: 16px;
    }


    .contact-page__form
    .ff-el-group {
        margin-bottom: 24px;
    }


    .contact-page__form
    .ff-btn-submit {

        width: 100%;

        min-width: 0;

        min-height: 60px;
    }

}


/* =========================================================
   FAQ PAGE
========================================================= */

.faq-page {
    width: 100%;

    background: #f3edda;

    color: #292620;
}


.faq-page__section {
    width: 100%;

    padding:
        clamp(80px, 7vw, 120px)
        30px
        clamp(120px, 10vw, 180px);

    box-sizing: border-box;
}

.faq-page__inner {
    width: min(100%, 900px);

    margin: 0 auto;
}


/* =========================================================
   FAQ HEADER
========================================================= */

.faq-page__header {
    margin-bottom: clamp(70px, 7vw, 110px);

    text-align: center;
}


.faq-page__en {
    margin:
        0
        0
        25px;

    font-family: "Inter", sans-serif;

    font-size: 13px;
    font-weight: 500;

    line-height: 1;

    letter-spacing: .25em;

    text-transform: uppercase;
}


.faq-page__title {
    margin:
        0
        0
        30px !important;

    padding: 0 !important;

    color: #292620 !important;

    font-family: "Noto Sans JP", sans-serif;

    font-size: clamp(38px, 4vw, 60px);

    font-weight: 700 !important;

    line-height: 1.4;

    letter-spacing: .05em;

    text-align: center;
}


.faq-page__lead {
    margin: 0;

    font-family: "Noto Sans JP", sans-serif;

    font-size: 15px;

    line-height: 2;

    letter-spacing: .05em;
}


/* =========================================================
   FAQ LIST
========================================================= */

.faq-list {
    width: 100%;

    border-top:
        1px solid
        rgba(41, 38, 32, .25);
}


.faq-item {
    width: 100%;

    padding:
        45px
        10px;

    box-sizing: border-box;

    border-bottom:
        1px solid
        rgba(41, 38, 32, .25);
}


/* =========================================================
   QUESTION / ANSWER
========================================================= */

.faq-q,
.faq-a {
    display: grid;

    grid-template-columns:
        55px
        1fr;

    column-gap: 25px;

    align-items: start;
}


.faq-q {
    margin-bottom: 28px;
}


.faq-a {
    padding-left: 25px;

    color: #655f54;
}


/* =========================================================
   Q / A LABEL
========================================================= */

.faq-label {
    font-family: "Inter", sans-serif;

    font-size: 31px;

    font-weight: 500;

    line-height: 1.2;

    text-align: center;
}


.faq-q .faq-label {
    color: #292620;
}


.faq-a .faq-label {
    color: #a88f3d;
}


/* =========================================================
   FAQ TEXT
========================================================= */

.faq-text {
    padding-top: 4px;

    font-family: "Noto Sans JP", sans-serif;

    font-size: 15px;

    line-height: 2;

    letter-spacing: .04em;
}


.faq-q .faq-text {
    color: #292620;

    font-size: 17px;

    font-weight: 600;
}


.faq-a .faq-text {
    font-weight: 400;
}


/* =========================================================
   HOVER
========================================================= */

.faq-item {
    transition:
        padding-left .35s ease,
        padding-right .35s ease;
}


@media (hover: hover) {

    .faq-item:hover {
        padding-left: 20px;
        padding-right: 0;
    }

}


/* =========================================================
   SP
========================================================= */

@media (max-width: 767px) {

    .faq-page__section {
        padding:
            65px
            20px
            90px;
    }


    .faq-page__header {
        margin-bottom: 55px;
    }


    .faq-page__en {
        margin-bottom: 18px;

        font-size: 10px;
    }


    .faq-page__title {
        margin-bottom: 22px !important;

        font-size: 32px;
    }


    .faq-page__lead {
        font-size: 13px;

        line-height: 1.9;
    }


    /* FAQ */

    .faq-item {
        padding:
            32px
            0;
    }


    .faq-q,
    .faq-a {
        grid-template-columns:
            38px
            1fr;

        column-gap: 14px;
    }


    .faq-q {
        margin-bottom: 23px;
    }


    .faq-a {
        padding-left: 0;
    }


    .faq-label {
        font-size: 24px;
    }


    .faq-text {
        padding-top: 1px;

        font-size: 13px;

        line-height: 1.9;
    }


    .faq-q .faq-text {
        font-size: 15px;

        line-height: 1.8;
    }

}


/* =========================================================
   4K
========================================================= */

@media (min-width: 2560px) {

    .faq-page__inner {
        width: min(100%, 1100px);
    }


    .faq-page__title {
        font-size: 72px;
    }


    .faq-item {
        padding:
            55px
            15px;
    }


    .faq-q,
    .faq-a {
        grid-template-columns:
            70px
            1fr;

        column-gap: 30px;
    }


    .faq-label {
        font-size: 38px;
    }


    .faq-text {
        font-size: 18px;
    }


    .faq-q .faq-text {
        font-size: 21px;
    }

}