@charset "UTF-8";
:root {
  --text-color: #333333;
  --text-hover-color: rgba(51, 51, 51, 0.5);
  --text-link-color: #1767b5;
  --text-link-hover-color: rgba(23, 103, 181, 0.6);
  --text-state-error: #cf1a1a;
  --text-state-success: #1767b5;
  --background-color: #ffffff;
}

/*
 * 目次
 *
 * button-primary
 * is-style-blue-circle
 */
/*--------------------------------------------------------------
>>> button-primary
--------------------------------------------------------------*/
/*--------------------------------------------------------------
>>> is-style-blue-circle
--------------------------------------------------------------*/
:root {
  --font-size-h1: 2.5rem;
  --font-size-h2: 2rem;
  --font-size-h3: 1.5rem;
  --font-size-h4: 1.25rem;
  --font-size-h5: 1.125rem;
  --font-size-h6: 1rem;
  --font-size-p: 0.875rem;
  --font-size-p-read-more-link: 1rem;
  --font-size-large: 1rem;
  --font-size-medium: 0.875rem;
  --font-size-small: 0.75rem;
  --font-size-h2-alt: 1.5rem;
  --font-size-h3-alt: 1.25rem;
}
@media screen and (min-width: 1025px) {
  :root {
    --font-size-h1: 3rem;
    --font-size-h2: 2.5rem;
    --font-size-h3: 2rem;
    --font-size-h4: 1.5rem;
    --font-size-h5: 1.25rem;
    --font-size-h6: 1.125rem;
    --font-size-p: 1rem;
    --font-size-p-read-more-link: 1.125rem;
    --font-size-large: 1.125rem;
    --font-size-medium: 1rem;
    --font-size-small: 0.875rem;
    --font-size-h2-alt: 2.5rem;
    --font-size-h3-alt: 2rem;
  }
}

.single {
  --font-size-h1: 2rem;
  --font-size-h2: 1.5rem;
  --font-size-h3: 1.25rem;
  --font-size-h4: 1.125rem;
  --font-size-h5: 1.125rem;
  --font-size-h6: 1.125rem;
}
@media screen and (min-width: 1025px) {
  .single {
    --font-size-h1: 2.5rem;
    --font-size-h2: 2rem;
    --font-size-h3: 1.5rem;
    --font-size-h4: 1.25rem;
    --font-size-h5: 1.125rem;
    --font-size-h6: 1.125rem;
  }
}

.home {
  --font-size-p-read-more-link: 1rem;
}
@media screen and (min-width: 1025px) {
  .home {
    --font-size-p-read-more-link: 1.25rem;
  }
}

.privacy-policy {
  --font-size-h2: 1.5rem;
  --font-size-h3: 1.25rem;
  --font-size-h4: 1.125rem;
  --font-size-h5: 1.125rem;
  --font-size-h6: 1.125rem;
}
@media screen and (min-width: 1025px) {
  .privacy-policy {
    --font-size-h2: 2rem;
    --font-size-h3: 1.5rem;
    --font-size-h4: 1.25rem;
    --font-size-h5: 1.125rem;
    --font-size-h6: 1.125rem;
  }
}

:root {
  --font-family: "Roboto", "Noto Sans JP", sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  overflow-x: clip;
}
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
  html:focus-within {
    scroll-behavior: auto;
  }
}

body {
  font-family: var(--font-family);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--text-color);
  background-color: var(--background-color);
  -webkit-font-smoothing: antialiased;
}
body.no-scroll {
  overflow: hidden;
  height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-block-end: 1.6rem;
  font-weight: 700;
}

h1 {
  font-size: var(--font-size-h1);
}

h2 {
  font-size: var(--font-size-h2);
}

h3 {
  font-size: var(--font-size-h3);
}

h4 {
  font-size: var(--font-size-h4);
}

h5 {
  font-size: var(--font-size-h5);
}

h6 {
  font-size: var(--font-size-h6);
}

p {
  margin-block-end: 1.6rem;
  font-size: var(--font-size-p);
}

strong,
b {
  font-weight: 700;
}

a {
  color: var(--text-link-color);
  text-decoration: underline;
  text-underline-offset: 0.4em;
  text-decoration-thickness: 1px;
  transition: color 0.3s ease, text-decoration-color 0.3s ease;
}
a:hover, a:active, a:focus-visible {
  color: var(--text-link-hover-color);
  text-decoration-color: transparent;
}
a:has(> img) img {
  transition: opacity 0.3s ease;
}
a:has(> img):hover img, a:has(> img):active img, a:has(> img):focus-visible img {
  opacity: 0.7;
}

button {
  color: var(--text-color);
}

ul,
ol {
  margin-block-end: 1.6rem;
}

dl dt,
dl dd {
  font-size: var(--font-size-p);
}

textarea,
select {
  font-family: inherit;
  font-size: inherit;
}

input,
textarea {
  font-family: inherit;
  font-size: inherit;
  color: var(--text-color);
}
input::placeholder,
textarea::placeholder {
  color: #969a9e;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

iframe,
video {
  display: block;
  max-width: 100%;
}

.wp-block-group.is-style-bg-blue {
  position: relative;
}
.wp-block-group.is-style-bg-blue::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100cqi;
  left: calc(50% - 50cqi);
  background-color: #f0f6ff;
  z-index: -1;
}

.wp-block-heading.is-style-blue-circle {
  display: flex;
  align-items: flex-start;
  column-gap: 12px;
}
@media screen and (min-width: 1025px) {
  .wp-block-heading.is-style-blue-circle {
    column-gap: 16px;
  }
}
.wp-block-heading.is-style-blue-circle::before {
  margin-block-start: calc((1lh - 13px) / 2);
  content: "";
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background-color: #1767b5;
  flex-shrink: 0;
}
@media screen and (min-width: 1025px) {
  .wp-block-heading.is-style-blue-circle::before {
    margin-block-start: calc((1lh - 15px) / 2);
    width: 15px;
    height: 15px;
  }
}

