@charset "UTF-8";

html {
    scrollbar-gutter: stable;
}

/*//////////////////// font-face ////////////////////*/
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url(/fonts/ZenKakuGothicNew-Regular.woff2) format("woff2");
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url(/fonts/ZenKakuGothicNew-Medium.woff2) format("woff2");
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url(/fonts/ZenKakuGothicNew-Bold.woff2) format("woff2");
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: "Shippori Mincho";
    src: url(/fonts/ShipporiMincho-Medium.woff2) format("woff2");
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Shippori Mincho";
    src: url(/fonts/ShipporiMincho-SemiBold.woff2) format("woff2");
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Proza Libre";
    src: url(/fonts/ProzaLibre-Regular.ttf) format("truetype");
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Proza Libre";
    src: url(/fonts/ProzaLibre-Medium.ttf) format("truetype");
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Cardo";
    src: url(/fonts/Cardo-Regular.ttf) format("truetype");
    font-weight: 400;
    font-display: swap;
}

/*//////////////////// Header ////////////////////*/
.org-header * {
    font-family: "Zen Kaku Gothic New", sans-serif;
    box-sizing: border-box;
}

.l-header.org-header {
    position: relative;
    height: 0;
    pointer-events: none;
}

/* 下層：ヘッダー固定分の高さを確保（15 + 71） */
.l-header.org-header.is-under {
    height: 86px;
    pointer-events: auto;
}

