@charset "UTF-8";
/* font
-----------------------------------------------------*/
/* Windows など Hiragino が無い環境向け */
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/NotoSansJP-Regular.woff2") format("woff2"), url("../fonts/NotoSansJP-Regular.woff") format("woff");
}
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/NotoSansJP-Bold.woff2") format("woff2"), url("../fonts/NotoSansJP-Bold.woff") format("woff");
}
/* ZERO PRESSURE RECOVERY 用(外部リクエストを減らすためローカルに置く) */
@font-face {
  font-family: "Roboto Static";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/Roboto-Bold.woff2") format("woff2");
}
/* mixin var
-----------------------------------------------------*/
/* reset
-----------------------------------------------------*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

img {
  vertical-align: top;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  -webkit-font-smoothing: antialiased;
}

body {
  line-height: 1;
}

article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block;
}

ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help;
}

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #dfdfdf;
  margin: 1em 0;
  padding: 0;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

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

/* html
-----------------------------------------------------*/
html {
  font-size: 62.5%;
}

body {
  color: #333333;
  font: 1.6rem/1.8 "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
  font-weight: 400;
  overflow-wrap: break-word;
  word-break: break-word;
  overflow-x: hidden;
}
@media (max-width: 767px) {
  body {
    font-size: 1.4rem;
  }
}

/* link
-----------------------------------------------------*/
a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s;
}

/*flex
-----------------------------------------------------*/
.flex {
  display: flex;
}
@media (max-width: 1199px) {
  .flex-xl {
    display: flex !important;
  }
}
@media (max-width: 1023px) {
  .flex-lg {
    display: flex !important;
  }
}
@media (max-width: 767px) {
  .flex-md {
    display: flex !important;
  }
}
@media (max-width: 575px) {
  .flex-sm {
    display: flex !important;
  }
}

.justify-start {
  justify-content: start;
}
@media (max-width: 1199px) {
  .justify-start-xl {
    justify-content: start !important;
  }
}
@media (max-width: 1023px) {
  .justify-start-lg {
    justify-content: start !important;
  }
}
@media (max-width: 767px) {
  .justify-start-md {
    justify-content: start !important;
  }
}
@media (max-width: 575px) {
  .justify-start-sm {
    justify-content: start !important;
  }
}

.justify-center {
  justify-content: center;
}
@media (max-width: 1199px) {
  .justify-center-xl {
    justify-content: center !important;
  }
}
@media (max-width: 1023px) {
  .justify-center-lg {
    justify-content: center !important;
  }
}
@media (max-width: 767px) {
  .justify-center-md {
    justify-content: center !important;
  }
}
@media (max-width: 575px) {
  .justify-center-sm {
    justify-content: center !important;
  }
}

.justify-between {
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .justify-between-xl {
    justify-content: space-between !important;
  }
}
@media (max-width: 1023px) {
  .justify-between-lg {
    justify-content: space-between !important;
  }
}
@media (max-width: 767px) {
  .justify-between-md {
    justify-content: space-between !important;
  }
}
@media (max-width: 575px) {
  .justify-between-sm {
    justify-content: space-between !important;
  }
}

.align-items-center {
  align-items: center;
}
@media (max-width: 1199px) {
  .align-items-center-xl {
    align-items: center !important;
  }
}
@media (max-width: 1023px) {
  .align-items-center-lg {
    align-items: center !important;
  }
}
@media (max-width: 767px) {
  .align-items-center-md {
    align-items: center !important;
  }
}
@media (max-width: 575px) {
  .align-items-center-sm {
    align-items: center !important;
  }
}

.flex-wrap {
  flex-wrap: wrap;
}
@media (max-width: 1199px) {
  .flex-wrap-xl {
    flex-wrap: wrap !important;
  }
}
@media (max-width: 1023px) {
  .flex-wrap-lg {
    flex-wrap: wrap !important;
  }
}
@media (max-width: 767px) {
  .flex-wrap-md {
    flex-wrap: wrap !important;
  }
}
@media (max-width: 575px) {
  .flex-wrap-sm {
    flex-wrap: wrap !important;
  }
}

/*font-size
-----------------------------------------------------*/
.fs-10 {
  font-size: 1rem;
}

.fs-11 {
  font-size: 1.1rem;
}

.fs-12 {
  font-size: 1.2rem;
}

.fs-13 {
  font-size: 1.3rem;
}

.fs-14 {
  font-size: 1.4rem;
}

.fs-15 {
  font-size: 1.5rem;
}

.fs-16 {
  font-size: 1.6rem;
}

.fs-17 {
  font-size: 1.7rem;
}

.fs-18 {
  font-size: 1.8rem;
}

.fs-19 {
  font-size: 1.9rem;
}

.fs-20 {
  font-size: 2rem;
}

.fs-21 {
  font-size: 2.1rem;
}

.fs-22 {
  font-size: 2.2rem;
}

.fs-23 {
  font-size: 2.3rem;
}

.fs-24 {
  font-size: 2.4rem;
}

.fs-25 {
  font-size: 2.5rem;
}

.fs-26 {
  font-size: 2.6rem;
}

.fs-27 {
  font-size: 2.7rem;
}

.fs-28 {
  font-size: 2.8rem;
}

.fs-29 {
  font-size: 2.9rem;
}

.fs-30 {
  font-size: 3rem;
}

@media (max-width: 1199px) {
  .fs-10-xl {
    font-size: 1rem !important;
  }
  .fs-11-xl {
    font-size: 1.1rem !important;
  }
  .fs-12-xl {
    font-size: 1.2rem !important;
  }
  .fs-13-xl {
    font-size: 1.3rem !important;
  }
  .fs-14-xl {
    font-size: 1.4rem !important;
  }
  .fs-15-xl {
    font-size: 1.5rem !important;
  }
  .fs-16-xl {
    font-size: 1.6rem !important;
  }
  .fs-17-xl {
    font-size: 1.7rem !important;
  }
  .fs-18-xl {
    font-size: 1.8rem !important;
  }
  .fs-19-xl {
    font-size: 1.9rem !important;
  }
  .fs-20-xl {
    font-size: 2rem !important;
  }
  .fs-21-xl {
    font-size: 2.1rem !important;
  }
  .fs-22-xl {
    font-size: 2.2rem !important;
  }
  .fs-23-xl {
    font-size: 2.3rem !important;
  }
  .fs-24-xl {
    font-size: 2.4rem !important;
  }
  .fs-25-xl {
    font-size: 2.5rem !important;
  }
  .fs-26-xl {
    font-size: 2.6rem !important;
  }
  .fs-27-xl {
    font-size: 2.7rem !important;
  }
  .fs-28-xl {
    font-size: 2.8rem !important;
  }
  .fs-29-xl {
    font-size: 2.9rem !important;
  }
  .fs-30-xl {
    font-size: 3rem !important;
  }
}
@media (max-width: 1023px) {
  .fs-10-lg {
    font-size: 1rem !important;
  }
  .fs-11-lg {
    font-size: 1.1rem !important;
  }
  .fs-12-lg {
    font-size: 1.2rem !important;
  }
  .fs-13-lg {
    font-size: 1.3rem !important;
  }
  .fs-14-lg {
    font-size: 1.4rem !important;
  }
  .fs-15-lg {
    font-size: 1.5rem !important;
  }
  .fs-16-lg {
    font-size: 1.6rem !important;
  }
  .fs-17-lg {
    font-size: 1.7rem !important;
  }
  .fs-18-lg {
    font-size: 1.8rem !important;
  }
  .fs-19-lg {
    font-size: 1.9rem !important;
  }
  .fs-20-lg {
    font-size: 2rem !important;
  }
  .fs-21-lg {
    font-size: 2.1rem !important;
  }
  .fs-22-lg {
    font-size: 2.2rem !important;
  }
  .fs-23-lg {
    font-size: 2.3rem !important;
  }
  .fs-24-lg {
    font-size: 2.4rem !important;
  }
  .fs-25-lg {
    font-size: 2.5rem !important;
  }
  .fs-26-lg {
    font-size: 2.6rem !important;
  }
  .fs-27-lg {
    font-size: 2.7rem !important;
  }
  .fs-28-lg {
    font-size: 2.8rem !important;
  }
  .fs-29-lg {
    font-size: 2.9rem !important;
  }
  .fs-30-lg {
    font-size: 3rem !important;
  }
}
@media (max-width: 767px) {
  .fs-10-md {
    font-size: 1rem !important;
  }
  .fs-11-md {
    font-size: 1.1rem !important;
  }
  .fs-12-md {
    font-size: 1.2rem !important;
  }
  .fs-13-md {
    font-size: 1.3rem !important;
  }
  .fs-14-md {
    font-size: 1.4rem !important;
  }
  .fs-15-md {
    font-size: 1.5rem !important;
  }
  .fs-16-md {
    font-size: 1.6rem !important;
  }
  .fs-17-md {
    font-size: 1.7rem !important;
  }
  .fs-18-md {
    font-size: 1.8rem !important;
  }
  .fs-19-md {
    font-size: 1.9rem !important;
  }
  .fs-20-md {
    font-size: 2rem !important;
  }
  .fs-21-md {
    font-size: 2.1rem !important;
  }
  .fs-22-md {
    font-size: 2.2rem !important;
  }
  .fs-23-md {
    font-size: 2.3rem !important;
  }
  .fs-24-md {
    font-size: 2.4rem !important;
  }
  .fs-25-md {
    font-size: 2.5rem !important;
  }
  .fs-26-md {
    font-size: 2.6rem !important;
  }
  .fs-27-md {
    font-size: 2.7rem !important;
  }
  .fs-28-md {
    font-size: 2.8rem !important;
  }
  .fs-29-md {
    font-size: 2.9rem !important;
  }
  .fs-30-md {
    font-size: 3rem !important;
  }
}
@media (max-width: 575px) {
  .fs-10-sm {
    font-size: 1rem !important;
  }
  .fs-11-sm {
    font-size: 1.1rem !important;
  }
  .fs-12-sm {
    font-size: 1.2rem !important;
  }
  .fs-13-sm {
    font-size: 1.3rem !important;
  }
  .fs-14-sm {
    font-size: 1.4rem !important;
  }
  .fs-15-sm {
    font-size: 1.5rem !important;
  }
  .fs-16-sm {
    font-size: 1.6rem !important;
  }
  .fs-17-sm {
    font-size: 1.7rem !important;
  }
  .fs-18-sm {
    font-size: 1.8rem !important;
  }
  .fs-19-sm {
    font-size: 1.9rem !important;
  }
  .fs-20-sm {
    font-size: 2rem !important;
  }
  .fs-21-sm {
    font-size: 2.1rem !important;
  }
  .fs-22-sm {
    font-size: 2.2rem !important;
  }
  .fs-23-sm {
    font-size: 2.3rem !important;
  }
  .fs-24-sm {
    font-size: 2.4rem !important;
  }
  .fs-25-sm {
    font-size: 2.5rem !important;
  }
  .fs-26-sm {
    font-size: 2.6rem !important;
  }
  .fs-27-sm {
    font-size: 2.7rem !important;
  }
  .fs-28-sm {
    font-size: 2.8rem !important;
  }
  .fs-29-sm {
    font-size: 2.9rem !important;
  }
  .fs-30-sm {
    font-size: 3rem !important;
  }
}
/*utility
-----------------------------------------------------*/
img {
  max-width: 100%;
  height: auto;
}

ol {
  padding-left: 1em;
}

.en {
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
}

