@charset "UTF-8";
/* Break point
---------------------------------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400..700&display=swap");
/* Placeholder
---------------------------------------------------------- */
.l-inner, .l-inner_1000, .l-inner_700 {
  width: 88%;
  margin-right: auto;
  margin-left: auto;
}

.l-section-block .inner_section, .l-block_white {
  padding: 1.6em 1.2rem 4rem;
}
@media screen and (min-width: 768px) {
  .l-section-block .inner_section, .l-block_white {
    padding: 2.4rem 3rem 4rem;
  }
}

.c-link, a:not([class]) {
  color: var(--color-main);
  -webkit-text-decoration: revert;
          text-decoration: revert;
}
@media (hover: hover) {
  .c-link:hover, a:hover:not([class]) {
    text-decoration: none;
  }
  .c-link:focus, a:focus:not([class]) {
    text-decoration: none;
  }
}
[target=_blank].c-link:not([href$=".pdf"])::after, a[target=_blank]:not([href$=".pdf"]):not([class])::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background-image: url(/assets/images/icon_external.svg);
  background-size: 90%;
  background-repeat: no-repeat;
  background-position: bottom;
  margin-left: 0.2em;
  vertical-align: -0.1em;
}
[href$=".pdf"].c-link::after, a[href$=".pdf"]:not([class])::after {
  display: inline-block;
  content: "PDF";
  color: var(--color-font);
  border: 1px solid var(--color-font);
  padding: 0 0.5em;
  border-radius: 3px;
  font-size: 65%;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-left: 0.5em;
}

.l-article__body table {
  --color_border: var(--color-main);
  --color_back: var(--color-tableBack);
  --color_head: var(--color-sub2);
  background-color: #fff;
}
.l-article__body table th,
.l-article__body table td {
  padding: 0.8em 1em;
  border: 1px solid var(--color_border);
}
@media screen and (min-width: 960px) {
  .l-article__body table th,
  .l-article__body table td {
    padding: 1em 1.2em;
  }
}
.l-article__body table th {
  font-weight: 500;
}
.l-article__body table thead th {
  background-color: var(--color_head);
  color: #fff;
}

@-webkit-keyframes arrowR_oneway {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  50% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    opacity: 0;
  }
  51% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}