p.is-style-read-more-link:not(:has(> a)) {
  padding-block: 5px;
  font-size: var(--font-size-p-read-more-link);
  font-weight: 700;
  color: var(--text-color);
}
@media screen and (min-width: 1025px) {
  p.is-style-read-more-link:not(:has(> a)) {
    padding-block: 5.5px;
  }
}
p.is-style-read-more-link > a {
  margin-inline-end: 35px;
  padding-inline-end: 16px;
  padding-block: 5px;
  display: inline-block;
  font-size: var(--font-size-p-read-more-link);
  font-weight: 700;
  color: var(--text-color);
  text-decoration: none;
  position: relative;
}
@media screen and (min-width: 1025px) {
  p.is-style-read-more-link > a {
    margin-inline-end: 40px;
    padding-inline-end: 20px;
    padding-block: 5.5px;
  }
}
p.is-style-read-more-link > a::before, p.is-style-read-more-link > a::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  transform: translateY(-50%);
}
@media screen and (min-width: 1025px) {
  p.is-style-read-more-link > a::before, p.is-style-read-more-link > a::after {
    left: 100%;
  }
}
p.is-style-read-more-link > a::before {
  width: 35px;
  height: 35px;
  border: 1px solid #cf1a1a;
  border-radius: 50%;
  transition: opacity 0.3s ease;
}
@media screen and (min-width: 1025px) {
  p.is-style-read-more-link > a::before {
    width: 40px;
    height: 40px;
  }
}
p.is-style-read-more-link > a::after {
  width: 35px;
  height: 35px;
  mask-image: url("../images/common/icon-arrow-right.svg");
  mask-size: 11px 8px;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #cf1a1a;
  transition: opacity 0.3s ease;
}
@media screen and (min-width: 1025px) {
  p.is-style-read-more-link > a::after {
    width: 40px;
    height: 40px;
    mask-size: 12px 9px;
  }
}
p.is-style-read-more-link > a:hover, p.is-style-read-more-link > a:active, p.is-style-read-more-link > a:focus-visible {
  color: var(--text-hover-color);
}
p.is-style-read-more-link > a:hover::after, p.is-style-read-more-link > a:hover::before, p.is-style-read-more-link > a:active::after, p.is-style-read-more-link > a:active::before, p.is-style-read-more-link > a:focus-visible::after, p.is-style-read-more-link > a:focus-visible::before {
  opacity: 0.4;
}

p.is-style-intro {
  font-size: 1.5rem;
  font-weight: 700;
}
@media screen and (min-width: 1025px) {
  p.is-style-intro {
    font-size: 2rem;
  }
}

.wp-block-image.is-style-no-rounded img {
  border-radius: 0;
}

.has-black-color {
  color: #333333;
}

.has-black-background-color {
  background-color: #333333;
}

.has-white-color {
  color: #ffffff;
}

.has-white-background-color {
  background-color: #ffffff;
}

.has-brand-300-color {
  color: #1767b5;
}

.has-brand-300-background-color {
  background-color: #1767b5;
}

@media screen and (max-width: 768px) {
  .wp-block-group.is-layout-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

section.wp-block-group,
.wp-block-group.section-spacing {
  padding-block: 64px;
}
@media screen and (min-width: 1025px) {
  section.wp-block-group,
  .wp-block-group.section-spacing {
    padding-block: 80px;
  }
}

.wp-block-image img {
  border-radius: 8px;
}

.wp-element-caption {
  margin-block: 8px 0;
  font-size: var(--font-size-p);
  font-weight: 500;
  color: var(--text-color);
}
@media screen and (min-width: 1025px) {
  .wp-element-caption {
    margin-block: 12px 0;
  }
}

.wp-block-embed__wrapper {
  border-radius: 8px;
  overflow: hidden;
}

.wp-block-media-text > .wp-block-media-text__media img {
  border-radius: 8px;
}
.wp-block-media-text.is-style-no-rounded > .wp-block-media-text__media img {
  border-radius: 0;
}

@media screen and (max-width: 768px) {
  .wp-block-media-text.is-stacked-on-mobile {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media {
    grid-column: 1;
    grid-row: 1;
  }
  .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 2;
  }
}
@media screen and (max-width: 768px) {
  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right > .wp-block-media-text__media {
    grid-column: 1;
    grid-row: 2;
  }
  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right > .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 1;
  }
}

.wp-block-button__link {
  padding: 6px;
  font-size: 0.875rem;
  font-weight: 700;
  color: #ffffff;
  min-width: 254px;
  border: 2px solid #cf1a1a;
  border-radius: 32px;
  background-color: #cf1a1a;
  transition: color 0.3s ease, background-color 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .wp-block-button__link {
    font-size: 1rem;
    min-width: 272px;
  }
}
.wp-block-button__link:hover, .wp-block-button__link:active, .wp-block-button__link:focus-visible {
  color: #cf1a1a;
  background-color: #ffffff;
}

.wp-block-quote {
  border-left: none !important;
  padding: 24px !important;
  border-radius: 8px;
  background-color: #dee8ff;
}
.wp-block-quote p {
  margin-block-end: 0;
  font-size: 0.875rem;
}
@media screen and (min-width: 1025px) {
  .wp-block-quote p {
    font-size: 1rem;
  }
}
.wp-block-quote p + p {
  margin-block-start: 24px;
}
.wp-block-quote cite {
  margin-block-start: 32px;
  font-size: 0.75rem !important;
  text-align: end;
}
@media screen and (min-width: 1025px) {
  .wp-block-quote cite {
    font-size: 0.875rem !important;
  }
}

ul.wp-block-list {
  list-style: none;
}
ul.wp-block-list > li {
  padding-inline-start: 14px;
  font-size: var(--font-size-p);
  font-weight: 500;
  position: relative;
}
@media screen and (min-width: 1025px) {
  ul.wp-block-list > li {
    padding-inline-start: 16px;
  }
}
ul.wp-block-list > li::before {
  content: "";
  position: absolute;
  top: 9px;
  left: 0;
  width: 6px;
  height: 6px;
  background-color: #1767b5;
  border-radius: 50%;
}
@media screen and (min-width: 769px) {
  ul.wp-block-list > li::before {
    top: 8px;
    width: 8px;
    height: 8px;
  }
}
ul.wp-block-list > li + li {
  margin-block-start: 12px;
}
ul.wp-block-list > li > ul.wp-block-list,
ul.wp-block-list > li > ol.wp-block-list {
  margin-block: 12px 0;
}

ol.wp-block-list {
  list-style: none;
  counter-reset: my-counter;
}
ol.wp-block-list > li {
  padding-inline-start: calc(1.5em + 8px);
  font-size: var(--font-size-p);
  font-weight: 500;
  position: relative;
  counter-increment: my-counter;
}
ol.wp-block-list > li::before {
  content: counter(my-counter, decimal) ".";
  position: absolute;
  top: 0;
  left: 0;
  width: 1.5em;
  text-align: right;
  color: #1767b5;
  font-weight: 700;
}
ol.wp-block-list > li + li {
  margin-block-start: 12px;
}
ol.wp-block-list > li > ul.wp-block-list,
ol.wp-block-list > li > ol.wp-block-list {
  margin-block: 12px 0;
}