em {
  font-style: normal;
  font-weight: bold;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.bold {
  font-weight: bold;
}

.align-l {
  text-align: left;
}
@media (max-width: 1199px) {
  .align-l-xl {
    text-align: left !important;
  }
}
@media (max-width: 1023px) {
  .align-l-lg {
    text-align: left !important;
  }
}
@media (max-width: 767px) {
  .align-l-md {
    text-align: left !important;
  }
}
@media (max-width: 575px) {
  .align-l-sm {
    text-align: left !important;
  }
}

.align-c {
  text-align: center;
}
@media (max-width: 1199px) {
  .align-c-xl {
    text-align: center !important;
  }
}
@media (max-width: 1023px) {
  .align-c-lg {
    text-align: center !important;
  }
}
@media (max-width: 767px) {
  .align-c-md {
    text-align: center !important;
  }
}
@media (max-width: 575px) {
  .align-c-sm {
    text-align: center !important;
  }
}

.block {
  display: block;
}
@media (max-width: 1199px) {
  .block-xl {
    display: block !important;
  }
}
@media (max-width: 1023px) {
  .block-lg {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .block-md {
    display: block !important;
  }
}
@media (max-width: 575px) {
  .block-sm {
    display: block !important;
  }
}

.none {
  display: none;
}
@media (max-width: 1199px) {
  .none-xl {
    display: none !important;
  }
}
@media (max-width: 1023px) {
  .none-lg {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .none-md {
    display: none !important;
  }
}
@media (max-width: 575px) {
  .none-sm {
    display: none !important;
  }
}

/* margin padding
-----------------------------------------------------*/
.mt-0 {
  margin-top: 0rem !important;
}

.pt-0 {
  padding-top: 0rem !important;
}

.mb-0 {
  margin-bottom: 0rem !important;
}

.pb-0 {
  padding-bottom: 0rem !important;
}

.ml-0 {
  margin-left: 0rem !important;
}

.pl-0 {
  padding-left: 0rem !important;
}

.mr-0 {
  margin-right: 0rem !important;
}

.pr-0 {
  padding-right: 0rem !important;
}

.mt-10 {
  margin-top: 1rem !important;
}

.pt-10 {
  padding-top: 1rem !important;
}

.mb-10 {
  margin-bottom: 1rem !important;
}

.pb-10 {
  padding-bottom: 1rem !important;
}

.ml-10 {
  margin-left: 1rem !important;
}

.pl-10 {
  padding-left: 1rem !important;
}

.mr-10 {
  margin-right: 1rem !important;
}

.pr-10 {
  padding-right: 1rem !important;
}

.mt-15 {
  margin-top: 1.5rem !important;
}

.pt-15 {
  padding-top: 1.5rem !important;
}

.mb-15 {
  margin-bottom: 1.5rem !important;
}

.pb-15 {
  padding-bottom: 1.5rem !important;
}

.ml-15 {
  margin-left: 1.5rem !important;
}

.pl-15 {
  padding-left: 1.5rem !important;
}

.mr-15 {
  margin-right: 1.5rem !important;
}

.pr-15 {
  padding-right: 1.5rem !important;
}

.mt-20 {
  margin-top: 2rem !important;
}

.pt-20 {
  padding-top: 2rem !important;
}

.mb-20 {
  margin-bottom: 2rem !important;
}

.pb-20 {
  padding-bottom: 2rem !important;
}

.ml-20 {
  margin-left: 2rem !important;
}

.pl-20 {
  padding-left: 2rem !important;
}

.mr-20 {
  margin-right: 2rem !important;
}

.pr-20 {
  padding-right: 2rem !important;
}

.mt-25 {
  margin-top: 2.5rem !important;
}

.pt-25 {
  padding-top: 2.5rem !important;
}

.mb-25 {
  margin-bottom: 2.5rem !important;
}

.pb-25 {
  padding-bottom: 2.5rem !important;
}

.ml-25 {
  margin-left: 2.5rem !important;
}

.pl-25 {
  padding-left: 2.5rem !important;
}

.mr-25 {
  margin-right: 2.5rem !important;
}

.pr-25 {
  padding-right: 2.5rem !important;
}

.mt-30 {
  margin-top: 3rem !important;
}

.pt-30 {
  padding-top: 3rem !important;
}

.mb-30 {
  margin-bottom: 3rem !important;
}

.pb-30 {
  padding-bottom: 3rem !important;
}

.ml-30 {
  margin-left: 3rem !important;
}

.pl-30 {
  padding-left: 3rem !important;
}

.mr-30 {
  margin-right: 3rem !important;
}

.pr-30 {
  padding-right: 3rem !important;
}

.mt-35 {
  margin-top: 3.5rem !important;
}

.pt-35 {
  padding-top: 3.5rem !important;
}

.mb-35 {
  margin-bottom: 3.5rem !important;
}

.pb-35 {
  padding-bottom: 3.5rem !important;
}

.ml-35 {
  margin-left: 3.5rem !important;
}

.pl-35 {
  padding-left: 3.5rem !important;
}

.mr-35 {
  margin-right: 3.5rem !important;
}

.pr-35 {
  padding-right: 3.5rem !important;
}

.mt-40 {
  margin-top: 4rem !important;
}

.pt-40 {
  padding-top: 4rem !important;
}

.mb-40 {
  margin-bottom: 4rem !important;
}

.pb-40 {
  padding-bottom: 4rem !important;
}

.ml-40 {
  margin-left: 4rem !important;
}

.pl-40 {
  padding-left: 4rem !important;
}

.mr-40 {
  margin-right: 4rem !important;
}

.pr-40 {
  padding-right: 4rem !important;
}

.mt-45 {
  margin-top: 4.5rem !important;
}

.pt-45 {
  padding-top: 4.5rem !important;
}

.mb-45 {
  margin-bottom: 4.5rem !important;
}

.pb-45 {
  padding-bottom: 4.5rem !important;
}

.ml-45 {
  margin-left: 4.5rem !important;
}

.pl-45 {
  padding-left: 4.5rem !important;
}

.mr-45 {
  margin-right: 4.5rem !important;
}

.pr-45 {
  padding-right: 4.5rem !important;
}

.mt-50 {
  margin-top: 5rem !important;
}

.pt-50 {
  padding-top: 5rem !important;
}

.mb-50 {
  margin-bottom: 5rem !important;
}

.pb-50 {
  padding-bottom: 5rem !important;
}

.ml-50 {
  margin-left: 5rem !important;
}

.pl-50 {
  padding-left: 5rem !important;
}

.mr-50 {
  margin-right: 5rem !important;
}

.pr-50 {
  padding-right: 5rem !important;
}

.mt-60 {
  margin-top: 6rem !important;
}

.pt-60 {
  padding-top: 6rem !important;
}

.mb-60 {
  margin-bottom: 6rem !important;
}

.pb-60 {
  padding-bottom: 6rem !important;
}

.ml-60 {
  margin-left: 6rem !important;
}

.pl-60 {
  padding-left: 6rem !important;
}

.mr-60 {
  margin-right: 6rem !important;
}

.pr-60 {
  padding-right: 6rem !important;
}

.mt-70 {
  margin-top: 7rem !important;
}

.pt-70 {
  padding-top: 7rem !important;
}

.mb-70 {
  margin-bottom: 7rem !important;
}

.pb-70 {
  padding-bottom: 7rem !important;
}

.ml-70 {
  margin-left: 7rem !important;
}

.pl-70 {
  padding-left: 7rem !important;
}

.mr-70 {
  margin-right: 7rem !important;
}

.pr-70 {
  padding-right: 7rem !important;
}

.mt-80 {
  margin-top: 8rem !important;
}

.pt-80 {
  padding-top: 8rem !important;
}

.mb-80 {
  margin-bottom: 8rem !important;
}

.pb-80 {
  padding-bottom: 8rem !important;
}

.ml-80 {
  margin-left: 8rem !important;
}

.pl-80 {
  padding-left: 8rem !important;
}

.mr-80 {
  margin-right: 8rem !important;
}

.pr-80 {
  padding-right: 8rem !important;
}

.mt-100 {
  margin-top: 10rem !important;
}

.pt-100 {
  padding-top: 10rem !important;
}

.mb-100 {
  margin-bottom: 10rem !important;
}

.pb-100 {
  padding-bottom: 10rem !important;
}

.ml-100 {
  margin-left: 10rem !important;
}

.pl-100 {
  padding-left: 10rem !important;
}

.mr-100 {
  margin-right: 10rem !important;
}

.pr-100 {
  padding-right: 10rem !important;
}

@media (max-width: 1199px) {
  .mt-0-xl {
    margin-top: 0rem !important;
  }
  .pt-0-xl {
    padding-top: 0rem !important;
  }
  .mb-0-xl {
    margin-bottom: 0rem !important;
  }
  .pb-0-xl {
    padding-bottom: 0rem !important;
  }
  .ml-0-xl {
    margin-left: 0rem !important;
  }
  .pl-0-xl {
    padding-left: 0rem !important;
  }
  .mr-0-xl {
    margin-right: 0rem !important;
  }
  .pr-0-xl {
    padding-right: 0rem !important;
  }
  .mt-10-xl {
    margin-top: 1rem !important;
  }
  .pt-10-xl {
    padding-top: 1rem !important;
  }
  .mb-10-xl {
    margin-bottom: 1rem !important;
  }
  .pb-10-xl {
    padding-bottom: 1rem !important;
  }
  .ml-10-xl {
    margin-left: 1rem !important;
  }
  .pl-10-xl {
    padding-left: 1rem !important;
  }
  .mr-10-xl {
    margin-right: 1rem !important;
  }
  .pr-10-xl {
    padding-right: 1rem !important;
  }
  .mt-15-xl {
    margin-top: 1.5rem !important;
  }
  .pt-15-xl {
    padding-top: 1.5rem !important;
  }
  .mb-15-xl {
    margin-bottom: 1.5rem !important;
  }
  .pb-15-xl {
    padding-bottom: 1.5rem !important;
  }
  .ml-15-xl {
    margin-left: 1.5rem !important;
  }
  .pl-15-xl {
    padding-left: 1.5rem !important;
  }
  .mr-15-xl {
    margin-right: 1.5rem !important;
  }
  .pr-15-xl {
    padding-right: 1.5rem !important;
  }
  .mt-20-xl {
    margin-top: 2rem !important;
  }
  .pt-20-xl {
    padding-top: 2rem !important;
  }
  .mb-20-xl {
    margin-bottom: 2rem !important;
  }
  .pb-20-xl {
    padding-bottom: 2rem !important;
  }
  .ml-20-xl {
    margin-left: 2rem !important;
  }
  .pl-20-xl {
    padding-left: 2rem !important;
  }
  .mr-20-xl {
    margin-right: 2rem !important;
  }
  .pr-20-xl {
    padding-right: 2rem !important;
  }
  .mt-25-xl {
    margin-top: 2.5rem !important;
  }
  .pt-25-xl {
    padding-top: 2.5rem !important;
  }
  .mb-25-xl {
    margin-bottom: 2.5rem !important;
  }
  .pb-25-xl {
    padding-bottom: 2.5rem !important;
  }
  .ml-25-xl {
    margin-left: 2.5rem !important;
  }
  .pl-25-xl {
    padding-left: 2.5rem !important;
  }
  .mr-25-xl {
    margin-right: 2.5rem !important;
  }
  .pr-25-xl {
    padding-right: 2.5rem !important;
  }
  .mt-30-xl {
    margin-top: 3rem !important;
  }
  .pt-30-xl {
    padding-top: 3rem !important;
  }
  .mb-30-xl {
    margin-bottom: 3rem !important;
  }
  .pb-30-xl {
    padding-bottom: 3rem !important;
  }
  .ml-30-xl {
    margin-left: 3rem !important;
  }
  .pl-30-xl {
    padding-left: 3rem !important;
  }
  .mr-30-xl {
    margin-right: 3rem !important;
  }
  .pr-30-xl {
    padding-right: 3rem !important;
  }
  .mt-35-xl {
    margin-top: 3.5rem !important;
  }
  .pt-35-xl {
    padding-top: 3.5rem !important;
  }
  .mb-35-xl {
    margin-bottom: 3.5rem !important;
  }
  .pb-35-xl {
    padding-bottom: 3.5rem !important;
  }
  .ml-35-xl {
    margin-left: 3.5rem !important;
  }
  .pl-35-xl {
    padding-left: 3.5rem !important;
  }
  .mr-35-xl {
    margin-right: 3.5rem !important;
  }
  .pr-35-xl {
    padding-right: 3.5rem !important;
  }
  .mt-40-xl {
    margin-top: 4rem !important;
  }
  .pt-40-xl {
    padding-top: 4rem !important;
  }
  .mb-40-xl {
    margin-bottom: 4rem !important;
  }
  .pb-40-xl {
    padding-bottom: 4rem !important;
  }
  .ml-40-xl {
    margin-left: 4rem !important;
  }
  .pl-40-xl {
    padding-left: 4rem !important;
  }
  .mr-40-xl {
    margin-right: 4rem !important;
  }
  .pr-40-xl {
    padding-right: 4rem !important;
  }
  .mt-45-xl {
    margin-top: 4.5rem !important;
  }
  .pt-45-xl {
    padding-top: 4.5rem !important;
  }
  .mb-45-xl {
    margin-bottom: 4.5rem !important;
  }
  .pb-45-xl {
    padding-bottom: 4.5rem !important;
  }
  .ml-45-xl {
    margin-left: 4.5rem !important;
  }
  .pl-45-xl {
    padding-left: 4.5rem !important;
  }
  .mr-45-xl {
    margin-right: 4.5rem !important;
  }
  .pr-45-xl {
    padding-right: 4.5rem !important;
  }
  .mt-50-xl {
    margin-top: 5rem !important;
  }
  .pt-50-xl {
    padding-top: 5rem !important;
  }
  .mb-50-xl {
    margin-bottom: 5rem !important;
  }
  .pb-50-xl {
    padding-bottom: 5rem !important;
  }
  .ml-50-xl {
    margin-left: 5rem !important;
  }
  .pl-50-xl {
    padding-left: 5rem !important;
  }
  .mr-50-xl {
    margin-right: 5rem !important;
  }
  .pr-50-xl {
    padding-right: 5rem !important;
  }
  .mt-60-xl {
    margin-top: 6rem !important;
  }
  .pt-60-xl {
    padding-top: 6rem !important;
  }
  .mb-60-xl {
    margin-bottom: 6rem !important;
  }
  .pb-60-xl {
    padding-bottom: 6rem !important;
  }
  .ml-60-xl {
    margin-left: 6rem !important;
  }
  .pl-60-xl {
    padding-left: 6rem !important;
  }
  .mr-60-xl {
    margin-right: 6rem !important;
  }
  .pr-60-xl {
    padding-right: 6rem !important;
  }
  .mt-70-xl {
    margin-top: 7rem !important;
  }
  .pt-70-xl {
    padding-top: 7rem !important;
  }
  .mb-70-xl {
    margin-bottom: 7rem !important;
  }
  .pb-70-xl {
    padding-bottom: 7rem !important;
  }
  .ml-70-xl {
    margin-left: 7rem !important;
  }
  .pl-70-xl {
    padding-left: 7rem !important;
  }
  .mr-70-xl {
    margin-right: 7rem !important;
  }
  .pr-70-xl {
    padding-right: 7rem !important;
  }
  .mt-80-xl {
    margin-top: 8rem !important;
  }
  .pt-80-xl {
    padding-top: 8rem !important;
  }
  .mb-80-xl {
    margin-bottom: 8rem !important;
  }
  .pb-80-xl {
    padding-bottom: 8rem !important;
  }
  .ml-80-xl {
    margin-left: 8rem !important;
  }
  .pl-80-xl {
    padding-left: 8rem !important;
  }
  .mr-80-xl {
    margin-right: 8rem !important;
  }
  .pr-80-xl {
    padding-right: 8rem !important;
  }
  .mt-100-xl {
    margin-top: 10rem !important;
  }
  .pt-100-xl {
    padding-top: 10rem !important;
  }
  .mb-100-xl {
    margin-bottom: 10rem !important;
  }
  .pb-100-xl {
    padding-bottom: 10rem !important;
  }
  .ml-100-xl {
    margin-left: 10rem !important;
  }
  .pl-100-xl {
    padding-left: 10rem !important;
  }
  .mr-100-xl {
    margin-right: 10rem !important;
  }
  .pr-100-xl {
    padding-right: 10rem !important;
  }
}
@media (max-width: 1023px) {
  .mt-0-lg {
    margin-top: 0rem !important;
  }
  .pt-0-lg {
    padding-top: 0rem !important;
  }
  .mb-0-lg {
    margin-bottom: 0rem !important;
  }
  .pb-0-lg {
    padding-bottom: 0rem !important;
  }
  .ml-0-lg {
    margin-left: 0rem !important;
  }
  .pl-0-lg {
    padding-left: 0rem !important;
  }
  .mr-0-lg {
    margin-right: 0rem !important;
  }
  .pr-0-lg {
    padding-right: 0rem !important;
  }
  .mt-10-lg {
    margin-top: 1rem !important;
  }
  .pt-10-lg {
    padding-top: 1rem !important;
  }
  .mb-10-lg {
    margin-bottom: 1rem !important;
  }
  .pb-10-lg {
    padding-bottom: 1rem !important;
  }
  .ml-10-lg {
    margin-left: 1rem !important;
  }
  .pl-10-lg {
    padding-left: 1rem !important;
  }
  .mr-10-lg {
    margin-right: 1rem !important;
  }
  .pr-10-lg {
    padding-right: 1rem !important;
  }
  .mt-15-lg {
    margin-top: 1.5rem !important;
  }
  .pt-15-lg {
    padding-top: 1.5rem !important;
  }
  .mb-15-lg {
    margin-bottom: 1.5rem !important;
  }
  .pb-15-lg {
    padding-bottom: 1.5rem !important;
  }
  .ml-15-lg {
    margin-left: 1.5rem !important;
  }
  .pl-15-lg {
    padding-left: 1.5rem !important;
  }
  .mr-15-lg {
    margin-right: 1.5rem !important;
  }
  .pr-15-lg {
    padding-right: 1.5rem !important;
  }
  .mt-20-lg {
    margin-top: 2rem !important;
  }
  .pt-20-lg {
    padding-top: 2rem !important;
  }
  .mb-20-lg {
    margin-bottom: 2rem !important;
  }
  .pb-20-lg {
    padding-bottom: 2rem !important;
  }
  .ml-20-lg {
    margin-left: 2rem !important;
  }
  .pl-20-lg {
    padding-left: 2rem !important;
  }
  .mr-20-lg {
    margin-right: 2rem !important;
  }
  .pr-20-lg {
    padding-right: 2rem !important;
  }
  .mt-25-lg {
    margin-top: 2.5rem !important;
  }
  .pt-25-lg {
    padding-top: 2.5rem !important;
  }
  .mb-25-lg {
    margin-bottom: 2.5rem !important;
  }
  .pb-25-lg {
    padding-bottom: 2.5rem !important;
  }
  .ml-25-lg {
    margin-left: 2.5rem !important;
  }
  .pl-25-lg {
    padding-left: 2.5rem !important;
  }
  .mr-25-lg {
    margin-right: 2.5rem !important;
  }
  .pr-25-lg {
    padding-right: 2.5rem !important;
  }
  .mt-30-lg {
    margin-top: 3rem !important;
  }
  .pt-30-lg {
    padding-top: 3rem !important;
  }
  .mb-30-lg {
    margin-bottom: 3rem !important;
  }
  .pb-30-lg {
    padding-bottom: 3rem !important;
  }
  .ml-30-lg {
    margin-left: 3rem !important;
  }
  .pl-30-lg {
    padding-left: 3rem !important;
  }
  .mr-30-lg {
    margin-right: 3rem !important;
  }
  .pr-30-lg {
    padding-right: 3rem !important;
  }
  .mt-35-lg {
    margin-top: 3.5rem !important;
  }
  .pt-35-lg {
    padding-top: 3.5rem !important;
  }
  .mb-35-lg {
    margin-bottom: 3.5rem !important;
  }
  .pb-35-lg {
    padding-bottom: 3.5rem !important;
  }
  .ml-35-lg {
    margin-left: 3.5rem !important;
  }
  .pl-35-lg {
    padding-left: 3.5rem !important;
  }
  .mr-35-lg {
    margin-right: 3.5rem !important;
  }
  .pr-35-lg {
    padding-right: 3.5rem !important;
  }
  .mt-40-lg {
    margin-top: 4rem !important;
  }
  .pt-40-lg {
    padding-top: 4rem !important;
  }
  .mb-40-lg {
    margin-bottom: 4rem !important;
  }
  .pb-40-lg {
    padding-bottom: 4rem !important;
  }
  .ml-40-lg {
    margin-left: 4rem !important;
  }
  .pl-40-lg {
    padding-left: 4rem !important;
  }
  .mr-40-lg {
    margin-right: 4rem !important;
  }
  .pr-40-lg {
    padding-right: 4rem !important;
  }
  .mt-45-lg {
    margin-top: 4.5rem !important;
  }
  .pt-45-lg {
    padding-top: 4.5rem !important;
  }
  .mb-45-lg {
    margin-bottom: 4.5rem !important;
  }
  .pb-45-lg {
    padding-bottom: 4.5rem !important;
  }
  .ml-45-lg {
    margin-left: 4.5rem !important;
  }
  .pl-45-lg {
    padding-left: 4.5rem !important;
  }
  .mr-45-lg {
    margin-right: 4.5rem !important;
  }
  .pr-45-lg {
    padding-right: 4.5rem !important;
  }
  .mt-50-lg {
    margin-top: 5rem !important;
  }
  .pt-50-lg {
    padding-top: 5rem !important;
  }
  .mb-50-lg {
    margin-bottom: 5rem !important;
  }
  .pb-50-lg {
    padding-bottom: 5rem !important;
  }
  .ml-50-lg {
    margin-left: 5rem !important;
  }
  .pl-50-lg {
    padding-left: 5rem !important;
  }
  .mr-50-lg {
    margin-right: 5rem !important;
  }
  .pr-50-lg {
    padding-right: 5rem !important;
  }
  .mt-60-lg {
    margin-top: 6rem !important;
  }
  .pt-60-lg {
    padding-top: 6rem !important;
  }
  .mb-60-lg {
    margin-bottom: 6rem !important;
  }
  .pb-60-lg {
    padding-bottom: 6rem !important;
  }
  .ml-60-lg {
    margin-left: 6rem !important;
  }
  .pl-60-lg {
    padding-left: 6rem !important;
  }
  .mr-60-lg {
    margin-right: 6rem !important;
  }
  .pr-60-lg {
    padding-right: 6rem !important;
  }
  .mt-70-lg {
    margin-top: 7rem !important;
  }
  .pt-70-lg {
    padding-top: 7rem !important;
  }
  .mb-70-lg {
    margin-bottom: 7rem !important;
  }
  .pb-70-lg {
    padding-bottom: 7rem !important;
  }
  .ml-70-lg {
    margin-left: 7rem !important;
  }
  .pl-70-lg {
    padding-left: 7rem !important;
  }
  .mr-70-lg {
    margin-right: 7rem !important;
  }
  .pr-70-lg {
    padding-right: 7rem !important;
  }
  .mt-80-lg {
    margin-top: 8rem !important;
  }
  .pt-80-lg {
    padding-top: 8rem !important;
  }
  .mb-80-lg {
    margin-bottom: 8rem !important;
  }
  .pb-80-lg {
    padding-bottom: 8rem !important;
  }
  .ml-80-lg {
    margin-left: 8rem !important;
  }
  .pl-80-lg {
    padding-left: 8rem !important;
  }
  .mr-80-lg {
    margin-right: 8rem !important;
  }
  .pr-80-lg {
    padding-right: 8rem !important;
  }
  .mt-100-lg {
    margin-top: 10rem !important;
  }
  .pt-100-lg {
    padding-top: 10rem !important;
  }
  .mb-100-lg {
    margin-bottom: 10rem !important;
  }
  .pb-100-lg {
    padding-bottom: 10rem !important;
  }
  .ml-100-lg {
    margin-left: 10rem !important;
  }
  .pl-100-lg {
    padding-left: 10rem !important;
  }
  .mr-100-lg {
    margin-right: 10rem !important;
  }
  .pr-100-lg {
    padding-right: 10rem !important;
  }
}
@media (max-width: 767px) {
  .mt-0-md {
    margin-top: 0rem !important;
  }
  .pt-0-md {
    padding-top: 0rem !important;
  }
  .mb-0-md {
    margin-bottom: 0rem !important;
  }
  .pb-0-md {
    padding-bottom: 0rem !important;
  }
  .ml-0-md {
    margin-left: 0rem !important;
  }
  .pl-0-md {
    padding-left: 0rem !important;
  }
  .mr-0-md {
    margin-right: 0rem !important;
  }
  .pr-0-md {
    padding-right: 0rem !important;
  }
  .mt-10-md {
    margin-top: 1rem !important;
  }
  .pt-10-md {
    padding-top: 1rem !important;
  }
  .mb-10-md {
    margin-bottom: 1rem !important;
  }
  .pb-10-md {
    padding-bottom: 1rem !important;
  }
  .ml-10-md {
    margin-left: 1rem !important;
  }
  .pl-10-md {
    padding-left: 1rem !important;
  }
  .mr-10-md {
    margin-right: 1rem !important;
  }
  .pr-10-md {
    padding-right: 1rem !important;
  }
  .mt-15-md {
    margin-top: 1.5rem !important;
  }
  .pt-15-md {
    padding-top: 1.5rem !important;
  }
  .mb-15-md {
    margin-bottom: 1.5rem !important;
  }
  .pb-15-md {
    padding-bottom: 1.5rem !important;
  }
  .ml-15-md {
    margin-left: 1.5rem !important;
  }
  .pl-15-md {
    padding-left: 1.5rem !important;
  }
  .mr-15-md {
    margin-right: 1.5rem !important;
  }
  .pr-15-md {
    padding-right: 1.5rem !important;
  }
  .mt-20-md {
    margin-top: 2rem !important;
  }
  .pt-20-md {
    padding-top: 2rem !important;
  }
  .mb-20-md {
    margin-bottom: 2rem !important;
  }
  .pb-20-md {
    padding-bottom: 2rem !important;
  }
  .ml-20-md {
    margin-left: 2rem !important;
  }
  .pl-20-md {
    padding-left: 2rem !important;
  }
  .mr-20-md {
    margin-right: 2rem !important;
  }
  .pr-20-md {
    padding-right: 2rem !important;
  }
  .mt-25-md {
    margin-top: 2.5rem !important;
  }
  .pt-25-md {
    padding-top: 2.5rem !important;
  }
  .mb-25-md {
    margin-bottom: 2.5rem !important;
  }
  .pb-25-md {
    padding-bottom: 2.5rem !important;
  }
  .ml-25-md {
    margin-left: 2.5rem !important;
  }
  .pl-25-md {
    padding-left: 2.5rem !important;
  }
  .mr-25-md {
    margin-right: 2.5rem !important;
  }
  .pr-25-md {
    padding-right: 2.5rem !important;
  }
  .mt-30-md {
    margin-top: 3rem !important;
  }
  .pt-30-md {
    padding-top: 3rem !important;
  }
  .mb-30-md {
    margin-bottom: 3rem !important;
  }
  .pb-30-md {
    padding-bottom: 3rem !important;
  }
  .ml-30-md {
    margin-left: 3rem !important;
  }
  .pl-30-md {
    padding-left: 3rem !important;
  }
  .mr-30-md {
    margin-right: 3rem !important;
  }
  .pr-30-md {
    padding-right: 3rem !important;
  }
  .mt-35-md {
    margin-top: 3.5rem !important;
  }
  .pt-35-md {
    padding-top: 3.5rem !important;
  }
  .mb-35-md {
    margin-bottom: 3.5rem !important;
  }
  .pb-35-md {
    padding-bottom: 3.5rem !important;
  }
  .ml-35-md {
    margin-left: 3.5rem !important;
  }
  .pl-35-md {
    padding-left: 3.5rem !important;
  }
  .mr-35-md {
    margin-right: 3.5rem !important;
  }
  .pr-35-md {
    padding-right: 3.5rem !important;
  }
  .mt-40-md {
    margin-top: 4rem !important;
  }
  .pt-40-md {
    padding-top: 4rem !important;
  }
  .mb-40-md {
    margin-bottom: 4rem !important;
  }
  .pb-40-md {
    padding-bottom: 4rem !important;
  }
  .ml-40-md {
    margin-left: 4rem !important;
  }
  .pl-40-md {
    padding-left: 4rem !important;
  }
  .mr-40-md {
    margin-right: 4rem !important;
  }
  .pr-40-md {
    padding-right: 4rem !important;
  }
  .mt-45-md {
    margin-top: 4.5rem !important;
  }
  .pt-45-md {
    padding-top: 4.5rem !important;
  }
  .mb-45-md {
    margin-bottom: 4.5rem !important;
  }
  .pb-45-md {
    padding-bottom: 4.5rem !important;
  }
  .ml-45-md {
    margin-left: 4.5rem !important;
  }
  .pl-45-md {
    padding-left: 4.5rem !important;
  }
  .mr-45-md {
    margin-right: 4.5rem !important;
  }
  .pr-45-md {
    padding-right: 4.5rem !important;
  }
  .mt-50-md {
    margin-top: 5rem !important;
  }
  .pt-50-md {
    padding-top: 5rem !important;
  }
  .mb-50-md {
    margin-bottom: 5rem !important;
  }
  .pb-50-md {
    padding-bottom: 5rem !important;
  }
  .ml-50-md {
    margin-left: 5rem !important;
  }
  .pl-50-md {
    padding-left: 5rem !important;
  }
  .mr-50-md {
    margin-right: 5rem !important;
  }
  .pr-50-md {
    padding-right: 5rem !important;
  }
  .mt-60-md {
    margin-top: 6rem !important;
  }
  .pt-60-md {
    padding-top: 6rem !important;
  }
  .mb-60-md {
    margin-bottom: 6rem !important;
  }
  .pb-60-md {
    padding-bottom: 6rem !important;
  }
  .ml-60-md {
    margin-left: 6rem !important;
  }
  .pl-60-md {
    padding-left: 6rem !important;
  }
  .mr-60-md {
    margin-right: 6rem !important;
  }
  .pr-60-md {
    padding-right: 6rem !important;
  }
  .mt-70-md {
    margin-top: 7rem !important;
  }
  .pt-70-md {
    padding-top: 7rem !important;
  }
  .mb-70-md {
    margin-bottom: 7rem !important;
  }
  .pb-70-md {
    padding-bottom: 7rem !important;
  }
  .ml-70-md {
    margin-left: 7rem !important;
  }
  .pl-70-md {
    padding-left: 7rem !important;
  }
  .mr-70-md {
    margin-right: 7rem !important;
  }
  .pr-70-md {
    padding-right: 7rem !important;
  }
  .mt-80-md {
    margin-top: 8rem !important;
  }
  .pt-80-md {
    padding-top: 8rem !important;
  }
  .mb-80-md {
    margin-bottom: 8rem !important;
  }
  .pb-80-md {
    padding-bottom: 8rem !important;
  }
  .ml-80-md {
    margin-left: 8rem !important;
  }
  .pl-80-md {
    padding-left: 8rem !important;
  }
  .mr-80-md {
    margin-right: 8rem !important;
  }
  .pr-80-md {
    padding-right: 8rem !important;
  }
  .mt-100-md {
    margin-top: 10rem !important;
  }
  .pt-100-md {
    padding-top: 10rem !important;
  }
  .mb-100-md {
    margin-bottom: 10rem !important;
  }
  .pb-100-md {
    padding-bottom: 10rem !important;
  }
  .ml-100-md {
    margin-left: 10rem !important;
  }
  .pl-100-md {
    padding-left: 10rem !important;
  }
  .mr-100-md {
    margin-right: 10rem !important;
  }
  .pr-100-md {
    padding-right: 10rem !important;
  }
}
@media (max-width: 575px) {
  .mt-0-sm {
    margin-top: 0rem !important;
  }
  .pt-0-sm {
    padding-top: 0rem !important;
  }
  .mb-0-sm {
    margin-bottom: 0rem !important;
  }
  .pb-0-sm {
    padding-bottom: 0rem !important;
  }
  .ml-0-sm {
    margin-left: 0rem !important;
  }
  .pl-0-sm {
    padding-left: 0rem !important;
  }
  .mr-0-sm {
    margin-right: 0rem !important;
  }
  .pr-0-sm {
    padding-right: 0rem !important;
  }
  .mt-10-sm {
    margin-top: 1rem !important;
  }
  .pt-10-sm {
    padding-top: 1rem !important;
  }
  .mb-10-sm {
    margin-bottom: 1rem !important;
  }
  .pb-10-sm {
    padding-bottom: 1rem !important;
  }
  .ml-10-sm {
    margin-left: 1rem !important;
  }
  .pl-10-sm {
    padding-left: 1rem !important;
  }
  .mr-10-sm {
    margin-right: 1rem !important;
  }
  .pr-10-sm {
    padding-right: 1rem !important;
  }
  .mt-15-sm {
    margin-top: 1.5rem !important;
  }
  .pt-15-sm {
    padding-top: 1.5rem !important;
  }
  .mb-15-sm {
    margin-bottom: 1.5rem !important;
  }
  .pb-15-sm {
    padding-bottom: 1.5rem !important;
  }
  .ml-15-sm {
    margin-left: 1.5rem !important;
  }
  .pl-15-sm {
    padding-left: 1.5rem !important;
  }
  .mr-15-sm {
    margin-right: 1.5rem !important;
  }
  .pr-15-sm {
    padding-right: 1.5rem !important;
  }
  .mt-20-sm {
    margin-top: 2rem !important;
  }
  .pt-20-sm {
    padding-top: 2rem !important;
  }
  .mb-20-sm {
    margin-bottom: 2rem !important;
  }
  .pb-20-sm {
    padding-bottom: 2rem !important;
  }
  .ml-20-sm {
    margin-left: 2rem !important;
  }
  .pl-20-sm {
    padding-left: 2rem !important;
  }
  .mr-20-sm {
    margin-right: 2rem !important;
  }
  .pr-20-sm {
    padding-right: 2rem !important;
  }
  .mt-25-sm {
    margin-top: 2.5rem !important;
  }
  .pt-25-sm {
    padding-top: 2.5rem !important;
  }
  .mb-25-sm {
    margin-bottom: 2.5rem !important;
  }
  .pb-25-sm {
    padding-bottom: 2.5rem !important;
  }
  .ml-25-sm {
    margin-left: 2.5rem !important;
  }
  .pl-25-sm {
    padding-left: 2.5rem !important;
  }
  .mr-25-sm {
    margin-right: 2.5rem !important;
  }
  .pr-25-sm {
    padding-right: 2.5rem !important;
  }
  .mt-30-sm {
    margin-top: 3rem !important;
  }
  .pt-30-sm {
    padding-top: 3rem !important;
  }
  .mb-30-sm {
    margin-bottom: 3rem !important;
  }
  .pb-30-sm {
    padding-bottom: 3rem !important;
  }
  .ml-30-sm {
    margin-left: 3rem !important;
  }
  .pl-30-sm {
    padding-left: 3rem !important;
  }
  .mr-30-sm {
    margin-right: 3rem !important;
  }
  .pr-30-sm {
    padding-right: 3rem !important;
  }
  .mt-35-sm {
    margin-top: 3.5rem !important;
  }
  .pt-35-sm {
    padding-top: 3.5rem !important;
  }
  .mb-35-sm {
    margin-bottom: 3.5rem !important;
  }
  .pb-35-sm {
    padding-bottom: 3.5rem !important;
  }
  .ml-35-sm {
    margin-left: 3.5rem !important;
  }
  .pl-35-sm {
    padding-left: 3.5rem !important;
  }
  .mr-35-sm {
    margin-right: 3.5rem !important;
  }
  .pr-35-sm {
    padding-right: 3.5rem !important;
  }
  .mt-40-sm {
    margin-top: 4rem !important;
  }
  .pt-40-sm {
    padding-top: 4rem !important;
  }
  .mb-40-sm {
    margin-bottom: 4rem !important;
  }
  .pb-40-sm {
    padding-bottom: 4rem !important;
  }
  .ml-40-sm {
    margin-left: 4rem !important;
  }
  .pl-40-sm {
    padding-left: 4rem !important;
  }
  .mr-40-sm {
    margin-right: 4rem !important;
  }
  .pr-40-sm {
    padding-right: 4rem !important;
  }
  .mt-45-sm {
    margin-top: 4.5rem !important;
  }
  .pt-45-sm {
    padding-top: 4.5rem !important;
  }
  .mb-45-sm {
    margin-bottom: 4.5rem !important;
  }
  .pb-45-sm {
    padding-bottom: 4.5rem !important;
  }
  .ml-45-sm {
    margin-left: 4.5rem !important;
  }
  .pl-45-sm {
    padding-left: 4.5rem !important;
  }
  .mr-45-sm {
    margin-right: 4.5rem !important;
  }
  .pr-45-sm {
    padding-right: 4.5rem !important;
  }
  .mt-50-sm {
    margin-top: 5rem !important;
  }
  .pt-50-sm {
    padding-top: 5rem !important;
  }
  .mb-50-sm {
    margin-bottom: 5rem !important;
  }
  .pb-50-sm {
    padding-bottom: 5rem !important;
  }
  .ml-50-sm {
    margin-left: 5rem !important;
  }
  .pl-50-sm {
    padding-left: 5rem !important;
  }
  .mr-50-sm {
    margin-right: 5rem !important;
  }
  .pr-50-sm {
    padding-right: 5rem !important;
  }
  .mt-60-sm {
    margin-top: 6rem !important;
  }
  .pt-60-sm {
    padding-top: 6rem !important;
  }
  .mb-60-sm {
    margin-bottom: 6rem !important;
  }
  .pb-60-sm {
    padding-bottom: 6rem !important;
  }
  .ml-60-sm {
    margin-left: 6rem !important;
  }
  .pl-60-sm {
    padding-left: 6rem !important;
  }
  .mr-60-sm {
    margin-right: 6rem !important;
  }
  .pr-60-sm {
    padding-right: 6rem !important;
  }
  .mt-70-sm {
    margin-top: 7rem !important;
  }
  .pt-70-sm {
    padding-top: 7rem !important;
  }
  .mb-70-sm {
    margin-bottom: 7rem !important;
  }
  .pb-70-sm {
    padding-bottom: 7rem !important;
  }
  .ml-70-sm {
    margin-left: 7rem !important;
  }
  .pl-70-sm {
    padding-left: 7rem !important;
  }
  .mr-70-sm {
    margin-right: 7rem !important;
  }
  .pr-70-sm {
    padding-right: 7rem !important;
  }
  .mt-80-sm {
    margin-top: 8rem !important;
  }
  .pt-80-sm {
    padding-top: 8rem !important;
  }
  .mb-80-sm {
    margin-bottom: 8rem !important;
  }
  .pb-80-sm {
    padding-bottom: 8rem !important;
  }
  .ml-80-sm {
    margin-left: 8rem !important;
  }
  .pl-80-sm {
    padding-left: 8rem !important;
  }
  .mr-80-sm {
    margin-right: 8rem !important;
  }
  .pr-80-sm {
    padding-right: 8rem !important;
  }
  .mt-100-sm {
    margin-top: 10rem !important;
  }
  .pt-100-sm {
    padding-top: 10rem !important;
  }
  .mb-100-sm {
    margin-bottom: 10rem !important;
  }
  .pb-100-sm {
    padding-bottom: 10rem !important;
  }
  .ml-100-sm {
    margin-left: 10rem !important;
  }
  .pl-100-sm {
    padding-left: 10rem !important;
  }
  .mr-100-sm {
    margin-right: 10rem !important;
  }
  .pr-100-sm {
    padding-right: 10rem !important;
  }
}
/*header
-----------------------------------------------------*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  background: #ffffff;
  transition: box-shadow 0.3s;
}
.header.is-scrolled {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.8rem 6rem;
}
@media (max-width: 1599px) {
  .header__inner {
    padding: 1.8rem 4rem;
  }
}
@media (max-width: 767px) {
  .header__inner {
    height: 5rem;
    padding: 0 0 0 2rem;
  }
}

.header__logo {
  position: relative;
  z-index: 2;
  line-height: 0;
}
.is-open .header__logo img {
  filter: brightness(0) invert(1);
}
.header__logo a {
  display: block;
  transition: opacity 0.3s;
}
.header__logo a:hover, .header__logo a:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .header__logo .logo__text {
    width: 9.2rem;
  }
}

.logo {
  position: relative;
  display: inline-block;
  padding-right: 1.6rem;
  line-height: 0;
}

.logo__mark {
  position: absolute;
  left: 19.1rem;
  top: 3.7rem;
  width: 0.9rem;
}
@media (max-width: 767px) {
  .header .logo__mark {
    left: 9.6rem;
    top: 1.8rem;
    width: 0.45rem;
  }
}

.header__nav {
  display: flex;
  align-items: center;
  gap: 3rem;
}
@media (max-width: 1599px) {
  .header__nav {
    gap: 2rem;
  }
}
@media (max-width: 1439px) {
  .header__nav {
    display: none;
  }
}

.header__gnav {
  display: flex;
  gap: 2rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
@media (max-width: 1599px) {
  .header__gnav {
    gap: 1.6rem;
    font-size: 1.4rem;
  }
}
.header__gnav > li {
  position: relative;
}
.header__gnav > li > a {
  display: block;
  padding: 1rem 0;
}
.header__gnav a {
  transition: opacity 0.3s;
}
.header__gnav a:hover, .header__gnav a:focus-visible {
  opacity: 0.7;
}
.header__gnav .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 10;
  min-width: 20rem;
  padding: 1rem 0;
  visibility: hidden;
  font-size: 1.4rem;
  background: #ffffff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  opacity: 0;
  transform: translate(-50%, 0.5rem);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
}
.header__gnav .sub-menu a {
  display: block;
  padding: 1rem 2rem;
}
.header__gnav li:hover > .sub-menu,
.header__gnav li:focus-within > .sub-menu {
  visibility: visible;
  opacity: 1;
  transform: translate(-50%, 0);
}
.header__gnav > li.is-mega {
  position: static;
}
.header__gnav li.is-mega:hover > .mega-menu,
.header__gnav li.is-mega:focus-within > .mega-menu {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

/* mega-menu */
.mega-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10;
  width: 100%;
  visibility: hidden;
  font-weight: 400;
  white-space: normal;
  background: #ffffff;
  border-top: 1px solid #dfdfdf;
  box-shadow: 0 2rem 2rem rgba(0, 0, 0, 0.08);
  opacity: 0;
  transform: translateY(0.5rem);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
}
.mega-menu::before {
  position: absolute;
  bottom: 100%;
  left: 0;
  width: 100%;
  height: 3rem;
  content: "";
}

.mega-menu__inner {
  display: grid;
  grid-template-columns: 0.8fr repeat(3, 1fr);
  max-width: 1400px;
  margin: 0 auto;
  padding: 5rem 6rem 6rem;
}
@media (max-width: 1599px) {
  .mega-menu__inner {
    padding: 4rem 4rem 5rem;
  }
}

.mega-menu__lead,
.mega-menu__group {
  padding: 0 clamp(2rem, 0.1538461538rem + 2.4038461538vw, 4rem);
}
.mega-menu__lead + .mega-menu__lead,
.mega-menu__lead + .mega-menu__group,
.mega-menu__group + .mega-menu__lead,
.mega-menu__group + .mega-menu__group {
  border-left: 1px solid #dfdfdf;
}

.mega-menu__lead {
  padding-left: 0;
}

.mega-menu__lead-en,
.mega-menu__title-en {
  display: block;
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(2.6rem, 1.6769230769rem + 1.2019230769vw, 3.6rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.mega-menu__lead-link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.2rem;
  color: #1b2668;
  font-size: 1.5rem;
  font-weight: 700;
}

.mega-menu__img {
  margin-bottom: 2.5rem;
  overflow: hidden;
}
.mega-menu__img img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.mega-menu__title {
  min-height: 7rem;
}

.mega-menu__title-en {
  font-size: clamp(1.8rem, 1.4307692308rem + 0.4807692308vw, 2.2rem);
}

.mega-menu__title-jp {
  display: block;
  margin-top: 0.8rem;
  color: #666666;
  font-size: 1.3rem;
}

.mega-menu__list {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
  margin-top: 2.5rem;
}

.mega-menu__link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
}

.mega-menu__arrow {
  flex-shrink: 0;
  width: 0.7rem;
  height: 0.7rem;
  border-top: 1.5px solid #1b2668;
  border-right: 1.5px solid #1b2668;
  transform: rotate(45deg);
}

.header-cta {
  display: flex;
  gap: 1rem;
}

.header-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 4rem;
  padding: 0 2rem;
  color: #1b2668;
  font-size: 1.4rem;
  font-weight: 700;
  white-space: nowrap;
  background: #ffffff;
  border: 1px solid #1b2668;
  border-radius: 6px;
  transition: opacity 0.3s;
}
.header-cta__btn:hover, .header-cta__btn:focus-visible {
  opacity: 0.7;
}
@media (max-width: 1599px) {
  .header-cta__btn {
    padding: 0 1.6rem;
  }
}
.header-cta__btn--fill {
  color: #ffffff;
  background: #1b2668;
}

.header__menu-btn {
  position: relative;
  z-index: 2;
  display: none;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  background: #1b2668;
}
@media (max-width: 1439px) {
  .header__menu-btn {
    display: flex;
  }
}

.header__menu-line {
  position: relative;
  display: block;
  width: 2.4rem;
  height: 1rem;
}
.header__menu-line::before, .header__menu-line::after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  content: "";
  background: #ffffff;
  transition: transform 0.3s, top 0.3s;
}
.header__menu-line::before {
  top: 0;
}
.header__menu-line::after {
  top: calc(100% - 1px);
}
.is-open .header__menu-line::before {
  top: 50%;
  transform: rotate(20deg);
}
.is-open .header__menu-line::after {
  top: 50%;
  transform: rotate(-20deg);
}

