@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;600;700&display=swap");
/*********************************
 *
 * COMMON
 *
 *********************************/
body {
  font-family: 'IBM Plex Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 500;
  width: 100%; }
  @media screen and (max-width: 750px) {
    body {
      font-size: 3.6vw;
      -webkit-text-size-adjust: 100%; }
      body .pc {
        display: none !important; } }
  @media screen and (min-width: 751px) {
    body a {
      transition: 0.3s; }
      body a:hover {
        opacity: 0.8; }
    body a[href*="tel:"] {
      text-decoration: none;
      pointer-events: none; }
    body .sp {
      display: none !important; } }
  @media screen and (min-width: 751px) and (max-width: 1200px) {
    body {
      font-size: 1.4vw; } }
  body * {
    outline: none; }
  body img {
    width: 100%;
    max-width: auto; }

/* font */
strong {
  font-weight: 700; }

.fs_80 {
  font-size: 80%; }

.fs_90 {
  font-size: 90%; }

.fc_blue1 {
  color: #06348b; }

.fc_blue2 {
  color: #00a5ea; }

.fc_red {
  color: #e60012; }

.fc_white {
  color: #fff; }

.mT05em {
  margin-top: 0.5em !important; }

.mT1em {
  margin-top: 1em !important; }

ul.l_1em li {
  padding-left: 1em;
  text-indent: -1em; }

/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0; }

@-webkit-keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.fadeUpTrigger {
  opacity: 0; }

/*********************************
 *
 * HEADER
 *
 *********************************/
header {
  background: url("../images/h_bg.jpg") center center no-repeat;
  background-size: cover; }
  header .inner {
    width: 82%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 3em 0; }

/*********************************
 *
 * SITE PATH
 *
 *********************************/
#site_path ul {
  display: flex;
  align-items: center;
  width: 85%;
  max-width: 1040px;
  margin: 0 auto;
  font-size: 90%; }
  @media screen and (max-width: 750px) {
    #site_path ul {
      width: 90%; } }
  #site_path ul li {
    position: relative;
    margin: 1em 0.6em 0 0;
    padding-right: 1em; }
    #site_path ul li::after {
      position: absolute;
      display: block;
      content: ">";
      top: 0;
      right: 0; }
    #site_path ul li:last-child {
      margin-right: 0;
      padding-right: 0; }
      #site_path ul li:last-child::after {
        display: none; }
#site_path a {
  color: #333;
  text-decoration: none; }

/*********************************
 *
 * PAGETOP
 *
 *********************************/
#pagetop {
  position: fixed;
  width: 3em;
  max-width: 98px;
  right: 20px;
  bottom: 20px; }
  @media screen and (max-width: 750px) {
    #pagetop {
      right: 10px;
      bottom: 10px; } }

/*********************************
 *
 * FOOTER
 *
 *********************************/
footer {
  margin-top: 2em;
  font-weight: 700; }
  @media screen and (max-width: 750px) {
    footer {
      margin-top: 0; } }
  footer .inner {
    width: 85%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 1.5em 0; }
    @media screen and (max-width: 750px) {
      footer .inner {
        width: 90%; } }
    footer .inner .copyright {
      margin-top: 0.5em;
      font-size: 90%;
      text-align: center; }
      @media screen and (max-width: 750px) {
        footer .inner .copyright {
          margin-top: 2em;
          font-size: 80%; } }
  footer#top_footer {
    background: #cae4c1; }
    @media screen and (max-width: 750px) {
      footer#top_footer {
        margin-top: 3em; } }
    footer#top_footer dl {
      display: flex;
      justify-content: space-between;
      width: 90%;
      margin: 0 auto; }
      @media screen and (max-width: 750px) {
        footer#top_footer dl {
          display: block;
          width: 100%; } }
      footer#top_footer dl dt {
        width: 8em;
        font-size: 110%; }
        @media screen and (max-width: 750px) {
          footer#top_footer dl dt {
            width: 100%; } }
        footer#top_footer dl dt span {
          display: inline-block;
          padding: 0.2em 1em;
          background: #000; }
      footer#top_footer dl dd {
        width: calc(100% - 10em); }
        @media screen and (max-width: 750px) {
          footer#top_footer dl dd {
            width: 100%;
            padding-top: 0.8em; } }
        footer#top_footer dl dd.no_indent {
          text-indent: -0.5em; }
    footer#top_footer ul {
      display: flex;
      justify-content: center;
      font-size: 95%; }
      @media screen and (max-width: 750px) {
        footer#top_footer ul {
          display: block;
          padding-top: 1em; } }
      footer#top_footer ul li {
        margin: 0.5em 1em 0 1em; }
        footer#top_footer ul li:last-child {
          margin-right: 0; }
    footer#top_footer a {
      color: #06348b;
      text-decoration: none; }