.org-header__inner {
    position: fixed;
    top: 15px;
    right: 20px;
    left: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 71px;
    padding: 14px 20px 13px;
    pointer-events: auto;
    background-color: #fff;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}

    .org-header__brand {
        display: flex;
        gap: 10px;
        align-items: center;
        min-width: 0;
    }
        .org-header__logo {
            flex-shrink: 0;
            width: 199px;
            height: 37px;
            margin: 0;
        }
            .org-header__logo-link {
                display: block;
                width: 100%;
                height: 100%;
            }
            .org-header__logo-link:hover {
                opacity: 1;
            }
                .org-header__logo-img {
                    display: block;
                    width: 199px;
                    height: 37px;
                    object-fit: contain;
                }
        .org-header__info {
            display: flex;
            flex-direction: column;
            gap: 6px;
            align-items: flex-start;
            padding-left: 10px;
            border-left: 1px solid #dadada;
        }
            .org-header__catch {
                margin: 0;
                font-size: 13px;
                font-weight: 500;
                line-height: 1;
                color: #3a332a;
            }
            .org-header__counts {
                display: flex;
                gap: 4px;
                align-items: flex-start;
                margin: 0;
                font-size: 13px;
                font-weight: 500;
                line-height: 1;
                color: #3a332a;
                white-space: nowrap;
            }
                .org-header__count-num {
                    color: #e69a23;
                }
                .org-header__date {
                    color: #8f8f8f;
                }

    .org-header__nav {
        display: flex;
        gap: 18px;
        align-items: center;
        flex-shrink: 0;
    }
        .org-header__list {
            display: flex;
            gap: 18px;
            align-items: center;
            margin: 0;
            padding: 0;
            list-style: none;
        }
            .org-header__link {
                display: flex;
                flex-direction: column;
                gap: 8px;
                align-items: center;
                color: #3a332a;
                text-decoration: none;
            }
            .org-header__link:hover {
                opacity: 1;
                text-decoration: none;
            }
                .org-header__link-icon {
                    display: block;
                    width: 24px;
                    height: 24px;
                    object-fit: contain;
                }
                .org-header__link-label {
                    position: relative;
                    font-size: 13px;
                    font-weight: 500;
                    line-height: 1;
                    color: #3a332a;
                    white-space: nowrap;
                }
                .org-header__link-label::after {
                    position: absolute;
                    right: 0;
                    bottom: -2px;
                    left: 0;
                    width: 100%;
                    height: 1px;
                    content: "";
                    background-color: currentColor;
                    transition: transform 0.4s ease;
                    transform: scaleX(0);
                    transform-origin: left center;
                }
                .org-header__link:hover .org-header__link-label::after {
                    transform: scaleX(1);
                }
        .org-header__menu {
            display: flex;
            flex-direction: column;
            gap: 7px;
            align-items: center;
            justify-content: center;
            width: 60px;
            height: 38px;
            padding: 0;
            cursor: pointer;
            background-color: #203b57;
            border: 1px solid #203b57;
            border-radius: 9999px;
            appearance: none;
            transition: background-color 0.3s ease, border-color 0.3s ease;
        }
        .org-header__menu:hover {
            background-color: #fff;
            border-color: #203b57;
            opacity: 1;
        }
            .org-header__menu-bar {
                display: block;
                width: 24px;
                height: 0;
                border-top: 2px solid #fff;
                transition: border-color 0.3s ease;
            }
            .org-header__menu:hover .org-header__menu-bar {
                border-top-color: #203b57;
            }

/*//////////////////// Header Menu ////////////////////*/
body.is-menu-open {
    overflow: hidden;
    padding-right: var(--org-menu-scrollbar, 0px);
}
body.is-menu-open .org-header__inner {
    right: calc(20px + var(--org-menu-scrollbar, 0px));
}
body.is-menu-open .org-menu__close {
    right: calc(30px + var(--org-menu-scrollbar, 0px));
}

.org-menu {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transition:
        opacity 0.35s ease,
        visibility 0.35s ease;
}
.org-menu.is-open {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
}
.org-menu * {
    font-family: "Zen Kaku Gothic New", sans-serif;
    box-sizing: border-box;
}
    .org-menu__visual {
        width: 1132px;
        height: 100%;
        background: url(/images/pc/bg_menu.webp) no-repeat center center / cover;
    }
    .org-menu__panel {
        display: flex;
        flex: 1;
        flex-shrink: 0;
        flex-direction: column;
        gap: 51px;
        align-items: flex-start;
        box-sizing: border-box;
        width: 788px;
        height: 100%;
        padding: 125px 80px 126px;
        background-color: #fff;
    }
        .org-menu__groups {
            display: flex;
            flex-wrap: wrap;
            gap: 51px 60px;
            width: 628px;
        }
            .org-menu__group {
                display: flex;
                flex-direction: column;
                gap: 17px;
                width: 284px;
            }
                .org-menu__ttl {
                    display: flex;
                    gap: 12px;
                    align-items: center;
                    width: 100%;
                    padding-bottom: 12px;
                    border-bottom: 1px solid #d8ccb3;
                }
                    .org-menu__ttl-bar {
                        display: block;
                        width: 3px;
                        height: 20px;
                        background-color: #9c8365;
                        border-radius: 10px;
                    }
                    .org-menu__ttl-txt {
                        margin: 0;
                        font-family: "Shippori Mincho", serif;
                        font-size: 20px;
                        font-weight: 500;
                        line-height: 1;
                        color: #7d603d;
                        letter-spacing: 0em;
                    }
                .org-menu__cols {
                    display: flex;
                    gap: 60px;
                    align-items: flex-start;
                }
                    .org-menu__list {
                        display: flex;
                        flex-direction: column;
                        gap: 15px;
                        width: 112px;
                        margin: 0;
                        padding: 0;
                        list-style: none;
                    }
                        .org-menu__link {
                            font-size: 14px;
                            font-weight: 500;
                            line-height: 1;
                            color: #271a0f;
                            text-decoration: none;
                            letter-spacing: 0em;
                            white-space: nowrap;
                        }
        .org-menu__bottom {
            display: flex;
            gap: 40px;
            align-items: flex-end;
        }
            .org-menu__bnr {
                display: flex;
                gap: 10px;
                align-items: flex-start;
            }
                .org-menu__bnr-link {
                    display: block;
                    line-height: 0;
                }
                    .org-menu__bnr-img {
                        display: block;
                        width: auto;
                        height: 68px;
                    }
            .org-menu__sns {
                display: flex;
                gap: 25px;
                align-items: center;
                margin: 0;
                padding: 0;
                list-style: none;
            }
                .org-menu__sns-link {
                    display: block;
                    width: 50px;
                    height: 50px;
                    line-height: 0;
                }
                    .org-menu__sns-link img {
                        display: block;
                        width: 50px;
                        height: 50px;
                    }
        .org-menu__legal {
            display: flex;
            gap: 20px;
            align-items: center;
            margin: 0;
            padding: 0;
            list-style: none;
        }
            .org-menu__legal-link {
                font-size: 14px;
                font-weight: 400;
                line-height: 1;
                color: #545655;
                text-decoration: none;
                letter-spacing: 0em;
                white-space: nowrap;
            }
    .org-menu__close {
        position: absolute;
        top: 32px;
        right: 40px;
        z-index: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 80px;
        height: 38px;
        padding: 0;
        cursor: pointer;
        background-color: #203b57;
        border: 1px solid #203b57;
        border-radius: 9999px;
        appearance: none;
        transition: background-color 0.3s ease, border-color 0.3s ease;
    }
    .org-menu__close:hover {
        background-color: #fff;
        border-color: #203b57;
        opacity: 1;
    }
        .org-menu__close-bar {
            position: absolute;
            display: block;
            width: 22px;
            height: 0;
            border-top: 1px solid #fff;
            transition: border-color 0.3s ease;
        }
        .org-menu__close:hover .org-menu__close-bar {
            border-top-color: #203b57;
        }
        .org-menu__close-bar:first-child {
            transform: rotate(45deg);
        }
        .org-menu__close-bar:last-child {
            transform: rotate(-45deg);
        }

/*//////////////////// hover（共通クラス） ////////////////////*/
/* 画像付き：枠内で少し拡大 */
.org-img-hover {
    color: inherit;
    text-decoration: none;
}

.org-img-hover__media {
    overflow: hidden;
}

.org-img-hover__media img,
.org-img-hover > img {
    transition: transform 0.4s ease;
}

.org-img-hover:hover {
    opacity: 1;
    color: inherit;
    text-decoration: none;
}

.org-img-hover:hover .org-img-hover__media img,
.org-img-hover:hover > img {
    transform: scale(1.05);
}

/* テキストリンク：下線が左から */
.org-txt-hover {
    position: relative;
    text-decoration: none;
}

.org-txt-hover::after {
    position: absolute;
    right: 0;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 1px;
    content: "";
    background-color: currentColor;
    transition: transform 0.4s ease;
    transform: scaleX(0);
    transform-origin: left center;
}

.org-txt-hover:hover {
    opacity: 1;
    text-decoration: none;
}

.org-txt-hover:hover::after {
    transform: scaleX(1);
}

/* テキストボタン：色反転 */
.org-btn-hover {
    transition:
        color 0.3s ease,
        background-color 0.3s ease,
        border-color 0.3s ease,
        opacity 0.3s ease;
    --org-btn-hover-fg: #fff;
    --org-btn-hover-bg: #383435;
}

.org-btn-hover::after {
    transition: filter 0.3s ease;
}

.org-btn-hover:hover {
    color: var(--org-btn-hover-fg);
    text-decoration: none;
    background-color: var(--org-btn-hover-bg);
    border-color: var(--org-btn-hover-border, var(--org-btn-hover-bg));
    opacity: 1;
}

.org-btn-hover:hover::after {
    filter: invert(1);
}

.org-btn-hover:hover .org-contact__btn-icon,
.org-btn-hover:hover [class*="__more-icon"] {
    filter: invert(1);
}

/* もっと見る（枠線ボタン）：現在色の反転 */
.org-staff__more.org-btn-hover,
.org-casestudy__more.org-btn-hover,
.org-blog__more.org-btn-hover,
.org-news__more.org-btn-hover {
    --org-btn-hover-fg: #fff;
    --org-btn-hover-bg: #3a332a;
    --org-btn-hover-border: #3a332a;
}

.org-instagram__more.org-btn-hover,
.org-company__more.org-btn-hover {
    --org-btn-hover-fg: #3a332a;
    --org-btn-hover-bg: #fff;
    --org-btn-hover-border: #fff;
}

/* フロート：org-btn-hover の全体塗りつぶしを打ち消し（詳細ホバーは footer.css） */
.org-float__item.org-btn-hover:hover,
.org-float__member.org-btn-hover:hover {
    color: inherit;
    text-decoration: none;
    background-color: transparent;
    opacity: 1;
}

.org-contact__btn--line.org-btn-hover {
    --org-btn-hover-bg: #06c755;
}

.org-contact__btn--visit.org-btn-hover {
    --org-btn-hover-bg: #7aa9d4;
}

.org-contact__btn--mail.org-btn-hover {
    --org-btn-hover-bg: #383435;
}

.org-search__area a.org-btn-hover,
.org-search__submit.org-btn-hover {
    --org-btn-hover-fg: #383435;
    --org-btn-hover-bg: #fff;
}