/* drawer */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 1;
  visibility: hidden;
  overflow-y: auto;
  opacity: 0;
  background: linear-gradient(139.2deg, #1b2668 0.14%, #3c4895 96.37%);
  transition: opacity 0.3s, visibility 0.3s;
}
.is-open .drawer {
  visibility: visible;
  opacity: 1;
}

.drawer__inner {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  padding: 12rem 6rem 6rem;
}
@media (max-width: 767px) {
  .drawer__inner {
    padding: 9rem 2rem 4rem;
  }
}
.drawer__inner .header-cta {
  justify-content: center;
}
.drawer__inner .header-cta li {
  flex: 1;
  max-width: 17rem;
}
.drawer__inner .header-cta__btn {
  height: 4.5rem;
  padding: 0 1rem;
  font-size: min(1.6rem, 4.2vw);
  border-color: #ffffff;
}

.drawer__gnav {
  color: #ffffff;
  font-size: 1.8rem;
  font-weight: 700;
}
.drawer__gnav > li {
  position: relative;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.drawer__gnav a {
  display: block;
  padding: 2rem 0;
}
.drawer__gnav .menu-item-has-children > a {
  padding-right: 6rem;
}
.drawer__gnav .sub-menu {
  display: none;
  margin: -1rem 0 1.5rem;
  font-size: 1.5rem;
  font-weight: 400;
}
.drawer__gnav .sub-menu a {
  padding: 0.8rem 0 0.8rem 1.5em;
}
.drawer__gnav .sub-menu__group + .sub-menu__group {
  margin-top: 1rem;
}
.drawer__gnav .sub-menu__title {
  padding: 0.8rem 0 0.4rem 1.5em;
  font-size: 1.3rem;
  font-weight: 700;
  opacity: 0.7;
}
.drawer__gnav .sub-menu__group a {
  padding-left: 2.5em;
}

.drawer__toggle {
  position: absolute;
  top: 1rem;
  right: 0;
  width: 4.4rem;
  height: 4.4rem;
}
.drawer__toggle::before, .drawer__toggle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.4rem;
  height: 1.5px;
  content: "";
  background: #ffffff;
  transform: translate(-50%, -50%);
  transition: transform 0.3s;
}
.drawer__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.drawer__toggle[aria-expanded=true]::after {
  transform: translate(-50%, -50%) rotate(0);
}

/* fix-cta(SP) */
.fix-cta {
  display: none;
}
@media (max-width: 767px) {
  .fix-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 6.5rem;
    padding: 1rem 2rem;
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(8px);
  }
  .fix-cta .header-cta {
    justify-content: center;
    width: 100%;
    max-width: 35rem;
  }
  .fix-cta .header-cta li {
    flex: 1;
  }
  .fix-cta .header-cta__btn {
    height: 4.5rem;
    padding: 0 1rem;
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    font-size: min(1.6rem, 4.2vw);
  }
}

