body {
  font-family: 
    -apple-system, 
    BlinkMacSystemFont, 
    "Hiragino Kaku Gothic ProN", 
    "ヒラギノ角ゴ ProN W3", 
    "Helvetica Neue", 
    "Yu Gothic", 
    "游ゴシック", YuGothic, "游ゴシック体", 
    "Meiryo", メイリオ, 
    sans-serif;
}


h1 {
  margin: 0;
  padding: 0;
  font-size: 20px;
}

a {
  text-decoration: none;
  color: #4b4b4b;
}

nav {
  margin: 0 0 0 auto;
}

hr {
  opacity: 1;
  color: #969da3;
}

ul {
  margin: 0;
  display: flex;
  float: right;
}

li {
  margin: 0 0 0 15px;
  font-size: 14px;
}

li::marker {
  color: #F39900;
}

header {
  top: 0;
  width: 100%;
  display: flex;
  align-items: center;
  z-index: 9999;
  height: 100px;
}

#header{
  z-index: 10000;
}

.center {
  text-align: center !important;
  margin: auto 0;
}

.left {
  text-align: left !important;
}

.right {
  text-align: right;
}

.c-white {
  color: #fff;
}

.t-bold {
  font-weight: bold;
}

.t-small {
  font-size: 0.9rem;
  line-height: 0.7rem;
}

.d-block {
  display: block;
}

.d-flex {
  display: flex;
}

.f-center {
  align-items: center;
}

.w-100 {
  width: 100%;
}

.w-90 {
  width: 90%;
}

.w-80 {
  width: 80%;
}

.w-70 {
  width: 70%;
}

.w-60 {
  width: 60%;
}

.w-50 {
  width: 50%;
}

.w-40 {
  width: 40%;
}

.w-30 {
  width: 30%;
}

.w-20 {
  width: 20%;
}

.w-10 {
  width: 10%;
}

.link {
  /* color: #0000ee; */
  text-decoration: underline;
  word-wrap: break-word;
  cursor: pointer;
}

.only-pc {
  display: block;
}

.only-mb {
  display: none;
}

.only-pc-flex {
  display: flex;
}

.only-mb-flex {
  display: none;
}


/*---------- ヘッダーcss ----------*/
/* ヘッダー左側ロゴ */
.header__left {
  width: 280px;
  display: flex;
  background-color: #fff;
  padding: 1rem 0;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
  border-radius: 0 0 40px 0;
  /* height: 175px; */
  top: 0;
  align-items: center;
  text-align: center;
  z-index: 100;
  cursor: pointer;
  position: fixed;
}

.header__logo {
  width: 100%;
}

.header__logo__img {
  width: 35%;
  text-align: center;
  vertical-align: middle;
}

.header__title {
  color: #1B5693;
  font-size: 1rem;
  font-weight: bold;
}

.header__text {
  font-size: 0.7rem;
  font-weight: normal;
  margin: 0;
}

/* ヘッダー真ん中メニュー */
.nav-menu {
  background-color: #fff;
  width: 100%;
  padding: 24px 150px 24px 285px;  
  top: 0;
  left: 0;
  height: auto;
  position: fixed;
  z-index: 20;
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.4);
}

.nav-menu-content {
  justify-content: space-between;
  padding: 12px;
  width: 100%;
  /* width: calc(100vw - 768px); */
}

.nav-menu-content li {
  margin-right: 10px;
}

.menu-txt {
  font-size: 1.05rem;
  font-weight: bold;
}

.header__center__title {
  display: none;
}

.header__center__text {
  display: none;
}

/* ヘッダー右側ロゴ */
.hamburger-menu {
  display: none;
}

.header__link-login {
  width: 150px;
  height: 150px;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 9999;
  transition: all 0.3s cubic-bezier(0.33, 1, 0.68, 1);
  text-align: center;
}

.header__link-login a {
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.06em;
  width: 100%;
  height: 100%;
  display: block;
  padding: 0 0 9px 15px;
  background-color: #F39900;
  border-radius: 0 0 0 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  flex-direction: column;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
}

.header__link-loggedin {
  width: 150px;
  height: 150px;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 9999;
  transition: all 0.3s cubic-bezier(0.33, 1, 0.68, 1);
  text-align: center;
}

.header__link-loggedin a {
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.06em;
  width: 100%;
  height: 100%;
  display: block;
  padding: 0 0 9px 15px;
  background-color: #1b5693;
  border-radius: 0 0 0 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  flex-direction: column;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
}

.button-txt {
  color: #fff;
  vertical-align: middle;
  align-items: center;
  margin: auto;
  cursor: pointer;
}

.login-btn {
  text-align: center;
  font-size: 1.2rem;
  font-weight: bold;
}

.login-btn::before {
  width: 100%;
  height: 49px;
  content: '';
  display: block;
  margin: 10px;
  background-image: url(../img/loginIcon.svg);
  background-repeat: no-repeat;
  background-size: contain;
  color: #fff;
}

.logout-btn {
  text-align: center;
  font-size: 1.2rem;
  font-weight: bold;
}

.logout-btn::before {
  width: 100%;
  height: 49px;
  content: '';
  display: block;
  margin: 10px;
  background-image: url(../img/logoutIcon.svg);
  background-repeat: no-repeat;
  background-size: contain;
  color: #fff;
}

.loggedin-btn {
  text-align: center;
  font-size: 1.2rem;
  font-weight: bold;
}

.loggedin-btn::before {
  width: 100%;
  height: 49px;
  content: '';
  display: block;
  margin: 10px;
  background-image: url(../img/logoutIcon.svg);
  background-repeat: no-repeat;
  background-size: contain;
  color: #fff;
}

.hamburger-menu-login {
  padding: 2rem 0;
}

.hamburger-menu-login-btn {
  background-color: #F39900;
  padding: 1rem 5rem;
  color: #fff;
  font-size: 1.2rem;
  font-weight: bold;
  margin-top: 3rem;
  cursor: pointer;
}

.loggedin-menu {
  background-color: #1B5693 !important;
}

@media screen and (max-width: 1200px) {
  header {
    top: 0;
    width: 100%;
    display: flex;
    align-items: center;
    z-index: 9999;
    height: 100px;
  }

  .header__left {
    width: 120px;
    height: 130px;
    display: flex;
    background-color: #fff;
    padding: 1rem 0;
    box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
    border-radius: 0 0 40px 0;
    align-items: center;
    text-align: center;
    z-index: 1000;
    cursor: pointer;
  }

  .header__title {
    display: none;
  }

  .header__text {
    display: none;
  }

  .header__center__title {
    color: #1B5693;
    font-size: 1.2rem;
    font-weight: bold;
    text-align: center;
    display: block;
  }

  .header__center__text {
    font-size: 1rem;
    text-align: center;
    display: block;
  }

  .header__logo {
    width: 100%;
  }

  .header__logo__img {
    width: 75%;
    text-align: center;
    vertical-align: middle;
  }

  .nav-menu {
    height: 100px;
    position: fixed;
    padding: 12px;
  }

  .nav-menu-content {
    display: none;
  }

  .header__link-loggedin {
    display: none;
  }

  .hamburger-menu {
    display: block;
  }

  .nav-hamburger-menu-content {
    justify-content: space-between;
    padding: 12px 18%;
    width: 100%;
  }

  .nav-hamburger-menu-content li {
    margin-right: 10px;
  }

  ul {
    margin: 0;
    display: block;
    float: left;
  }

  li {
    margin: 0 0 0 15px;
    font-size: 14px;
  }

  .hamburger-menu {
    width: clamp(136px, 11vw, 170px);
    height: 150px;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 30;
    transition: all 0.3s cubic-bezier(0.33, 1, 0.68, 1);
    text-align: center;
  }

  .menu-btn {
    position: fixed;
    top: 0;
    right: 0;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.06em;
    width: 120px;
    height: 130px;
    padding: 0 0 9px 15px;
    background-color: #F39900;
    border-radius: 0 0 0 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    flex-direction: column;
    box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
    z-index: 1200 !important;
  }

  .menu-btn {
    position: fixed;
    top: 0;
    right: 0;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.06em;
    width: 120px;
    height: 130px;
    padding: 0 0 9px 15px;
    background-color: #F39900;
    border-radius: 0 0 0 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    flex-direction: column;
    box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
    z-index: 1200 !important;
  }

  .menu-btn span,
  .menu-btn span:before,
  .menu-btn span:after {
    content: '';
    display: block;
    height: 6px;
    width: 50px;
    border-radius: 3px;
    background-color: #ffffff;
    position: absolute;
  }

  .menu-btn span:before {
    bottom: 8px;
  }

  .menu-btn span:after {
    top: 8px;
  }

  #menu-btn-check:checked~.menu-btn span {
    background-color: rgba(255, 255, 255, 0);
    /*メニューオープン時は真ん中の線を透明にする*/
  }

  #menu-btn-check:checked~.menu-btn span::before {
    bottom: 0;
    transform: rotate(45deg);
  }

  #menu-btn-check:checked~.menu-btn span::after {
    top: 0;
    transform: rotate(-45deg);
  }

  #menu-btn-check {
    display: none;
  }

  #menu-btn-check:checked~.menu-content {
    left: 0;
    /*メニューを画面内へ*/
  }

  .menu-content {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 80;
    background-color: #1B5693;
    transition: all 0.5s;
    padding-top: 170px;
  }

  .menu-content ul {
    padding: 70px 10px 0;
  }

  .menu-content ul li {
    border-bottom: solid 1px #ffffff;
    list-style: none;
  }

  .menu-content ul li a {
    display: block;
    width: 100%;
    font-size: 1.5rem;
    box-sizing: border-box;
    color: #ffffff;
    text-decoration: none;
    padding: 9px 15px 10px 0;
    position: relative;
  }

  .menu-content ul li a::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: solid 2px #ffffff;
    border-right: solid 2px #ffffff;
    transform: rotate(45deg);
    position: absolute;
    right: 11px;
    top: 16px;
  }
}



@media screen and (max-width: 768px) {
  .nav-menu {
    height: 70px;
    position: fixed;
    padding: 12px;
  }

  .header__center__title {
    font-size: 1rem;
  }

  .header__center__text {
    font-size: 0.5rem;
  }

  .header__left {
    width: 80px;
    height: 90px;
    display: flex;
    background-color: #fff;
    padding: 1rem 0;
    box-shadow: 3px 3px 10px rgba(0, 0, 0, .5);
    border-radius: 0 0 40px 0;
    align-items: center;
    text-align: center;
    z-index: 1000;
    cursor: pointer;
  }

  header {
    top: 0;
    width: 100%;
    display: flex;
    height: 70px;
    align-items: center;
    z-index: 9999;
  }

  .menu-btn {
    width: 80px;
    height: 90px;
  }
}

/*---------- ヘッダーcssここまで ----------*/


/*---------- パンくずリスト ----------*/
.breadcrumb-parent {
  padding: 2rem 0;
}

