@charset "utf-8";

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td,
xmp {
    margin: 0;
    padding: 0
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

fieldset,
img {
    border: 0
}

ol,
ul {
    list-style: none
}

caption,
th {
    text-align: left
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: 100%;
    font-weight: normal
}

* {
    box-sizing: border-box;
}

body {
    min-height: 100dvh;
    color: #1a2a23;
    /* 深い緑がかった黒 */
    background-color: #f2f2f2;
}

img {
    max-width: 100%;
    vertical-align: bottom;
}

input,
textarea,
select {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    font-size: 100%
}

a {
    color: inherit;
    text-decoration: none;
}

a,
button {
    cursor: pointer;
}

/* reset end */
html {
    scroll-behavior: smooth;
}

body {
    margin: 0 auto;
    max-width: 1200px;
    background-color: #FAFAFA;

    header {
        z-index: 100;
        position: fixed;
        width: 100%;
        max-width: 1200px;
        height: 80px;
        display: flex;
        justify-content: space-between;
        column-gap: 32px;
        align-items: center;
        padding: 16px 32px;
        background-color: #f2f2f2;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);

        @media (width <=768px) {
            padding: 12px 28px;
            height: 64px;

        }

        .logo {
            font-size: 28px;
            font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
            font-weight: 600;
            letter-spacing: 0.05em;
            flex-shrink: 0;

            @media (width <=768px) {
                font-size: 24px;
            }
        }

        .menu-toggle {
            display: none;
        }

        .hamburger {
            display: none;
            width: 30px;
            height: 22px;
            position: relative;
            cursor: pointer;
            z-index: 1001;

            div {
                z-index: 5000;
                width: 50px;
                background-color: #a11f1f;

                span {

                    position: absolute;
                    left: 0;
                    width: 100%;
                    height: 3px;
                    background: #1a2a23;
                    border-radius: 2px;
                    transition: 0.3s ease;

                    &:nth-child(1) {
                        top: 0;
                    }

                    &:nth-child(2) {
                        top: 9px;
                    }

                    &:nth-child(3) {
                        top: 18px;
                    }
                }
            }


        }

        .nav {
            ul {
                display: flex;
                flex-wrap: wrap;
                gap: 32px;
                list-style: none;

                @media (width <=906px) {
                    row-gap: 10px;
                }

                li a {
                    text-decoration: none;
                    color: #1a2a23;
                    font-weight: 500;
                    transition: 0.2s ease;

                    &:hover {
                        color: #929292;
                    }

                    @media (width <=768px) {
                        color: #F5F5F5;
                    }
                }
            }
        }

        /* スマホ表示用 */
        @media (width <=768px) {
            .hamburger {
                display: block;
            }

            .nav {
                position: fixed;
                top: 0;
                right: -100%;
                width: 50%;
                height: 100dvh;
                background: #161616;
                /* モスグリーン */
                display: flex;
                justify-content: center;
                align-items: center;
                transition: 0.4s ease;
                z-index: 1000;

                ul {
                    flex-direction: column;
                    gap: 2rem;
                }
            }

            /* チェック時に開く */
            .menu-toggle:checked~.nav {
                right: 0;
            }

            /* ハンバーガーアニメーション */
            .menu-toggle:checked+.hamburger span {
                &:nth-child(1) {
                    transform: rotate(45deg);
                    top: 9px;
                }

                &:nth-child(2) {
                    opacity: 0;
                }

                &:nth-child(3) {
                    transform: rotate(-45deg);
                    top: 9px;
                }

                background:#F5F5F5;

            }
        }
    }

    main {
        background-color: #F2F2F2;
        padding: 80px 24px 0;

        @media (width <=768px) {
            padding: 64px 16px 0;

        }

        section {
            scroll-margin-top: 80px;

            @media (width <=768px) {
                scroll-margin-top: 64px;
            }
        }

        .section-title {
            color: #F5F5F5;
            margin: 0 -24px;
            padding: 16px 0;
            font-size: 16px;
            text-align: center;
            background-color: #1E1E1E;

            span {
                font-weight: 100;
                display: block;
                font-size: 34px;

                @media (width <=768px) {
                    font-size: 28px;
                }
            }

            @media (width <=768px) {
                margin: 0 -16px;
                font-size: 14px;
                padding: 14px 0;

            }
        }

        .accent-title {
            background-color: #222;
            font-weight: bold;
            font-size: 24px;
            padding: 16px 16px 16px 36px;
            color: #ddd;
            position: relative;
            scroll-margin-top: 80px;

            @media (width <=768px) {
                scroll-margin-top: 64px;

                font-size: 20px;
            }

            &::before {
                content: "";
                position: absolute;
                top: calc(50% - 18px);
                left: 16px;
                width: 8px;
                height: 36px;
                background-color: #ddd;

                @media (width <=768px) {
                    top: calc(50% - 16px);
                    height: 32px;
                }
            }
        }
    }

    .profile {

        .layout {
            padding: 64px 0 96px;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 30px;

            @media (width <=768px) {
                padding: 48px 0 64px;
            }

            @media (width <=768px) {
                flex-direction: column;
                justify-content: center;
                align-items: center;
                gap: 40px;
            }

            img {
                flex-shrink: 0;
                display: block;
                width: 25%;
                min-width: 250px;
                border-radius: 1000px;
                object-fit: cover;
            }

            .wrapper {
                .profile-lead {
                    color: #1a2a23;
                    font-size: 24px;
                    font-weight: bold;
                    line-height: 1;
                    padding-bottom: 10px;

                }

                .manda-role {
                    padding-left: 10px;
                    font-size: 18px;

                }

                .manda-name {
                    color: #4a5e52;
                    font-size: 14px;
                }

                .profile-info {
                    color: #1a2a23;
                    border-top: solid 1px #bfbfbf;
                    padding: 12px 0 4px 0;
                    font-size: 18px;
                    font-weight: bold;
                }

                p {
                    color: #1a2a23;
                    padding-bottom: 12px;
                }
            }
        }
    }

    .contact {
        font-size: 16px;
        text-align: center;

        @media (width <=768px) {
            font-size: 15px;
        }

        .layout {
            padding: 64px 0 96px;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 40px;

            @media (width <=768px) {
                padding: 48px 0 64px;
                display: block;
            }

            .call,
            .mail,
            .line {
                a {
                    position: relative;
                    width: 420px;
                    height: 80px;
                    margin: 0 0 32px;
                    padding: 16px;
                    display: grid;
                    grid-template-columns: 35px 1fr 20px;
                    align-items: center;
                    background-color: #6b7a6f;
                    color: #ffffff;
                    border-radius: 10px;
                    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);

                    @media (width <=768px) {
                        width: auto;
                    }

                    &::after {
                        content: ">";
                        position: absolute;
                        width: fit-content;
                        height: fit-content;
                        top: calc(50% + -18.5px);
                        right: 20px;
                        font-size: 24px;
                        color: #ffffff;
                        transition: color 0.4s ease;

                    }

                    &::before {
                        content: "";
                        width: 36px;
                        height: 36px;
                        background-color: #292929;
                        border-radius: 100px;
                        position: absolute;
                        top: 0;
                        bottom: 0;
                        right: 10px;
                        margin: auto 0;
                        transition: background-color 0.4s ease;
                    }

                    &:hover {
                        background-color: #4a5e52;
                    }

                    img {
                        width: 40px;
                    }

                    div {
                        span {
                            display: block;
                        }

                        .text {

                            @media (width <=768px) {
                                font-size: 13px;
                            }
                        }

                        .call-number,
                        .mail-letter {
                            font-size: 20px;

                            @media (width <=768px) {
                                font-size: 18px;
                            }
                        }
                    }
                }
            }

            .qr {
                background-color: #161616;
                border-radius: 10px;
                padding: 1em;

                img {
                    max-width: 420px;
                    width: 100%;

                    @media (width <=768px) {
                        width: 80%;
                    }
                }
            }
        }
    }

    .access {

        .layout {
            padding: 64px 0 96px;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;

            @media (width <=768px) {
                padding: 48px 0 64px;
            }
        }

        @media (width <=768px) {
            .layout {
                grid-template-columns: 1fr;
                grid-template-rows: auto auto;
            }
        }

        .text {

            h3 {
                font-size: 24px;

                span {
                    color: #1a2a23;
                    font-weight: bold;
                }
            }

            dl {
                display: grid;
                grid-template-columns: 100px 1fr;

                dt,
                dd {
                    color: #1a2a23;
                    border-top: solid 1px #bfbfbf;
                    padding: 10px;
                    font-size: 16px;
                }
            }
        }

        .map {
            iframe {
                width: 100%;
                height: auto;
                aspect-ratio: 5/4;
                border-radius: 10px;
                overflow: hidden;
                vertical-align: bottom;
            }
        }
    }

    footer {
        font-size: 16px;
        padding: 1em;
        background-color: #1E1E1E;
        color: #F5F5F5;

        nav {
            padding: 2em 0;

            ul {
                text-align: center;
                display: grid;
                grid-template-columns: 1fr 1fr 1fr;
                gap: 10px;

                @media (width <=1000px) {
                    grid-template-columns: 1fr 1fr;
                    text-align: left;
                }

                @media (width <=600px) {
                    grid-template-columns: 1fr;
                    text-align: left;
                }

                li {
                    margin: 1px 0;

                    a {
                        position: relative;
                        font-weight: bold;
                        background-color: #F2F2F2;
                        color: #1a2a23;
                        display: block;
                        padding: 16px;

                        &::after {
                            content: "＞";
                            position: absolute;
                            right: 16px;
                            color: #1a2a23;
                        }

                        &:hover {
                            background-color: #b0b0b0;
                        }

                    }
                }
            }
        }

        p {
            font-size: 14px;
            color: #F5F5F5;
            text-align: center;
        }

        address {
            padding: 4px 0 12px;
            text-align: center;
            font-size: 14px;
        }
    }
}