/*page-common
-----------------------------------------------------*/
.main {
  overflow-x: clip;
}

body:not(.home) .main {
  padding-top: 8.4rem;
}
@media (max-width: 767px) {
  body:not(.home) .main {
    padding-top: 5rem;
  }
}

.container-lg,
.container-xl {
  margin: 0 auto;
  padding: 0 10rem;
}
@media (max-width: 1023px) {
  .container-lg,
  .container-xl {
    padding: 0 4rem;
  }
}
@media (max-width: 767px) {
  .container-lg,
  .container-xl {
    padding: 0 2rem;
  }
}

.container-lg {
  max-width: calc(1200px + 20rem);
}

.container-xl {
  max-width: calc(1400px + 20rem);
}

/* heading */
.c-heading {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media (max-width: 767px) {
  .c-heading {
    gap: 1rem;
  }
}

.c-heading__label {
  display: flex;
  align-items: center;
  gap: 2rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .c-heading__label {
    gap: 1.2rem;
  }
}

.c-heading__en {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
}
.c-heading__en::before {
  width: 1rem;
  height: 1rem;
  content: "";
  background: currentColor;
  border-radius: 50%;
}
@media (max-width: 767px) {
  .c-heading__en {
    gap: 0.6rem;
    font-size: 1.6rem;
  }
  .c-heading__en::before {
    width: 0.7rem;
    height: 0.7rem;
  }
}

.c-heading__jp {
  font-size: 1.9rem;
}
@media (max-width: 767px) {
  .c-heading__jp {
    font-size: 1.3rem;
  }
}

.c-heading__title {
  font-size: clamp(3.6rem, 1.3846153846rem + 2.8846153846vw, 6rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .c-heading__title {
    font-size: 2.6rem;
  }
}

.c-heading--white {
  color: #ffffff;
}
.c-heading--white .c-heading__en {
  color: #ffffff;
}

.c-sub-title {
  font-size: clamp(2.4rem, 1.2923076923rem + 1.4423076923vw, 3.6rem);
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}
.c-sub-title--left {
  text-align: left;
}
@media (max-width: 767px) {
  .c-sub-title {
    font-size: 2rem;
    line-height: 1.6;
  }
}

/* text */
.c-text p + p {
  margin-top: 1.8em;
}

/* btn */
.c-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 25.5rem;
  padding: 2rem 4.5rem 2rem 3rem;
  color: #1b2668;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.2;
  border: 1px solid #1b2668;
  border-radius: 6px;
  transition: opacity 0.3s;
}
.c-btn:hover, .c-btn:focus-visible {
  opacity: 0.7;
}
.c-btn::after {
  position: absolute;
  top: 50%;
  right: 2rem;
  width: 1.05rem;
  height: 0.74rem;
  content: "";
  background: url(../images/common/arrow_btn_main.svg) no-repeat center/contain;
  transform: translateY(-50%);
}
.c-btn--fill {
  color: #ffffff;
  background: #1b2668;
}
.c-btn--fill::after {
  background-image: url(../images/common/arrow_btn_white.svg);
}
.c-btn--auto {
  min-width: 0;
}
@media (max-width: 767px) {
  .c-btn {
    min-width: 0;
    width: 100%;
    padding: 1.8rem 4.5rem 1.8rem 3rem;
    font-size: 1.6rem;
  }
}

.c-btn-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}
@media (max-width: 767px) {
  .c-btn-list {
    gap: 1.5rem;
  }
}

.c-more {
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 3rem;
  white-space: nowrap;
  transition: opacity 0.3s;
}
.c-more:hover, .c-more:focus-visible {
  opacity: 0.7;
}
.c-more img {
  width: 5rem;
}
.c-more--white {
  color: #ffffff;
}
@media (max-width: 767px) {
  .c-more {
    gap: 1rem;
    font-size: 1.2rem;
  }
  .c-more img {
    width: 4rem;
  }
}

.c-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 1.5rem;
  color: #1b2668;
  font-size: 1.4rem;
  line-height: 1.6;
  white-space: nowrap;
  border: 1px solid #1b2668;
  border-radius: 100px;
}
.c-tag--lg {
  padding: 0.5rem 2rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .c-tag {
    padding: 0.1rem 1.2rem;
    font-size: 1.2rem;
  }
}

/* section */
.p-concept,
.p-overview,
.p-solution,
.p-product,
.p-voice,
.p-philosophy,
.p-message,
.p-blog,
.p-other {
  padding: 15rem 0;
}
@media (max-width: 1023px) {
  .p-concept,
  .p-overview,
  .p-solution,
  .p-product,
  .p-voice,
  .p-philosophy,
  .p-message,
  .p-blog,
  .p-other {
    padding: 10rem 0;
  }
}
@media (max-width: 767px) {
  .p-concept,
  .p-overview,
  .p-solution,
  .p-product,
  .p-voice,
  .p-philosophy,
  .p-message,
  .p-blog,
  .p-other {
    padding: 7rem 0;
  }
}

/* page-title */
.c-page-title {
  position: relative;
  overflow: hidden;
}
.c-page-title--img {
  min-height: 46rem;
}
@media (max-width: 767px) {
  .c-page-title {
    display: flex;
    flex-direction: column;
  }
  .c-page-title--img {
    min-height: 0;
  }
}

.c-page-title__img {
  position: absolute;
  top: 0;
  right: 0;
  width: 56.25%;
  height: 100%;
  overflow: hidden;
  border-top-left-radius: 40rem;
}
.c-page-title__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 767px) {
  .c-page-title__img {
    position: static;
    order: 2;
    width: auto;
    height: auto;
    margin: 3rem 0 0 4rem;
    border-top-left-radius: 12rem;
  }
  .c-page-title__img img {
    aspect-ratio: 900/460;
  }
}

.c-page-title--gray .c-page-title__img {
  background: #f6f6f6;
}
.c-page-title--gray .c-page-title__img img {
  mix-blend-mode: multiply;
}

.c-page-title__inner {
  position: relative;
  max-width: calc(1400px + 20rem);
  margin: 0 auto;
  padding: 10rem;
}
@media (max-width: 1023px) {
  .c-page-title__inner {
    padding: 8rem 4rem;
  }
}
@media (max-width: 767px) {
  .c-page-title__inner {
    width: 100%;
    padding: 3rem 2rem 0;
  }
}

.c-breadcrumb br {
  display: none;
}

.c-breadcrumb ol {
  display: flex;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
  color: #666666;
  font-size: 1.3rem;
  line-height: 1.4;
}
.c-breadcrumb ol li + li::before {
  margin: 0 1rem;
  content: "/";
}
.c-breadcrumb ol a {
  transition: opacity 0.3s;
}
.c-breadcrumb ol a:hover, .c-breadcrumb ol a:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .c-breadcrumb ol {
    font-size: 1.1rem;
  }
}

.c-page-title__heading {
  display: flex;
  flex-direction: column;
  gap: 2.8rem;
  margin-top: 3.5rem;
}
.c-page-title__heading::after {
  width: 10rem;
  height: 1px;
  content: "";
  background: #1b2668;
}
@media (max-width: 767px) {
  .c-page-title__heading {
    gap: 1.5rem;
    margin-top: 2rem;
  }
  .c-page-title__heading::after {
    width: 6rem;
  }
}

.c-page-title__en {
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(5.6rem, 0.6153846154rem + 6.4903846154vw, 11rem);
  font-weight: 700;
  line-height: 1.05;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .c-page-title__en {
    font-size: 4.4rem;
    white-space: normal;
  }
}

.c-page-title__jp {
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  font-weight: 700;
  line-height: 1.75;
}
@media (max-width: 767px) {
  .c-page-title__jp {
    font-size: 1.6rem;
  }
}

/* 英字を大見出しにする見出し(ラベルは日本語) */
.c-heading--en-title .c-heading__en {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
}
.c-heading--en-title .c-heading__title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(4.8rem, 0.9230769231rem + 5.0480769231vw, 9rem);
  line-height: 1.05;
  letter-spacing: 0;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .c-heading--en-title .c-heading__title {
    font-size: 4rem;
  }
}

.c-heading__jp:empty {
  display: none;
}

/*top
-----------------------------------------------------*/
/* mv */
.p-mv {
  padding-top: 9.1rem;
}
@media (max-width: 767px) {
  .p-mv {
    padding-top: 5.4rem;
  }
}

.p-mv__visual {
  position: relative;
}
.p-mv__visual img {
  display: block;
  width: 100%;
}

.p-mv__catch {
  position: absolute;
  top: 59.1%;
  left: 4.375%;
  font-family: YuGothic, "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  line-height: 1.4;
  letter-spacing: 0.15em;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .p-mv__catch {
    position: static;
    padding: 2rem 2rem 0;
  }
}

.p-mv__main {
  font-size: min(6rem, 3.75vw);
  font-weight: 700;
}
@media (max-width: 767px) {
  .p-mv__main {
    font-size: 3rem;
  }
}

.p-mv__sub {
  margin-top: 0.8rem;
  font-size: max(1.4rem, min(2.4rem, 1.5vw));
  font-weight: 500;
}
@media (max-width: 767px) {
  .p-mv__sub {
    margin-top: 0.9rem;
    font-size: 1.4rem;
  }
}

/* marquee */
.p-marquee {
  position: relative;
  z-index: 1;
  margin: -9.7rem 0 -7.4rem;
  overflow: hidden;
  pointer-events: none;
  opacity: 0.4;
}
@media (max-width: 767px) {
  .p-marquee {
    margin: 2.2rem 0 0;
  }
}

.p-marquee__filter {
  position: absolute;
}

.p-marquee__flood {
  flood-color: #333333;
}

.p-marquee__track {
  display: flex;
  width: max-content;
  animation: marquee 40s linear infinite;
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .p-marquee__track {
    animation: none;
  }
}

.p-marquee__text {
  padding: 0 4rem;
  font-family: "Roboto Static", Arial, Helvetica, sans-serif;
  font-size: 20rem;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
  color: #333333;
  filter: url(#marquee-outline);
}
@media (max-width: 767px) {
  .p-marquee__text {
    padding: 0 2rem;
    font-size: 8rem;
  }
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* news */
.p-news {
  padding: 10rem 0 6rem;
  border-bottom: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-news {
    padding: 5rem 0;
  }
}

.p-news__inner {
  display: flex;
  align-items: flex-start;
  gap: clamp(3rem, -0.6923076923rem + 4.8076923077vw, 7rem);
}
@media (max-width: 767px) {
  .p-news__inner {
    flex-wrap: wrap;
    align-items: center;
    gap: 2.5rem;
  }
}

.p-news__title {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex-shrink: 0;
  width: 16rem;
}
@media (max-width: 767px) {
  .p-news__title {
    width: auto;
    gap: 0.2rem;
  }
}

.p-news__en {
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(3.6rem, 2.3076923077rem + 1.6826923077vw, 5rem);
  font-weight: 700;
  line-height: 1;
}
@media (max-width: 767px) {
  .p-news__en {
    font-size: 3.6rem;
  }
}

.p-news__jp {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-news__jp {
    font-size: 1.4rem;
  }
}

.p-news__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media (max-width: 767px) {
  .p-news__list {
    order: 3;
    flex-basis: 100%;
    gap: 0;
  }
}

.p-news__item {
  display: flex;
  align-items: center;
  gap: 2rem;
  transition: opacity 0.3s;
}
.p-news__item:hover, .p-news__item:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .p-news__item {
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    padding: 1.5rem 0;
    border-top: 1px solid #dfdfdf;
  }
}

.p-news__date,
.p-news__item-title {
  line-height: 1.8;
}

.p-news__date {
  flex-shrink: 0;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .p-news__item-title {
    flex-basis: 100%;
  }
}

.p-news__more {
  margin: 0.6rem 0 0 auto;
}
@media (max-width: 767px) {
  .p-news__more {
    margin: 0 0 0 auto;
  }
}

/* concept */
.p-concept {
  position: relative;
}

.p-concept__contents {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(3rem, 0.2307692308rem + 3.6057692308vw, 6rem);
  margin-top: 7rem;
}
@media (max-width: 767px) {
  .p-concept__contents {
    flex-direction: column;
    margin-top: 4rem;
  }
}

.p-concept__text {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  min-width: 0;
}

.p-concept__title {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin-bottom: clamp(4rem, 1.2307692308rem + 3.6057692308vw, 7rem);
  font-weight: 700;
}
@media (max-width: 767px) {
  .p-concept__title {
    margin-bottom: 4rem;
  }
}

.p-concept__lead {
  font-size: clamp(1.8rem, 1.2461538462rem + 0.7211538462vw, 2.4rem);
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-concept__lead {
    font-size: 1.6rem;
  }
}

.p-concept__main {
  font-size: clamp(3.2rem, 0.6153846154rem + 3.3653846154vw, 6rem);
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .p-concept__main {
    font-size: 2.8rem;
  }
}

.p-concept__body {
  font-size: clamp(1.5rem, 0.8538461538rem + 0.8413461538vw, 2.2rem);
  line-height: 1.8;
}
.p-concept__body + .p-concept__body {
  margin-top: 1.8em;
}
@media (max-width: 767px) {
  .p-concept__body {
    font-size: 1.5rem;
  }
}

.p-concept__btn {
  margin-top: clamp(4rem, 1.2307692308rem + 3.6057692308vw, 7rem);
}
@media (max-width: 767px) {
  .p-concept__btn {
    margin-top: 4rem;
  }
}

.p-concept__img {
  position: relative;
  flex-shrink: 0;
  width: 41.4%;
}
.p-concept__img > img:not(.p-concept__glow) {
  position: relative;
  display: block;
  width: 100%;
}
@media (max-width: 767px) {
  .p-concept__img {
    width: 100%;
    max-width: 40rem;
    margin-left: auto;
  }
}

.p-concept__glow {
  position: absolute;
  top: 31.2%;
  left: -15.5%;
  width: 75.5%;
  height: 75.5%;
  object-fit: cover;
  opacity: 0.6;
  filter: blur(32px);
}

.p-concept__ring {
  position: absolute;
  top: 83.6rem;
  left: calc(50% + 22.1rem);
  width: 82.6rem;
  mix-blend-mode: multiply;
  pointer-events: none;
}
.p-concept__ring img {
  display: block;
  width: 100%;
}
@media (max-width: 1023px) {
  .p-concept__ring {
    top: auto;
    bottom: -40rem;
    left: auto;
    right: -30rem;
    width: 60rem;
  }
}
@media (max-width: 767px) {
  .p-concept__ring {
    bottom: -18rem;
    right: -14rem;
    width: 32rem;
  }
}

.p-concept__ring-text {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform-origin: 48.3% 49.9%;
  animation: ring-rotate 40s linear infinite;
}
.p-concept__ring-text text {
  fill: #e8e9f0;
  font-family: "Roboto Static", Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 700;
}
@media (prefers-reduced-motion: reduce) {
  .p-concept__ring-text {
    animation: none;
  }
}

@keyframes ring-rotate {
  to {
    transform: rotate(360deg);
  }
}
/* overview */
.p-overview {
  position: relative;
}

.p-overview__body {
  margin-top: 7rem;
}
@media (max-width: 767px) {
  .p-overview__body {
    margin-top: 3rem;
  }
}

.p-overview__sub-title {
  margin-top: 7rem;
}
@media (max-width: 767px) {
  .p-overview__sub-title {
    margin-top: 5rem;
  }
}

.p-overview__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.1rem;
  margin-top: 7rem;
  padding: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .p-overview__list {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-top: 3rem;
  }
}

.p-overview__item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 4rem;
  background: #ffffff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
@media (max-width: 1023px) {
  .p-overview__item {
    padding: 3rem 2rem;
  }
}
@media (max-width: 767px) {
  .p-overview__item {
    gap: 1.5rem;
    padding: 3rem 2rem;
  }
}

.p-overview__num {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  background: #1b2668;
}
@media (max-width: 767px) {
  .p-overview__num {
    width: 3.2rem;
    height: 3.2rem;
    font-size: 1.8rem;
  }
}

.p-overview__img {
  width: 100%;
  aspect-ratio: 300/169;
  object-fit: cover;
}

.p-overview__title {
  font-size: clamp(1.6rem, 1.2307692308rem + 0.4807692308vw, 2rem);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

.p-overview__text {
  font-size: 1.5rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-overview__text {
    font-size: 1.4rem;
  }
}

/* solution */
.p-solution {
  position: relative;
  background: #f6f6f6;
  border-top-left-radius: 100rem;
}
@media (max-width: 1023px) {
  .p-solution {
    border-top-left-radius: 40rem;
  }
}
@media (max-width: 767px) {
  .p-solution {
    border-top-left-radius: 20rem;
  }
}
.p-solution .c-sub-title--left {
  margin-top: 7rem;
}
@media (max-width: 767px) {
  .p-solution .c-sub-title--left {
    margin-top: 3rem;
  }
}

.p-solution__img {
  height: 50rem;
  margin: 7rem calc(50% - 50vw) 0 0;
}
.p-solution__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 1023px) {
  .p-solution__img {
    height: auto;
    aspect-ratio: 3/1;
  }
}
@media (max-width: 767px) {
  .p-solution__img {
    margin: 3rem -2rem 0;
    aspect-ratio: 16/9;
  }
}

.p-solution__body {
  margin-top: clamp(6rem, 2.3076923077rem + 4.8076923077vw, 10rem);
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  line-height: 1.8;
  text-align: center;
}
@media (max-width: 767px) {
  .p-solution__body {
    margin-top: 4rem;
    font-size: 1.5rem;
    text-align: left;
  }
}

.p-evidence {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 10rem;
  text-align: center;
}
.p-evidence > *:not(.p-evidence__bg-text) {
  position: relative;
}
@media (max-width: 767px) {
  .p-evidence {
    margin-top: 7rem;
  }
}

.p-evidence__bg-text {
  position: absolute;
  top: 3.2rem;
  left: 50%;
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(11rem, 2.6923076923rem + 10.8173076923vw, 20rem);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  transform: translate(-50%, -50%);
}
@media (max-width: 767px) {
  .p-evidence__bg-text {
    top: 2rem;
    font-size: 6.4rem;
  }
}

.p-evidence__text {
  margin-top: 3.1rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-evidence__text {
    margin-top: 2rem;
    text-align: left;
  }
}

.p-evidence__stats {
  display: flex;
  justify-content: center;
  gap: 3rem;
  width: 96rem;
  max-width: 100%;
  margin-top: 5rem;
  padding: 3rem 5rem;
  border-top: 1px solid #333333;
  border-bottom: 1px solid #333333;
}
@media (max-width: 767px) {
  .p-evidence__stats {
    gap: 2rem;
    margin-top: 3rem;
    padding: 2rem 0;
  }
}

.p-evidence__stat {
  display: flex;
  flex-direction: column-reverse;
  gap: 0.5rem;
  color: #555555;
  letter-spacing: 0.025rem;
}
.p-evidence__stat + .p-evidence__stat {
  padding-left: 3rem;
  border-left: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-evidence__stat + .p-evidence__stat {
    padding-left: 2rem;
  }
}
.p-evidence__stat dt {
  font-size: 1.4rem;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .p-evidence__stat dt {
    font-size: 1.2rem;
  }
}
.p-evidence__stat dd {
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .p-evidence__stat dd {
    font-size: 1.8rem;
  }
}
.p-evidence__stat .en {
  color: #d72e2c;
  font-size: clamp(4rem, 3.0769230769rem + 1.2019230769vw, 5rem);
}
@media (max-width: 767px) {
  .p-evidence__stat .en {
    font-size: 3.6rem;
  }
}

.p-evidence__list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  margin-top: 6rem;
}
@media (max-width: 767px) {
  .p-evidence__list {
    flex-direction: column;
    gap: 1.5rem;
    width: 100%;
    margin-top: 4rem;
  }
}

.p-evidence__item {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  flex: 0 1 46rem;
  min-width: 0;
}
@media (max-width: 767px) {
  .p-evidence__item {
    flex: none;
    width: 100%;
    gap: 1rem;
  }
}

.p-evidence__label {
  padding: 1rem;
  color: #ffffff;
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.025rem;
  background: #666666;
}
.p-evidence__item--after .p-evidence__label {
  background: #1b2668;
}
@media (max-width: 767px) {
  .p-evidence__label {
    font-size: 1.6rem;
  }
}