.breadcrumb {
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb li {
  display: inline;
  /*横に並ぶように*/
  list-style: none;
  font-weight: bold;
  /*太字*/
}

.breadcrumb li:after {
  /* >を表示*/
  content: '>';
  padding: 0 0.2em;
  color: #fff;
}

.breadcrumb li:last-child:after {
  content: '';
}

.breadcrumb li a {
  text-decoration: none;
  color: #fff;
  opacity: .8;
  /*色*/
}

.breadcrumb li a:hover {
  text-decoration: underline;
}

@media screen and (max-width: 768px) {
  .breadcrumb-parent {
    padding-top: 3rem;
    padding-bottom: 1rem;
  }

  .breadcrumb li a {
    font-size: 0.75rem;
  }
  
}

/*---------- パンくずリストここまで ----------*/

/*---------- TOPページレイアウト ----------*/

.nav-info-section {
  width: 100%;
  padding: 1rem 0 3rem;
}

.nav-info-column {
  display: flex;
  align-items: center; /* 全体を垂直中央揃え */
  border: 3px solid #F39900;
  margin: 1rem 0;
}

.nav-info-category {
  width: 30%;
  display: flex;
  align-items: center; /* 垂直中央揃え */
  justify-content: center;
  border-right: 3px solid #F39900;
  padding: 1.2rem;
  gap: 10px; /* アイコンとテキストの間隔 */
}

.nav-info-icon {
  width: 24px; /* アイコンのサイズ調整 */
  height: 24px;
}

.nav-info-category p {
  margin: 0;
  font-weight: bold;
  font-size: 1.2rem;
}

.nav-info-title {
  width: 70%;
  display: flex;
  align-items: center; /* 垂直中央揃え */
  padding: 1.2rem;
}

.nav-info-title a {
  text-decoration: none;
  font-size: 1rem;
}
@media screen and (max-width: 768px) {
  .nav-info-section {  
    padding: 1rem 0 ;
}
  .nav-info-column {
    flex-direction: column;
    align-items: stretch; /* 幅を100%に広げるため */
  }

  .nav-info-title {
    padding: 0.75rem;
  }

  .nav-info-category {
    width: 100%;
    border-right: none; /* スマホでは縦なので右線は不要 */
    border-bottom: 3px solid #F39900;
    padding: 0.75rem;
  }

  .nav-info-category {
    justify-content: flex-start;
  }
}



/*---------- セクション「nav-top」 ----------*/
.nav-top {
  min-height: 100vh;
  width: 100%;
  background-color: #1B5693;
  /* margin-top: -20px; */
  padding-bottom: 30px;
}

.nav-top-flex {
  display: flex;
}

/* 画面左側タイトル */
.nav-top-left {
  background-color: #1B5693;
  /* height: calc(100vh - 200px); */
  width: 7%;
}

.top-title {
  writing-mode: vertical-rl;
  text-align: center;
  vertical-align: middle;
  margin: 120% auto;
  color: #fff;
  font-size: 1.2rem;
}

/* 画面右側画像 */
.nav-top-right {
  height: 100vh;
  width: 93%;
  border-radius: 3rem;
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden; /* 画像のはみ出し防止 */
}

.top-img {
  position: absolute;
  object-fit: cover;
  height: 100%;
  width: 100%;
  transition: opacity 2s ease-in-out;
  border-radius: 3rem;
  object-position: 0px 0px;
  object-position: center center;
  opacity: 0; /* 初期状態は非表示 */
}

.top-img.active {
  opacity: 1; /* アクティブな画像を表示 */
}

/* .nav-top-right {
  height: calc(100vh - 200px);
  width: 93%;
  border-radius: 3rem;
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
}

.top-img {
  position: absolute;
  object-fit: cover;
  height: 100%;
  width: 100%;
  transition: all 2s ease-in-out;
  border-radius: 3rem;
  object-position: 0px 0px;
} */

/* ヘッダー下側項目 */
.nav-top-center {
  background-color: #fff;
  position: relative;
  width: 90%;
  height: 200px;
  margin: -70px auto 0 auto;
  border-radius: 3rem;
}

.nav-top-center-flex {
  display: flex;
  height: 100%;
}

.nav-top-center-left {
  width: 50%;
  text-align: center;
}

.top-center-content {
  display: flex;
  height: 100%;
  padding: 3rem;
}

.top-center-content-left {
  width: 20%;
  margin: auto;
}


.nav-top-center-right {
  width: 50%;
  text-align: center;
}

.top-content-num {
  font-size: 4rem;
  color: #1B5693;
}

.top-center-content-right {
  width: 80%;
  margin: auto;
}

.center-content-right-top-left {
  width: 50%;
}

.center-content-right-top-right {
  width: 50%;
}

.border {
  height: 70% !important;
  width: 0.2rem;
  margin: auto;
}

.top-center-content-right-flex {
  display: flex;
}

.top-content-title {
  font-size: 2rem;
  font-weight: bold;
  text-align: left;
}

.top-content-btn {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  text-align: center;
  text-decoration: none;
  margin: auto;
  padding: 0.75rem 3rem 0.75rem 1.5rem;
  font-weight: bold;
  border-radius: 3rem;
  position: relative;
  transition: 0.5s;
  border: 1px #F39900 solid;
}

.top-content-btn::before {
  position: absolute;
  content: '';
  right: -23px;
  width: 12px;
  height: 12px;
  border-top: 3px solid #1B5693;
  border-right: 3px solid #1B5693;
  transform: rotate(45deg);
  right: 2rem;
}

.top-content-text {
  font-size: 1rem;
}

@media screen and (max-width: 1200px) {
  .breadcrumb-parent {
    padding: 1rem 0;
  }

  .nav-top {
    min-height: 0;
    padding-bottom: 2rem;
  }

  .nav-top-left {
    margin-top: 150px;
  }

  .nav-top-flex {
    height: 400px;
  }

  .top-title {
    margin: 0% auto;
    font-size: 0.75rem;
  }

  .nav-top-right {
    /* height: 100%; */
    width: 93%;
    border-radius: 2rem;
  }

  .top-img {
    margin-top: 30px;
    height: 400px;
    width: 100%;
    border-radius: 0rem 2rem 0rem 2rem;
  }

  /* ヘッダー下側項目 */
  .nav-top-center {
    background-color: #fff;
    position: relative;
    width: 90%;
    height: 140px;
    margin: -70px auto 0 auto;
    border-radius: 2rem;
  }

  .nav-top-center-flex {
    display: flex;
    height: 100%;
  }

  .nav-top-center-left {
    width: 50%;
    text-align: center;
  }

  .top-center-content {
    display: block;
    height: 100%;
    padding: 0.5rem;
  }

  .top-center-content-right-flex {
    display: block;
  }

  .top-center-content-left {
    width: 100%;
    margin: auto;
  }


  .nav-top-center-right {
    width: 50%;
    text-align: center;
  }

  .top-content-title {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    padding: 0;
  }

  .top-content-btn {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    text-align: center;
    text-decoration: none;
    margin: auto;
    padding: 0.25rem 2rem 0.25rem 1rem;
    font-weight: bold;
    /* font-size: 0.75rem; */
    border-radius: 1rem;
    position: relative;
    transition: 0.5s;
    border: 1px #F39900 solid;
  }

  .top-content-btn::before {
    position: absolute;
    content: '';
    right: -23px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #1B5693;
    border-right: 3px solid #1B5693;
    transform: rotate(45deg);
    right: 1rem;
  }

  .top-content-text {
    font-size: 0.6rem;
    display: none;
  }

  .top-content-num {
    font-size: 2.5rem;
    color: #1B5693;
    margin: 0;
  }

  .top-center-content-right {
    width: 80%;
    margin: auto;
  }

  .center-content-right-top-left {
    width: 100%;
    text-align: center !important;
  }

  .center-content-right-top-right {
    width: 100%;
  }

  .border {
    height: 70% !important;
    width: 0.15rem;
    margin: auto;
  }

}

@media screen and (max-width: 750px) {
  .top-title {
    margin: 300% auto;
  }

  /* .nav-top-right {
    height: calc(100vh - 200px);
    width: 93%;
    border-radius: 3rem;
    position: relative;
    background-image: url(../img/26089819_m.jpg);
    background-repeat: no-repeat;
    background-size: cover;
  }

  .top-img {
    position: absolute;
    opacity: 0;
    object-fit: cover;
    height: 100%;
    width: 100%;
    transition: all 2s ease-in-out;
    border-radius: 3rem;
    object-position: 0px 0px;
  } */
}

@media screen and (max-width: 768px) {
  .nav-top {
    min-height: 0;
    padding-bottom: 2rem;
  }

  .nav-top-left {
    margin-top: 60px;
  }

  .nav-top-flex {
    height: 300px;
  }

  .top-title {
    margin: 0% auto;
    font-size: 0.75rem;
  }

  .nav-top-right {
    /* height: 100%; */
    width: 93%;
    border-radius: 2rem;
  }

  .top-img {
    margin-top: 20px;
    height: 200px;
    width: 100%;
    border-radius: 0rem 2rem 0rem 2rem;
  }

  /* ヘッダー下側項目 */
  .nav-top-center {
    background-color: #fff;
    position: relative;
    width: 95%;
    height: 110px;
    margin: -50px auto 0 auto;
    border-radius: 1rem;
  }

  .nav-top-center-flex {
    display: flex;
    height: 100%;
  }

  .nav-top-center-left {
    width: 50%;
    text-align: center;
  }

  .top-center-content {
    display: block;
    height: 100%;
    padding: 0.5rem;
  }

  .top-center-content-right-flex {
    display: block;
  }

  .top-center-content-left {
    width: 100%;
    margin: auto;
  }


  .nav-top-center-right {
    width: 50%;
    text-align: center;
  }

  .top-content-title {
    font-size: 1rem;
    font-weight: bold;
    text-align: center;
    padding: 0;
  }

  .top-content-btn {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    text-align: center;
    text-decoration: none;
    margin: auto;
    padding: 0.25rem 2rem 0.25rem 1rem;
    font-weight: bold;
    font-size: 0.75rem;
    border-radius: 1rem;
    position: relative;
    transition: 0.5s;
    border: 1px #F39900 solid;
  }

  .top-content-btn::before {
    position: absolute;
    content: '';
    right: -23px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #1B5693;
    border-right: 3px solid #1B5693;
    transform: rotate(45deg);
    right: 1rem;
  }

  .top-content-text {
    font-size: 0.6rem;
    display: none;
  }

  .top-content-num {
    font-size: 1.5rem;
    color: #1B5693;
    margin: 0;
  }

  .top-center-content-right {
    width: 80%;
    margin: auto;
  }

  .center-content-right-top-left {
    width: 100%;
    text-align: center !important;
  }

  .center-content-right-top-right {
    width: 100%;
  }

  .border {
    height: 70% !important;
    width: 0.15rem;
    margin: auto;
  }

}

/*---------- セクション「nav-top」ここまで ----------*/

.nav-title-border {
  width: 20%;
}

/* home-news */
.nav-news {
  background-color: #1B5693;
}

.nav-news-main {
  display: flex;
}

.nav-news-bg {
  background-color: #fff;
  border-radius: 0 20rem 0 0;
  padding: 5rem 12rem;
}

.nav-home-bg {
  border-radius: 0 20rem 0 0;
  padding: 5rem 12rem;
}

.nav-title {
  padding: 0;
}

.nav-title-main {
  font-size: 3rem;
}

.nav-title-sub {
  font-size: 1.2rem;
}

.nav-title-semisub {
  font-size: 2rem;
  font-weight: bold;
  padding: 1rem 0;
}

.nav-news-content {
  width: 100%;
  margin: 0 1.2rem;
  cursor: pointer;
}

.news-img {
  width: 30%;
  max-height: 150px; /* 100pxに制限 */
  height: auto; /* 比率を維持 */
  display: block; /* 中央配置を考慮 */
  margin: 0 auto; /* 中央揃え */
  object-fit: contain; /* 画像の比率を維持 */
}


.news-img-content {
  width: 100%;
  height: 100%;
  border-radius: 2rem;
  object-fit: cover;
}

.news-info {
  display: flex;
  padding-top: 1rem;
}

.news-organization {
  width: 70%;
}

.news-date {
  width: 30%;
}

.news-organization-content {
  text-align: left;
}

.news-date-content {
  text-align: right;
}

.news-title-content {
  font-size: 1.2rem;
  font-weight: bold;
}

.nav-news-btn {
  text-align: right;
  padding: 3rem 0;
}

.nav-news-btn-content {
  justify-content: space-evenly;
  align-items: center;
  text-align: center;
  text-decoration: none;
  margin: auto;
  padding: 0.75rem 3rem 0.75rem 1.5rem;
  font-weight: bold;
  border-radius: 3rem;
  position: relative;
  transition: 0.5s;
  border: 1px #F39900 solid;
}

.nav-news-btn-content::before {
  position: absolute;
  content: '';
  width: 12px;
  height: 12px;
  border-top: 3px solid #1B5693;
  border-right: 3px solid #1B5693;
  transform: rotate(45deg);
  right: 2rem;
  top: 1rem;
}

.news-tab {
  padding-top: 3rem;
}

.news-tab-content{
  width: 100%;
}

/* タブデザイン */
.tab-004 {
  display: flex;
  flex-wrap: wrap;
  padding: 1rem 0;
}

.tab-004>label {
  flex: 1 1;
  order: -1;
  position: relative;
  min-width: 70px;
  padding: 1rem 0.2rem;
  border: 3px solid #1B5693;
  color: #000;
  font-weight: 600;
  font-size: 1vw;
  text-align: center;
  vertical-align: middle;
  margin: auto;
  cursor: pointer;
}

.tab-004>label:hover {
  background-color: #F39900;
  border: 3px solid #F39900;
  color: #fff;
}

.tab-004 label:has(:checked) {
  background-color: #1b5693;
  color: #fff;
}

.tab-004 label:has(:checked)::before {
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 18px;
  height: 9px;
  background-color: #1b5693;
  content: '';
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.tab-004 input {
  display: none;
}

.tab-004>div {
  display: none;
  width: 100%;
}

.tab-004 label:has(:checked)+div {
  display: block;
}

/* home-newsここまで */
@media screen and (max-width: 1200px) {

  /* home-news */
  .nav-news {
    background-color: #1B5693;
  }

  .nav-news-main {
    display: flex;
  }

  .nav-news-bg {
    background-color: #fff;
    border-radius: 0 10rem 0 0;
    padding: 2rem;
  }

  .nav-title {
    padding: 0;
  }

  .nav-title-main {
    font-size: 2.5rem;
  }

  .nav-title-sub {
    font-size: 1.2rem;
  }

  .nav-title-semisub {
    font-size: 1.5rem;
    font-weight: bold;
    padding: 1rem 0;
  }

  .nav-news-content {
    width: 100%;
    margin: 0 1.2rem;
    cursor: pointer;
  }

  .news-img {
    width: 100%;
    height: 150px;
    text-align: center;
  }

  .news-img-content {
    width: 100%;
    height: 100%;
    border-radius: 2rem;
    object-fit: cover;
  }

  .news-info {
    display: block;
    padding-top: 0.25rem;
  }

  .news-organization {
    width: 100%;
  }

  .news-date {
    width: 100%;
  }

  .news-organization-content {
    text-align: left;
    font-size: 0.8rem;
  }

  .news-date-content {
    text-align: right;
    font-size: 0.8rem;
  }

  .news-title-content {
    font-size: 1rem;
    font-weight: bold;
  }

  .nav-news-btn {
    text-align: right;
    padding: 3rem 0;
  }

  .nav-news-btn-content {
    justify-content: space-evenly;
    align-items: center;
    text-align: center;
    text-decoration: none;
    margin: auto;
    padding: 0.75rem 3rem 0.75rem 1.5rem;
    font-weight: bold;
    border-radius: 3rem;
    position: relative;
    transition: 0.5s;
    border: 1px #F39900 solid;
  }

  .nav-news-btn-content::before {
    position: absolute;
    content: '';
    width: 10px;
    height: 10px;
    border-top: 3px solid #1B5693;
    border-right: 3px solid #1B5693;
    transform: rotate(45deg);
    right: 2rem;
    top: 1rem;
  }

  .news-tab {
    padding-top: 3rem;
  }

  /* タブデザイン */
  .tab-004 {
    display: flex;
    flex-wrap: wrap;
    padding: 1rem 0;
  }

  .tab-004>label {
    flex: 1 1;
    order: -1;
    position: relative;
    min-width: 100px;
    padding: 1rem 0.2rem;
    border: 3px solid #1B5693;
    color: #000;
    font-weight: 600;
    font-size: 1rem;
    text-align: center;
    vertical-align: middle;
    margin: auto;
    cursor: pointer;
  }

  .tab-004>label:hover {
    background-color: #F39900;
    border: 3px solid #F39900;
    color: #fff;
  }

  .tab-004 label:has(:checked) {
    background-color: #1b5693;
    color: #fff;
  }

  .tab-004 label:has(:checked)::before {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 9px;
    background-color: #1b5693;
    content: '';
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }

  .tab-004 input {
    display: none;
  }

  .tab-004>div {
    display: none;
    width: 100%;
  }

  .tab-004 label:has(:checked)+div {
    display: block;
  }

  /* home-newsここまで */
}

@media screen and (max-width: 768px) {

  /* home-news */
  .nav-news {
    background-color: #1B5693;
  }

  .nav-news-main {
    display: flex;
  }

  .nav-news-bg {
    background-color: #fff;
    border-radius: 0 5rem 0 0;
    padding: 1rem;
  }

  .nav-title {
    padding: 0;
  }

  .nav-title-main {
    font-size: 2rem;
  }

  .nav-title-sub {
    font-size: 1.2rem;
  }

  .nav-title-semisub {
    font-size: 1.2rem;
    font-weight: bold;
    padding: 1rem 0;
  }

  .nav-news-content {
    width: 100%;
    margin: 0 1.2rem;
    cursor: pointer;
  }

  .news-img {
    width: 100%;
    height: 150px;
    text-align: center;
  }

  .news-img-content {
    width: 100%;
    height: 100%;
    border-radius: 2rem;
    object-fit: cover;
  }

  .news-info {
    display: block;
    padding-top: 0.25rem;
  }

  .news-organization {
    width: 100%;
  }

  .news-date {
    width: 100%;
  }

  .news-organization-content {
    text-align: left;
    font-size: 0.8rem;
  }

  .news-date-content {
    text-align: right;
    font-size: 0.8rem;
  }

  .news-title-content {
    font-size: 1rem;
    font-weight: bold;
  }

  .nav-news-btn {
    text-align: right;
    padding: 1rem 0;
  }

  .nav-news-btn-content {
    justify-content: space-evenly;
    align-items: center;
    text-align: center;
    text-decoration: none;
    margin: auto;
    padding: 0.75rem 3rem 0.75rem 1.5rem;
    font-weight: bold;
    font-size: 0.8rem;
    border-radius: 3rem;
    position: relative;
    transition: 0.5s;
    border: 1px #F39900 solid;
  }

  .nav-news-btn-content::before {
    position: absolute;
    content: '';
    width: 10px;
    height: 10px;
    border-top: 3px solid #1B5693;
    border-right: 3px solid #1B5693;
    transform: rotate(45deg);
    right: 2rem;
    top: 1rem;
  }

  .news-tab {
    padding-top: 3rem;
  }

  /* タブデザイン */
  .tab-004 {
    display: flex;
    flex-wrap: wrap;
    padding: 1rem 0;
  }

  .tab-004>label {
    flex: 1 1;
    order: -1;
    position: relative;
    min-width: 70px;
    padding: 0.7rem 0.2rem;
    border: 3px solid #1B5693;
    color: #000;
    font-weight: 600;
    font-size: 0.8rem;
    text-align: center;
    vertical-align: middle;
    margin: auto;
    cursor: pointer;
  }

  .tab-004>label:hover {
    background-color: #F39900;
    border: 3px solid #F39900;
    color: #fff;
  }

  .tab-004 label:has(:checked) {
    background-color: #1b5693;
    color: #fff;
  }

  .tab-004 label:has(:checked)::before {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 9px;
    background-color: #1b5693;
    content: '';
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }

  .tab-004 input {
    display: none;
  }

  .tab-004>div {
    display: none;
    width: 100%;
  }

  .tab-004 label:has(:checked)+div {
    display: block;
  }

  /* home-newsここまで */
}

/* home-magazine */
.nav-magazine {
  background-color: #fff;
}

.nav-magazine-bg {
  background-color: #1b5693;
  border-radius: 0 20rem 0 0;
  padding: 5rem 12rem;
  width: 100%;
}
.magazine-text{
  color: #fff!important;
}
.magazine-text p,
.magazine-text span {
    color: #fff!important;
}
.nav-blue-btn {
  text-align: right;
  padding: 3rem 0;
  padding: 1rem 0;
}

.nav-blue-btn-content {
  justify-content: space-evenly;
  align-items: center;
  text-align: center;
  text-decoration: none;
  margin: auto;
  padding: 0.75rem 3rem 0.75rem 1.5rem;
  font-weight: bold;
  border-radius: 3rem;
  position: relative;
  transition: 0.5s;
  border: 1px #F39900 solid;
  background-color: #fff;
  cursor: pointer;
  width: 250px;
  display: block;
}

.nav-blue-btn-content::before {
  position: absolute;
  content: '';
  width: 12px;
  height: 12px;
  border-top: 3px solid #1B5693;
  border-right: 3px solid #1B5693;
  transform: rotate(45deg);
  right: 2rem;
  top: 1rem;
}

.nav-magazine-main {
  display: flex;
}

.nav-magazine-sub {
  display: flex;
  padding: 0.5rem 0;
}

.nav-magazine-img {
  width: 30%;
}

.nav-magazine-img-content {
  width: 100%;
}

.nav-magazine-content {
  width: 70%;
  padding-left: 3rem;
  margin: auto;
}

.magazine-title-content {
  color: #fff;
  font-size: 1.8rem;
}

.magazine-date {
  color: #fff;
  font-size: 1rem;
  text-align: right;
}

.magazine-text-content {
  color: #fff;
  font-size: 1rem;
}

.nav-magazine-main {
  padding: 0.5rem 0;
}

.magazine-column-left {
  width: 20%;
  margin: auto 0;
}

.magazine-column-img {
  width: 100%;
  border-radius: 1.5rem;
}

.magazine-column-right {
  width: 80%;
  padding-left: 3rem;
  margin: auto;
}

.magazine-column-content {
  display: flex;
  margin: 0.5rem 0;
  background-color: #fff;
  padding: 0.75rem 0.5rem;
}

.magazine-column-date {
  width: 20%;
  color: #000;
  font-size: 1rem;
  font-weight: bold;
  text-align: center;
  margin: auto;
}

.magazine-column-title {
  width: 80%;
  color: #000;
  font-size: 1.2rem;
  font-weight: bold;
  margin: auto;
}

.magazine-text-content-mb {
  display: none;
}

@media screen and (max-width: 1200px) {
  .nav-magazine {
    background-color: #fff;
  }

  .nav-magazine-bg {
    background-color: #1b5693;
    border-radius: 0 10rem 0 0;
    padding: 2rem;
    width: 100%;
  }

  .nav-blue-btn {
    text-align: right;
    padding: 3rem 0;
  }

  .nav-blue-btn-content {
    justify-content: space-evenly;
    align-items: center;
    text-align: center;
    text-decoration: none;
    margin: auto;
    padding: 0.75rem 3rem 0.75rem 1.5rem;
    font-weight: bold;
    border-radius: 3rem;
    position: relative;
    transition: 0.5s;
    border: 1px #F39900 solid;
    background-color: #fff;
  }

  .nav-blue-btn-content::before {
    position: absolute;
    content: '';
    width: 10px;
    height: 10px;
    border-top: 3px solid #1B5693;
    border-right: 3px solid #1B5693;
    transform: rotate(45deg);
    right: 2rem;
    top: 1rem;
  }

  .nav-magazine-main {
    display: flex;
  }

  .nav-magazine-img {
    width: 30%;
    align-content: center;
  }

  .nav-magazine-img-content {
    width: 100%;
  }

  .nav-magazine-content {
    width: 70%;
    padding-left: 1rem;
    margin: auto;
  }

  .magazine-title-content {
    color: #fff;
    font-size: 1.5rem;
  }

  .magazine-date {
    color: #fff;
    font-size: 1rem;
    text-align: right;
  }


  .magazine-column-left {
    width: 40%;
    text-align: center;
    padding: 0 1rem 0 0;
  }

  .magazine-column-img {
    width: 100%;
    border-radius: 1.5rem;
    text-align: center;
  }

  .magazine-column-right {
    width: 100%;
    padding-left: 0;
    margin: auto;
  }

  .magazine-column-content {
    display: block;
    margin: 0.5rem 0;
    background-color: #fff;
    padding: 0.75rem 0.5rem;
  }

  .magazine-column-date {
    width: 100%;
    color: #000;
    font-size: 1rem;
    font-weight: bold;
    text-align: left;
    margin: auto;
  }

  .magazine-column-title {
    width: 100%;
    color: #000;
    font-size: 1.2rem;
    font-weight: bold;
    margin: auto;
  }

}

@media screen and (max-width: 768px) {
  .nav-magazine {
    background-color: #fff;
  }

  .nav-magazine-bg {
    background-color: #1b5693;
    border-radius: 0 10rem 0 0;
    padding: 2rem 1rem;
    width: 100%;
  }

  .nav-blue-btn {
    text-align: right;
    padding: 1rem 0;
  }

  .nav-blue-btn-content {
    justify-content: space-evenly;
    align-items: center;
    text-align: center;
    text-decoration: none;
    margin: auto;
    padding: 0.75rem 3rem 0.75rem 1.5rem;
    font-weight: bold;
    font-size: 0.8rem;
    border-radius: 3rem;
    position: relative;
    transition: 0.5s;
    border: 1px #F39900 solid;
    background-color: #fff;
  }

  .nav-blue-btn-content::before {
    position: absolute;
    content: '';
    width: 10px;
    height: 10px;
    border-top: 3px solid #1B5693;
    border-right: 3px solid #1B5693;
    transform: rotate(45deg);
    right: 2rem;
    top: 1rem;
  }

  .nav-magazine-main {
    display: flex;
  }

  .nav-magazine-sub {
    display: block;
  }

  .nav-magazine-img {
    width: 30%;
    align-content: center;
  }

  .nav-magazine-img-content {
    width: 100%;
  }

  .nav-magazine-content {
    width: 70%;
    padding-left: 1rem;
    margin: auto;
  }

  .magazine-title-content {
    color: #fff;
    font-size: 1.1rem;
  }

  .magazine-date {
    color: #fff;
    font-size: 0.8rem;
    text-align: right;
  }

  .magazine-text-content {
    display: none;
  }

  .magazine-text-content-mb {
    display: block;
    color: #fff;
    font-size: 1rem;
  }


  .magazine-column-left {
    width: 100%;
    text-align: center;
  }

  .magazine-column-img {
    width: 50%;
    border-radius: 1.5rem;
    text-align: center;
  }

  .magazine-column-right {
    width: 100%;
    padding-left: 0;
    margin: auto;
  }

  .magazine-column-content {
    display: block;
    margin: 0.5rem 0;
    background-color: #fff;
    padding: 0.5rem;
  }

  .magazine-column-date {
    width: 100%;
    color: #000;
    font-size: 0.9rem;
    font-weight: bold;
    text-align: left;
    margin: auto;
  }

  .magazine-column-title {
    width: 100%;
    color: #000;
    font-size: 1.1rem;
    font-weight: bold;
    margin: auto;
  }

  .magazine-text {
    display: none;
  }
}

/* home-magazineここまで */

.nav-site {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem; /* カラム間の余白 */
  width: 100%;
  padding: 3rem 0;
}

.site-item {
  flex: 1;
  text-align: center;
  text-decoration: none;
  padding: 1.2rem 0;
  background-color: #1b5693;
  color: white;    
  box-sizing: border-box;
  font-size: 1.1rem;
  font-weight: bold;
  transition: 0.3s;
}

.site-item:hover {
  background-color: #F39900;
  color: #fff;
  /* ボタンのホバー時の色 */
}

@media screen and (max-width: 768px) {
    .nav-site {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* 2列構成にする */
    gap: 1px;
    /* ボタン間に隙間を設定 */
  }
    .site-item {
    flex: unset;    
    padding: 0.5rem 0;
    background-color: #F39900;    
    /* ボタンを区切る線 */
    font-size: 0.9rem;
  }
}

/* home-other */
.nav-other {
  background-color: #fff;
}

.nav-other-bg {
  padding: 5rem 12rem;
}

.nav-other-member {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem; /* カラム間の余白 */
  width: 100%;
  padding: 3rem 0;
}

.nav-other-member-mb {
  display: none;
}

.member-img-content {
  width: 90%;
}

.nav-other-link {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem; /* カラム間の余白 */
  width: 100%;
  padding: 3rem 0;
}

.nav-other-link-mb {
  display: none;
}

.member-link-content {
  width: 80%;
}

@media screen and (max-width: 768px) {
  .nav-other-member {
    display: none;
  }

  .nav-other-member-mb {
    display: flex;
    padding: 1rem;
  }

  .member-img {
    padding-bottom: 0.5rem;
  }

  .nav-other-link {
    display: none;
  }

  .nav-other-link-mb {
    display: flex;
    padding: 1rem;
  }

  .member-link {
    padding: 0.75rem 0;
  }
}


/* home-otherここまで */
/* home-contact */
.nav-contact {
  background-color: #fff;
}

.nav-contact-bg {
  padding: 5rem 12rem;
  background-color: #1B5693;
  border-radius: 0 20rem 0 0;
}

.nav-contact-text-content {
  color: #fff;
}

.nav-contact-main {
  display: flex;
}

.nav-contact-left {
  width: 60%;
}

.nav-contact-right {
  width: 40%;
  text-align: center;
}

.nav-contact-main-mb {
  display: none;
}

@media screen and (max-width: 1200px) {
  .nav-contact-bg {
    background-color: #1b5693;
    border-radius: 0 10rem 0 0;
    padding: 2rem;
    width: 100%;
  }

}

@media screen and (max-width: 768px) {
  .nav-contact-bg {
    background-color: #1b5693;
    border-radius: 0 10rem 0 0;
    padding: 2rem 0.5rem;
    width: 100%;
  }

  .nav-contact-main-mb {
    display: block;
  }

  .nav-contact-main {
    display: none;
  }
}

/* home-contactここまで */

/* footer */
.wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  position: relative;/*←相対位置*/
}

.footer {
  width: 100%;
  margin-top: auto;
  position: absolute;/*←絶対位置*/
  bottom: 0; /*下に固定*/
}

.nav-footer-bg {
  background-color: #1B5693;
  padding: 2rem 12rem 1rem 12rem;
}

.footer-content {
  display: flex;
  justify-content: space-between;
}

.footer-1 {
  width: 25%;
}

.footer-2,
.footer-3,
.footer-4 {
  width: 25%;
}

.footer-link {
  color: #fff;
}

.footer-link:hover {
  color: #F39900;
}

.footer-copy {
  font-size: 0.7rem;
  padding-top: 1rem;
}

@media screen and (max-width: 1200px) {
  footer {
    background-color: #fff;
  }

  .nav-footer-bg {
    background-color: #1B5693;
    padding: 1rem 2rem;
  }

  .footer-content {
    display: flex;
  }

  .footer-1 {
    width: 100%;
  }

  .footer-2,
  .footer-3,
  .footer-4 {
    width: 100%;
  }

  .footer-link {
    color: #fff;
    font-size: 1rem;
  }

  .footer-link:hover {
    color: #F39900;
  }


  .footer-copy {
    font-size: 0.7rem;
    padding-top: 1rem;
  }
}

@media screen and (max-width: 720px) {
  footer {
    background-color: #fff;
  }

  .nav-footer-bg {
    background-color: #1B5693;
    padding: 1rem 1rem;
  }

  .footer-content {
    display: flex;
  }

  .footer-1 {
    width: 100%;
  }

  .footer-2,
  .footer-3,
  .footer-4 {
    width: 100%;
  }

  .footer-link {
    color: #fff;
    font-size: 0.8rem;
  }

  .footer-link:hover {
    color: #F39900;
  }


  .footer-copy {
    font-size: 0.7rem;
    padding-top: 1rem;
  }
}

@media screen and (max-width: 768px) {
  footer {
    background-color: #fff;
  }

  .nav-footer-bg {
    background-color: #1B5693;
    padding: 1rem 1rem;
  }

  .footer-content {
    display: flex;
  }

  .footer-1 {
    width: 100%;
  }

  .footer-2,
  .footer-3,
  .footer-4 {
    width: 100%;
  }

  .footer-link {
    color: #fff;
    font-size: 0.8rem;
  }

  .footer-link:hover {
    color: #F39900;
  }


  .footer-copy {
    font-size: 0.7rem;
    padding-top: 1rem;
  }
}

/* footerここまで */




/* news詳細ページ */
.mainnews-top {
  background-color: #1B5693;
}

.mainnews-content {
  background-color: #fff;
  padding: 5rem 12rem 1rem 12rem;
  border-radius: 0 20rem 0 0;
}

.mainnews-border {
  margin: 3rem 0;
  height: 3px !important;
}

.mainnews-page {
  text-align: center;
  background-color: #1B5693;
  padding: 5rem 12rem 1rem 12rem;
  margin-top: -100px;
}

.mainnews-page-content {
  font-size: 3rem;
  color: #fff;
}

.mainnews-title {
  padding: 1rem 0;
}

.mainnews-title-content {
  font-size: 2.5rem;
  font-weight: bold;
}

.mainnews-info {
  padding-bottom: 0rem;
}

.mainnews-text {
  color: #000;
  padding: 3rem 0;
}

.mainnews-text-content {
  font-size: 1.2rem;
}

.mainnews-img {
  width: 80%;
  padding: 3rem 0;
}

.mainnews-img-content {
  max-height: 300px;
}

.mainnews-creator-content {
  margin: 0;
  font-size: 1.2rem;
}

.mainnews-date-content {
  margin: 0;
  font-size: 1.2rem;
}

.mainnews-link {
  text-align: right;
}

.mainnews-link-content {
  justify-content: space-evenly;
  align-items: center;
  text-align: center;
  text-decoration: none;
  margin: auto;
  padding: 0.75rem 3rem 0.75rem 1.5rem;
  font-weight: bold;
  border-radius: 3rem;
  position: relative;
  transition: 0.5s;
  border: 1px #F39900 solid;
  background-color: #fff;
}

.mainnews-link-content::before {
  position: absolute;
  content: '';
  width: 12px;
  height: 12px;
  border-top: 3px solid #1B5693;
  border-right: 3px solid #1B5693;
  transform: rotate(45deg);
  right: 2rem;
  top: 1rem;
}

.mainnews-other {
  background-color: #fff;
}

.mainnews-other-bg {
  padding: 5rem 12rem;
  background-color: #1B5693;
  border-radius: 0 20rem 0 0;
}


/*---------- 共通ページレイアウト ----------*/
.common-page {
  text-align: center;
  background-color: #1B5693;
  padding: 5rem 12rem 1rem 12rem;
  margin-top: -100px;
}

.loggedin {
  background-color: #E0922E !important;
}

.nav-header {
  width: 100%;
  background-color: #1B5693;
  /* padding-top: 100px; */
  margin-top: 80px;
}

.page-title {
  font-size: 3rem;
  color: #fff;
  text-align: left;
}

.page-info-section {
  display: flex;
}

.page-info {
  font-size: 1.2rem;
  color: #fff;
  text-align: left;
  padding-right: 1rem;
  font-weight: bold;
}

.page-title-border {
  width: 30%;
}

.nav-content {
  background-color: #1B5693;
}

.nav-content-bg {
  width: 100%;
  background-color: #fff;
  border-radius: 0 20rem 0 0;
  padding: 5rem 12rem 3rem 12rem;
}

.content-subtitle-section {
  padding: 1rem 0;
}

.content-subtitle {
  font-size: 2rem;
  font-weight: bold;
  border-left: 10px solid #1B5693;
  padding: 1rem 2rem;
}

.content-semititle {
  font-size: 1.5rem;
  font-weight: bold;
  padding: 1rem 2rem;
  position: relative;
}

.content-semititle:before {
  position: absolute;
  bottom: -10px;
  width: 60px;
  height: 5px;
  content: '';
  background: #1B5693;
}

.content-text-section {
  padding: 1rem 0;
}

.content-text {
  font-size: 1.3rem;
  padding: 0 2rem;
}

.content-img-section {
  padding: 1rem 0;
}

.content-img {
  width: 70%;
  max-height: 400px;
  /* 必要に応じて調整してください */
  height: auto;
  /* アスペクト比を維持 */
  object-fit: contain;
  /* 画像全体を表示 */
}

.app-img {
  width: 100%;
}

.content-link-section {
  padding: 3rem 0;
}

.content-link-content {
  background-color: #1B5693;
  padding: 1rem 2rem;
  transition: 0.5s;
  border: #fff 1px solid;
}

.content-link-content:hover {
  background-color: #F39900;
  padding: 1rem 2rem;

}

.info_pdf {
  display: flex;
  /* アイコンとテキストを横並びにする */
  align-items: center;
  padding: 8px 16px;
  border-radius: 8px;
  text-decoration: none;
  background: linear-gradient(135deg, #fff, #f1f2f2);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  gap: 10px;
  margin-bottom: 10px;
  border: 1px solid #c7c7c7;
}

.info_pdf:hover {
  background: linear-gradient(135deg, #e8eaf0, #d4d7de);
  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);
  transform: scale(.99);
  /* ホバー時に拡大 */
}

/* .info_pdf .icon {
  display: inline-block;
  width: 32px;
  height: 32px;
  margin-right: 10px;
  background: url(../img/PDF_32.png) no-repeat;
  background-size: contain;
} */

.info_pdf .icon {
  display: inline-block;
  width: 32px;
  height: 32px;
  margin-right: 10px;
  background: url(/ntt_web/img/PDF_32.png) no-repeat center;
  background-size: 32px 32px;
  flex-shrink: 0;
  /* スマホでもアイコンが縮小しないようにする */
}

@media screen and (max-width: 768px) {
  .info_pdf .icon {
    width: 40px;
    height: 40px;
    background-size: 40px 40px;
    /* スマホではアイコンを少し大きくする */
  }
}

.info_pdf .text {
  color: #333;
  font-size: 16px;
  font-weight: 500;
  white-space: normal;
  /* 折り返しを有効にする */
  word-break: break-word;
  /* 長い単語がある場合に適切に折り返す */
  transition: color 0.3s ease;
  text-align: left;
}

.info_pdf:hover .text {
  color: #0072ff;
  /* ホバー時のテキストカラー変更 */
}

.content-link {
  position: relative;
  color: #fff;
  font-size: 1.2rem;
}

.content-link::before {
  content: "";
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  right: -50px;
  /* 要素の右からの距離 */
  width: 16px;
  height: 16px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: rotate(45deg);
  /* 角度調整 */
}

.content-link::after {
  position: absolute;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #fff;
  bottom: -1px;
  /*アンダーラインが位置する、各リストの下端からの高さ　ヘッダーの下端に合わせています*/
  visibility: hidden;
  /*ホバー前に、アンダーラインを可視化しない*/
  opacity: 0;
}

.content-link:hover {
  color: #fff;
}

.content-link:hover::after {
  visibility: visible;
  /*ホバー後、アンダーラインを可視化する*/
  opacity: 1;
  transition: 0.3s;

}

/*---------- PC小さめサイズ ----------*/
@media screen and (max-width: 1200px) {
  .common-page {
    padding: 5rem 1rem 2rem 1rem;
  }

  .page-title-section {
    padding: 0 1rem;
  }

  .page-title {
    font-size: 2.5rem;
    color: #fff;
    text-align: left;
  }

  .nav-content-bg {
    width: 100%;
    background-color: #fff;
    border-radius: 0 10rem 0 0;
    padding: 1rem 2rem;
  }

  .content-subtitle-section {
    padding: 0.5rem 0;
  }

  .content-subtitle {
    font-size: 1.7rem;
    font-weight: bold;
    border-left: 10px solid #1B5693;
    padding: 1rem 1rem;
  }

  .content-text-section {
    padding: 0;
  }

  .content-text {
    font-size: 1.2rem;
    padding: 0 2rem;
    margin: 0 !important;
  }

  .content-link-content{
    padding: 1;
  }

  .content-link{
    font-size: 1rem;
  }
}

.content-officer-section {
  padding: 1rem 0;
  display: grid;
  width: 100%;
  gap: 1rem;
  grid-template-columns: repeat(3, 1fr); /* デフォルトは3列 */
}


.content-officer-column {
  width: 100%;
  text-align: center;
}

.content-officer-img {
  aspect-ratio: 1 / 1;
  width: 200px;
}

.officer-post {
  font-size: 1.2rem;
  color: #0075C2;
  padding-top: 0.5rem;
  margin: 0;
}

.officer-name {
  font-size: 1.5rem;
  color: #000;
  padding-top: 0.5rem;
}

/*---------- PC小さめサイズ ----------*/

/*---------- タブレットサイズここまで ----------*/

/*---------- スマホサイズ ----------*/
@media screen and (max-width: 768px) {
  .common-page {
    padding: 3rem 1rem 1rem;
  }

  .page-title {
    font-size: 1.7rem;
    color: #fff;
    text-align: left;
  }

  .nav-content-bg {
    width: 100%;
    background-color: #fff;
    border-radius: 0 5rem 0 0;
    padding: 2rem 0.5rem;
  }

  .content-subtitle-section {
    padding: 0.5rem 0;
  }

  .content-subtitle {
    font-size: 1.5rem;
    font-weight: bold;
    border-left: 10px solid #1B5693;
    padding: 1rem 1rem;
  }

  .content-semititle {
    font-size: 1.2rem;
    font-weight: bold;
    padding: 1rem 1rem;
    position: relative;
  }

  .content-semititle:before {
    position: absolute;
    bottom: 0px;
    width: 60px;
    height: 5px;
    content: '';
    background: #1B5693;
  }

  .content-text-section {
    padding: 0;
  }

  .content-text {
    font-size: 0.9rem;
    padding: 0rem;
  }

  .content-officer-section {
    grid-template-columns: repeat(2, 1fr); /* デフォルトは3列 */
  }

  .content-officer-img {  
    width: 150px;
}
}

/*---------- スマホサイズここまで ----------*/

/* テーブルデザイン */
table {
  border-collapse: separate;
  border-spacing: 5px;
  width: 100%;
}

table th,
table td {
  border-radius: 5px;
  text-align: center;
  padding: 10px 0;
}

table th {
  background-color: #F39900;
  color: white;
  font-size: 1.5rem;
}

table td {
  background-color: #F5F5F5;
  font-size: 1.2rem;
  font-weight: bold;
}

/* 沿革ページレイアウト */
@import url("https://fonts.googleapis.com/css?family=Cardo|Pathway+Gothic+One");

.timeline {
  display: flex;
  margin: 0 auto;
  flex-wrap: wrap;
  flex-direction: column;
  position: relative;
}

.timeline__content-title {
  font-weight: normal;
  font-size: 66px;
  margin: -10px 0 0 0;
  transition: .4s;
  padding: 0 10px;
  box-sizing: border-box;
  font-family: "Pathway Gothic One", sans-serif;
  font-weight: bold;
  font-size: 70px;
  color: #0075c2;
  text-shadow: 3px 3px 0 #E0922E;
  -webkit-text-stroke: 0.01px #fff;
  text-stroke: 0.01px #fff;
  padding: 0 0 10px;
}

.timeline__content-subtitle {
  font-size: 25px;
  margin-top: auto;
  margin-bottom: auto;
  transition: .8s;
  box-sizing: border-box;
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-weight: 900;
}

.timeline__content-desc {
  margin: 0;
  font-size: 22px;
  box-sizing: border-box;
  color: #000;
  /*text-shadow: 1px 1px 3px #0075c2;*/
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-weight: bold;
  line-height: 25px;
  margin: 0 0 0 0;
  padding: 0;
  text-indent: -2em;
  padding-left: 2em;
}

.timeline:before {
  position: absolute;
  left: 50%;
  width: 2px;
  height: 100%;
  margin-left: -1px;
  content: "";
  background: rgba(0, 0, 0, 0.3);
}

.timeline-item {
  padding: 40px 0;
  opacity: .3;
  filter: blur(2px);
  transition: .5s;
  box-sizing: border-box;
  width: calc(50% - 40px);
  display: flex;
  position: relative;
  transform: translateY(-80px);
}

.timeline-item:before {
  content: attr(data-text);
  letter-spacing: 3px;
  width: 100%;
  position: absolute;
  color: rgba(0, 0, 0, 1);
  font-size: 30px;
  font-family: "Pathway Gothic One", sans-serif;
  border-left: 2px solid rgba(0, 0, 0, 0.8);
  top: 70%;
  margin-top: -5px;
  padding-left: 15px;
  opacity: 0;
  right: calc(-100% - 56px);
}

.timeline-item:nth-child(even) {
  align-self: flex-end;
}

.timeline-item:nth-child(even):before {
  right: auto;
  text-align: right;
  left: calc(-100% - 56px);
  padding-left: 0;
  border-left: none;
  border-right: 2px solid rgba(0, 0, 0, 0.5);
  padding-right: 15px;
}

.timeline-item--active {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0px);
}

.timeline-item--active:before {
  top: 50%;
  transition: .3s all .2s;
  opacity: 1;
}

.timeline-item--active .timeline__content-title {
  margin: -50px 0 20px 0;
}

.timeline__img {
  max-width: 100%;
  box-shadow: 0 10px 15px rgba(0, 0, 0, 0.4);
}

.timeline-container {
  width: 100%;
  position: relative;
  padding: 80px 0;
  transition: .3s ease 0s;
}

.timeline-container:before {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  content: "";
  /* background-color: #fff; */
  opacity: 0.5;

}

.timeline-header {
  width: 100%;
  text-align: center;
  margin-bottom: 80px;
  position: relative;
}

.timeline-header__title {
  color: #fff;
  text-shadow: 3px 3px 10px #000;
  font-size: 46px;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-weight: bold;
  margin: 0;
}

.timeline-header__subtitle {
  color: #fff;
  text-shadow: 2px 2px 5px #000;
  font-family: "Georgia";
  font-size: 20px;
  letter-spacing: 3px;
  margin: 10px 0 0 0;
  font-weight: bold;
}

.demo-footer {
  padding: 60px 0;
  text-align: center;
  background-color: #000;
  opacity: 0.7;
}

.demo-footer a {
  color: #fff;
  display: inline-block;
  font-family: Cardo;
}

@media screen and (max-width: 767px) {
  .timeline:before {
    left: 40px;
  }

  .timeline-item {
    align-self: baseline !important;
    width: 100%;
    padding: 0 30px 150px 80px;
  }

  .timeline-item:before {
    left: 10px !important;
    padding: 0 !important;
    top: 50px;
    text-align: center !important;
    width: 60px;
    border: none !important;
  }

  .timeline-item:last-child {
    padding-bottom: 40px;
  }
}

@media screen and (min-width: 768px) {
  .br-pc {
    display: block;
  }

  .br-sp {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .br-pc {
    display: none;
  }

  .br-sp {
    display: block;
  }
}

#page_top {
  width: 100px;
  height: 70px;
  position: fixed;
  right: 10px;
  bottom: 10px;
  background: #1B5693;
  opacity: 0.8;
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
  transition: 0.3s;
  z-index: 99999;
}

#page_top:hover {
  box-shadow: 0 4px 7px 0 rgba(0, 0, 0, 0.5);
  transform: translateY(-5px);
  cursor: pointer;
}

