/*----------------------------------------
	このCSSファイルには全ページ共通して使用されるCSSを記載する
----------------------------------------*/

/*----------------------------------------
	base ベースルール
----------------------------------------*/

/* 標準的なフォント（本文などに使用） */
html {
    font-size: 62.5%;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
    color: #303030;
}

/* 全体の背景色 */
body {
    background-color: #fefdfc;
}

/* 画像が荒くならないように対策 */
img {
    display: block;
    max-width: 100%;
    height: auto;
}

/* ヘッダー下のフォントサイズ */
header * {
    font-size: 1.8rem;
}

/* フッター下のフォントサイズ */
footer * {
    font-size: 1.2rem;
}

/*----------------------------------------
	layout レイアウトルール
----------------------------------------*/

/* wrapper（ページ内全体） */
.wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100dvh; /* スマホのために絶対dvhにすること */
}

/* main */
.main {
    width: 100%;
    margin-top: 70px; /* 固定ヘッダーに隠れないように高さを確保 */
    margin-bottom: 75px;
    flex: 1; /* コンテンツが少なくて余白ができてしまう場合はmainで埋める */
}

/* main内のコンテンツに使用するinnerクラス */
.main-inner {
    max-width: 1140px;
    width: 90%; /* .main内のうち幅90%の領域で表現する */
    font-size: 1.5rem;
    padding-left: 20px;
    padding-right: 20px;
    margin-left: auto;
    margin-right: auto;
}


/* ▼ スマホ（大） / 小型タブレット向け (540px以上） */
@media (min-width: 540px) {
    .main {
        margin-top: 80px;
    }
}

/* ▼ タブレット / 小型ノートPC向け （768px以上） */
@media (min-width: 768px) {
    .main {
        margin-top: 90px;
    }

    .main-inner {
        font-size: 1.6rem;
    }
}

/* ▼ デスクトップPC向け (992px以上) */
@media (min-width: 992px) {
    .main {
        margin-top: 100px;
        margin-bottom: 105px;
    }
}

/*----------------------------------------
	全ページ共通の見出しデザイン
----------------------------------------*/

/* h2のデザイン */
.content-title {
    font-family: "Archivo", sans-serif;
    font-size: 2.8rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-align: center;
    margin-top: 50px;
    margin-bottom: 50px;
}


/* ▼ タブレット / 小型ノートPC向け （768px以上） */
@media (min-width: 768px) {
    .content-title {
        font-size: 3rem;
    }
}

/* ▼ デスクトップPC向け (992px以上) */
@media (min-width: 992px) {
    .content-title {
        font-size: 3.4rem;
        margin-top: 60px;
        margin-bottom: 70px;
    }
}

/* ▼ フルサイズ用（1140px以上） */
@media (min-width: 1140px) {
    .content-title {
        font-size: 3.7rem;
    }
}

/*----------------------------------------
	header ヘッダー
----------------------------------------*/

.header {
    width: 100%;
    background-color:#627B86;
    position: fixed; /* ヘッダーを上部に固定 */
    z-index: 80;
}

.header-inner {
    height: 70px;
    max-width: 1140px;
    padding-top: 15px;
    padding-bottom: 15px;
    padding-left: 25px;
    padding-right: 17px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    width: 120px;
    height: auto;
}

.logo svg {
    width: 100%;
    color: #fefdfc;
    transition: color 0.3s ease;
}

/* ★ PC用：hover ========= */
@media (hover: hover) and (pointer: fine) {
    .logo:hover svg {
        color: rgba(254, 253, 252, 0.6);
    }
}
/* ★ スマホ用：タップ中だけ */
.logo:active svg {
    color: rgba(254, 253, 252, 0.6);
}
/* ★ ここまで =========== */


/* ▼ スマホ（大） / 小型タブレット向け (540px以上） */
@media (min-width: 540px) {
    .header-inner {
        height: 80px;
    }

    .logo {
        width: 140px;
    }
}

/* ▼ タブレット / 小型ノートPC向け （768px以上） */
@media (min-width: 768px) {
    .header-inner {
        height: 90px;
    }

    .logo {
        width: 170px;
    }
}

/* ▼ デスクトップPC向け (992px以上) */
@media (min-width: 992px) {
    .header-inner {
        height: 100px;
        padding-right: 20px;
    }
}

/* ▼ フルサイズ用（1140px以上） */
@media (min-width: 1140px) {
    .logo {
        width: 180px;
    }
}

/*----------------------------------------
	hamburger ハンバーガーメニュー
----------------------------------------*/

.g-nav {
    position: fixed;
    z-index: 90;
    /* ↓ ナビのスタート位置など */
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh; /* ナビの高さ */
    background: #627B86;
    transition: right 0.6s; /* スライドイン・アウト */
}

/* アクティブクラスがついたら位置を0に */
.g-nav.panelactive {
    right: 0;
}

.g-nav-inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.g-nav a {
    font-family: "Archivo", sans-serif;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: #fefdfc;
    display: block;
    text-align: center;
    padding-top: 15px;
    padding-bottom: 15px;
    padding-left: 15px;
    padding-right: 15px;
    transition: color 0.3s ease;
}

.g-nav a.current {
    color: #fde5b2;
}

/* ★ PC用：hover ========= */
@media (hover: hover) and (pointer: fine) {
    .g-nav a:hover {
        color: #fde5b2;
    }
}
/* ★ スマホ用：タップ中だけ */
.g-nav a:active {
    color: #fde5b2;
}
/* ★ ここまで =========== */