.wp-block-flexible-table-block-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.wp-block-flexible-table-block-table th,
.wp-block-flexible-table-block-table td {
  font-size: var(--font-size-p) !important;
  min-width: 196px !important;
}

.wp-block-flexible-table-block-table.is-style-stripes thead,
.wp-block-flexible-table-block-table.is-style-stripes th,
.wp-block-flexible-table-block-table.is-style-stripes td {
  border: none !important;
}
.wp-block-flexible-table-block-table.is-style-stripes th {
  background-color: #1767b5 !important;
}
.wp-block-flexible-table-block-table.is-style-stripes th + th {
  border-inline-start: 1px solid #ffffff !important;
}
.wp-block-flexible-table-block-table.is-style-stripes tbody tr + tr th {
  border-block-start: 1px solid #ffffff !important;
}
.wp-block-flexible-table-block-table.is-style-stripes td + td {
  border-inline-start: 1px solid #bdc0c4 !important;
}

.wp-block-cover {
  padding: 40px 24px;
  border-radius: 8px;
}
@media screen and (min-width: 1025px) {
  .wp-block-cover {
    padding: 64px;
  }
}
.wp-block-cover > .wp-block-cover__background {
  background-color: #000 !important;
  opacity: 0.65 !important;
}
.wp-block-cover > .wp-block-cover__inner-container {
  color: #ffffff !important;
}
.wp-block-cover > .wp-block-cover__inner-container .is-style-read-more-link > a {
  color: #ffffff !important;
}

/**
 * 和文（Noto Sans JP）と欧文（Roboto）の混植で、同じ font-size でも見た目の大きさが違う問題を
 * 解消するため、Roboto にだけ @font-face の size-adjust をかける。
 *
 * @see https://developer.mozilla.org/ja/docs/Web/CSS/@font-face/size-adjust
 */
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMW36eA1Ef.woff2) format("woff2");
  size-adjust: 110%;
}
.heading-label .heading-label-title {
  margin-block-end: 0;
  display: flex;
  align-items: flex-start;
  column-gap: 12px;
}
@media screen and (min-width: 1025px) {
  .heading-label .heading-label-title {
    column-gap: 16px;
  }
}
.heading-label .heading-label-title::before {
  margin-block-start: calc((1lh - 13px) / 2);
  content: "";
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background-color: #1767b5;
  flex-shrink: 0;
}
@media screen and (min-width: 1025px) {
  .heading-label .heading-label-title::before {
    margin-block-start: calc((1lh - 15px) / 2);
    width: 15px;
    height: 15px;
  }
}
.heading-label .heading-label-title-en {
  margin-block-end: 0;
  margin-inline-start: 25px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1767b5;
}
@media screen and (min-width: 1025px) {
  .heading-label .heading-label-title-en {
    margin-inline-start: 35px;
  }
}

.latest-post-list {
  margin-block-end: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 16px;
}
.latest-post-list .post-item {
  display: flex;
  height: fit-content;
  list-style: none;
}
.latest-post-list .post-item > a {
  padding: 16px;
  padding-inline-end: 75px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 12px;
  column-gap: 16px;
  width: 100%;
  border-radius: 8px;
  border: 2px solid #e7e8e9;
  text-decoration: none;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .latest-post-list .post-item > a {
    padding: 20px;
    padding-inline-end: 108px;
    column-gap: 12px;
  }
}
.latest-post-list .post-item > a::before, .latest-post-list .post-item > a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}
@media screen and (min-width: 1025px) {
  .latest-post-list .post-item > a::before, .latest-post-list .post-item > a::after {
    right: 20px;
  }
}
.latest-post-list .post-item > a::before {
  width: 35px;
  height: 35px;
  border: 1px solid #cf1a1a;
  border-radius: 50%;
  transition: opacity 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .latest-post-list .post-item > a::before {
    width: 40px;
    height: 40px;
  }
}
.latest-post-list .post-item > a::after {
  width: 35px;
  height: 35px;
  mask-image: url("../images/common/icon-arrow-right.svg");
  mask-size: 11px 8px;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #cf1a1a;
  transition: opacity 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .latest-post-list .post-item > a::after {
    width: 40px;
    height: 40px;
    mask-size: 12px 9px;
  }
}
.latest-post-list .post-item > a .post-item-date {
  font-size: 0.875rem;
}
@media screen and (min-width: 1025px) {
  .latest-post-list .post-item > a .post-item-date {
    font-size: 1rem;
  }
}
.latest-post-list .post-item > a .post-item-category {
  padding: 4px 16px;
  border-radius: 32px;
  border: 1px solid var(--text-link-color);
  font-size: 0.75rem;
  transition: border 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .latest-post-list .post-item > a .post-item-category {
    padding: 4px 24px;
    font-size: 0.875rem;
  }
}
.latest-post-list .post-item > a .post-item-title {
  flex-basis: 100%;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--text-color);
  transition: color 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .latest-post-list .post-item > a .post-item-title {
    font-size: 1rem;
  }
}
.latest-post-list .post-item > a:hover::after, .latest-post-list .post-item > a:hover::before {
  opacity: 0.4;
}
.latest-post-list .post-item > a:hover .post-item-category {
  border: 1px solid var(--text-link-hover-color);
}
.latest-post-list .post-item > a:hover .post-item-title {
  color: var(--text-hover-color);
}

.filter-terms:has(.filter-terms-radio) + .filter-terms {
  margin-block-start: 8px;
}

