@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Outfit&family=Poppins:wght@400;500;700&family=Zen+Old+Mincho&display=swap");
/* -------------------------------------------------------
reset
------------------------------------------------------- */
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  font: inherit;
  font-size: 100%;
}

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

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

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

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

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

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

html {
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

select {
  outline: none;
  border: none;
}

a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
a:hover {
  opacity: 0.7;
}

.anim {
  opacity: 0;
}

.anim.is-show {
  /*
  opacity: 1;
  transform: translateY(0);
  */
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  0% {
    opacity: 0;
    transform: translateY(60px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
button {
  border: none;
  background: none;
  cursor: pointer;
  transition: 0.3s;
}

html,
body {
  font-size: 62.5%;
}

body {
  width: 100%;
  font-size: 15px;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  color: #252626;
  position: relative;
}
@media screen and (min-width: 768px) {
  body {
    font-size: 18px;
  }
}
@media screen and (min-width: 1024px) {
  body {
    font-size: 20px;
    line-height: 2.2;
  }
}

.preload * {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -ms-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}

a {
  transition: 0.3s;
}

img {
  width: 100%;
}

/*--------------------------------------------------------------------------
余白, フォントサイズ
---------------------------------------------------------------------------*/
.mlr-auto {
  margin-inline: auto !important;
}

/* マージン関連クラス */
.m-0 {
  margin: 0px !important;
}

.mt-0 {
  margin-top: 0px !important;
}

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

.mtb-0 {
  margin-block: 0px !important;
}

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

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

.mlr-0 {
  margin-inline: 0px !important;
}

@media screen and (min-width: 768px) {
  .m-0-pc {
    margin: 0px !important;
  }
  .mt-0-pc {
    margin-top: 0px !important;
  }
  .mb-0-pc {
    margin-bottom: 0px !important;
  }
  .mtb-0-pc {
    margin-block: 0px !important;
  }
  .ml-0-pc {
    margin-left: 0px !important;
  }
  .mr-0-pc {
    margin-right: 0px !important;
  }
  .mlr-0-pc {
    margin-inline: 0px !important;
  }
}
/* パディング関連クラス */
.p-0 {
  padding: 0px !important;
}

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

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

.ptb-0 {
  padding-block: 0px !important;
}

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

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

.plr-0 {
  padding-inline: 0px !important;
}

@media screen and (min-width: 768px) {
  .p-0-pc {
    padding: 0px !important;
  }
  .pt-0-pc {
    padding-top: 0px !important;
  }
  .pb-0-pc {
    padding-bottom: 0px !important;
  }
  .ptb-0-pc {
    padding-block: 0px !important;
  }
  .pl-0-pc {
    padding-left: 0px !important;
  }
  .pr-0-pc {
    padding-right: 0px !important;
  }
  .plr-0-pc {
    padding-inline: 0px !important;
  }
}
.fs-0 {
  font-size: 0px !important;
}

@media screen and (max-width: 340px) {
  .fs-0-xs {
    font-size: 0px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-0-pc {
    font-size: 0px !important;
  }
}
.gap-size {
  gap: 0px !important;
}

.row-gap-size {
  gap: 0px !important;
}

.column-gap-size {
  gap: 0px !important;
}

/* マージン関連クラス */
.m-2 {
  margin: 2px !important;
}

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

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

.mtb-2 {
  margin-block: 2px !important;
}

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

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

.mlr-2 {
  margin-inline: 2px !important;
}

@media screen and (min-width: 768px) {
  .m-2-pc {
    margin: 2px !important;
  }
  .mt-2-pc {
    margin-top: 2px !important;
  }
  .mb-2-pc {
    margin-bottom: 2px !important;
  }
  .mtb-2-pc {
    margin-block: 2px !important;
  }
  .ml-2-pc {
    margin-left: 2px !important;
  }
  .mr-2-pc {
    margin-right: 2px !important;
  }
  .mlr-2-pc {
    margin-inline: 2px !important;
  }
}
/* パディング関連クラス */
.p-2 {
  padding: 2px !important;
}

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

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

.ptb-2 {
  padding-block: 2px !important;
}

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

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

.plr-2 {
  padding-inline: 2px !important;
}

@media screen and (min-width: 768px) {
  .p-2-pc {
    padding: 2px !important;
  }
  .pt-2-pc {
    padding-top: 2px !important;
  }
  .pb-2-pc {
    padding-bottom: 2px !important;
  }
  .ptb-2-pc {
    padding-block: 2px !important;
  }
  .pl-2-pc {
    padding-left: 2px !important;
  }
  .pr-2-pc {
    padding-right: 2px !important;
  }
  .plr-2-pc {
    padding-inline: 2px !important;
  }
}
.fs-2 {
  font-size: 2px !important;
}

@media screen and (max-width: 340px) {
  .fs-2-xs {
    font-size: 1.9px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-2-pc {
    font-size: 2px !important;
  }
}
.gap-size {
  gap: 2px !important;
}

.row-gap-size {
  gap: 2px !important;
}

.column-gap-size {
  gap: 2px !important;
}

/* マージン関連クラス */
.m-4 {
  margin: 4px !important;
}

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

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

.mtb-4 {
  margin-block: 4px !important;
}

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

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

.mlr-4 {
  margin-inline: 4px !important;
}

@media screen and (min-width: 768px) {
  .m-4-pc {
    margin: 4px !important;
  }
  .mt-4-pc {
    margin-top: 4px !important;
  }
  .mb-4-pc {
    margin-bottom: 4px !important;
  }
  .mtb-4-pc {
    margin-block: 4px !important;
  }
  .ml-4-pc {
    margin-left: 4px !important;
  }
  .mr-4-pc {
    margin-right: 4px !important;
  }
  .mlr-4-pc {
    margin-inline: 4px !important;
  }
}
/* パディング関連クラス */
.p-4 {
  padding: 4px !important;
}

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

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

.ptb-4 {
  padding-block: 4px !important;
}

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

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

.plr-4 {
  padding-inline: 4px !important;
}

@media screen and (min-width: 768px) {
  .p-4-pc {
    padding: 4px !important;
  }
  .pt-4-pc {
    padding-top: 4px !important;
  }
  .pb-4-pc {
    padding-bottom: 4px !important;
  }
  .ptb-4-pc {
    padding-block: 4px !important;
  }
  .pl-4-pc {
    padding-left: 4px !important;
  }
  .pr-4-pc {
    padding-right: 4px !important;
  }
  .plr-4-pc {
    padding-inline: 4px !important;
  }
}
.fs-4 {
  font-size: 4px !important;
}

@media screen and (max-width: 340px) {
  .fs-4-xs {
    font-size: 3.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-4-pc {
    font-size: 4px !important;
  }
}
.gap-size {
  gap: 4px !important;
}

.row-gap-size {
  gap: 4px !important;
}

.column-gap-size {
  gap: 4px !important;
}

/* マージン関連クラス */
.m-6 {
  margin: 6px !important;
}

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

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

.mtb-6 {
  margin-block: 6px !important;
}

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

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

.mlr-6 {
  margin-inline: 6px !important;
}

@media screen and (min-width: 768px) {
  .m-6-pc {
    margin: 6px !important;
  }
  .mt-6-pc {
    margin-top: 6px !important;
  }
  .mb-6-pc {
    margin-bottom: 6px !important;
  }
  .mtb-6-pc {
    margin-block: 6px !important;
  }
  .ml-6-pc {
    margin-left: 6px !important;
  }
  .mr-6-pc {
    margin-right: 6px !important;
  }
  .mlr-6-pc {
    margin-inline: 6px !important;
  }
}
/* パディング関連クラス */
.p-6 {
  padding: 6px !important;
}

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

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

.ptb-6 {
  padding-block: 6px !important;
}

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

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

.plr-6 {
  padding-inline: 6px !important;
}

@media screen and (min-width: 768px) {
  .p-6-pc {
    padding: 6px !important;
  }
  .pt-6-pc {
    padding-top: 6px !important;
  }
  .pb-6-pc {
    padding-bottom: 6px !important;
  }
  .ptb-6-pc {
    padding-block: 6px !important;
  }
  .pl-6-pc {
    padding-left: 6px !important;
  }
  .pr-6-pc {
    padding-right: 6px !important;
  }
  .plr-6-pc {
    padding-inline: 6px !important;
  }
}
.fs-6 {
  font-size: 6px !important;
}

@media screen and (max-width: 340px) {
  .fs-6-xs {
    font-size: 5.7px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-6-pc {
    font-size: 6px !important;
  }
}
.gap-size {
  gap: 6px !important;
}

.row-gap-size {
  gap: 6px !important;
}

.column-gap-size {
  gap: 6px !important;
}

/* マージン関連クラス */
.m-8 {
  margin: 8px !important;
}

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

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

.mtb-8 {
  margin-block: 8px !important;
}

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

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

.mlr-8 {
  margin-inline: 8px !important;
}

@media screen and (min-width: 768px) {
  .m-8-pc {
    margin: 8px !important;
  }
  .mt-8-pc {
    margin-top: 8px !important;
  }
  .mb-8-pc {
    margin-bottom: 8px !important;
  }
  .mtb-8-pc {
    margin-block: 8px !important;
  }
  .ml-8-pc {
    margin-left: 8px !important;
  }
  .mr-8-pc {
    margin-right: 8px !important;
  }
  .mlr-8-pc {
    margin-inline: 8px !important;
  }
}
/* パディング関連クラス */
.p-8 {
  padding: 8px !important;
}

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

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

.ptb-8 {
  padding-block: 8px !important;
}

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

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

.plr-8 {
  padding-inline: 8px !important;
}

@media screen and (min-width: 768px) {
  .p-8-pc {
    padding: 8px !important;
  }
  .pt-8-pc {
    padding-top: 8px !important;
  }
  .pb-8-pc {
    padding-bottom: 8px !important;
  }
  .ptb-8-pc {
    padding-block: 8px !important;
  }
  .pl-8-pc {
    padding-left: 8px !important;
  }
  .pr-8-pc {
    padding-right: 8px !important;
  }
  .plr-8-pc {
    padding-inline: 8px !important;
  }
}
.fs-8 {
  font-size: 8px !important;
}

@media screen and (max-width: 340px) {
  .fs-8-xs {
    font-size: 7.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-8-pc {
    font-size: 8px !important;
  }
}
.gap-size {
  gap: 8px !important;
}

.row-gap-size {
  gap: 8px !important;
}

.column-gap-size {
  gap: 8px !important;
}

/* マージン関連クラス */
.m-10 {
  margin: 10px !important;
}

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

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

.mtb-10 {
  margin-block: 10px !important;
}

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

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

.mlr-10 {
  margin-inline: 10px !important;
}

@media screen and (min-width: 768px) {
  .m-10-pc {
    margin: 10px !important;
  }
  .mt-10-pc {
    margin-top: 10px !important;
  }
  .mb-10-pc {
    margin-bottom: 10px !important;
  }
  .mtb-10-pc {
    margin-block: 10px !important;
  }
  .ml-10-pc {
    margin-left: 10px !important;
  }
  .mr-10-pc {
    margin-right: 10px !important;
  }
  .mlr-10-pc {
    margin-inline: 10px !important;
  }
}
/* パディング関連クラス */
.p-10 {
  padding: 10px !important;
}

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

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

.ptb-10 {
  padding-block: 10px !important;
}

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

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

.plr-10 {
  padding-inline: 10px !important;
}

@media screen and (min-width: 768px) {
  .p-10-pc {
    padding: 10px !important;
  }
  .pt-10-pc {
    padding-top: 10px !important;
  }
  .pb-10-pc {
    padding-bottom: 10px !important;
  }
  .ptb-10-pc {
    padding-block: 10px !important;
  }
  .pl-10-pc {
    padding-left: 10px !important;
  }
  .pr-10-pc {
    padding-right: 10px !important;
  }
  .plr-10-pc {
    padding-inline: 10px !important;
  }
}
.fs-10 {
  font-size: 10px !important;
}

@media screen and (max-width: 340px) {
  .fs-10-xs {
    font-size: 9.5px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-10-pc {
    font-size: 10px !important;
  }
}
.gap-size {
  gap: 10px !important;
}

.row-gap-size {
  gap: 10px !important;
}

.column-gap-size {
  gap: 10px !important;
}

/* マージン関連クラス */
.m-11 {
  margin: 11px !important;
}

.mt-11 {
  margin-top: 11px !important;
}

.mb-11 {
  margin-bottom: 11px !important;
}

.mtb-11 {
  margin-block: 11px !important;
}

.ml-11 {
  margin-left: 11px !important;
}

.mr-11 {
  margin-right: 11px !important;
}

.mlr-11 {
  margin-inline: 11px !important;
}

@media screen and (min-width: 768px) {
  .m-11-pc {
    margin: 11px !important;
  }
  .mt-11-pc {
    margin-top: 11px !important;
  }
  .mb-11-pc {
    margin-bottom: 11px !important;
  }
  .mtb-11-pc {
    margin-block: 11px !important;
  }
  .ml-11-pc {
    margin-left: 11px !important;
  }
  .mr-11-pc {
    margin-right: 11px !important;
  }
  .mlr-11-pc {
    margin-inline: 11px !important;
  }
}
/* パディング関連クラス */
.p-11 {
  padding: 11px !important;
}

.pt-11 {
  padding-top: 11px !important;
}

.pb-11 {
  padding-bottom: 11px !important;
}

.ptb-11 {
  padding-block: 11px !important;
}

.pl-11 {
  padding-left: 11px !important;
}

.pr-11 {
  padding-right: 11px !important;
}

.plr-11 {
  padding-inline: 11px !important;
}

@media screen and (min-width: 768px) {
  .p-11-pc {
    padding: 11px !important;
  }
  .pt-11-pc {
    padding-top: 11px !important;
  }
  .pb-11-pc {
    padding-bottom: 11px !important;
  }
  .ptb-11-pc {
    padding-block: 11px !important;
  }
  .pl-11-pc {
    padding-left: 11px !important;
  }
  .pr-11-pc {
    padding-right: 11px !important;
  }
  .plr-11-pc {
    padding-inline: 11px !important;
  }
}
.fs-11 {
  font-size: 11px !important;
}

@media screen and (max-width: 340px) {
  .fs-11-xs {
    font-size: 10.45px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-11-pc {
    font-size: 11px !important;
  }
}
.gap-size {
  gap: 11px !important;
}

.row-gap-size {
  gap: 11px !important;
}

.column-gap-size {
  gap: 11px !important;
}

/* マージン関連クラス */
.m-12 {
  margin: 12px !important;
}

.mt-12 {
  margin-top: 12px !important;
}

.mb-12 {
  margin-bottom: 12px !important;
}

.mtb-12 {
  margin-block: 12px !important;
}

.ml-12 {
  margin-left: 12px !important;
}

.mr-12 {
  margin-right: 12px !important;
}

.mlr-12 {
  margin-inline: 12px !important;
}

@media screen and (min-width: 768px) {
  .m-12-pc {
    margin: 12px !important;
  }
  .mt-12-pc {
    margin-top: 12px !important;
  }
  .mb-12-pc {
    margin-bottom: 12px !important;
  }
  .mtb-12-pc {
    margin-block: 12px !important;
  }
  .ml-12-pc {
    margin-left: 12px !important;
  }
  .mr-12-pc {
    margin-right: 12px !important;
  }
  .mlr-12-pc {
    margin-inline: 12px !important;
  }
}
/* パディング関連クラス */
.p-12 {
  padding: 12px !important;
}

.pt-12 {
  padding-top: 12px !important;
}

.pb-12 {
  padding-bottom: 12px !important;
}

.ptb-12 {
  padding-block: 12px !important;
}

.pl-12 {
  padding-left: 12px !important;
}

.pr-12 {
  padding-right: 12px !important;
}

.plr-12 {
  padding-inline: 12px !important;
}

@media screen and (min-width: 768px) {
  .p-12-pc {
    padding: 12px !important;
  }
  .pt-12-pc {
    padding-top: 12px !important;
  }
  .pb-12-pc {
    padding-bottom: 12px !important;
  }
  .ptb-12-pc {
    padding-block: 12px !important;
  }
  .pl-12-pc {
    padding-left: 12px !important;
  }
  .pr-12-pc {
    padding-right: 12px !important;
  }
  .plr-12-pc {
    padding-inline: 12px !important;
  }
}
.fs-12 {
  font-size: 12px !important;
}

@media screen and (max-width: 340px) {
  .fs-12-xs {
    font-size: 11.4px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-12-pc {
    font-size: 12px !important;
  }
}
.gap-size {
  gap: 12px !important;
}

.row-gap-size {
  gap: 12px !important;
}

.column-gap-size {
  gap: 12px !important;
}

/* マージン関連クラス */
.m-13 {
  margin: 13px !important;
}

.mt-13 {
  margin-top: 13px !important;
}

.mb-13 {
  margin-bottom: 13px !important;
}

.mtb-13 {
  margin-block: 13px !important;
}

.ml-13 {
  margin-left: 13px !important;
}

.mr-13 {
  margin-right: 13px !important;
}

.mlr-13 {
  margin-inline: 13px !important;
}

@media screen and (min-width: 768px) {
  .m-13-pc {
    margin: 13px !important;
  }
  .mt-13-pc {
    margin-top: 13px !important;
  }
  .mb-13-pc {
    margin-bottom: 13px !important;
  }
  .mtb-13-pc {
    margin-block: 13px !important;
  }
  .ml-13-pc {
    margin-left: 13px !important;
  }
  .mr-13-pc {
    margin-right: 13px !important;
  }
  .mlr-13-pc {
    margin-inline: 13px !important;
  }
}
/* パディング関連クラス */
.p-13 {
  padding: 13px !important;
}

.pt-13 {
  padding-top: 13px !important;
}

.pb-13 {
  padding-bottom: 13px !important;
}

.ptb-13 {
  padding-block: 13px !important;
}

.pl-13 {
  padding-left: 13px !important;
}

.pr-13 {
  padding-right: 13px !important;
}

.plr-13 {
  padding-inline: 13px !important;
}

@media screen and (min-width: 768px) {
  .p-13-pc {
    padding: 13px !important;
  }
  .pt-13-pc {
    padding-top: 13px !important;
  }
  .pb-13-pc {
    padding-bottom: 13px !important;
  }
  .ptb-13-pc {
    padding-block: 13px !important;
  }
  .pl-13-pc {
    padding-left: 13px !important;
  }
  .pr-13-pc {
    padding-right: 13px !important;
  }
  .plr-13-pc {
    padding-inline: 13px !important;
  }
}
.fs-13 {
  font-size: 13px !important;
}

@media screen and (max-width: 340px) {
  .fs-13-xs {
    font-size: 12.35px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-13-pc {
    font-size: 13px !important;
  }
}
.gap-size {
  gap: 13px !important;
}

.row-gap-size {
  gap: 13px !important;
}

.column-gap-size {
  gap: 13px !important;
}

/* マージン関連クラス */
.m-14 {
  margin: 14px !important;
}

.mt-14 {
  margin-top: 14px !important;
}

.mb-14 {
  margin-bottom: 14px !important;
}

.mtb-14 {
  margin-block: 14px !important;
}

.ml-14 {
  margin-left: 14px !important;
}

.mr-14 {
  margin-right: 14px !important;
}

.mlr-14 {
  margin-inline: 14px !important;
}

@media screen and (min-width: 768px) {
  .m-14-pc {
    margin: 14px !important;
  }
  .mt-14-pc {
    margin-top: 14px !important;
  }
  .mb-14-pc {
    margin-bottom: 14px !important;
  }
  .mtb-14-pc {
    margin-block: 14px !important;
  }
  .ml-14-pc {
    margin-left: 14px !important;
  }
  .mr-14-pc {
    margin-right: 14px !important;
  }
  .mlr-14-pc {
    margin-inline: 14px !important;
  }
}
/* パディング関連クラス */
.p-14 {
  padding: 14px !important;
}

.pt-14 {
  padding-top: 14px !important;
}

.pb-14 {
  padding-bottom: 14px !important;
}

.ptb-14 {
  padding-block: 14px !important;
}

.pl-14 {
  padding-left: 14px !important;
}

.pr-14 {
  padding-right: 14px !important;
}

.plr-14 {
  padding-inline: 14px !important;
}

@media screen and (min-width: 768px) {
  .p-14-pc {
    padding: 14px !important;
  }
  .pt-14-pc {
    padding-top: 14px !important;
  }
  .pb-14-pc {
    padding-bottom: 14px !important;
  }
  .ptb-14-pc {
    padding-block: 14px !important;
  }
  .pl-14-pc {
    padding-left: 14px !important;
  }
  .pr-14-pc {
    padding-right: 14px !important;
  }
  .plr-14-pc {
    padding-inline: 14px !important;
  }
}
.fs-14 {
  font-size: 14px !important;
}

@media screen and (max-width: 340px) {
  .fs-14-xs {
    font-size: 13.3px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-14-pc {
    font-size: 14px !important;
  }
}
.gap-size {
  gap: 14px !important;
}

.row-gap-size {
  gap: 14px !important;
}

.column-gap-size {
  gap: 14px !important;
}

/* マージン関連クラス */
.m-15 {
  margin: 15px !important;
}

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

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

.mtb-15 {
  margin-block: 15px !important;
}

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

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

.mlr-15 {
  margin-inline: 15px !important;
}

@media screen and (min-width: 768px) {
  .m-15-pc {
    margin: 15px !important;
  }
  .mt-15-pc {
    margin-top: 15px !important;
  }
  .mb-15-pc {
    margin-bottom: 15px !important;
  }
  .mtb-15-pc {
    margin-block: 15px !important;
  }
  .ml-15-pc {
    margin-left: 15px !important;
  }
  .mr-15-pc {
    margin-right: 15px !important;
  }
  .mlr-15-pc {
    margin-inline: 15px !important;
  }
}
/* パディング関連クラス */
.p-15 {
  padding: 15px !important;
}

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

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

.ptb-15 {
  padding-block: 15px !important;
}

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

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

.plr-15 {
  padding-inline: 15px !important;
}

@media screen and (min-width: 768px) {
  .p-15-pc {
    padding: 15px !important;
  }
  .pt-15-pc {
    padding-top: 15px !important;
  }
  .pb-15-pc {
    padding-bottom: 15px !important;
  }
  .ptb-15-pc {
    padding-block: 15px !important;
  }
  .pl-15-pc {
    padding-left: 15px !important;
  }
  .pr-15-pc {
    padding-right: 15px !important;
  }
  .plr-15-pc {
    padding-inline: 15px !important;
  }
}
.fs-15 {
  font-size: 15px !important;
}

@media screen and (max-width: 340px) {
  .fs-15-xs {
    font-size: 14.25px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-15-pc {
    font-size: 15px !important;
  }
}
.gap-size {
  gap: 15px !important;
}

.row-gap-size {
  gap: 15px !important;
}

.column-gap-size {
  gap: 15px !important;
}

/* マージン関連クラス */
.m-16 {
  margin: 16px !important;
}

.mt-16 {
  margin-top: 16px !important;
}

.mb-16 {
  margin-bottom: 16px !important;
}

.mtb-16 {
  margin-block: 16px !important;
}

.ml-16 {
  margin-left: 16px !important;
}

.mr-16 {
  margin-right: 16px !important;
}

.mlr-16 {
  margin-inline: 16px !important;
}

@media screen and (min-width: 768px) {
  .m-16-pc {
    margin: 16px !important;
  }
  .mt-16-pc {
    margin-top: 16px !important;
  }
  .mb-16-pc {
    margin-bottom: 16px !important;
  }
  .mtb-16-pc {
    margin-block: 16px !important;
  }
  .ml-16-pc {
    margin-left: 16px !important;
  }
  .mr-16-pc {
    margin-right: 16px !important;
  }
  .mlr-16-pc {
    margin-inline: 16px !important;
  }
}
/* パディング関連クラス */
.p-16 {
  padding: 16px !important;
}

.pt-16 {
  padding-top: 16px !important;
}

.pb-16 {
  padding-bottom: 16px !important;
}

.ptb-16 {
  padding-block: 16px !important;
}

.pl-16 {
  padding-left: 16px !important;
}

.pr-16 {
  padding-right: 16px !important;
}

.plr-16 {
  padding-inline: 16px !important;
}

@media screen and (min-width: 768px) {
  .p-16-pc {
    padding: 16px !important;
  }
  .pt-16-pc {
    padding-top: 16px !important;
  }
  .pb-16-pc {
    padding-bottom: 16px !important;
  }
  .ptb-16-pc {
    padding-block: 16px !important;
  }
  .pl-16-pc {
    padding-left: 16px !important;
  }
  .pr-16-pc {
    padding-right: 16px !important;
  }
  .plr-16-pc {
    padding-inline: 16px !important;
  }
}
.fs-16 {
  font-size: 16px !important;
}

@media screen and (max-width: 340px) {
  .fs-16-xs {
    font-size: 15.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-16-pc {
    font-size: 16px !important;
  }
}
.gap-size {
  gap: 16px !important;
}

.row-gap-size {
  gap: 16px !important;
}

.column-gap-size {
  gap: 16px !important;
}

/* マージン関連クラス */
.m-17 {
  margin: 17px !important;
}

.mt-17 {
  margin-top: 17px !important;
}

.mb-17 {
  margin-bottom: 17px !important;
}

.mtb-17 {
  margin-block: 17px !important;
}

.ml-17 {
  margin-left: 17px !important;
}

.mr-17 {
  margin-right: 17px !important;
}

.mlr-17 {
  margin-inline: 17px !important;
}

@media screen and (min-width: 768px) {
  .m-17-pc {
    margin: 17px !important;
  }
  .mt-17-pc {
    margin-top: 17px !important;
  }
  .mb-17-pc {
    margin-bottom: 17px !important;
  }
  .mtb-17-pc {
    margin-block: 17px !important;
  }
  .ml-17-pc {
    margin-left: 17px !important;
  }
  .mr-17-pc {
    margin-right: 17px !important;
  }
  .mlr-17-pc {
    margin-inline: 17px !important;
  }
}
/* パディング関連クラス */
.p-17 {
  padding: 17px !important;
}

.pt-17 {
  padding-top: 17px !important;
}

.pb-17 {
  padding-bottom: 17px !important;
}

.ptb-17 {
  padding-block: 17px !important;
}

.pl-17 {
  padding-left: 17px !important;
}

.pr-17 {
  padding-right: 17px !important;
}

.plr-17 {
  padding-inline: 17px !important;
}

@media screen and (min-width: 768px) {
  .p-17-pc {
    padding: 17px !important;
  }
  .pt-17-pc {
    padding-top: 17px !important;
  }
  .pb-17-pc {
    padding-bottom: 17px !important;
  }
  .ptb-17-pc {
    padding-block: 17px !important;
  }
  .pl-17-pc {
    padding-left: 17px !important;
  }
  .pr-17-pc {
    padding-right: 17px !important;
  }
  .plr-17-pc {
    padding-inline: 17px !important;
  }
}
.fs-17 {
  font-size: 17px !important;
}

@media screen and (max-width: 340px) {
  .fs-17-xs {
    font-size: 16.15px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-17-pc {
    font-size: 17px !important;
  }
}
.gap-size {
  gap: 17px !important;
}

.row-gap-size {
  gap: 17px !important;
}

.column-gap-size {
  gap: 17px !important;
}

/* マージン関連クラス */
.m-18 {
  margin: 18px !important;
}

.mt-18 {
  margin-top: 18px !important;
}

.mb-18 {
  margin-bottom: 18px !important;
}

.mtb-18 {
  margin-block: 18px !important;
}

.ml-18 {
  margin-left: 18px !important;
}

.mr-18 {
  margin-right: 18px !important;
}

.mlr-18 {
  margin-inline: 18px !important;
}

@media screen and (min-width: 768px) {
  .m-18-pc {
    margin: 18px !important;
  }
  .mt-18-pc {
    margin-top: 18px !important;
  }
  .mb-18-pc {
    margin-bottom: 18px !important;
  }
  .mtb-18-pc {
    margin-block: 18px !important;
  }
  .ml-18-pc {
    margin-left: 18px !important;
  }
  .mr-18-pc {
    margin-right: 18px !important;
  }
  .mlr-18-pc {
    margin-inline: 18px !important;
  }
}
/* パディング関連クラス */
.p-18 {
  padding: 18px !important;
}

.pt-18 {
  padding-top: 18px !important;
}

.pb-18 {
  padding-bottom: 18px !important;
}

.ptb-18 {
  padding-block: 18px !important;
}

.pl-18 {
  padding-left: 18px !important;
}

.pr-18 {
  padding-right: 18px !important;
}

.plr-18 {
  padding-inline: 18px !important;
}

@media screen and (min-width: 768px) {
  .p-18-pc {
    padding: 18px !important;
  }
  .pt-18-pc {
    padding-top: 18px !important;
  }
  .pb-18-pc {
    padding-bottom: 18px !important;
  }
  .ptb-18-pc {
    padding-block: 18px !important;
  }
  .pl-18-pc {
    padding-left: 18px !important;
  }
  .pr-18-pc {
    padding-right: 18px !important;
  }
  .plr-18-pc {
    padding-inline: 18px !important;
  }
}
.fs-18 {
  font-size: 18px !important;
}

@media screen and (max-width: 340px) {
  .fs-18-xs {
    font-size: 17.1px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-18-pc {
    font-size: 18px !important;
  }
}
.gap-size {
  gap: 18px !important;
}

.row-gap-size {
  gap: 18px !important;
}

.column-gap-size {
  gap: 18px !important;
}

/* マージン関連クラス */
.m-19 {
  margin: 19px !important;
}

.mt-19 {
  margin-top: 19px !important;
}

.mb-19 {
  margin-bottom: 19px !important;
}

.mtb-19 {
  margin-block: 19px !important;
}

.ml-19 {
  margin-left: 19px !important;
}

.mr-19 {
  margin-right: 19px !important;
}

.mlr-19 {
  margin-inline: 19px !important;
}

@media screen and (min-width: 768px) {
  .m-19-pc {
    margin: 19px !important;
  }
  .mt-19-pc {
    margin-top: 19px !important;
  }
  .mb-19-pc {
    margin-bottom: 19px !important;
  }
  .mtb-19-pc {
    margin-block: 19px !important;
  }
  .ml-19-pc {
    margin-left: 19px !important;
  }
  .mr-19-pc {
    margin-right: 19px !important;
  }
  .mlr-19-pc {
    margin-inline: 19px !important;
  }
}
/* パディング関連クラス */
.p-19 {
  padding: 19px !important;
}

.pt-19 {
  padding-top: 19px !important;
}

.pb-19 {
  padding-bottom: 19px !important;
}

.ptb-19 {
  padding-block: 19px !important;
}

.pl-19 {
  padding-left: 19px !important;
}

.pr-19 {
  padding-right: 19px !important;
}

.plr-19 {
  padding-inline: 19px !important;
}

@media screen and (min-width: 768px) {
  .p-19-pc {
    padding: 19px !important;
  }
  .pt-19-pc {
    padding-top: 19px !important;
  }
  .pb-19-pc {
    padding-bottom: 19px !important;
  }
  .ptb-19-pc {
    padding-block: 19px !important;
  }
  .pl-19-pc {
    padding-left: 19px !important;
  }
  .pr-19-pc {
    padding-right: 19px !important;
  }
  .plr-19-pc {
    padding-inline: 19px !important;
  }
}
.fs-19 {
  font-size: 19px !important;
}

@media screen and (max-width: 340px) {
  .fs-19-xs {
    font-size: 18.05px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-19-pc {
    font-size: 19px !important;
  }
}
.gap-size {
  gap: 19px !important;
}

.row-gap-size {
  gap: 19px !important;
}

.column-gap-size {
  gap: 19px !important;
}

/* マージン関連クラス */
.m-20 {
  margin: 20px !important;
}

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

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

.mtb-20 {
  margin-block: 20px !important;
}

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

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

.mlr-20 {
  margin-inline: 20px !important;
}

@media screen and (min-width: 768px) {
  .m-20-pc {
    margin: 20px !important;
  }
  .mt-20-pc {
    margin-top: 20px !important;
  }
  .mb-20-pc {
    margin-bottom: 20px !important;
  }
  .mtb-20-pc {
    margin-block: 20px !important;
  }
  .ml-20-pc {
    margin-left: 20px !important;
  }
  .mr-20-pc {
    margin-right: 20px !important;
  }
  .mlr-20-pc {
    margin-inline: 20px !important;
  }
}
/* パディング関連クラス */
.p-20 {
  padding: 20px !important;
}

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

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

.ptb-20 {
  padding-block: 20px !important;
}

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

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

.plr-20 {
  padding-inline: 20px !important;
}

@media screen and (min-width: 768px) {
  .p-20-pc {
    padding: 20px !important;
  }
  .pt-20-pc {
    padding-top: 20px !important;
  }
  .pb-20-pc {
    padding-bottom: 20px !important;
  }
  .ptb-20-pc {
    padding-block: 20px !important;
  }
  .pl-20-pc {
    padding-left: 20px !important;
  }
  .pr-20-pc {
    padding-right: 20px !important;
  }
  .plr-20-pc {
    padding-inline: 20px !important;
  }
}
.fs-20 {
  font-size: 20px !important;
}

@media screen and (max-width: 340px) {
  .fs-20-xs {
    font-size: 19px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-20-pc {
    font-size: 20px !important;
  }
}
.gap-size {
  gap: 20px !important;
}

.row-gap-size {
  gap: 20px !important;
}

.column-gap-size {
  gap: 20px !important;
}

/* マージン関連クラス */
.m-22 {
  margin: 22px !important;
}

.mt-22 {
  margin-top: 22px !important;
}

.mb-22 {
  margin-bottom: 22px !important;
}

.mtb-22 {
  margin-block: 22px !important;
}

.ml-22 {
  margin-left: 22px !important;
}

.mr-22 {
  margin-right: 22px !important;
}

.mlr-22 {
  margin-inline: 22px !important;
}

@media screen and (min-width: 768px) {
  .m-22-pc {
    margin: 22px !important;
  }
  .mt-22-pc {
    margin-top: 22px !important;
  }
  .mb-22-pc {
    margin-bottom: 22px !important;
  }
  .mtb-22-pc {
    margin-block: 22px !important;
  }
  .ml-22-pc {
    margin-left: 22px !important;
  }
  .mr-22-pc {
    margin-right: 22px !important;
  }
  .mlr-22-pc {
    margin-inline: 22px !important;
  }
}
/* パディング関連クラス */
.p-22 {
  padding: 22px !important;
}

.pt-22 {
  padding-top: 22px !important;
}

.pb-22 {
  padding-bottom: 22px !important;
}

.ptb-22 {
  padding-block: 22px !important;
}

.pl-22 {
  padding-left: 22px !important;
}

.pr-22 {
  padding-right: 22px !important;
}

.plr-22 {
  padding-inline: 22px !important;
}

@media screen and (min-width: 768px) {
  .p-22-pc {
    padding: 22px !important;
  }
  .pt-22-pc {
    padding-top: 22px !important;
  }
  .pb-22-pc {
    padding-bottom: 22px !important;
  }
  .ptb-22-pc {
    padding-block: 22px !important;
  }
  .pl-22-pc {
    padding-left: 22px !important;
  }
  .pr-22-pc {
    padding-right: 22px !important;
  }
  .plr-22-pc {
    padding-inline: 22px !important;
  }
}
.fs-22 {
  font-size: 22px !important;
}

@media screen and (max-width: 340px) {
  .fs-22-xs {
    font-size: 20.9px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-22-pc {
    font-size: 22px !important;
  }
}
.gap-size {
  gap: 22px !important;
}

.row-gap-size {
  gap: 22px !important;
}

.column-gap-size {
  gap: 22px !important;
}

/* マージン関連クラス */
.m-24 {
  margin: 24px !important;
}

.mt-24 {
  margin-top: 24px !important;
}

.mb-24 {
  margin-bottom: 24px !important;
}

.mtb-24 {
  margin-block: 24px !important;
}

.ml-24 {
  margin-left: 24px !important;
}

.mr-24 {
  margin-right: 24px !important;
}

.mlr-24 {
  margin-inline: 24px !important;
}

@media screen and (min-width: 768px) {
  .m-24-pc {
    margin: 24px !important;
  }
  .mt-24-pc {
    margin-top: 24px !important;
  }
  .mb-24-pc {
    margin-bottom: 24px !important;
  }
  .mtb-24-pc {
    margin-block: 24px !important;
  }
  .ml-24-pc {
    margin-left: 24px !important;
  }
  .mr-24-pc {
    margin-right: 24px !important;
  }
  .mlr-24-pc {
    margin-inline: 24px !important;
  }
}
/* パディング関連クラス */
.p-24 {
  padding: 24px !important;
}

.pt-24 {
  padding-top: 24px !important;
}

.pb-24 {
  padding-bottom: 24px !important;
}

.ptb-24 {
  padding-block: 24px !important;
}

.pl-24 {
  padding-left: 24px !important;
}

.pr-24 {
  padding-right: 24px !important;
}

.plr-24 {
  padding-inline: 24px !important;
}

@media screen and (min-width: 768px) {
  .p-24-pc {
    padding: 24px !important;
  }
  .pt-24-pc {
    padding-top: 24px !important;
  }
  .pb-24-pc {
    padding-bottom: 24px !important;
  }
  .ptb-24-pc {
    padding-block: 24px !important;
  }
  .pl-24-pc {
    padding-left: 24px !important;
  }
  .pr-24-pc {
    padding-right: 24px !important;
  }
  .plr-24-pc {
    padding-inline: 24px !important;
  }
}
.fs-24 {
  font-size: 24px !important;
}

@media screen and (max-width: 340px) {
  .fs-24-xs {
    font-size: 22.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-24-pc {
    font-size: 24px !important;
  }
}
.gap-size {
  gap: 24px !important;
}

.row-gap-size {
  gap: 24px !important;
}

.column-gap-size {
  gap: 24px !important;
}

/* マージン関連クラス */
.m-26 {
  margin: 26px !important;
}

.mt-26 {
  margin-top: 26px !important;
}

.mb-26 {
  margin-bottom: 26px !important;
}

.mtb-26 {
  margin-block: 26px !important;
}

.ml-26 {
  margin-left: 26px !important;
}

.mr-26 {
  margin-right: 26px !important;
}

.mlr-26 {
  margin-inline: 26px !important;
}

@media screen and (min-width: 768px) {
  .m-26-pc {
    margin: 26px !important;
  }
  .mt-26-pc {
    margin-top: 26px !important;
  }
  .mb-26-pc {
    margin-bottom: 26px !important;
  }
  .mtb-26-pc {
    margin-block: 26px !important;
  }
  .ml-26-pc {
    margin-left: 26px !important;
  }
  .mr-26-pc {
    margin-right: 26px !important;
  }
  .mlr-26-pc {
    margin-inline: 26px !important;
  }
}
/* パディング関連クラス */
.p-26 {
  padding: 26px !important;
}

.pt-26 {
  padding-top: 26px !important;
}

.pb-26 {
  padding-bottom: 26px !important;
}

.ptb-26 {
  padding-block: 26px !important;
}

.pl-26 {
  padding-left: 26px !important;
}

.pr-26 {
  padding-right: 26px !important;
}

.plr-26 {
  padding-inline: 26px !important;
}

@media screen and (min-width: 768px) {
  .p-26-pc {
    padding: 26px !important;
  }
  .pt-26-pc {
    padding-top: 26px !important;
  }
  .pb-26-pc {
    padding-bottom: 26px !important;
  }
  .ptb-26-pc {
    padding-block: 26px !important;
  }
  .pl-26-pc {
    padding-left: 26px !important;
  }
  .pr-26-pc {
    padding-right: 26px !important;
  }
  .plr-26-pc {
    padding-inline: 26px !important;
  }
}
.fs-26 {
  font-size: 26px !important;
}

@media screen and (max-width: 340px) {
  .fs-26-xs {
    font-size: 24.7px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-26-pc {
    font-size: 26px !important;
  }
}
.gap-size {
  gap: 26px !important;
}

.row-gap-size {
  gap: 26px !important;
}

.column-gap-size {
  gap: 26px !important;
}

/* マージン関連クラス */
.m-28 {
  margin: 28px !important;
}

.mt-28 {
  margin-top: 28px !important;
}

.mb-28 {
  margin-bottom: 28px !important;
}

.mtb-28 {
  margin-block: 28px !important;
}

.ml-28 {
  margin-left: 28px !important;
}

.mr-28 {
  margin-right: 28px !important;
}

.mlr-28 {
  margin-inline: 28px !important;
}

@media screen and (min-width: 768px) {
  .m-28-pc {
    margin: 28px !important;
  }
  .mt-28-pc {
    margin-top: 28px !important;
  }
  .mb-28-pc {
    margin-bottom: 28px !important;
  }
  .mtb-28-pc {
    margin-block: 28px !important;
  }
  .ml-28-pc {
    margin-left: 28px !important;
  }
  .mr-28-pc {
    margin-right: 28px !important;
  }
  .mlr-28-pc {
    margin-inline: 28px !important;
  }
}
/* パディング関連クラス */
.p-28 {
  padding: 28px !important;
}

.pt-28 {
  padding-top: 28px !important;
}

.pb-28 {
  padding-bottom: 28px !important;
}

.ptb-28 {
  padding-block: 28px !important;
}

.pl-28 {
  padding-left: 28px !important;
}

.pr-28 {
  padding-right: 28px !important;
}

.plr-28 {
  padding-inline: 28px !important;
}

@media screen and (min-width: 768px) {
  .p-28-pc {
    padding: 28px !important;
  }
  .pt-28-pc {
    padding-top: 28px !important;
  }
  .pb-28-pc {
    padding-bottom: 28px !important;
  }
  .ptb-28-pc {
    padding-block: 28px !important;
  }
  .pl-28-pc {
    padding-left: 28px !important;
  }
  .pr-28-pc {
    padding-right: 28px !important;
  }
  .plr-28-pc {
    padding-inline: 28px !important;
  }
}
.fs-28 {
  font-size: 28px !important;
}

@media screen and (max-width: 340px) {
  .fs-28-xs {
    font-size: 26.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-28-pc {
    font-size: 28px !important;
  }
}
.gap-size {
  gap: 28px !important;
}

.row-gap-size {
  gap: 28px !important;
}

.column-gap-size {
  gap: 28px !important;
}

/* マージン関連クラス */
.m-30 {
  margin: 30px !important;
}

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

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

.mtb-30 {
  margin-block: 30px !important;
}

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

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

.mlr-30 {
  margin-inline: 30px !important;
}

@media screen and (min-width: 768px) {
  .m-30-pc {
    margin: 30px !important;
  }
  .mt-30-pc {
    margin-top: 30px !important;
  }
  .mb-30-pc {
    margin-bottom: 30px !important;
  }
  .mtb-30-pc {
    margin-block: 30px !important;
  }
  .ml-30-pc {
    margin-left: 30px !important;
  }
  .mr-30-pc {
    margin-right: 30px !important;
  }
  .mlr-30-pc {
    margin-inline: 30px !important;
  }
}
/* パディング関連クラス */
.p-30 {
  padding: 30px !important;
}

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

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

.ptb-30 {
  padding-block: 30px !important;
}

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

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

.plr-30 {
  padding-inline: 30px !important;
}

@media screen and (min-width: 768px) {
  .p-30-pc {
    padding: 30px !important;
  }
  .pt-30-pc {
    padding-top: 30px !important;
  }
  .pb-30-pc {
    padding-bottom: 30px !important;
  }
  .ptb-30-pc {
    padding-block: 30px !important;
  }
  .pl-30-pc {
    padding-left: 30px !important;
  }
  .pr-30-pc {
    padding-right: 30px !important;
  }
  .plr-30-pc {
    padding-inline: 30px !important;
  }
}
.fs-30 {
  font-size: 30px !important;
}

@media screen and (max-width: 340px) {
  .fs-30-xs {
    font-size: 28.5px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-30-pc {
    font-size: 30px !important;
  }
}
.gap-size {
  gap: 30px !important;
}

.row-gap-size {
  gap: 30px !important;
}

.column-gap-size {
  gap: 30px !important;
}

/* マージン関連クラス */
.m-32 {
  margin: 32px !important;
}

.mt-32 {
  margin-top: 32px !important;
}

.mb-32 {
  margin-bottom: 32px !important;
}

.mtb-32 {
  margin-block: 32px !important;
}

.ml-32 {
  margin-left: 32px !important;
}

.mr-32 {
  margin-right: 32px !important;
}

.mlr-32 {
  margin-inline: 32px !important;
}

@media screen and (min-width: 768px) {
  .m-32-pc {
    margin: 32px !important;
  }
  .mt-32-pc {
    margin-top: 32px !important;
  }
  .mb-32-pc {
    margin-bottom: 32px !important;
  }
  .mtb-32-pc {
    margin-block: 32px !important;
  }
  .ml-32-pc {
    margin-left: 32px !important;
  }
  .mr-32-pc {
    margin-right: 32px !important;
  }
  .mlr-32-pc {
    margin-inline: 32px !important;
  }
}
/* パディング関連クラス */
.p-32 {
  padding: 32px !important;
}

.pt-32 {
  padding-top: 32px !important;
}

.pb-32 {
  padding-bottom: 32px !important;
}

.ptb-32 {
  padding-block: 32px !important;
}

.pl-32 {
  padding-left: 32px !important;
}

.pr-32 {
  padding-right: 32px !important;
}

.plr-32 {
  padding-inline: 32px !important;
}

@media screen and (min-width: 768px) {
  .p-32-pc {
    padding: 32px !important;
  }
  .pt-32-pc {
    padding-top: 32px !important;
  }
  .pb-32-pc {
    padding-bottom: 32px !important;
  }
  .ptb-32-pc {
    padding-block: 32px !important;
  }
  .pl-32-pc {
    padding-left: 32px !important;
  }
  .pr-32-pc {
    padding-right: 32px !important;
  }
  .plr-32-pc {
    padding-inline: 32px !important;
  }
}
.fs-32 {
  font-size: 32px !important;
}

@media screen and (max-width: 340px) {
  .fs-32-xs {
    font-size: 30.4px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-32-pc {
    font-size: 32px !important;
  }
}
.gap-size {
  gap: 32px !important;
}

.row-gap-size {
  gap: 32px !important;
}

.column-gap-size {
  gap: 32px !important;
}

/* マージン関連クラス */
.m-36 {
  margin: 36px !important;
}

.mt-36 {
  margin-top: 36px !important;
}

.mb-36 {
  margin-bottom: 36px !important;
}

.mtb-36 {
  margin-block: 36px !important;
}

.ml-36 {
  margin-left: 36px !important;
}

.mr-36 {
  margin-right: 36px !important;
}

.mlr-36 {
  margin-inline: 36px !important;
}

@media screen and (min-width: 768px) {
  .m-36-pc {
    margin: 36px !important;
  }
  .mt-36-pc {
    margin-top: 36px !important;
  }
  .mb-36-pc {
    margin-bottom: 36px !important;
  }
  .mtb-36-pc {
    margin-block: 36px !important;
  }
  .ml-36-pc {
    margin-left: 36px !important;
  }
  .mr-36-pc {
    margin-right: 36px !important;
  }
  .mlr-36-pc {
    margin-inline: 36px !important;
  }
}
/* パディング関連クラス */
.p-36 {
  padding: 36px !important;
}

.pt-36 {
  padding-top: 36px !important;
}

.pb-36 {
  padding-bottom: 36px !important;
}

.ptb-36 {
  padding-block: 36px !important;
}

.pl-36 {
  padding-left: 36px !important;
}

.pr-36 {
  padding-right: 36px !important;
}

.plr-36 {
  padding-inline: 36px !important;
}

@media screen and (min-width: 768px) {
  .p-36-pc {
    padding: 36px !important;
  }
  .pt-36-pc {
    padding-top: 36px !important;
  }
  .pb-36-pc {
    padding-bottom: 36px !important;
  }
  .ptb-36-pc {
    padding-block: 36px !important;
  }
  .pl-36-pc {
    padding-left: 36px !important;
  }
  .pr-36-pc {
    padding-right: 36px !important;
  }
  .plr-36-pc {
    padding-inline: 36px !important;
  }
}
.fs-36 {
  font-size: 36px !important;
}

@media screen and (max-width: 340px) {
  .fs-36-xs {
    font-size: 34.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-36-pc {
    font-size: 36px !important;
  }
}
.gap-size {
  gap: 36px !important;
}

.row-gap-size {
  gap: 36px !important;
}

.column-gap-size {
  gap: 36px !important;
}

/* マージン関連クラス */
.m-40 {
  margin: 40px !important;
}

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

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

.mtb-40 {
  margin-block: 40px !important;
}

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

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

.mlr-40 {
  margin-inline: 40px !important;
}

@media screen and (min-width: 768px) {
  .m-40-pc {
    margin: 40px !important;
  }
  .mt-40-pc {
    margin-top: 40px !important;
  }
  .mb-40-pc {
    margin-bottom: 40px !important;
  }
  .mtb-40-pc {
    margin-block: 40px !important;
  }
  .ml-40-pc {
    margin-left: 40px !important;
  }
  .mr-40-pc {
    margin-right: 40px !important;
  }
  .mlr-40-pc {
    margin-inline: 40px !important;
  }
}
/* パディング関連クラス */
.p-40 {
  padding: 40px !important;
}

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

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

.ptb-40 {
  padding-block: 40px !important;
}

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

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

.plr-40 {
  padding-inline: 40px !important;
}

@media screen and (min-width: 768px) {
  .p-40-pc {
    padding: 40px !important;
  }
  .pt-40-pc {
    padding-top: 40px !important;
  }
  .pb-40-pc {
    padding-bottom: 40px !important;
  }
  .ptb-40-pc {
    padding-block: 40px !important;
  }
  .pl-40-pc {
    padding-left: 40px !important;
  }
  .pr-40-pc {
    padding-right: 40px !important;
  }
  .plr-40-pc {
    padding-inline: 40px !important;
  }
}
.fs-40 {
  font-size: 40px !important;
}

@media screen and (max-width: 340px) {
  .fs-40-xs {
    font-size: 38px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-40-pc {
    font-size: 40px !important;
  }
}
.gap-size {
  gap: 40px !important;
}

.row-gap-size {
  gap: 40px !important;
}

.column-gap-size {
  gap: 40px !important;
}

/* マージン関連クラス */
.m-44 {
  margin: 44px !important;
}

.mt-44 {
  margin-top: 44px !important;
}

.mb-44 {
  margin-bottom: 44px !important;
}

.mtb-44 {
  margin-block: 44px !important;
}

.ml-44 {
  margin-left: 44px !important;
}

.mr-44 {
  margin-right: 44px !important;
}

.mlr-44 {
  margin-inline: 44px !important;
}

@media screen and (min-width: 768px) {
  .m-44-pc {
    margin: 44px !important;
  }
  .mt-44-pc {
    margin-top: 44px !important;
  }
  .mb-44-pc {
    margin-bottom: 44px !important;
  }
  .mtb-44-pc {
    margin-block: 44px !important;
  }
  .ml-44-pc {
    margin-left: 44px !important;
  }
  .mr-44-pc {
    margin-right: 44px !important;
  }
  .mlr-44-pc {
    margin-inline: 44px !important;
  }
}
/* パディング関連クラス */
.p-44 {
  padding: 44px !important;
}

.pt-44 {
  padding-top: 44px !important;
}

.pb-44 {
  padding-bottom: 44px !important;
}

.ptb-44 {
  padding-block: 44px !important;
}

.pl-44 {
  padding-left: 44px !important;
}

.pr-44 {
  padding-right: 44px !important;
}

.plr-44 {
  padding-inline: 44px !important;
}

@media screen and (min-width: 768px) {
  .p-44-pc {
    padding: 44px !important;
  }
  .pt-44-pc {
    padding-top: 44px !important;
  }
  .pb-44-pc {
    padding-bottom: 44px !important;
  }
  .ptb-44-pc {
    padding-block: 44px !important;
  }
  .pl-44-pc {
    padding-left: 44px !important;
  }
  .pr-44-pc {
    padding-right: 44px !important;
  }
  .plr-44-pc {
    padding-inline: 44px !important;
  }
}
.fs-44 {
  font-size: 44px !important;
}

@media screen and (max-width: 340px) {
  .fs-44-xs {
    font-size: 41.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-44-pc {
    font-size: 44px !important;
  }
}
.gap-size {
  gap: 44px !important;
}

.row-gap-size {
  gap: 44px !important;
}

.column-gap-size {
  gap: 44px !important;
}

/* マージン関連クラス */
.m-48 {
  margin: 48px !important;
}

.mt-48 {
  margin-top: 48px !important;
}

.mb-48 {
  margin-bottom: 48px !important;
}

.mtb-48 {
  margin-block: 48px !important;
}

.ml-48 {
  margin-left: 48px !important;
}

.mr-48 {
  margin-right: 48px !important;
}

.mlr-48 {
  margin-inline: 48px !important;
}

@media screen and (min-width: 768px) {
  .m-48-pc {
    margin: 48px !important;
  }
  .mt-48-pc {
    margin-top: 48px !important;
  }
  .mb-48-pc {
    margin-bottom: 48px !important;
  }
  .mtb-48-pc {
    margin-block: 48px !important;
  }
  .ml-48-pc {
    margin-left: 48px !important;
  }
  .mr-48-pc {
    margin-right: 48px !important;
  }
  .mlr-48-pc {
    margin-inline: 48px !important;
  }
}
/* パディング関連クラス */
.p-48 {
  padding: 48px !important;
}

.pt-48 {
  padding-top: 48px !important;
}

.pb-48 {
  padding-bottom: 48px !important;
}

.ptb-48 {
  padding-block: 48px !important;
}

.pl-48 {
  padding-left: 48px !important;
}

.pr-48 {
  padding-right: 48px !important;
}

.plr-48 {
  padding-inline: 48px !important;
}

@media screen and (min-width: 768px) {
  .p-48-pc {
    padding: 48px !important;
  }
  .pt-48-pc {
    padding-top: 48px !important;
  }
  .pb-48-pc {
    padding-bottom: 48px !important;
  }
  .ptb-48-pc {
    padding-block: 48px !important;
  }
  .pl-48-pc {
    padding-left: 48px !important;
  }
  .pr-48-pc {
    padding-right: 48px !important;
  }
  .plr-48-pc {
    padding-inline: 48px !important;
  }
}
.fs-48 {
  font-size: 48px !important;
}

@media screen and (max-width: 340px) {
  .fs-48-xs {
    font-size: 45.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-48-pc {
    font-size: 48px !important;
  }
}
.gap-size {
  gap: 48px !important;
}

.row-gap-size {
  gap: 48px !important;
}

.column-gap-size {
  gap: 48px !important;
}

/* マージン関連クラス */
.m-52 {
  margin: 52px !important;
}

.mt-52 {
  margin-top: 52px !important;
}

.mb-52 {
  margin-bottom: 52px !important;
}

.mtb-52 {
  margin-block: 52px !important;
}

.ml-52 {
  margin-left: 52px !important;
}

.mr-52 {
  margin-right: 52px !important;
}

.mlr-52 {
  margin-inline: 52px !important;
}

@media screen and (min-width: 768px) {
  .m-52-pc {
    margin: 52px !important;
  }
  .mt-52-pc {
    margin-top: 52px !important;
  }
  .mb-52-pc {
    margin-bottom: 52px !important;
  }
  .mtb-52-pc {
    margin-block: 52px !important;
  }
  .ml-52-pc {
    margin-left: 52px !important;
  }
  .mr-52-pc {
    margin-right: 52px !important;
  }
  .mlr-52-pc {
    margin-inline: 52px !important;
  }
}
/* パディング関連クラス */
.p-52 {
  padding: 52px !important;
}

.pt-52 {
  padding-top: 52px !important;
}

.pb-52 {
  padding-bottom: 52px !important;
}

.ptb-52 {
  padding-block: 52px !important;
}

.pl-52 {
  padding-left: 52px !important;
}

.pr-52 {
  padding-right: 52px !important;
}

.plr-52 {
  padding-inline: 52px !important;
}

@media screen and (min-width: 768px) {
  .p-52-pc {
    padding: 52px !important;
  }
  .pt-52-pc {
    padding-top: 52px !important;
  }
  .pb-52-pc {
    padding-bottom: 52px !important;
  }
  .ptb-52-pc {
    padding-block: 52px !important;
  }
  .pl-52-pc {
    padding-left: 52px !important;
  }
  .pr-52-pc {
    padding-right: 52px !important;
  }
  .plr-52-pc {
    padding-inline: 52px !important;
  }
}
.fs-52 {
  font-size: 52px !important;
}

@media screen and (max-width: 340px) {
  .fs-52-xs {
    font-size: 49.4px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-52-pc {
    font-size: 52px !important;
  }
}
.gap-size {
  gap: 52px !important;
}

.row-gap-size {
  gap: 52px !important;
}

.column-gap-size {
  gap: 52px !important;
}

/* マージン関連クラス */
.m-56 {
  margin: 56px !important;
}

.mt-56 {
  margin-top: 56px !important;
}

.mb-56 {
  margin-bottom: 56px !important;
}

.mtb-56 {
  margin-block: 56px !important;
}

.ml-56 {
  margin-left: 56px !important;
}

.mr-56 {
  margin-right: 56px !important;
}

.mlr-56 {
  margin-inline: 56px !important;
}

@media screen and (min-width: 768px) {
  .m-56-pc {
    margin: 56px !important;
  }
  .mt-56-pc {
    margin-top: 56px !important;
  }
  .mb-56-pc {
    margin-bottom: 56px !important;
  }
  .mtb-56-pc {
    margin-block: 56px !important;
  }
  .ml-56-pc {
    margin-left: 56px !important;
  }
  .mr-56-pc {
    margin-right: 56px !important;
  }
  .mlr-56-pc {
    margin-inline: 56px !important;
  }
}
/* パディング関連クラス */
.p-56 {
  padding: 56px !important;
}

.pt-56 {
  padding-top: 56px !important;
}

.pb-56 {
  padding-bottom: 56px !important;
}

.ptb-56 {
  padding-block: 56px !important;
}

.pl-56 {
  padding-left: 56px !important;
}

.pr-56 {
  padding-right: 56px !important;
}

.plr-56 {
  padding-inline: 56px !important;
}

@media screen and (min-width: 768px) {
  .p-56-pc {
    padding: 56px !important;
  }
  .pt-56-pc {
    padding-top: 56px !important;
  }
  .pb-56-pc {
    padding-bottom: 56px !important;
  }
  .ptb-56-pc {
    padding-block: 56px !important;
  }
  .pl-56-pc {
    padding-left: 56px !important;
  }
  .pr-56-pc {
    padding-right: 56px !important;
  }
  .plr-56-pc {
    padding-inline: 56px !important;
  }
}
.fs-56 {
  font-size: 56px !important;
}

@media screen and (max-width: 340px) {
  .fs-56-xs {
    font-size: 53.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-56-pc {
    font-size: 56px !important;
  }
}
.gap-size {
  gap: 56px !important;
}

.row-gap-size {
  gap: 56px !important;
}

.column-gap-size {
  gap: 56px !important;
}

/* マージン関連クラス */
.m-60 {
  margin: 60px !important;
}

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

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

.mtb-60 {
  margin-block: 60px !important;
}

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

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

.mlr-60 {
  margin-inline: 60px !important;
}

@media screen and (min-width: 768px) {
  .m-60-pc {
    margin: 60px !important;
  }
  .mt-60-pc {
    margin-top: 60px !important;
  }
  .mb-60-pc {
    margin-bottom: 60px !important;
  }
  .mtb-60-pc {
    margin-block: 60px !important;
  }
  .ml-60-pc {
    margin-left: 60px !important;
  }
  .mr-60-pc {
    margin-right: 60px !important;
  }
  .mlr-60-pc {
    margin-inline: 60px !important;
  }
}
/* パディング関連クラス */
.p-60 {
  padding: 60px !important;
}

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

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

.ptb-60 {
  padding-block: 60px !important;
}

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

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

.plr-60 {
  padding-inline: 60px !important;
}

@media screen and (min-width: 768px) {
  .p-60-pc {
    padding: 60px !important;
  }
  .pt-60-pc {
    padding-top: 60px !important;
  }
  .pb-60-pc {
    padding-bottom: 60px !important;
  }
  .ptb-60-pc {
    padding-block: 60px !important;
  }
  .pl-60-pc {
    padding-left: 60px !important;
  }
  .pr-60-pc {
    padding-right: 60px !important;
  }
  .plr-60-pc {
    padding-inline: 60px !important;
  }
}
.fs-60 {
  font-size: 60px !important;
}

@media screen and (max-width: 340px) {
  .fs-60-xs {
    font-size: 57px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-60-pc {
    font-size: 60px !important;
  }
}
.gap-size {
  gap: 60px !important;
}

.row-gap-size {
  gap: 60px !important;
}

.column-gap-size {
  gap: 60px !important;
}

/* マージン関連クラス */
.m-64 {
  margin: 64px !important;
}

.mt-64 {
  margin-top: 64px !important;
}

.mb-64 {
  margin-bottom: 64px !important;
}

.mtb-64 {
  margin-block: 64px !important;
}

.ml-64 {
  margin-left: 64px !important;
}

.mr-64 {
  margin-right: 64px !important;
}

.mlr-64 {
  margin-inline: 64px !important;
}

@media screen and (min-width: 768px) {
  .m-64-pc {
    margin: 64px !important;
  }
  .mt-64-pc {
    margin-top: 64px !important;
  }
  .mb-64-pc {
    margin-bottom: 64px !important;
  }
  .mtb-64-pc {
    margin-block: 64px !important;
  }
  .ml-64-pc {
    margin-left: 64px !important;
  }
  .mr-64-pc {
    margin-right: 64px !important;
  }
  .mlr-64-pc {
    margin-inline: 64px !important;
  }
}
/* パディング関連クラス */
.p-64 {
  padding: 64px !important;
}

.pt-64 {
  padding-top: 64px !important;
}

.pb-64 {
  padding-bottom: 64px !important;
}

.ptb-64 {
  padding-block: 64px !important;
}

.pl-64 {
  padding-left: 64px !important;
}

.pr-64 {
  padding-right: 64px !important;
}

.plr-64 {
  padding-inline: 64px !important;
}

@media screen and (min-width: 768px) {
  .p-64-pc {
    padding: 64px !important;
  }
  .pt-64-pc {
    padding-top: 64px !important;
  }
  .pb-64-pc {
    padding-bottom: 64px !important;
  }
  .ptb-64-pc {
    padding-block: 64px !important;
  }
  .pl-64-pc {
    padding-left: 64px !important;
  }
  .pr-64-pc {
    padding-right: 64px !important;
  }
  .plr-64-pc {
    padding-inline: 64px !important;
  }
}
.fs-64 {
  font-size: 64px !important;
}

@media screen and (max-width: 340px) {
  .fs-64-xs {
    font-size: 60.8px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-64-pc {
    font-size: 64px !important;
  }
}
.gap-size {
  gap: 64px !important;
}

.row-gap-size {
  gap: 64px !important;
}

.column-gap-size {
  gap: 64px !important;
}

/* マージン関連クラス */
.m-80 {
  margin: 80px !important;
}

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

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

.mtb-80 {
  margin-block: 80px !important;
}

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

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

.mlr-80 {
  margin-inline: 80px !important;
}

@media screen and (min-width: 768px) {
  .m-80-pc {
    margin: 80px !important;
  }
  .mt-80-pc {
    margin-top: 80px !important;
  }
  .mb-80-pc {
    margin-bottom: 80px !important;
  }
  .mtb-80-pc {
    margin-block: 80px !important;
  }
  .ml-80-pc {
    margin-left: 80px !important;
  }
  .mr-80-pc {
    margin-right: 80px !important;
  }
  .mlr-80-pc {
    margin-inline: 80px !important;
  }
}
/* パディング関連クラス */
.p-80 {
  padding: 80px !important;
}

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

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

.ptb-80 {
  padding-block: 80px !important;
}

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

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

.plr-80 {
  padding-inline: 80px !important;
}

@media screen and (min-width: 768px) {
  .p-80-pc {
    padding: 80px !important;
  }
  .pt-80-pc {
    padding-top: 80px !important;
  }
  .pb-80-pc {
    padding-bottom: 80px !important;
  }
  .ptb-80-pc {
    padding-block: 80px !important;
  }
  .pl-80-pc {
    padding-left: 80px !important;
  }
  .pr-80-pc {
    padding-right: 80px !important;
  }
  .plr-80-pc {
    padding-inline: 80px !important;
  }
}
.fs-80 {
  font-size: 80px !important;
}

@media screen and (max-width: 340px) {
  .fs-80-xs {
    font-size: 76px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-80-pc {
    font-size: 80px !important;
  }
}
.gap-size {
  gap: 80px !important;
}

.row-gap-size {
  gap: 80px !important;
}

.column-gap-size {
  gap: 80px !important;
}

/* マージン関連クラス */
.m-88 {
  margin: 88px !important;
}

.mt-88 {
  margin-top: 88px !important;
}

.mb-88 {
  margin-bottom: 88px !important;
}

.mtb-88 {
  margin-block: 88px !important;
}

.ml-88 {
  margin-left: 88px !important;
}

.mr-88 {
  margin-right: 88px !important;
}

.mlr-88 {
  margin-inline: 88px !important;
}

@media screen and (min-width: 768px) {
  .m-88-pc {
    margin: 88px !important;
  }
  .mt-88-pc {
    margin-top: 88px !important;
  }
  .mb-88-pc {
    margin-bottom: 88px !important;
  }
  .mtb-88-pc {
    margin-block: 88px !important;
  }
  .ml-88-pc {
    margin-left: 88px !important;
  }
  .mr-88-pc {
    margin-right: 88px !important;
  }
  .mlr-88-pc {
    margin-inline: 88px !important;
  }
}
/* パディング関連クラス */
.p-88 {
  padding: 88px !important;
}

.pt-88 {
  padding-top: 88px !important;
}

.pb-88 {
  padding-bottom: 88px !important;
}

.ptb-88 {
  padding-block: 88px !important;
}

.pl-88 {
  padding-left: 88px !important;
}

.pr-88 {
  padding-right: 88px !important;
}

.plr-88 {
  padding-inline: 88px !important;
}

@media screen and (min-width: 768px) {
  .p-88-pc {
    padding: 88px !important;
  }
  .pt-88-pc {
    padding-top: 88px !important;
  }
  .pb-88-pc {
    padding-bottom: 88px !important;
  }
  .ptb-88-pc {
    padding-block: 88px !important;
  }
  .pl-88-pc {
    padding-left: 88px !important;
  }
  .pr-88-pc {
    padding-right: 88px !important;
  }
  .plr-88-pc {
    padding-inline: 88px !important;
  }
}
.fs-88 {
  font-size: 88px !important;
}

@media screen and (max-width: 340px) {
  .fs-88-xs {
    font-size: 83.6px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-88-pc {
    font-size: 88px !important;
  }
}
.gap-size {
  gap: 88px !important;
}

.row-gap-size {
  gap: 88px !important;
}

.column-gap-size {
  gap: 88px !important;
}

/* マージン関連クラス */
.m-96 {
  margin: 96px !important;
}

.mt-96 {
  margin-top: 96px !important;
}

.mb-96 {
  margin-bottom: 96px !important;
}

.mtb-96 {
  margin-block: 96px !important;
}

.ml-96 {
  margin-left: 96px !important;
}

.mr-96 {
  margin-right: 96px !important;
}

.mlr-96 {
  margin-inline: 96px !important;
}

@media screen and (min-width: 768px) {
  .m-96-pc {
    margin: 96px !important;
  }
  .mt-96-pc {
    margin-top: 96px !important;
  }
  .mb-96-pc {
    margin-bottom: 96px !important;
  }
  .mtb-96-pc {
    margin-block: 96px !important;
  }
  .ml-96-pc {
    margin-left: 96px !important;
  }
  .mr-96-pc {
    margin-right: 96px !important;
  }
  .mlr-96-pc {
    margin-inline: 96px !important;
  }
}
/* パディング関連クラス */
.p-96 {
  padding: 96px !important;
}

.pt-96 {
  padding-top: 96px !important;
}

.pb-96 {
  padding-bottom: 96px !important;
}

.ptb-96 {
  padding-block: 96px !important;
}

.pl-96 {
  padding-left: 96px !important;
}

.pr-96 {
  padding-right: 96px !important;
}

.plr-96 {
  padding-inline: 96px !important;
}

@media screen and (min-width: 768px) {
  .p-96-pc {
    padding: 96px !important;
  }
  .pt-96-pc {
    padding-top: 96px !important;
  }
  .pb-96-pc {
    padding-bottom: 96px !important;
  }
  .ptb-96-pc {
    padding-block: 96px !important;
  }
  .pl-96-pc {
    padding-left: 96px !important;
  }
  .pr-96-pc {
    padding-right: 96px !important;
  }
  .plr-96-pc {
    padding-inline: 96px !important;
  }
}
.fs-96 {
  font-size: 96px !important;
}

@media screen and (max-width: 340px) {
  .fs-96-xs {
    font-size: 91.2px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-96-pc {
    font-size: 96px !important;
  }
}
.gap-size {
  gap: 96px !important;
}

.row-gap-size {
  gap: 96px !important;
}

.column-gap-size {
  gap: 96px !important;
}

/* マージン関連クラス */
.m-100 {
  margin: 100px !important;
}

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

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

.mtb-100 {
  margin-block: 100px !important;
}

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

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

.mlr-100 {
  margin-inline: 100px !important;
}

@media screen and (min-width: 768px) {
  .m-100-pc {
    margin: 100px !important;
  }
  .mt-100-pc {
    margin-top: 100px !important;
  }
  .mb-100-pc {
    margin-bottom: 100px !important;
  }
  .mtb-100-pc {
    margin-block: 100px !important;
  }
  .ml-100-pc {
    margin-left: 100px !important;
  }
  .mr-100-pc {
    margin-right: 100px !important;
  }
  .mlr-100-pc {
    margin-inline: 100px !important;
  }
}
/* パディング関連クラス */
.p-100 {
  padding: 100px !important;
}

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

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

.ptb-100 {
  padding-block: 100px !important;
}

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

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

.plr-100 {
  padding-inline: 100px !important;
}

@media screen and (min-width: 768px) {
  .p-100-pc {
    padding: 100px !important;
  }
  .pt-100-pc {
    padding-top: 100px !important;
  }
  .pb-100-pc {
    padding-bottom: 100px !important;
  }
  .ptb-100-pc {
    padding-block: 100px !important;
  }
  .pl-100-pc {
    padding-left: 100px !important;
  }
  .pr-100-pc {
    padding-right: 100px !important;
  }
  .plr-100-pc {
    padding-inline: 100px !important;
  }
}
.fs-100 {
  font-size: 100px !important;
}

@media screen and (max-width: 340px) {
  .fs-100-xs {
    font-size: 95px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-100-pc {
    font-size: 100px !important;
  }
}
.gap-size {
  gap: 100px !important;
}

.row-gap-size {
  gap: 100px !important;
}

.column-gap-size {
  gap: 100px !important;
}

/* マージン関連クラス */
.m-110 {
  margin: 110px !important;
}

.mt-110 {
  margin-top: 110px !important;
}

.mb-110 {
  margin-bottom: 110px !important;
}

.mtb-110 {
  margin-block: 110px !important;
}

.ml-110 {
  margin-left: 110px !important;
}

.mr-110 {
  margin-right: 110px !important;
}

.mlr-110 {
  margin-inline: 110px !important;
}

@media screen and (min-width: 768px) {
  .m-110-pc {
    margin: 110px !important;
  }
  .mt-110-pc {
    margin-top: 110px !important;
  }
  .mb-110-pc {
    margin-bottom: 110px !important;
  }
  .mtb-110-pc {
    margin-block: 110px !important;
  }
  .ml-110-pc {
    margin-left: 110px !important;
  }
  .mr-110-pc {
    margin-right: 110px !important;
  }
  .mlr-110-pc {
    margin-inline: 110px !important;
  }
}
/* パディング関連クラス */
.p-110 {
  padding: 110px !important;
}

.pt-110 {
  padding-top: 110px !important;
}

.pb-110 {
  padding-bottom: 110px !important;
}

.ptb-110 {
  padding-block: 110px !important;
}

.pl-110 {
  padding-left: 110px !important;
}

.pr-110 {
  padding-right: 110px !important;
}

.plr-110 {
  padding-inline: 110px !important;
}

@media screen and (min-width: 768px) {
  .p-110-pc {
    padding: 110px !important;
  }
  .pt-110-pc {
    padding-top: 110px !important;
  }
  .pb-110-pc {
    padding-bottom: 110px !important;
  }
  .ptb-110-pc {
    padding-block: 110px !important;
  }
  .pl-110-pc {
    padding-left: 110px !important;
  }
  .pr-110-pc {
    padding-right: 110px !important;
  }
  .plr-110-pc {
    padding-inline: 110px !important;
  }
}
.fs-110 {
  font-size: 110px !important;
}

@media screen and (max-width: 340px) {
  .fs-110-xs {
    font-size: 104.5px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-110-pc {
    font-size: 110px !important;
  }
}
.gap-size {
  gap: 110px !important;
}

.row-gap-size {
  gap: 110px !important;
}

.column-gap-size {
  gap: 110px !important;
}

/* マージン関連クラス */
.m-120 {
  margin: 120px !important;
}

.mt-120 {
  margin-top: 120px !important;
}

.mb-120 {
  margin-bottom: 120px !important;
}

.mtb-120 {
  margin-block: 120px !important;
}

.ml-120 {
  margin-left: 120px !important;
}

.mr-120 {
  margin-right: 120px !important;
}

.mlr-120 {
  margin-inline: 120px !important;
}

@media screen and (min-width: 768px) {
  .m-120-pc {
    margin: 120px !important;
  }
  .mt-120-pc {
    margin-top: 120px !important;
  }
  .mb-120-pc {
    margin-bottom: 120px !important;
  }
  .mtb-120-pc {
    margin-block: 120px !important;
  }
  .ml-120-pc {
    margin-left: 120px !important;
  }
  .mr-120-pc {
    margin-right: 120px !important;
  }
  .mlr-120-pc {
    margin-inline: 120px !important;
  }
}
/* パディング関連クラス */
.p-120 {
  padding: 120px !important;
}

.pt-120 {
  padding-top: 120px !important;
}

.pb-120 {
  padding-bottom: 120px !important;
}

.ptb-120 {
  padding-block: 120px !important;
}

.pl-120 {
  padding-left: 120px !important;
}

.pr-120 {
  padding-right: 120px !important;
}

.plr-120 {
  padding-inline: 120px !important;
}

@media screen and (min-width: 768px) {
  .p-120-pc {
    padding: 120px !important;
  }
  .pt-120-pc {
    padding-top: 120px !important;
  }
  .pb-120-pc {
    padding-bottom: 120px !important;
  }
  .ptb-120-pc {
    padding-block: 120px !important;
  }
  .pl-120-pc {
    padding-left: 120px !important;
  }
  .pr-120-pc {
    padding-right: 120px !important;
  }
  .plr-120-pc {
    padding-inline: 120px !important;
  }
}
.fs-120 {
  font-size: 120px !important;
}

@media screen and (max-width: 340px) {
  .fs-120-xs {
    font-size: 114px !important;
  }
}
@media screen and (min-width: 768px) {
  .fs-120-pc {
    font-size: 120px !important;
  }
}
.gap-size {
  gap: 120px !important;
}

.row-gap-size {
  gap: 120px !important;
}

.column-gap-size {
  gap: 120px !important;
}

/*--------------------------------------------------------------------------
COLOR
---------------------------------------------------------------------------*/
.txt-white {
  color: #fff !important;
}

.bg-white {
  background-color: #fff !important;
}

.border-white {
  border-color: #fff !important;
}

.txt-black {
  color: #252626 !important;
}

.bg-black {
  background-color: #252626 !important;
}

.border-black {
  border-color: #252626 !important;
}

/*--------------------------------------------------------------------------
フォント関連
---------------------------------------------------------------------------*/
.txt-center {
  text-align: center !important;
}

.txt-left {
  text-align: left !important;
}

.txt-right {
  text-align: right !important;
}

/* フォントweight */
.fw-300 {
  font-weight: 300 !important;
}

.fw-400 {
  font-weight: 400 !important;
}

.fw-500 {
  font-weight: 500 !important;
}

.fw-600 {
  font-weight: 600 !important;
}

.fw-700 {
  font-weight: 700 !important;
}

.fw-800 {
  font-weight: 800 !important;
}

.fw-900 {
  font-weight: 900 !important;
}

/* LINE HEIGHT */
.lh-10 {
  line-height: 1 !important;
}

@media screen and (min-width: 768px) {
  .lh-10-pc {
    line-height: 1 !important;
  }
}
.lh-11 {
  line-height: 1.1 !important;
}

@media screen and (min-width: 768px) {
  .lh-11-pc {
    line-height: 1.1 !important;
  }
}
.lh-12 {
  line-height: 1.2 !important;
}

@media screen and (min-width: 768px) {
  .lh-12-pc {
    line-height: 1.2 !important;
  }
}
.lh-13 {
  line-height: 1.3 !important;
}

@media screen and (min-width: 768px) {
  .lh-13-pc {
    line-height: 1.3 !important;
  }
}
.lh-14 {
  line-height: 1.4 !important;
}

@media screen and (min-width: 768px) {
  .lh-14-pc {
    line-height: 1.4 !important;
  }
}
.lh-15 {
  line-height: 1.5 !important;
}

@media screen and (min-width: 768px) {
  .lh-15-pc {
    line-height: 1.5 !important;
  }
}
.lh-16 {
  line-height: 1.6 !important;
}

@media screen and (min-width: 768px) {
  .lh-16-pc {
    line-height: 1.6 !important;
  }
}
.lh-18 {
  line-height: 1.8 !important;
}

@media screen and (min-width: 768px) {
  .lh-18-pc {
    line-height: 1.8 !important;
  }
}
.lh-20 {
  line-height: 2 !important;
}

@media screen and (min-width: 768px) {
  .lh-20-pc {
    line-height: 2 !important;
  }
}
.lh-22 {
  line-height: 2.2 !important;
}

@media screen and (min-width: 768px) {
  .lh-22-pc {
    line-height: 2.2 !important;
  }
}
/* レター間隔 */
.ls-m10 {
  letter-spacing: -0.1em !important;
}

.ls-m5 {
  letter-spacing: -0.05em !important;
}

.ls-m3 {
  letter-spacing: -0.03em !important;
}

.ls-0 {
  letter-spacing: 0px !important;
}

.ls-1 {
  letter-spacing: 0.01em !important;
}

.ls-2 {
  letter-spacing: 0.02em !important;
}

.ls-3 {
  letter-spacing: 0.03em !important;
}

.ls-4 {
  letter-spacing: 0.04em !important;
}

.ls-5 {
  letter-spacing: 0.05em !important;
}

.ls-8 {
  letter-spacing: 0.08em !important;
}

.ls-10 {
  letter-spacing: 0.1em !important;
}

/* width */
.w-fit {
  width: fit-content !important;
}

.h-fit {
  height: fit-content !important;
}

.w-100 {
  width: 100% !important;
}

.h-100 {
  height: 100% !important;
}

/* display プロパティのマッピング */
.d-block {
  display: block !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

.d-grid {
  display: grid !important;
}

.d-inline-grid {
  display: inline-grid !important;
}

.d-none {
  display: none !important;
}

.flex-wrap {
  flex-wrap: wrap !important;
}

.border-none {
  border: none !important;
}

.txt-en {
  font-family: "Outfit", sans-serif;
}

.txt-en02 {
  font-family: "Outfit", sans-serif;
}

.txt-jp {
  font-family: "Noto Sans JP", sans-serif;
}

.txt-jp-serif {
  font-family: "Zen Old Mincho", serif;
}

.txt-underline {
  text-decoration: underline;
}

.uppercase {
  text-transform: uppercase !important;
}

.capitalize {
  text-transform: capitalize !important;
}

.normal-case {
  text-transform: none !important;
}

/*--------------------------------------------------------------------------
その他
--------------------------------------------------------------------------*/
.sp {
  display: block !important;
}
@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

.pc {
  display: none !important;
}
@media screen and (min-width: 768px) {
  .pc {
    display: block !important;
  }
}

.no-link {
  pointer-events: none;
  text-decoration: none !important;
  cursor: initial;
}

/*--------------------------------------------------------------------------
MV
---------------------------------------------------------------------------*/
.c-mv {
  position: relative;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .c-mv {
    padding-bottom: 0;
  }
}
.c-mv__txt {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -30%);
  color: #fff;
  font-family: "Zen Old Mincho", serif;
  font-size: 28px;
  font-weight: 700;
  z-index: 2;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .c-mv__txt {
    font-size: 36px;
  }
}
@media screen and (min-width: 1024px) {
  .c-mv__txt {
    font-size: 54px;
  }
}
.c-mv::after {
  content: "";
  position: absolute;
  background: url(../img/common/mv-circle.svg) no-repeat center center;
  width: 70%;
  height: 70%;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -40%);
}

/*--------------------------------------------------------------------------
セクション
---------------------------------------------------------------------------*/
.c-sec {
  overflow-x: clip;
}
.c-sec__inner {
  width: min(90%, 1200px);
  margin-inline: auto;
}

/*--------------------------------------------------------------------------
セクションタイトル01（英語+日本語）
---------------------------------------------------------------------------*/
.c-secttl01 {
  margin-bottom: 35px;
  position: relative;
  padding-left: 6svw;
}
@media screen and (min-width: 768px) {
  .c-secttl01 {
    margin-bottom: 48px;
    padding-left: 4svw;
  }
}
.c-secttl01::before {
  content: "";
  display: block;
  width: 80px;
  height: 260%;
  max-width: 256px;
  background: url(../img/top/ttl-deco.svg) no-repeat top left;
  background-size: 100%;
  position: absolute;
  left: -5svw;
  top: -8vw;
}
@media screen and (min-width: 768px) {
  .c-secttl01::before {
    width: 126px;
    height: 120px;
    left: -2em;
    top: -3em;
  }
}
@media screen and (min-width: 1024px) {
  .c-secttl01::before {
    width: 253px;
    height: 240px;
    left: -2em;
    top: -5.5em;
  }
}
.c-secttl01__en {
  font-family: "Outfit", sans-serif;
  color: #f39800;
  line-height: 1;
  font-size: min(2svw, 13px);
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .c-secttl01__en {
    font-size: 16px;
  }
}
@media screen and (min-width: 1024px) {
  .c-secttl01__en {
    font-size: min(4vw, 30px);
  }
}
.c-secttl01__jp {
  font-family: "Zen Old Mincho", serif;
  font-size: min(5.1svw, 24px);
  line-height: 1.4;
  font-weight: 700;
  color: #3f3f3f;
}
@media screen and (min-width: 768px) {
  .c-secttl01__jp {
    font-size: 34px;
  }
}
@media screen and (min-width: 1024px) {
  .c-secttl01__jp {
    font-size: 52px;
  }
}
.c-secttl01__jp span {
  color: #2EA7E0;
}
.c-secttl01-center {
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .c-secttl01-center-pc {
    text-align: center;
    width: fit-content;
    margin-inline: auto;
  }
}
@media screen and (min-width: 768px) {
  .c-secttl01-left-pc {
    text-align: left;
    margin-inline: 0;
  }
}

.c-secttl02 {
  margin-bottom: 20px;
  position: relative;
}
@media screen and (min-width: 768px) {
  .c-secttl02 {
    margin-bottom: 40px;
  }
}
.c-secttl02__jp {
  font-family: "Zen Old Mincho", serif;
  font-size: 22px;
  line-height: 1.4;
  font-weight: 700;
  color: #3f3f3f;
}
@media screen and (min-width: 768px) {
  .c-secttl02__jp {
    font-size: 28px;
  }
}
@media screen and (min-width: 1024px) {
  .c-secttl02__jp {
    font-size: 42px;
  }
}
.c-secttl02__jp span {
  color: #2EA7E0;
}
.c-secttl02-center {
  text-align: center;
  width: fit-content;
  margin-inline: auto;
}

/*--------------------------------------------------------------------------
.c-btn ボタン
---------------------------------------------------------------------------*/
.c-btn {
  margin-top: 20px;
  max-width: min(264px, 100%);
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .c-btn {
    margin-top: 35px;
    margin-inline: inherit;
    max-width: min(407px, 100%);
  }
}
.c-btn a {
  display: block;
  text-align: center;
  padding-block: 17px;
  padding-inline: 24px 40px;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  border-radius: 50px;
  position: relative;
  background-image: linear-gradient(90deg, #f39800, #f3ba00);
  filter: drop-shadow(4px 4px 3px rgba(0, 0, 0, 0.2));
}
@media screen and (min-width: 768px) {
  .c-btn a {
    padding-block: 20px;
    font-size: 28px;
  }
}
.c-btn a::after {
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  background-image: url(../img/common/arw-r-1.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  right: 12px;
  top: 0;
  bottom: 0;
  margin-block: auto;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .c-btn a::after {
    width: 52px;
    height: 52px;
  }
}
.c-btn a:hover {
  opacity: 1;
}
.c-btn a:hover::after {
  transform: scale(1.15);
}

/*--------------------------------------------------------------------------
パンくず
---------------------------------------------------------------------------*/
.c-breadcrumb {
  display: none;
}
@media screen and (min-width: 768px) {
  .c-breadcrumb {
    display: flex;
    align-items: center;
    column-gap: 8px;
    margin-bottom: 16px;
  }
}
.c-breadcrumb__item a,
.c-breadcrumb__item span {
  font-size: 13px;
  color: #888;
}
.c-breadcrumb__item:not(.current)::after {
  content: ">";
  display: inline-block;
  margin-left: 8px;
  color: #888;
}

/*--------------------------------------------------------------------------
テーブル
---------------------------------------------------------------------------*/
.c-table {
  width: 100%;
}
.c-table__tr {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 768px) {
  .c-table__tr {
    display: flex;
  }
}
.c-table__th, .c-table__td {
  line-height: 1.4;
  text-align: left;
}
.c-table__th {
  color: #666;
  padding-top: 16px;
  padding-bottom: 8px;
}
@media screen and (min-width: 768px) {
  .c-table__th {
    border-bottom: 1px solid #E2E2E2;
    width: 10%;
    padding-block: 16px;
  }
}
.c-table__td {
  border-bottom: 1px solid #E2E2E2;
  padding-bottom: 16px;
}
@media screen and (min-width: 768px) {
  .c-table__td {
    width: 90%;
    padding-block: 16px;
  }
}

/*--------------------------------------------------------------------------
MV
---------------------------------------------------------------------------*/
.p-top-mv {
  position: relative;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-top-mv {
    padding-bottom: 0;
  }
}
.p-top-mv__txt {
  width: 42svw;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -46%);
  max-width: 717px;
}
@media screen and (min-width: 1280px) {
  .p-top-mv__txt {
    width: 40vw;
  }
}
.p-top-mv__txt img {
  width: 100%;
  filter: drop-shadow(4px 4px 3px rgba(0, 0, 0, 0.2));
}

/*--------------------------------------------------------------------------
セクション
---------------------------------------------------------------------------*/
.p-top .c-sec__inner {
  padding-block: 30px 30px;
}
@media screen and (min-width: 768px) {
  .p-top .c-sec__inner {
    padding-block: 100px 80px;
  }
}
@media screen and (min-width: 1024px) {
  .p-top .c-sec__inner {
    padding-block: 110px 80px;
  }
}
/*--------------------------------------------------------------------------
ttl
---------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------
intro
---------------------------------------------------------------------------*/
.p-top-intro .c-sec__inner {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media screen and (min-width: 1280px) {
  .p-top-intro .c-sec__inner {
    flex-direction: row;
    gap: min(4vw, 40px);
    width: min(90%, 1450px);
  }
}
.p-top-intro__ttl {
  position: relative;
  padding-left: 12svw;
}
@media screen and (min-width: 768px) {
  .p-top-intro__ttl {
    padding-left: 11svw;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-intro__ttl {
    width: 54%;
    padding-left: 10vw;
    padding-top: 130px;
  }
}
.p-top-intro__ttl::before {
  content: "";
  display: block;
  width: 26%;
  height: 140%;
  max-width: 256px;
  background: url(../img/top/ttl-deco.svg) no-repeat top left;
  background-size: 100%;
  position: absolute;
  left: 0;
  top: -0.5em;
}
@media screen and (min-width: 768px) {
  .p-top-intro__ttl::before {
    width: 160px;
    height: 152px;
    top: -2.5em;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-intro__ttl::before {
    width: 253px;
    height: 240px;
    top: 20px;
  }
}
.p-top-intro__ttl--en {
  position: absolute;
  left: 11svw;
  top: 4.4em;
  transform: rotate(90deg);
  transform-origin: left top;
  font-family: "Outfit", sans-serif;
  color: #f39800;
  line-height: 1;
  font-size: min(2svw, 13px);
}
@media screen and (min-width: 768px) {
  .p-top-intro__ttl--en {
    font-size: 16px;
    top: 2em;
    left: 10svw;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-intro__ttl--en {
    font-size: min(4vw, 30px);
    left: 9.5svw;
    top: 4.8em;
  }
}
.p-top-intro__ttl--jp {
  font-family: "Zen Old Mincho", serif;
  font-size: min(5.1svw, 24px);
  color: #3f3f3f;
  line-height: 1.4;
  font-weight: 700;
  padding-top: 2em;
}
@media screen and (min-width: 768px) {
  .p-top-intro__ttl--jp {
    font-size: 34px;
    padding-top: 0.5em;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-intro__ttl--jp {
    font-size: 52px;
    padding-top: 0;
  }
}
.p-top-intro__ttl--jp span {
  color: #2EA7E0;
}
@media screen and (min-width: 1024px) {
  .p-top-intro__txt {
    padding-top: 40px;
  }
}
.p-top-intro__bottom {
  padding-top: 40px;
  width: 100svw;
}
@media screen and (min-width: 1024px) {
  .p-top-intro__bottom {
    padding-top: 60px;
  }
}

/*--------------------------------------------------------------------------
  UTスリーエムを知る
---------------------------------------------------------------------------*/
.p-top-about {
  width: 100%;
  margin-top: -2px;
  background: url(../img/top/bg01.jpg) no-repeat right bottom;
  background-size: cover;
  padding-top: 40px;
}
@media screen and (min-width: 1024px) {
  .p-top-about {
    padding-top: 100px;
  }
}
.p-top-about__wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 2;
  gap: 10px;
}
@media screen and (min-width: 1024px) {
  .p-top-about__wrap {
    flex-direction: row;
    justify-content: space-between;
    gap: unset;
    margin-right: calc(50% - 50vw);
    padding-right: 40px;
  }
}
.p-top-about__wrap::before {
  content: "";
  position: absolute;
  background: url(../img/top/txt-ut-suri-emu-2.svg) no-repeat;
  position: absolute;
  top: -20px;
  left: -10px;
  width: 10%;
  height: 100%;
  z-index: 0;
}
@media screen and (min-width: 1024px) {
  .p-top-about__wrap::before {
    width: 133px;
    top: 0;
    left: -20px;
  }
}
.p-top-about__wrap .p-top-about__cont {
  position: relative;
}
@media screen and (min-width: 1024px) {
  .p-top-about__wrap .p-top-about__cont {
    width: 38%;
    padding-left: 4svw;
  }
}
.p-top-about__wrap .p-top-about__image {
  width: 80%;
}
@media screen and (min-width: 1024px) {
  .p-top-about__wrap .p-top-about__image {
    width: 60%;
  }
}
.p-top-about__bnrlist {
  display: flex;
  justify-content: space-between;
  width: min(90%, 1520px);
  margin-inline: auto;
  margin-bottom: 30px;
}
.p-top-about__bnrlist-item {
  width: 49.8%;
  margin-bottom: 100px;
}
.p-top-about__bnrlist-item .note {
  font-size: 12px;
}
@media screen and (min-width: 1024px) {
  .p-top-about__bnrlist-item .note {
    font-size: 20px;
  }
}
.p-top-about__bnrlist a {
  display: block;
  position: relative;
}
.p-top-about__bnrlist-img {
  width: 100%;
  display: block;
}
.p-top-about__bnrlist-txt {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .p-top-about__bnrlist-txt {
    font-size: 24px;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-about__bnrlist-txt {
    font-size: 45px;
  }
}

/*--------------------------------------------------------------------------
サービス
---------------------------------------------------------------------------*/
.p-top-service {
  width: 100%;
  margin-top: -30px;
  background: url(../img/top/bg02.jpg) no-repeat right top;
  background-size: cover;
  padding-top: 40px;
  padding-bottom: 60px;
}
@media screen and (min-width: 1024px) {
  .p-top-service {
    padding-block: 100px 160px;
    margin-bottom: -60px;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-service .c-secttl01 {
    margin-bottom: 180px;
  }
}
.p-top-service__wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
  gap: 10px;
}
@media screen and (min-width: 1024px) {
  .p-top-service__wrap {
    flex-direction: row;
    justify-content: space-between;
    gap: unset;
    margin-left: calc(50% - 50vw);
    padding-left: 4svw;
  }
}
.p-top-service__wrap .p-top-service__cont {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 1024px) {
  .p-top-service__wrap .p-top-service__cont {
    width: 32%;
  }
}
.p-top-service__wrap .p-top-service__image {
  width: 80%;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 1024px) {
  .p-top-service__wrap .p-top-service__image {
    width: 60%;
  }
}
.p-top-service__wrap .p-top-service__image::before {
  content: "";
  position: absolute;
  background: url(../img/top/txt-service.svg) no-repeat right center;
  background-size: 100%;
  position: absolute;
  top: 0;
  right: -10px;
  width: 10%;
  height: 110%;
  z-index: 0;
}
@media screen and (min-width: 1024px) {
  .p-top-service__wrap .p-top-service__image::before {
    width: 150px;
    right: -10svw;
  }
}

/*--------------------------------------------------------------------------
  人を知る
---------------------------------------------------------------------------*/
.p-top-people {
  width: 100%;
  margin-top: -2px;
  background: url(../img/top/bg03.jpg) no-repeat right top;
  background-size: cover;
  padding-top: 40px;
  margin-top: -40px;
}
@media screen and (min-width: 1024px) {
  .p-top-people {
    padding-top: 100px;
    margin-top: 0;
  }
}
.p-top-people__wrap-top {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
  gap: 10px;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-top {
    flex-direction: row;
    justify-content: space-between;
    gap: unset;
    margin-right: calc(50% - 50vw);
    padding-right: 40px;
  }
}
.p-top-people__wrap-top::before {
  content: "";
  position: absolute;
  background: url(../img/top/txt-worker.svg) no-repeat left center;
  position: absolute;
  top: 50%;
  left: -10px;
  width: 10%;
  height: 100%;
  transform: translateY(-50%);
  z-index: 0;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-top::before {
    width: 136px;
    left: 0;
  }
}
.p-top-people__wrap-top .p-top-people__cont {
  position: relative;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-top .p-top-people__cont {
    width: 38%;
    padding-left: 5svw;
  }
}
.p-top-people__wrap-top .p-top-people__image {
  width: 80%;
  margin-inline: auto;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-top .p-top-people__image {
    width: 60%;
  }
}
.p-top-people__wrap-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
  gap: 10px;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-bottom {
    flex-direction: row;
    justify-content: space-between;
    gap: unset;
    margin-left: calc(50% - 50vw);
    padding-left: 4svw;
  }
}
.p-top-people__wrap-bottom .p-top-people__cont {
  position: relative;
  z-index: 1;
  order: 1;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-bottom .p-top-people__cont {
    width: 35%;
    order: 2;
  }
}
.p-top-people__wrap-bottom .p-top-people__image {
  width: 80%;
  position: relative;
  z-index: 1;
  margin-inline: auto;
  order: 2;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-bottom .p-top-people__image {
    width: 60%;
    order: 1;
  }
}
.p-top-people__wrap-bottom .p-top-people__image::before {
  content: "";
  position: absolute;
  background: url(../img/top/txt-spt.svg) no-repeat right center;
  background-size: 100%;
  position: absolute;
  top: 0;
  right: -10px;
  width: 10%;
  height: 100%;
  z-index: 0;
}
@media screen and (min-width: 1024px) {
  .p-top-people__wrap-bottom .p-top-people__image::before {
    width: 132px;
    right: -5svw;
  }
}

/*--------------------------------------------------------------------------
フッター
---------------------------------------------------------------------------*/
body:has(.p-top) .l-footer {
  margin-top: 0;
}

/*--------------------------------------------------------------------------
c-sec
---------------------------------------------------------------------------*/
.p-about .c-sec__inner {
  padding-block: 70px 30px;
  width: min(96%, 1540px);
}
@media screen and (min-width: 768px) {
  .p-about .c-sec__inner {
    padding-block: 100px 80px;
  }
}
@media screen and (min-width: 1024px) {
  .p-about .c-sec__inner {
    padding-block: 160px 120px;
  }
}

/*--------------------------------------------------------------------------
c-secttl01 調整
---------------------------------------------------------------------------*/
.p-reason .c-secttl01::before,
.p-platform .c-secttl01::before,
.p-support .c-secttl01::before {
  width: 28%;
  height: 260%;
  left: -4svw;
  top: -8vw;
}

/*--------------------------------------------------------------------------
p-philosophy
---------------------------------------------------------------------------*/
.p-philosophy {
  position: relative;
  background: url(../img/about/bg01.svg) no-repeat top right;
  background-size: 62%;
}
.p-philosophy .c-secttl01::before {
  width: 20%;
  left: -2.4svw;
  height: 300%;
}
@media screen and (min-width: 768px) {
  .p-philosophy .c-secttl01::before {
    width: 126px;
    left: -2em;
  }
}
@media screen and (min-width: 1024px) {
  .p-philosophy .c-secttl01::before {
    width: 253px;
    left: -2em;
  }
}
.p-philosophy__cont {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-inline: auto;
  width: 100%;
  max-width: 1240px;
}
@media screen and (min-width: 768px) {
  .p-philosophy__cont {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 12px;
  }
}
.p-philosophy__img {
  width: 90%;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-philosophy__img {
    width: 49.2%;
  }
}
.p-philosophy__txt {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-philosophy__txt {
    width: 47.8%;
  }
}
.p-philosophy__list {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media screen and (min-width: 768px) {
  .p-philosophy__list {
    gap: 35px;
  }
}
.p-philosophy__item {
  padding-left: 12px;
  border-left: solid 2px #2EA7E0;
}
@media screen and (min-width: 768px) {
  .p-philosophy__item {
    padding-left: 20px;
    border-left: solid 5px #2EA7E0;
  }
}
.p-philosophy__item h3 {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  color: #2EA7E0;
  font-size: 18px;
  margin-bottom: 5px;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-philosophy__item h3 {
    font-size: 24px;
  }
}
.p-philosophy__item h3 span {
  display: block;
  font-weight: 700;
  font-size: 15px;
  color: #2EA7E0;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-philosophy__item h3 span {
    display: none;
  }
}
.p-philosophy__item p {
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-philosophy__item p {
    line-height: 1.8;
  }
}

/*--------------------------------------------------------------------------
p-reason
---------------------------------------------------------------------------*/
.p-reason {
  background: url(../img/about/bg02.jpg) no-repeat top center;
  background-size: cover;
}
.p-reason__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 20px;
  max-width: 1200px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-reason__list {
    display: grid;
    place-content: center;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    margin-top: 40px;
  }
}
.p-reason__card {
  border: solid 1px #2EA7E0;
  background: #fff;
  border-radius: 20px;
  padding: 20px 15px 25px;
}
@media screen and (min-width: 768px) {
  .p-reason__card {
    border: solid 2px #2EA7E0;
    padding: 30px 25px 40px;
  }
}
.p-reason__ttl {
  margin-bottom: 10px;
  line-height: 1.6;
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: solid 1px #2EA7E0;
}
@media screen and (min-width: 768px) {
  .p-reason__ttl {
    padding-bottom: 40px;
    margin-bottom: 40px;
  }
}
.p-reason__ttl--en {
  text-align: center;
  color: #f39800;
  font-family: "Outfit", sans-serif;
  font-size: 18px;
  font-weight: 300;
}
@media screen and (min-width: 768px) {
  .p-reason__ttl--en {
    margin-bottom: 22px;
    font-size: 30px;
  }
}
.p-reason__ttl--en span {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  color: #3F3F3F;
}
@media screen and (min-width: 768px) {
  .p-reason__ttl--en span {
    font-size: 22px;
  }
}
.p-reason__ttl--jp {
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-size: 20px;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .p-reason__ttl--jp {
    font-size: 24px;
  }
}
@media screen and (min-width: 1024px) {
  .p-reason__ttl--jp {
    font-size: 28px;
  }
}
.p-reason__txt {
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-reason__txt {
    line-height: 1.8;
  }
}
.p-reason__txt span {
  color: #2EA7E0;
  font-weight: 700;
}

/*--------------------------------------------------------------------------
p-platform
---------------------------------------------------------------------------*/
.p-platform {
  position: relative;
  background: url(../img/about/bg03.svg) no-repeat top left;
  background-size: 62%;
}
.p-platform__matching {
  width: 96%;
  max-width: 1140px;
  margin-inline: auto;
  border: solid 1px #2EA7E0;
  position: relative;
  border-radius: 10px;
  margin-top: 50px;
  padding: 40px 10px 20px;
}
@media screen and (min-width: 768px) {
  .p-platform__matching {
    border: solid 1px #2EA7E0;
    border-radius: 20px;
    margin-top: 80px;
    padding: 50px 10px 20px;
  }
}
@media screen and (min-width: 1024px) {
  .p-platform__matching {
    margin-top: 138px;
    padding: 90px 60px 20px 20px;
  }
}
.p-platform__ttl {
  position: absolute;
  left: 50%;
  top: -1.5em;
  transform: translateX(-50%);
  border: solid 1px #2EA7E0;
  border-radius: 10px;
  background: #fff;
}
@media screen and (min-width: 768px) {
  .p-platform__ttl {
    top: -2em;
  }
}
@media screen and (min-width: 1024px) {
  .p-platform__ttl {
    top: -2.8em;
  }
}
.p-platform__ttl h4 {
  display: inline-block;
  margin: auto;
  line-height: 1.4;
  color: #2EA7E0;
  padding: 5px 1.2em;
  font-weight: 700;
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-size: 15px;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .p-platform__ttl h4 {
    font-size: 24px;
  }
}
@media screen and (min-width: 1024px) {
  .p-platform__ttl h4 {
    font-size: 40px;
    padding: 10px 2.2em;
  }
}
.p-platform__ttl h4 span {
  display: block;
  font-size: 13px;
  font-weight: 400;
}
@media screen and (min-width: 1024px) {
  .p-platform__ttl h4 span {
    font-size: 20px;
  }
}
/*--------------------------------------------------------------------------
p-support
---------------------------------------------------------------------------*/
.p-support {
  background-image: linear-gradient(#f5fbff, #eff8fc);
}
.p-support__list {
  display: grid;
  place-content: center;
  grid-template-columns: 1fr 1fr;
  column-gap: 20px;
  row-gap: 30px;
  margin-top: 40px;
  margin-inline: auto;
  max-width: 1420px;
}
@media screen and (min-width: 768px) {
  .p-support__list {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    margin-top: 80px;
  }
}
.p-support__card {
  border: solid 1px #2EA7E0;
  background: #fff;
  border-radius: 20px;
  padding: 30px 15px 25px;
  position: relative;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-support__card {
    border: solid 2px #2EA7E0;
    padding: 50px 8% 34px;
  }
}
.p-support__num {
  position: absolute;
  top: -1.4em;
  left: 50%;
  transform: translateX(-50%);
}
.p-support__num span {
  background: #2EA7E0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: #fff;
  border-radius: 50%;
  font-weight: 500;
  font-family: "Poppins", sans-serif;
  font-size: 20px;
  width: 40px;
  height: 40px;
}
@media screen and (min-width: 768px) {
  .p-support__num span {
    font-size: 32px;
    width: 64px;
    height: 64px;
  }
}
.p-support__ttl {
  line-height: 1.6;
  margin-bottom: 12px;
}
@media screen and (min-width: 768px) {
  .p-support__ttl {
    margin-bottom: 28px;
  }
}
.p-support__ttl h4 {
  text-align: center;
  color: #2EA7E0;
  font-size: 18px;
  font-weight: 900;
}
@media screen and (min-width: 768px) {
  .p-support__ttl h4 {
    font-size: 22px;
  }
}
@media screen and (min-width: 1024px) {
  .p-support__ttl h4 {
    font-size: 26px;
  }
}
.p-support__img {
  margin-bottom: 10px;
}
@media screen and (min-width: 768px) {
  .p-support__img {
    margin-bottom: 30px;
  }
}
.p-support__sublist {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media screen and (min-width: 768px) {
  .p-support__sublist {
    gap: 14px;
  }
}
.p-support__sublist li {
  display: block;
  text-align: center;
  color: #2EA7E0;
  font-size: 14px;
  font-weight: 500;
  border-radius: 30px;
  border: solid 1px #2EA7E0;
  line-height: 2;
}
@media screen and (min-width: 768px) {
  .p-support__sublist li {
    font-size: 20px;
  }
}

/*--------------------------------------------------------------------------
お問い合わせフォーム
---------------------------------------------------------------------------*/
.p-inquiry__txtblock {
  max-width: 670px;
  margin-inline: auto;
}
.p-inquiry__note {
  font-weight: 400;
  font-size: 12px;
  line-height: 1.3;
}
.p-inquiry .c-sec__inner {
  width: min(90%, 1000px);
}
.p-inquiry__form {
  background-color: #fff;
  padding: 24px 16px 32px;
}
@media screen and (min-width: 768px) {
  .p-inquiry__form {
    padding: min(5.5vw, 80px);
  }
}
.p-inquiry__form-inner {
  display: grid;
  row-gap: 24px;
  width: min(100%, 500px);
  max-width: 700px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-inquiry__form-inner {
    grid-template-columns: 1fr;
    row-gap: 30px;
    width: 100%;
  }
}
.p-inquiry__form .c-btn {
  width: min(100%, 240px);
}
.p-inquiry .error {
  color: #ff0000;
  font-size: 14px;
}

.p-inquiry__item {
  display: flex;
  flex-direction: column;
  row-gap: 8px;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item {
    flex-direction: row;
    justify-content: space-between;
    flex-direction: row;
    align-items: center;
  }
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-flexstart {
    align-items: flex-start;
  }
}
.p-inquiry__item-left {
  display: flex;
  justify-content: space-between;
  column-gap: 10px;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-left {
    width: 33%;
  }
}
.p-inquiry__item-left p {
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0;
  font-weight: 500;
}
.p-inquiry__item-right {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 12px;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-right {
    width: 66%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 16px;
  }
}
.p-inquiry__item-right.sp-column-1 {
  flex-direction: column;
  align-items: flex-start;
}
.p-inquiry__item-right label {
  display: flex;
  align-items: center;
}
.p-inquiry__item-season {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.p-inquiry__item-season input {
  width: 87% !important;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-season input {
    width: 92% !important;
  }
}
.p-inquiry__item-venue {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.p-inquiry__item-venue .select-wrapper {
  width: 41.5%;
}
@media screen and (min-width: 768px) {
  .p-inquiry__item-venue .select-wrapper {
    width: 45%;
  }
}
.p-inquiry__item-size {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
}

input:not([type=submit]),
textarea,
select {
  border: 1px solid #E2E2E2;
  padding: 12px 16px;
  line-height: 1.4;
  width: 100%;
  height: fit-content;
  font-size: 14px;
  background-color: #fff;
}

input[type=checkbox],
input[type=radio] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 1px solid #888;
  width: 18px;
  height: 18px;
  position: relative;
  cursor: pointer;
  margin-right: 6px;
  padding: 0;
  vertical-align: text-top;
  transition: all 0.2s ease;
  background-color: #fff;
}

input[type=checkbox] {
  border-radius: 2px;
}

input[type=checkbox]:checked {
  background-color: #888;
  border-color: #888;
  border-radius: 2px;
}

input[type=checkbox]:checked::after {
  position: absolute;
  top: 7%;
  left: 34%;
  transform: rotate(50deg);
  width: 6px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: "";
}

input[type=radio] {
  border-radius: 50%;
}

input[type=radio]:checked::after {
  content: "";
  position: absolute;
  width: 60%;
  height: 60%;
  border-radius: 50%;
  background-color: #888;
  font-size: 14px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.select-wrapper {
  position: relative;
  width: 100%;
}
.select-wrapper-half {
  width: 48%;
}
.select-wrapper::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 10px;
  width: 10px;
  height: 10px;
  border-right: 1px solid #888;
  border-bottom: 1px solid #888;
  transform: rotate(45deg);
}

.option-default {
  color: #B5B5B5;
  font-size: 14px;
}

.p-inquiry-privacy {
  text-align: center;
}

.p-inquiry-required {
  color: #ff0000;
  line-height: 1;
  height: fit-content;
  width: fit-content;
  font-size: 13px;
  white-space: nowrap;
}

.l-header {
  position: fixed;
  left: 0;
  right: 0;
  top: 8px;
  width: 100%;
  max-width: 1640px;
  margin: 0 auto;
  z-index: 9999;
  padding-inline: min(20px, 4vw);
  transition: all 0.3s;
}
@media screen and (min-width: 1024px) {
  .l-header {
    top: 15px;
  }
}
.l-header.is-hidden {
  opacity: 0;
}
.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.l-header__inner-r {
  display: flex;
  column-gap: 20px;
  max-width: 1010px;
}
@media screen and (min-width: 1024px) {
  .l-header__inner-r {
    width: calc(100vw - 26svw);
    display: flex;
    justify-content: flex-end;
  }
}
.l-header__logo a {
  display: flex;
}
.l-header__logo svg {
  width: min(202px, 50svw);
  fill: #fff;
  transition: all 0.3s;
  height: 60px;
}
@media screen and (min-width: 1024px) {
  .l-header__logo svg {
    width: min(425px, 26svw);
    height: 80px;
  }
}
.l-header.is-down .l-header__logo svg, .l-header.is-down .cls-1 {
  fill: #2EA7E0;
}
.l-header .l-header-pc {
  display: none;
}
@media screen and (min-width: 1024px) {
  .l-header .l-header-pc {
    display: flex;
    justify-content: flex-end;
    column-gap: 1.8vw;
    background-color: rgba(255, 255, 255, 0.82);
    border-radius: 60px;
    padding: 13px 24px 13px 90px;
    width: auto;
    max-width: 1010px;
  }
}
.l-header .l-header-pc__nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  column-gap: min(50px, 3.8vw);
}
.l-header .l-header-pc__nav-item > a {
  display: inline-block;
  padding-block: 10px;
  line-height: 1.4;
  font-size: 16px;
  font-weight: 700;
  color: #3f3f3f;
  white-space: nowrap;
}
@media screen and (min-width: 1280px) {
  .l-header .l-header-pc__nav-item > a {
    font-size: min(3.1svw, 20px);
  }
}
.l-header .l-header-pc__nav-item:hover .l-header-hovernav {
  opacity: 1;
  visibility: visible;
}
.l-header .l-header-pc__btn {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  column-gap: 1.2svw;
}
.l-header .l-header-pc__btn-item > a {
  display: inline-block;
}
.l-header .l-header-pc__btn-item.btn-blue a {
  background-image: linear-gradient(90deg, #008ae9, #00a5e9 50%, #008ae9);
  color: #fff;
  padding: 8px 3.1svw;
  border-radius: 40px;
  text-align: center;
  font-weight: 500;
  line-height: 1.1;
  font-size: 16px;
  white-space: nowrap;
}
@media screen and (min-width: 1280px) {
  .l-header .l-header-pc__btn-item.btn-blue a {
    font-size: min(3.1svw, 20px);
  }
}
.l-header .l-header-pc__btn-item.btn-blue a:hover {
  background-image: linear-gradien(90deg, #2ea1f0, #72d4fd 50%, #2ea1f0);
}
.l-header .l-header-pc__btn-item.btn-sns {
  width: 50px;
}
.l-header .ham-btn {
  width: 50px;
  height: 50px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  row-gap: 5px;
  position: relative;
  z-index: 9999;
  background-color: rgba(255, 255, 255, 0.7);
  padding: 2px;
  border-radius: 50%;
}
@media screen and (min-width: 1024px) {
  .l-header .ham-btn {
    display: none;
    width: 32px;
  }
}
.l-header .ham-btn span {
  display: block;
  height: 1px;
  width: 65%;
  background: #252626;
  border-radius: 1.4px;
}
.l-header .ham-btn span:nth-child(1), .l-header .ham-btn span:nth-child(3) {
  transition: all 0.3s;
}
.l-header .ham-btn.navOpen {
  row-gap: 0px !important;
}
.l-header .ham-btn.navOpen span:nth-child(1) {
  margin-bottom: -2px;
  transform: rotate(45deg);
}
.l-header .ham-btn.navOpen span:nth-child(2) {
  opacity: 0;
}
.l-header .ham-btn.navOpen span:nth-child(3) {
  transform: rotate(-45deg);
}
.l-header .l-sp-navblock {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: 96% 3%;
  background-size: 25px auto;
  background-color: rgba(64, 62, 62, 0.7);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}
.l-header .l-sp-navblock.navOpen {
  opacity: 1;
  visibility: visible;
}
@media screen and (min-width: 1024px) {
  .l-header .l-sp-navblock.navOpen {
    opacity: 0;
    visibility: hidden;
  }
}
.l-header .l-sp-navblock__closearea {
  position: fixed;
  top: 0;
  left: 0;
  width: calc(100svw - 540px);
  height: 100%;
  z-index: 1000;
}
@media screen and (min-width: 1024px) {
  .l-header .l-sp-navblock__closearea {
    width: calc(100svw - 540px);
  }
}
.l-header .l-sp-nav {
  height: 100vh;
  overflow: auto;
  position: fixed;
  top: 0;
  right: 0;
  width: min(90%, 540px);
  height: 100%;
  z-index: 9998;
  background-color: #fff;
  font-size: 1.5rem;
  letter-spacing: 0.05em;
  text-align: left;
  line-height: 1;
  -webkit-transition: all 0.6s;
  transition: all 0.5s;
  -webkit-transform: translateX(600px);
  transform: translateX(600px);
  padding-block: 60px 160px;
}
@media screen and (min-width: 1024px) {
  .l-header .l-sp-nav {
    width: 550px;
    padding-block: 72px;
  }
}
.l-header .l-sp-nav.navOpen {
  transform: translate(0);
}
@media screen and (min-width: 1024px) {
  .l-header .l-sp-nav.navOpen {
    transform: translateX(0);
  }
}
.l-header .l-sp-nav__inner {
  width: max(260px, 76%);
  margin-inline: auto;
}
.l-header .l-sp-nav__list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 20px;
}
@media screen and (min-width: 1024px) {
  .l-header .l-sp-nav__list {
    row-gap: 28px;
  }
}
.l-header .l-sp-nav__item a {
  display: block;
  padding-block: 4px;
  line-height: 1.4;
  font-size: 20px;
  font-weight: 700;
  color: #3f3f3f;
}
.l-header .l-sp-nav__btn {
  margin-top: 30px;
  width: 90%;
  max-width: 600px;
}
.l-header .l-sp-nav__btn a {
  display: block;
  background-image: linear-gradient(90deg, #008ae9, #00a5e9 50%, #008ae9);
  color: #fff;
  padding: 8px 3.1svw;
  border-radius: 40px;
  text-align: center;
  font-weight: 500;
  line-height: 1.1;
  font-size: 16px;
  white-space: nowrap;
}
.l-header .l-sp-nav__sublink {
  margin-top: 20px;
}
.l-header .l-sp-nav__sublink li {
  padding-block: 10px;
}
.l-header .l-sp-nav__sublink li a {
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.l-header .l-sp-nav__sublink li a::after {
  content: url("/assets/img/common/icon-blank.svg");
  width: 10px;
}

.is-hidden-logo {
  display: none;
}

/*--------------------------------------------------------------------------
Contact
---------------------------------------------------------------------------*/
.l-footer-contact {
  color: #fff;
  width: 100%;
  background: url(../img/common/bg-footer-sp.jpg) no-repeat right top;
  background-size: cover;
  padding-block: 80px 60px;
}
@media screen and (min-width: 768px) {
  .l-footer-contact {
    background: url(../img/common/bg-footer.jpg) no-repeat right top;
    background-size: cover;
  }
}
@media screen and (min-width: 1024px) {
  .l-footer-contact {
    padding-block: 230px 200px;
  }
}
.l-footer-contact__container {
  display: flex;
  flex-direction: column;
  width: fit-content;
  margin-inline: auto;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .l-footer-contact__container {
    column-gap: 24px;
  }
}
.l-footer-contact__container .c-secttl01 {
  margin-bottom: 40px;
  padding-left: 6svw;
}
@media screen and (min-width: 768px) {
  .l-footer-contact__container .c-secttl01 {
    margin-bottom: 60px;
    padding-left: 4svw;
  }
}
.l-footer-contact__container .c-secttl01::before {
  content: "";
  background: url(../img/common/ttl-deco-wt.svg) no-repeat top left;
  background-size: 100%;
}
.l-footer-contact__container .c-secttl01__en {
  font-family: "Outfit", sans-serif;
  color: #f39800;
  line-height: 1;
  font-size: min(2svw, 13px);
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .l-footer-contact__container .c-secttl01__en {
    font-size: 16px;
  }
}
@media screen and (min-width: 1024px) {
  .l-footer-contact__container .c-secttl01__en {
    font-size: min(4vw, 30px);
  }
}
.l-footer-contact__container .c-secttl01__jp {
  color: #fff;
  letter-spacing: 0.04em;
}
.l-footer-contact__btn {
  margin-top: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 1024px) {
  .l-footer-contact__btn {
    margin-top: 100px;
  }
}
.l-footer-contact__btn a {
  display: block;
  margin-inline: auto;
  background-color: #f39800;
  border-radius: 80px;
  padding: 0.8em 1.5em;
  color: #fff;
  font-family: "Zen Old Mincho", serif;
  text-align: center;
  font-size: min(4.1svw, 20px);
  line-height: 1.3;
  font-weight: 700;
  filter: drop-shadow(4px 4px 3px rgba(0, 0, 0, 0.2));
}
@media screen and (min-width: 768px) {
  .l-footer-contact__btn a {
    font-size: 34px;
    line-height: 1;
  }
}
@media screen and (min-width: 1024px) {
  .l-footer-contact__btn a {
    font-size: 52px;
  }
}

/*--------------------------------------------------------------------------
footer-main
---------------------------------------------------------------------------*/
.l-footer-main {
  background-color: #fff;
}
.l-footer-main__container {
  width: min(90%, 1200px);
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .l-footer-main__container {
    display: flex;
    gap: min(3vw, 56px);
  }
}

/*--------------------------------------------------------------------------
.l-footer-nav 
---------------------------------------------------------------------------*/
.l-footer-nav {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 20px;
  row-gap: 24px;
  margin-top: 32px;
}
@media screen and (min-width: 1024px) {
  .l-footer-nav {
    column-gap: 20px;
    margin-top: 0;
    padding-block: 100px 120px;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  }
}
.l-footer-nav__list {
  display: block;
}
.l-footer-nav__item a {
  font-size: 13px;
  line-height: 1.1;
  display: inline-block;
  padding-block: 7px;
  position: relative;
}
@media screen and (min-width: 768px) {
  .l-footer-nav__item a {
    padding-block: 10px;
    font-size: 20px;
  }
}

.l-footer-bottom {
  width: min(90%, 1380px);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-block: 15px 30px;
  padding-bottom: 20px;
}
@media screen and (min-width: 768px) {
  .l-footer-bottom {
    flex-direction: row;
    justify-content: space-between;
    gap: unset;
    margin: 0 50px;
  }
}
.l-footer-bottom__list {
  display: flex;
  gap: 2em;
}
@media screen and (min-width: 768px) {
  .l-footer-bottom__list {
    gap: 10em;
  }
}
.l-footer-bottom__item a {
  font-size: 13px;
  line-height: 1;
  position: relative;
}
@media screen and (min-width: 768px) {
  .l-footer-bottom__item a {
    font-size: 20px;
    letter-spacing: 0.1em;
  }
}
.l-footer-bottom .l-footer-copyright {
  font-size: 12px;
}
@media screen and (min-width: 768px) {
  .l-footer-bottom .l-footer-copyright {
    text-align: right;
    font-size: 20px;
  }
}

.etrnl::after {
  content: url(../img/common/icon-blank.svg);
  position: absolute;
  right: -1.3em;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 0.8em;
}