.p-evidence__img {
  position: relative;
}
.p-evidence__img img {
  display: block;
  width: 100%;
  aspect-ratio: 460/182;
}

.p-evidence__badge {
  position: absolute;
  bottom: 0.5rem;
  left: 1rem;
  padding: 0.5rem 1rem;
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  background: #333333;
}
.p-evidence__item--after .p-evidence__badge {
  background: #d72e2c;
}
@media (max-width: 767px) {
  .p-evidence__badge {
    font-size: 1.2rem;
  }
}

.p-evidence__arrow {
  width: 5rem;
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .p-evidence__arrow {
    width: 4rem;
    transform: rotate(90deg);
  }
}

.p-evidence__note {
  margin: 3.6rem 0 10rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-evidence__note {
    margin: 2rem 0 5rem;
    font-size: 1.2rem;
    text-align: left;
  }
}

/* product */
.p-product__body {
  margin-top: 7rem;
}
@media (max-width: 767px) {
  .p-product__body {
    margin-top: 3rem;
  }
}

.p-product__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.1rem;
  margin: 7rem 0;
}
@media (max-width: 767px) {
  .p-product__list {
    grid-template-columns: 1fr;
    gap: 4rem;
    margin: 4rem 0;
  }
}

.p-product__item {
  display: block;
  transition: opacity 0.3s;
}
.p-product__item:hover, .p-product__item:focus-visible {
  opacity: 0.7;
}

.p-product__img {
  display: block;
  width: 100%;
  aspect-ratio: 446/297;
  object-fit: cover;
}
.p-product__img--care {
  object-position: 98% 40.6%;
}

.p-product__title {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 3rem;
  font-weight: 700;
}
@media (max-width: 767px) {
  .p-product__title {
    margin-top: 2rem;
  }
}

.p-product__en {
  color: #1b2668;
  font-size: 1.6rem;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .p-product__en {
    font-size: 1.4rem;
  }
}

.p-product__jp {
  font-size: clamp(2.2rem, 1.4615384615rem + 0.9615384615vw, 3rem);
  line-height: 1.4;
  letter-spacing: 0.1em;
}
@media (max-width: 767px) {
  .p-product__jp {
    font-size: 2.4rem;
  }
}

.p-product__text {
  margin-top: 2rem;
  font-size: 1.5rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-product__text {
    margin-top: 1rem;
    font-size: 1.4rem;
  }
}

/* voice */
.p-voice {
  background: #f6f6f6;
  border-radius: 0 100rem 5rem 5rem;
}
@media (max-width: 1023px) {
  .p-voice {
    border-radius: 0 40rem 5rem 5rem;
  }
}
@media (max-width: 767px) {
  .p-voice {
    border-radius: 0 20rem 3rem 3rem;
  }
}

.p-voice__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.1rem;
  margin: 7rem 0;
}
@media (max-width: 767px) {
  .p-voice__list {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin: 4rem 0;
  }
}

.p-voice__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
  padding: 4rem;
  background: #ffffff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
@media (max-width: 1023px) {
  .p-voice__item {
    padding: 3rem 2rem;
  }
}
@media (max-width: 767px) {
  .p-voice__item {
    gap: 1.5rem;
  }
}

.p-voice__star {
  color: #ffae00;
  line-height: 1.8;
}

.p-voice__star-off {
  color: #dfdfdf;
}

.p-voice__text {
  line-height: 1.8;
}
.p-voice__text p + p {
  margin-top: 1em;
}

.p-voice__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem 1.2rem;
}

.p-voice__tag {
  padding: 0.2rem 1rem;
  font-size: 1.2rem;
  line-height: 1.8;
  border: 1px solid #333333;
  border-radius: 100px;
}

.p-voice__name {
  color: #666666;
  font-size: 1.4rem;
  line-height: 1.6;
}

/* お客様の声ページ(1 列) */
.p-voice__list--column {
  grid-template-columns: 1fr;
  gap: 3rem;
  max-width: 86rem;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 767px) {
  .p-voice__list--column {
    gap: 2rem;
  }
}

.p-voice__item--list {
  gap: 1.5rem;
  padding: 4rem 5rem;
}
.p-voice__item--list .p-voice__text {
  margin-top: 0.5rem;
}
@media (max-width: 767px) {
  .p-voice__item--list {
    padding: 2.5rem 2rem;
  }
}

.p-voice__text.is-clamped {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}

.p-voice__more {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: #1b2668;
  font-size: 1.4rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.3s;
}
.p-voice__more:hover, .p-voice__more:focus-visible {
  opacity: 0.7;
}
.p-voice__more::after {
  content: "+";
  font-size: 1.6rem;
  line-height: 1;
}
.p-voice__more[aria-expanded=true]::after {
  content: "−";
}

/* お客様の声 一覧 */
.p-voice--archive {
  border-radius: 0 0 5rem 5rem;
}
.p-voice--archive .p-voice__list {
  margin: 0 auto;
}
@media (max-width: 767px) {
  .p-voice--archive {
    border-radius: 0 0 3rem 3rem;
  }
}

.p-voice__empty {
  margin-top: 4rem;
}

/* philosophy */
.p-philosophy {
  position: relative;
  overflow: hidden;
  color: #ffffff;
  background: linear-gradient(119.57deg, #1b2668 0.14%, #3c4895 96.37%);
}

.p-philosophy__bg-text {
  position: absolute;
  top: clamp(9rem, 6.5076923077rem + 3.2451923077vw, 11.7rem);
  left: 29.1%;
  color: transparent;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(11rem, 2.6923076923rem + 10.8173076923vw, 20rem);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  opacity: 0.1;
  -webkit-text-stroke: 1px #ffffff;
}
@media (max-width: 767px) {
  .p-philosophy__bg-text {
    top: 5rem;
    left: 30%;
    font-size: 7rem;
  }
}

.p-philosophy__list {
  position: relative;
  margin-top: 7rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}
@media (max-width: 767px) {
  .p-philosophy__list {
    margin-top: 4rem;
  }
}
.p-philosophy__list li {
  border-top: 1px solid rgba(255, 255, 255, 0.4);
}

.p-philosophy__item {
  display: flex;
  align-items: center;
  gap: 3rem;
  padding: 4rem 4rem 4rem 0;
  transition: opacity 0.3s;
}
.p-philosophy__item:hover, .p-philosophy__item:focus-visible {
  opacity: 0.7;
}
@media (max-width: 1023px) {
  .p-philosophy__item {
    gap: 2rem;
    padding-right: 0;
  }
}
@media (max-width: 767px) {
  .p-philosophy__item {
    flex-wrap: wrap;
    gap: 1.5rem 1rem;
    padding: 2.5rem 0;
  }
}

.p-philosophy__label {
  flex-shrink: 0;
  min-width: clamp(10rem, 6.9538461538rem + 3.9663461538vw, 13.3rem);
  padding: clamp(1.4rem, 0.8461538462rem + 0.7211538462vw, 2rem);
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  font-weight: 700;
  line-height: 1;
  text-align: center;
  background: #ffffff;
}
@media (max-width: 767px) {
  .p-philosophy__label {
    min-width: 9rem;
    padding: 1rem;
    font-size: 1.4rem;
  }
}

.p-philosophy__text {
  font-size: clamp(2rem, 1.0769230769rem + 1.2019230769vw, 3rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}
@media (max-width: 767px) {
  .p-philosophy__text {
    order: 3;
    flex-basis: 100%;
    font-size: 1.7rem;
    letter-spacing: 0.05em;
  }
}

.p-philosophy__arrow {
  flex-shrink: 0;
  width: 2.25rem;
  margin-left: auto;
}
@media (max-width: 767px) {
  .p-philosophy__arrow {
    width: 1.8rem;
  }
}

/* message */
.p-message__inner {
  display: flex;
  align-items: center;
  gap: clamp(4rem, -1.5384615385rem + 7.2115384615vw, 10rem);
}
@media (max-width: 767px) {
  .p-message__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 4rem;
  }
}

.p-message__img {
  flex-shrink: 0;
  width: 33.3%;
}
.p-message__img img {
  display: block;
  width: 100%;
  aspect-ratio: 400/592;
  object-fit: cover;
}
@media (max-width: 767px) {
  .p-message__img {
    width: 100%;
  }
  .p-message__img img {
    aspect-ratio: 4/3;
  }
}

.p-message__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
}
@media (max-width: 767px) {
  .p-message__text {
    gap: 3rem;
  }
}

.p-message__body {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  width: 100%;
  max-width: 70rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-message__body {
    gap: 2rem;
  }
}

.p-message__lead {
  font-size: clamp(1.7rem, 1.2384615385rem + 0.6009615385vw, 2.2rem);
  font-weight: 700;
}
@media (max-width: 767px) {
  .p-message__lead {
    font-size: 1.6rem;
  }
}

.p-message__paragraphs {
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
}
@media (max-width: 767px) {
  .p-message__paragraphs {
    font-size: 1.4rem;
  }
  .p-message__paragraphs p + p {
    margin-top: 1em;
  }
}

.p-message__sign {
  display: flex;
  justify-content: flex-end;
  gap: 1em;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  font-weight: 700;
}
@media (max-width: 767px) {
  .p-message__sign {
    font-size: 1.5rem;
  }
}

/* blog */
.p-blog {
  overflow: hidden;
  background: #f6f6f6;
}

.p-blog__inner {
  position: relative;
}

.p-blog__nav {
  position: absolute;
  top: 9.4rem;
  right: 8rem;
  display: flex;
  gap: 1rem;
}
@media (max-width: 1023px) {
  .p-blog__nav {
    right: 4rem;
  }
}
@media (max-width: 767px) {
  .p-blog__nav {
    position: static;
    justify-content: flex-end;
    margin-top: 2rem;
  }
}

.p-blog__arrow {
  width: 5rem;
  line-height: 0;
  transition: opacity 0.3s;
}
.p-blog__arrow--prev img {
  transform: rotate(180deg);
}
.p-blog__arrow:disabled {
  cursor: default;
  opacity: 0.3;
}
@media (max-width: 767px) {
  .p-blog__arrow {
    width: 4rem;
  }
}

.p-blog__list {
  display: flex;
  gap: 3.1rem;
  margin: 7rem calc(50% - 50vw) 7rem 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.p-blog__list::-webkit-scrollbar {
  display: none;
}
@media (max-width: 767px) {
  .p-blog__list {
    gap: 2rem;
    margin: 2rem -2rem 4rem 0;
  }
}

.p-blog__item {
  flex: 0 0 clamp(30rem, 16.5230769231rem + 17.5480769231vw, 44.6rem);
  scroll-snap-align: start;
}
.p-blog__item:last-child {
  margin-right: 10rem;
}
.p-blog__item a {
  display: block;
  transition: opacity 0.3s;
}
.p-blog__item a:hover, .p-blog__item a:focus-visible {
  opacity: 0.7;
}
.p-blog__item .c-tag {
  margin-top: 3rem;
}
@media (max-width: 767px) {
  .p-blog__item {
    flex-basis: 28rem;
  }
  .p-blog__item:last-child {
    margin-right: 2rem;
  }
  .p-blog__item .c-tag {
    margin-top: 2rem;
  }
}

.p-blog__img {
  aspect-ratio: 446/297;
  background: #ffffff;
}
.p-blog__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-blog__title {
  margin-top: 1rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .p-blog__title {
    font-size: 1.6rem;
  }
}

.p-blog__date {
  display: block;
  margin-top: 2rem;
  color: #666666;
  font-size: 1.4rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-blog__date {
    margin-top: 1rem;
    font-size: 1.2rem;
  }
}

/* other */
.p-other__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (max-width: 767px) {
  .p-other__cards {
    grid-template-columns: 1fr;
  }
}

.p-other__card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  height: clamp(28rem, 16.4615384615rem + 15.0240384615vw, 40.5rem);
  padding: clamp(2.5rem, 1.1153846154rem + 1.8028846154vw, 4rem) clamp(2.5rem, 0.1923076923rem + 3.0048076923vw, 5rem);
  overflow: hidden;
  color: #ffffff;
}
.p-other__card::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  background: rgba(0, 0, 0, 0.6);
}
.p-other__card:hover .p-other__card-img {
  transform: scale(1.05);
}
@media (max-width: 767px) {
  .p-other__card {
    height: 28rem;
    padding: 2.5rem 2rem;
  }
}

.p-other__card-img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.p-other__card-img--business {
  object-position: 26% 49%;
}

.p-other__card-en {
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(1.5rem, 1.0384615385rem + 0.6009615385vw, 2rem);
  font-weight: 700;
  line-height: 1.56;
}
@media (max-width: 767px) {
  .p-other__card-en {
    font-size: 1.4rem;
  }
}

.p-other__card-title {
  margin-top: 1rem;
  font-size: clamp(2.4rem, 1.2923076923rem + 1.4423076923vw, 3.6rem);
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .p-other__card-title {
    margin-top: 0.5rem;
    font-size: 2.4rem;
  }
}

.p-other__card-text {
  margin: clamp(1.5rem, 0.1153846154rem + 1.8028846154vw, 3rem) 0;
  font-size: clamp(1.4rem, 1.0307692308rem + 0.4807692308vw, 1.8rem);
  line-height: 1.6;
}
@media (max-width: 767px) {
  .p-other__card-text {
    margin: 1.5rem 0;
    font-size: 1.4rem;
  }
}

.p-other__links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  margin-top: 3rem;
}
@media (max-width: 1023px) {
  .p-other__links {
    gap: 1.5rem;
  }
}
@media (max-width: 767px) {
  .p-other__links {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 2rem;
  }
}

.p-other__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2rem 2rem 2rem 3rem;
  color: #1b2668;
  border: 1px solid #1b2668;
  border-radius: 6px;
  transition: opacity 0.3s;
}
.p-other__link:hover, .p-other__link:focus-visible {
  opacity: 0.7;
}
.p-other__link img {
  width: 1.6rem;
}
@media (max-width: 767px) {
  .p-other__link {
    padding: 1.5rem 2rem;
  }
}

.p-other__link-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (max-width: 767px) {
  .p-other__link-text {
    gap: 0.5rem;
  }
}

.p-other__link-en {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  opacity: 0.5;
}
@media (max-width: 767px) {
  .p-other__link-en {
    font-size: 1.2rem;
  }
}

.p-other__link-jp {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 1023px) {
  .p-other__link-jp {
    font-size: 2rem;
  }
}

/*page
-----------------------------------------------------*/
.p-page {
  padding: 8rem 0 15rem;
}
@media (max-width: 767px) {
  .p-page {
    padding: 4rem 0 8rem;
  }
}

.p-page__content {
  line-height: 1.8;
}
.p-page__content > * + * {
  margin-top: 1.5em;
}
.p-page__content h2 {
  margin-top: 2.5em;
  padding-bottom: 0.5em;
  font-size: clamp(2rem, 1.4461538462rem + 0.7211538462vw, 2.6rem);
  border-bottom: 1px solid #dfdfdf;
}
.p-page__content h3 {
  margin-top: 2em;
  font-size: clamp(1.8rem, 1.6153846154rem + 0.2403846154vw, 2rem);
}
.p-page__content a {
  color: #1b2668;
  text-decoration: underline;
}
.p-page__content ul {
  padding-left: 1.5em;
  list-style: disc;
}

/*about
-----------------------------------------------------*/
.p-about-philosophy,
.p-about-message,
.p-about-company,
.p-about-history,
.p-about-office {
  padding: 15rem 0;
}
@media (max-width: 1023px) {
  .p-about-philosophy,
  .p-about-message,
  .p-about-company,
  .p-about-history,
  .p-about-office {
    padding: 10rem 0;
  }
}
@media (max-width: 767px) {
  .p-about-philosophy,
  .p-about-message,
  .p-about-company,
  .p-about-history,
  .p-about-office {
    padding: 7rem 0;
  }
}

/* philosophy */
.p-about-philosophy {
  position: relative;
}
.p-about-philosophy > .container-xl {
  position: relative;
}

.p-about-philosophy__concept {
  margin-top: 7rem;
}
@media (max-width: 767px) {
  .p-about-philosophy__concept {
    margin-top: 4rem;
  }
}

.p-about-philosophy__concept-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 3rem;
}
@media (max-width: 767px) {
  .p-about-philosophy__concept-title {
    gap: 0.5rem 1.5rem;
  }
}

.p-about-philosophy__concept-en {
  display: inline-flex;
  align-items: center;
  gap: 3rem;
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(3.2rem, 1.5384615385rem + 2.1634615385vw, 5rem);
  font-weight: 700;
  line-height: 1.05;
}
.p-about-philosophy__concept-en::after {
  width: 4rem;
  height: 1px;
  content: "";
  background: #666666;
}
@media (max-width: 767px) {
  .p-about-philosophy__concept-en {
    gap: 1.5rem;
    font-size: 2.6rem;
  }
  .p-about-philosophy__concept-en::after {
    display: none;
  }
}

.p-about-philosophy__concept-jp {
  font-size: clamp(2.6rem, 1.3076923077rem + 1.6826923077vw, 4rem);
  font-weight: 700;
  line-height: 1.75;
}
@media (max-width: 767px) {
  .p-about-philosophy__concept-jp {
    font-size: 2rem;
  }
}

.p-about-philosophy__concept-text {
  margin-top: 4rem;
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  line-height: 1.75;
}
@media (max-width: 767px) {
  .p-about-philosophy__concept-text {
    margin-top: 2rem;
    font-size: 1.5rem;
  }
}

.p-about-mission {
  margin-top: 7rem;
  padding: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .p-about-mission {
    margin-top: 4rem;
  }
}

.p-about-mission__item {
  display: flex;
  gap: clamp(4rem, 0.3076923077rem + 4.8076923077vw, 8rem);
  padding: 8rem 0;
  border-top: 1px solid #dfdfdf;
}
.p-about-mission__item:last-child {
  padding-bottom: 0;
}
@media (max-width: 767px) {
  .p-about-mission__item {
    flex-direction: column;
    gap: 2rem;
    padding: 4rem 0;
  }
}

.p-about-mission__index {
  display: flex;
  flex: 0 0 clamp(17rem, 7.7692307692rem + 12.0192307692vw, 27rem);
  flex-direction: column;
  gap: 1.5rem;
}
@media (max-width: 767px) {
  .p-about-mission__index {
    flex: none;
    flex-direction: row;
    align-items: flex-end;
    gap: 2rem;
  }
}

.p-about-mission__num {
  color: #e8e9f0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(9rem, 4.3846153846rem + 6.0096153846vw, 14rem);
  font-weight: 700;
  line-height: 1.05;
}
@media (max-width: 767px) {
  .p-about-mission__num {
    font-size: 6rem;
  }
}

.p-about-mission__label {
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.05;
}
.p-about-mission__label::before {
  width: 3rem;
  height: 1px;
  content: "";
  background: #1b2668;
}
@media (max-width: 767px) {
  .p-about-mission__label {
    padding-bottom: 1rem;
    font-size: 1.6rem;
  }
  .p-about-mission__label::before {
    width: 2rem;
  }
}

.p-about-mission__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 2.4rem;
  min-width: 0;
}
@media (max-width: 767px) {
  .p-about-mission__body {
    gap: 1.5rem;
  }
}

.p-about-mission__title {
  color: #1b2668;
  font-size: clamp(2.4rem, 1.2923076923rem + 1.4423076923vw, 3.6rem);
  font-weight: 700;
  line-height: 1.75;
}
@media (max-width: 767px) {
  .p-about-mission__title {
    font-size: 1.9rem;
    line-height: 1.6;
  }
}

.p-about-mission__text {
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  line-height: 1.75;
}
@media (max-width: 767px) {
  .p-about-mission__text {
    font-size: 1.5rem;
  }
  .p-about-mission__text br {
    display: none;
  }
}

/* message */
.p-about-message {
  background: #f0f3f9;
}

.p-about-message__contents {
  display: flex;
  align-items: flex-start;
  gap: clamp(4rem, -1.5384615385rem + 7.2115384615vw, 10rem);
  margin-top: 7rem;
}
@media (max-width: 767px) {
  .p-about-message__contents {
    flex-direction: column;
    gap: 3rem;
    margin-top: 4rem;
  }
}