#page_top a {
  position: relative;
  display: block;
  width: 100px;
  height: 60px;
  text-decoration: none;
}

#page_top a::before {
  content: '';
  display: block;
  position: absolute;
  height: 0;
  width: 0;
  top: -3px;
  left: 30px;
  border-top: 30px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 30px solid #fff;
  border-left: 20px solid transparent;
}

#page_top a::after {
  content: 'PAGE TOP';
  font-size: 15px;
  color: #fff;
  position: absolute;
  top: 5px;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}

@media screen and (max-width: 767px) {
  #page_top {
  width: 50px;
  height: 50px;
  position: fixed;
  right: 10px;
  bottom: 10px;
  background: #1B5693;
  opacity: 0.8;
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
  transition: 0.3s;
  z-index: 99999;
}

#page_top:hover {
  box-shadow: 0 4px 7px 0 rgba(0, 0, 0, 0.5);
  transform: translateY(-5px);
  cursor: pointer;
}

#page_top a {
  position: relative;
  display: block;
  width: 50px;
  height: 35px;
  font-size: 9px;
  text-decoration: none;
}

#page_top a::before {
  content: '';
  display: block;
  position: absolute;
  width: 0;
  height: 0;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-top: 20px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 20px solid #fff;
  border-left: 10px solid transparent;
}