.filter-terms-radio .filter-terms-toggle {
  padding: 8px 16px;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr auto;
  column-gap: 16px;
  width: 100%;
  border-radius: 8px;
  background-color: #1767b5;
}
.filter-terms-radio .filter-terms-toggle .filter-terms-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #ffffff;
  text-align: start;
  user-select: none;
}
@media screen and (min-width: 1025px) {
  .filter-terms-radio .filter-terms-toggle .filter-terms-title {
    font-size: 1.25rem;
  }
}
.filter-terms-radio .filter-terms-toggle::after {
  content: "";
  width: 24px;
  height: 24px;
  mask-image: url("../images/common/icon-plus.svg");
  mask-size: 10px 10px;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #ffffff;
  transition: mask-image 0.3s ease;
}
.filter-terms-radio .filter-terms-toggle:focus-visible {
  outline-offset: 2px;
}
.filter-terms-radio.is-open .filter-terms-toggle::after {
  mask-image: url("../images/common/icon-minus.svg");
}
.filter-terms-radio .filter-term-list {
  margin-block-end: 0;
  list-style: none;
  overflow: hidden;
  height: 0;
  transition: height 0.25s ease;
}
.filter-terms-radio .filter-term-list .filter-term {
  margin-inline: 16px;
}
.filter-terms-radio .filter-term-list .filter-term > a {
  display: block;
  padding-inline-start: 22px;
  font-size: 1rem;
  color: var(--text-color);
  text-decoration: none;
  cursor: pointer;
  position: relative;
}
@media screen and (max-width: 1024px) {
  .filter-terms-radio .filter-term-list .filter-term > a {
    font-size: 0.875rem;
  }
}
.filter-terms-radio .filter-term-list .filter-term > a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 14px;
  height: 14px;
  border: 1px solid #bdc0c4;
  border-radius: 50%;
  transform: translateY(-50%);
  transition: border-color 0.3s ease;
}
.filter-terms-radio .filter-term-list .filter-term > a::after {
  content: "";
  display: none;
  position: absolute;
  top: 50%;
  left: 3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #cf1a1a;
  transform: translateY(-50%);
}
.filter-terms-radio .filter-term-list .filter-term:not(.is-active) > a:hover {
  color: var(--text-hover-color);
}
.filter-terms-radio .filter-term-list .filter-term + .filter-term {
  margin-block-start: 16px;
}
.filter-terms-radio .filter-term-list .filter-term:first-child {
  margin-block-start: 16px;
}
@media screen and (min-width: 1025px) {
  .filter-terms-radio .filter-term-list .filter-term:first-child {
    margin-block-start: 24px;
  }
}
.filter-terms-radio .filter-term-list .filter-term:last-child {
  margin-block-end: 16px;
}
@media screen and (min-width: 1025px) {
  .filter-terms-radio .filter-term-list .filter-term:last-child {
    margin-block-end: 24px;
  }
}
.filter-terms-radio .filter-term-list .filter-term.is-active > a::before {
  border-color: #cf1a1a;
}
.filter-terms-radio .filter-term-list .filter-term.is-active > a::after {
  display: block;
}

.filter-terms-select {
  position: relative;
}
.filter-terms-select .filter-terms-toggle {
  padding: 8px 31px 8px 8px;
  width: 100%;
  height: calc(1.6rem + 16px);
  border: 1px solid #bdc0c4;
  border-radius: 8px;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .filter-terms-select .filter-terms-toggle {
    min-width: 200px;
  }
}
.filter-terms-select .filter-terms-toggle .filter-terms-title {
  margin-block-end: 0;
  font-size: 1rem;
  color: var(--text-color);
  text-align: start;
}
.filter-terms-select .filter-terms-toggle .filter-terms-toggle-icon {
  position: absolute;
  top: 50%;
  right: 9px;
  width: 15px;
  height: 15px;
  mask-image: url("../images/common/icon-chevron-down.svg");
  mask-size: 10px 6px;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #bdc0c4;
  transform: translateY(-50%);
}
.filter-terms-select .filter-term-list {
  margin-block-end: 0;
  padding: 8px 31px 8px 8px;
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  border: 1px solid #bdc0c4;
  border-radius: 8px;
  background-color: #ffffff;
  list-style: none;
}
.filter-terms-select .filter-term-list .filter-term > a {
  display: block;
  font-size: 1rem;
  color: var(--text-color);
  text-decoration: none;
  cursor: pointer;
}
.filter-terms-select .filter-term-list .filter-term + .filter-term {
  margin-block-start: 8px;
}
.filter-terms-select.is-open .filter-terms-title {
  visibility: hidden;
}
.filter-terms-select.is-open .filter-terms-toggle-icon {
  transform: translateY(-50%) scaleY(-1);
  z-index: 2;
}
.filter-terms-select.is-open .filter-term-list {
  display: block;
  z-index: 1;
}