/*********************************
 *
 * TOP
 *
 *********************************/
#top_lead {
  width: 80%;
  max-width: 950px;
  margin: 1.3em auto 0 auto;
  font-size: 110%;
  font-weight: 700;
  line-height: 1.3;
  text-align: justify;
  text-justify: inter-ideograph; }
  @media screen and (max-width: 750px) {
    #top_lead {
      width: 90%;
      font-size: 100%; } }

/* top_detail */
#top_detail {
  width: 85%;
  max-width: 1040px;
  margin: 0 auto;
  padding-top: 0.5em; }
  @media screen and (max-width: 750px) {
    #top_detail {
      width: 90%; } }
  #top_detail table {
    width: 100%;
    margin: 1em 0 0 0; }
    @media screen and (max-width: 750px) {
      #top_detail table {
        border-bottom: 2px solid #9fa0a0; } }
    #top_detail table th {
      border: 2px solid #9fa0a0;
      font-weight: 700;
      text-align: center; }
    #top_detail table thead th {
      padding: 0.4em 0 0.3em 0;
      background-color: #00A0E9;
      color: #fff;
      font-size: 130%;
      line-height: 1; }
    #top_detail table tbody th {
      width: 20%;
      background-color: #EEEFEF;
      font-size: 115%; }
      @media screen and (max-width: 750px) {
        #top_detail table tbody th {
          font-size: 100%; } }
    #top_detail table td {
      padding: 0.6em 0.5em;
      background-color: #E4EFE2;
      border: 2px solid #9fa0a0;
      font-weight: 700;
      line-height: 1.3; }
      #top_detail table td.bg_y {
        background-color: #FFFCDB; }
      #top_detail table td.bg_b {
        background-color: #EDF6FD; }
    #top_detail table tbody td.time {
      width: 25%;
      font-size: 90%;
      font-weight: 500;
      text-align: center; }
    #top_detail table dl.flex {
      display: flex;
      align-items: center; }
      @media screen and (max-width: 750px) {
        #top_detail table dl.flex {
          flex-wrap: wrap; } }
      #top_detail table dl.flex dt {
        width: 5em;
        font-size: 90%; }
        @media screen and (max-width: 750px) {
          #top_detail table dl.flex dt {
            width: 100%;
            padding-bottom: 0.5em; } }
      #top_detail table dl.flex dd.no_indent {
        text-indent: -0.5em; }
    #top_detail table dl.period {
      display: flex; }
      @media screen and (max-width: 750px) {
        #top_detail table dl.period {
          flex-wrap: wrap;
          margin-top: 0.5em; } }
      #top_detail table dl.period dt {
        width: 11em;
        padding-left: 1em; }
      #top_detail table dl.period dd {
        text-indent: 0; }
    @media screen and (max-width: 750px) {
      #top_detail table.full th {
        display: block;
        width: 100%;
        padding: 0.5em 0 0.4em 0;
        border-bottom: 0; }
      #top_detail table.full td {
        display: block;
        width: 100%;
        border-bottom: 0; } }
  #top_detail a {
    color: #223787;
    text-decoration: none; }
  #top_detail .pdf img {
    width: auto;
    height: 1.5em;
    margin-left: 0.5em; }