#page_top a::after {
  content: '';
  font-size: 12px;
  color: #fff;
  position: absolute;
  top: 5px;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}
}

/* テキストボックスレイアウト */
.textbox-label {
  width: 100%;
}

.textbox-001-label,
.textbox-001 {
  color: #333;
}

.textbox-001-label {
  display: block;
  margin-bottom: 5px;
  font-size: 1.2em;
}

.textbox-001 {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #969da3;
  border-radius: 3px;
  font-size: 1em;
  line-height: 1.5;
}

.textbox-001::placeholder {
  color: #999;
}


/* 共済・保険情報レイアウト */
.insurance-section {
  display: flex;
  align-items: center;
  padding: 1rem 2rem;
}

.insurance-img-section {
  width: 30%;
  text-align: center;
}

.insurance-text-section {
  width: 70%;
  vertical-align: middle;
}

.insurance-img {
  height: 100%;
}

.insurance-img-sp {
  width: 80%;
}

.insurance-p-4 {
  display: block;
  padding: 1rem;
  overflow-wrap: break-word;
  /* word-wrap の代わりに overflow-wrap を使用 */
}




@media screen and (max-width: 768px) {
  .only-pc {
    display: none;
  }

  .only-mb {
    display: block;
  }

  .only-pc-flex {
    display: none;
  }

  .only-mb-flex {
    display: flex !important;
  }

  .insurance-section {
    display: block;
    align-items: center;
    padding: 0;
  }

  .insurance-img-section {
    width: 100%;
    text-align: center;
  }

  .insurance-img {
    height: 50%;
  }

  .insurance-img-sp {
    height: 150px;
  }

  .insurance-text-section {
    width: 100%;
    vertical-align: middle;
  }
}