.p-about-message__img {
  flex: 0 0 31.4%;
}
.p-about-message__img img {
  display: block;
  width: 100%;
  aspect-ratio: 440/620;
  object-fit: cover;
}
@media (max-width: 767px) {
  .p-about-message__img {
    flex: none;
    width: 100%;
  }
  .p-about-message__img img {
    aspect-ratio: 4/3;
  }
}

.p-about-message__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 3rem;
  min-width: 0;
}
@media (max-width: 767px) {
  .p-about-message__text {
    gap: 2rem;
  }
}

.p-about-message__body {
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-about-message__body {
    font-size: 1.4rem;
  }
}

.p-about-message__lead {
  font-size: clamp(1.8rem, 1.4307692308rem + 0.4807692308vw, 2.2rem);
  font-weight: 700;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-about-message__lead {
    font-size: 1.6rem;
  }
}

.p-about-message__sign {
  display: flex;
  justify-content: flex-end;
  gap: 1em;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  font-weight: 700;
  line-height: 1.75;
}

/* company */
.p-about-company__inner {
  display: flex;
  align-items: flex-start;
  gap: clamp(6rem, -6.9230769231rem + 16.8269230769vw, 20rem);
}
.p-about-company__inner > .c-heading {
  flex-shrink: 0;
}
@media (max-width: 1023px) {
  .p-about-company__inner {
    flex-direction: column;
    gap: 4rem;
  }
}

.p-about-company__table {
  flex: 1;
  max-width: 91.2rem;
  min-width: 0;
  border-top: 1px solid #dfdfdf;
}
@media (max-width: 1023px) {
  .p-about-company__table {
    width: 100%;
    max-width: none;
  }
}
.p-about-company__table > div {
  display: flex;
  gap: 2rem;
  padding: 2rem 0;
  line-height: 1.8;
  border-bottom: 1px solid #dfdfdf;
}
.p-about-company__table dt {
  flex: 0 0 clamp(13rem, 6.5384615385rem + 8.4134615385vw, 20rem);
  font-weight: 700;
}
.p-about-company__table dd {
  flex: 1;
  min-width: 0;
}
.p-about-company__table a {
  color: #1b2668;
  text-decoration: underline;
  transition: opacity 0.3s;
}
.p-about-company__table a:hover, .p-about-company__table a:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .p-about-company__table {
    width: 100%;
  }
  .p-about-company__table > div {
    flex-direction: column;
    gap: 0.3rem;
    padding: 1.5rem 0;
  }
  .p-about-company__table dt {
    flex: none;
  }
}

.p-about-company__name {
  margin-right: 1em;
}

/* history */
.p-about-history {
  background: #f6f6f6;
}

.p-about-history__list {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin-top: 5rem;
}
@media (max-width: 767px) {
  .p-about-history__list {
    gap: 2rem;
    margin-top: 3rem;
  }
}

.p-about-history__item {
  display: flex;
  padding-left: clamp(0rem, -9.2307692308rem + 12.0192307692vw, 10rem);
}
@media (max-width: 767px) {
  .p-about-history__item {
    flex-direction: column;
    gap: 0.8rem;
    padding-left: 0;
  }
}

.p-about-history__year {
  flex: 0 0 clamp(13rem, 6.5384615385rem + 8.4134615385vw, 20rem);
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(2.8rem, 1.8769230769rem + 1.2019230769vw, 3.8rem);
  font-weight: 700;
  line-height: 1.05;
}
@media (max-width: 767px) {
  .p-about-history__year {
    flex: none;
    font-size: 2.4rem;
  }
}

.p-about-history__text {
  flex: 1;
  min-width: 0;
  padding-bottom: 3rem;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
  border-bottom: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-about-history__text {
    padding-bottom: 2rem;
    font-size: 1.4rem;
  }
}

/* office */
.p-about-office__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(2.4rem, 0rem + 3.125vw, 5rem);
  margin-top: 4.8rem;
}
@media (max-width: 767px) {
  .p-about-office__list {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-top: 3rem;
  }
}

.p-about-office__item {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  padding: clamp(2.4rem, 0.9230769231rem + 1.9230769231vw, 4rem);
  background: #f6f6f6;
}
@media (max-width: 767px) {
  .p-about-office__item {
    gap: 1.5rem;
    padding: 2rem;
  }
}

.p-about-office__img {
  display: block;
  width: 100%;
  aspect-ratio: 595/300;
  object-fit: cover;
}

.p-about-office__num {
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(3.6rem, 2.1230769231rem + 1.9230769231vw, 5.2rem);
  font-weight: 700;
  line-height: 1.05;
}
@media (max-width: 767px) {
  .p-about-office__num {
    font-size: 3.2rem;
  }
}

.p-about-office__name {
  font-size: clamp(2.2rem, 1.4615384615rem + 0.9615384615vw, 3rem);
  font-weight: 700;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .p-about-office__name {
    font-size: 2rem;
  }
}

.p-about-office__address {
  flex: 1;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-about-office__address {
    font-size: 1.4rem;
  }
}

.p-about-office__map {
  display: flex;
  gap: 1rem;
  padding-top: 2.4rem;
  font-size: 1.8rem;
  border-top: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-about-office__map {
    padding-top: 1.5rem;
    font-size: 1.5rem;
  }
}

/*subpage-common
-----------------------------------------------------*/
/* pagination(the_posts_pagination) */
.pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: 6rem;
}
.pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 4.4rem;
  height: 4.4rem;
  padding: 0 1rem;
  color: #1b2668;
  background: #ffffff;
  border: 1px solid #1b2668;
  border-radius: 6px;
}
.pagination .page-numbers.current {
  color: #ffffff;
  background: #1b2668;
}
.pagination .page-numbers.dots {
  min-width: 0;
  border: 0;
}
.pagination .page-numbers.prev, .pagination .page-numbers.next {
  background: #ffffff url(../images/common/arrow_link.svg) no-repeat center/1.6rem auto;
}
.pagination .page-numbers.prev {
  transform: scaleX(-1);
}
.pagination a.page-numbers {
  transition: opacity 0.3s;
}
.pagination a.page-numbers:hover, .pagination a.page-numbers:focus-visible {
  opacity: 0.7;
}

/* section */
.c-section {
  padding: 15rem 0;
}
@media (max-width: 1023px) {
  .c-section {
    padding: 10rem 0;
  }
}
@media (max-width: 767px) {
  .c-section {
    padding: 7rem 0;
  }
}
.c-section--gray-round-tl, .c-section--gray-round-tr {
  background: #f6f6f6;
}
.c-section--gray-round-tl {
  border-top-left-radius: 100rem;
}
@media (max-width: 1023px) {
  .c-section--gray-round-tl {
    border-top-left-radius: 40rem;
  }
}
@media (max-width: 767px) {
  .c-section--gray-round-tl {
    border-top-left-radius: 20rem;
  }
}
.c-section--gray-round-tr {
  border-top-right-radius: 100rem;
}
@media (max-width: 1023px) {
  .c-section--gray-round-tr {
    border-top-right-radius: 40rem;
  }
}
@media (max-width: 767px) {
  .c-section--gray-round-tr {
    border-top-right-radius: 20rem;
  }
}
.c-section--narrow {
  padding: 12rem 0;
}
@media (max-width: 767px) {
  .c-section--narrow {
    padding: 6rem 0;
  }
}
.c-section .c-heading + * {
  margin-top: clamp(4rem, 1.2307692308rem + 3.6057692308vw, 7rem);
}
@media (max-width: 767px) {
  .c-section .c-heading + * {
    margin-top: 3rem;
  }
}

.c-section__text {
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
}
@media (max-width: 767px) {
  .c-section__text {
    font-size: 1.4rem;
  }
}

.c-lead-text {
  margin-top: clamp(5rem, 3.1538461538rem + 2.4038461538vw, 7rem);
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  line-height: 1.8;
  text-align: center;
}
@media (max-width: 767px) {
  .c-lead-text {
    margin-top: 4rem;
    font-size: 1.5rem;
    text-align: left;
  }
}

.c-heading02 {
  color: #1b2668;
  font-size: clamp(2.4rem, 1.2923076923rem + 1.4423076923vw, 3.6rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .c-heading02 {
    font-size: 2rem;
  }
}

.c-line-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  font-size: clamp(2.4rem, 1.2923076923rem + 1.4423076923vw, 3.6rem);
  font-weight: 700;
  line-height: 1.8;
}
.c-line-title::before, .c-line-title::after {
  width: 4rem;
  height: 1px;
  content: "";
  background: #333333;
}
@media (max-width: 767px) {
  .c-line-title {
    gap: 1.5rem;
    font-size: 2rem;
  }
  .c-line-title::before, .c-line-title::after {
    width: 2.4rem;
  }
}

/* card */
.c-card-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7rem clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
}
@media (max-width: 767px) {
  .c-card-list {
    grid-template-columns: 1fr;
    gap: 5rem;
  }
}

.c-section__text + .c-card-list {
  margin-top: clamp(5rem, 3.1538461538rem + 2.4038461538vw, 7rem);
}

.c-card {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
@media (max-width: 767px) {
  .c-card {
    gap: 2rem;
  }
}

.c-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 675/380;
  object-fit: cover;
}

.c-card__heading {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (max-width: 767px) {
  .c-card__heading {
    gap: 0.5rem;
  }
}

.c-card__en {
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.05;
}
@media (max-width: 767px) {
  .c-card__en {
    font-size: 1.4rem;
  }
}

.c-card__num {
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(3.6rem, 2.1230769231rem + 1.9230769231vw, 5.2rem);
  font-weight: 700;
  line-height: 1.05;
}
@media (max-width: 767px) {
  .c-card__num {
    font-size: 3.2rem;
  }
}

.c-card__title {
  font-size: clamp(2rem, 1.0769230769rem + 1.2019230769vw, 3rem);
  font-weight: 700;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .c-card__title {
    font-size: 2rem;
  }
}

.c-card__body {
  flex: 1;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .c-card__body {
    font-size: 1.4rem;
  }
}

.c-card__note {
  margin-top: 1.8em;
  font-size: 1.4rem;
}
@media (max-width: 767px) {
  .c-card__note {
    font-size: 1.2rem;
  }
}

.c-card__more {
  padding-top: 3rem;
  font-size: 1.8rem;
  line-height: 1.05;
  border-top: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .c-card__more {
    padding-top: 2rem;
    font-size: 1.4rem;
  }
}

/* media(写真 + 本文の 2 カラム) */
.c-media {
  display: flex;
  align-items: flex-start;
  gap: clamp(4rem, -1.5384615385rem + 7.2115384615vw, 10rem);
}
.c-media--reverse {
  flex-direction: row-reverse;
}
@media (max-width: 767px) {
  .c-media {
    flex-direction: column;
    gap: 3rem;
  }
}

.c-media__img {
  position: relative;
  flex: 0 0 47.85%;
}
.c-media__img > img {
  display: block;
  width: 100%;
  aspect-ratio: 670/447;
  object-fit: cover;
}
.c-media__img--contain {
  background: #ffffff;
}
@media (max-width: 767px) {
  .c-media__img {
    flex: none;
    width: 100%;
  }
}

.c-media__text {
  flex: 1;
  min-width: 0;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
}
.c-media__text strong {
  font-weight: 700;
}
@media (max-width: 767px) {
  .c-media__text {
    font-size: 1.4rem;
  }
}

/* info-box(電話窓口・解決しない場合) */
.c-info-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  padding: 5rem clamp(0rem, -4.6153846154rem + 6.0096153846vw, 5rem);
  text-align: center;
  border-top: 1px solid #333333;
  border-bottom: 1px solid #333333;
}
.c-info-box .c-btn {
  margin-top: 3rem;
}
@media (max-width: 767px) {
  .c-info-box {
    gap: 1.5rem;
    padding: 4rem 0;
  }
  .c-info-box .c-btn {
    margin-top: 1.5rem;
  }
}

.c-info-box__title {
  font-size: clamp(2.4rem, 1.2923076923rem + 1.4423076923vw, 3.6rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .c-info-box__title {
    font-size: 2rem;
  }
}

.c-info-box__tel {
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(4rem, 2.1538461538rem + 2.4038461538vw, 6rem);
  font-weight: 700;
  line-height: 1.15;
  transition: opacity 0.3s;
}
.c-info-box__tel:hover, .c-info-box__tel:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .c-info-box__tel {
    font-size: 3.4rem;
  }
}

.c-info-box__text {
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
}
@media (max-width: 767px) {
  .c-info-box__text {
    font-size: 1.4rem;
  }
}

.c-info-box__notes {
  color: #666666;
  font-size: clamp(1.3rem, 1.0230769231rem + 0.3605769231vw, 1.6rem);
  line-height: 1.8;
  text-align: left;
}
.c-info-box__notes li {
  padding-left: 1.5em;
  text-indent: -1.5em;
}

/* ring(装飾) */
.c-ring {
  position: absolute;
  top: 13.6rem;
  left: calc(50% + 24.1rem);
  width: 82.6rem;
  mix-blend-mode: multiply;
  pointer-events: none;
}
@media (max-width: 1023px) {
  .c-ring {
    left: auto;
    right: -30rem;
    width: 60rem;
  }
}
@media (max-width: 767px) {
  .c-ring {
    top: 4rem;
    right: -16rem;
    width: 32rem;
  }
}

/*solution
-----------------------------------------------------*/
.p-solution-concept__logo {
  position: absolute;
  top: 24.6%;
  left: 55.2%;
  width: 37.3%;
  height: 10.7%;
  background: #ffffff;
}
.p-solution-concept__logo img {
  position: absolute;
  top: 2%;
  left: 12.8%;
  width: 73.4%;
}

.p-solution-evidence {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4rem, 1.2307692308rem + 3.6057692308vw, 7rem);
  padding: 0 clamp(0rem, -20.3076923077rem + 26.4423076923vw, 22rem);
}
.p-solution-evidence .p-evidence__stats {
  margin-top: 0;
}
@media (max-width: 767px) {
  .p-solution-evidence {
    gap: 3rem;
  }
}

.p-solution-evidence__text {
  align-self: stretch;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-solution-evidence__text {
    font-size: 1.4rem;
  }
}

.p-solution-evidence__img {
  display: block;
  width: 100%;
  max-width: 96rem;
  aspect-ratio: 960/528;
  object-fit: cover;
}

.p-solution-evidence__lead {
  align-self: stretch;
  font-size: clamp(1.7rem, 1.2384615385rem + 0.6009615385vw, 2.2rem);
  font-weight: 700;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-solution-evidence__lead {
    font-size: 1.6rem;
  }
}

/*product
-----------------------------------------------------*/
.p-product-intro {
  position: relative;
  padding: 15rem 0 7rem;
}
.p-product-intro > .container-xl {
  position: relative;
}
@media (max-width: 1023px) {
  .p-product-intro {
    padding: 10rem 0 6rem;
  }
}
@media (max-width: 767px) {
  .p-product-intro {
    padding: 7rem 0 5rem;
  }
}

.p-product-intro__text {
  margin-top: clamp(4rem, 1.2307692308rem + 3.6057692308vw, 7rem);
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  line-height: 1.75;
}
@media (max-width: 767px) {
  .p-product-intro__text {
    margin-top: 3rem;
    font-size: 1.5rem;
  }
}

.p-product-category {
  position: relative;
  padding: 15rem 0;
}
.p-product-category--sleep {
  border-top: 1px solid #dfdfdf;
}
.p-product-category--relax {
  background: #f0f3f9;
}
@media (max-width: 1023px) {
  .p-product-category {
    padding: 10rem 0;
  }
}
@media (max-width: 767px) {
  .p-product-category {
    padding: 6rem 0;
  }
}

.p-product-category__inner {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4rem, -1.5384615385rem + 7.2115384615vw, 10rem);
}
@media (max-width: 767px) {
  .p-product-category__inner {
    gap: 3rem;
  }
}

.p-product-category__heading {
  display: flex;
  flex: 0 0 clamp(18rem, 6.9230769231rem + 14.4230769231vw, 30rem);
  flex-direction: column;
  gap: 1.5rem;
}
@media (max-width: 767px) {
  .p-product-category__heading {
    flex: none;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: flex-end;
    gap: 0.5rem 2rem;
    width: 100%;
  }
}

.p-product-category__num {
  color: #e8e9f0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(9rem, 4.3846153846rem + 6.0096153846vw, 14rem);
  font-weight: 700;
  line-height: 1.05;
}
.p-product-category--relax .p-product-category__num {
  color: #ffffff;
}
@media (max-width: 767px) {
  .p-product-category__num {
    font-size: 6rem;
  }
}

.p-product-category__en {
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.05;
}
@media (max-width: 767px) {
  .p-product-category__en {
    padding-bottom: 1rem;
    font-size: 1.6rem;
  }
}

.p-product-category__title {
  font-size: clamp(3.6rem, 1.3846153846rem + 2.8846153846vw, 6rem);
  font-weight: 700;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .p-product-category__title {
    flex-basis: 100%;
    font-size: 3rem;
  }
}

.p-product-category__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
  min-width: 0;
}

.p-product-category__text {
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-product-category__text {
    font-size: 1.5rem;
  }
}

.p-product-category__img {
  display: block;
  width: 100%;
  aspect-ratio: 970/546;
  object-fit: cover;
}

.p-product-category__items {
  display: flex;
  flex-basis: 100%;
  flex-direction: column;
  gap: clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
}

.p-product-items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.8rem;
}
@media (max-width: 767px) {
  .p-product-items {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 1.5rem;
  }
}

.p-product-items__item {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media (max-width: 767px) {
  .p-product-items__item {
    gap: 1rem;
  }
}

.p-product-items__link {
  display: flex;
  flex-direction: column;
  gap: inherit;
  transition: opacity 0.3s;
}
.p-product-items__link:hover, .p-product-items__link:focus-visible {
  opacity: 0.7;
}

.p-product-items__img {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
}
.p-product-items__img--empty {
  background: #eeeeee;
}

.p-product-items__name {
  display: block;
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}
@media (max-width: 767px) {
  .p-product-items__name {
    font-size: 1.4rem;
  }
}

/*faq
-----------------------------------------------------*/
.p-faq-nav {
  padding-top: 15rem;
}
@media (max-width: 1023px) {
  .p-faq-nav {
    padding-top: 10rem;
  }
}
@media (max-width: 767px) {
  .p-faq-nav {
    padding-top: 5rem;
  }
}

.p-faq-nav__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
@media (max-width: 767px) {
  .p-faq-nav__list {
    justify-content: flex-start;
    gap: 0.8rem;
  }
}

.c-filter-btn {
  padding: 1rem 2rem;
  color: #1b2668;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
  border: 1px solid #1b2668;
  border-radius: 100px;
  transition: background 0.3s, color 0.3s;
}
.c-filter-btn:hover, .c-filter-btn:focus-visible, .c-filter-btn.is-active {
  color: #ffffff;
  background: #1b2668;
}
@media (max-width: 767px) {
  .c-filter-btn {
    padding: 0.6rem 1.5rem;
    font-size: 1.3rem;
  }
}

.p-faq-nav__notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  max-width: 96rem;
  margin: 5rem auto 0;
  padding: 4rem;
  line-height: 1.8;
  background: #f0f3f9;
}
@media (max-width: 767px) {
  .p-faq-nav__notice {
    flex-direction: column;
    align-items: stretch;
    gap: 2rem;
    margin-top: 3rem;
    padding: 2.5rem 2rem;
    font-size: 1.4rem;
  }
}