/* top_entry */
#top_entry {
  width: 85%;
  max-width: 1040px;
  margin: 2em auto 0 auto; }
  @media screen and (max-width: 750px) {
    #top_entry {
      width: 90%; } }
  #top_entry dl {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    @media screen and (max-width: 750px) {
      #top_entry dl {
        display: block; } }
    #top_entry dl dt {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 13.5%;
      padding: 0.5em 0;
      background: #E41111;
      color: #fff;
      font-size: 130%;
      font-weight: 700; }
      @media screen and (max-width: 750px) {
        #top_entry dl dt {
          display: block;
          width: 100%;
          padding: 0.5em; } }
    #top_entry dl dd {
      width: 85.5%; }
      @media screen and (max-width: 750px) {
        #top_entry dl dd {
          width: 100%;
          margin-top: 0.5em; } }
      #top_entry dl dd ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        width: 100%; }
        #top_entry dl dd ul li {
          width: 76.5%;
          margin-bottom: 0.3em;
          padding: 0.8em;
          background: #fbdac8;
          border-radius: 0.5em;
          font-size: 140%;
          font-weight: 700; }
          @media screen and (max-width: 750px) {
            #top_entry dl dd ul li {
              width: 72%;
              font-size: 100%; } }
          #top_entry dl dd ul li:nth-child(even) {
            width: 22%; }
            @media screen and (max-width: 750px) {
              #top_entry dl dd ul li:nth-child(even) {
                width: 27%; } }
          #top_entry dl dd ul li.bg_blue {
            margin-bottom: 0;
            background: #b9e3f9; }
          #top_entry dl dd ul li.btn {
            padding: 0; }
          #top_entry dl dd ul li:last-child {
            margin-bottom: 0; }
          #top_entry dl dd ul li a {
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100%;
            padding: 0.8em;
            background-color: #E41111;
            border-radius: 0.7em;
            color: #fff;
			font-size: 18px;
            text-align: center;
            text-decoration: none; }
            @media screen and (min-width: 751px) {
              #top_entry dl dd ul li a {
                transition: 0.3s;
                opacity: 1; }
                #top_entry dl dd ul li a:hover {
                  background-color: #BC1111; } }
            #top_entry dl dd ul li a span {
              padding-left: 1.8em;
              background: url("../images/icn_btn.png") left center no-repeat;
              background-size: auto 1.6em; }
      #top_entry dl dd.close {
        display: flex;
        justify-content: space-between; }
        #top_entry dl dd.close ul {
          display: block;
          width: 76.5%; }
          @media screen and (max-width: 750px) {
            #top_entry dl dd.close ul {
              width: 70%; } }
          #top_entry dl dd.close ul li {
            width: 100%; }
        #top_entry dl dd.close .btn_close {
          display: flex;
          align-items: center;
          justify-content: center;
          width: 22%;
          border: 3px solid #e60012;
          border-radius: 0.5em;
          color: #e60012;
          font-weight: 600;
          text-align: center; }
          @media screen and (max-width: 750px) {
            #top_entry dl dd.close .btn_close {
              width: 28.5%;
              border: 2px solid #e60012; } }
  #top_entry ul.notice {
    padding: 1em 0 0 1em;
    font-weight: 700; }
    @media screen and (max-width: 750px) {
      #top_entry ul.notice {
        padding-left: 0;
        font-size: 100%; } }

    #top_entry span.fs_70 {
  font-size: 70% !important;
}

/* top_name */
#top_name {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 85%;
  max-width: 1040px;
  margin: 1.5em auto 0 auto;
  font-size: 130%;
  font-weight: 700; }
  @media screen and (max-width: 750px) {
    #top_name {
      display: block;
      width: 90%;
      font-size: 110%;
      text-align: center; } }
  #top_name img {
    max-width: 310px; }
    @media screen and (max-width: 750px) {
      #top_name img {
        width: 60%;
        margin-top: 0.5em; } }

/*********************************
 *
 * FAQ
 *
 *********************************/