@keyframes arrowR_oneway {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  50% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    opacity: 0;
  }
  51% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@-webkit-keyframes line_oneway {
  0% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  50% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  51% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  100% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
@keyframes line_oneway {
  0% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  50% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  51% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  100% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
/* ==========================================================================//
//
//　変数
//
// ========================================================================== */
:root {
  /* Color
  ---------------------------------------------------------- */
  --color-font: #333;
  --color-main: #0067C2;
  --color-main2: #00A06E;
  --color-back-blue: #E2F1FF;
  --color-back-green: #EAFBF2;
  --color-back: #E5EFF8;
  --color-back2: #F3F3F3;
  --color-line: #D0D0D0;
  --color-footer: #393D40;
  --color-orange: #FF6A00;
  --color-yellow: #FFDC16;
  --color-red: #E71B00;
  /* Font
  ---------------------------------------------------------- */
  --font-jp: "Noto Sans JP", sans-serif;
  --font12: 0.75rem;
  --font13: 0.81rem;
  --font14: 0.88rem;
  --font15: 0.94rem;
  --font17: 1.06rem;
  --font18: 1.12rem;
  --font19: 1.19rem;
  --font20: 1.25rem;
  --font22: 1.42rem;
  --font24: 1.5rem;
  --font26: 1.62rem;
  --font28: 1.8rem;
  --font30: 1.875rem;
  --font32: 2rem;
  --font36: 2.28rem;
  --font38: 2.38rem;
  --font40: 2.5rem;
  --font43: 2.68rem;
  --font44: 2.75rem;
  --font46: 2.88rem;
  --font48: 3rem;
  --font60: 3.75rem;
  --headerH: 3.75rem;
  --shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
@media screen and (min-width: 960px) {
  :root {
    --headerH: 5.5rem;
  }
}

/* ==================================================================

Base

================================================================== */
*,
::before,
::after {
  word-break: break-word;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--headerH);
  scroll-margin-top: var(--headerH);
}

body {
  color: var(--color-font);
  font-family: var(--font-jp);
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

@media (pointer: fine), (hover: hover) {
  a[href*="tel:"] a:where([href^="tel:"]) {
    pointer-events: none;
  }
}

video {
  width: 100%;
}

ol {
  list-style: revert;
  list-style-position: inside;
}

em,
strong,
address {
  font-style: normal;
}

select {
  border: 1px solid var(--color-line);
}

label {
  cursor: pointer;
}

:where(p) {
  line-height: 1.7;
  font-size: var(--font15);
}
@media screen and (min-width: 768px) {
  :where(p) {
    font-size: 1rem;
  }
}

/* ==========================================================================//
//
//　Layout
//
// ========================================================================== */
.l-inner_1000 {
  max-width: 1000px;
}

.l-inner_700 {
  max-width: 700px;
}

.l-inner_wide {
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
}
@media screen and (min-width: 768px) {
  .l-inner_wide {
    width: 88%;
  }
}

body.menu-open {
  overflow: hidden;
}

/* ==========================================================================//
//
//　Card link
//
// ========================================================================== */
.l-link_card-wrap {
  display: grid;
  grid-template-rows: auto auto;
}

.l-link_card {
  position: relative;
  display: grid;
  grid-row: span 2;
  grid-template-rows: subgrid;
  width: 100%;
}
.l-link_card .image_card {
  border-radius: 0.5rem 0.5rem 0 0;
  overflow: hidden;
  position: relative;
  height: 100%;
}
.l-link_card .image_card img {
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(1.01);
          transform: scale(1.01);
}
.l-link_card .text_card {
  --color-link: #fff;
  --color-back: var(--color-main);
  padding: 0.6em 2.5em 0.6em 1em;
  background-color: var(--color-back);
  color: var(--color-link);
  text-decoration: none;
  position: relative;
  left: 0;
  bottom: 0;
  width: 100%;
  border-radius: 0 0 0.5rem 0.5rem;
  -webkit-transition: color 0.2s, background-color 0.2s;
  transition: color 0.2s, background-color 0.2s;
}
.l-link_card .text_card .icon {
  position: absolute;
  top: 50%;
  right: 1em;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 19px;
  height: 19px;
  background-color: var(--color-link);
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  fill: var(--color-back);
}
.l-link_card .text_card p {
  font-size: inherit;
  line-height: inherit;
}
@media (hover: hover) {
  .l-link_card:hover .image_card img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
  .l-link_card:focus .image_card img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
}

/* ==========================================================================//
//
//　Article
//
// ========================================================================== */
.l-article__head {
  padding-bottom: 1.2em;
  margin-bottom: 2em;
  border-bottom: 1px solid var(--color-line);
}
.l-article .info_article time {
  display: inline-block;
  margin-right: 0.6rem;
}
.l-article .info_article span {
  display: inline-block;
  margin-right: 0.2rem;
}
.l-article .ttl_article {
  padding-top: 0.8em;
  font-size: var(--font22);
  font-weight: bold;
}
@media screen and (min-width: 960px) {
  .l-article .ttl_article {
    font-size: var(--font28);
  }
}
.l-article__body {
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--color-line);
}
.l-article__body .block_article + .block_article {
  margin-top: 2.5rem;
}
.l-article__body .image_article {
  margin: 1rem auto;
  border-radius: 0.5rem;
}
.l-article__body p {
  margin: 1rem 0;
  font-size: var(--font15);
}
@media screen and (min-width: 768px) {
  .l-article__body p {
    font-size: 1rem;
  }
}
.l-article__body ul,
.l-article__body ol {
  list-style-type: revert;
  -webkit-padding-start: revert;
          padding-inline-start: revert;
}
.l-article__body h1,
.l-article__body h2,
.l-article__body h3,
.l-article__body h4,
.l-article__body h5,
.l-article__body h6 {
  font-weight: revert;
  font-size: revert;
}
.l-article__body figcaption {
  font-size: var(--font14);
  text-align: center;
}
@media screen and (min-width: 960px) {
  .l-block_col {
    display: grid;
    grid-template-columns: repeat(2, auto);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 2rem;
  }
}

.l-block_images {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 1rem;
}
@media screen and (min-width: 960px) {
  .l-block_images {
    gap: 2rem;
  }
}
.l-block_images + .l-block_images {
  margin-top: 1rem;
}
@media screen and (min-width: 960px) {
  .l-block_images + .l-block_images {
    margin-top: 2rem;
  }
}

/* ==========================================================================//
//
//　Form
//
// ========================================================================== */
.l-form__panel {
  padding: 0.6em 1.2em;
  display: inline-block;
  border: 1px solid var(--color-line);
  border-radius: 0.25rem;
}
.l-form__panel:has(input:hover), .l-form__panel:has(input:focus) {
  background-color: var(--color-back-blue);
}
.l-form__input {
  padding: 0.6em;
  display: block;
  border: 1px solid var(--color-font);
  border-radius: 0.25rem;
}
.l-form__required {
  padding: 0.2em 0.5em;
  color: var(--color-red);
  font-size: var(--font12);
  line-height: 1;
  border: 1px solid var(--color-red);
  border-radius: 0.25rem;
}
@media screen and (min-width: 768px) {
  .l-form__required {
    font-size: var(--font14);
  }
}
.l-form__error {
  padding: 0.1em 1em;
  color: var(--color-red);
  font-size: var(--font14);
  background-color: pink;
  grid-column: 1/-1;
  display: inline-block;
  justify-self: flex-start;
}

/* ==========================================================================//
//
//　News list
//
// ========================================================================== */
.l-list_news {
  display: grid;
}
.l-list_news .item_news {
  border-top: 1px solid var(--color-line);
}
.l-list_news .item_news:last-of-type {
  border-bottom: 1px solid var(--color-line);
}
.l-list_news .item_news:not(:has(.link_news)) {
  padding: 1em 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.6em;
}
.l-list_news .link_news {
  padding: 1em 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.6em;
}
.l-list_news .link_news .title {
  text-decoration: underline;
}
@media (hover: hover) {
  .l-list_news .link_news:hover .title {
    color: var(--color-main);
    text-decoration: none;
  }
  .l-list_news .link_news:focus .title {
    color: var(--color-main);
    text-decoration: none;
  }
}
.l-list_news .link_news[target=_blank]:not([href$=".pdf"]) .title {
  position: relative;
}
.l-list_news .link_news[target=_blank]:not([href$=".pdf"]) .title::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background-image: url(/assets/images/icon_external.svg);
  background-size: 90%;
  background-repeat: no-repeat;
  background-position: bottom;
  margin-left: 0.2em;
  vertical-align: -0.1em;
}

/* ==========================================================================//
//
//　Pagination
//
// ========================================================================== */
.l-pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6em;
}
.l-pagination .active a {
  color: initial;
  pointer-events: none;
  text-decoration: none;
}

