@charset "UTF-8";
/* ----- line-height, letter-spacing ----- */
/* ----- hover ----- */
/* ----- animation ----- */
/* ----- supports ----- */
#wpadminbar {
  top: auto;
  bottom: 0;
}

html {
  scroll-behavior: smooth;
}

[id] {
  scroll-margin-top: 80px;
}

body {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  color: #000;
}

body.page-id-11 {
  background-color: #e7e7e7;
}

img,
a,
span {
  display: inline-block;
}

picture {
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

img {
  width: 100%;
  height: 100%;
  vertical-align: bottom;
}

li {
  list-style: none;
}

button {
  font: inherit;
  color: inherit;
  background: transparent;
  background: none;
  border: none;
}

input,
textarea,
select {
  font: inherit;
}

a[href^="tel:"] {
  pointer-events: auto;
}
@media (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

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

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
  border: 0;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

li,
dd {
  list-style-type: none;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
}

/* ==================================================
  🎯 inner
================================================== */
.inner {
  width: min(68.75rem + 1.25rem * 2, 100%);
  padding-inline: 1.25rem;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .inner {
    max-width: 600px;
  }
}

.inner-sm {
  width: min(52.5rem + 1.25rem * 2, 100%);
  padding-inline: 1.25rem;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .inner-sm {
    max-width: 600px;
  }
}

.inner-xs {
  width: min(40rem + 1.25rem * 2, 100%);
  padding-inline: 1.25rem;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .inner-xs {
    max-width: 600px;
  }
}

/* ==================================================
  🎯 sns-lists
================================================== */
.sns-lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.375rem;
  color: #fff;
}

.sns-list a {
  padding: 0.625rem;
}

.top-heading {
  font-family: "Oswald", sans-serif;
  font-size: 4.375rem;
  font-weight: 700;
  line-height: 1;
}
@media (max-width: 767px) {
  .top-heading {
    font-size: 38px;
    line-height: 1.0526315789;
  }
}

/* ==================================================
  🎯 read-more01
================================================== */
.read-more01 {
  position: relative;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 2.8571428571;
  color: #141414;
  padding-block: 0.625rem;
}
.read-more01:hover .read-more01__inner {
  background-size: 200% 0.0625rem;
}
.read-more01 i {
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
.read-more01:hover i {
  -webkit-transform: translateX(0.3125rem);
          transform: translateX(0.3125rem);
}

.read-more01__inner {
  display: inline;
  line-height: 1.5;
  background: -webkit-gradient(linear, left bottom, left top, color-stop(0.125rem, #001e63), color-stop(99%, transparent)) no-repeat;
  background: linear-gradient(to top, #001e63 0.125rem, transparent 99%) no-repeat;
  -webkit-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out;
  background-position: 0% 100%;
  background-size: 0% 0.0625rem;
}

.read-more01__inner i {
  -webkit-transform: translateX(0.125rem);
          transform: translateX(0.125rem);
}

/* ==================================================
  🎯 read-more02
================================================== */
.read-more02 a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-column-gap: 0.625rem;
     -moz-column-gap: 0.625rem;
          column-gap: 0.625rem;
  padding: 0.625rem 1.25rem;
  border: 0.0625rem solid #141414;
  border-radius: 0.25rem;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  color: #141414;
}
@media (max-width: 767px) {
  .read-more02 a {
    padding-inline: 22px;
    -webkit-column-gap: 8px;
       -moz-column-gap: 8px;
            column-gap: 8px;
  }
}
.read-more02 a:hover::after {
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
}
.read-more02 a i {
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
.read-more02 a:hover i {
  -webkit-transform: translateX(0.3125rem);
          transform: translateX(0.3125rem);
}

.card01__link {
  display: block;
}

.card01__img {
  position: relative;
  z-index: 50;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.card01__img {
  aspect-ratio: 335/170;
}

.card01__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.card01__catch {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 82%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 0.6875rem;
  color: #fff;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-padding-before: 0.8125rem;
          padding-block-start: 0.8125rem;
}
@media (max-width: 900px) {
  .card01__catch {
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}

.card01__heading {
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

.card01__subtitle {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.5384615385;
}

.card01__body {
  -webkit-margin-before: 1.75rem;
          margin-block-start: 1.75rem;
}

.card01__text {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 767px) {
  .card01__text {
    font-size: 14px;
    line-height: 2.2857142857;
  }
}

.card01__btn {
  -webkit-margin-before: 0.9375rem;
          margin-block-start: 0.9375rem;
  text-align: right;
}
@media (max-width: 767px) {
  .card01__btn {
    -webkit-margin-before: 10px;
            margin-block-start: 10px;
  }
}

.tag-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.25rem;
}

.tag {
  display: inline-block;
  padding: 0.4545454545em 1.6363636364em;
  background-color: #f3f3f3;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1.5;
  color: #626262;
}
@media (max-width: 767px) {
  .tag {
    padding: 0.6em 1.5em 0.5em;
    font-size: 10px;
  }
}

.tag.is-active {
  background-color: #011950;
  color: #fff;
}

.tag.tag--bg {
  background-color: #fff;
}

.c-date {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  color: #a9a9a9;
}
@media (max-width: 767px) {
  .c-date {
    font-size: 10px;
  }
}

.c-date.c-date--small02 {
  font-size: 0.6875rem;
  letter-spacing: 0.02em;
}
@media (max-width: 767px) {
  .c-date.c-date--small02 {
    font-size: 10px;
  }
}

.c-date.c-date--small03 {
  font-size: 0.625rem;
  letter-spacing: 0.02em;
}

/* ==================================================
  🎯 under-line
================================================== */
.under-line-hover:hover .under-line {
  background-size: 200% 0.0625rem;
}

.under-line {
  display: inline;
  padding-bottom: 0.25em;
  background: -webkit-gradient(linear, left bottom, left top, color-stop(0.125rem, currentColor), color-stop(99%, transparent)) no-repeat;
  background: linear-gradient(to top, currentColor 0.125rem, transparent 99%) no-repeat;
  -webkit-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out;
  background-position: 0% 100%;
  background-size: 0% 0.0625rem;
}

.back-btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.625rem;
  padding: 0.8125rem 5rem 0.625rem 5.25rem;
  background-color: #fff;
  border: 0.0625rem solid #001e63;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  color: #001e63;
  text-align: center;
  cursor: pointer;
}
@media (max-width: 340px) {
  .back-btn {
    padding: 0.8125rem 2rem 0.625rem 2rem;
  }
}
.back-btn:hover i {
  -webkit-transform: translateX(-0.3125rem);
          transform: translateX(-0.3125rem);
}

.back-btn i {
  position: relative;
  top: -0.0625rem;
  font-size: 0.5625rem;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.back-btn.back-btn--contact {
  background-color: #011950;
  color: #fff;
  border: 0.0625rem solid #87ceeb;
  padding: 0.8125rem 3rem;
}
@media (max-width: 767px) {
  .back-btn.back-btn--contact {
    padding: 0.8125rem 2rem;
  }
}

/* ==================================================
  🎯 片側から出現のアニメーション
================================================== */
.animated__clipView {
  clip-path: inset(0 100% 0 0);
  -webkit-transition: clip-path 1s ease;
  transition: clip-path 1s ease;
}
.animated__clipView.js-show {
  clip-path: inset(0 0 0 0);
}

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

================================================== */
.animated__fadeIn-up {
  opacity: 0;
  translate: 0 -2.5rem;
  -webkit-transition: opacity 0.3s ease, translate 0.3s ease;
  transition: opacity 0.3s ease, translate 0.3s ease;
}
.animated__fadeIn-up.js-show {
  opacity: 1;
  translate: 0 0;
}

/* ==================================================
  🎯 下からフェードイン
================================================== */
.animated__fadeIn-down {
  opacity: 0;
  translate: 0 2.5rem;
  -webkit-transition: opacity 0.3s ease, translate 0.3s ease;
  transition: opacity 0.3s ease, translate 0.3s ease;
}
.animated__fadeIn-down.js-show {
  opacity: 1;
  translate: 0 0;
}

/* ==================================================
  🎯 hover時
================================================== */
.u-hover-opacity {
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (any-hover: hover) {
  .u-hover-opacity:hover {
    opacity: 0.7;
  }
}

/* ==================================================
  🎯 news
================================================== */
/*----------------------------------
  news__container
-----------------------------------*/
.news__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
@media (max-width: 900px) {
  .news__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 37px;
  }
}

/*----------------------------------
  news__side
-----------------------------------*/
.news__side {
  width: 24%;
  -webkit-margin-before: 1.0625rem;
          margin-block-start: 1.0625rem;
}
@media (max-width: 900px) {
  .news__side {
    width: 100%;
    -webkit-margin-before: 0;
            margin-block-start: 0;
  }
}

.news__side--no-margin {
  -webkit-margin-before: 0;
          margin-block-start: 0;
}

.news__side--sticky {
  position: sticky;
  top: 12.5rem;
}
@media (max-width: 900px) {
  .news__side--sticky {
    position: static;
  }
}

.news__side__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.875rem;
}
@media (max-width: 900px) {
  .news__side__inner {
    gap: 3.125rem;
  }
}

.news__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4375rem;
  -webkit-padding-start: 1.25rem;
          padding-inline-start: 1.25rem;
}
@media (max-width: 900px) {
  .news__nav {
    -webkit-margin-start: 14px;
            margin-inline-start: 14px;
    gap: 13px;
  }
}

.news__nav-title {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.6;
  color: #a9a9a9;
}
@media (max-width: 767px) {
  .news__nav-title {
    font-size: 12px;
    line-height: 1.5;
  }
}

.news__navList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.9375rem;
}
@media (max-width: 900px) {
  .news__navList {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 13px 40px;
  }
}

/*----------------------------------
  news下層ページの余白
-----------------------------------*/
/*---------------------------------------------------------------------*/
.news__navItem a {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.8;
  color: #a9a9a9;
}
@media (max-width: 900px) {
  .news__navItem a {
    font-size: 12px;
    line-height: 1.5;
  }
}

.news__nav-title a.is-active {
  color: #000;
}

.news__navItem a.is-active {
  color: #000;
}

.news__nav-title {
  position: relative;
}

.news__navMarker {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: calc(100% + 0.375rem);
  display: inline-block;
  aspect-ratio: 1/1;
  width: 0.5rem;
  height: auto;
  background-color: #001e63;
}

/*----------------------------------
  news__main
-----------------------------------*/
.news__main {
  width: calc(100% - (24% - 0.0625rem));
  border-left: 0.0625rem solid #a9a9a9;
}
@media (max-width: 900px) {
  .news__main {
    width: 100%;
    border: unset;
  }
}

.news__list {
  width: 93%;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
@media (max-width: 900px) {
  .news__list {
    width: 88.06%;
    margin-inline: auto;
  }
}

.news__link {
  display: block;
  -webkit-padding-after: 1.3125rem;
          padding-block-end: 1.3125rem;
  border-bottom: 0.0625rem solid #e2e2e2;
}
@media (max-width: 900px) {
  .news__link {
    padding-block: 19px 13px;
  }
  .news__link:first-child {
    border-top: 1px solid #e2e2e2;
  }
}

/*----------------------------------
  2列目以降の上の余白
-----------------------------------*/
.news__item + .news__item .news__link {
  -webkit-padding-before: 1.8125rem;
          padding-block-start: 1.8125rem;
}
@media (max-width: 900px) {
  .news__item + .news__item .news__link {
    -webkit-padding-before: 19px;
            padding-block-start: 19px;
  }
}

.news__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem 1.875rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media (max-width: 767px) {
  .news__meta {
    gap: 13px;
  }
}

.news__labels {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem 1.25rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media (max-width: 767px) {
  .news__labels {
    gap: 6px;
  }
}

.news__headline {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 2.5;
  -webkit-margin-before: 1.0625rem;
          margin-block-start: 1.0625rem;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 767px) {
  .news__headline {
    font-size: 14px;
    line-height: 2;
    -webkit-margin-before: 17px;
            margin-block-start: 17px;
  }
}

/*----------------------------------
  news__btn
-----------------------------------*/
.news__btn {
  -webkit-margin-before: 1.9375rem;
          margin-block-start: 1.9375rem;
  text-align: right;
}
@media (max-width: 900px) {
  .news__btn {
    width: 88.06%;
    margin-inline: auto;
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
  }
}

.big-btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.625rem;
  padding: 1.25rem 11.4375rem 1.25rem 10.5rem;
  border-radius: 0.25rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
  cursor: pointer;
  background-color: #011950;
  color: #fff;
  border: 0.0625rem solid #87ceeb;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
@media (max-width: 767px) {
  .big-btn {
    font-size: 0.875rem;
    padding: 0.8125rem 5.875rem 0.625rem 5.875rem;
  }
}
@media (max-width: 340px) {
  .big-btn {
    padding: 0.8125rem clamp(1rem, 12vw, 5.875rem) 0.625rem clamp(1rem, 12vw, 5.875rem);
  }
}
.big-btn i {
  font-size: 0.5625rem;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.big-btn:hover i {
  -webkit-transform: translateX(-0.3125rem);
          transform: translateX(-0.3125rem);
}

/* ==================================================
  🎯 works-list
================================================== */
.works-list {
  -webkit-margin-before: 3.4375rem;
          margin-block-start: 3.4375rem;
  -webkit-padding-after: 1.8125rem;
          padding-block-end: 1.8125rem;
  background-color: #fff;
  background: #f4f4f4;
  border: 0.0625rem solid #e0e0e0;
}
@media (max-width: 767px) {
  .works-list {
    -webkit-margin-before: 1.75rem;
            margin-block-start: 1.75rem;
  }
}

/*----------------------------------
  works-list__card
-----------------------------------*/
.works-list__card {
  overflow: hidden;
  width: 92.9091%;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .works-list__card {
    width: 79.201%;
  }
}

.works-list__card a {
  display: block;
  padding-block: 3.125rem;
  border-bottom: 0.0625rem solid #e2e2e2;
  height: 100%;
}
@media (max-width: 767px) {
  .works-list__card a {
    padding-block: 1.8125rem 1.9375rem;
  }
}

/*----------------------------------
  works-list__link-inner
-----------------------------------*/
.works-list__link-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 3.1875rem;
}
@media (max-width: 767px) {
  .works-list__link-inner {
    gap: 1.125rem;
  }
}

.works-list__media {
  aspect-ratio: 290/229;
  max-width: 18.125rem;
  width: 100%;
}
@media (max-width: 767px) {
  .works-list__media {
    aspect-ratio: 120/90;
    max-width: 7.5rem;
  }
}

.works-list__media img {
  -o-object-fit: cover;
     object-fit: cover;
}

/*----------------------------------
  works-list__tag
-----------------------------------*/
.works-list__tag {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.625rem 1.25rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

/*----------------------------------
  works-list__heading
-----------------------------------*/
.works-list__heading {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5833333333;
  -webkit-margin-before: 1.8125rem;
          margin-block-start: 1.8125rem;
}
@media (max-width: 767px) {
  .works-list__heading {
    white-space: normal;
    text-overflow: clip;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    font-size: 0.875rem;
    line-height: 2;
    -webkit-margin-before: 0.5rem;
            margin-block-start: 0.5rem;
  }
}

/*----------------------------------
  works-list__text
-----------------------------------*/
.works-list__text p {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2.375;
  color: #626262;
  -webkit-margin-before: 1.1875rem;
          margin-block-start: 1.1875rem;
}
@media (max-width: 767px) {
  .works-list__text p {
    display: none;
  }
}

/*----------------------------------
  works-list__date
-----------------------------------*/
.works-list__date {
  -webkit-margin-before: 1.375rem;
          margin-block-start: 1.375rem;
}
@media (max-width: 767px) {
  .works-list__date {
    -webkit-margin-before: 0.3125rem;
            margin-block-start: 0.3125rem;
  }
}

/*----------------------------------
  works-list__btn
-----------------------------------*/
.works-list__btn {
  text-align: right;
  width: 92.9091%;
  margin-inline: auto;
  -webkit-margin-before: 3.125rem;
          margin-block-start: 3.125rem;
}
@media (max-width: 767px) {
  .works-list__btn {
    width: 79.201%;
    -webkit-margin-before: 1.875rem;
            margin-block-start: 1.875rem;
  }
}

/* ==================================================
  🎯 section-heading
================================================== */
.section-heading__ja {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  color: #001e63;
}
@media (max-width: 767px) {
  .section-heading__ja {
    font-size: 12px;
  }
}

.section-heading__en {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 1.25rem;
     -moz-column-gap: 1.25rem;
          column-gap: 1.25rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-margin-before: 0.5625rem;
          margin-block-start: 0.5625rem;
  font-family: "Oswald", sans-serif;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.0975609756;
  letter-spacing: -0.01em;
}
@media (max-width: 767px) {
  .section-heading__en {
    -webkit-column-gap: 10.5px;
       -moz-column-gap: 10.5px;
            column-gap: 10.5px;
    -webkit-margin-before: 0;
            margin-block-start: 0;
    font-size: 26px;
    line-height: 1.6;
  }
}
.section-heading__en::after {
  content: "";
  display: inline-block;
  width: 3.75rem;
  height: 0.125rem;
  background-color: #000;
}

/* ==================================================
  🎯 フッターを最下部に配置
================================================== */
.p-wrap {
  min-height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

/* ==================================================
  🎯 page-fv
================================================== */
.page-fv__media {
  position: relative;
  aspect-ratio: 1270/514;
  width: 88.1944444444%;
  height: auto;
  height: 32.125rem;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
@media (max-width: 767px) {
  .page-fv__media {
    aspect-ratio: 365/280;
    width: 97.3333333333%;
    height: 17.5rem;
  }
}

.page-fv__pic {
  display: block;
  width: 100%;
  height: inherit;
}

.page-fv__pic img {
  -o-object-fit: cover;
     object-fit: cover;
}

@media (max-width: 767px) {
  .page-fv__pic--detail {
    -webkit-padding-before: 4.9375rem;
            padding-block-start: 4.9375rem;
  }
  .page-fv__pic--detail img {
    aspect-ratio: 365/200;
  }
}

.page-fv__pickup {
  position: absolute;
  top: -0.0625rem;
  left: -0.0625rem;
  display: block;
  max-width: 31.25rem;
  width: 100%;
  background-color: #fff;
  -webkit-padding-start: 3.0625rem;
          padding-inline-start: 3.0625rem;
  -webkit-padding-after: 3.1875rem;
          padding-block-end: 3.1875rem;
}
@media (max-width: 767px) {
  .page-fv__pickup {
    max-width: 11.875rem;
    padding: 0.5rem 0 2.375rem 1.125rem;
  }
}

@media (max-width: 767px) {
  .page-fv__pickup--detail {
    max-width: 11.25rem;
    padding: 0.5rem 0.5rem 2.375rem;
  }
}

.page-fv__title {
  font-family: "Oswald", sans-serif;
  font-size: 6.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.01em;
}
@media (max-width: 767px) {
  .page-fv__title {
    font-size: 2.75rem;
  }
}

.page-fv__subtitle {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .page-fv__subtitle {
    font-size: 0.75rem;
    -webkit-margin-before: 0.1875rem;
            margin-block-start: 0.1875rem;
  }
}

/* breadcrumb start----------------------------------
  page-fv__breadcrumb
-----------------------------------*/
.page-fv__breadcrumb {
  max-width: 73.125rem;
  -webkit-margin-before: 1.1875rem;
          margin-block-start: 1.1875rem;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
  padding-inline: 0.625rem;
  text-align: right;
}
@media (max-width: 767px) {
  .page-fv__breadcrumb {
    -webkit-margin-before: 0.5625rem;
            margin-block-start: 0.5625rem;
  }
}

/* ==================================================
  🎯 subpage
================================================== */
.subpage-hero__nav-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6.25rem, 1fr));
  width: 73%;
  margin-inline: auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 767px) {
  .subpage-hero__nav-list {
    width: 92%;
  }
}

.subpage-hero__nav-list--lg {
  width: 80.2%;
}
@media (max-width: 767px) {
  .subpage-hero__nav-list--lg {
    width: 100%;
  }
}

.subpage-hero__nav-item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-column-gap: 0.6875rem;
     -moz-column-gap: 0.6875rem;
          column-gap: 0.6875rem;
  padding: 0.625rem;
  text-align: center;
}
@media (max-width: 767px) {
  .subpage-hero__nav-item a {
    -webkit-column-gap: 6px;
       -moz-column-gap: 6px;
            column-gap: 6px;
    padding-inline: 5px;
  }
}

.subpage-hero__nav-text {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.2;
  color: #141414;
}
@media (max-width: 767px) {
  .subpage-hero__nav-text {
    font-size: 12px;
  }
}

.subpage-hero__nav-icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #141414;
  aspect-ratio: 8.74/5;
  max-width: 0.54625rem;
  width: 100%;
  height: auto;
}

.subpage-hero__nav-icon svg {
  overflow: visible;
}

.subpage-hero__header {
  -webkit-margin-before: 5.875rem;
          margin-block-start: 5.875rem;
}
@media (max-width: 767px) {
  .subpage-hero__header {
    -webkit-margin-before: 46px;
            margin-block-start: 46px;
  }
}

.subpage-hero__title {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .subpage-hero__title {
    font-size: 18px;
    line-height: 2.0555555556;
  }
}

.subpage-hero__lead {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2.375;
  -webkit-margin-before: 1.875rem;
          margin-block-start: 1.875rem;
}
@media (max-width: 767px) {
  .subpage-hero__lead {
    font-size: 14px;
    line-height: 2.2857142857;
    -webkit-margin-before: 18px;
            margin-block-start: 18px;
  }
}

.about-page-fv__breadcrumb {
  padding-inline: 0.625rem;
}

/* ==================================================
  🎯 pagination
================================================== */
.layout-pagination {
  -webkit-margin-before: 4rem;
          margin-block-start: 4rem;
  width: 88.06%;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .layout-pagination {
    width: 100%;
    -webkit-margin-before: 2.6875rem;
            margin-block-start: 2.6875rem;
  }
}

.nav-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
}
@media (max-width: 767px) {
  .nav-links {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 0.375rem;
  }
}

.prev.page-numbers,
.next.page-numbers {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 1;
  width: 2.5rem;
  height: auto;
  background-color: #fff;
  color: #242424;
  border: none;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: "Oswald", sans-serif;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.prev.page-numbers:hover,
.next.page-numbers:hover {
  opacity: 0.7;
}
.prev.page-numbers.is-disabled,
.next.page-numbers.is-disabled {
  pointer-events: none;
  opacity: 0.5;
  cursor: not-allowed;
}
.prev.page-numbers.is-disabled:hover,
.next.page-numbers.is-disabled:hover {
  opacity: 0.5;
}

.wp-pagenavi .previouspostslink {
  color: #242424;
}
.wp-pagenavi .previouspostslink svg {
  fill: currentColor;
}

.wp-pagenavi .nextpostslink {
  color: #242424;
}
.wp-pagenavi .nextpostslink svg {
  fill: currentColor;
}

.page-numbers {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 1;
  width: 2.5rem;
  height: auto;
  background-color: #e9eeef;
  color: #001e63;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: "Oswald", sans-serif;
  border: none;
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.page-numbers:hover {
  opacity: 0.8;
}

.page-numbers.current {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 1;
  width: 2.5rem;
  height: auto;
  background-color: #1a2c68;
  color: #fff;
  font-size: 0.875rem;
  font-weight: bold;
  font-family: "Oswald", sans-serif;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.wp-pagenavi .pages {
  display: none;
}

.wp-pagenavi .first,
.wp-pagenavi .last {
  display: none;
}

.page-numbers.dots,
.page-numbers.prev,
.page-numbers.next {
  border: none;
}

/* ==================================================
  🎯 sticky-pane
================================================== */
.sticky-pane {
  position: sticky;
  top: 12.5rem;
}
@media (max-width: 900px) {
  .sticky-pane {
    position: static;
  }
}

@media (max-width: 900px) {
  .sticky-pane.sticky-pane--mobile-static {
    position: sticky;
  }
}
@media (max-width: 767px) {
  .sticky-pane.sticky-pane--mobile-static {
    position: static;
  }
}

/* ==================================================
  🎯 breadcrumb
================================================== */
.breadcrumb {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.9375rem;
  line-height: 1.3333333333;
  padding-inline: 2.125rem;
}
@media (max-width: 767px) {
  .breadcrumb {
    font-size: 10px;
    line-height: 1.3;
  }
}

.breadcrumb .home,
.breadcrumb .post,
.breadcrumb .post-works-archive {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.3333333333;
  color: #a9a9a9;
}
@media (max-width: 767px) {
  .breadcrumb .home,
  .breadcrumb .post,
  .breadcrumb .post-works-archive {
    font-size: 10px;
    line-height: 1.3;
  }
}

.breadcrumb .current-item {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  color: #000;
}

.breadcrumb__between {
  display: inline-block;
  width: 1.25rem;
  height: 0.0625rem;
  margin-inline: 0.5rem;
  background-color: #a9a9a9;
}

/* ==================================================
  🎯 header
================================================== */
.header {
  position: fixed;
  z-index: 101;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background-color: #fff;
  -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
}

.header__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  height: inherit;
}

/*----------------------------------
  ロゴ
-----------------------------------*/
.header__logo {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 111;
  width: 100%;
  max-width: 257px;
  color: #141414;
}
@media (max-width: 767px) {
  .header__logo {
    max-width: 114.72px;
  }
}

.header__logo.js-show {
  color: #fff;
}

.header__logo a svg {
  aspect-ratio: 257/80;
  width: 100%;
  height: auto;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
@media (max-width: 767px) {
  .header__logo a svg {
    aspect-ratio: 114.72/80;
  }
}

/*----------------------------------
  header__nav
-----------------------------------*/
.header__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-column-gap: 26px;
     -moz-column-gap: 26px;
          column-gap: 26px;
  background-color: #fff;
  width: 100%;
  height: inherit;
}
@media (max-width: 950px) {
  .header__nav {
    -webkit-column-gap: 10px;
       -moz-column-gap: 10px;
            column-gap: 10px;
  }
}
@media (max-width: 767px) {
  .header__nav {
    display: none;
  }
}

.header__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: inherit;
}

.header__list-item {
  height: inherit;
}

.header__list-item a {
  padding-inline: 25px;
  height: inherit;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: inherit;
}
@media (max-width: 1000px) {
  .header__list-item a {
    padding-inline: 15px;
  }
}
@media (max-width: 800px) {
  .header__list-item a {
    padding-inline: 7.5px;
  }
}

/*----------------------------------
  header__btn
-----------------------------------*/
.header__btn {
  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;
  -webkit-column-gap: 10px;
     -moz-column-gap: 10px;
          column-gap: 10px;
  padding-inline: 41px;
  height: inherit;
  background-color: #011950;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  color: #fff;
}
@media (max-width: 950px) {
  .header__btn {
    padding-inline: 15px;
  }
}

.header__contact-icon {
  font-size: 22px;
}

/*----------------------------------
  ハンバーガーボタン
-----------------------------------*/
.header__icon {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 110;
  aspect-ratio: 1;
  width: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  cursor: pointer;
}
@media (min-width: 768px) {
  .header__icon {
    display: none;
  }
}

.header__icon--bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 7px;
  width: 25px;
}

.header__icon--bar1 {
  width: 25px;
  height: 1px;
  background-color: #242424;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.header__icon--bar2 {
  width: 25px;
  height: 1px;
  background-color: #242424;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.header__icon--bar3 {
  width: 17px;
  height: 1px;
  background-color: #242424;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.header__icon.js-show .header__icon--bar1 {
  rotate: 45deg;
  translate: 0 1.5px;
  background-color: #fff;
}
.header__icon.js-show .header__icon--bar2 {
  rotate: -45deg;
  translate: 0 -6.5px;
  background-color: #fff;
}
.header__icon.js-show .header__icon--bar3 {
  display: none;
}

/* ==================================================
  ヘッダーのテキスト
================================================== */
.header__text {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3125;
  text-transform: uppercase;
}

/* ==================================================
  drawer
================================================== */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 101;
  height: 100dvh;
  background-color: #001135;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  clip-path: circle(0 at 100% 100%);
  -webkit-transition: clip-path 0.45s, opacity 0.25s ease, visibility 0s linear 0.45s;
  transition: clip-path 0.45s, opacity 0.25s ease, visibility 0s linear 0.45s;
}
.drawer.js-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  clip-path: circle(150vmax at 100% 100%);
  -webkit-transition: clip-path 0.45s ease, opacity 0.25s ease, visibility 0s;
  transition: clip-path 0.45s ease, opacity 0.25s ease, visibility 0s;
}

.drawer__inner {
  padding: 160px 10px;
  max-width: 600px;
  margin-inline: auto;
}

.drawer__navs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 50px;
  width: 77.465%;
  margin-inline: auto;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease 0.5s;
  transition: opacity 0.3s ease 0.5s;
}

