/* =========================================================
  Header (Mobile First)
========================================================= */
.site-header {
    position: relative;
    z-index: 1200;
}
.site-header__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 18px 18px 14px;
}
.site-header__logo {
    display: inline-flex;
    align-items: flex-start;
    text-decoration: none;
}
.site-header__logo img {
    max-width: 180px;
    height: auto;
    display: block;
}
/* Right wrapper */
.site-header__right {
    display: inline-flex;
    align-items: center;
    gap: 20px; /* ピルとハンバーガー間（スクショ寄せ） */
}
/* =========================================================
  Hamburger (always)
========================================================= */
.menu-toggle {
    position: relative;
    z-index: 1300;
    display: inline-flex;
    flex-direction: column;
    justify-content: space-between;
    width: 60px;
    height: 40px;
    padding: 10px 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.menu-toggle__line {
    width: 100%;
    height: 2px;
    background: #111;
    transition: transform .5s ease, opacity .5s ease, width .5s ease;
}
.menu-toggle__line--short {
    width: 50%;
}
.menu-toggle:hover .menu-toggle__line--short {
    width: 100%;
}
/* =========================================================
  Hamburger → X
========================================================= */
.menu-toggle.is-open {
    justify-content: center;
}
.menu-toggle.is-open .menu-toggle__line {
    width: 50px;
    background: #FFF;
}
.menu-toggle.is-open .menu-toggle__line:nth-child(1) {
    transform: translateY(2px) rotate(25deg);
}
.menu-toggle.is-open .menu-toggle__line:nth-child(2) {
    opacity: 0;
}
.menu-toggle.is-open .menu-toggle__line:nth-child(3) {
    transform: translateY(-2px) rotate(-25deg);
}
/* reduce motion */
@media (prefers-reduced-motion: reduce) {
    .menu-toggle__line, .overlay-menu {
        transition: none;
    }
}
/* =========================================================
  Overlay Menu (full gray)
========================================================= */
.overlay-menu {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: rgba(0, 0, 0, .9);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s ease, visibility .4s ease;
}
.overlay-menu.is-open {
    opacity: 1;
    visibility: visible;
}
/* Center menu */
.overlay-nav__list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
}
.overlay-nav__list li + li {
    margin-top: 22px;
}
.overlay-nav__list a {
    color: #fff;
    text-decoration: none;
    font-size: 2rem;
    letter-spacing: .08em;
}
/* SP only */
.overlay-lang {
    margin-top: 40px;
    display: flex;
    gap: 30px;
}
.overlay-lang a, .overlay-lang span {
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-decoration: none;
    opacity: 1;
}
.overlay-lang .is-current {
    opacity: .5;
    border-bottom: #FFFFFF solid 1px;
}
/* =========================================================
  PC (min-width: 768px)
========================================================= */
@media (min-width: 768px) {
    .site-header__inner {
        padding: 26px 56px 20px;
    }
    .site-header__logo img {
        max-width: 240px;
    }
    /* PCはヘッダーに言語ピルを初期表示で出す */
    .lang-pills.pc {
        display: inline-flex;
    }
    /* PC hamburger spec: w48 x h22, last line w24 */
    .menu-toggle {
        width: 48px;
        height: 22px;
        padding: 0;
    }
    .menu-toggle__line {
        width: 48px;
    }
    .menu-toggle__line--short {
        width: 24px;
    }
    .overlay-nav__list a {
        font-size: 2.4rem;
    }
    .overlay-nav__list a:hover {
        opacity: 0.6;
    }
    /* =========================================================
  Language Pills (PC only)
========================================================= */
    .lang-pills {
        display: inline-flex;
        align-items: center;
        gap: 4px;
    }
    .lang-pill {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: 30px;
        min-width: 80px;
        border-radius: 999px;
        background: rgba(255, 255, 255, .55);
        border: 1px solid rgba(0, 0, 0, .06);
        color: #111;
        text-decoration: none;
        font-size: 0.9rem;
        letter-spacing: .12em;
        line-height: 1;
        padding-left: 1px;
    }
    .lang-pill.is-current {
        background: rgba(255, 255, 255, .90);
    }
	.overlay-lang.sp {
    display: none;
}

}