.p-faq-nav__notice-text {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.p-faq-nav__notice-title {
  font-size: clamp(1.8rem, 1.4307692308rem + 0.4807692308vw, 2.2rem);
  font-weight: 700;
}
@media (max-width: 767px) {
  .p-faq-nav__notice-title {
    font-size: 1.6rem;
  }
}

.p-faq-group {
  padding: 10rem 0;
}
.p-faq-group--gray {
  background: #f6f6f6;
}
.is-faq-filtered .p-faq-group--gray {
  background: none;
}
.p-faq-group.is-hidden {
  display: none;
}
@media (max-width: 767px) {
  .p-faq-group {
    padding: 5rem 0;
  }
}

.p-faq-list {
  margin-top: 5rem;
  border-bottom: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-faq-list {
    margin-top: 2.5rem;
  }
}

.p-faq-item {
  border-top: 1px solid #dfdfdf;
}

.p-faq-item__q {
  display: flex;
  align-items: flex-start;
  gap: 2.2rem;
  padding: 2.5rem 0;
  list-style: none;
  cursor: pointer;
}
.p-faq-item__q::-webkit-details-marker {
  display: none;
}
@media (max-width: 767px) {
  .p-faq-item__q {
    gap: 1.2rem;
    padding: 2rem 0;
  }
}

.p-faq-item__mark {
  flex-shrink: 0;
  width: 3.6rem;
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.05;
}
@media (max-width: 767px) {
  .p-faq-item__mark {
    width: 2.4rem;
    font-size: 2.4rem;
  }
}

.p-faq-item__question {
  flex: 1;
  min-width: 0;
  font-size: clamp(1.6rem, 1.0461538462rem + 0.7211538462vw, 2.2rem);
  font-weight: 700;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-faq-item__question {
    font-size: 1.5rem;
    line-height: 1.6;
  }
}

.p-faq-item__icon {
  position: relative;
  flex-shrink: 0;
  width: 2.7rem;
  height: 2.7rem;
  margin: 0.7rem 2.3rem 0 0;
}
.p-faq-item__icon::before, .p-faq-item__icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: "";
  background: #1b2668;
  transform: translate(-50%, -50%);
  transition: transform 0.3s;
}
.p-faq-item__icon::before {
  width: 100%;
  height: 2px;
}
.p-faq-item__icon::after {
  width: 2px;
  height: 100%;
}
.p-faq-item[open]:not(.is-closing) .p-faq-item__icon::after {
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}
@media (max-width: 767px) {
  .p-faq-item__icon {
    width: 1.8rem;
    height: 1.8rem;
    margin: 0.3rem 0 0;
  }
}

.p-faq-item__a {
  padding: 0 8rem 2.5rem 5.8rem;
  line-height: 1.8;
}
.p-faq-item__a p + p {
  margin-top: 1em;
}
.p-faq-item__a a {
  color: #1b2668;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .p-faq-item__a {
    padding: 0 0 2rem 3.6rem;
    font-size: 1.4rem;
  }
}

/*contact
-----------------------------------------------------*/
.p-contact-before {
  padding: 15rem 0 10rem;
}
@media (max-width: 1023px) {
  .p-contact-before {
    padding: 10rem 0 8rem;
  }
}
@media (max-width: 767px) {
  .p-contact-before {
    padding: 5rem 0;
  }
}

.p-contact-before__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.6rem, 0.3076923077rem + 1.6826923077vw, 3rem);
  margin-top: 5rem;
}
@media (max-width: 767px) {
  .p-contact-before__list {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 3rem;
  }
}

.p-contact-before__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  height: 100%;
  padding: clamp(2rem, 1.0769230769rem + 1.2019230769vw, 3rem);
  border: 1px solid #1b2668;
  border-radius: 6px;
  transition: opacity 0.3s;
}
.p-contact-before__link:hover, .p-contact-before__link:focus-visible {
  opacity: 0.7;
}
.p-contact-before__link img {
  flex-shrink: 0;
  width: 1.6rem;
}
@media (max-width: 767px) {
  .p-contact-before__link {
    padding: 2rem;
  }
}

.p-contact-before__text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-contact-before__text {
    gap: 0.3rem;
  }
}

.p-contact-before__title {
  color: #1b2668;
  font-size: clamp(1.8rem, 1.2461538462rem + 0.7211538462vw, 2.4rem);
  font-weight: 700;
}
@media (max-width: 767px) {
  .p-contact-before__title {
    font-size: 1.7rem;
  }
}

.p-contact-before__sub {
  font-size: clamp(1.2rem, 1.0153846154rem + 0.2403846154vw, 1.4rem);
}

/* form(Contact Form 7) */
.c-form {
  margin-top: 5rem;
  padding: clamp(4rem, 0.3076923077rem + 4.8076923077vw, 8rem) clamp(3rem, -14.5384615385rem + 22.8365384615vw, 22rem);
  background: #ffffff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
@media (max-width: 767px) {
  .c-form {
    margin-top: 3rem;
    padding: 2rem;
  }
}

.c-form__row {
  display: flex;
  gap: clamp(2.4rem, 0rem + 3.125vw, 5rem);
  padding: 3rem 0;
  border-bottom: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .c-form__row {
    flex-direction: column;
    gap: 1rem;
    padding: 2rem 0;
  }
}

.c-form__label {
  display: flex;
  flex: 0 0 22rem;
  align-self: flex-start;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 5rem;
  font-weight: 700;
  line-height: 1.75;
}
@media (max-width: 767px) {
  .c-form__label {
    flex: none;
    justify-content: flex-start;
    min-height: 0;
    font-size: 1.4rem;
  }
}

.c-form__req {
  flex-shrink: 0;
  padding: 0.4rem 1rem;
  color: #ffffff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2;
  background: #d72e2c;
}

.c-form__field {
  flex: 1;
  min-width: 0;
}
.c-form__field input[type=text],
.c-form__field input[type=email],
.c-form__field select,
.c-form__field textarea {
  width: 35rem;
  max-width: 100%;
  height: 5rem;
  padding: 0 1rem;
  color: #333333;
  font: inherit;
  background: #ffffff;
  border: 1px solid #dfdfdf;
  border-radius: 0;
}
.c-form__field input[type=text]::placeholder,
.c-form__field input[type=email]::placeholder,
.c-form__field select::placeholder,
.c-form__field textarea::placeholder {
  color: #a1a1a1;
}
.c-form__field input[type=text]:focus,
.c-form__field input[type=email]:focus,
.c-form__field select:focus,
.c-form__field textarea:focus {
  outline: 2px solid #1b2668;
  outline-offset: -1px;
}
.c-form__field select {
  width: 29rem;
  padding-right: 4rem;
  appearance: none;
  cursor: pointer;
}
.c-form__field .wpcf7-form-control-wrap:has(select) {
  position: relative;
  display: inline-block;
  width: 29rem;
  max-width: 100%;
}
.c-form__field .wpcf7-form-control-wrap:has(select)::after {
  position: absolute;
  top: 50%;
  right: 1.2rem;
  width: 1.2rem;
  height: 0.75rem;
  content: "";
  background: url(../images/common/select_arrow.svg) no-repeat center/contain;
  transform: translateY(-50%) rotate(180deg);
  pointer-events: none;
}
.c-form__field .wpcf7-form-control-wrap:has(select) select {
  width: 100%;
}
@media (max-width: 767px) {
  .c-form__field .wpcf7-form-control-wrap:has(select) {
    width: 100%;
  }
}
.c-form__field textarea {
  display: block;
  width: 100%;
  height: 25rem;
  padding: 1rem;
  line-height: 1.8;
  resize: vertical;
}
.c-form__field input[type=file] {
  max-width: 100%;
  min-height: 5rem;
  font: inherit;
}
.c-form__field input[type=file]::file-selector-button {
  height: 5rem;
  margin-right: 1rem;
  padding: 0 1rem;
  color: #333333;
  font: inherit;
  background: #f6f6f6;
  border: 1px solid #dfdfdf;
  cursor: pointer;
}
@media (max-width: 767px) {
  .c-form__field input[type=text],
  .c-form__field input[type=email],
  .c-form__field select {
    width: 100%;
  }
  .c-form__field textarea {
    height: 20rem;
  }
}

.c-form__note {
  margin-top: 1rem;
  font-size: 1.4rem;
  line-height: 2;
}

.c-form__privacy {
  margin-top: 6rem;
  padding: 3rem;
  font-size: 1.4rem;
  line-height: 1.8;
  border: 1px solid #dfdfdf;
}
.c-form__privacy a {
  color: #1b2668;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .c-form__privacy {
    margin-top: 3rem;
    padding: 2rem;
    font-size: 1.3rem;
  }
}

.c-form__privacy-title {
  font-size: 1.6rem;
  font-weight: 700;
}
@media (max-width: 767px) {
  .c-form__privacy-title {
    font-size: 1.4rem;
  }
}

.c-form__accept {
  margin-top: 2rem;
  text-align: center;
}
.c-form__accept label {
  display: inline-flex;
  align-items: center;
  gap: 1.8rem;
  line-height: 1.8;
  cursor: pointer;
}
.c-form__accept input[type=checkbox] {
  position: relative;
  width: 2.4rem;
  height: 2.4rem;
  margin: 0;
  background: #ffffff;
  border: 1px solid #dfdfdf;
  appearance: none;
  cursor: pointer;
}
.c-form__accept input[type=checkbox]:checked {
  background: #1b2668;
  border-color: #1b2668;
}
.c-form__accept input[type=checkbox]:checked::after {
  position: absolute;
  top: 0.4rem;
  left: 0.8rem;
  width: 0.7rem;
  height: 1.2rem;
  content: "";
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(45deg);
}
.c-form__accept input[type=checkbox]:focus-visible {
  outline: 2px solid #1b2668;
  outline-offset: 2px;
}
.c-form__accept .wpcf7-list-item {
  margin: 0;
}

.c-form__submit {
  position: relative;
  margin-top: 6rem;
  text-align: center;
}
@media (max-width: 767px) {
  .c-form__submit {
    margin-top: 3rem;
  }
}

.c-form__btn {
  width: 50rem;
  max-width: 100%;
  height: 10rem;
  color: #ffffff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: clamp(1.8rem, 1.2461538462rem + 0.7211538462vw, 2.4rem);
  font-weight: 700;
  background: #d72e2c;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  transition: opacity 0.3s;
}
.c-form__btn:hover, .c-form__btn:focus-visible {
  opacity: 0.7;
}
.c-form__btn:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}
@media (max-width: 767px) {
  .c-form__btn {
    height: 7rem;
    font-size: 1.8rem;
  }
}

.c-form .wpcf7-not-valid-tip {
  margin-top: 0.5rem;
  color: #d72e2c;
  font-size: 1.4rem;
}
.c-form .wpcf7 form .wpcf7-response-output {
  margin: 3rem 0 0;
  padding: 1.5rem 2rem;
  font-size: 1.4rem;
  line-height: 1.8;
  text-align: center;
}
.c-form .wpcf7-spinner {
  position: absolute;
  top: 50%;
  margin: 0 0 0 1rem;
  transform: translateY(-50%);
}

/*news
-----------------------------------------------------*/
.c-news-item {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 3rem 1rem;
  line-height: 1.8;
  transition: opacity 0.3s;
}
.c-news-item:hover, .c-news-item:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .c-news-item {
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    padding: 2rem 0;
  }
}

.c-news-item__date {
  flex-shrink: 0;
  white-space: nowrap;
}

.c-news-item__title {
  flex: 1;
  min-width: 0;
}
@media (max-width: 767px) {
  .c-news-item__title {
    flex-basis: 100%;
  }
}

.p-news-archive {
  padding: 10rem 0 15rem;
}
@media (max-width: 767px) {
  .p-news-archive {
    padding: 5rem 0 8rem;
  }
}

.p-news-archive__cats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
@media (max-width: 767px) {
  .p-news-archive__cats {
    justify-content: flex-start;
    gap: 0.8rem;
  }
}

.p-news-archive__list {
  margin-top: 6rem;
  border-bottom: 1px solid #dfdfdf;
}
.p-news-archive__list li {
  border-top: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-news-archive__list {
    margin-top: 3rem;
  }
}

.p-news-archive__empty {
  margin-top: 6rem;
  text-align: center;
}

.p-article {
  padding: 8rem 0 15rem;
}
.p-article .container-lg > * {
  max-width: 80rem;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 767px) {
  .p-article {
    padding: 4rem 0 8rem;
  }
}

.p-article__header {
  padding-bottom: 3rem;
  border-bottom: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-article__header {
    padding-bottom: 2rem;
  }
}

.p-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  line-height: 1.8;
}
.p-article__meta .c-tag {
  transition: opacity 0.3s;
}
.p-article__meta .c-tag:hover, .p-article__meta .c-tag:focus-visible {
  opacity: 0.7;
}

.p-article__title {
  margin-top: 1.5rem;
  font-size: clamp(2.6rem, 2.0461538462rem + 0.7211538462vw, 3.2rem);
  font-weight: 700;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .p-article__title {
    font-size: 2.6rem;
  }
}

.p-article__thumb {
  margin-top: 5rem;
}
.p-article__thumb img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .p-article__thumb {
    margin-top: 3rem;
  }
}

.p-article__content {
  margin-top: 5rem;
}
.p-article__content img {
  height: auto;
}
.p-article__content h2 {
  margin-top: 6rem;
  padding: 1.2rem 2rem;
  color: #333333;
  font-size: clamp(2.2rem, 1.8307692308rem + 0.4807692308vw, 2.6rem);
  line-height: 1.5;
  background: #f0f3f9;
  border-bottom: 0;
  border-left: 6px solid #1b2668;
}
@media (max-width: 767px) {
  .p-article__content h2 {
    margin-top: 4rem;
    padding: 1rem 1.5rem;
    font-size: 2.2rem;
    border-left-width: 4px;
  }
}
.p-article__content h3 {
  margin-top: 4rem;
  padding-bottom: 0.8rem;
  color: #1b2668;
  font-size: clamp(2rem, 1.8153846154rem + 0.2403846154vw, 2.2rem);
  line-height: 1.6;
  border-bottom: 2px solid #1b2668;
}
@media (max-width: 767px) {
  .p-article__content h3 {
    margin-top: 3rem;
    font-size: 2rem;
  }
}
.p-article__content :is(h2, h3, h4) + :is(h2, h3, h4) {
  margin-top: 0;
}
@media (max-width: 767px) {
  .p-article__content table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    white-space: nowrap;
  }
}
@media (max-width: 767px) {
  .p-article__content {
    margin-top: 3rem;
    font-size: 1.5rem;
  }
}

.p-article__nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  margin-top: 8rem;
  padding-top: 4rem;
  border-top: 1px solid #dfdfdf;
}
.p-article__nav a {
  color: #1b2668;
  font-weight: 700;
  transition: opacity 0.3s;
}
.p-article__nav a:hover, .p-article__nav a:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .p-article__nav {
    grid-template-columns: 1fr 1fr;
    margin-top: 5rem;
    padding-top: 3rem;
  }
  .p-article__nav .c-btn {
    grid-column: 1/-1;
    grid-row: 2;
    justify-self: center;
  }
}

.p-article__prev a::before {
  margin-right: 0.8rem;
  content: "←";
}

.p-article__next {
  text-align: right;
}
.p-article__next a::after {
  margin-left: 0.8rem;
  content: "→";
}

/*catalog
-----------------------------------------------------*/
.p-catalog {
  padding: 10rem 0 15rem;
}
@media (max-width: 767px) {
  .p-catalog {
    padding: 5rem 0 8rem;
  }
}

.p-catalog__lead {
  font-size: clamp(1.6rem, 1.4153846154rem + 0.2403846154vw, 1.8rem);
  line-height: 1.8;
  text-align: center;
}
@media (max-width: 767px) {
  .p-catalog__lead {
    font-size: 1.5rem;
    text-align: left;
  }
}

.p-catalog__note {
  margin-top: 1rem;
  color: #666666;
  font-size: 1.4rem;
  line-height: 1.8;
  text-align: center;
}
@media (max-width: 767px) {
  .p-catalog__note {
    font-size: 1.2rem;
    text-align: left;
  }
}

.p-catalog__list {
  margin-top: clamp(5rem, 2.2307692308rem + 3.6057692308vw, 8rem);
  border-bottom: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-catalog__list {
    margin-top: 4rem;
  }
}

.p-catalog-item {
  display: flex;
  align-items: center;
  gap: clamp(3rem, 0.2307692308rem + 3.6057692308vw, 6rem);
  padding: 4rem 0;
  border-top: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-catalog-item {
    flex-direction: column;
    align-items: stretch;
    gap: 2rem;
    padding: 3rem 0;
  }
}

.p-catalog-item__img {
  flex: 0 0 clamp(20rem, 8.9230769231rem + 14.4230769231vw, 32rem);
}
@media (max-width: 767px) {
  .p-catalog-item__img {
    flex: none;
    width: 24rem;
    max-width: 100%;
    margin: 0 auto;
  }
}
.p-catalog-item__img a {
  display: block;
  transition: opacity 0.3s;
}
.p-catalog-item__img a:hover, .p-catalog-item__img a:focus-visible {
  opacity: 0.7;
}
.p-catalog-item__img img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}

.p-catalog-item__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
  min-width: 0;
}
@media (max-width: 767px) {
  .p-catalog-item__body {
    gap: 1.5rem;
  }
}

.p-catalog-item__title {
  font-size: clamp(2rem, 1.4461538462rem + 0.7211538462vw, 2.6rem);
  font-weight: 700;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .p-catalog-item__title {
    font-size: 1.9rem;
  }
}

.p-catalog-item__text {
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-catalog-item__text {
    font-size: 1.4rem;
  }
}

.p-catalog-item__btn {
  margin-top: 1rem;
  background: #ffffff;
}

/* blog archive */
.p-blog-archive {
  padding: 10rem 0 15rem;
}
@media (max-width: 767px) {
  .p-blog-archive {
    padding: 5rem 0 8rem;
  }
}

.p-blog-archive__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6rem clamp(2rem, 0.9846153846rem + 1.3221153846vw, 3.1rem);
  margin-top: 6rem;
}
.p-blog-archive__list .p-blog__item {
  flex: none;
  margin-right: 0;
}
@media (max-width: 1023px) {
  .p-blog-archive__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .p-blog-archive__list {
    grid-template-columns: 1fr;
    gap: 4rem;
    margin-top: 3rem;
  }
}

/*service sub pages
-----------------------------------------------------*/
.c-page-lead {
  font-size: clamp(1.6rem, 1.4153846154rem + 0.2403846154vw, 1.8rem);
  line-height: 1.8;
  text-align: center;
}
@media (max-width: 767px) {
  .c-page-lead {
    font-size: 1.5rem;
    text-align: left;
  }
}

/* 公式オンラインストア */
.p-shop-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2.4rem, 0rem + 3.125vw, 5rem);
}
@media (max-width: 767px) {
  .p-shop-list {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
}

.p-shop-list__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
  height: 100%;
  transition: opacity 0.3s;
}
.p-shop-list__item:hover, .p-shop-list__item:focus-visible {
  opacity: 0.7;
}
.p-shop-list__item .c-more {
  margin-top: auto;
  padding-top: 1rem;
}

.p-shop-list__img {
  display: block;
  width: 100%;
  aspect-ratio: 5/7;
  object-fit: cover;
  border: 1px solid #dfdfdf;
}

.p-shop-list__name {
  font-size: clamp(1.7rem, 1.4230769231rem + 0.3605769231vw, 2rem);
  font-weight: 700;
  line-height: 1.6;
}

.p-shop-list__text {
  font-size: 1.5rem;
  line-height: 1.8;
}

/* 展示店舗一覧 */
.p-showroom-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6rem clamp(2.4rem, 0rem + 3.125vw, 5rem);
  margin-top: clamp(5rem, 3.1538461538rem + 2.4038461538vw, 7rem);
}
@media (max-width: 767px) {
  .p-showroom-list {
    grid-template-columns: 1fr;
    gap: 4rem;
    margin-top: 3rem;
  }
}

