@charset "utf-8";
/*要素のフォントサイズやマージン・パディングをリセットしています*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin:0;
  padding:0;
  border:0;
  outline:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}
 
/*行の高さをフォントサイズと同じにしています*/
body {
  line-height:1;
}
 
/*新規追加要素のデフォルトはすべてインライン要素になっているので、section要素などをブロック要素へ変更しています*/
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
  display:block;
}
 
/*nav要素内ulのマーカー（行頭記号）を表示しないようにしています*/
ol, ul {
  list-style:none;
}
 
/*引用符の表示が出ないようにしています*/
blockquote, q {
  quotes:none;
}
 
/*blockquote要素、q要素の前後にコンテンツを追加しないように指定しています*/
blockquote:before, blockquote:after,
q:before, q:after {
  content:'';
  content:none;
}
 
/*a要素のフォントサイズなどをリセットしフォントの縦方向の揃え位置を親要素のベースラインに揃えるようにしています*/
a {
  margin:0;
  padding:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}
 
/* ins要素のデフォルトをセットし、色を変える場合はここで変更できるようにしています */
ins {
  background-color:#ff9;
  color:#000;
  text-decoration:none;
}
 
/* mark要素のデフォルトをセットし、色やフォントスタイルを変える場合はここで変更できるようにしています
また、mark要素とは、文書内の検索結果で該当するフレーズをハイライトして、目立たせる際に使用するようです。*/
mark {
  background-color:#ff9;
  color:#000;
  font-style:italic;
  font-weight:bold;
}
 
/*テキストに打ち消し線が付くようにしています*/
del {
  text-decoration: line-through;
}
 
/*IEではデフォルトで点線を下線表示する設定ではないので、下線がつくようにしています
また、マウスオーバー時にヘルプカーソルの表示が出るようにしています*/
abbr[title], dfn[title] {
  border-bottom:1px dotted;
  cursor:help;
}
 
/*隣接するセルのボーダーを重ねて表示し、間隔を0に指定しています*/
table {
  border-collapse:collapse;
  border-spacing:0;
}
 
/*水平罫線のデフォルトである立体的な罫線を見えなくしています*/
hr {
  display:block;
  height:1px;
  border:0;
  border-top:1px solid #cccccc;
  margin:1em 0;
  padding:0;
}
 
/*縦方向の揃え位置を中央揃えに指定しています*/
input, select {
  vertical-align:middle;
}

img {
  vertical-align: top;
  font-size:0;
  line-height: 0;
}

/* 余白設定・クリアフィックス */
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}
* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

/* レイアウト */
html {
    overflow: auto;
}
body {
    min-width: 70rem;
    line-height: 1.6em;
    color: #2e2e2e;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1rem;
    font-optical-sizing: auto;
    font-weight: 400;
    text-align: justify;
    word-break: break-all;
    text-justify: inter-character;
    font-style: normal;
    overflow: hidden;
}
img { max-width: 100%; }
a,
a:visited {
    color: #2e2e2e;
    text-decoration: none;
}
a:hover,
a:hover * {
    opacity: .8;
    transition: .6s;
}

/* グローバルCSS変数 */
:root {
    --color-black: #2e2e2e;
    --color-navy: #0a0b41;
    --color-blue: #28299a;
    --color-lightblue: #6768c6;
    --color-gray: #787878;
    --color-lightgray: #ccc;
}