.site-header {
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 10;
  transition: border-block-end 0.6s ease, background-color 0.6s ease;
}
body:not(.home) .site-header {
  border-block-end: 1px solid #e7e8e9;
  background-color: #ffffff;
}
@media screen and (max-width: 768px) {
  body.home .site-header {
    background-color: #ffffff;
  }
  body.home .site-header.is-scrolled {
    border-block-end: 1px solid #e7e8e9;
  }
}
@media screen and (min-width: 1025px) {
  body.home .site-header.is-scrolled {
    border-block-end: 1px solid #e7e8e9;
    background-color: #ffffff;
  }
}
.site-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100vh;
  background-color: #4d4d4d;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .site-header::before {
    z-index: 2;
  }
}
.site-header::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #1767b5;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease 0.3s, visibility 0.3s ease 0.3s;
}
.site-header.is-nav-open::before {
  opacity: 0.25;
  visibility: visible;
  pointer-events: auto;
}
.site-header.is-nav-open::after {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
@media screen and (min-width: 1025px) {
  .site-header:has(.menu-item-has-children:hover)::before, .site-header:has(.menu-item-has-children:focus-within)::before {
    opacity: 0.25;
    visibility: visible;
    pointer-events: none;
  }
}
.site-header .site-header-inner {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .site-header .site-header-inner {
    margin-inline: auto;
    padding: 24px;
    max-width: 1440px;
  }
}
.site-header .site-logo {
  position: relative;
  z-index: 2;
}
.site-header .site-logo > a {
  display: block;
}
.site-header .site-logo > a img {
  width: 154px;
  height: auto;
  transition: filter 0.3s ease;
}
.site-header.is-nav-open .site-logo img {
  filter: brightness(0) invert(1);
}
.site-header .header-nav-toggle {
  position: relative;
  z-index: 2;
  width: 50px;
  aspect-ratio: 1/1;
  padding: 0;
  border: none;
  border-radius: 4px;
  background: #1767b5;
  cursor: pointer;
}
@media screen and (min-width: 1025px) {
  .site-header .header-nav-toggle {
    display: none;
  }
}
.site-header .header-nav-toggle::before, .site-header .header-nav-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 25px;
  height: 2px;
  background-color: #ffffff;
  border-radius: 1px;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
}
.site-header .header-nav-toggle::before {
  transform: translate(-50%, calc(-50% - 8px));
}
.site-header .header-nav-toggle::after {
  transform: translate(-50%, calc(-50% + 8px));
}
.site-header .header-nav-toggle span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 25px;
  height: 2px;
  background-color: #ffffff;
  border-radius: 1px;
  transform: translate(-50%, -50%);
  transition: opacity 0.3s ease, background-color 0.3s ease;
}
.site-header.is-nav-open .header-nav-toggle {
  background: #ffffff;
}
.site-header.is-nav-open .header-nav-toggle::before {
  background-color: #303233;
  transform: translate(-50%, -50%) rotate(45deg);
}
.site-header.is-nav-open .header-nav-toggle::after {
  background-color: #303233;
  transform: translate(-50%, -50%) rotate(-45deg);
}
.site-header.is-nav-open .header-nav-toggle span {
  opacity: 0;
}
.site-header .header-nav {
  padding: 24px 16px 30px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background-color: #1767b5;
  transform: translateY(-100%);
  visibility: hidden;
  transition: transform 0.3s ease, visibility 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .site-header .header-nav {
    padding: 0;
    position: static;
    width: auto;
    background-color: transparent;
    transform: none;
    visibility: visible;
  }
}
.site-header.is-nav-open .header-nav {
  transform: translateY(0);
  visibility: visible;
}
@media screen and (min-width: 1025px) {
  .site-header .header-menu {
    display: flex;
  }
}
.site-header .menu-items {
  margin-block-end: 0;
  list-style: none;
}
@media screen and (min-width: 1025px) {
  .site-header .menu-items {
    display: flex;
    column-gap: 24px;
  }
}
.site-header .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: start;
  height: 100%;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  color: #ffffff;
}
@media screen and (min-width: 1025px) {
  .site-header .menu-item > a {
    font-size: 1rem;
    min-width: 4rem;
    color: var(--text-color);
  }
}
.site-header .menu-item > a:hover, .site-header .menu-item > a:active, .site-header .menu-item > a:focus-visible {
  color: var(--text-hover-color);
}
.site-header .header-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu > .menu-item) > a {
  padding-block: 16px 15px;
  border-block-end: 1px solid #bdc0c4;
}
@media screen and (min-width: 1025px) {
  .site-header .header-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu > .menu-item) > a {
    padding-block: 0;
    border-block-end: none;
  }
}
@media screen and (min-width: 1025px) {
  .site-header .header-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu > .menu-item).button-contact {
    margin-inline-start: 16px;
  }
  .site-header .header-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu > .menu-item).button-contact > a {
    padding: 6px 8px;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    color: #ffffff;
    min-width: 180px;
    border: 2px solid #cf1a1a;
    border-radius: 32px;
    background-color: #cf1a1a;
    transition: color 0.3s ease, background-color 0.3s ease;
  }
  .site-header .header-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu > .menu-item).button-contact > a:hover, .site-header .header-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu > .menu-item).button-contact > a:active, .site-header .header-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu > .menu-item).button-contact > a:focus-visible {
    color: #cf1a1a;
    background-color: #ffffff;
  }
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) {
  display: grid;
  grid-template-columns: 1fr auto;
}
@media screen and (min-width: 1025px) {
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) {
    position: relative;
  }
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) > a {
  padding-block: 16px;
  grid-column: 1;
  grid-row: 1;
}
@media screen and (min-width: 1025px) {
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) > a {
    padding-block: 0;
  }
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item)::after {
  content: "";
  grid-column: 1/-1;
  grid-row: 1;
  align-self: end;
  height: 1px;
  background-color: #bdc0c4;
}
@media screen and (min-width: 1025px) {
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item)::after {
    display: none;
  }
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-toggle {
  padding-inline-start: 16px;
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: none;
  border: none;
  cursor: pointer;
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-toggle::before {
  content: "";
  width: 24px;
  height: 24px;
  mask-image: url("../images/common/icon-plus.svg");
  mask-size: 10px;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #ffffff;
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item).is-open .sub-menu-toggle::before {
  mask-image: url("../images/common/icon-minus.svg");
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-wrapper {
  grid-column: 1/-1;
  grid-row: 2;
  height: 0;
  overflow: hidden;
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item).is-open .sub-menu-wrapper {
  height: auto;
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-header {
  display: none;
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu {
  margin-block-end: 0;
  padding-block: 12px;
  list-style: none;
  border-block-end: 1px solid #bdc0c4;
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu > .menu-item > a {
  font-size: 0.75rem;
}
.site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu > .menu-item + .menu-item {
  margin-block-start: 12px;
}
@media screen and (min-width: 1025px) {
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) > a {
    column-gap: 8px;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) > a::after {
    content: "";
    width: 15px;
    height: 15px;
    mask-image: url("../images/common/icon-chevron-down.svg");
    mask-size: 9px 5px;
    mask-repeat: no-repeat;
    mask-position: center;
    background-color: #000;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-toggle {
    display: none;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-wrapper {
    padding: 40px;
    display: flex;
    flex-direction: row;
    width: max-content;
    height: max-content;
    opacity: 0;
    visibility: hidden;
    position: absolute;
    top: calc(100% + 12px);
    left: 50%;
    z-index: 3;
    border-radius: 8px;
    background-color: #ffffff;
    transform: translateX(-50%);
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item):hover .sub-menu-wrapper, .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item):focus-within .sub-menu-wrapper {
    opacity: 1;
    visibility: visible;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-header {
    display: flex;
    flex-direction: column;
    padding-inline-end: 24px;
    border-inline-end: 1px solid #bdc0c4;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-header .sub-menu-title {
    font-size: 2rem;
    font-weight: 700;
    min-width: 177px;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu-header .sub-menu-title-en {
    font-size: 1.125rem;
    color: #1767b5;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu {
    padding-block: 0;
    padding-inline-start: 24px;
    border-block-end: none;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu > .menu-item > a {
    display: flex;
    align-items: center;
    column-gap: 8px;
    font-size: 1rem;
    min-width: 139px;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu > .menu-item > a::after {
    content: "";
    width: 15px;
    height: 15px;
    mask-image: url("../images/common/icon-chevron-right.svg");
    mask-size: 5px 9px;
    mask-repeat: no-repeat;
    mask-position: center;
    background-color: #333333;
  }
  .site-header .header-menu-items .menu-item.menu-item-has-children:not(.sub-menu > .menu-item) .sub-menu > .menu-item + .menu-item {
    margin-block-start: 16px;
  }
}
.site-header .meta-menu-items {
  margin-block-start: 24px;
}
@media screen and (min-width: 1025px) {
  .site-header .meta-menu-items {
    display: none;
  }
}
.site-header .meta-menu-items .menu-item > a {
  font-size: 0.75rem;
}
.site-header .sns-menu-items {
  margin-block-start: 24px;
}
@media screen and (min-width: 1025px) {
  .site-header .sns-menu-items {
    display: none;
  }
}
.site-header .sns-menu-items .menu-item > a {
  align-items: start;
  column-gap: 4px;
}
.site-header .sns-menu-items .menu-item img {
  width: 25px;
  aspect-ratio: 1/1;
  object-fit: contain;
}
.site-header .search-link {
  display: none;
}
@media screen and (min-width: 1025px) {
  .site-header .search-link {
    margin-inline-start: 8px;
    padding: 11px 16px;
    display: block;
  }
  .site-header .search-link::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    mask-image: url("../images/common/icon-search.svg");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    background-color: var(--text-color);
    transition: background-color 0.2s ease;
  }
  .site-header .search-link:hover::before, .site-header .search-link:active::before, .site-header .search-link:focus-visible::before {
    background-color: var(--text-hover-color);
  }
}
.site-header .search-form {
  margin-block-start: 24px;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr auto;
}
@media screen and (min-width: 1025px) {
  .site-header .search-form {
    display: none;
  }
}
.site-header .search-form input {
  padding: 12px;
  width: 100%;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 4px 0 0 4px;
  background-color: #ffffff;
}
.site-header .search-form .search-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 100%;
  background-color: #131415;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
}
.site-header .search-form .search-submit::before {
  content: "";
  width: 20px;
  height: 20px;
  mask-image: url("../images/common/icon-search.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #ffffff;
}
.site-header .copyright {
  margin-block: 24px 0;
  font-size: 0.625rem;
  color: #ffffff;
}
@media screen and (min-width: 1025px) {
  .site-header .copyright {
    display: none;
  }
}

.breadcrumbs .breadcrumbs-inner {
  padding: 4px 24px;
}
@media screen and (min-width: 1025px) {
  .breadcrumbs .breadcrumbs-inner {
    margin-inline: auto;
    padding: 8px 24px;
    max-width: 1248px;
  }
}
.breadcrumbs .breadcrumbs-inner > span {
  display: flex;
  flex-wrap: wrap;
  column-gap: 12px;
}
.breadcrumbs .breadcrumbs-inner > span span {
  font-size: 0.875rem;
}
@media screen and (min-width: 1025px) {
  .breadcrumbs .breadcrumbs-inner > span span {
    font-size: 1rem;
  }
}
.breadcrumbs .breadcrumbs-inner > span span > a {
  color: var(--text-color);
  text-decoration: none;
}
.breadcrumbs .breadcrumbs-inner > span span > a:hover, .breadcrumbs .breadcrumbs-inner > span span > a:active, .breadcrumbs .breadcrumbs-inner > span span > a:focus-visible {
  color: var(--text-hover-color);
}
.breadcrumbs .breadcrumbs-inner > span span + span::before {
  content: "";
  margin-inline-end: 12px;
  display: inline-block;
  width: 5px;
  height: 9px;
  mask-image: url("../images/common/icon-chevron-right.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #bdc0c4;
}

.site-footer {
  width: 100%;
  background-color: #131415;
}
.site-footer .site-footer-inner {
  padding: 40px 16px 16px;
}
@media screen and (min-width: 1025px) {
  .site-footer .site-footer-inner {
    margin-inline: auto;
    padding: 80px 32px;
    display: grid;
    align-content: start;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr;
    max-width: 1264px;
  }
  .site-footer .site-footer-inner::after {
    margin-block: 48px 16px;
    content: "";
    grid-column: 1/-1;
    grid-row: 3;
    align-self: end;
    height: 1px;
    background-color: #bdc0c4;
  }
}
.site-footer .site-logo {
  width: fit-content;
}
@media screen and (min-width: 1025px) {
  .site-footer .site-logo {
    grid-column: 1;
    grid-row: 1;
  }
}
.site-footer .site-logo > a {
  display: block;
}
.site-footer .site-logo > a img {
  width: auto;
  height: 40px;
  filter: brightness(0) invert(1);
}
@media screen and (min-width: 1025px) {
  .site-footer .site-logo > a img {
    height: 50px;
  }
}
.site-footer .footer-nav {
  margin-block-start: 24px;
}
@media screen and (min-width: 1025px) {
  .site-footer .footer-nav {
    margin-block-start: 0;
  }
  .site-footer .footer-nav.footer-nav--main {
    grid-column: 2;
    grid-row: 1/3;
    height: calc(6.4rem + 24px);
  }
  .site-footer .footer-nav.footer-nav--meta {
    grid-column: 1;
    grid-row: 4;
  }
  .site-footer .footer-nav.footer-nav--sns {
    display: flex;
    align-items: center;
    grid-column: 2;
    grid-row: 4/6;
  }
}
.site-footer .menu-items {
  margin-block-end: 0;
  list-style: none;
}
@media screen and (min-width: 1025px) {
  .site-footer .menu-items {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    height: 100%;
    column-gap: 40px;
    row-gap: 8px;
  }
}
@media screen and (min-width: 1025px) {
  .site-footer .menu-item:nth-child(3), .site-footer .menu-item:nth-child(5) {
    flex: 1 0 50%;
  }
}
.site-footer .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: start;
  height: 100%;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  color: #ffffff;
}
@media screen and (min-width: 1025px) {
  .site-footer .menu-item > a {
    font-size: 1rem;
    height: auto;
    min-width: 4rem;
  }
}
.site-footer .menu-item > a:hover, .site-footer .menu-item > a:active, .site-footer .menu-item > a:focus-visible {
  color: #969a9e;
}
.site-footer .footer-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu .menu-item) > a {
  padding-block: 16px 15px;
  border-block-end: 1px solid #bdc0c4;
}
@media screen and (min-width: 1025px) {
  .site-footer .footer-menu-items .menu-item:not(.menu-item-has-children):not(.sub-menu .menu-item) > a {
    padding-block: 0;
    border-block-end: none;
  }
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) {
  display: grid;
  grid-template-columns: 1fr auto;
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) > a {
  padding-block: 16px;
  grid-column: 1;
  grid-row: 1;
}
@media screen and (min-width: 1025px) {
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) > a {
    padding-block: 0;
  }
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item)::after {
  content: "";
  grid-column: 1/-1;
  grid-row: 1;
  align-self: end;
  height: 1px;
  background-color: #bdc0c4;
}
@media screen and (min-width: 1025px) {
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item)::after {
    display: none;
  }
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu-toggle {
  padding-inline-start: 16px;
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: none;
  border: none;
  cursor: pointer;
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu-toggle::before {
  content: "";
  width: 24px;
  height: 24px;
  mask-image: url("../images/common/icon-plus.svg");
  mask-size: 10px;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: #ffffff;
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item).is-open .sub-menu-toggle::before {
  mask-image: url("../images/common/icon-minus.svg");
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu-wrapper {
  grid-column: 1/-1;
  grid-row: 2;
  height: 0;
  overflow: hidden;
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu {
  margin-block-end: 0;
  padding-block: 12px;
  border-block-end: 1px solid #bdc0c4;
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu > .menu-item > a {
  font-size: 0.75rem;
}
.site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu > .menu-item + .menu-item {
  margin-block-start: 12px;
}
@media screen and (min-width: 1025px) {
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu-toggle {
    display: none;
  }
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu-wrapper {
    display: block;
    height: auto;
    overflow: visible;
  }
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu {
    padding-block: 0;
    list-style: none;
    border-block-end: none;
  }
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu > .menu-item > a {
    font-size: 0.875rem;
    font-weight: 500;
  }
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .sub-menu > .menu-item + .menu-item {
    margin-block-start: 8px;
  }
  .site-footer .footer-menu-items .menu-item.menu-item-has-children:not(.sub-menu .menu-item) .menu-item-top {
    display: none;
  }
}
.site-footer .meta-menu-items .menu-item > a {
  font-size: 0.75rem;
}
@media screen and (min-width: 1025px) {
  .site-footer .sns-menu-items {
    justify-content: center;
  }
}
.site-footer .sns-menu-items .menu-item > a {
  align-items: start;
  column-gap: 4px;
}
.site-footer .sns-menu-items .menu-item img {
  width: 25px;
  aspect-ratio: 1/1;
  object-fit: contain;
}
.site-footer .badge-menu-items {
  margin-block-start: 24px;
}
@media screen and (min-width: 1025px) {
  .site-footer .badge-menu-items {
    margin-block-start: 16px;
    align-self: start;
    grid-column: 1;
    grid-row: 2;
  }
}
.site-footer .badge-menu-items .menu-item {
  display: flex;
  align-items: center;
  column-gap: 12px;
}
@media screen and (min-width: 1025px) {
  .site-footer .badge-menu-items .menu-item {
    column-gap: 16px;
  }
}
.site-footer .badge-menu-items .menu-item img {
  width: 52px;
  height: auto;
}
.site-footer .badge-menu-items .menu-item .badge-description {
  margin-block-end: 0;
  font-size: 0.625rem;
  color: #ffffff;
}
@media screen and (min-width: 1025px) {
  .site-footer .badge-menu-items .menu-item .badge-description {
    font-size: 0.75rem;
  }
}
.site-footer .copyright {
  margin-block: 40px 0;
  font-size: 0.625rem;
  color: #ffffff;
}
@media screen and (min-width: 1025px) {
  .site-footer .copyright {
    margin-block: 12px 0;
    grid-column: 1;
    grid-row: 5;
    font-size: 0.75rem;
  }
}

.site-contents {
  container-type: inline-size;
}
.site-contents .archive-header,
.site-contents .entry-header {
  padding: 48px 24px;
}
@media screen and (min-width: 1025px) {
  .site-contents .archive-header,
  .site-contents .entry-header {
    margin-inline: auto;
    padding: 80px 32px;
    max-width: 1264px;
  }
}
.site-contents .archive-content,
.site-contents .entry-content {
  padding: 64px 24px;
}
@media screen and (min-width: 1025px) {
  .site-contents .archive-content,
  .site-contents .entry-content {
    margin-inline: auto;
    padding: 80px 32px;
    max-width: 1264px;
  }
}

.single .site-contents .entry-content {
  padding: 64px 24px;
}
@media screen and (min-width: 1025px) {
  .single .site-contents .entry-content {
    padding: 80px 32px;
    max-width: 848px;
  }
}

.page-content-no-vertical .site-contents .entry-content {
  padding: 0 24px;
}
@media screen and (min-width: 1025px) {
  .page-content-no-vertical .site-contents .entry-content {
    padding: 0 32px;
  }
}

.cta-contact {
  padding-block: 64px;
  position: relative;
}
.cta-contact::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100cqi;
  left: calc(50% - 50cqi);
  background-color: #1767b5;
  z-index: -1;
}
@media screen and (min-width: 1025px) {
  .cta-contact {
    padding-block: 80px;
  }
}
.cta-contact > .wp-block-group__inner-container {
  padding: 64px 24px;
  display: grid;
  row-gap: 32px;
  border-radius: 8px;
  background-color: #ffffff;
}
@media screen and (min-width: 769px) {
  .cta-contact > .wp-block-group__inner-container {
    align-items: end;
    grid-template-columns: 1fr auto;
    column-gap: 24px;
  }
}
@media screen and (min-width: 1025px) {
  .cta-contact > .wp-block-group__inner-container {
    padding: 64px;
  }
}
.cta-contact .heading-label .heading-label-title {
  font-size: 2rem;
}
@media screen and (min-width: 1025px) {
  .cta-contact .heading-label .heading-label-title {
    font-size: 2.5rem;
  }
}
.cta-contact .heading-label .heading-label-title::before {
  content: none;
}
.cta-contact .heading-label .heading-label-title-en {
  margin-inline-start: 0;
}
.cta-contact .heading-label + p {
  margin-block-start: 32px;
}
@media screen and (min-width: 769px) {
  .cta-contact .heading-label + p {
    margin-block-start: 24px;
  }
}
.cta-contact p {
  margin-block-end: 0;
}
.cta-contact p + p:not(.is-style-read-more-link) {
  margin-block-start: 1.6rem;
}

.cta-recruit {
  padding-block: 64px;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .cta-recruit {
    padding-block: 80px;
  }
}
.cta-recruit > .wp-block-group__inner-container {
  padding: 40px 24px;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .cta-recruit > .wp-block-group__inner-container {
    padding: 64px 64px 72px;
  }
}
.cta-recruit .cta-recruit-image {
  border-radius: 8px;
  overflow: hidden;
  position: absolute;
  inset: 0;
  z-index: 0;
}
.cta-recruit .cta-recruit-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.65);
  z-index: 1;
  pointer-events: none;
}
.cta-recruit .cta-recruit-image .wp-block-image {
  margin-block-end: 0;
  border-radius: 8px;
  position: absolute;
  inset: 0;
}
.cta-recruit .cta-recruit-image .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
}
@media screen and (min-width: 769px) {
  .cta-recruit .cta-recruit-image .cta-recruit-image--sp {
    display: none;
  }
}
.cta-recruit .cta-recruit-image .cta-recruit-image--pc {
  display: none;
}
@media screen and (min-width: 769px) {
  .cta-recruit .cta-recruit-image .cta-recruit-image--pc {
    display: block;
  }
}
.cta-recruit .cta-recruit-text {
  margin-inline-end: auto;
  max-width: 600px;
  color: #ffffff;
  position: relative;
  z-index: 2;
}
.cta-recruit .cta-recruit-text .heading-label .heading-label-title {
  font-size: 2rem;
}
@media screen and (min-width: 1025px) {
  .cta-recruit .cta-recruit-text .heading-label .heading-label-title {
    font-size: 2.5rem;
  }
}
.cta-recruit .cta-recruit-text .heading-label .heading-label-title::before {
  content: none;
}
.cta-recruit .cta-recruit-text .heading-label .heading-label-title-en {
  margin-inline-start: 0;
  color: #ffffff;
}
.cta-recruit .cta-recruit-text .heading-label + p {
  margin-block-start: 32px;
}
@media screen and (min-width: 769px) {
  .cta-recruit .cta-recruit-text .heading-label + p {
    margin-block-start: 24px;
  }
}
.cta-recruit .cta-recruit-text p {
  margin-block-end: 0;
}
.cta-recruit .cta-recruit-text p + p:not(.is-style-read-more-link) {
  margin-block-start: 1.6rem;
}
.cta-recruit .cta-recruit-text p.is-style-read-more-link {
  margin-block-start: 230px;
  text-align: right;
}
@media screen and (min-width: 769px) {
  .cta-recruit .cta-recruit-text p.is-style-read-more-link {
    margin-block-start: 64px;
    text-align: left;
  }
}
.cta-recruit .cta-recruit-text p.is-style-read-more-link > a {
  color: #ffffff;
}
.cta-recruit .cta-recruit-text p.is-style-read-more-link > a::before {
  border-color: rgba(255, 255, 255, 0.85);
  background-color: rgba(255, 255, 255, 0.85);
  transition: border-color 0.3s ease, background-color 0.3s ease;
}
.cta-recruit .cta-recruit-text p.is-style-read-more-link > a:hover {
  color: rgba(255, 255, 255, 0.7);
}
.cta-recruit .cta-recruit-text p.is-style-read-more-link > a:hover::before {
  border-color: rgba(255, 255, 255, 0.55);
  background-color: rgba(255, 255, 255, 0.55);
  opacity: 1;
}
.cta-recruit .cta-recruit-text p.is-style-read-more-link > a:hover::after {
  opacity: 1;
}

.detail-item + .detail-item {
  margin-block-start: 48px;
}
@media screen and (min-width: 1025px) {
  .detail-item + .detail-item {
    margin-block-start: 64px;
  }
}
.detail-item .detail-item-title {
  margin-block-end: 0;
}
@media screen and (max-width: 1024px) {
  .detail-item .detail-item-title {
    font-size: 1.5rem;
  }
}
.detail-item .detail-item-category {
  margin-block: 4px 0;
  margin-inline-start: 25px;
  font-size: 1.25rem;
}
@media screen and (min-width: 1025px) {
  .detail-item .detail-item-category {
    margin-inline-start: 31px;
    font-size: 1.5rem;
  }
}
.detail-item .wp-block-media-text {
  margin-block-start: 32px;
  row-gap: 16px;
  container-type: inline-size;
}
@media screen and (min-width: 769px) {
  .detail-item .wp-block-media-text {
    column-gap: 40px;
    grid-template-columns: 1fr 1fr;
  }
  @container (min-width: 884px) {
    .detail-item .wp-block-media-text {
      grid-template-columns: auto 1fr;
    }
  }
}
@media screen and (min-width: 1025px) {
  .detail-item .wp-block-media-text {
    margin-block-start: 40px;
  }
}
@media screen and (min-width: 1248px) {
  .detail-item .wp-block-media-text {
    column-gap: 80px;
  }
}
.detail-item .wp-block-media-text > .wp-block-media-text__media img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: 6.2px;
}
@media screen and (min-width: 769px) {
  .detail-item .wp-block-media-text > .wp-block-media-text__media img {
    max-width: 422px;
    border-radius: 8px;
  }
}
.detail-item .wp-block-media-text > .wp-block-media-text__content {
  padding: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.detail-item .wp-block-media-text > .wp-block-media-text__content p {
  margin-block-end: 0;
}
.detail-item .wp-block-media-text > .wp-block-media-text__content p + p:not(.is-style-read-more-link) {
  margin-block-start: 1.6rem;
}
.detail-item .wp-block-media-text > .wp-block-media-text__content p.is-style-read-more-link {
  margin-block-start: auto;
}
.detail-item .wp-block-media-text > .wp-block-media-text__content p.is-style-read-more-link > a {
  margin-block-start: 16px;
}

.info-items {
  row-gap: 48px;
}
@media screen and (min-width: 769px) {
  .info-items {
    column-gap: 24px;
  }
}

.info-item > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.info-item .wp-block-image {
  margin-block-end: 16px;
}
@media screen and (min-width: 1025px) {
  .info-item .wp-block-image {
    margin-block-end: 24px;
  }
}
.info-item .wp-block-image img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
.info-item .wp-block-heading {
  margin-block-end: 0;
  font-size: var(--font-size-h4);
}
.info-item p:not(.is-style-read-more-link) {
  margin-block-end: 0;
  margin-block-start: 8px;
}
@media screen and (min-width: 769px) {
  .info-item p:not(.is-style-read-more-link) {
    margin-block-start: 10px;
  }
}
.info-item p.is-style-read-more-link {
  margin-block-end: 0;
  margin-block-start: auto;
}
.info-item p.is-style-read-more-link > a {
  margin-block-start: 16px;
}
@media screen and (min-width: 769px) {
  .info-item p.is-style-read-more-link > a {
    margin-block-start: 24px;
  }
}