/* ▼ デスクトップPC向け (992px以上) */
@media (min-width: 992px) {
    .g-nav {
        position: relative;
        /* ↓ ナビのスタート位置など */
        right: 0; /* navを表に出す */
        height: 100px; /* navの高さ */
        background: none; /* 背景削除 */
        transition: none; /* 動き削除 */
    }

    .g-nav-inner {
        position: relative;
        display: flex;
        justify-content: flex-end;
        gap: 15px;
    }
}


/*========= ハンバーガーボタン =========*/

.hamburger-menu {
    position: relative;
    z-index: 100; /* ボタンを最前面に */
    width: 55px;
    height: 45px;
}

.hamburger-inner {
    display: flex;
    justify-content: center;
}

/* ×に変化 */
.hamburger-menu span.line {
    position: absolute;
    background-color: #fefdfc;
    width: 50%; /* 線の長さ */
    height: 3px; /* 線の太さ */
    border-radius: 10px;
    transition: transform 0.4s, opacity 0.4s;
}

.hamburger-menu span.line:nth-of-type(1) {
    top: 10px;
}

.hamburger-menu span.line:nth-of-type(2) {
    top: 20px;
}

.hamburger-menu span.line:nth-of-type(3) {
    top: 30px;
}

.hamburger-inner.active span.line:nth-of-type(1) {
    transform: translate(0px, 10px) rotate(45deg);
}

.hamburger-inner.active span.line:nth-of-type(2) {
    opacity: 0;
}

.hamburger-inner.active span.line:nth-of-type(3) {
    transform: translate(0px, -10px) rotate(-45deg);
}


/* ▼ デスクトップPC向け (992px以上) */
@media (min-width: 992px) {
    .hamburger-menu {
        display: none; /* PC版はハンバーガーメニューを非表示にする */
    }
}

/*----------------------------------------
	footer フッター
----------------------------------------*/

.footer {
    margin-top: auto;
    text-align: center;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-right: 15px;
    padding-left: 15px;
    color: #fefdfc;
    background-color: #3F474B;
}

.privacy {
    transition: color 0.3s ease;
}

/* ★ PC用：hover ========= */
@media (hover: hover) and (pointer: fine) {
    .privacy:hover {
        color: #fde5b2;
    }
}
/* ★ スマホ用：タップ中だけ */
.privacy:active {
    color: #fde5b2;
}
/* ★ ここまで =========== */

/*----------------------------------------
	page topボタン
----------------------------------------*/

.page-top {
    position: fixed;
    /* bottom はjsのほうで設定しています */
    right: 5%;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: rgba(254, 253, 252, 0.6);
    border: 1px solid #3F474B;
    transition: background-color 0.2s ease;
}

/* 線 */
.page-top-arrow::before,
.page-top-arrow::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 2px;
    background-color: #3F474B;
    border-radius: 1px;
    top: 50%;
    left: 50%;
    transition: background-color 0.2s ease;
}

/* ∧ */
.page-top-arrow::before {
    transform: translate(-80%, -100%) rotate(-45deg);
}

.page-top-arrow::after {
    transform: translate(-20%, -100%) rotate(45deg);
}

/* ★ PC用：hover ========= */
@media (hover: hover) and (pointer: fine) {
    .page-top:hover {
        background-color: #3F474B;
    }

    .page-top:hover .page-top-arrow::before,
    .page-top:hover .page-top-arrow::after {
        background-color: #fefdfc;
    }
}
/* ★ スマホ用：タップ中だけ */
.page-top:active {
    background-color: #3F474B;
}

.page-top:active .page-top-arrow::before,
.page-top:active .page-top-arrow::after {
    background-color: #fefdfc;
}
/* ★ ここまで =========== */

/* 上に上がる動き */
.page-top.UpMove {
    animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime {
    from {
        opacity: 0;
        transform: translateY(100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 下に下がる動き */
.page-top.DownMove {
    animation: DownAnime 0.5s forwards;
}

@keyframes DownAnime {
    from {
        opacity: 1;
        transform: translateY(0);
    }

    to {
        opacity: 0; /* 下がったら非表示にする */
        transform: translateY(100px);
    }
}


/* ▼ タブレット / 小型ノートPC向け （768px以上） */
@media (min-width: 768px) {
    .page-top {
        right: 3%;
        width: 53px;
        height: 53px;
    }
}

/* ▼ デスクトップPC向け (992px以上) */
@media (min-width: 992px) {
    .page-top {
        right: 3.5%;
    }
}

/*----------------------------------------
	リンク装飾
----------------------------------------*/

.url-link {
    font-weight: 700;
    color: #4190b3;
    border-bottom: 2px dotted #4190b3;
    padding-bottom: 1px;
    transition: color 0.15s ease, border-bottom-color 0.15s ease;
}

/* ★ PC用：hover ========= */
@media (hover: hover) and (pointer: fine) {
    .url-link:hover {
        color: rgba(65, 145, 179, 0.7);
        border-bottom: 2px dotted rgba(65, 145, 179, 0.7);
    }
}
/* ★ スマホ用：タップ中だけ */
.url-link:active {
    color: rgba(65, 145, 179, 0.7);
    border-bottom: 2px dotted rgba(65, 145, 179, 0.7);
}
/* ★ ここまで =========== */


/* 記述確認・挙動確認OKです！（2026.2.27-21:47） */