/* 共通設定 */
/*.sp-only,.sptab-only {
    display: none !important;
}
.pc-only {
    display: inherit;
}/*

/* ヘッダー */
header.sitehdr {
    width: 100%;
    height: 4.875rem;
    padding: .625rem 2.5rem;
    background: var(--color-navy);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: fixed;
    z-index: 999;  
}
/*header.scroll,
header.sitehdr:hover {
    background: rgba(255,255,255,.4);
    backdrop-filter: blur(.2rem);
    transition: .6s;
}*/
header.sitehdr .sitelogo {
    width: 15.75rem;
    height: 3.625rem;
}
header.sitehdr .sitelogo a {
    width: 100%;
    height: .8rem;
    color: #fff;
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.5em;
    display: block;
}
header.sitehdr .sitelogo a > span {
    font-family: "Roboto", sans-serif;
    font-size: .5em;
    line-height: 1.5em;
    font-weight: 300;
    display: block;
}
nav#global-pc .nav-menu {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
nav#global-pc .nav-menu > li {
    height: 2rem;
    position: relative;
}
nav#global-pc .nav-menu > li a {
    padding: 0 .9375rem;
    color: #fff;
    font-size: .875rem;
    line-height: 2rem;
    display: block;
}
nav#global-pc .nav-menu > li a:hover,
nav#global-pc .nav-menu > li a.current {
    color: var(--color-lightblue);
}
nav#global-pc .nav-menu > li:last-child a {
    background: #fff;
    border-radius: 100vh;
    color: var(--color-blue);
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    position: relative;
}
nav#global-pc .nav-menu > li:last-child a::after {
    content: '';
    width: 1.25rem;
    height: 1.25rem;
    margin-left: .5rem;
    background: url("images/icon-login.svg") center center no-repeat;
    vertical-align: middle;
    display: inline-block;
}
nav#global-pc .nav-menu > li ul.children {
    display: none;
}

@media screen and (min-width: 768px) {
 nav#global-pc .nav-menu > li button {
  display: none;
 }
nav#global-pc .nav-menu > li:hover ul.children {
    margin-left: 0;
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
}
nav#global-pc .nav-menu > li:hover ul.children > li {
    margin-bottom: 1px;
    background: var(--color-navy);
}
nav#global-pc .nav-menu > li:hover ul.children > li:hover {
    background: var(--color-blue);
}
nav#global-pc .nav-menu > li:hover ul.children > li a {
    padding: .5em 1em;
    white-space: nowrap;
}
}
/* 本文共通 */
main {
    margin-top: 4.875rem;
}
.wrapper {
    width: 70rem;
    margin: 7.5rem auto;
}
[class^="bg-"] {
    width: 100%;
    padding: 1px 0;
}
.bg-none {
    background: #fff;
}
.bg-navy {
    background: var(--color-navy);
}
.bg-navy h1,
.bg-navy h2,
.bg-navy h3,
.bg-navy p,
.bg-navy a {
    color: #fff;
}