/* 共済・保険情報レイアウトここまで */

/* サイトマップレイアウト */
.sitemap-parent {
  padding: 1rem 2rem;
  font-size: 1.5rem;
  margin: 0;
}

.sitemap-child {
  padding: 1rem 4rem;
  font-size: 1.2rem;
  margin: 0;
}

/* サイトマップレイアウト */

/* フォームレイアウト */
.textbox-title {
  font-size: 1rem;
  font-weight: bold;
  color: #696969;
  padding-top: 1rem;
  margin-bottom: 0;
}

.cp_iptxt {
  position: relative;
  width: 90%;
  margin-left: 3%;
  margin-top: 1rem;
}

.cp_iptxt label {
  z-index: 20;
}

.cp_iptxt input[type='text'] {
  /* font: 0.8vw sans-serif; */
  box-sizing: border-box;
  width: 100%;
  letter-spacing: 1px;
  outline: none;
}

.cp_iptxt input[type='text']:focus {
  outline: none;
}

.ef {
  padding: 7px 14px;
  transition: 0.4s;
  background: #fff;
  box-shadow: 2px 3px 5px 0px rgba(0, 0, 0, 0.25);
  border: 1px solid #0D47A1;
  border-radius: 5px;
  width: 100%;
  font-size: 0.875rem;
  font-weight: bold;
}

.ef-img {
  display: none;
}

