@charset "utf-8";

/* ===================
common
====================== */
:root {
    --cover-index: 50;
    --loading-index: 40;
    --trigger-index: 30;
    --nav-index: 20;
    --header-index: 10;
}

* {
    box-sizing: border-box;
}

html {
    font-size: 62.5%;
    touch-action: manipulation;
}

body {
    font-family:
        "TsukuGoPr5-L",
        sans-serif;
    font-style: normal;
    color: #333;
    background-color: #fff;
}

::selection {
    background-color: #6b7748;
    color: #fff;
}

body.-open {
    overflow: hidden;
}

html, body {
    overflow-x: hidden;
}


li {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

a {
    color: currentColor;
    text-decoration: none;
}

.container {
    display: grid;
    grid-template-rows: 2fr auto;
    grid-template-columns: 100%;
    min-height: 100vh;
}
/* ===================
header
====================== */
/* 上にスクロールするとヘッダーが表示 */
.header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: var(--header-index);
    width: 100%;
    /* transition: translate 0.7s cubic-bezier(0.33, 1, 0.68, 1); */
}

/* .header.-active {
    translate: 0% -100%;
} */

.-active .header_link {
    color: #fff;
}

@media screen and (max-width: 767px) {
    .header {
        padding-block: 20px;
    }
}

@media screen and (max-width: 767px) {
    .header_inner {
        padding-inline: 8%;
    }
}

@media screen and (min-width: 768px) {
    .header_inner {
        padding-inline: 8.3%;
    }
}

.header_block {
    display: grid;
    height: 100%;
}

@media screen and (max-width: 767px) {
    .header_block {
        grid-template-columns: 118px 1fr;
    }
}

@media screen and (min-width: 768px) {
    .header_block {
        grid-template-columns: 150px 1fr;
        align-items: center;
    }
}

.header_logoLink svg {
    fill: #333;
    transition: fill 0.3s ease;
}

.-active .header_logoLink svg {
    fill: #fff;
}

@media screen and (max-width: 767px) {
    .trigger {
        position: fixed;
        top: 28px;
        right: 20px;
        z-index: var(--trigger-index);
        translate: 0 -50%;
        display: grid;
        justify-self: end;
        gap: 6.5px;
        width: 32.5px;
        height: 6.5px;
    }

    .-active .trigger_line {
        background-color: #fff;
    }

    .-open .trigger_line {
        background-color: currentColor;
    }

    .-open .trigger_line:nth-of-type(1) {
        transform: rotate(13deg);
    }

    .-open .trigger_line:nth-of-type(2) {
        transform: rotate(-13deg);
    }
}

@media screen and (max-width: 767px) {
    .header_nav {
        display: none;
    }
}

.header_link {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #333;
    font-family: "FOT-筑紫Aオールド明朝 Pr6N R";
    transition-property: opacity, color;
    transition-duration: 0.3s;
    transition-timing-function: ease;
}

.header_linkIcon {
    width: 11px;
    height: 6px;
    display: block;
    fill: currentColor;
}

@media screen and (min-width: 768px) {
    .trigger {
        display: none;
    }

    .header_nav {
        justify-self: end;
    }

    .header_list {
        display: flex;
    }

    .header_subList {
        opacity: 0;
        visibility: hidden;
        transition-property: opacity, visibility;
        transition-duration: .3s;
        transition-timing-function: ease;
    }

    .header_nav .header_link:hover {
        opacity: 0.5;
    }

    .header_link {
        padding: 20px;
        font-weight: 600;
        font-size: 16px;
    }

    .header_subLinkTitle {
        transition: opacity 0.2s ease;
    }

    .header_subLinkTitle:hover {
        opacity: 0.5;
    }
}

/* ===================
header dropdown (PC only)
====================== */
@media screen and (min-width: 768px) {
    .header_item {
        position: relative;
    }
}

@media screen and (min-width: 768px) {
    .header_item:hover > ul {
        opacity: 1;
        visibility: visible;
    }
}

@media screen and (min-width: 768px) {
    .header_item li ul{
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease;
    }
}

@media screen and (min-width: 768px) {
    .header_link {
        display: flex;
        justify-content: center;
    }
}

@media screen and (min-width: 768px) {
    .header_subList {
        display: grid;
        place-items: center;
        gap: 18px;
        position: absolute; /* レイアウトに含まれていると隣のメニューとの間に隙間ができる&見えてないサブメニューをホバーしても表示されてしまうので指定する。 */
        top: 67px; /* テキストの高さ＋上下のpadding分、上からずらす。 */
        width: max-content;
        padding: 14px 28px;
        background-color: #fff;
        box-shadow: 0px 5px 9px 0px rgba(0, 0, 0, 0.10);
    }
}

