/* 共通：変数・ヘッダー・フッター・共通パーツ（ttl_ptn_1 / btn_ptn_1・2 / tag_ptn_1）。団体カードは card.css */
:root {
    --font-df: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
    --font-en: "Helvetica Neue", "Arial", sans-serif;
    --color-text: #1f2a2e;
    --color-sub: #5b676b;
    --color-line: #dfe5e2;
    --color-bg: #f4f7f5;
    --color-main: #127a5b;
    --color-main-dark: #0c5a43;
    --color-main-pale: #e6f3ee;
    --color-accent: #c8530c;
    --color-accent-pale: #fdf1e8;
    --color-white: #ffffff;
    --color-dark-sub: #9fb0ab;
    --wrap-max: 1200px;
    --pad-side: 40px;

    @media (max-width: 600px) {
        --pad-side: 24px;
    }
    @media (max-width: 370px) {
        --pad-side: 16px;
    }
}

html {
    scroll-behavior: smooth;

    @media (prefers-reduced-motion: reduce) {
        scroll-behavior: auto;
    }
}

.site_header {
    background: var(--color-white);
    border-bottom: 1px solid var(--color-line);

    .wrap {
        margin: 0 auto;
        padding: 16px var(--pad-side);
        max-width: calc(var(--wrap-max) + var(--pad-side) * 2);
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 4px 16px;

        @media (max-width: 600px) {
            padding: 12px var(--pad-side);
        }
    }
    .logo {
        color: var(--color-main-dark);
        font-size: 20px;
        font-weight: 700;
        line-height: 1.4em;

        @media (max-width: 600px) {
            font-size: 18px;
        }
    }
    .lead {
        color: var(--color-sub);
        font-size: 14px;
        line-height: 1.5em;

        @media (max-width: 600px) {
            font-size: 12px;
        }
    }
}

.site_footer {
    padding: 48px 0 32px;
    background: var(--color-text);
    color: var(--color-white);

    .wrap {
        margin: 0 auto;
        padding: 0 var(--pad-side);
        max-width: calc(var(--wrap-max) + var(--pad-side) * 2);
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    .name {
        font-size: 18px;
        font-weight: 700;
        line-height: 1.4em;
    }
    .info {
        display: grid;
        grid-template-columns: max-content 1fr;
        gap: 6px 20px;
        font-size: 14px;
        line-height: 1.6em;

        @media (max-width: 600px) {
            grid-template-columns: 1fr;
            gap: 2px;
        }
        dt {
            color: var(--color-dark-sub);

            &:not(:first-child) {
                @media (max-width: 600px) {
                    margin-top: 10px;
                }
            }
        }
        dd > a {
            color: var(--color-white);
            text-decoration: underline;
        }
    }
    .note {
        display: flex;
        flex-direction: column;
        gap: 6px;
        color: var(--color-dark-sub);
        font-size: 12px;
        line-height: 1.7em;
    }
    .copy {
        color: var(--color-dark-sub);
        font-size: 12px;
        line-height: 1.5em;
    }
}

.ttl_ptn_1 {
    display: flex;
    flex-direction: column;
    gap: 8px;

    .sub {
        color: var(--color-main);
        font-family: var(--font-en);
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 0.12em;
        line-height: 1em;
    }
    .main {
        font-size: 28px;
        font-weight: 700;
        line-height: 1.4em;

        @media (max-width: 900px) {
            font-size: 24px;
        }
        @media (max-width: 600px) {
            font-size: 22px;
        }
        @media (max-width: 400px) {
            font-size: 20px;
        }
    }
}

.btn_ptn_1 {
    padding: 12px 28px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: var(--color-main);
    color: var(--color-white);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5em;
    border-radius: 999px;
    transition: background-color 0.3s;

    @media (hover: hover) {
        &:hover {
            background: var(--color-main-dark);
        }
    }
}

.btn_ptn_2 {
    padding: 8px 16px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: var(--color-white);
    color: var(--color-main-dark);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5em;
    border: 1px solid var(--color-line);
    border-radius: 999px;
    transition: background-color 0.3s, border-color 0.3s;

    @media (hover: hover) {
        &:hover {
            background: var(--color-main-pale);
            border-color: var(--color-main);
        }
    }
}

.tag_ptn_1 {
    padding: 2px 10px;
    background: var(--color-bg);
    color: var(--color-sub);
    font-size: 12px;
    line-height: 1.6em;
    border-radius: 4px;
}
