/* ===========================
    Reset + Normalize
=========================== */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    background-color: #fff;
    color: #333;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul[class],
ol[class] {
    list-style: none;
    padding: 0;
}

/* Anchor reset */
a {
    color: inherit;
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}

/* Image reset */
img {
    max-width: 100%;
    display: block;
}

/* ===========================
    変数
=========================== */
:root {
    --font-base: 'Noto Sans JP', sans-serif;
    --font-base-size: clamp(0.875rem, 0.792rem + 0.17vw, 1rem);
    --font-base-size-m: clamp(0.875rem, 0.708rem + 0.35vw, 1.125rem);
    --font-weight-base: 400;
    --font-weight-bold: 700;
    --color-bg: #EDF9FF;
    --color-text: #333333;
    --color-base-b01: #32A2D3;
    --color-base-b02: #282B32;
    --color-accent: #2664C2;
    --color-btn-base: #1F519C;
    --color-border: #e5e5e5;
    --color-font-c01: #194280;
    --base-line-height-m: 2;
    --base-line-height-s: 1.5;

    --whole-width: 1920px;
    --container-width: 1200px;
    --space-s: 0.5rem;
    --space-m: 1rem;
    --space-l: 2rem;
}

/* ===========================
    Layout base
=========================== */
body {
    font-family: var(--font-base);
    font-size: var(--font-base-size);
    color: var(--color-text);
    line-height: var(--base-line-height-m);
}

body.no-scroll {
	overflow: hidden;
	height: 100vh;
}

/* Container */
.container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--space-m);
}

.btn {
    background: var(--color-btn-base);
    color: #fff;
    border-radius: 6px;
    font-size: var(--font-base-size-m);
    font-weight: bold;
    a {
        display: flex;
        align-items: center;
        padding: .5em 1em;
        gap: 0 var(--space-s);
        &::after {
            content: "";
            background: url(../imgs/svg/icon-mail-w01.svg) no-repeat center center;
            background-size: contain;
            width: 2em;
            height: 2em;
        }
    }
}

p {
    margin-bottom: 1.5em;
}

/* ===========================
    Header
=========================== */
header {
    container: header / inline-size;
    max-width: var(--whole-width);
    padding: var(--space-l);
    position: relative;
    z-index: 3;
}
.header-inner {
    max-width: var(--container-width);
    margin: 0 auto;
}
header h1 {
    margin-bottom: var(--space-m);
    a {
        display: inline-flex;
        flex-flow: column;
        img {
            max-width: clamp(15.625rem, 11.042rem + 9.55vw, 22.5rem);
        }
        span {
            font-size: 10px;
        }
    }
}
header nav {
    display: flex;
    align-items: center;
    gap: 0 var(--space-m);
    ul {
        list-style: none;
        display: flex;
        gap: var(--space-s);
        li {
            display: flex;
            align-items: center;
            gap: 0 var(--space-s);
            + li::before {
                content: "|";
            }
        }
        a {
            font-size: var(--font-base-size-m);
            font-weight: bold;
        }
    }
}

.hamburger {
    background: #fff;
	display: none;
    position: fixed;
    top: 40px;
    right: 3%;
    justify-content: center;
    align-items: center;
    width: 5em;
    height: 5em;
    font-size: 12px;
    border: 3px solid;
    border-radius: 100%;
    z-index: 999;
    &::before {
        content: "";
        background: #333;
        position: absolute;
        width: 3px;
        height: 40px;
        top: -43px;
        left: calc(50% - 3px);
    }
    span {
        font-weight: bold;
    }
    .close {
        display: none;
    }
    .open {
        display: block;
    }
}

.hamburger.open {
    .close {
        display: block;
    }
    .open {
        display: none;
    }
}

/* ===========================
    Main
=========================== */
main {
    padding: var(--space-m) 0;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}

/* ===========================
    Footer
=========================== */
footer {
    container: footer / inline-size;
    max-width: var(--whole-width);
    padding: var(--space-l) 0 0;
}

.footer-inner {
    padding: 0 var(--space-l);
}

.footer-menu {
    background: var(--color-base-b01);
    color: #fff;
    padding: var(--space-l);
    ul {
        list-style: none;
        display: flex;
        justify-content: center;
        gap: 0 var(--space-s);
        li {
            display: flex;
            align-items: center;
            gap: 0 var(--space-s);
            + li::before {
                content: "|";
            }
        }
        a {
            font-size: var(--font-base-size-m);
            font-weight: bold;
        }
    }
}

.footer-logo {
    display: flex;
    flex-flow: column;
    align-items: center;
    margin-top: 5em;
    img {
        max-width: 350px;
    }
    h2 {
        font-size: clamp(1rem, 0.583rem + 0.87vw, 1.625rem);
    }
    h3 {
        font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
    }
}

.links-sns {
    margin: 3em auto 5em;
    ul {
        list-style: none;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 0 var(--space-l);
        img {
            max-width: clamp(2.125rem, 1.042rem + 2.26vw, 3.75rem);
        }
    }
}

.copy {
    text-align: center;
    font-size: clamp(0.625rem, 0.542rem + 0.17vw, 0.75rem);
}

/* ===========================
    Utility
=========================== */
.pc { display: block; }
.sp { display: none; }
.text-center { text-align: center; }
.mt-s { margin-top: var(--space-s); }
.mt-m { margin-top: var(--space-m); }
.mt-l { margin-top: var(--space-l); }
.nmb { margin-bottom: 0; }

@media (max-width: 767px) {
    .pc { display: none; }
    .sp { display: block; }
    #site-wrap { overflow: hidden; }
    .hamburger {
		display: flex;
	}
    #global-nav {
        position: fixed;
        top: 0;
        right: 0;
        background: #fff;
        width: 100%;
        height: 100vh;
        transform: translateX(100%);
        transition: all 0.3s ease;
        opacity: 0;
    }
    #global-nav.active {
        opacity: 1;
        transform: translateX(0);
    }
    header nav {
        flex-flow: column;
        justify-content: center;
        ul {
            flex-flow: column;
            margin-bottom: 2em;
            li {
                + li::before {
                    display: none;
                } 
            }
            a {
                font-size: 6vw;
            }
        }
        .btn {
            transform: scale(1.4);
        }
    }
    .footer-menu {
        ul {
            flex-flow: column;
            li {
                border-bottom: 1px solid;
                a {
                    display: block;
                    width: 100%;
                    padding: 1em;
                }
            }
            li + li::before {
                display: none;
            }
        }
    }
}