.p-showroom-item {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.p-showroom-item__img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.p-showroom-item__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.p-showroom-item__name {
  font-size: clamp(1.8rem, 1.4307692308rem + 0.4807692308vw, 2.2rem);
  font-weight: 700;
  line-height: 1.6;
}
.p-showroom-item__name a {
  color: #1b2668;
  text-decoration: underline;
  transition: opacity 0.3s;
}
.p-showroom-item__name a:hover, .p-showroom-item__name a:focus-visible {
  opacity: 0.7;
}

.p-showroom-item__address,
.p-showroom-item__text {
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-showroom-item__address,
  .p-showroom-item__text {
    font-size: 1.4rem;
  }
}

.p-showroom-item__address {
  color: #666666;
}

.p-showroom-item__map {
  width: 100%;
  margin-top: auto;
  padding-top: 2rem;
  border-top: 1px solid #dfdfdf;
}

/* ふるさと納税 */
.p-furusato__block {
  margin-top: clamp(6rem, 2.3076923077rem + 4.8076923077vw, 10rem);
}
.p-furusato__block .c-heading02 {
  margin-bottom: clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
}
@media (max-width: 767px) {
  .p-furusato__block {
    margin-top: 5rem;
  }
}

.p-furusato__portals {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.6rem, 0.3076923077rem + 1.6826923077vw, 3rem);
}
@media (max-width: 1023px) {
  .p-furusato__portals {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .p-furusato__portals {
    gap: 2rem 1.5rem;
  }
}

.p-furusato__portal {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: opacity 0.3s;
}
.p-furusato__portal:hover, .p-furusato__portal:focus-visible {
  opacity: 0.7;
}
.p-furusato__portal img {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 0.5rem;
  border: 1px solid #dfdfdf;
}

.p-furusato__portal-name {
  font-size: clamp(1.6rem, 1.4153846154rem + 0.2403846154vw, 1.8rem);
  font-weight: 700;
  line-height: 1.6;
}

.p-furusato__portal-text {
  font-size: 1.4rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .p-furusato__portal-text {
    font-size: 1.2rem;
  }
}

.p-furusato__sites {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem clamp(1.6rem, 0.3076923077rem + 1.6826923077vw, 3rem);
}
@media (max-width: 1023px) {
  .p-furusato__sites {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .p-furusato__sites {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.p-furusato__site-name {
  font-size: clamp(1.5rem, 1.3153846154rem + 0.2403846154vw, 1.7rem);
  font-weight: 700;
  line-height: 1.5;
}

/* 取扱店舗検索(Search & Filter / WP Store Locator) */
.p-store-search__notes {
  margin-bottom: 3rem;
  color: #666666;
  font-size: 1.4rem;
  line-height: 1.8;
}
.p-store-search__notes li {
  padding-left: 1.2em;
  text-indent: -1.2em;
}

.p-store-search__form {
  padding: clamp(2.4rem, 0.9230769231rem + 1.9230769231vw, 4rem);
  background: #f6f6f6;
}
.p-store-search__form ul {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 2rem;
}
.p-store-search__form li {
  flex: 1 1 20rem;
}
.p-store-search__form h4 {
  margin-bottom: 0.8rem;
  font-size: 1.4rem;
  font-weight: 700;
}
.p-store-search__form input[type=text],
.p-store-search__form select {
  width: 100%;
  height: 5rem;
  padding: 0 1rem;
  color: #333333;
  font: inherit;
  background: #ffffff;
  border: 1px solid #dfdfdf;
  border-radius: 0;
}
.p-store-search__form select {
  padding-right: 4.5rem;
  appearance: none;
  cursor: pointer;
}
.p-store-search__form li:has(select) {
  position: relative;
}
.p-store-search__form li:has(select)::after {
  position: absolute;
  bottom: 2.5rem;
  right: 2rem;
  width: 1.2rem;
  height: 0.75rem;
  content: "";
  background: url(../images/common/select_arrow.svg) no-repeat center/contain;
  transform: translateY(50%) rotate(180deg);
  pointer-events: none;
}
.p-store-search__form input[type=submit] {
  width: 100%;
  height: 5rem;
  color: #ffffff;
  font: inherit;
  font-weight: 700;
  background: #1b2668;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  transition: opacity 0.3s;
}
.p-store-search__form input[type=submit]:hover, .p-store-search__form input[type=submit]:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .p-store-search__form li {
    flex-basis: 100%;
  }
}

.p-store-search__map {
  margin-top: clamp(4rem, 2.1538461538rem + 2.4038461538vw, 6rem);
}
.p-store-search__map .wpsl-dropdown .wpsl-selected-item::after {
  inset-inline-end: 2rem;
}
.p-store-search__map .wpsl-store-location strong {
  color: #1b2668;
}

/* 取扱店舗検索の結果 */
.p-store-results {
  margin-top: clamp(4rem, 2.1538461538rem + 2.4038461538vw, 6rem);
}

.p-store-results__count {
  font-size: clamp(1.6rem, 1.4153846154rem + 0.2403846154vw, 1.8rem);
  font-weight: 700;
}
.p-store-results__count strong {
  margin-right: 0.2em;
  color: #1b2668;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.4em;
}

.p-store-results__condition {
  color: #1b2668;
}

.p-store-results__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 2.5rem;
}
@media (max-width: 767px) {
  .p-store-results__list {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

.p-store-result {
  padding: clamp(2rem, 1.0769230769rem + 1.2019230769vw, 3rem);
  border: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-store-result {
    padding: 2rem;
  }
}

.p-store-result__name {
  font-size: clamp(1.7rem, 1.5153846154rem + 0.2403846154vw, 1.9rem);
  font-weight: 700;
  line-height: 1.5;
}
.p-store-result__name a {
  color: #1b2668;
  text-decoration: underline;
  transition: opacity 0.3s;
}
.p-store-result__name a:hover, .p-store-result__name a:focus-visible {
  opacity: 0.7;
}

.p-store-result__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.2rem;
}
.p-store-result__tags .c-tag {
  padding: 0 1.2rem;
  font-size: 1.2rem;
  transition: opacity 0.3s;
}
.p-store-result__tags .c-tag:hover, .p-store-result__tags .c-tag:focus-visible {
  opacity: 0.7;
}

.p-store-result__info {
  margin-top: 1.5rem;
  font-size: 1.4rem;
  line-height: 1.8;
}
.p-store-result__info dl {
  display: grid;
  grid-template-columns: 5em 1fr;
  gap: 0.4rem 1rem;
}
.p-store-result__info dt {
  color: #666666;
}

.p-store-results__empty {
  margin-top: 2.5rem;
  padding: 4rem 2rem;
  text-align: center;
  background: #f6f6f6;
}

.p-store-results__back {
  margin-top: clamp(4rem, 2.1538461538rem + 2.4038461538vw, 6rem);
  text-align: center;
}

/* フォームの個人情報欄(長文はスクロール) */
.c-form__privacy--scroll {
  max-height: 20rem;
  overflow-y: auto;
}
.c-form__privacy--scroll p + p {
  margin-top: 1em;
}

/*policy(サイトポリシー・個人情報について)
-----------------------------------------------------*/
.p-policy {
  padding: clamp(8rem, 4.3076923077rem + 4.8076923077vw, 12rem) 0 clamp(10rem, 5.3846153846rem + 6.0096153846vw, 15rem);
}
@media (max-width: 767px) {
  .p-policy {
    padding: 5rem 0 8rem;
  }
}

.p-policy__inner {
  width: 90%;
  max-width: 80rem;
  margin: 0 auto;
}

.p-policy__block + .p-policy__block {
  margin-top: clamp(8rem, 4.3076923077rem + 4.8076923077vw, 12rem);
}
@media (max-width: 767px) {
  .p-policy__block + .p-policy__block {
    margin-top: 6rem;
  }
}

.p-policy__block > .c-heading {
  margin-bottom: clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
}
.p-policy__block > .c-heading .c-heading__title {
  font-size: clamp(2.6rem, 1.6769230769rem + 1.2019230769vw, 3.6rem);
}
@media (max-width: 767px) {
  .p-policy__block > .c-heading .c-heading__title {
    font-size: 2.2rem;
  }
}
@media (max-width: 767px) {
  .p-policy__block > .c-heading {
    margin-bottom: 2.5rem;
  }
}

.p-policy__section + .p-policy__section,
.p-policy__block .p-policy__section {
  margin-top: clamp(5rem, 4.0769230769rem + 1.2019230769vw, 6rem);
}
@media (max-width: 767px) {
  .p-policy__section + .p-policy__section,
  .p-policy__block .p-policy__section {
    margin-top: 4rem;
  }
}

.p-policy__title {
  margin-bottom: 2rem;
  padding: 1.2rem 2rem;
  color: #1b2668;
  font-size: clamp(2rem, 1.8153846154rem + 0.2403846154vw, 2.2rem);
  font-weight: 700;
  line-height: 1.5;
  background: #f0f3f9;
  border-left: 6px solid #1b2668;
}
@media (max-width: 767px) {
  .p-policy__title {
    margin-bottom: 1.5rem;
    padding: 1rem 1.5rem;
    font-size: 1.8rem;
  }
}

.p-policy__text {
  line-height: 2;
}
.p-policy__text + .p-policy__text {
  margin-top: 1em;
}
@media (max-width: 767px) {
  .p-policy__text {
    font-size: 1.4rem;
  }
}

.p-policy__sign {
  margin-top: 2rem;
  line-height: 1.8;
  text-align: right;
}
@media (max-width: 767px) {
  .p-policy__sign {
    font-size: 1.4rem;
  }
}

.p-policy__items {
  margin-top: clamp(3rem, 2.0769230769rem + 1.2019230769vw, 4rem);
  list-style: none;
}

.p-policy__item + .p-policy__item {
  margin-top: clamp(3rem, 2.0769230769rem + 1.2019230769vw, 4rem);
}

.p-policy__item-title {
  display: flex;
  gap: 0.6em;
  margin-bottom: 1.2rem;
  padding-bottom: 1rem;
  color: #1b2668;
  font-size: clamp(1.7rem, 1.5153846154rem + 0.2403846154vw, 1.9rem);
  font-weight: 700;
  line-height: 1.6;
  border-bottom: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-policy__item-title {
    font-size: 1.6rem;
  }
}

.p-policy__num {
  flex-shrink: 0;
  font-family: Arial, Helvetica, sans-serif;
}

.p-policy__purpose {
  margin-top: 2.5rem;
}
@media (max-width: 767px) {
  .p-policy__purpose {
    margin-top: 2rem;
  }
}

.p-policy__purpose-title {
  margin-bottom: 0.8rem;
  font-size: clamp(1.5rem, 1.4076923077rem + 0.1201923077vw, 1.6rem);
  font-weight: 700;
  line-height: 1.6;
}
.p-policy__purpose-title::before {
  content: "■";
  margin-right: 0.4em;
  color: #1b2668;
}

.p-policy__note {
  margin-bottom: 0.8rem;
  color: #666666;
  font-size: 1.3rem;
  line-height: 1.8;
}

.p-policy__list {
  margin-top: 1rem;
}
.p-policy__list li {
  position: relative;
  padding-left: 1.4em;
  line-height: 1.8;
}
.p-policy__list li::before {
  content: "";
  position: absolute;
  top: 0.75em;
  left: 0.4em;
  width: 0.4em;
  height: 0.4em;
  background: #1b2668;
  border-radius: 50%;
}
.p-policy__list li + li {
  margin-top: 0.4em;
}
@media (max-width: 767px) {
  .p-policy__list {
    font-size: 1.4rem;
  }
}

.p-policy__contact {
  margin-top: clamp(4rem, 3.0769230769rem + 1.2019230769vw, 5rem);
  padding: clamp(3rem, 2.0769230769rem + 1.2019230769vw, 4rem);
  text-align: center;
  border: 1px solid #dfdfdf;
}
@media (max-width: 767px) {
  .p-policy__contact {
    margin-top: 3rem;
    padding: 2.5rem 2rem;
    text-align: left;
  }
}

.p-policy__contact-title {
  margin-bottom: 1.5rem;
  font-size: clamp(1.7rem, 1.4230769231rem + 0.3605769231vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .p-policy__contact-title {
    font-size: 1.6rem;
  }
}

.p-policy__contact-text {
  font-style: normal;
  line-height: 1.9;
}
.p-policy__contact-text a {
  color: #1b2668;
  text-decoration: underline;
  transition: opacity 0.3s;
}
.p-policy__contact-text a:hover, .p-policy__contact-text a:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .p-policy__contact-text {
    font-size: 1.4rem;
  }
}

/*recruit
-----------------------------------------------------*/
.p-recruit {
  padding: clamp(8rem, 4.3076923077rem + 4.8076923077vw, 12rem) 0 clamp(10rem, 5.3846153846rem + 6.0096153846vw, 15rem);
}
@media (max-width: 767px) {
  .p-recruit {
    padding: 5rem 0 8rem;
  }
}

.p-recruit-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin-top: clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
}
@media (max-width: 767px) {
  .p-recruit-nav {
    flex-direction: column;
  }
}

.p-recruit-nav__link {
  display: block;
  padding: 1rem 2rem;
  color: #1b2668;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  border: 1px solid #1b2668;
  border-radius: 100px;
  transition: opacity 0.3s;
}
.p-recruit-nav__link:hover, .p-recruit-nav__link:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .p-recruit-nav__link {
    border-radius: 6px;
  }
}

.p-recruit-job {
  margin-top: clamp(6rem, 2.3076923077rem + 4.8076923077vw, 10rem);
  scroll-margin-top: 10rem;
}
@media (max-width: 767px) {
  .p-recruit-job {
    margin-top: 5rem;
    scroll-margin-top: 7rem;
  }
}

.p-recruit-job__title {
  padding: 1.6rem 2.4rem;
  color: #ffffff;
  font-size: clamp(1.8rem, 1.4307692308rem + 0.4807692308vw, 2.2rem);
  font-weight: 700;
  line-height: 1.5;
  background: #1b2668;
}
@media (max-width: 767px) {
  .p-recruit-job__title {
    padding: 1.2rem 1.6rem;
    font-size: 1.7rem;
  }
}

.p-recruit-job__table {
  border-right: 1px solid #dfdfdf;
}
.p-recruit-job__table > div {
  display: flex;
  border-bottom: 1px solid #dfdfdf;
}
.p-recruit-job__table dt,
.p-recruit-job__table dd {
  padding: 2rem 2.4rem;
  line-height: 1.8;
}
.p-recruit-job__table dt {
  flex: 0 0 clamp(14rem, 6.6153846154rem + 9.6153846154vw, 22rem);
  font-weight: 700;
  background: #f0f3f9;
}
.p-recruit-job__table dd {
  flex: 1;
  min-width: 0;
}
@media (max-width: 767px) {
  .p-recruit-job__table > div {
    flex-direction: column;
  }
  .p-recruit-job__table dt,
  .p-recruit-job__table dd {
    padding: 1.2rem 1.6rem;
    font-size: 1.4rem;
  }
  .p-recruit-job__table dt {
    flex: none;
  }
}

.p-recruit-job__entry {
  margin-top: 4rem;
  text-align: center;
}
@media (max-width: 767px) {
  .p-recruit-job__entry {
    margin-top: 3rem;
  }
}

.p-recruit__empty {
  padding: 4rem 2rem;
  text-align: center;
  background: #f6f6f6;
}

/* ブログ詳細の関連記事 */
.p-related {
  padding: clamp(8rem, 4.3076923077rem + 4.8076923077vw, 12rem) 0 clamp(10rem, 5.3846153846rem + 6.0096153846vw, 15rem);
  background: #f6f6f6;
}
@media (max-width: 767px) {
  .p-related {
    padding: 5rem 0 8rem;
  }
}

.p-related__list {
  margin-top: clamp(4rem, 2.1538461538rem + 2.4038461538vw, 6rem);
}

/*404
-----------------------------------------------------*/
.p-404 {
  padding: 10rem 0 15rem;
  text-align: center;
}
.p-404 .c-btn {
  margin-top: 5rem;
}
@media (max-width: 767px) {
  .p-404 {
    padding: 5rem 0 8rem;
    text-align: left;
  }
  .p-404 .c-btn {
    margin-top: 3rem;
  }
}

.p-404__text {
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
  line-height: 1.8;
}

/*footer
-----------------------------------------------------*/
.footer-cta {
  padding-top: 8rem;
  color: #ffffff;
  background: linear-gradient(139.2deg, #1b2668 0.14%, #3c4895 96.37%);
}
@media (max-width: 767px) {
  .footer-cta {
    padding-top: 5rem;
  }
}

.footer-cta__title {
  font-size: clamp(3.2rem, 0.6153846154rem + 3.3653846154vw, 6rem);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-align: center;
}
@media (max-width: 767px) {
  .footer-cta__title {
    font-size: 2.6rem;
  }
}

.footer-cta__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 7rem;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}
@media (max-width: 767px) {
  .footer-cta__list {
    grid-template-columns: 1fr;
    margin-top: 4rem;
  }
}

.footer-cta__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(3rem, 0.2307692308rem + 3.6057692308vw, 6rem);
  transition: background 0.3s;
}
.footer-cta__btn:first-child {
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.footer-cta__btn:hover, .footer-cta__btn:focus-visible {
  background: rgba(255, 255, 255, 0.05);
}
.footer-cta__btn img {
  flex-shrink: 0;
  width: 5rem;
}
@media (max-width: 767px) {
  .footer-cta__btn {
    padding: 3rem 2rem;
  }
  .footer-cta__btn:first-child {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }
  .footer-cta__btn img {
    width: 4rem;
  }
}

.footer-cta__text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.footer-cta__en {
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(3rem, 1.1538461538rem + 2.4038461538vw, 5rem);
  font-weight: 700;
  line-height: 1;
}
@media (max-width: 767px) {
  .footer-cta__en {
    font-size: 2.8rem;
  }
}

.footer-cta__jp {
  font-size: clamp(1.4rem, 1.0307692308rem + 0.4807692308vw, 1.8rem);
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .footer-cta__jp {
    font-size: 1.4rem;
  }
}

.footer {
  padding: 8rem 0;
  color: #ffffff;
  background: #333333;
}
@media (max-width: 767px) {
  .footer {
    padding: 5rem 0 11.5rem;
  }
}

.footer__inner {
  --pagetop-right: clamp(4rem, -9.2923076923rem + 17.3076923077vw, 18.4rem);
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 6.9rem clamp(6rem, -1.3846153846rem + 9.6153846154vw, 14rem);
  max-width: 160rem;
  margin: 0 auto;
  padding: 0 calc(var(--pagetop-right) + 10.7rem) 0 10rem;
}
@media (max-width: 1023px) {
  .footer__inner {
    padding-left: 4rem;
  }
}
@media (max-width: 767px) {
  .footer__inner {
    flex-direction: column;
    gap: 4rem;
    padding: 0 2rem;
  }
}

.footer__info {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  min-width: 25.9rem;
  font-size: 1.3rem;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .footer__info {
    min-width: 0;
    gap: 1.5rem;
  }
}

.footer__logo {
  align-self: flex-start;
}

.footer__logo .logo__text {
  width: 18.3rem;
}
@media (max-width: 767px) {
  .footer__logo .logo__text {
    width: 14rem;
  }
}

@media (max-width: 767px) {
  .footer__logo .logo__mark {
    left: 14.6rem;
    top: 2.8rem;
    width: 0.7rem;
  }
}

.footer__company {
  font-size: 1.6rem;
  font-weight: 700;
}

.footer__address {
  font-style: normal;
  white-space: nowrap;
}

.footer__policy {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 2rem;
}
.footer__policy a {
  transition: opacity 0.3s;
}
.footer__policy a:hover, .footer__policy a:focus-visible {
  opacity: 0.7;
}

.footer__copy small {
  font-size: inherit;
}

.footer__nav {
  display: flex;
  gap: 8rem;
}
@media (max-width: 1199px) {
  .footer__nav {
    gap: 4rem;
  }
}
@media (max-width: 767px) {
  .footer__nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem 2rem;
  }
}

.footer__nav-title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .footer__nav-title {
    font-size: 1.4rem;
  }
}

.footer__nav-list {
  margin-top: 0.7rem;
  font-size: 1.2rem;
  line-height: 3.4rem;
}
.footer__nav-list a {
  transition: opacity 0.3s;
}
.footer__nav-list a:hover, .footer__nav-list a:focus-visible {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .footer__nav-list {
    line-height: 3rem;
  }
}

.footer__pagetop {
  position: absolute;
  top: 0.8rem;
  right: var(--pagetop-right);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: 0.06rem;
  transition: opacity 0.3s;
}
.footer__pagetop:hover, .footer__pagetop:focus-visible {
  opacity: 0.7;
}
.footer__pagetop img {
  width: 5rem;
  transform: rotate(-90deg);
}
@media (max-width: 767px) {
  .footer__pagetop {
    top: 0;
    right: 2rem;
    gap: 1rem;
    font-size: 1rem;
  }
  .footer__pagetop img {
    width: 4rem;
  }
}