.ef-select {
  padding: 7px 14px;
  transition: 0.4s;
  background: #fff;
  box-shadow: 2px 3px 5px 0px rgba(0, 0, 0, 0.25);
  border: 1px solid #0D47A1;
  border-radius: 5px;
  width: 100%;
  font-size: 0.875rem;
  font-weight: bold;
}

@media screen and (max-width: 1200px) {
  .sitemap-parent {
    padding: 1rem 1rem;
    font-size: 1.5rem;
    margin: 0;
  }

  .sitemap-child {
    padding: 0.5rem 2rem;
    font-size: 1.2rem;
    margin: 0;
  }
}

@media screen and (max-width: 768px) {
  .sitemap-parent {
    padding: 1rem 1rem;
    font-size: 1.5rem;
    margin: 0;
  }

  .sitemap-child {
    padding: 0.5rem 2rem;
    font-size: 1.2rem;
    margin: 0;
  }

  /* テーブルデザイン */
  table {
    border-collapse: separate;
    border-spacing: 5px;
    width: 100%;
  }

  table th,
  table td {
    border-radius: 5px;
    text-align: center;
    padding: 10px 0;
  }

  table th {
    background-color: #F39900;
    color: white;
    font-size: 1.2rem;
  }

  table td {
    background-color: #F5F5F5;
    font-size: 1rem;
    font-weight: bold;
  }
}


/* アコーディオンcss */
.toggle {
  display: none;
}

.organization-accordion {
  /*タイトル*/
  padding: 1rem;
  display: block;
  color: #fff;
  background: #1B5693;
  font-size: 1.2rem;
  font-weight: bold;
}

.organization-accordion::before {
  /*タイトル横の矢印*/
  content: "";
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  -webkit-transform: rotate(45deg);
  position: absolute;
  top: calc(50% - 3px);
  right: 20px;
  transform: rotate(135deg);
}

.organization-accordion,
.accordion-content {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: all 0.3s;
}

.accordion-content {
  /*本文*/
  height: 0;
  margin-bottom: 10px;
  padding: 0 20px;
  overflow: hidden;
  background-color: #fff;
}

.toggle:checked+.organization-accordion+.accordion-content {
  /*開閉時*/
  height: auto;
  padding: 20px;
  transition: all .3s;
}

.toggle:checked+.organization-accordion::before {
  transform: rotate(-45deg) !important;
}

.accordion-link {
  font-size: 1.2rem;
  font-weight: bold;
  display: block;
  padding: 0.25rem 0;
}

.accordion-link::before {
  content: "・";
}

.organization-menu {
  width: 100%;
  height: 75px;
  /* 固定の高さを指定 */
  display: flex;
  justify-content: space-between;
  /* メニューアイテムを均等に配置するために変更 */
  align-items: center;
  background-color: #fff;
  position: relative;
  /* margin-top: 100px; */
}

.menu-organization {
  margin-top: 50px;
  font-size: 1.5rem;
  font-weight: bold;
  text-align: center;
}

.menu-wrap {
  flex: 1;
  /* コンテンツを均等に配置するために変更 */
  height: auto;
  /* コンテンツの高さを自動に設定 */
  text-align: center;
  border-left: 2px rgba(75, 75, 75, 0.3) solid;
  display: flex;
  /* 追加 */
  justify-content: center;
  /* 追加 */
  align-items: center;
  /* 追加 */
}

.organization-menu-content {
  text-align: center;
  font-size: 1.05rem;
  font-weight: bold;
}

.organization-menu-content::before {
  content: "・";
  color: #E0922E;
}

.organizationmenu-page {
  text-align: center;
  padding: 5rem 0 1rem 0;
  margin-top: -100px;
  position: relative;
  background-color: #fff !important;
}

@media screen and (max-width: 768px) {
  .organization-menu {
    flex-direction: column;
    /* 768px以下の場合は縦一列に並べる */
    height: auto;
    /* 高さを自動に設定 */
  }

  .menu-organization {
    font-size: 1.2rem;
  }

  .menu-wrap {
    border-left: none;
    /* 768px以下の場合はボーダーを削除 */
    border-top: 2px rgba(75, 75, 75, 0.3) solid;
    /* 上部にボーダーを追加 */
    padding: 0.5rem 0;
    width: 100%;
  }

  .nav-home-bg {
    padding: 1rem;
  }
}


.cdp {
  position: relative;
  text-align: center;
  padding: 5px 0;
  font-size: 0;
  z-index: 6;
  margin: 5px 0;
}

.cdp_i {
  font-size: 18px;
  text-decoration: none;
  display: inline-block;
  text-transform: uppercase;
  margin: 0 3px 6px;
  height: 38px;
  min-width: 38px;
  border-radius: 38px;
  border: 2px solid #67748e;
  line-height: 38px;
  color: #67748e;
  font-weight: 900;
  letter-spacing: .03em;
}

.cdp_i[aria-disabled="true"] {
  pointer-events: none;
  opacity: 0;
  /* クリック可能でないことを視覚的に示すために半透明にするなどのスタイルを適用することもできます */
}


.cdp_page {
  font-size: 16px;
  text-decoration: none;
  display: inline-block;
  text-transform: uppercase;
  margin: 0 3px 6px;
  height: 38px;
  min-width: 38px;
  line-height: 38px;
  padding: 0 1rem;
  color: #67748e;
  font-weight: 700;
  letter-spacing: .03em;
}

.cdp_i:first-child,
.cdp_i:last-child {
  margin: 0 3rem 6px;
}

.cdp_i:last-child,
.cdp_i:nth-child(2),
.cdp_i:nth-last-child(2) {
  display: inline-block;
}

.cdp_i:hover {
  background-color: #67748e;
  color: #fff;
}

@media screen and (max-width: 768px) {

  .cdp {
    position: relative;
    text-align: center;
    padding: 5px 0;
    font-size: 0;
    z-index: 6;
    margin: 5px 0;
  }

  .cdp_i {
    font-size: 18px;
    text-decoration: none;
    display: inline-block;
    text-transform: uppercase;
    margin: 0 3px 6px;
    height: 38px;
    min-width: 38px;
    border-radius: 38px;
    border: 2px solid #67748e;
    line-height: 38px;
    color: #67748e;
    font-weight: 900;
    letter-spacing: .03em;
  }

  .cdp_i[aria-disabled="true"] {
    pointer-events: none;
    opacity: 0;
    /* クリック可能でないことを視覚的に示すために半透明にするなどのスタイルを適用することもできます */
  }


  .cdp_page {
    font-size: 16px;
    text-decoration: none;
    display: inline-block;
    text-transform: uppercase;
    margin: 0 3px 6px;
    height: 38px;
    min-width: 38px;
    line-height: 38px;
    padding: 0 1rem;
    color: #67748e;
    font-weight: 700;
    letter-spacing: .03em;
  }

  .cdp_i:first-child,
  .cdp_i:last-child {
    margin: 0;
  }

  .cdp_i:last-child,
  .cdp_i:nth-child(2),
  .cdp_i:nth-last-child(2) {
    display: inline-block;
  }

  .cdp_i:hover {
    background-color: #67748e;
    color: #fff;
  }
}

/* N労新聞レイアウト */
.news-section {
  cursor: pointer;
  border-bottom: 1px solid #c2c2c2;
}

.news-info {
  display: flex;
  align-items: center;
  padding: 0.5rem 0;
}

.news-create {
  font-size: 1rem;
  margin: 0;
  padding: 0 0.5rem;
}

.news-category {
  font-size: 1rem;
  font-weight: bold;
  color: #1B5693;
  margin: 0;
  padding: 0 0.5rem;
}

.news-title {
  font-size: 1.5rem;
  font-weight: bold;
}

.news-column {
  display: flex;
  align-items: center;
}


.news-text {
  width: 70%;
  font-size: 1rem;
}

.post-pdf-section {
  width: 100%;
  text-align: center;
}

.post-pdf {
  background-color: #DEE2E6;
  color: #000;
  padding: 1rem 2rem;
  margin: 0 2rem;
  text-align: left;
  border-radius: .75rem;
}


.border-line {
  border: none;
  border-top: 3px solid #000;
  /* 単線 */
  margin: 10px 0;
  opacity: .7;
}

.dobule-line {
  border: none;
  border-top: 5px double #000;
  /* 二重線 */
  margin: 10px 0;
  opacity: .7;
}

.dashed-line {
  border: none;
  border-top: 3px dashed #000;
  /* 破線 */
  margin: 10px 0;
  opacity: .7;
}

.default-btn-section {
  padding: 2rem 0;
}

.default-btn {
  background-color: #F39900;
  padding: 1rem 5rem;
  color: #fff;
  font-size: 1.2rem;
  font-weight: bold;
  margin-top: 3rem;
}

.content-file-section {
  padding: 2rem 0;
}

.content-file-btn {
  background-color: #F39900;
  padding: 1rem 5rem;
  color: #fff;
  font-size: 1.2rem;
  font-weight: bold;
  /* margin-top: 3rem; */
  margin: 3rem 3rem 0 3rem;
  position: relative;
  /* relativeにして::beforeの位置を調整できるようにする */
}