#faq {
  width: 85%;
  max-width: 1040px;
  margin: 3em auto 0 auto; }
  @media screen and (max-width: 750px) {
    #faq {
      width: 90%; } }
  #faq h2 {
    font-size: 150%; }
    @media screen and (max-width: 750px) {
      #faq h2 {
        font-size: 130%; } }
  #faq ul.faq_nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 96%;
    margin: 0 auto; }
    @media screen and (max-width: 750px) {
      #faq ul.faq_nav {
        flex-wrap: wrap;
        width: 100%;
        font-size: 90%; } }
    #faq ul.faq_nav li {
      width: 23%;
      margin-top: 0.8em;
      text-align: center; }
      @media screen and (max-width: 750px) {
        #faq ul.faq_nav li {
          width: 49%;
          margin-top: 0.5em; } }
      @media screen and (min-width: 751px) {
        #faq ul.faq_nav li:last-child {
          width: 27%; } }
    #faq ul.faq_nav a {
      display: block;
      padding: 0.5em 0;
      background: #06348b;
      border-radius: 0.3em;
      color: #fff;
      text-decoration: none; }
      @media screen and (max-width: 750px) {
        #faq ul.faq_nav a {
          padding: 0.8em 0; } }
  #faq h3 {
    margin: 0;
    padding-top: 3em;
    color: #06348b;
    font-weight: 700; }
    @media screen and (max-width: 750px) {
      #faq h3 {
        font-size: 110%; } }
  @media screen and (max-width: 750px) {
    #faq dl.list {
      font-size: 95%; } }
  #faq dl.list dt {
    position: relative;
    padding: 0.9em 0 0.3em 2em; }
    #faq dl.list dt::after {
      position: absolute;
      display: block;
      content: "Q:";
      top: 0.7em;
      left: 0.5em; }
      @media screen and (max-width: 750px) {
        #faq dl.list dt::after {
          top: 0.8em; } }
  #faq dl.list dd {
    position: relative;
    padding: 0 0 0.8em 2em;
    border-bottom: 2px dotted #000;
    text-align: justify;
    text-justify: inter-ideograph; }
    #faq dl.list dd::after {
      position: absolute;
      display: block;
      content: "A:";
      top: -0.05em;
      left: 0.5em; }
  #faq h3 + dl.list {
    margin-top: 0.5em;
    border-top: 2px dotted #000; }

/*********************************
 *
 * LAW
 *
 *********************************/
#law {
  width: 85%;
  max-width: 1040px;
  margin: 3em auto 0 auto; }
  @media screen and (max-width: 750px) {
    #law {
      width: 90%; } }
  #law h2 {
    font-size: 150%; }
    @media screen and (max-width: 750px) {
      #law h2 {
        font-size: 130%; } }
  #law table {
    margin-top: 0.8em;
    border-top: 2px dotted #000; }
    @media screen and (max-width: 750px) {
      #law table {
        font-size: 95%; } }
    #law table th {
      width: 26%;
      padding: 0.8em 1em;
      border-bottom: 2px dotted #000;
      font-weight: 500;
      vertical-align: top; }
      @media screen and (max-width: 750px) {
        #law table th {
          padding: 0.8em 0; } }
    #law table td {
      padding: 0.8em 1em;
      border-bottom: 2px dotted #000;
      text-align: justify;
      text-justify: inter-ideograph; }
      @media screen and (max-width: 750px) {
        #law table td {
          padding: 0.8em 0 0.8em 1em; } }
    #law table a {
      color: #333;
      text-decoration: none; }

/*********************************
 *
 * PRIVACYPOLICY
 *
 *********************************/
#policy {
  width: 85%;
  max-width: 1040px;
  margin: 3em auto 0 auto; }
  @media screen and (max-width: 750px) {
    #policy {
      width: 90%; } }
  #policy h2 {
    font-size: 150%; }
    @media screen and (max-width: 750px) {
      #policy h2 {
        font-size: 130%; } }
  #policy p {
    margin-top: 1em; }
  @media screen and (max-width: 750px) {
    #policy dl {
      font-size: 95%; } }
  #policy dl dt {
    padding: 2em 0 0.8em 0;
    /*border-bottom: 2px dotted #000;*/
    font-weight: 500; }
    @media screen and (max-width: 750px) {
      #policy dl dt {
        padding: 0.8em 0; } }
  #policy dl dd {
    /*padding: 1em 0 0 0;*/
    text-align: justify;
    text-justify: inter-ideograph; }
  #policy dl a {
    color: #333;
    text-decoration: none; }

/*********************************
 *
 * content
 *
 *********************************/

    .agree-button-wrapper {
  text-align: center;
  margin-top: 20px;
}

.agree-button {
  display: inline-block;
  padding: 15px 30px;
  background-color: #007bff;
  color: #ffffff;
  text-decoration: none;
  font-size: 16px;
  border-radius: 5px;
  transition: background-color 0.3s ease;
}

.agree-button:hover {
  background-color: #0056b3;
}

/* iframe の基本設定（PC用） */
.responsive-iframe {
  width: 100%;
  height: 500px;
  border: none;
}

/* スマホ用（768px以下）に高さを調整 */
@media screen and (max-width: 768px) {
  .responsive-iframe {
    height: 300px;
  }
}