@media screen and (min-width: 768px) {
    .header_subLinkTitle {
        font-family: "FOT-筑紫Aオールド明朝 Pr6N R";
        font-size: 14px;
    }
}

/* ===================
trigger
====================== */
.trigger {
    gap: 6.5px;
}

.trigger_line {
    width: 100%;
    height: 1px;
    background-color: #333;
    transition: transform, background-color;
    transition-duration: 0.7s, 0.3s;
    transition-timing-function: cubic-bezier(0.33, 1, 0.68, 1), ease;
    transform-origin: 0% 50%;
}

/* ===================
nav
====================== */
@media screen and (max-width: 767px) {
    .nav {
        opacity: 0;
        visibility: hidden;
        position: fixed;
        top: 0;
        right: 0;
        z-index: var(--nav-index);
        width: 70%;
        height: 100%;
        padding-block: 20px;
        background-color: #fff;
        transition-property: opacity, visibility;
        transition-duration: 0.4s;
        transition-timing-function: ease;
    }
}

@media screen and (min-width: 768px) {
    .nav {
        display: none;
    }
}

@media screen and (max-width: 767px) {
    .-open .nav {
        opacity: 0.95;
        visibility: visible;
    }
}

@media screen and (max-width: 767px) {
    .nav_inner {
        padding-inline: 40px;
    }
}

@media screen and (max-width: 767px) {
    .nav_block {
        display: grid;
        justify-content: end;
    }
}

@media screen and (max-width: 767px) {
    .nav_closeTrigger {
        width: 32px;
        height: 7px;
    }
}

@media screen and (max-width: 767px) {
    .nav_list {
        display: block;
        margin-block-start: 73px;
    }
}

@media screen and (max-width: 767px) {
    .nav_item+.nav_item {
        margin-block-start: 30px;
    }
}

@media screen and (max-width: 767px) {
    .nav_subList {
        position: relative;
        padding-left: 15px;
    }

    .nav_subList::before {
        content: "";
        width: 1px;
        height: 100px;
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        background-color: #E2E2E2;
    }
}

@media screen and (max-width: 767px) {
    .nav_subList {
        display: grid;
        margin-block-start: 15px;
        gap: 9px;
        position: relative;
        left: 0px;
        right: 15px;
    }
}

@media screen and (max-width: 767px) {
    .nav_link {
        font-family: "FOT-筑紫Aオールド明朝 Pr6N D";
        font-size: 20px;
    }
}

@media screen and (max-width: 767px) {
    .nav_subLink {
        font-family: "FOT-筑紫Aオールド明朝 Pr6N R";
        font-size: 16px;
    }
}

/* ===================
workArticle_description
====================== */
.workArticle_description ,.homeBookArticle_description {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-feature-settings: "palt"
}

@media screen and (max-width: 767px) {
    .workArticle_description ,.homeBookArticle_description {
        padding-block-start: 7px;
        font-size: 1.4rem;
        line-height: 2.2rem;
        -webkit-line-clamp: 4;
    }
}

@media screen and (min-width: 768px) {
    .workArticle_description ,.homeBookArticle_description {
        margin-block-start: 20px;
        font-size: 1.6rem;
        line-height: 2.5rem;
        -webkit-line-clamp: 3;
    }
}

/* ===================
contact
====================== */
.contact_inner {
    background-color: #f8f8f8;
}

@media screen and (min-width: 768px) {
    .contact_inner {
        padding-inline: 8.3%;
    }
}

@media screen and (max-width: 767px) {
    .contact_block {
        padding: 95px 66px 97px;
    }
}

@media screen and (min-width: 768px) {
    .contact_block {
        padding: 123px 0 153px;
    }
}

.contact_title {
    font-family: "FOT-筑紫Aオールド明朝 Pr6N D";
    text-align: center;
}

@media screen and (max-width: 767px) {
    .contact_title {
        font-size: 2.4rem;
    }
}

@media screen and (min-width: 768px) {
    .contact_title {
        font-size: 3.6rem;
    }
}

.contact_text {
    text-align: center;
    line-height: 2.5rem;
}

@media screen and (max-width: 767px) {
    .contact_text {
        margin-block-start: 57px;
        font-size: 1.4rem;
    }
}