/*body:not(.home) main h2.h2-01 {
    padding-left: .1rem;
    margin-bottom: .3rem;
    border-left: var(--color-blue) .02rem solid;
    font-size: 2em;
    line-height: 1.4em;
    font-weight: 400;
    letter-spacing: -.05em;
}*/
/* 画像付き一覧 */
.list-archive {
    width: 100%;
}
.list-archive .list-archive-block {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
}
.list-archive .list-archive-block article {
    width: calc(64rem / 4);
    height: auto;
    min-height: 16rem;
    padding-bottom: 1rem;
    margin: 0 2rem 2.25rem 0;
    background: #fff;
    border-radius: 4px;
    overflow: hidden;
}
.list-archive .list-archive-block article:nth-child(4n) {
    margin-right: 0;
}
.list-archive .list-archive-block article figure {
    width: 100%;
    height: 12rem;
    position: relative;
    overflow: hidden;
}
.list-archive .list-archive-block article figure img {
    width: auto;
    height: auto;
    min-width: 101%; /* 左右に1px未満の余白が出るのを回避するコード */
    min-height: 101%; /* 左右に1px未満の余白が出るのを回避するコード */
    object-fit: cover;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.list-archive .list-archive-block article .date-cate {
    padding: 1rem 1rem 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
}
.list-archive .list-archive-block article .date-cate .date {
    font-size: .875rem;
    color: var(--color-lightgray);
}
.list-archive .list-archive-block article .date-cate .cate {
    padding: .5em 1em;
    border: 1px solid var(--color-blue);
    border-radius: 100vh;
    line-height: 1em;
    font-size: .75rem;
    color: var(--color-blue);
}
.list-archive .list-archive-block article h1 {
    padding: 0 1rem;
    font-weight: 700;
    line-height: 1.2em;
    color: var(--color-black);
}
.list-archive [class^="btn-more-"] {
    width: 15.625rem;
    margin: 0 auto;
}
/* ボタン類 */
[class^="btn-"] {
    height: 3rem;
    border-style: solid;
    border-width: 1px;
    border-radius: 100vh;
    font-size: 1rem;
    font-weight: 700;
    line-height: 3em;
    text-align: center;
    display: block;
    position: relative;
}
[class^="btn-"]::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
[class$="-wt"] {
    background: #fff;
    border-color: var(--color-blue);
    color: var(--color-blue) !important;
}
[class$="-nv"] {
    background: var(--color-navy);
    border-color: #fff;
    color: #fff !important;
}
[class^="btn-more-"]::after {
    width: 1.5rem;
    height: 1.5rem;
    background-position: center center;
    background-repeat: no-repeat;
}
[class^="btn-more-"]::after {
    right: .5rem;
}
.btn-more-wt::after {
    background-image: url("images/icon-arrow-r-nv.svg");
}
.btn-more-nv::after {
    background-image: url("images/icon-arrow-r-wt.svg");
}
[class^="btn-pdf-"]::after,
[class^="btn-mail-"]::after {
    width: 1rem;
    height: 1rem;
    background-position: center center;
    background-repeat: no-repeat;
}
[class^="btn-pdf-"]::after {
    right: .5rem;
}
.btn-pdf-wt::after {
    background-image: url("images/icon-pdf.svg");
}
[class^="btn-mail-"]::after {
    right: .8rem;
}
.btn-mail-wt::after {
    background-image: url("images/icon-mail.svg");
}

/* ぱんくず */

/* ページャー */

/* フッター */
footer {
    padding-top: 2rem;
    background: var(--color-black);
}
footer .wrapper {
    margin: 0 auto;
}
footer a,
footer a:visited,
footer p,
footer address {
    color: #fff;
    font-style: normal;
}
footer .ftr-nav,
footer .ftr-policy {
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
}
footer .ftr-nav .ftr-l a.ftr-sitelogo {
    margin-bottom: .5rem;
    font-size: 1.25rem;
    font-weight: 600;
    display: inline-block;
}
footer .ftr-nav .ftr-l a.ftr-sitelogo:hover,
footer .ftr-policy a:hover {
    color: #fff;
}
footer .ftr-nav .ftr-l address,
footer .ftr-nav .ftr-l p {
    font-size: .875rem;
}
footer .ftr-nav .ftr-l .btn-mail-wt {
    width: 8rem;
    height: 2rem;
    padding-left: 1.5em;
    margin-top: 1em;
    font-size: .75rem;
    line-height: 2rem;
    text-align: left;
}
footer .ftr-nav .ftr-r ul.nav-menu {
    display: flex;
    justify-content: flex-end;
    flex-wrap: nowrap;
}
footer .ftr-nav .ftr-r ul.nav-menu>li {
    margin-left: 3rem;
}
footer .ftr-nav .ftr-r ul.nav-menu>li>a {
    font-weight: 700;
}
footer .ftr-nav .ftr-r ul.nav-menu>li ul.children {
    margin-top: .5rem;
    margin-left: 0;
}
footer .ftr-nav .ftr-r ul.nav-menu>li ul.children>li a {
    font-size: .875rem;
}
footer .ftr-policy {
    margin-top: 2rem;
    border-top: 1px solid #fff;
    padding: 1rem 0;
}
footer .ftr-policy .ftr-policy-link ul#legal-menu{
 display: flex;
 gap:30px;
}

footer .ftr-policy a,
footer .ftr-policy p {
    font-size: .75rem;
}


/* ページトップに戻るボタン */
.foot-page-top .scroll-to-top {
    position: fixed; /* 画面に固定 */
    bottom: 20px;    /* 画面下からの位置 */
    right: 20px;     /* 画面右からの位置 */
    display: none;   /* 初期状態では非表示 */
    width: 50px;     /* ボタンの幅 */
    height: 50px;    /* ボタンの高さ */
    line-height: 50px; /* アイコンやテキストを中央に配置 */
    background-color: var(--color-lightgray); /* 背景色 */
    color: var(--color-gray);     /* 文字色/アイコン色 */
    text-align: center; /* 文字/アイコンを中央揃え */
    border-radius: 50%; /* 円形にする */
    text-decoration: none; /* 下線を消す */
    font-size: 24px; /* アイコンや文字のサイズ */
    opacity: 0.7;    /* 透明度 */
    transition: opacity 0.3s ease-in-out; /* ホバー時のアニメーション */
    z-index: 999;    /* 他の要素より手前に表示 */
    box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* 軽く影をつける */
}