.drawer.js-show .drawer__navs {
  opacity: 1;
}

.drawer__nav {
  width: 100%;
  border-top: 1px solid #011950;
}

.drawer__list a {
  display: block;
  padding-block: 12px;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3571428571;
  color: #fff;
  text-transform: uppercase;
  border-bottom: 1px solid #011950;
}

/* ==================================================
  🎯 main-fv
================================================== */
.main-fv {
  height: 100vh;
  min-height: 480px;
}

/*----------------------------------
  main-fv-inner
-----------------------------------*/
.main-fv-inner {
  position: relative;
  width: 100%;
  padding-inline: 80px 10px;
  margin-inline: auto;
  height: inherit;
  min-height: inherit;
}
@media (max-width: 1439px) and (min-width: 768px) {
  .main-fv-inner {
    padding-inline: 20px;
  }
}
@media (max-width: 767px) {
  .main-fv-inner {
    padding-inline: 10px;
  }
}

/*----------------------------------
  swiper
-----------------------------------*/
.main-fv__swiper-container,
.main-fv__swiper,
.main-fv__swiper-wrapper,
.main-fv__swiper-slide {
  position: relative;
  height: inherit;
  min-height: inherit;
}

.main-fv__swiper-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media (max-width: 1000px) {
  .main-fv__swiper-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.main-fv__swiper {
  margin: 0;
  height: inherit;
  min-height: inherit;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

@-webkit-keyframes fv-wipe-in {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}

@keyframes fv-wipe-in {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@-webkit-keyframes fv-img-enter {
  from {
    -webkit-transform: scale(1.06) translateX(-3%);
            transform: scale(1.06) translateX(-3%);
  }
  to {
    -webkit-transform: scale(1) translateX(0);
            transform: scale(1) translateX(0);
  }
}
@keyframes fv-img-enter {
  from {
    -webkit-transform: scale(1.06) translateX(-3%);
            transform: scale(1.06) translateX(-3%);
  }
  to {
    -webkit-transform: scale(1) translateX(0);
            transform: scale(1) translateX(0);
  }
}
.main-fv__swiper-slide {
  width: 100%;
  aspect-ratio: 1034/780;
  opacity: 1 !important;
  clip-path: inset(0 100% 0 0);
}
.main-fv__swiper-slide.swiper-slide-active {
  z-index: 2 !important;
  clip-path: inset(0 0 0 0);
  -webkit-animation: fv-wipe-in 1.6s cubic-bezier(0.215, 0.61, 0.355, 1) both !important;
          animation: fv-wipe-in 1.6s cubic-bezier(0.215, 0.61, 0.355, 1) both !important;
}
.main-fv__swiper-slide.swiper-slide-active img {
  -webkit-animation: fv-img-enter 1s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1) both !important;
          animation: fv-img-enter 1s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1) both !important;
}
.main-fv__swiper-slide.swiper-slide-active.is-fv-no-anim {
  -webkit-animation: none !important;
          animation: none !important;
}
.main-fv__swiper-slide.swiper-slide-active.is-fv-no-anim img {
  -webkit-animation: none !important;
          animation: none !important;
}
.main-fv__swiper-slide.is-fv-prev {
  z-index: 1 !important;
  clip-path: inset(0 0 0 0);
}
@media (max-width: 767px) {
  .main-fv__swiper-slide {
    aspect-ratio: 355/480;
    width: 100%;
  }
}

.main-fv__swiper-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1;
}