@media screen and (min-width: 768px) {
    .contact_text {
        margin-block-start: 60px;
        font-size: 1.6rem;
    }
}

.contact_btn {
    display: inline-block;
    justify-items: center;
    gap: 1.4rem;
    position: relative;
}

@media screen and (max-width: 767px) {
    .contact_btn {
        margin-block-start: 63px;
    }
}

@media screen and (min-width: 768px) {
    .contact_btn {
        margin-block-start: 60px;
    }

    .contact_btn:hover .contact_btnLine {
        scale: 0 1;
        transform-origin: right;
    }
}

@media screen and (max-width: 767px) {
    .contact_btnText {
        font-size: 16px;
    }
}

@media screen and (min-width: 768px) {
    .contact_btnText {
        font-size: 24px;
    }
}

.contact_btnLine {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #333;
}

@media screen and (min-width: 768px) {
    .contact_btnLine {
        scale: 1 1;
        transform-origin: left;
        transition: scale 0.6s cubic-bezier(0.33, 1, 0.68, 1);
    }
}

/* ===================
footer
====================== */
@media screen and (max-width: 767px) {
    .footer {
        padding-block: 55px 18px;
    }
}

@media screen and (min-width: 768px) {
    .footer {
        padding-block: 117px 43px;
    }
}

@media screen and (max-width: 767px) {
    .footer_inner {
        padding-inline: 8%;
    }
}

@media screen and (min-width: 768px) {
    .footer_inner {
        padding-inline: 8.3%;
    }
}

@media screen and (max-width: 767px) {
    .footer_logo {
        width: 117px;
    }
}

@media screen and (min-width: 768px) {
    .footer_logo {
        width: 195px;
    }
}

.footer_logoLink {
    display: grid;
}

@media screen and (max-width: 767px) {
    .footer_nav {
        margin-block-start: 109px;
    }
}

@media screen and (min-width: 768px) {
    .footer_nav {
        margin-block-start: 104px;
    }
}

@media screen and (max-width: 767px) {
    .footer_list {
        display: grid;
        gap: 15px;
    }
}

@media screen and (min-width: 768px) {
    .footer_list {
        display: flex;
        justify-content: flex-end;
    }
}

.footer_link {
    font-family: "FOT-筑紫Aオールド明朝 Pr6N R";
    font-size: 1.6rem;
}

@media screen and (min-width: 768px) {
    .footer_link {
        transition: opacity 0.3s linear;
        padding-inline: 25px;
    }
}

@media screen and (min-width: 768px) {
    .footer_link:hover {
        opacity: 0.5;
    }
}

.footer_foot {
    border-top: 1px solid #e2e2e2;
}

@media screen and (max-width: 767px) {
    .footer_foot {
        margin-block-start: 54px;
    }
}

@media screen and (min-width: 768px) {
    .footer_foot {
        margin-block-start: 88px;
    }
}

.footer_block {
    margin-block-start: 54px;
}

.footer_privacyPolicy {
    display: inline-block;
}

@media screen and (max-width: 767px) {
    .footer_privacyPolicy {
        margin-block-start: 54px;
    }
}

@media screen and (min-width: 768px) {
    .footer_privacyPolicy {
        margin-block-start: 88px;
    }
}

@media screen and (min-width: 768px) {
    .footer_privacyPolicy {
        transition: color 0.3s ease, opacity 0.4s linear;
    }

    .footer_privacyPolicy:hover {
        color: #333;
    }
}

.footer_privacyPolicy,
.footer_copyright {
    color: #adadad;
    font-size: 10px;
}

/* ===================
cover
====================== */
.cover {
    position: fixed;
    inset: 0;
    z-index: var(--cover-index);
    background-color: #fff;
    pointer-events: none;
}

/* ===================
btn
====================== */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 1.4rem;
    position: relative;
}

.btn_text {
    font-size: 14px;
    line-height: 2.2;
}

.btn svg {
    width: 7px;
}

.btn_line {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #333;
}

@media screen and (min-width: 768px) {
    .btn_line {
        scale: 0 1;
        transform-origin: right;
        transition: scale 0.6s cubic-bezier(0.33, 1, 0.68, 1);
    }

    .btn:hover .btn_line {
        scale: 1 1;
        transform-origin: left;
    }
}

.btn.-prev {
    flex-direction: row-reverse;
}

.btn.-pageTop svg {
    width: 14px;
}

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

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

@media screen and (max-width: 767px) {
    .sp {
        display: block;
    }
}

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