/* ホバー時のスタイル */
.foot-page-top .scroll-to-top:hover {
    opacity: 1;      /* 透明度を元に戻す */
}

@media screen and (max-width: 768px) { /* スマホの場合 */
    /* 表示切替 */
    /*.sp-only {
        display: inherit !important;
    }
    .pc-only {
        display: none !important;
    }*/
    html {
        height: 100%;
        overflow: auto;
    }
    body {
        min-width: 3.2rem;
    }
    body.menuopen {
        height: 100%;
        overflow: hidden;
    }
    header.sitehdr {
        padding: .625rem 1rem;
    }
    a.spmenu,
    .btn-trigger {
        width: 2.5rem;
        height: 2.5rem;
    }
    .btn-trigger {
        cursor: pointer;
        position: relative;
    }
    .btn-trigger span {
        width: 100%;
        height: 4px;
        background-color: #fff;
        border-radius: 100vh;
        position: absolute;
        left: 0;
    }
    .btn-trigger, .btn-trigger span {
        display: inline-block;
        transition: all .5s;
        box-sizing: border-box;
    }
    .btn-trigger span:nth-of-type(1) {
        top: 0;
    }
    .btn-trigger span:nth-of-type(2) {
        top: 1.0625rem;
    }
    .btn-trigger span:nth-of-type(3) {
        bottom: 0;
    }
    #btn-menu.active span:nth-of-type(1) {
        -webkit-transform: translateY(1.0625rem) rotate(-45deg);
        transform: translateY(1.0625rem) rotate(-45deg);
    }
    #btn-menu.active span:nth-of-type(2) {
        left: 50%;
        opacity: 0;
        -webkit-animation: active-btn-menu-bar02 .8s forwards;
        animation: active-btn-menu-bar02 .8s forwards;
    }
    #btn-menu.active span:nth-of-type(3) {
        -webkit-transform: translateY(-1.0625rem) rotate(45deg);
        transform: translateY(-1.0625rem) rotate(45deg);
    }
    .menu-toggle {
        display: block;
        background: none;
        border: none;
        font-size: 2em;
        cursor: pointer;
        z-index: 1001; /* メニューより手前に */
        padding: 0;
        color: #FFF;
    }
 #global-pc {
        width: 100%;
        height: calc(100vh - 4.875rem);
        border-bottom: .25rem solid var(--color-navy);
        /*display: none;*/
        overflow: auto;
        position: fixed;
        top: 4.875rem;
        right: 0;
  opacity: 0;
  background-color: rgba(0, 0, 0, 0.7);
   visibility: hidden;
   transition: opacity 0.3s ease, visibility 0.3s ease;
    }
  #global-pc.is-open {
        visibility: visible;
        opacity: 1;
    }
 #global-pc .menu-header-menu-container {
  display: flex;
  justify-content: flex-end;
 }
    #global-pc ul.nav-menu {
     display: block;
        background: #535151;
     width: 80%;
    }
 #global-pc ul.nav-menu>li {
  height: auto;
  border-bottom: 1px solid var(--color-lightgray);
 }
    #global-pc ul.nav-menu>li a {
        padding: 1em;
        color: #fff;
        display: block;
     font-size: 1em;
     line-height: 1;
    }
     #global-pc ul.nav-menu > li > a {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
 nav#global-pc .nav-menu > li a:hover,
 nav#global-pc .nav-menu > li a.current {
    color: var(--color-lightgray);
}
  nav#global-pc .nav-menu > li.has-submenu {
    position: relative; 
    display: flex;
    align-items: center;
    padding: 0;
  flex-wrap: wrap;
 }
 nav#global-pc .nav-menu > li.has-submenu > a{
    flex-grow: 1; 
    display: block; 
    text-decoration: none;
 }
 nav#global-pc .nav-menu > li.has-submenu button {
  background: none;
        border: none;
 }
 nav#global-pc .nav-menu > li.has-submenu button i {
  color: #FFF; 
    font-size: 1em;
 }
 nav#global-pc .nav-menu > li.is-open button i {
  transform: rotate(180deg);
    transition: transform 0.3s ease;
 }

     /*#global-pc ul.nav-menu > .menu-item-has-children > a::after {
        content: '\f107';
        font-family: 'Font Awesome 7 Free';
        font-weight: 900;
        transition: transform 0.3s;
    }
      #global-pc .nav-menu > .menu-item-has-children.is-active > a::after {
        transform: rotate(180deg);
    }*/
    #global-pc ul.nav-menu>li ul.children {
         position: static;
    width: 100%;
        margin-left: 0;
        background: #efefef;
        border-left: 1rem solid #efefef;
     border-bottom: 1px solid var(--color-lightgray);
         display: none;
    }
    #global-pc ul.nav-menu>li ul.children>li a {
        /*border-bottom: 1px solid var(--color-lightgray);*/
     border-bottom: none;
     font-size: 0.9em;
     color: #333;
    }
    #global-pc ul.nav-menu>li ul.children>li:last-child a {
     border-bottom: 1px solid var(--color-lightgray);
        border-bottom: none;
    }
    #global-pc ul.nav-menu > li:last-child a {
        width: 60%;
        margin: 2em auto 4em;
        background: #fff;
        border-radius: 100vh;
        color: var(--color-blue);
        text-align: center;
        font-family: "Roboto", sans-serif;
        font-weight: 700;
        position: relative;
               padding: 10px;
     display: flex;
     justify-content: center;     
    }
    #global-pc ul.nav-menu > li:last-child a::after {
        content: '';
        width: 1.25rem;
        height: 1.25rem;
        margin-left: .5rem;
        background: url("images/icon-login.svg") center center no-repeat;
        vertical-align: middle;
        display: inline-block;
    }
    
    /* 本文共通 */
    .wrapper {
        width: 100vw;
        padding: 0 1rem;
        margin: 5rem auto;
    }
    
    /* 画像付き一覧 */
    .list-archive .list-archive-block article {
        width: calc(100% / 2 - .5rem);
        min-height: 12rem;
        padding-bottom: 1rem;
        margin: 0 1rem 1.5rem 0;
    }
    .list-archive .list-archive-block article:nth-child(2n) {
        margin-right: 0;
    }
    .list-archive .list-archive-block article figure {
        height: 8rem;
    }
    .list-archive .list-archive-block article .date-cate {
        padding: .75rem;
        flex-wrap: wrap;
    }
    .list-archive .list-archive-block article .date-cate .date {
        width: 100%;
    }
    .list-archive .list-archive-block article h1 {
        padding: 0 .75rem;
    }
    
    /* フッター */
    footer .ftr-nav,
    footer .ftr-policy {
        flex-wrap: wrap;
    }
    footer .ftr-nav .ftr-l {
        order: 2;
        padding-top: 1rem;
        margin-top: 2rem;
        border-top: 1px solid #fff;
    }
    footer .ftr-nav .ftr-r {
        order: 1;
    }
    footer .ftr-nav .ftr-l,
    footer .ftr-nav .ftr-r {
        width: 100%;
    }
    footer .ftr-nav .ftr-r ul.nav-menu {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    footer .ftr-nav .ftr-r ul.nav-menu>li {
        width: 100%;
        margin-left: 0;
        margin-bottom: .5rem;
    }
    footer .ftr-nav .ftr-r ul.nav-menu>li ul.children {
        margin-top: 0;
        margin-left: 1em;
    }
     footer .ftr-policy .ftr-policy-link ul#legal-menu{
     display: block;
    }
}

@-webkit-keyframes active-btn-menu-bar02 {
    100% {
        height: 0;
    }
}
@keyframes active-btn-menu-bar02 {
    100% {
        height: 0;
    }
}

@media screen and (min-width: 768.00001px) and (max-width: 1119.9999px) {
    body {
        min-width: 48rem;
        max-width: 70rem;
    }
    header.sitehdr {
        padding: .5625rem 1rem;
    }
    nav#global-pc .nav-menu > li a {
        padding: 0 .5rem;
        letter-spacing: -.05em;
    }
    
    /* 本文共通 */
    .wrapper {
        width: 100%;
        padding: 0 1rem;
        margin: 7.5rem 0;
    }
    /* 画像付き一覧 */
    .list-archive .list-archive-block article {
        width: calc(calc(100% - 2rem) / 3);
        margin: 0 1rem 2rem 0;
    }
    .list-archive .list-archive-block article:nth-child(4n) {
        margin-right: 1rem;
    }
    .list-archive .list-archive-block article:nth-child(3n) {
        margin-right: 0;
    }
}