.content-file-btn::before {
  content: "\f0c6";
  /* fa-paperclipアイコンのunicode */
  font-family: "Font Awesome 6 Free";
  /* Font Awesomeのフォントを指定 */
  font-weight: 900;
  /* Solid weightを適用 */
  display: inline-block;
  margin-right: 0.5rem;
  color: #fff;
  /* 枠線としてcurrentColorを使う */
  padding: 0.2rem;
  /* アイコンを少し角丸に */
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

.content-anchor-section {
  padding: 2rem 0;
}

.anchor-btn {
  background-color: #F39900;
  padding: 1rem 5rem;
  color: #fff;
  font-size: 1.2rem;
  font-weight: bold;
  /* margin-top: 3rem; */
  margin: 3rem 3rem 0 3rem;
  position: relative;
  /* relativeにして::beforeの位置を調整できるようにする */
}

.examples {
  width: 100%;
  padding: 20px 10px 40px;
  margin: -10px auto 0;
  white-space: nowrap;
  overflow-x: auto;
  overflow-y: visible;
  -ms-scroll-snap-type: x mandatory;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  display: -webkit-box;
  display: flex
}

@media only screen and (min-width: 1120px) {
  .examples {
    -webkit-box-pack: center;
    justify-content: space-between;
  }
}

.examples .examples__item {
  position: relative;
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 10px 10px 30px rgba(0, 0, 0, .08);
  overflow: hidden;
  max-width: 350px;
  min-width: 250px;
  margin: 0 0px;
  white-space: normal;
  scroll-snap-align: center;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  -webkit-box-pack: center;
  justify-content: center
}

@media only screen and (max-width: 768px) {
  .examples {
    gap: 30px;
  }

  .button_wrap {
    padding: 1rem 0;
    text-align: center;
  }
}

@media only screen and (min-width: 768px) {


  .examples .examples__item {
    min-width: 290px;
    -webkit-transition: all .3s ease-out;
    transition: all .3s ease-out
  }
}

@media only screen and (min-width: 1120px) {
  .examples .examples__item {
    width: 350px
  }

  .examples .examples__item:hover {
    z-index: 1;
    -webkit-transform: scale(.95);
    transform: scale(.95);
    box-shadow: 5px 5px 10px rgba(0, 0, 0, .08)
  }
}

.examples .examples__item a.examples__link {
  display: -webkit-box;
  display: flex;
  padding-bottom: 110px;
  min-height: 160px;
  max-height: 350px;
}

.examples .examples__item a.examples__link .examples__image {
  background-color: #fff;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center
}

@media only screen and (min-width: 768px) {
  .examples .examples__item a.examples__link .examples__image {
    min-height: 150px
  }
}

.examples .examples__item a.examples__link .examples__image img {
  display: block;
  width: 100%;
  margin: 0
}

.examples .examples__item a.examples__link .examples__info {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  min-height: 110px;
  background-color: #fff;
  padding: 12px
}

.examples .examples__item a.examples__link .examples__info .wave {
  position: absolute;
  top: -20px;
  left: 0;
  height: 20px;
  width: 100%
}

.examples .examples__item a.examples__link .examples__info .example__category {
  position: relative;
  top: 0;
  display: inline-block;
  background: linear-gradient(135deg, #0c5eaa, #00a19a);
  color: #fff;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px
}

.examples .examples__item a.examples__link .examples__info .example__title {
  font-weight: 700;
  margin: 0 0 5px;
  -webkit-transition: all .3s ease-out;
  transition: all .3s ease-out;
  font-size: 14px
}

@media only screen and (min-width: 1120px) {
  .examples .examples__item a.examples__link .examples__info .example__title {
    font-size: 18px
  }
}

.examples .examples__item a.examples__link .examples__info .example__company {
  font-size: 12px;
  color: #333
}

@media only screen and (min-width: 1120px) {
  .examples .examples__item a.examples__link .examples__info .example__company {
    font-size: 14px
  }
}

.examples-index {
  max-width: 1200px;
  margin: 0 auto;
  padding: 30px 0;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  float: none;
  justify-content: center;
}

@media screen and (max-width: 767px) {
  .examples-index {
    display: -webkit-box;
    display: flex;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    justify-content: space-between;
    padding: 30px 10px;
    gap: 15px;
  }
}

@media only screen and (min-width: 1120px) {
  .examples-index {
    -webkit-box-pack: start;
    justify-content: space-between;
    gap: 30px 0;
  }

  .examples-index .examples__item:hover {
    z-index: 1;
    -webkit-transform: scale(.95);
    transform: scale(.95);
    box-shadow: 5px 5px 10px rgba(0, 0, 0, .08)
  }
}

.examples-index .examples__item {
  position: relative;
  background-color: #fff;
  margin-bottom: 10px;
  overflow: hidden;
  display: flex;
  transition: 0.3s;
  border: 1px solid #cccccc;  
  width: calc(33% - 20px);
  min-width: calc(33% - 20px);;
}

.examples-index .examples__item a.examples__link .examples__info .example__title {
  font-size: 18px;
}

@media screen and (max-width: 767px) {
  .examples-index .examples__item {    
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
    -webkit-box-pack: center;
    justify-content: center;
    width: calc(50% - 20px);
    margin-bottom: 20px;
    border-radius: 10px;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, .08);
    margin: 0;
    min-width: calc(50% - 20px);;
  }
  .examples-index .examples__item a.examples__link .examples__info .example__title {
    font-size: 14px
  }
}

@media only screen and (min-width: 1120px) {
  .examples-index .examples__item {
    width: calc(33% - 20px);
    margin: 10px;
    border-radius: 10px;
    min-width: calc(33% - 20px);;
  }
}

.examples-index .examples__item a.examples__link {
  display: -webkit-box;
  display: flex;
  padding-bottom: 110px;
  min-height: 160px;
  max-height: 350px;
  width: 100%;
}

.examples-index .examples__item a.examples__link .examples__image {
  background-color: #fff;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  min-height: 150px;
  width: 100%;
  align-items: flex-start;
}

.examples-index .examples__item a.examples__link .examples__image img {
  display: block;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .examples-index .examples__item a.examples__link .examples__image {
    min-height: 100px;
  }
  .examples-index .examples__item a.examples__link .examples__image img {
    margin: 0
  }
}

.examples-index .examples__item a.examples__link .examples__info {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  min-height: 110px;
  background-color: #fff;
  padding: 12px
}

.examples-index .examples__item a.examples__link .examples__info .wave {
  position: absolute;
  top: -20px;
  left: 0;
  height: 20px;
  width: 100%
}

.examples-index .examples__item a.examples__link .examples__info .example__category {
  position: relative;
  top: 0;
  display: inline-block;
  background: linear-gradient(135deg, #0c5eaa, #00a19a);
  color: #fff;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px
}

.examples-index .examples__item a.examples__link .examples__info .example__area {
  position: relative;
  top: 0;
  display: inline-block;
  background: linear-gradient(135deg, #ff7e29, #ffb347);
  color: #fff;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px
}

.examples-index .examples__item a.examples__link .examples__info .example__title {
  font-weight: 700;
  margin: 0 0 5px;
  -webkit-transition: all .3s ease-out;
  transition: all .3s ease-out;
  word-break: break-word
}

.examples-index .examples__item a.examples__link .examples__info .example__company {
  font-size: 14px;
  color: #333
}
.examples-nav {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: 20px; /* ← 少し余白 */
}
.pagination {
  display: flex;
  padding: 3rem 0;
  width: 100%;
  justify-content: space-evenly;
}

.news_now {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  /* æ­£æ–¹å½¢ã®å¹… */
  height: 50px;
  /* æ­£æ–¹å½¢ã®é«˜ã• */
  background-color: #1B5693;
  /* é»’èƒŒæ™¯ */
  /* 45åº¦å‚¾ã‘ã‚‹ */
  text-decoration: none;
  /* ã‚¢ãƒ³ã‚«ãƒ¼ã®è£…é£¾ã‚’å‰Šé™¤ */
  position: relative;
  /* ã‚¢ã‚¤ã‚³ãƒ³ã®é…ç½®èª¿æ•´ç”¨ */
  color: #fff;
  font-size: 1.5rem;
  font-weight: bold;
}

.news_now:hover {
  color: #fff;
  transition: .2s;
}

@media screen and (max-width: 767px) {
  .news_now {
    font-size: 1.2rem;
  }
}

.news__buttonColumn {
  width: 10%;
  display: flex;
  justify-content: center;
  align-items: center;
}


.news__buttonButton {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  /* æ­£æ–¹å½¢ã®å¹… */
  height: 50px;
  /* æ­£æ–¹å½¢ã®é«˜ã• */
  background-color: #000;
  /* é»’èƒŒæ™¯ */
  transform: rotate(45deg);
  /* 45åº¦å‚¾ã‘ã‚‹ */
  text-decoration: none;
  /* ã‚¢ãƒ³ã‚«ãƒ¼ã®è£…é£¾ã‚’å‰Šé™¤ */
  position: relative;
  /* ã‚¢ã‚¤ã‚³ãƒ³ã®é…ç½®èª¿æ•´ç”¨ */
}

.news__buttonButton:hover {
  background-color: #ED0000;
  transition: .2s;
}

@media screen and (max-width: 767px) {
  .navigation a {
    display: block
  }
}

.navigation a:first-child,
.navigation a:last-child {
  display: block
}

.navigation a.disable-class {
  pointer-events: none;
  background-color: #0075C2;
  color: #fff
}

.navigation a.disable-class:hover {
  -webkit-transform: scale(1);
  transform: scale(1)
}

.navigation a.current-button-class {
  background-color: #F39900;
}

.navigation a:hover {
  -webkit-transform: scale(1.1);
  transform: scale(1.1)
}

.modal {
  display: none;
  /* 初期状態では非表示 */
  position: fixed;
  z-index: 10000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5);
  /* 背景の半透明効果 */
  padding-top: 120px;
}

/* モーダルコンテンツのスタイル */
.modal-content {
  background-color: #fff;
  margin: auto;
  padding: 2.5rem;
  border: 1px solid #888;
  width: 80%;
  /* max-width: 800px; */
  border-radius: 25px;
}

.custom_header_title{
  font-size: 1rem;
  font-weight: bold;
  text-align: center;
}


.custom_header_menu {
  display: flex;
  margin: 0;  
  padding: 0;  
}


.custom_menu {
  flex: 1;
  display: flex; /* ← 追加 */
  align-items: center; /* ← 追加：縦中央 */
  justify-content: center; /* ← 追加：横中央 */
  text-align: center;
  text-decoration: none;
  min-height: 70px; /* ← 高さを固定 or min-height を設定 */
  padding: 1rem;
  background-color: #F39900;
  color: white;
  border-right: 1px solid white;
  border-bottom: 1px solid white;
  border-top: 1px solid white;
  box-sizing: border-box;
  font-size: 1.2rem;
  font-weight: bold;
  transition: 0.3s;
  line-height: 1.4;
  word-break: break-word;
}

.custom_menu:last-child {
  border-right: none;  
}

.custom_header_menu .custom_menu:hover {
  background-color: #1B5693;
  color: #fff;  
}

@media screen and (max-width: 768px) {
  .modal-content {
  padding: 1.5rem;  
  width: 90%;  
  border-radius: 25px;
}
  .custom_header_menu {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* 2列構成にする */
    gap: 1px;
    /* ボタン間に隙間を設定 */
  }

  .custom_menu {
    flex: unset;
    text-align: center;
    padding: 1rem 0;
    background-color: #F39900;
    color: white;
    border: 1px solid #fff;
    /* ボタンを区切る線 */
    font-size: 1rem;
    font-weight: bold;
    box-sizing: border-box;
    transition: 0.3s;
  }

  .custom_menu:hover {
    background-color: #F39900;
    color: #fff;
  }
}

.load_bg {
  background-color: #fff;
  width: 100%;
  height: 100vh;
  /* ビューポートの高さを常にカバー */
  position: fixed;
  /* 固定位置でスクロールを防止 */
  top: 0;
  /* ビューポートの上端に固定 */
  left: 0;
  /* ビューポートの左端に固定 */
  z-index: 9999;
  /* 他の要素よりも上に表示 */
  overflow: hidden;
  /* コンテンツのスクロールを無効化 */
}


#container {
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -50px;
  margin-top: -10px;
  text-align: center;
  font-family: Arial;
  font-weight: bold;
  background-color: #fff;
}

#container span {
  display: block;
  background: #000;
  width: 100px;
  height: 5px;
  margin-top: 5px;
  animation: load 2s infinite;
  border-radius: 5px;
}

#container span:nth-child(2) {
  animation-delay: 100ms;
}

#container span:nth-child(3) {
  animation-delay: 200ms;
}

@keyframes load {
  50% {
    width: 5px;
    margin-right: 95px;
    opacity: .1;
  }
}

#japan-map div div.area div {
	border: 1px #ffffff solid;
	text-align: center;
	font-size: 14px;
 	display: flex;
		display: -webkit-flex;
 	align-items: center; /* 縦方向中央揃え */
 		-webkit-align-items: center; /* 縦方向中央揃え（Safari用） */
 	justify-content: center; /* 横方向中央揃え */
 		-webkit-justify-content: center; /* 横方向中央揃え（Safari用） */
	border-radius: 6px;
		-webkit-border-radius: 6px;
	position: absolute;
	box-sizing: border-box;
	transition: 0.2s;
}

#japan-map {
	display: block;
	width: 777px;
	height: 482px;
	background-color: none;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}
#japan-map p.area-title {
	display: none;
}
.area {
  position: relative;
  width: 100%;
  height: 100%;
}
.clearfix {
  position: relative; /* 親要素として基準を作る */
  display: flex;
  align-items: center;  /* 縦方向中央揃え */
  justify-content: center; /* 横方向中央揃え */
}
.areaButton {
  display: inline-block;
  background: #fff;
  padding: 1.5rem 1rem;
  min-width: 88px;
  border: 4px solid rgba(52, 148, 216, 0.3);
  box-shadow: 0px 0px 6px 1px #e8e8e8;
  font-family: 'Noto Sans Japanese', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, sans-serif;
  font-weight: bold;
  font-size: 1rem;
  border-radius: 50%;
  transition: .3s;
  color: #585858;
  text-align: center;
  z-index: 10; /* `.area` より上に配置 */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* X, Y 方向の中央配置 */
  transition: 0.3s;
  cursor: pointer;
}

.areaButton:hover {
  scale: 1.1;
}

#allArea {
  width: 133px;
  display: block;
  height: 70px;
  position: absolute;
  left: 0;
  text-align: center; /* ボタンを中央に配置 */
}

#allArea div.area div {
	background-color: #1B5693;
	color: #ffffff;
}

#allArea div.area div:hover {	
  opacity: 0.8;
}

.all {	
	width: 150px;
	height: 70px;
}

.all{
  font-size: 1.2rem!important;
  font-weight: bold;
}

.all-btn{
  cursor: pointer;
}

/* 北海道・東北 */

#hokkaidoArea {
  width: 133px;
  display: block;
  height: 70px;
  position: absolute;
  left: 638px;
  text-align: center; /* ボタンを中央に配置 */
}
#touhokuArea {
	width: 136px;
	display: block;
	height: 169px;
	position: absolute;
	left: 638px;
  top: 96px;
}
#hokkaidoArea div.area div {
	background-color: #0099f2;
	color: #ffffff;
}
#touhokuArea div.area div {
	background-color: #3bc4a2;
	color: #ffffff;
}
#hokkaido-touhoku div.area div {
	background-color: #7478c2;
	color: #ffffff;
}

#hokkaido {	
	width: 133px;
	height: 70px;
}
#aomori {
	width: 93px;
	height: 43px;
	left: 21px;
	top: 0;
}
#akita {
	width: 67px;
	height: 42px;
	left: 3px;
	top: 43px;

}
#iwate {
	width: 67px;
	height: 42px;
	left: 70px;
	top: 43px;
}
#yamagata {
	width: 67px;
	height: 42px;
	top: 85px;
	left: 3px;
}
#miyagi {
	width: 67px;
	height: 42px;
	top: 85px;
	left: 70px;
}
#fukushima {
	width: 67px;
	height: 42px;
	top: 127px;
	left: 70px;
}