/* ==========================================================================//
//
//　Section Head
//
// ========================================================================== */
.l-head {
  padding: calc(var(--headerH) + 1em) 0 1em;
  font-size: var(--font32);
  font-weight: bold;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .l-head {
    font-size: var(--font40);
  }
}
.l-head__inner {
  display: grid;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.l-head__dots {
  margin-top: 0.8em;
  margin-left: auto;
  margin-right: auto;
}

.l-head_02 {
  padding: calc(var(--headerH) + 1em) 0 1em;
}
@media screen and (min-width: 768px) {
  .l-head_02 {
    padding: calc(var(--headerH) + 2em) 0 1em;
  }
}
.l-head_02 .title_sub {
  font-size: bold;
  font-size: var(--font14);
  color: var(--color-main);
  font-weight: bold;
}
.l-head_02 .title_main {
  font-weight: bold;
  font-size: var(--font28);
}
@media screen and (min-width: 768px) {
  .l-head_02 .title_main {
    font-size: var(--font32);
  }
}

/* ==========================================================================//
//
//　Section
//
// ========================================================================== */
.l-section:not(:first-child) {
  margin-top: 3rem;
}
@media screen and (min-width: 768px) {
  .l-section:not(:first-child) {
    margin-top: 4rem;
  }
}

/* ==========================================================================//
//
//　Section Block
//
// ========================================================================== */
.l-section-block .title_section {
  padding: 1.2em;
  background-color: var(--color-main);
  color: #fff;
  font-weight: bold;
  border-radius: 0.5rem 0.5rem 0 0;
}
.l-section-block .inner_section {
  background-color: var(--color-back2);
  border-radius: 0 0 0.5rem 0.5rem;
}
.l-section-block .number_card {
  font-size: var(--font12);
  font-weight: bold;
  color: var(--color-main);
  background-color: var(--color-back-blue);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 2em;
  aspect-ratio: 1/1;
  border-radius: 50%;
}

/* ==========================================================================//
//
//　白ブロック
//
// ========================================================================== */
.l-block_white {
  background-color: #fff;
  border-radius: 0.5rem;
}

/* ==========================================================================//
//
//　Breadcrumb
//
// ========================================================================== */
.l-list_breadcrumb {
  font-size: var(--font12);
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .l-list_breadcrumb {
    font-size: var(--font13);
  }
}
.l-list_breadcrumb .item_breadcrumb {
  display: inline-block;
}
.l-list_breadcrumb .item_breadcrumb:not(:last-child)::after {
  content: "/";
  display: inline-block;
  margin: 0 0.8em;
}

/* ==========================================================================//
//
//　Table
//
// ========================================================================== */
.l-table_02 tr {
  border-bottom: 1px solid var(--color-line);
}
.l-table_02 th {
  text-align: left;
  font-weight: 500;
}
.l-table_02:not(.wrap) tr:first-child th,
.l-table_02:not(.wrap) tr:first-child td {
  padding-top: 0;
}
.l-table_02:not(.wrap) th {
  padding: 1.5em 0 1em;
}
.l-table_02:not(.wrap) td {
  padding: 1.5em 0 1em;
}
.l-table_02.wrap tr {
  padding: 1em 0;
  display: block;
}
@media screen and (min-width: 768px) {
  .l-table_02.wrap tr {
    display: revert;
  }
}
.l-table_02.wrap tr:first-child {
  padding-top: 0;
}
@media screen and (min-width: 768px) {
  .l-table_02.wrap tr:first-child th,
  .l-table_02.wrap tr:first-child td {
    padding-top: 0;
  }
}
.l-table_02.wrap th {
  padding-bottom: 1em;
  display: block;
}
@media screen and (min-width: 768px) {
  .l-table_02.wrap th {
    padding: 1.5em 0 1em;
    display: revert;
  }
}
.l-table_02.wrap td {
  display: block;
}
@media screen and (min-width: 768px) {
  .l-table_02.wrap td {
    padding: 1.5em 0 1em;
    display: revert;
  }
}

/* ==========================================================================//
//
//　Accordion
//
// ========================================================================== */
.l-accordion {
  border: 1px solid #A4A4A4;
  border-radius: 0.25rem;
}
.l-accordion__header {
  --color-accordion: var(--color-self);
  --color-accordionBack: #fff;
  font-weight: 500;
  font-size: var(--font18);
  position: relative;
  border-radius: 0.25rem 0.25rem 0 0;
  /*------ Accordion open -------*/
}
.l-accordion__header:not(.consumer) {
  --color-self: var(--color-main);
}
.l-accordion__header.consumer {
  --color-self: var(--color-main2);
}
@media screen and (min-width: 768px) {
  .l-accordion__header {
    font-size: var(--font20);
  }
}
.l-accordion__header .button_accordion {
  padding: 1em 1.2em;
  display: grid;
  grid-template-columns: 4rem 1fr auto;
  gap: 0.8em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: left;
  width: 100%;
}
.l-accordion__header .button_accordion img {
  justify-self: center;
}
.l-accordion__header .button_accordion .title {
  display: block;
  width: 100%;
}
.l-accordion__header .button_accordion .icon {
  display: inline-block;
  width: 25px;
  height: 25px;
  background-color: var(--color-accordion);
  position: relative;
  border-radius: 50%;
}
.l-accordion__header .button_accordion .icon::before, .l-accordion__header .button_accordion .icon::after {
  content: "";
  display: inline-block;
  width: 13px;
  height: 2px;
  background-color: var(--color-accordionBack);
  position: absolute;
  top: 12px;
  left: 6px;
}
.l-accordion__header .button_accordion .icon::after {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.l-accordion__header.is-open {
  --color-accordion: #fff;
  --color-accordionBack: var(--color-self);
  color: var(--color-accordion);
  background-color: var(--color-accordionBack);
}
.l-accordion__header.is-open + .l-accordion__panel {
  grid-template-rows: 1fr;
}
.l-accordion__header.is-open .icon::after {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}
.l-accordion__panel {
  display: grid;
  grid-template-rows: 0fr;
  -webkit-transition: grid-template-rows 0.3s;
  transition: grid-template-rows 0.3s;
  transition: grid-template-rows 0.3s, -ms-grid-rows 0.3s;
}
.l-accordion__panel .inner_panel {
  padding: 1.6em 1.2em;
}
@media screen and (min-width: 768px) {
  .l-accordion__panel .inner_panel {
    padding: 2.4em 2em;
  }
}

/* ==========================================================================//
//
//　Header
//
// ========================================================================== */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  height: var(--headerH);
  background-color: #fff;
  border-radius: 0 0 0.5rem 0.5rem;
  -webkit-box-shadow: var(--shadow);
          box-shadow: var(--shadow);
  /* ハンバーガー用ボタン
  ---------------------------------------------------------- */
  /*------ Menu open -------*/
}
@media screen and (min-width: 960px) {
  .l-header {
    padding: 0.6rem 5% 0;
    display: grid;
    grid-template-columns: auto 1fr;
    background-color: rgba(255, 255, 255, 0.93);
  }
}
.l-header__inner {
  padding: 10px 0 0;
  display: grid;
  grid-template-columns: minmax(auto, 16rem) 45px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 2rem;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
@media screen and (min-width: 960px) {
  .l-header__inner {
    padding: 0;
    display: revert;
    background-color: transparent;
    width: 100%;
    -ms-flex-item-align: center;
        align-self: center;
  }
}
.l-header__menu {
  background-color: #fff;
  position: absolute;
  top: 0;
  z-index: 0;
  width: 100%;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
  max-height: 100vh;
  overflow-y: auto;
}
@media screen and (min-width: 960px) {
  .l-header__menu {
    position: revert;
    -webkit-transform: revert;
            transform: revert;
    overflow: revert;
    max-height: revert;
    background-color: transparent;
  }
}
.l-header__menu .inner_menu {
  padding: calc(var(--headerH) + 1.5em) 3rem 3rem;
}
@media screen and (min-width: 960px) {
  .l-header__menu .inner_menu {
    padding: 0;
    display: grid;
    grid-template-rows: auto 1fr;
    height: 100%;
  }
}
@media screen and (min-width: 960px) {
  .l-header__top {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: 1rem;
  }
}
.l-header__top .tel {
  margin-bottom: 1rem;
  text-align: center;
  font-weight: bold;
  font-size: var(--font15);
}
@media screen and (min-width: 960px) {
  .l-header__top .tel {
    margin-bottom: 0;
    text-align: left;
  }
}
.l-header__top .tel .link_tel {
  font-size: 150%;
}
@media screen and (min-width: 768px) {
  .l-header__top .tel .link_tel {
    pointer-events: none;
  }
}
.l-header__top .button_form {
  display: inline-block;
  background: var(--color-main);
  color: #fff;
  padding: 0.6em 1.2em;
  border-radius: 50rem;
  font-size: var(--font14);
}
@media screen and (min-width: 960px) {
  .l-header__top .button_form {
    padding: 0.3em 1.2em;
  }
}
.l-header__nav {
  margin-top: 1.6rem;
}
@media screen and (min-width: 960px) {
  .l-header__nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 0;
    gap: 0.2em;
    -ms-flex-item-align: end;
        align-self: flex-end;
  }
}
.l-header__nav summary {
  list-style: none;
}
.l-header__nav summary::-webkit-details-marker {
  display: none;
}
.l-header__nav .menu_nav {
  position: relative;
}
@media screen and (min-width: 960px) {
  .l-header__nav .menu_nav {
    padding: 0.5em 1%;
  }
}
@media (hover: hover) {
  .l-header__nav .menu_nav {
    cursor: pointer;
  }
}
@media (hover: hover) {
  .l-header__nav .menu_nav:hover .category {
    opacity: 0.7;
  }
  .l-header__nav .menu_nav:focus .category {
    opacity: 0.7;
  }
}
.l-header__nav .menu_nav:last-child {
  border-bottom: 1px solid var(--color-line);
}
@media screen and (min-width: 960px) {
  .l-header__nav .menu_nav:last-child {
    border: none;
  }
}
@media screen and (min-width: 960px) {
  .l-header__nav .menu_nav:last-child .list_nav {
    left: -4em;
  }
}
.l-header__nav .menu_nav[open] .accordion .icon {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.l-header__nav .menu_nav[open] .accordion .category {
  opacity: 0.7;
}
.l-header__nav .accordion {
  padding: 0.8em 0;
  display: grid;
  grid-template-columns: 1fr auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  border-top: 1px solid var(--color-line);
  font-size: var(--font15);
  font-weight: 500;
}
@media screen and (min-width: 960px) {
  .l-header__nav .accordion {
    padding: 0;
    border: none;
    gap: 0.5rem;
  }
}
.l-header__nav .accordion .icon svg {
  fill: var(--color-main);
}
@media screen and (min-width: 960px) {
  .l-header__nav .list_nav {
    padding: 0.6em 1em;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 13em;
    background-color: #fff;
    -webkit-box-shadow: var(--shadow);
            box-shadow: var(--shadow);
    border-top: 1px solid var(--color-line);
    border-radius: 0 0 0.25rem 0.25rem;
  }
}
.l-header__nav .link_nav {
  padding: 1.2em 0;
  display: grid;
  grid-template-columns: 1fr auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem;
  font-weight: bold;
  border-top: 1px solid var(--color-line);
}
@media screen and (min-width: 960px) {
  .l-header__nav .link_nav {
    padding: 0.6em 0;
    font-size: var(--font15);
    gap: 0.5rem;
    font-weight: 500;
    border: none;
  }
}
@media (hover: hover) {
  .l-header__nav .link_nav:hover {
    opacity: 0.7;
  }
  .l-header__nav .link_nav:focus {
    opacity: 0.7;
  }
}
.l-header__nav .link_nav .icon {
  background-color: var(--color-main);
  width: 21px;
  height: 21px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: 50%;
}
.l-header__nav .link_nav .icon svg {
  fill: #fff;
}
.l-header__overlay {
  position: fixed;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -1;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 0.3s, opacity 0.3s;
  transition: visibility 0.3s, opacity 0.3s;
}
@media screen and (min-width: 960px) {
  .l-header__overlay {
    display: none;
  }
}
.l-header__button {
  --color-button: #fff;
  --color-back-button: var(--color-main);
  background-color: var(--color-back-button);
  width: 45px;
  height: 45px;
  border-radius: 0.5em;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 960px) {
  .l-header__button {
    display: none;
  }
}
.l-header__button .line_button {
  width: 23px;
  height: 3px;
  background-color: var(--color-button);
  position: relative;
  display: inline-block;
}
.l-header__button .line_button::before, .l-header__button .line_button::after {
  content: "";
  display: inline-block;
  width: 23px;
  height: 3px;
  background-color: var(--color-button);
  position: absolute;
  left: 0;
}
.l-header__button .line_button::before {
  top: -8px;
  -webkit-transform-origin: left top;
          transform-origin: left top;
}
.l-header__button .line_button::after {
  top: 8px;
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
}
.l-header.menu-open {
  overflow: revert;
}
.l-header.menu-open .l-header__button {
  --color-button: var(--color-main);
  --color-back-button: #fff;
  border: 2px solid var(--color-main);
}
.l-header.menu-open .l-header__button .line_button {
  background-color: transparent;
}
.l-header.menu-open .l-header__button .line_button::before, .l-header.menu-open .l-header__button .line_button::after {
  width: 25px;
  left: 4px;
}
.l-header.menu-open .l-header__button .line_button::before {
  top: -8px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.l-header.menu-open .l-header__button .line_button::after {
  top: 9px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.l-header.menu-open .l-header__menu {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.l-header.menu-open .l-header__overlay {
  visibility: visible;
  opacity: 1;
  -webkit-transition: visibility 0s, opacity 0.3s;
  transition: visibility 0s, opacity 0.3s;
}

.header_overlay {
  position: fixed;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: none;
}
@media screen and (min-width: 960px) {
  .header_overlay {
    display: none;
  }
}

/* ==========================================================================//
//
//　Footer
//
// ========================================================================== */
.l-footer {
  padding: 2rem 0 1.5rem;
  background-color: var(--color-footer);
  color: #fff;
}
.l-footer__mark {
  display: grid;
  grid-template-columns: repeat(4, 3.5rem);
  gap: 0.5rem;
}
.l-footer__mark img:last-child {
  grid-column: 1/-1;
}
.l-footer__link {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #fff;
}
@media screen and (min-width: 960px) {
  .l-footer__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 5rem;
  }
}

/* ==========================================================================//
//
//　調整用
//
// ========================================================================== */
.pc-only {
  display: none;
}
@media screen and (min-width: 960px) {
  .pc-only {
    display: inherit;
  }
}

@media screen and (min-width: 960px) {
  .sp-only {
    display: none;
  }
}

/* Title
---------------------------------------------------------- */
.c-title_01 {
  font-size: var(--font36);
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  .c-title_01 {
    font-size: var(--font40);
  }
}

.c-title_02 {
  padding: 0.6em 1em;
  background-color: var(--color-back-blue);
  font-weight: bold;
  font-size: var(--font18);
}

.c-title_03 {
  font-weight: bold;
  font-size: var(--font24);
}
.c-title_03::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 1em;
  background-color: var(--color-main);
  vertical-align: -0.2em;
  margin-right: 0.5em;
}
@media screen and (min-width: 768px) {
  .c-title_03 {
    font-size: var(--font28);
  }
}

/* Link
---------------------------------------------------------- */
.c-link_01 {
  --color-link: var(--color-main);
  color: var(--color-link);
  position: relative;
  text-decoration: none;
  display: inline-block;
}
.c-link_01::before {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  top: calc(100% + 0.1em);
  left: 0;
  background-color: var(--color-link);
}
.c-link_01:visited {
  --color-link: #2400A6;
}
@media (hover: hover) {
  .c-link_01:hover ::before {
    -webkit-animation: line_oneway 0.4s ease forwards;
            animation: line_oneway 0.4s ease forwards;
  }
  .c-link_01:focus ::before {
    -webkit-animation: line_oneway 0.4s ease forwards;
            animation: line_oneway 0.4s ease forwards;
  }
}
.c-link_01 .icon {
  display: inline-block;
  vertical-align: -0.1em;
  margin-left: 0.4em;
}
.c-link_01 .icon svg {
  fill: var(--color-link);
}

@media (hover: hover) {
  .c-hover:hover {
    opacity: 0.75;
    -webkit-transition: opacity 0.2s;
    transition: opacity 0.2s;
  }
  .c-hover:focus {
    opacity: 0.75;
    -webkit-transition: opacity 0.2s;
    transition: opacity 0.2s;
  }
}

/* 囲みブロック
---------------------------------------------------------- */
.c-rounded {
  border: 1px solid var(--color-line);
  border-radius: 0.5rem;
}

/* Text
---------------------------------------------------------- */
.c-text {
  font-size: var(--font15);
}
@media screen and (min-width: 768px) {
  .c-text {
    font-size: 1rem;
  }
}

/* タグ
---------------------------------------------------------- */
.c-tag {
  padding: 0.2em 0.8em;
  border: 1px solid var(--color-tag);
  border-radius: 0.25rem;
}

/* List
---------------------------------------------------------- */
.c-list_decimal {
  list-style: decimal;
  padding-left: 1em;
}

.c-list_disc {
  list-style: disc;
  padding-left: 1em;
}

/* Border
---------------------------------------------------------- */
.c-border-bottom {
  border-bottom: 1px solid var(--color-line);
}

/* ● text
---------------------------------------------------------- */
.c-disc {
  --color-disc: var(--color-line);
  position: relative;
  padding-left: 1em;
}
.c-disc::before {
  content: "●";
  color: var(--color-disc);
  font-size: 62%;
  margin-right: 0.6em;
  position: absolute;
  top: 0.5em;
  left: 0;
}

/* Category
---------------------------------------------------------- */
.c-category {
  --color-category: var(--color-font);
  display: inline-block;
  padding: 0.4em 0.6em;
  border: 1px solid var(--color-category);
  border-radius: 5px;
  color: var(--color-category);
  font-size: var(--font13);
  text-align: center;
  font-weight: 500;
  line-height: 1;
}

/* Table
---------------------------------------------------------- */
.c-table .back {
  background-color: var(--color-back);
}
.c-table th,
.c-table td {
  padding: 0.6em 1em;
  border: 1px solid var(--color-line);
}

/* Card
---------------------------------------------------------- */
.c-card {
  border-radius: 0.5rem;
  background-color: #fff;
}
.c-card .inner_card {
  padding: 1rem 1.2rem;
}

.c-card_link {
  display: block;
  outline: 1px solid var(--color-line);
  border: none;
  border-radius: var(--radius);
  overflow: hidden;
  background-color: #fff;
  position: relative;
}
@media (hover: hover) {
  .c-card_link:hover {
    color: var(--color-dark);
    outline: 2px solid var(--color-dark);
  }
  .c-card_link:hover .arrow {
    right: 0.8em;
    -webkit-transition: right 0.2s;
    transition: right 0.2s;
    fill: var(--color-dark);
  }
  .c-card_link:focus {
    color: var(--color-dark);
    outline: 2px solid var(--color-dark);
  }
  .c-card_link:focus .arrow {
    right: 0.8em;
    -webkit-transition: right 0.2s;
    transition: right 0.2s;
    fill: var(--color-dark);
  }
}
.c-card_link .arrow {
  fill: var(--color-sub);
  position: absolute;
  right: 1rem;
  bottom: 1rem;
}

/* Block
---------------------------------------------------------- */
.c-block_back {
  padding: 1rem 2rem;
  background-color: var(--color-back);
  border-radius: 0.5rem;
}
.c-block_back--gray {
  padding: 1rem 2rem;
  background-color: var(--color-back_gray);
  border-radius: 0.5rem;
}

/* Shadow
---------------------------------------------------------- */
.c-shadow {
  -webkit-box-shadow: var(--shadow);
          box-shadow: var(--shadow);
}

/* Button
---------------------------------------------------------- */
.c-button_01 {
  --color-button: #fff;
  --color-back: var(--color-main);
  padding: 0.6em 1em 0.6em 1.4em;
  border-radius: 50rem;
  background-color: var(--color-back);
  color: var(--color-button);
  text-decoration: none;
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: background-color 0.2s, color 0.2s;
  transition: background-color 0.2s, color 0.2s;
  border: 2px solid var(--color-back);
}
@media (hover: hover) {
  .c-button_01:hover {
    --color-button: var(--color-main);
    --color-back: #fff;
    border: 2px solid var(--color-button);
  }
  .c-button_01:focus {
    --color-button: var(--color-main);
    --color-back: #fff;
    border: 2px solid var(--color-button);
  }
}
.c-button_01 .icon {
  top: 50%;
  right: 1em;
  width: 19px;
  height: 19px;
  background-color: var(--color-button);
  border-radius: 50%;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  fill: var(--color-back);
  margin-left: 1em;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.c-button_01.border {
  --color-button: var(--color-main);
  --color-back: #fff;
  padding: 0.6em 1.6em;
  border: 2px solid var(--color-main);
}
@media (hover: hover) {
  .c-button_01.border:hover {
    --color-button: #fff;
    --color-back: var(--color-main);
  }
  .c-button_01.border:focus {
    --color-button: #fff;
    --color-back: var(--color-main);
  }
}
.c-button_01.noicon {
  padding: 0.8em 1.4em;
}

.visually-hidden {
  position: fixed !important;
  /* keep it on viewport */
  top: 0px !important;
  left: 0px !important;
  /* give it non-zero size, VoiceOver on Safari requires at least 2 pixels
   before allowing buttons to be activated. */
  width: 4px !important;
  height: 4px !important;
  /* visually hide it with overflow and opacity */
  opacity: 0 !important;
  overflow: hidden !important;
  /* remove any margin or padding */
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  /* ensure no other style sets display to none */
  display: block !important;
  visibility: visible !important;
}

@media (prefers-reduced-motion: no-preference) {
  .a-bounce {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    -webkit-transition: all 0.3s var(--bezier);
    transition: all 0.3s var(--bezier);
  }
  .a-bounce.active {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  .a-poyon.active {
    -webkit-animation: poyon 0.8s linear;
            animation: poyon 0.8s linear;
  }
  @-webkit-keyframes poyon {
    0% {
      -webkit-transform: scale(1, 1) translate(0%, 0%);
              transform: scale(1, 1) translate(0%, 0%);
    }
    10% {
      -webkit-transform: scale(1.1, 0.9) translate(0%, 5%);
              transform: scale(1.1, 0.9) translate(0%, 5%);
    }
    40% {
      -webkit-transform: scale(1.2, 0.8) translate(0%, 15%);
              transform: scale(1.2, 0.8) translate(0%, 15%);
    }
    50% {
      -webkit-transform: scale(1, 1) translate(0%, 0%);
              transform: scale(1, 1) translate(0%, 0%);
    }
    60% {
      -webkit-transform: scale(0.9, 1.2) translate(0%, -80%);
              transform: scale(0.9, 1.2) translate(0%, -80%);
    }
    75% {
      -webkit-transform: scale(0.9, 1.2) translate(0%, -20%);
              transform: scale(0.9, 1.2) translate(0%, -20%);
    }
    85% {
      -webkit-transform: scale(1.2, 0.8) translate(0%, 15%);
              transform: scale(1.2, 0.8) translate(0%, 15%);
    }
    100% {
      -webkit-transform: scale(1, 1) translate(0%, 0%);
              transform: scale(1, 1) translate(0%, 0%);
    }
  }
  @keyframes poyon {
    0% {
      -webkit-transform: scale(1, 1) translate(0%, 0%);
              transform: scale(1, 1) translate(0%, 0%);
    }
    10% {
      -webkit-transform: scale(1.1, 0.9) translate(0%, 5%);
              transform: scale(1.1, 0.9) translate(0%, 5%);
    }
    40% {
      -webkit-transform: scale(1.2, 0.8) translate(0%, 15%);
              transform: scale(1.2, 0.8) translate(0%, 15%);
    }
    50% {
      -webkit-transform: scale(1, 1) translate(0%, 0%);
              transform: scale(1, 1) translate(0%, 0%);
    }
    60% {
      -webkit-transform: scale(0.9, 1.2) translate(0%, -80%);
              transform: scale(0.9, 1.2) translate(0%, -80%);
    }
    75% {
      -webkit-transform: scale(0.9, 1.2) translate(0%, -20%);
              transform: scale(0.9, 1.2) translate(0%, -20%);
    }
    85% {
      -webkit-transform: scale(1.2, 0.8) translate(0%, 15%);
              transform: scale(1.2, 0.8) translate(0%, 15%);
    }
    100% {
      -webkit-transform: scale(1, 1) translate(0%, 0%);
              transform: scale(1, 1) translate(0%, 0%);
    }
  }
}