.main-fv__swiper-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: inherit;
  background-size: inherit;
  background-position: inherit;
  -webkit-filter: saturate(0.85) contrast(1.1);
          filter: saturate(0.85) contrast(1.1); /* 彩度-15% / コントラスト+10% */
  -webkit-transform: scale(1.02);
          transform: scale(1.02); /* filterで端が欠けるの防止 */
  z-index: -1; /* 背景として下に置く */
}

.main-fv__pic {
  height: inherit;
  min-height: inherit;
  overflow: hidden;
}
.main-fv__pic img {
  -o-object-fit: cover;
     object-fit: cover;
}

/*----------------------------------
  main-fv__pick-up
-----------------------------------*/
.main-fv__pick-up {
  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;
  height: inherit;
  width: 23.5207100592%;
}
@media (max-width: 1000px) {
  .main-fv__pick-up {
    width: 100%;
    height: auto;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    width: 94.368%;
    margin-inline: auto;
    padding-block: 32px 20px;
  }
}

.main-fv__pick-up-txt {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  inline-size: -webkit-fit-content;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 60px;
  font-weight: 700;
  line-height: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 45px;
  -webkit-padding-start: 57px;
          padding-inline-start: 57px;
  -webkit-padding-before: 5px;
          padding-block-start: 5px;
}
@media (max-width: 1439px) and (min-width: 768px) {
  .main-fv__pick-up-txt {
    gap: 7.5px;
  }
}
@media (max-width: 1000px) {
  .main-fv__pick-up-txt {
    -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb;
    inline-size: auto;
    -webkit-padding-start: 0;
            padding-inline-start: 0;
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}
@media (max-width: 767px) {
  .main-fv__pick-up-txt {
    font-size: 34px;
    gap: 15px;
    -webkit-padding-start: 0;
            padding-inline-start: 0;
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}

/* ==================================================
  🎯 top-about
================================================== */
.top-about {
  background: #dedede;
}

.layout-top-about {
  -webkit-margin-before: 80px;
          margin-block-start: 80px;
  padding-block: 130px;
}
@media (max-width: 767px) {
  .layout-top-about {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
    padding-block: 60px;
  }
}

/*----------------------------------
  top-about__contents
-----------------------------------*/
.top-about__contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 5.5%;
}
@media (max-width: 767px) {
  .top-about__contents {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

/*----------------------------------
  top-about__thumbnail
-----------------------------------*/
.top-about__thumbnail {
  aspect-ratio: 550/480;
  width: 50%;
  height: 480px;
}
@media (max-width: 767px) {
  .top-about__thumbnail {
    width: 100%;
  }
}

.top-about__thumbnail img {
  -o-object-fit: cover;
     object-fit: cover;
}

/*----------------------------------
  top-about__body
-----------------------------------*/
.top-about__body {
  width: 40%;
  padding-block: 3.125rem;
}
@media (max-width: 767px) {
  .top-about__body {
    width: 100%;
    padding-block: 20px;
  }
}

.top-about__title {
  font-family: "Oswald", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 2;
}
@media (max-width: 767px) {
  .top-about__title {
    font-size: 16px;
    font-weight: 700;
    line-height: 2.5;
  }
}

.top-about__text {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
  font-size: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
}
@media (max-width: 767px) {
  .top-about__text {
    -webkit-margin-before: 14px;
            margin-block-start: 14px;
    font-size: 14px;
    line-height: 2.2857142857;
  }
}

/*----------------------------------
  top-about__actions
-----------------------------------*/
.top-about__actions {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
  text-align: right;
}
@media (max-width: 767px) {
  .top-about__actions {
    -webkit-margin-before: 24px;
            margin-block-start: 24px;
  }
}

/* ==================================================
  🎯 service
================================================== */
.layout-service {
  padding-block: 136px;
}
@media (max-width: 767px) {
  .layout-service {
    padding-block: 57px;
  }
}

.service {
  background: #e7e7e7;
}

/*----------------------------------
  service__title
-----------------------------------*/
.service__title {
  text-align: right;
}
@media (max-width: 767px) {
  .service__title {
    text-align: left;
  }
}

/*----------------------------------
  service__cards
-----------------------------------*/
.service__cards {
  -webkit-margin-before: 55px;
          margin-block-start: 55px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px;
}
@media (max-width: 767px) {
  .service__cards {
    -webkit-margin-before: 27px;
            margin-block-start: 27px;
    grid-template-columns: 1fr;
    gap: 60px;
  }
}

/* ==================================================
  🎯 works
================================================== */
.top-works {
  background-color: #f0f0f0;
}

.works.works--archive {
  background-color: transparent;
}

/*----------------------------------
  Layout
-----------------------------------*/
.layout-top-works {
  padding-block: 9rem;
}
@media (max-width: 767px) {
  .layout-top-works {
    padding-block: 4.125rem;
  }
}

/*----------------------------------
  works__inner
-----------------------------------*/
@media (max-width: 767px) {
  .top-works__inner {
    padding-inline: 0;
  }
}

/*----------------------------------
  works__title
-----------------------------------*/
@media (max-width: 767px) {
  .top-works__title {
    padding-inline: 1.25rem;
  }
}

/*----------------------------------
  top-works__btn
-----------------------------------*/
.top-works__btn {
  text-align: right;
  width: 92.9091%;
  margin-inline: auto;
  -webkit-margin-before: 3.125rem;
          margin-block-start: 3.125rem;
}
@media (max-width: 767px) {
  .top-works__btn {
    width: 79.201%;
    -webkit-margin-before: 1.875rem;
            margin-block-start: 1.875rem;
  }
}

/* ==================================================
  🎯 top-news
================================================== */
.top-news {
  background: #dedede;
}

.layout-top-news {
  padding-block: 10.625rem 10rem;
}
@media (max-width: 767px) {
  .layout-top-news {
    padding-block: 4.1875rem 4.3125rem;
  }
}

/* ==================================================
  🎯 contact
================================================== */
.contact {
  overflow-x: hidden;
  height: 27.875rem;
}
@media (max-width: 900px) {
  .contact {
    height: auto;
  }
}

/*----------------------------------
  serviceページ
-----------------------------------*/
.layout-contact-service {
  -webkit-margin-before: 4.5rem;
          margin-block-start: 4.5rem;
}
@media (max-width: 767px) {
  .layout-contact-service {
    -webkit-margin-before: 2.375rem;
            margin-block-start: 2.375rem;
  }
}

/*----------------------------------
  newsページ
-----------------------------------*/
.contact-news {
  -webkit-margin-before: 7.5rem;
          margin-block-start: 7.5rem;
}
@media (max-width: 767px) {
  .contact-news {
    -webkit-margin-before: 5.0625rem;
            margin-block-start: 5.0625rem;
  }
}

/*----------------------------------
  news-syousaiページ
-----------------------------------*/
.layout-contact-news-syousai {
  -webkit-margin-before: 5.1875rem;
          margin-block-start: 5.1875rem;
}
@media (max-width: 767px) {
  .layout-contact-news-syousai {
    -webkit-margin-before: 4.25rem;
            margin-block-start: 4.25rem;
  }
}

.layout-contact-works {
  -webkit-margin-before: 7.4375rem;
          margin-block-start: 7.4375rem;
}
@media (max-width: 767px) {
  .layout-contact-works {
    -webkit-margin-before: 4.875rem;
            margin-block-start: 4.875rem;
  }
}

/*----------------------------------
  works-syousaiページ
-----------------------------------*/
.contact-works-syousai {
  -webkit-margin-before: 7.5rem;
          margin-block-start: 7.5rem;
}
@media (max-width: 767px) {
  .contact-works-syousai {
    -webkit-margin-before: 5.0625rem;
            margin-block-start: 5.0625rem;
  }
}

.contact__box {
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(#fff), color-stop(50%, #fff), color-stop(50%, #141414), to(#141414));
  background: linear-gradient(90deg, #fff 0%, #fff 50%, #141414 50%, #141414 100%);
}
@media (max-width: 900px) {
  .contact__box {
    background: -webkit-gradient(linear, left top, right top, from(#141414), to(#141414));
    background: linear-gradient(90deg, #141414 0%, #141414 100%);
    height: inherit;
  }
}

.contact__inner {
  height: inherit;
}

.contact__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: inherit;
}
@media (max-width: 900px) {
  .contact__body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

/*----------------------------------
  画像
-----------------------------------*/
.contact__media {
  aspect-ratio: 820/446;
  width: 100vw;
  -webkit-margin-start: calc(50% - 50vw);
          margin-inline-start: calc(50% - 50vw);
  min-width: 0;
}
@media (max-width: 900px) {
  .contact__media {
    aspect-ratio: 375/240;
    min-width: auto;
  }
}

.contact__pic {
  display: block;
  width: 100%;
  height: 100%;
}

.contact__pic img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*----------------------------------
  テキスト部分
-----------------------------------*/
.contact__panel {
  width: 100%;
  max-width: 28.125rem;
  background-color: #141414;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding-block: 1.25rem;
}
@media (max-width: 900px) {
  .contact__panel {
    width: 100%;
    max-width: none;
    -ms-flex-negative: 1;
        flex-shrink: 1;
    padding-block: 4.5625rem;
  }
}

.contact__panelInner {
  text-align: center;
}
@media (max-width: 900px) {
  .contact__panelInner {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
}

.contact__lead {
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.6666666667;
  color: #fff;
}
@media (max-width: 767px) {
  .contact__lead {
    font-size: 0.875rem;
    line-height: 2.1428571429;
    text-align: center;
  }
}

.contact__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.25rem;
  -webkit-margin-before: 1.8125rem;
          margin-block-start: 1.8125rem;
}
@media (max-width: 767px) {
  .contact__actions {
    -webkit-margin-before: 2.125rem;
            margin-block-start: 2.125rem;
  }
}

.contact__btn {
  padding: 1.4375rem 1.3125rem 1.3125rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  width: 100%;
  border: 0.0625rem solid #fff;
  border-radius: 0.25rem;
  -webkit-transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
@media (max-width: 767px) {
  .contact__btn {
    padding: 1.375rem 0.625rem 1.1875rem;
    gap: 0.625rem;
  }
}

.contact__btn i {
  font-size: 1.375rem;
  color: #fff;
}
@media (max-width: 767px) {
  .contact__btn i {
    font-size: 1rem;
  }
}

.contact__btnText {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  -webkit-transition: color 0.5s ease;
  transition: color 0.5s ease;
}
@media (max-width: 767px) {
  .contact__btnText {
    font-size: 1rem;
  }
}

.contact__btn.slide-btn {
  background-color: #141414;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.contact__btn.slide-btn::after {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: right;
          transform-origin: right;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  z-index: -1;
}

.contact__btn.slide-btn:hover .contact__btnText {
  color: #000;
}
.contact__btn.slide-btn:hover i {
  color: #000;
}

.contact__btn.slide-btn:hover::after {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  -webkit-transform-origin: left;
          transform-origin: left;
}

.contact__note {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 2.1428571429;
  color: #fff;
  -webkit-margin-before: 1rem;
          margin-block-start: 1rem;
}
@media (max-width: 767px) {
  .contact__note {
    font-size: 0.75rem;
    line-height: 2.5;
    -webkit-margin-before: 0.4375rem;
            margin-block-start: 0.4375rem;
    -webkit-padding-start: 0.125rem;
            padding-inline-start: 0.125rem;
  }
}

/* ==================================================
  🎯 footer
================================================== */
.footer {
  padding-block: 2.8125rem 3.625rem;
  background: #0b0b0b;
  -webkit-box-shadow: 0 -20px 40px rgba(0, 0, 0, 0.35);
          box-shadow: 0 -20px 40px rgba(0, 0, 0, 0.35);
}
@media (max-width: 767px) {
  .footer {
    padding-block: 53px 30px;
  }
}

/*----------------------------------
footer--contact-form
-----------------------------------*/
.page-id-2144 .footer {
  -webkit-margin-before: 7.5rem;
          margin-block-start: 7.5rem;
}
@media (max-width: 767px) {
  .page-id-2144 .footer {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}

/*----------------------------------
footer--confirm-page
-----------------------------------*/
.page-id-2142 .footer {
  -webkit-margin-before: 7.5rem;
          margin-block-start: 7.5rem;
}
@media (max-width: 767px) {
  .page-id-2142 .footer {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}

/*----------------------------------
footer--contact-03
-----------------------------------*/
.page-id-2146 .footer {
  -webkit-margin-before: 7.5rem;
          margin-block-start: 7.5rem;
}
@media (max-width: 767px) {
  .page-id-2146 .footer {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}

/*----------------------------------
footer--error-404
-----------------------------------*/
.error404 .footer {
  -webkit-margin-before: 7.625rem;
          margin-block-start: 7.625rem;
}
@media (max-width: 767px) {
  .error404 .footer {
    -webkit-margin-before: 45px;
            margin-block-start: 45px;
  }
}

/*----------------------------------
  footer__contents
-----------------------------------*/
.footer__contents {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 767px) {
  .footer__contents {
    grid-template-columns: 1fr;
    grid-template-areas: "top" "bottom";
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

/*----------------------------------
  footer__content
-----------------------------------*/
@media (max-width: 767px) {
  .footer__content {
    grid-area: bottom;
    -webkit-margin-before: 48px;
            margin-block-start: 48px;
  }
}

.footer__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 2.25rem;
     -moz-column-gap: 2.25rem;
          column-gap: 2.25rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-margin-before: 2.5625rem;
          margin-block-start: 2.5625rem;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
@media (max-width: 767px) {
  .footer__header {
    width: 83%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
    row-gap: 42px;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-margin-before: 0;
            margin-block-start: 0;
    margin-inline: auto;
  }
}

.footer__logo a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #fff;
  aspect-ratio: 257/80;
  max-width: 257px;
}
@media (max-width: 767px) {
  .footer__logo a {
    aspect-ratio: 114/80;
    width: 100%;
    max-width: 114px;
  }
}

.footer__logo a svg {
  width: 100%;
  height: auto;
}

/*----------------------------------
  footer__nav
-----------------------------------*/
.footer__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (max-width: 767px) {
  .footer__nav {
    display: block;
    grid-area: top;
    width: 77.465%;
    margin-inline: auto;
  }
}

.footer__navList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (max-width: 767px) {
  .footer__navList {
    row-gap: 4px;
  }
}

.footer__navItem a {
  display: block;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3125;
  color: #fff;
  text-transform: uppercase;
  padding-block: 0.625rem;
}
@media (max-width: 767px) {
  .footer__navItem a {
    font-size: 14px;
    line-height: 1.3571428571;
  }
}

.footer__bottom {
  width: 94.828%;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
@media (max-width: 767px) {
  .footer__bottom {
    width: 83%;
    margin-inline: auto;
  }
}

.footer__copyright {
  display: block;
  -webkit-margin-before: 1rem;
          margin-block-start: 1rem;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 2.5;
  color: #fff;
}
@media (max-width: 767px) {
  .footer__copyright {
    -webkit-margin-before: 34px;
            margin-block-start: 34px;
  }
}

/* ==================================================
  🎯 contact-form
================================================== */
.layout-page-contact {
  -webkit-margin-before: 3.125rem;
          margin-block-start: 3.125rem;
}
@media (max-width: 767px) {
  .layout-page-contact {
    -webkit-margin-before: 1.4375rem;
            margin-block-start: 1.4375rem;
  }
}

.contact-form__head p {
  font-size: 1rem;
  font-weight: 400;
  line-height: 2.375;
}
@media (max-width: 767px) {
  .contact-form__head p {
    font-size: 0.875rem;
  }
}

.contact-form__body {
  -webkit-margin-before: 5.875rem;
          margin-block-start: 5.875rem;
}
@media (max-width: 767px) {
  .contact-form__body {
    -webkit-margin-before: 1.9375rem;
            margin-block-start: 1.9375rem;
  }
}

.form__field + .form__field,
.form__acceptance {
  -webkit-margin-before: 2.5625rem;
          margin-block-start: 2.5625rem;
}
@media (max-width: 767px) {
  .form__field + .form__field,
  .form__acceptance {
    -webkit-margin-before: 2rem;
            margin-block-start: 2rem;
  }
}

.form__acceptance {
  display: none;
}

.form__required {
  color: #e20000;
}

.form__input::-webkit-input-placeholder {
  font-size: 0.875rem;
  font-weight: 400;
  color: #a9a9a9;
}

.form__input::-moz-placeholder {
  font-size: 0.875rem;
  font-weight: 400;
  color: #a9a9a9;
}

.form__input:-ms-input-placeholder {
  font-size: 0.875rem;
  font-weight: 400;
  color: #a9a9a9;
}

.form__input::-ms-input-placeholder {
  font-size: 0.875rem;
  font-weight: 400;
  color: #a9a9a9;
}

.form__input::placeholder,
.form__select.is-placeholder {
  font-size: 0.875rem;
  font-weight: 400;
  color: #a9a9a9;
}

.form__textarea {
  height: 10rem;
}

.form__input,
.form__select,
.form__textarea,
.form__acceptance-text {
  width: 100%;
  padding: 0.8125rem;
  border: 0.0625rem solid #e2e2e2;
  border-radius: 0.25rem;
}

.form__label {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.4285714286;
}

.form__note {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.4285714286;
  -webkit-margin-start: 1.3125rem;
          margin-inline-start: 1.3125rem;
}
@media (max-width: 380px) {
  .form__note {
    display: block;
    -webkit-margin-before: 0.625rem;
            margin-block-start: 0.625rem;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
  }
}

.form__acceptance-text {
  overflow-y: auto;
  height: 7.5rem;
}

.form__select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 1.1875rem 2.1875rem 0.9375rem 0.8125rem;
  cursor: pointer;
  background-color: #fff;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='6' viewBox='0 0 12 6'><path fill='%23000' d='M0 0l6 6 6-6z'/></svg>");
  background-position: right 0.75rem center;
  background-size: 0.75rem 0.375rem;
  background-repeat: no-repeat;
}

.form__data .wpcf7-form-control-wrap,
.form__data-select .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.form__data-radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  gap: 0.5rem;
}

.form__data,
.form__data-radio,
.form__data-select,
.form__data-check {
  margin-top: 0.5rem;
}

.wpcf7-list-item {
  margin: 0;
}

.wpcf7-form-control-wrap[data-name=radio-category] input[type=radio] {
  position: absolute;
  opacity: 0;
}

.wpcf7-form-control-wrap[data-name=radio-category] .wpcf7-list-item + .wpcf7-list-item {
  margin-left: 1.25rem;
}

.wpcf7-form-control-wrap[data-name=radio-category] .wpcf7-list-item-label {
  position: relative;
  display: inline-block;
  padding-left: 1rem;
}

.wpcf7-form-control-wrap[data-name=radio-category] .wpcf7-list-item-label::before {
  position: absolute;
  top: 56%;
  left: 0;
  width: 0.875rem;
  height: 0.875rem;
  content: "";
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  border: 0.0625rem solid #000;
  border-radius: 0.4375rem;
}

.wpcf7-form-control-wrap[data-name=radio-category] .wpcf7-list-item-label::after {
  position: absolute;
  top: 56%;
  left: 0.1875rem;
  width: 0.5rem;
  height: 0.5rem;
  content: "";
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  opacity: 0;
  border-radius: 0.25rem;
  background-color: #000;
}

.wpcf7-form-control-wrap[data-name=radio-category] .wpcf7-list-item input:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

.form__field--acceptance {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.form__field--acceptance .form__label {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.form__field--acceptance .form__label {
  font-size: 0.875rem;
}

.form__field--acceptance .form__data {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.3125rem;
  margin-top: 0;
}

.form__field--acceptance .form__data p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.form__field--acceptance .form__checkbox {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 1.0625rem;
  height: 1.0625rem;
  border: 0.0625rem solid #e2e2e2;
  border-radius: 0.1875rem;
  background: #fff;
  display: inline-block;
  vertical-align: middle;
}

.form__field--acceptance .form__checkbox:checked {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%23000' stroke-width='2' d='M1 4l3 3 7-6'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
}

.form__submit-button {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
  text-align: center;
}
@media (max-width: 767px) {
  .form__submit-button {
    -webkit-margin-before: 2.125rem;
            margin-block-start: 2.125rem;
  }
}

.form__submit-input {
  display: inline-block;
  padding: 1.25rem 11.4375rem 1.25rem;
  border-radius: 0.25rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
  cursor: pointer;
  background-color: #011950;
  color: #fff;
  border: 0.0625rem solid #87ceeb;
  -webkit-transition: background-position 0.3s ease;
  transition: background-position 0.3s ease;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='5' height='8.745' viewBox='0 0 5 8.745'><path d='M14.739,10.567,11.43,7.26a.622.622,0,0,1,0-.883.63.63,0,0,1,.885,0l3.749,3.746a.624.624,0,0,1,.018.862l-3.765,3.773a.625.625,0,0,1-.885-.883Z' transform='translate(-11.246 -6.196)' fill='%23fff'/></svg>");
  background-repeat: no-repeat;
  background-position: 62% center;
  background-size: 0.3125rem 0.5465625rem;
}
.form__submit-input:hover {
  background-position: 64% center;
}
@media (max-width: 767px) {
  .form__submit-input {
    font-size: 0.875rem;
    padding: 0.8125rem 5.875rem 0.625rem;
    background-position: 67% center;
  }
}
@media (max-width: 340px) {
  .form__submit-input {
    padding: 0.8125rem clamp(1rem, 12vw, 5.875rem) 0.625rem clamp(1rem, 12vw, 5.875rem);
    background-position: 80% center;
  }
}

.wpcf7-spinner {
  display: none;
}

/*----------------------------------
  layout-main
-----------------------------------*/
/*----------------------------------
  下層ページ
-----------------------------------*/
.layout-main--lower01 {
  -webkit-margin-before: 15rem;
          margin-block-start: 15rem;
}
@media (max-width: 767px) {
  .layout-main--lower01 {
    -webkit-margin-before: 160px;
            margin-block-start: 160px;
  }
}
@media (max-width: 500px) {
  .layout-main--lower01 {
    -webkit-margin-before: 111px;
            margin-block-start: 111px;
  }
}

.layout-main--lowe02 {
  -webkit-margin-before: 17.5rem;
          margin-block-start: 17.5rem;
}
@media (max-width: 767px) {
  .layout-main--lowe02 {
    -webkit-margin-before: 134px;
            margin-block-start: 134px;
  }
}

.layout-main--lower03 {
  -webkit-margin-before: 20.625rem;
          margin-block-start: 20.625rem;
}
@media (max-width: 767px) {
  .layout-main--lower03 {
    -webkit-margin-before: 121px;
            margin-block-start: 121px;
  }
}

.layout-main--lower04 {
  -webkit-margin-before: 12.5625rem;
          margin-block-start: 12.5625rem;
}
@media (max-width: 767px) {
  .layout-main--lower04 {
    -webkit-margin-before: 5.6875rem;
            margin-block-start: 5.6875rem;
  }
}

.layout-main--lower05 {
  -webkit-margin-before: 13.0625rem;
          margin-block-start: 13.0625rem;
}
@media (max-width: 767px) {
  .layout-main--lower05 {
    -webkit-margin-before: 5.6875rem;
            margin-block-start: 5.6875rem;
  }
}

/* ==================================================
  🎯 about-fv
================================================== */
/* ==================================================
  🎯 about-subpage-hero
================================================== */
.layout-about-subpage-hero {
  -webkit-margin-before: 3.125rem;
          margin-block-start: 3.125rem;
}
@media (max-width: 767px) {
  .layout-about-subpage-hero {
    -webkit-margin-before: 1.4375rem;
            margin-block-start: 1.4375rem;
  }
}

/* ==================================================
  🎯 philosophy
================================================== */
/*----------------------------------
  Layout
-----------------------------------*/
.layout-about-philosophy {
  -webkit-margin-before: 7rem;
          margin-block-start: 7rem;
}
@media (max-width: 767px) {
  .layout-about-philosophy {
    -webkit-margin-before: 5rem;
            margin-block-start: 5rem;
  }
}

/*----------------------------------
  about-philosophy__bg
-----------------------------------*/
.about-philosophy__bg {
  background: -webkit-gradient(linear, left top, right top, from(#f8f8f8), color-stop(68.0555555556%, #f8f8f8), color-stop(68.0555555556%, #fff), to(#fff));
  background: linear-gradient(90deg, #f8f8f8 0%, #f8f8f8 68.0555555556%, #fff 68.0555555556%, #fff 100%);
}
@media (max-width: 900px) {
  .about-philosophy__bg {
    background: #f8f8f8;
  }
}

.about-philosophy__contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 5.4545454545%;
}
@media (max-width: 900px) {
  .about-philosophy__contents {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
  }
}

.about-philosophy__content {
  width: 61.8181818182%;
  padding-block: 4.75rem 4.125rem;
}
@media (max-width: 900px) {
  .about-philosophy__content {
    padding-block: 57px;
    width: 100%;
  }
}
@media (max-width: 767px) {
  .about-philosophy__content {
    -webkit-padding-after: 1.4375rem;
            padding-block-end: 1.4375rem;
  }
}

.about-philosophy__text {
  -webkit-margin-before: 3.875rem;
          margin-block-start: 3.875rem;
}
@media (max-width: 767px) {
  .about-philosophy__text {
    -webkit-margin-before: 25px;
            margin-block-start: 25px;
  }
}

.about-philosophy__text p {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2.375;
}
@media (max-width: 767px) {
  .about-philosophy__text p {
    font-size: 14px;
    line-height: 2.2857142857;
  }
}

.about-philosophy__sign {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  text-align: right;
  -webkit-margin-before: 1.75rem;
          margin-block-start: 1.75rem;
}
@media (max-width: 767px) {
  .about-philosophy__sign {
    font-size: 14px;
    line-height: 2.2857142857;
    -webkit-margin-before: 17px;
            margin-block-start: 17px;
  }
}

.about-philosophy__sign-name {
  -webkit-margin-start: 0.75rem;
          margin-inline-start: 0.75rem;
}
@media (max-width: 767px) {
  .about-philosophy__sign-name {
    -webkit-margin-start: 11px;
            margin-inline-start: 11px;
  }
}

.about-philosophy__media {
  aspect-ratio: 360/560;
  width: 32.7272727273%;
  height: auto;
}
@media (max-width: 900px) {
  .about-philosophy__media {
    aspect-ratio: 335/306;
    width: 100%;
  }
}

.about-philosophy__media img {
  -o-object-fit: cover;
     object-fit: cover;
}

/*----------------------------------
  about-access
-----------------------------------*/
.layout-about-access {
  overflow-x: hidden;
  -webkit-margin-before: 12.875rem;
          margin-block-start: 12.875rem;
}
@media (max-width: 767px) {
  .layout-about-access {
    -webkit-margin-before: 85px;
            margin-block-start: 85px;
  }
}

.about-access__address {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.25rem;
  -webkit-margin-before: 1.1875rem;
          margin-block-start: 1.1875rem;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .about-access__address {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 8px;
    -webkit-margin-before: 20px;
            margin-block-start: 20px;
    font-size: 14px;
  }
}

.about-access__map {
  aspect-ratio: 1270/400;
  width: 100vw;
  -webkit-margin-end: calc(50vw - 50%);
          margin-inline-end: calc(50vw - 50%);
  -webkit-margin-before: 3.75rem;
          margin-block-start: 3.75rem;
  height: 25rem;
}
@media (max-width: 767px) {
  .about-access__map {
    -webkit-margin-before: 21px;
            margin-block-start: 21px;
    aspect-ratio: 355/400;
    min-height: auto;
  }
}

.about-access__map iframe {
  width: 100%;
  height: 100%;
}

/* ==================================================
  🎯 about-company-profile
================================================== */
.about-company-profile {
  background-color: #f8f8f8;
  padding-block: 76px 137px;
}
@media (max-width: 767px) {
  .about-company-profile {
    padding-block: 64px 80px;
  }
}

.layout-about-company-profile {
  -webkit-margin-before: 120px;
          margin-block-start: 120px;
}
@media (max-width: 767px) {
  .layout-about-company-profile {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}

.about-company-profile__tableWrap {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
}
@media (max-width: 767px) {
  .about-company-profile__tableWrap {
    -webkit-margin-before: 10px;
            margin-block-start: 10px;
  }
}

.about-company-profile__table {
  width: 100%;
  border-collapse: collapse;
}

.about-company-profile__row {
  border-bottom: 1px solid #e2e2e2;
}
@media (max-width: 767px) {
  .about-company-profile__row {
    display: block;
    padding-block: 13px;
  }
}

.about-company-profile__head,
.about-company-profile__data {
  padding-block: 28px;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 2.8125;
  text-align: left;
}
@media (max-width: 767px) {
  .about-company-profile__head,
  .about-company-profile__data {
    padding-block: 0;
    display: block;
    width: 100%;
    font-size: 14px;
    line-height: 2.5;
  }
}

.about-company-profile__head {
  width: 15.4545454545%;
  font-weight: 500;
}
@media (max-width: 767px) {
  .about-company-profile__head {
    width: 100%;
  }
}

.about-company-profile__data {
  width: auto;
  font-weight: 400;
}

@media (max-width: 767px) {
  .about-company-profile__list {
    -webkit-margin-before: 10px;
            margin-block-start: 10px;
  }
}

.about-company-profile__item {
  line-height: 1.4285714286;
}

@media (max-width: 767px) {
  .about-company-profile__item span {
    display: block;
  }
}

.about-company-profile__item:not(:first-child) {
  -webkit-margin-before: 21px;
          margin-block-start: 21px;
}
@media (max-width: 767px) {
  .about-company-profile__item:not(:first-child) {
    -webkit-margin-before: 10px;
            margin-block-start: 10px;
  }
}

/* ==================================================
  🎯 about-swiper
================================================== */
.about-swiper__swiper-container,
.about-swiper__swiper,
.about-swiper__swiper-wrapper,
.about-swiper__swiper-slide {
  position: relative;
}

.about-swiper__swiper-slide {
  position: relative;
  aspect-ratio: 480/400;
  width: 100%;
  max-width: 480px;
  height: auto;
}
@media (max-width: 767px) {
  .about-swiper__swiper-slide {
    aspect-ratio: 180/150;
    max-width: 180px;
  }
}

.about-swiper__swiper-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5); /* ← 0.4〜0.6で調整 */
  pointer-events: none;
}

.about-swiper__swiper-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 180, 255, 0.12); /* 青寄り */
  /* background: rgba(0, 255, 160, 0.10); */ /* 緑寄り（こっちに切替可） */
  mix-blend-mode: screen; /* ほんのり寒色ニュアンス */
  pointer-events: none;
}

.about-swiper__swiper-slide img {
  -o-object-fit: cover;
     object-fit: cover;
}

.swiper-button-prev,
.swiper-button-next,
.swiper-pagination-bullets.swiper-pagination-horizontal {
  top: unset;
  bottom: unset;
  left: unset;
  right: unset;
  margin: 0;
  padding: 0;
}

.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet {
  opacity: 1;
}

/* ==================================================
  🎯 about-contact
================================================== */
.layout-about-contact {
  -webkit-margin-before: 120px;
          margin-block-start: 120px;
}
@media (max-width: 767px) {
  .layout-about-contact {
    -webkit-margin-before: 79px;
            margin-block-start: 79px;
  }
}

/* ==================================================
  🎯 service-subpage-hero
================================================== */
.layout-service-subpage-hero {
  -webkit-margin-before: 3.125rem;
          margin-block-start: 3.125rem;
}
@media (max-width: 767px) {
  .layout-service-subpage-hero {
    -webkit-margin-before: 1.375rem;
            margin-block-start: 1.375rem;
  }
}

/* ==================================================
  🎯 service-list
================================================== */
.layout-service-list {
  -webkit-margin-before: 111px;
          margin-block-start: 111px;
}
@media (max-width: 767px) {
  .layout-service-list {
    -webkit-margin-before: 74px;
            margin-block-start: 74px;
  }
}

.service-block {
  overflow-x: hidden;
}

.layout-service-block--02 {
  -webkit-margin-before: 71px;
          margin-block-start: 71px;
}
@media (max-width: 767px) {
  .layout-service-block--02 {
    -webkit-margin-before: 17px;
            margin-block-start: 17px;
  }
}

.layout-service-block--03 {
  -webkit-margin-before: 71px;
          margin-block-start: 71px;
}
@media (max-width: 767px) {
  .layout-service-block--03 {
    -webkit-margin-before: 8px;
            margin-block-start: 8px;
  }
}

.service-block__bg {
  background: -webkit-gradient(linear, left top, right top, from(#f8f8f8), color-stop(50%, #f8f8f8), color-stop(50%, #fff), to(#fff));
  background: linear-gradient(90deg, #f8f8f8 0%, #f8f8f8 50%, #fff 50%, #fff 100%);
}
@media (max-width: 950px) {
  .service-block__bg {
    background: none;
    background: #f8f8f8;
  }
}

.service-block__top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
@media (max-width: 950px) {
  .service-block__top {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

/*----------------------------------
  テキスト部分
-----------------------------------*/
.service-block__content {
  width: 46.3636363636%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding-block: 70px;
}
@media (max-width: 950px) {
  .service-block__content {
    width: 100%;
    -ms-flex-negative: 1;
        flex-shrink: 1;
    padding-block: 53px 0;
  }
}

.service-block__content-inner {
  max-width: 400px;
}
@media (max-width: 950px) {
  .service-block__content-inner {
    max-width: none;
  }
}

.service-block__kicker {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
}
@media (max-width: 767px) {
  .service-block__kicker {
    gap: 9px;
  }
}

.service-block__num {
  font-family: "Oswald", sans-serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.5;
  color: #001e63;
}
@media (max-width: 767px) {
  .service-block__num {
    font-size: 32px;
    line-height: 1.875;
  }
}

.service-block__bar {
  display: block;
  aspect-ratio: 1/34;
  width: 1px;
  height: auto;
  background-color: #000;
}
@media (max-width: 767px) {
  .service-block__bar {
    aspect-ratio: 1/30;
  }
}

.service-block__title {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4285714286;
  -webkit-margin-before: 23px;
          margin-block-start: 23px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 767px) {
  .service-block__title {
    font-size: 20px;
    line-height: 2;
    -webkit-margin-before: 10px;
            margin-block-start: 10px;
  }
}

.service-block__lead {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 2.0909090909;
  -webkit-margin-before: 8px;
          margin-block-start: 8px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
@media (max-width: 767px) {
  .service-block__lead {
    font-size: 14px;
    line-height: 2.2857142857;
  }
}

/*----------------------------------
  画像
-----------------------------------*/
.service-block__media {
  aspect-ratio: 760/600;
  width: 100vh;
  -webkit-margin-end: calc(50% - 50vw);
          margin-inline-end: calc(50% - 50vw);
  height: 500px;
  min-width: 0;
}
@media (max-width: 950px) {
  .service-block__media {
    aspect-ratio: 355/223.33;
    width: 100%;
    height: auto;
    min-height: auto;
    -webkit-margin-before: 13px;
            margin-block-start: 13px;
  }
}

.service-block__picture {
  width: 100%;
  height: 100%;
}

.service-block__img {
  -o-object-fit: cover;
     object-fit: cover;
}

/*----------------------------------
  下層テキスト
-----------------------------------*/
.service-block__bottom {
  -webkit-margin-before: 26px;
          margin-block-start: 26px;
  -webkit-padding-after: 70px;
          padding-block-end: 70px;
}
@media (max-width: 950px) {
  .service-block__bottom {
    -webkit-margin-before: 7px;
            margin-block-start: 7px;
    -webkit-padding-after: 53px;
            padding-block-end: 53px;
  }
}

.service-block__featuresHead {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 18px;
}
@media (max-width: 767px) {
  .service-block__featuresHead {
    gap: 10px;
  }
}

.service-block__featuresEn {
  font-family: "Oswald", sans-serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.8181818182;
  letter-spacing: -0.03em;
}
@media (max-width: 767px) {
  .service-block__featuresEn {
    font-size: 18px;
    line-height: 2.2222222222;
  }
}

.service-block__featuresJa {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 3.3333333333;
  color: #626262;
}
@media (max-width: 767px) {
  .service-block__featuresJa {
    font-size: 10px;
    line-height: 4;
  }
}

.service-block__featuresBody {
  -webkit-margin-before: 5px;
          margin-block-start: 5px;
}

.service-block__text {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 2.375;
}
@media (max-width: 767px) {
  .service-block__text {
    font-size: 14px;
    line-height: 2.2857142857;
  }
}

/* ==================================================
  🎯news-archive-fv
================================================== */
@media (max-width: 767px) {
  .news-archive-fv .page-fv__pic {
    -webkit-padding-before: 4.9375rem;
            padding-block-start: 4.9375rem;
  }
}

@media (max-width: 767px) {
  .news-archive-fv .page-fv__pickup {
    -webkit-padding-start: 0.5rem;
            padding-inline-start: 0.5rem;
    max-width: 11.3125rem;
  }
}

/* ==================================================
  🎯 news-archive
================================================== */
.layout-news-archive {
  -webkit-margin-before: 3.5625rem;
          margin-block-start: 3.5625rem;
}
@media (max-width: 767px) {
  .layout-news-archive {
    -webkit-margin-before: 1.875rem;
            margin-block-start: 1.875rem;
  }
}

.bg-slide {
  position: relative;
  overflow: hidden;
}

/* 疑似要素で背景を作る */
.bg-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #f2e665;
  /* 初期位置：斜め下 */
  -webkit-transform: translate(-100%, 100%) rotate(-10deg);
          transform: translate(-100%, 100%) rotate(-10deg);
  -webkit-transition: -webkit-transform 0.8s ease;
  transition: -webkit-transform 0.8s ease;
  transition: transform 0.8s ease;
  transition: transform 0.8s ease, -webkit-transform 0.8s ease;
  z-index: 0;
}

/* 表示後 */
.bg-slide.is-show::before {
  -webkit-transform: translate(0, 0) rotate(0);
          transform: translate(0, 0) rotate(0);
}

/* 中身を前に出す */
.bg-slide__inner {
  position: relative;
  z-index: 1;
}

/* ==================================================
  🎯 news-detail
================================================== */
.news-detail {
  -webkit-padding-after: 2.25rem;
          padding-block-end: 2.25rem;
}
@media (max-width: 767px) {
  .news-detail {
    -webkit-padding-after: 32px;
            padding-block-end: 32px;
  }
}

.layout-two-column {
  display: grid;
  grid-template-columns: 1fr 18.75rem;
  gap: clamp(1.5rem, 5.5vw, 4.9375rem);
}
@media (max-width: 767px) {
  .layout-two-column {
    grid-template-columns: 1fr;
    gap: 80px;
  }
}

.news-detail__header {
  border-bottom: 0.0625rem solid #f2f2f2;
}
@media (max-width: 767px) {
  .news-detail__header {
    border: none;
  }
}

.news-detail__inner {
  width: min(66.25rem + 1.25rem * 2, 100%);
  padding-inline: 1.25rem;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .news-detail__inner {
    max-width: 600px;
  }
}

.news-detail__labels {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.25rem;
}
@media (max-width: 767px) {
  .news-detail__labels {
    gap: 6px;
  }
}

.news-detail__header-inner {
  -webkit-margin-before: 0.9375rem;
          margin-block-start: 0.9375rem;
}
@media (max-width: 767px) {
  .news-detail__header-inner {
    width: 100%;
    margin-inline: auto;
    -webkit-margin-before: 9px;
            margin-block-start: 9px;
  }
}
@media (max-width: 400px) {
  .news-detail__header-inner {
    max-width: 315px;
  }
}

.news-detail__content h1 {
  font-size: 1.625rem;
  font-weight: 500;
  line-height: 1.9230769231;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
@media (max-width: 767px) {
  .news-detail__content h1 {
    font-size: 18px;
    line-height: 1.6666666667;
  }
}

.news-detail__date {
  -webkit-margin-before: 0.625rem;
          margin-block-start: 0.625rem;
}
@media (max-width: 767px) {
  .news-detail__date {
    -webkit-margin-before: 5px;
            margin-block-start: 5px;
  }
}

.news-detail__media {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
  aspect-ratio: 680/380;
  width: 100%;
}
@media (max-width: 767px) {
  .news-detail__media {
    aspect-ratio: 315/176;
  }
}

.news-detail__pic {
  width: 100%;
  height: 100%;
}

.news-detail__media img {
  -o-object-fit: cover;
     object-fit: cover;
}

.news-detail__body {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
  padding-block: 1.25rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2.5rem;
}

.news-detail__body h2 {
  border-left: 0.1875rem solid #001e63;
  background-color: #f8f9f9;
  display: block;
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.8181818182;
  padding: 0.4375rem 0.625rem 0.0625rem;
}
@media (max-width: 767px) {
  .news-detail__body h2 {
    font-size: 16px;
    line-height: 2.5;
    padding: 1px 8px 1px;
  }
}

.news-detail__body p {
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
}
@media (max-width: 767px) {
  .news-detail__body p {
    font-size: 14px;
    line-height: 2.2857142857;
  }
}

.news-detail h3 {
  position: relative;
  border-bottom: 0.0625rem solid #e4e4e4;
  padding: 0.4375rem 0.625rem 0.0625rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.1;
}
@media (max-width: 767px) {
  .news-detail h3 {
    font-size: 14px;
    padding: 1px 8px 1px;
  }
}

.news-detail h3::before {
  content: "";
  position: absolute;
  display: block;
  top: 100%;
  left: 0;
  width: 16.875rem;
  height: 0.0625rem;
  background-color: #001e63;
}

.news-detail .news-detail__body ul {
  -webkit-padding-start: 1em;
          padding-inline-start: 1em;
}

.news-detail .news-detail__body ul li {
  position: relative;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .news-detail .news-detail__body ul li {
    font-size: 14px;
  }
}

.news-detail .news-detail__body ul li::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0.6em;
  right: 100%;
  aspect-ratio: 1;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  -webkit-margin-end: 0.3125rem;
          margin-inline-end: 0.3125rem;
  background-color: #001a70;
}

.news-detail__btn-wrap {
  -webkit-margin-before: 2.4375rem;
          margin-block-start: 2.4375rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 767px) {
  .news-detail__btn-wrap {
    -webkit-margin-before: 1px;
            margin-block-start: 1px;
    width: 94%;
    margin-inline: auto;
  }
}

.news-detail__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3125rem;
  padding: 0.79em 1.36em 0.86em 1.71em;
  padding: 0.8125rem 1.125rem 0.625rem 1.5rem;
  border: 0.0625rem solid #001e63;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  color: #001e63;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.news-detail__btn--left i {
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
.news-detail__btn--left:hover i {
  -webkit-transform: translateX(-0.3125rem);
          transform: translateX(-0.3125rem);
}

.news-detail__btn--right i {
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
.news-detail__btn--right:hover i {
  -webkit-transform: translateX(0.3125rem);
          transform: translateX(0.3125rem);
}

/* ==================================================
  🎯 サイドメニュー
================================================== */
.sidebar-latest__item + .sidebar-latest__item {
  border-top: 0.0625rem solid #e4e4e4;
}

.sidebar-latest__link {
  display: grid;
  grid-template-columns: 6.25rem 1.3fr;
  gap: clamp(1.125rem, 1.2vw, 1.125rem);
  padding-block: 1.125rem;
}

.sidebar-latest__thumb {
  aspect-ratio: 1;
  width: 100%;
}

.sidebar-latest__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.sidebar-latest__headline {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 2.2;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.sidebar-latest__date {
  -webkit-margin-before: clamp(0.1875rem, 1vw, 0.3125rem);
          margin-block-start: clamp(0.1875rem, 1vw, 0.3125rem);
}

.layout-sidebar-archive {
  -webkit-margin-before: 2.1875rem;
          margin-block-start: 2.1875rem;
}

.sidebar__inner-narrow {
  width: 88%;
  margin-inline: auto;
}
@media (max-width: 400px) {
  .sidebar__inner-narrow {
    max-width: 308px;
  }
}

.sidebar-archive__list li + li {
  border-top: 0.0625rem solid #e4e4e4;
}

.sidebar-archive__list a {
  display: block;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 2.1428571429;
  padding-block: 0.8125rem;
}

.sidebar-category__item + .sidebar-category__item {
  border-top: 0.0625rem solid #e4e4e4;
}

.sidebar-category__item a {
  display: block;
}

.news-detail__sidebar-title {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 2.1428571429;
  color: #fff;
  padding: 0.6875rem 0 0.5625rem 1.125rem;
  background-color: #001135;
  position: relative;
}
@media (max-width: 767px) {
  .news-detail__sidebar-title {
    -webkit-padding-start: 13px;
            padding-inline-start: 13px;
  }
}

@media (max-width: 767px) {
  .news-detail__sidebar-title::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 100%;
    width: 5px;
    height: 100%;
    background-color: #001135;
  }
}

@media (max-width: 767px) {
  .news-detail__sidebar-title::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 100%;
    width: 5px;
    height: 100%;
    background-color: #001135;
  }
}

.news-detail__sidebar-text {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 2.1428571429;
  padding-block: 0.8125rem;
}

/* ==================================================
  🎯 single-news
================================================== */
.layout-single-news-detail {
  -webkit-margin-before: 3.6875rem;
          margin-block-start: 3.6875rem;
}
@media (max-width: 767px) {
  .layout-single-news-detail {
    -webkit-margin-before: 1rem;
            margin-block-start: 1rem;
  }
}

/* ==================================================
  🎯 _works-archive
================================================== */
.layout-works-archive {
  -webkit-margin-before: 2.5625rem;
          margin-block-start: 2.5625rem;
}
@media (max-width: 767px) {
  .layout-works-archive {
    -webkit-margin-before: 1.375rem;
            margin-block-start: 1.375rem;
  }
}

.works-archive__layout {
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  grid-template-columns: minmax(8.25rem, 16.25rem) 1fr;
}
@media (max-width: 767px) {
  .works-archive__layout {
    grid-template-columns: 1fr;
  }
}

/*----------------------------------
  works__side
-----------------------------------*/
.works-archive__side {
  -webkit-padding-before: 1.0625rem;
          padding-block-start: 1.0625rem;
}
@media (max-width: 767px) {
  .works-archive__side {
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}

.works-archive__side-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.25rem;
}
@media (max-width: 767px) {
  .works-archive__side-inner {
    gap: 3.125rem;
  }
}

.works-archive__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4375rem;
  -webkit-padding-start: 0.9375rem;
          padding-inline-start: 0.9375rem;
}
@media (max-width: 767px) {
  .works-archive__nav {
    -webkit-padding-start: 1.25rem;
            padding-inline-start: 1.25rem;
    gap: 0.8125rem;
    width: 96%;
    margin-inline: auto;
  }
}

.works-archive__nav-title {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.6;
  color: #a9a9a9;
}
@media (max-width: 767px) {
  .works-archive__nav-title {
    font-size: 0.75rem;
    line-height: 1.5;
    -webkit-margin-before: 0;
            margin-block-start: 0;
    padding: 0.5rem;
  }
}

.works-archive__navList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8125rem;
}
@media (max-width: 767px) {
  .works-archive__navList {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0 clamp(5.5625rem, 6vw, 7.5rem);
  }
}
@media (max-width: 21.25rem) {
  .works-archive__navList {
    gap: 0 1.25rem;
  }
}

.works-archive__navItem a {
  display: block;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 2;
  color: #a9a9a9;
}
@media (max-width: 767px) {
  .works-archive__navItem a {
    font-size: 0.75rem;
    line-height: 1.5;
    padding: 0.5rem;
  }
}

.works-archive__nav-title a.is-active,
.works-archive__navItem a.is-active {
  color: #000;
}

.works-archive__nav-title {
  position: relative;
}

.works-archive__navMarker {
  position: absolute;
  top: 0.5em;
  right: calc(100% + 0.375rem);
  display: inline-block;
  aspect-ratio: 1/1;
  width: 0.5rem;
  height: auto;
  background-color: #001e63;
}
@media (max-width: 767px) {
  .works-archive__navMarker {
    top: 1em;
    right: 100%;
  }
}

/* 下層(archive)共通パーツレイアウト変更 */
.works-archive .works__list {
  border-left: 0.0625rem solid #e2e2e2;
}
@media (max-width: 767px) {
  .works-archive .works__list {
    border-left: none;
  }
}

.works-archive .works-list__card {
  width: 93%;
  border-bottom: 0.0625rem solid #e2e2e2;
  margin-inline: auto 0;
}
@media (max-width: 767px) {
  .works-archive .works-list__card {
    width: 88%;
    margin-inline: auto;
  }
}

.works-archive .works-list__card a {
  padding: 1rem 3.125rem 1.875rem 0;
  border: none;
}
@media (max-width: 767px) {
  .works-archive .works-list__card a {
    padding: 1.75rem 1.25rem 1.25rem 0;
  }
}

.works-archive .works-list__card + .works-list__card .works-list__link {
  padding-block: 1.875rem 1.75rem;
}
@media (max-width: 767px) {
  .works-archive .works-list__card + .works-list__card .works-list__link {
    padding-block: 1.1875rem 1.3125rem;
  }
}

.works-archive .works-list__link-inner {
  display: grid;
  grid-template-columns: 10rem 1fr;
  gap: clamp(0.9375rem, 2vw, 2rem);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media (max-width: 767px) {
  .works-archive .works-list__link-inner {
    grid-template-columns: 8.125rem 1fr;
  }
}

.works-archive .works-list__media {
  aspect-ratio: 1;
  max-width: 10rem;
  width: 100%;
}
@media (max-width: 767px) {
  .works-archive .works-list__media {
    aspect-ratio: 130/100;
  }
}

.works-archive .works-list__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 100%;
}

.works-archive .works-list__heading {
  font-size: 1.125rem;
  line-height: 1.7777777778;
  -webkit-margin-before: 1.6875rem;
          margin-block-start: 1.6875rem;
  -webkit-padding-after: 0.3em;
          padding-block-end: 0.3em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 767px) {
  .works-archive .works-list__heading {
    font-size: 0.875rem;
    line-height: 2;
    -webkit-margin-before: 0.375rem;
            margin-block-start: 0.375rem;
    -webkit-padding-after: 0.25em;
            padding-block-end: 0.25em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }
}

.works-archive .works-list__date {
  -webkit-margin-before: 0;
          margin-block-start: 0;
}
@media (max-width: 767px) {
  .works-archive .works-list__date {
    -webkit-margin-before: 0.1875rem;
            margin-block-start: 0.1875rem;
  }
}

/* ----------------------------------
  works-syosai-breadcrumb
-----------------------------------*/
.works-syosai-breadcrumb {
  max-width: 84.375rem;
  margin-inline: auto;
  text-align: right;
}
.layout-works-syosai {
  -webkit-margin-before: 3.75rem;
          margin-block-start: 3.75rem;
}
@media (max-width: 767px) {
  .layout-works-syosai {
    -webkit-margin-before: 1.8125rem;
            margin-block-start: 1.8125rem;
  }
}

@media (max-width: 767px) {
  .works-syosai__inner.inner {
    padding-inline: 1.875rem;
  }
}

.works-syosai__tag {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.625rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.works-syosai__title {
  -webkit-margin-before: 0.875rem;
          margin-block-start: 0.875rem;
  font-size: 1.625rem;
  font-weight: 500;
  line-height: 1.9230769231;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 767px) {
  .works-syosai__title {
    -webkit-margin-before: 0.625rem;
            margin-block-start: 0.625rem;
    font-size: 1.125rem;
    line-height: 1.6666666667;
  }
}

.works-syosai__date {
  -webkit-margin-before: 0.6875rem;
          margin-block-start: 0.6875rem;
}
@media (max-width: 767px) {
  .works-syosai__date {
    -webkit-margin-before: 0.3125rem;
            margin-block-start: 0.3125rem;
  }
}

.works-syosai__media {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
  aspect-ratio: 840/471;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .works-syosai__media {
    -webkit-margin-before: 2.4375rem;
            margin-block-start: 2.4375rem;
    aspect-ratio: 315/176;
  }
}
.works-syosai__media img {
  -o-object-fit: cover;
     object-fit: cover;
}

.works-syosai__body {
  -webkit-margin-before: 2.375rem;
          margin-block-start: 2.375rem;
  width: 81%;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .works-syosai__body {
    -webkit-margin-before: 2.25rem;
            margin-block-start: 2.25rem;
    width: 100%;
  }
}

.detail-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.25rem;
}

.detail-content h2 {
  border-left: 0.1875rem solid #001e63;
  background-color: #f8f9f9;
  display: block;
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.8181818182;
  padding: 0.4375rem 0.625rem 0.0625rem;
}
@media (max-width: 767px) {
  .detail-content h2 {
    font-size: 1rem;
    line-height: 2.5;
    padding: 0.0625rem 0.5rem 0.0625rem;
  }
}

.detail-content h3 {
  position: relative;
  border-bottom: 0.0625rem solid #e4e4e4;
  padding: 0.4375rem 0.625rem 0.0625rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.1;
}
@media (max-width: 767px) {
  .detail-content h3 {
    font-size: 0.875rem;
    padding: 0.0625rem 0.5rem 0.0625rem;
  }
}

.detail-content h3::before {
  content: "";
  position: absolute;
  display: block;
  top: 100%;
  left: 0;
  width: 16.875rem;
  height: 0.0625rem;
  background-color: #001e63;
}

.detail-content p {
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .detail-content p {
    font-size: 0.875rem;
    line-height: 2.2857142857;
  }
}
@media (max-width: 767px) {
  .detail-content {
    -webkit-margin-before: 1.875rem;
            margin-block-start: 1.875rem;
  }
}

.detail-content p + p {
  -webkit-margin-before: 1.875rem;
          margin-block-start: 1.875rem;
}
@media (max-width: 767px) {
  .detail-content p + p {
    -webkit-margin-before: 2.25rem;
            margin-block-start: 2.25rem;
  }
}

.detail-content ul {
  -webkit-margin-before: 2.25rem;
          margin-block-start: 2.25rem;
  -webkit-padding-start: 1rem;
          padding-inline-start: 1rem;
}
@media (max-width: 767px) {
  .detail-content ul {
    -webkit-margin-before: 2.625rem;
            margin-block-start: 2.625rem;
  }
}

.detail-content ul li {
  position: relative;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .detail-content ul li {
    font-size: 0.875rem;
  }
}

.detail-content ul li::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0.6rem;
  right: 100%;
  aspect-ratio: 1;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  -webkit-margin-end: 0.3125rem;
          margin-inline-end: 0.3125rem;
  background-color: #001a70;
}

.works-syosai__btn-wrap {
  -webkit-margin-before: 4rem;
          margin-block-start: 4rem;
  text-align: center;
}
@media (max-width: 767px) {
  .works-syosai__btn-wrap {
    -webkit-margin-before: 2.6875rem;
            margin-block-start: 2.6875rem;
  }
}

/* ==================================================
  🎯 contact-03
================================================== */
.layout-contact-03 {
  -webkit-margin-before: 3.8125rem;
          margin-block-start: 3.8125rem;
}
@media (max-width: 767px) {
  .layout-contact-03 {
    -webkit-margin-before: 5.9375rem;
            margin-block-start: 5.9375rem;
  }
}

.contact-03__title {
  font-family: "Oswald", sans-serif;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.25;
  color: #000;
}
@media (max-width: 767px) {
  .contact-03__title {
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

.contact-03__content {
  -webkit-margin-before: 1.3125rem;
          margin-block-start: 1.3125rem;
}
@media (max-width: 767px) {
  .contact-03__content {
    -webkit-margin-before: 0.375rem;
            margin-block-start: 0.375rem;
  }
}

.contact-03__lead {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.1111111111;
  color: #000;
}
@media (max-width: 767px) {
  .contact-03__lead {
    font-size: 0.875rem;
    line-height: 2.7142857143;
  }
}

.contact-03__text {
  font-size: 1rem;
  font-weight: 400;
  line-height: 2.375;
  color: #000;
}
@media (max-width: 767px) {
  .contact-03__text {
    font-size: 0.875rem;
    line-height: 2.2857142857;
  }
}

.contact-03__text--first {
  -webkit-margin-before: 1.75rem;
          margin-block-start: 1.75rem;
}
@media (max-width: 767px) {
  .contact-03__text--first {
    -webkit-margin-before: 0.875rem;
            margin-block-start: 0.875rem;
  }
}

.contact-03__btn-wrap {
  text-align: center;
  -webkit-margin-before: 2rem;
          margin-block-start: 2rem;
}

/* ==================================================
  🎯 page-confirm（問い合わせ確認）
================================================== */
.layout-page-confirm {
  -webkit-margin-before: 3.25rem;
          margin-block-start: 3.25rem;
}
@media (max-width: 767px) {
  .layout-page-confirm {
    -webkit-margin-before: 1.5625rem;
            margin-block-start: 1.5625rem;
  }
}

.page-confirm__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.9375rem;
  -webkit-margin-before: 5.4375rem;
          margin-block-start: 5.4375rem;
}
@media (max-width: 767px) {
  .page-confirm__list {
    gap: 1.1875rem;
    -webkit-margin-before: 1.6875rem;
            margin-block-start: 1.6875rem;
  }
}

.page-confirm__item {
  display: grid;
  grid-template-columns: minmax(-webkit-min-content, 11rem) 1fr;
  grid-template-columns: minmax(min-content, 11rem) 1fr;
  gap: 1rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media (max-width: 767px) {
  .page-confirm__item {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

.page-confirm__term {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: -0.001em;
  color: #000;
}

.page-confirm__required {
  color: #e03c3c;
  -webkit-margin-start: 0.125rem;
          margin-inline-start: 0.125rem;
}

.page-confirm__definition p {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 2;
  letter-spacing: -0.001em;
  color: #000;
  word-break: break-all;
}

.page-confirm__term p,
.page-confirm__definition p {
  margin: 0;
}

.page-confirm__text {
  font-size: 1rem;
  font-weight: 400;
  line-height: 2.375;
}
@media (max-width: 767px) {
  .page-confirm__text {
    font-size: 0.875rem;
  }
}

.page-confirm__buttons {
  -webkit-margin-before: 2.1875rem;
          margin-block-start: 2.1875rem;
  width: 100%;
}

.page-confirm__buttons p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  gap: clamp(1.438rem, 0.227rem + 5.164vi, 4.875rem);
}
.page-confirm__buttons p br {
  display: none; /* CF7 の改行が flex レイアウトを崩すため */
}

.contact__submit-input,
.contact__back-button {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
  width: 0; /* flex で均等幅にするため */
}

.contact__submit-input {
  display: inline-block;
  padding: 1.25rem 0.625rem 1.125rem;
  border-radius: 0.25rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
  cursor: pointer;
  background-color: #011950;
  color: #fff;
  border: 0.125rem solid #011950;
  -webkit-transition: background-position 0.3s ease;
  transition: background-position 0.3s ease;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='5' height='8.745' viewBox='0 0 5 8.745'><path d='M14.739,10.567,11.43,7.26a.622.622,0,0,1,0-.883.63.63,0,0,1,.885,0l3.749,3.746a.624.624,0,0,1,.018.862l-3.765,3.773a.625.625,0,0,1-.885-.883Z' transform='translate(-11.246 -6.196)' fill='%23fff'/></svg>");
  background-repeat: no-repeat;
  background-position: calc(50% + 2.8125rem) center;
  background-size: 0.3125rem 0.5465625rem;
}
.contact__submit-input:hover {
  background-position: calc(50% + 3.125rem) center;
}
@media (max-width: 767px) {
  .contact__submit-input {
    font-size: 0.875rem;
    padding: 0.8125rem clamp(1rem, -0.074rem + 5.369vi, 2.5rem) 0.625rem clamp(1rem, -0.074rem + 5.369vi, 2.5rem);
  }
}

.contact__back-button {
  display: inline-block;
  padding: 1.25rem 0.625rem 1.25rem;
  border-radius: 0.25rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
  cursor: pointer;
  background-color: #fff;
  color: #011950;
  border: 0.0625rem solid #011950;
  -webkit-transition: background-position 0.3s ease;
  transition: background-position 0.3s ease;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='5' height='8.745' viewBox='0 0 5 8.745'><path d='M12.754,10.567,16.063,7.26a.622.622,0,0,0,0-.883.63.63,0,0,0-.885,0l-3.749,3.746a.624.624,0,0,0-.018.862l3.765,3.773a.625.625,0,1,0,.885-.883Z' transform='translate(-11.246 -6.196)' fill='%23011950'/></svg>");
  background-repeat: no-repeat;
  background-position: calc(50% - 1.5625rem) center;
  background-size: 0.3125rem 0.5465625rem;
}
.contact__back-button:hover {
  background-position: calc(50% - 1.875rem) center;
}
@media (max-width: 767px) {
  .contact__back-button {
    font-size: 0.875rem;
    padding: 0.8125rem clamp(1rem, -0.074rem + 5.369vi, 2.5rem) 0.625rem clamp(1rem, -0.074rem + 5.369vi, 2.5rem);
  }
}

/* ==================================================
  🎯 error-404
================================================== */
.layout-error-fv {
  overflow-x: hidden;
}

.error-fv__inner.inner {
  position: relative;
}
@media (max-width: 767px) {
  .error-fv__inner.inner {
    padding-inline: 10px;
  }
}

.error-fv__img-wrap {
  position: relative;
}

.error-fv__img-inner {
  aspect-ratio: 1270/600;
  width: 100vw;
  -webkit-margin-end: calc(50% - 50vw);
          margin-inline-end: calc(50% - 50vw);
  height: 37.5rem;
}
@media (max-width: 767px) {
  .error-fv__img-inner {
    aspect-ratio: 365/243;
    height: 15.1875rem;
  }
}

.error-fv__pic {
  display: block;
  width: 100%;
  height: inherit;
}

.error-fv__pic img {
  -o-object-fit: cover;
     object-fit: cover;
}

.error-fv__title-wrap {
  position: absolute;
  top: 29%;
  right: 12%;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media (max-width: 767px) {
  .error-fv__title-wrap {
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}

.error-fv__content-wrap {
  position: absolute;
  top: 49%;
  right: 5.5%;
  max-width: none;
  width: auto;
}
@media (max-width: 767px) {
  .error-fv__content-wrap {
    max-width: 37.5rem;
    position: static;
    -webkit-transform: none;
            transform: none;
    padding-block: 2.1875rem;
  }
}

.error-fv__title {
  font-family: "Oswald", sans-serif;
  font-size: 4.375rem;
  font-weight: 700;
  line-height: 1.4857142857;
  color: #fff;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .error-fv__title {
    font-size: 2.1875rem;
    line-height: 1.4857142857;
  }
}

.error-fv__lead {
  font-size: 1rem;
  font-weight: 400;
  line-height: 2.375;
  color: #fff;
}
@media (max-width: 767px) {
  .error-fv__lead {
    font-size: 0.875rem;
    line-height: 2.2857142857;
    color: #000;
    white-space: normal;
    margin-inline: auto;
    width: 94%;
  }
}

.error-fv__btn-wrap {
  -webkit-margin-before: 0.5625rem;
          margin-block-start: 0.5625rem;
}
@media (max-width: 980px) {
  .error-fv__btn-wrap {
    text-align: center;
  }
}
@media (max-width: 767px) {
  .error-fv__btn-wrap {
    -webkit-margin-before: 2rem;
            margin-block-start: 2rem;
  }
}

.error-fv__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
  padding: 0.75rem 1.625rem 0.75rem 1.75rem;
  background-color: transparent;
  border: 0.0625rem solid #fff;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  color: #fff;
  -webkit-transition: background-color 0.3s ease, color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease;
}
@media (max-width: 767px) {
  .error-fv__btn {
    -webkit-padding-after: 0.625rem;
            padding-block-end: 0.625rem;
    border-color: #011950;
    color: #011950;
  }
}
.error-fv__btn:hover i {
  -webkit-transform: translateX(-0.3125rem);
          transform: translateX(-0.3125rem);
}

.error-fv__btn i {
  font-size: 0.5625rem;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

/* ==================================================
  🎯 post
================================================== */
.post .tag-wrap {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
}

.post .layout-main {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
}

.post .news__main {
  border-left: none;
  width: 100%;
}

.post .news__list {
  -webkit-margin-start: 0;
          margin-inline-start: 0;
}

/* ==================================================
  🎯 category-news
================================================== */