#hokuriku{
  width: 270px;
	display: block;
	height: 57px;
	position: absolute;
	top: 223px;
	left: 438px;
	z-index: 2;
}

#hokuriku div.area div {
	background-color: #ff0000;
	color: #ffffff;
}
/* 関東 */

#kantou {
	width: 225px;
	display: block;
	height: 174px;
	position: absolute;
	top: 265px;
	left: 557px;
	z-index: 2;
}
#kantou div.area div {
	background-color: #31beca;
	color: #ffffff;
}
#ibaraki {
	width: 52px;
	height: 85px;
	top: 0px;
	left: 167px;
}
#tochigi {
	width: 50px;
	height: 42px;
	top: 0px;
	left: 117px;
}
#gunma {
	width: 50px;
	height: 42px;
	top: 0px;
	left: 67px;
}
#saitama {
	width: 100px;
	height: 43px;
	top: 42px;
	left: 67px;
}
#chiba {
	width: 52px;
	height: 84px;
	top: 85px;
	left: 167px;
}
#tokyo {
	width: 100px;
	height: 42px;
	top: 85px;
	left: 67px;
}
#kanagawa {
	width: 67px;
	height: 42px;
	top: 127px;
	left: 67px;
}

/* 中部 */

#tokai {
	width: 153px;
	height: 144px;
	position: absolute;
	left: 472px;
	top: 280px;
}
#tokai div.area div {
	background-color: #4ab969;
	color: #ffffff;
}

#nigata {
	width: 85px;
	height: 42px;
	left: 185px;
  top: 0;
}
#toyama {
	width: 67px;
	height: 42px;
	left: 118px;
}
#ishikawa {
	width: 50px;
	height: 57px;
	left: 68px;
}
#fukui {
	width: 68px;
	height: 42px;
	left: 0px;
	z-index: 2;
}
#nagano {
	width: 67px;
	height: 85px;
	left: 0px;
	top: 0px
}
#yamanashi {
	width: 67px;
	height: 42px;
	left: 0px;
	top: 85px;
}
#gifu {
	width: 50px;
	height: 55px;
	left: 34px;
	top: 0;
}
#shizuoka {
	width: 67px;
	height: 42px;
	left: 84px;
	top: 112px;
}
#aichi {
	width: 50px;
	height: 57px;
	top: 55px;
	left: 34px;
}
#mie {
	width: 34px;
	height: 85px;
	top: 27px;
	left: 0;
}

/* 近畿 */

#kinki {
	width: 186px;
	height: 211px;
	position: absolute;
	left: 320px;
	top: 223px;
}
#kinki div.area div {
	background-color: #b0b72f;
	color: #ffffff;
}

#kyoto {
	width: 67px;
	height: 84px;
	left: 51px;
}
#shiga {
	width: 68px;
	height: 42px;
	top: 42px;
	left: 118px;
}
#osaka {
	width: 67px;
	height: 85px;
	top: 84px;
	left: 51px;
}
#nara {
	width: 34px;
	height: 85px;
	top: 84px;
	left: 118px;
}
#wakayama {
	width: 113px;
	height: 42px;
	top: 169px;
	left: 61px;
}
#hyougo {
	width: 51px;
	height: 98px;
	left: 0px;
}

/* 中国 */

#tyugoku {
	width: 151px;
	height: 98px;
	position: absolute;
	left: 169px;
	top: 223px;
}
#tyugoku div.area div {
	background-color: #ef9f27;
	color: #ffffff;
}
#tottori {
	width: 50px;
	height: 49px;
	left: 101px;
}
#okayama {
	width: 50px;
	height: 49px;
	top: 49px;
	left: 101px;
}
#shimane {
	width: 51px;
	height: 49px;
	left: 50px;
}
#hiroshima {
	width: 51px;
	height: 49px;
	top: 49px;
	left: 50px;
}
#yamaguchi {
	width: 50px;
	height: 98px;
	left: 0px;
}

/* 四国 */

#shikoku {
	width: 184px;
	height: 84px;
	position: absolute;
	left: 169px;
	top: 350px;
}
#shikoku div.area div {
	background-color: #d08f68;
	color: #ffffff;
}
#kagawa {
	width: 92px;
	height: 42px;
	right: 0px;
}
#ehime {
	width: 92px;
	height: 42px;
	left: 0px;
}
#tokushima {
	width: 92px;
	height: 42px;
	right: 0px;
	top: 42px;
}
#kouchi {
	width: 92px;
	height: 42px;
	left: 0px;
	top: 42px;
}

/* 九州・沖縄 */

#kyusyu {
	width: 152px;
	height: 247px;
	position: absolute;
	left: 0px;
	top: 235px;
}
#kyusyu div.area div {
	background-color: #ff7575;
	color: #ffffff;
}
#fukuoka {
	width: 50px;
	height: 50px;
	left: 101px;
	top: 0px;
}
#saga {
	width: 50px;
	height: 50px;
	left: 51px;
	top: 0px;
}
#nagasaki {
	width: 50px;
	height: 50px;
	left: 1px;
	top: 0px;
}
#oita {
	width: 50px;
	height: 50px;
	left: 101px;
	top: 50px;
}
#kumamoto {
	width: 50px;
	height: 100px;
	left: 51px;
	top: 50px;
}
#miyazaki {
	width: 50px;
	height: 50px;
	left: 101px;
	top: 100px;
}
#kagoshima {
	width: 68px;
	height: 49px;
	left: 83px;
	top: 150px;
}
#okinawa {
	width: 50px;
	height: 50px;
	left: 1px;
	top: 197px;
}
#japan-map-mb{
  display: none;
}
@media screen and (max-width: 980px) {
#japan-map{
  display: none;
}

#japan-map-mb{
  display: block;
}
.mb-area-section {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2列にする */
  gap: 0.5rem; /* 行・列の余白 */
  width: 100%;
}

.mb-areaButton {
  display: block;
  padding: 0.75rem 1rem;  
  color: white;
  border-radius: 6px;
  font-weight: bold;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: 0.2s;
}

.mb-allbtn {
  display: block;
  padding: 0.75rem 1rem;
  background-color: #1B5693;
  color: white;
  border-radius: 6px;
  font-weight: bold;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: 0.2s;
}


.mb-areaButton:hover {
  scale: 1.01;
  color: #fff;
}

.mb-allbtn:hover {
  scale: 1.01;
  color: #fff;
}

.mb-hokkaido {
  background-color: #0099f2;
}

.mb-tohoku {
  background-color: #3bc4a2;
}

.mb-hokuriku {
  background-color: #ff0000;
}

.mb-kanto {
  background-color: #31beca;
}

.mb-tokai {
  background-color: #4ab969;
}

.mb-kinki {
  background-color: #b0b72f;
}

.mb-chugoku {
  background-color: #ef9f27;
}

.mb-shikoku {
  background-color: #d08f68;
}

.mb-kyushu {
  background-color: #ff7575;
}


} /* レスポンシブ max-500px */

.newslist-category {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px; /* アイコン間の余白（調整可能） */
}

.newslist-category a {
  display: block;
  text-align: center;
  transition: 0.3s;
}

.newslist-category a:hover {
  scale: 1.05;
}

.newslist-category img {
  width: 100%;
  height: auto;
  max-width: 150px; /* アイコンサイズ調整 */
  margin: 0 auto;
}

/* スマホ対応（768px以下で2列表示） */
@media screen and (max-width: 768px) {
  .newslist-category {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ラジオボタンのグループ */
.radio-group {
  display: flex;
  gap: 20px;
  /* ボタン間の間隔を設定 */
  margin-top: 10px;
  justify-content: space-evenly;
}

/* ラジオボタン */
input[type="radio"] {
  display: none;
  /* デフォルトのラジオボタンを非表示に */
}

input[type="checkbox"] {
  display: none;
  /* デフォルトのラジオボタンを非表示に */
}

/* カスタムラベル */
.radio-label {
  display: inline-block;
  background-color: #f4f4f4;
  border: 2px solid #c4c4c4;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 500;
  padding: 10px 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s;
}

/* ラジオボタンが選択された場合のスタイル */
input[type="radio"]:checked + .radio-label {
  background-color: #f39900;
  color: #fff;
  border-color: #f39900;
  box-shadow: 0 0 10px rgba(243, 153, 0, 0.5);
}

input[type="checkbox"]:checked + .radio-label {
  background-color: #f39900;
  color: #fff;
  border-color: #f39900;
  box-shadow: 0 0 10px rgba(243, 153, 0, 0.5);
}

/* ホバー時のスタイル */
.radio-label:hover {
  background-color: #ddd;
}

.preview_content {
  font-size: 1.5rem;
  padding: 0.75rem 0;
  font-weight: bold;
}

.preview_column {
  padding: 1rem;
}

.bold {
  font-weight: bold;
  padding-left: 0.5rem;
}

.inline {
  display: inline;
  font-weight: 600;
}

.news__section {
  padding: 30px 0;
  border-bottom: solid 1px #000;
  cursor: pointer;
  transition: 0.5s;
  /* display: flex; */
  /* justify-content: space-between; */
}

.news__section:hover {
  scale: 0.975;  
}

.news__info {
  position: relative;
  padding: 10px 20px;
  display: flex;
}

.news__infoText::after {
  position: absolute;
  content: "";
  width: 15px;
  height: 15px;
  background-color: #000;
  top: 0;
  bottom: 0;
  /* right: 0; */
  left: 0;
  margin-top: 15px;
  border-radius: 50%;
}

.news__infoText {
  font-size: 1rem;
  font-weight: bold;
  margin: 0;
}

.news__flex {
  display: flex;
  /* justify-content: center; */
  align-items: center;
}

.news__imgColumn {
  width: 30%;
  text-align: center;
  justify-content: center;
  display: flex;
  align-items: center;
}

.news__img {
  width: 80%;
  box-shadow: 5px 10px 20px 0px rgba(0, 0, 0, 0.25);
}

.news__textColumn {
  width: 60%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.news__textTitle {
  font-size: 1.5rem;
  padding: 10px 0;
}

.news__textText {
  font-size: 1.1rem;
  padding: 10px 0;
}

.news__category{
  position: relative;
    top: 0;
    display: inline-block;
    background: linear-gradient(135deg, #0c5eaa, #00a19a);
    color: #fff;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    margin: 0 1.5rem;
}

.news__buttonColumn {
  width: 10%;
  display: flex;
  justify-content: center;
  align-items: center;
}


.news__buttonButton {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  /* 正方形の幅 */
  height: 50px;
  /* 正方形の高さ */
  background-color: #1B5693;
  /* 黒背景 */
  transform: rotate(45deg);
  /* 45度傾ける */
  text-decoration: none;
  /* アンカーの装飾を削除 */
  position: relative;
  /* アイコンの配置調整用 */
}

.news__buttonButton:hover {
  background-color: #F39900;
  transition: .2s;
}

.arrow-icon {
  font-size: 1.5rem;
  /* 矢印アイコンのサイズ */
  color: #fff;
  /* 矢印の色 */
  transform: rotate(-45deg);
  /* 矢印を逆に傾けて元の向きに */
  position: absolute;
  /* アイコンの位置を中央に固定 */
}

@media screen and (max-width: 767px) {
  .news__section {
    padding: 15px 0;
  }
.news__info {
    flex-direction: column;
    align-items: flex-start;
  }
  .news__categories {
    flex-direction: row; /* ここがキモ！ */
  }
  .news__flex {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .news__textTitle {
    font-size: 1rem;
    padding: 10px 5px;
  }

  .news__textText {
    display: none;
  }

  .news__buttonButton {
    width: 25px;
    height: 25px;
  }

  .arrow-icon {
    font-size: 1rem;
  }
}


.season {
  display: flex;
  justify-content: center;
  gap: 1rem;
  padding: 1rem;  
  flex-wrap: wrap;
}

.season a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 150px;
  height: 60px;
  padding: 0 1rem;
  border: 2px solid #1B5693;
  border-radius: 12px;  
  color: #1B5693;
  font-weight: bold;
  text-decoration: none;
  font-size: 1rem;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  cursor: pointer;
}

.season a:hover {
  background-color: #e6f0fa;
  transform: translateY(-2px);
}

.season a img {
  width: 50px;
  height: 50px;
  margin-right: 0.5rem;
}

.season a i {
  font-size: 20px;
  margin-right: 0.5rem;
}

@media screen and (max-width: 767px) {
  .season {
    justify-content: center;
  }

  .season-btn-all {
    width: 100%!important;
    max-width: 300px;
    margin-bottom: 0rem;
  }

  /* 春〜冬は2列表示に */
  #spring, #summer, #autumn, #winter {
    width: calc(50% - 0.5rem); /* 2列にするために幅を調整 */
    margin-bottom: 0rem;
  }
}

.content-code-section{
  text-align: center;
}