@charset "UTF-8";
/* ==================================================
[Style]
    1. setting
	2. foundation
	3. Layout
	4. object

================================================== */
/* --------------------------------------------------
	1. setting
-------------------------------------------------- */
/* --------------------------------------------------
	2. foundation
-------------------------------------------------- */
/* reset */
@import 'https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@500;700&display=swap';
/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*,
::before,
::after {
  box-sizing: border-box;
  min-width: 0;
  border-style: solid;
  border-width: 0;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 3 */
}

/* Sections */
/* ============================================ */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

/* Lists (enumeration) */
/* ============================================ */
ul,
ol {
  padding: 0;
  margin: 0;
  list-style: none;
}

/* Lists (definition) */
/* ============================================ */
dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  margin: 0;
  overflow: visible; /* 2 */
  clear: both;
  color: inherit;
  border-top-width: 1px;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace; /* 1 */
  font-size: inherit; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Replaced content */
/* ============================================ */
/**
 * Prevent vertical alignment issues.
 */
svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */
button,
input,
optgroup,
select,
textarea {
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  text-align: inherit;
  text-transform: inherit; /* 2 */
  vertical-align: middle;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border-radius: 0;
}

/**
 * Correct cursors for clickable elements.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  cursor: pointer;
}

button:disabled,
[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled {
  cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */
:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

/**
 * Remove padding
 */
option {
  padding: 0;
}

/**
 * Reset to invisible
 */
fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
}

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * Correct the outline style in Safari.
 */
[type=search] {
  outline-offset: -2px; /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
          appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */
::-webkit-file-upload-button {
  font: inherit; /* 2 */
  -webkit-appearance: button;
          appearance: button; /* 1 */
}

/**
 * Fix appearance for Firefox
 */
[type=number] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}

/**
 * Clickable labels
 */
label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */
[contenteditable]:focus {
  outline: auto;
}

/* Tables */
/* ============================================ */
/**
1. Correct table border color inheritance in all Chrome and Safari.
*/
table {
  border-collapse: collapse;
  border-color: inherit; /* 1 */
}

caption {
  text-align: left;
}

td,
th {
  padding: 0;
  vertical-align: top;
}

th {
  font-weight: bold;
  text-align: left;
}

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

body {
  overflow-x: hidden;
  font-family: "Zen Kaku Gothic New", "游ゴシック", "Yu Gothic", yugothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 500;
  line-height: 1.5;
  color: #222;
  word-break: normal;
  word-wrap: normal;
  overflow-wrap: normal;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

a {
  color: inherit;
  text-decoration: none;
  word-break: break-all;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

ul,
ol {
  list-style: none;
}

img {
  max-width: 100%;
  height: auto;
  font-style: italic;
  vertical-align: middle;
}

iframe {
  max-width: 100%;
}

input,
button,
select,
textarea {
  font: inherit;
  font-size: 1rem;
  color: #222;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  outline: none;
}

textarea {
  resize: none;
}

input[type=checkbox],
input[type=radio] {
  display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

/* font */
/* anime */
@keyframes slidelinearver {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-50%);
  }
}
@keyframes slidelinearhor {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* --------------------------------------------------
	3. Layout
-------------------------------------------------- */
/* header */
.l-header {
  position: fixed;
  top: 2.5rem;
  right: 1.5rem;
  z-index: 999;
  border-radius: 999rem;
  transition: all 0.3s;
}
.l-header.is-active {
  top: 12.59181532vh;
  right: 5rem;
  padding: 5rem;
  background-color: #fff;
}
.l-header.is-active .l-header__wrap {
  width: 15rem;
}
.l-header.is-active .l-header__inner {
  max-height: 37.5rem;
  visibility: visible;
  opacity: 1;
  transition: all 0.3s, opacity 0.2s 0.1s;
}
.l-header__wrap {
  position: relative;
  width: 7.5rem;
  min-height: 9rem;
  transition: all 0.3s;
}
.l-header__tag {
  position: absolute;
  right: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 100%;
  aspect-ratio: 2/1;
  filter: drop-shadow(0 0 0.0625rem rgba(255, 255, 255, 0.4)) drop-shadow(0 0 0.125rem rgba(255, 255, 255, 0.4)) drop-shadow(0 0 0.25rem rgb(255, 255, 255));
  border-right: 0.0625rem solid #222;
  border-left: 0.0625rem solid #222;
}
.l-header__tag::before, .l-header__tag::after {
  position: absolute;
  width: 0.375rem;
  aspect-ratio: 1/1;
  content: "";
  background: #333;
  border-radius: 50%;
}
.l-header__tag.--open {
  top: 0;
  border-top: 0.0625rem solid #222;
  border-radius: 999rem 999rem 0 0;
}
.l-header__tag.--open::before {
  bottom: 0;
  left: 0;
  transform: translate(-50%, 50%);
}
.l-header__tag.--open::after {
  right: 0;
  bottom: 0;
  transform: translate(50%, 50%);
}
.l-header__tag.--close {
  bottom: 0;
  clip-path: polygon(-0.5rem);
  border-bottom: 0.0625rem solid #222;
  border-radius: 0 0 999rem 999rem;
}
.l-header__tag.--close::before {
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
}
.l-header__tag.--close::after {
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}
.l-header__inner {
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s, opacity 0s;
}
.l-header__container {
  padding-top: 5rem;
  padding-bottom: 3.75rem;
}
.l-header__logo {
  max-width: 7.5rem;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}
.l-header__menu {
  width: 8.375rem;
  margin-top: 2rem;
  margin-right: auto;
  margin-left: auto;
}
.l-header__nav-item {
  display: flex;
  align-items: center;
  min-height: 1.625rem;
  margin-top: 0.375rem;
}
.l-header__nav-item:first-child {
  margin-bottom: 1rem;
}
.l-header__nav-link {
  position: relative;
  padding-left: 2.25rem;
  font-size: 0.875rem;
  font-weight: bold;
  line-height: 1.6;
  color: #222;
  letter-spacing: 0.02em;
  transition: all 0.3s;
}
.l-header__nav-link::before, .l-header__nav-link::after {
  position: absolute;
  top: 0.8em;
  content: "";
  transition: all 0.3s;
  transform: translateY(-50%);
}
.l-header__nav-link::before {
  right: calc(100% - 1.5rem);
  width: 0.75rem;
  height: 0.125rem;
  background-color: #8ab7d2;
}
.l-header__nav-link::after {
  left: 0.375rem;
  width: 0.375rem;
  aspect-ratio: 1/1;
  background-color: #8ab7d2;
  border-radius: 50%;
  opacity: 0;
}
.l-header__nav-link.is-active {
  font-size: 1rem;
}
.l-header__nav-link.is-active::before {
  width: 1.5rem;
}
.l-header__nav-link.is-active::after {
  left: 0;
  opacity: 1;
}
@media (hover: hover) {
  .l-header__nav-link:hover::before {
    width: 1.5rem;
  }
  .l-header__nav-link:hover::after {
    left: 0;
    opacity: 1;
  }
}
.l-header__nav-sns {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  justify-content: center;
  margin-top: 3.4375rem;
}
@media (hover: hover) {
  .l-header__nav-sns a {
    transition: opacity 0.3s;
  }
  .l-header__nav-sns a:hover {
    opacity: 0.8;
  }
}
.l-header.--secondary {
  position: absolute;
  visibility: visible;
  opacity: 1;
  z-index: 999;
}
.l-header.--secondary.is-active {
  top: 0;
  right: 7.5%;
  right: max(((100% - 50rem) / 2 - 15rem) / 2, 1.25rem);
  bottom: 14%;
  height: -moz-max-content;
  height: max-content;
  padding: 0;
  margin: auto;
  background: transparent;
}
.l-header.--secondary .l-hum {
  display: none;
}

.l-hum {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 7.5rem;
  height: 9rem;
  text-align: center;
  filter: drop-shadow(0 0 0.125rem rgb(255, 255, 255)) drop-shadow(0 0 0.125rem rgb(255, 255, 255)) drop-shadow(0 0 0.1875rem rgb(255, 255, 255));
  border: none;
  border-radius: 50%;
  transition: all 0.3s;
}
.l-hum__bar {
  position: relative;
  width: 100%;
  height: 2rem;
}
.l-hum__bar span {
  position: absolute;
  left: 50%;
  display: block;
  width: 40%;
  height: 0.125rem;
  background-color: #8ab7d2;
  border-radius: 999rem;
  transition: 0.3s all;
  transform: translateX(-50%) translateY(-50%);
}
.l-hum__bar span:nth-child(1) {
  top: calc(50% - 1rem);
}
.l-hum__bar span:nth-child(2) {
  top: 50%;
  width: 53.3333333333%;
}
.l-hum__bar span:nth-child(3) {
  top: calc(50% + 1rem);
}
.l-hum__txt {
  display: none;
  margin-top: 0.125rem;
  font-size: 0.75rem;
  font-weight: bold;
  line-height: 1.2;
  color: #3a8fb7;
  letter-spacing: 0.02em;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s;
}
.l-hum__txt::before {
  content: "menu";
}
.l-hum.is-active {
  width: 3.5rem;
  height: 3.5rem;
  padding-top: 0.25rem;
  text-align: center;
  background-color: #fff;
  filter: none;
  border: 0.0625rem solid #222;
  border-radius: 50%;
}
.l-hum.is-active .l-hum__bar {
  position: relative;
  width: 100%;
  height: 1rem;
}
.l-hum.is-active .l-hum__bar span {
  box-shadow: none;
}
.l-hum.is-active .l-hum__bar span:nth-child(1) {
  top: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(-45deg);
}
.l-hum.is-active .l-hum__bar span:nth-child(2) {
  opacity: 0;
}
.l-hum.is-active .l-hum__bar span:nth-child(3) {
  top: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.l-hum.is-active .l-hum__txt {
  display: block;
  visibility: visible;
  opacity: 1;
}
.l-hum.is-active .l-hum__txt::before {
  content: "close";
}

@media all and (min-width: 768px), print {
  .l-header {
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s, opacity 0s;
  }
  .l-header.is-show {
    visibility: visible;
    opacity: 1;
    transition: all 0.3s;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .l-header.is-active {
    right: 1.25rem;
    padding: 3.125rem;
  }
  .l-header__wrap {
    width: 5rem;
    min-height: 6.25rem;
  }
  .l-hum {
    width: 5rem;
    height: 6.25rem;
  }
  .l-hum__bar span:nth-child(1) {
    top: calc(50% - 0.75rem);
  }
  .l-hum__bar span:nth-child(3) {
    top: calc(50% + 0.75rem);
  }
}
@media only screen and (max-width: 767px) {
  .l-header {
    top: 1rem;
    right: 0.625rem;
  }
  .l-header.is-active {
    top: 1.125rem;
    right: 0;
    left: 0;
    width: -moz-fit-content;
    width: fit-content;
    padding: 2rem 1.875rem;
    margin: 0 auto;
  }
  .l-header.is-active .l-header__wrap {
    width: 18.5rem;
    max-width: calc(100vw - 1.25rem - 3.75rem);
  }
  .l-header.is-active .l-header__inner {
    max-height: calc(100vh - 4rem - 2.25rem);
    overflow: auto;
  }
  .l-header__wrap {
    width: 4rem;
    min-height: 4.5rem;
  }
  .l-header__tag {
    filter: drop-shadow(0 0 0.0625rem rgb(255, 255, 255)) drop-shadow(0 0 0.125rem rgb(255, 255, 255)) drop-shadow(0 0 0.25rem rgb(255, 255, 255));
  }
  .l-header__logo {
    max-width: 9.5rem;
  }
  .l-header__menu {
    margin-top: 2.5rem;
  }
  .l-header__nav-item {
    margin-top: 0.875rem;
  }
  .l-header__nav-sns {
    margin-top: 2.5rem;
  }
  .l-header__container {
    padding-bottom: 4rem;
  }
  .l-hum {
    width: 4rem;
    height: 4.5rem;
    filter: drop-shadow(0 0 0.0625rem rgb(255, 255, 255)) drop-shadow(0 0 0.0625rem rgb(255, 255, 255)) drop-shadow(0 0 0.0625rem rgb(255, 255, 255)) drop-shadow(0 0 0.125rem #fff);
  }
  .l-hum.is-active {
    right: 0.5rem;
  }
  .l-hum__bar {
    height: 1rem;
  }
  .l-hum__bar span {
    width: 43.75%;
  }
  .l-hum__bar span:nth-child(1) {
    top: calc(50% - 0.5rem);
  }
  .l-hum__bar span:nth-child(2) {
    width: 62.5%;
  }
  .l-hum__bar span:nth-child(3) {
    top: calc(50% + 0.5rem);
  }
  .l-hum__txt {
    display: block;
    visibility: visible;
    opacity: 1;
  }
}
/* footer */
.l-footer {
  margin-top: 7.5rem;
  background: #f9f9f9;
}
.l-footer__container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 3.375rem;
  padding: 0.5rem 0;
}
.l-footer__logo {
  flex-shrink: 0;
}
.l-footer__copyright {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

@media only screen and (max-width: 767px) {
  .l-footer {
    margin-top: 4rem;
    margin-bottom: 4.375rem;
  }
  .l-footer__logo {
    max-width: 5.125rem;
    font-size: 0;
  }
  .l-footer__container {
    min-height: 3.125rem;
  }
}
/* main */
.l-inner {
  width: 77.5rem;
  max-width: calc(100% - 5rem);
  height: inherit;
  padding: 0 1.25rem;
  margin: 0 auto;
  margin-right: auto;
  margin-left: max(5rem, (100% - 75rem + 2.5rem) / 2);
}
.l-inner.--wide {
  width: 90rem;
  margin-left: max(5rem, (100% - 87.5rem + 2.5rem) / 2);
}
.l-inner.--narrow {
  width: 65rem;
}

@media only screen and (max-width: 767px) {
  .l-inner {
    max-width: 100%;
    margin-left: auto;
  }
  .l-inner.--wide {
    max-width: 100%;
    margin-left: auto;
  }
  .l-inner.--pdx-sm-sp {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}
/* margin */
/* --------------------------------------------------
	4. object
-------------------------------------------------- */
/* component */
.c-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-width: 11.5rem;
  min-height: 3rem;
  padding: 0.8125rem 2rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
  color: #3a8fb7;
  letter-spacing: 0.02em;
  border-radius: 999rem;
}
.c-button::before {
  position: absolute;
  inset: 0;
  clip-path: polygon(0 -0.0625rem, calc(50% - 0.5rem) -0.0625rem, calc(50% - 0.5rem) 0.125rem, calc(50% + 0.5rem) 0.125rem, calc(50% + 0.5rem) -0.0625rem, 100% -0.0625rem, 100% calc(100% + 0.0625rem), calc(50% + 0.5rem) calc(100% + 0.0625rem), calc(50% + 0.5rem) calc(100% - 0.125rem), calc(50% - 0.5rem) calc(100% - 0.125rem), calc(50% - 0.5rem) calc(100% + 0.0625rem), 0 calc(100% + 0.0625rem));
  content: "";
  border: 0.0625rem solid #222;
  border-radius: inherit;
}
.c-button::after {
  position: absolute;
  top: 0;
  right: 1rem;
  bottom: 0;
  width: 1rem;
  aspect-ratio: 1/1;
  margin: auto;
}
.c-button.--anchor::after {
  content: "";
  background-color: currentcolor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='8' height='17' viewBox='0 0 8 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 0V16C3.66667 14 2.4 10 0 10' stroke='%233A8FB7'/%3E%3Cpath d='M4 16C4.33333 14 5.6 10 8 10' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='8' height='17' viewBox='0 0 8 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 0V16C3.66667 14 2.4 10 0 10' stroke='%233A8FB7'/%3E%3Cpath d='M4 16C4.33333 14 5.6 10 8 10' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: 50% auto;
          mask-size: 50% auto;
}
.c-button.--blank::after {
  content: "";
  background-color: currentcolor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 11.5L15.5 0.5M15.5 0.5C14.3542 2.10417 12.475 5.725 14.125 7.375M15.5 0.5C13.8958 1.64583 10.275 3.525 8.625 1.875' stroke='%233A8FB7'/%3E%3Cpath d='M6.5 0.5H0.5V15.5H15.5V9.5' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 11.5L15.5 0.5M15.5 0.5C14.3542 2.10417 12.475 5.725 14.125 7.375M15.5 0.5C13.8958 1.64583 10.275 3.525 8.625 1.875' stroke='%233A8FB7'/%3E%3Cpath d='M6.5 0.5H0.5V15.5H15.5V9.5' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: 100% auto;
          mask-size: 100% auto;
}
@media (hover: hover) {
  .c-button {
    transition: color 0.3s;
  }
  .c-button:hover {
    color: #222;
  }
  .c-button::after {
    transition: backgroundcolor 0.3s;
  }
}

@media only screen and (max-width: 767px) {
  .c-button {
    font-size: 0.875rem;
  }
}
.c-heading {
  position: relative;
  padding-bottom: 1rem;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.6;
  color: #3a8fb7;
  text-align: center;
  letter-spacing: 0.02em;
}
.c-heading::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 4.875rem;
  height: 0.5rem;
  content: "";
  background-color: #8ab7d2;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='80' height='6' viewBox='0 0 80 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 0.910645C1.86667 6.48207 6.2 6.48207 14 0.910645C14.8667 6.48207 19.2 6.48207 27 0.910645C27.8667 6.48207 32.2 6.48207 40 0.910645C40.8667 6.48207 45.2 6.48207 53 0.910645C53.8667 6.48207 58.2 6.48207 66 0.910645C66.8667 6.48207 71.2 6.48207 79 0.910645' stroke='%238AB7D2'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='80' height='6' viewBox='0 0 80 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 0.910645C1.86667 6.48207 6.2 6.48207 14 0.910645C14.8667 6.48207 19.2 6.48207 27 0.910645C27.8667 6.48207 32.2 6.48207 40 0.910645C40.8667 6.48207 45.2 6.48207 53 0.910645C53.8667 6.48207 58.2 6.48207 66 0.910645C66.8667 6.48207 71.2 6.48207 79 0.910645' stroke='%238AB7D2'/%3E%3C/svg%3E%0A");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  transform: translateX(-50%);
}

@media only screen and (max-width: 767px) {
  .c-heading {
    font-size: 1.625rem;
    line-height: 1.4;
  }
}
.c-heading-h1 {
  font-size: 2rem;
}

.c-heading-h2 {
  font-size: 2rem;
}

.c-heading-h3 {
  font-size: 1.75rem;
}

.c-heading-h4 {
  font-size: 1.5rem;
}

.c-heading-h5 {
  font-size: 1.25rem;
}

.c-heading-h6 {
  font-size: 1.125rem;
}

.c-icon {
  --icon-wrap-size: 2rem;
  --icon-color: #8ab7d2;
  position: relative;
  display: inline-flex;
  width: var(--icon-wrap-size-w, var(--icon-wrap-size));
  height: var(--icon-wrap-size-h, var(--icon-wrap-size));
}
.c-icon::before, .c-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--icon-size-w, var(--icon-size));
  height: var(--icon-size-h, var(--icon-size));
  background: var(--icon-color);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  transform: translate(-50%, -50%);
}
.c-icon::before {
  content: "";
}
.c-icon.--instagram::before {
  --icon-size: 90.625%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.0007 3.11306C18.8725 3.11306 19.3306 3.12803 20.8599 3.19767C22.2735 3.26213 23.0413 3.49811 23.5524 3.69668C24.2292 3.95971 24.7121 4.27396 25.2197 4.78103C25.7274 5.28867 26.0416 5.77156 26.3041 6.44841C26.5027 6.95951 26.7386 7.7273 26.8031 9.14087C26.8727 10.6695 26.8877 11.1283 26.8877 15C26.8877 18.8718 26.8727 19.3299 26.8031 20.8592C26.7386 22.2728 26.5027 23.0406 26.3041 23.5517C26.0411 24.2285 25.7268 24.7114 25.2197 25.219C24.7121 25.7267 24.2292 26.0409 23.5524 26.3034C23.0413 26.502 22.2735 26.7379 20.8599 26.8024C19.3312 26.872 18.8725 26.887 15.0007 26.887C11.129 26.887 10.6702 26.872 9.14156 26.8024C7.728 26.7379 6.96021 26.502 6.44911 26.3034C5.77226 26.0404 5.28936 25.7261 4.78172 25.219C4.27408 24.7114 3.95983 24.2285 3.69737 23.5517C3.49881 23.0406 3.26283 22.2728 3.19837 20.8592C3.12872 19.3305 3.11376 18.8718 3.11376 15C3.11376 11.1283 3.12872 10.6701 3.19837 9.14087C3.26283 7.7273 3.49881 6.95951 3.69737 6.44841C3.9604 5.77156 4.27466 5.28867 4.78172 4.78103C5.28879 4.27338 5.77226 3.95913 6.44911 3.69668C6.96021 3.49811 7.728 3.26213 9.14156 3.19767C10.6702 3.12803 11.129 3.11306 15.0007 3.11306ZM15.0007 0.50061C11.0628 0.50061 10.5689 0.517301 9.02242 0.588095C7.47936 0.658313 6.42494 0.9035 5.5029 1.26207C4.5492 1.63273 3.74054 2.12828 2.93476 2.93464C2.12841 3.74099 1.63285 4.54908 1.26219 5.50277C0.903622 6.42482 0.658435 7.47924 0.588217 9.0223C0.517424 10.5688 0.500732 11.0627 0.500732 15.0006C0.500732 18.9386 0.517424 19.4324 0.588217 20.9789C0.658435 22.522 0.903622 23.5764 1.26219 24.4984C1.63285 25.4521 2.12841 26.2608 2.93476 27.0666C3.74112 27.8729 4.5492 28.3685 5.5029 28.7391C6.42494 29.0977 7.47936 29.3429 9.02242 29.4131C10.5689 29.4839 11.0628 29.5006 15.0007 29.5006C18.9387 29.5006 19.4325 29.4839 20.979 29.4131C22.5221 29.3429 23.5765 29.0977 24.4986 28.7391C25.4523 28.3685 26.2609 27.8729 27.0667 27.0666C27.8731 26.2602 28.3686 25.4521 28.7393 24.4984C29.0978 23.5764 29.343 22.522 29.4132 20.9789C29.484 19.4324 29.5007 18.9386 29.5007 15.0006C29.5007 11.0627 29.484 10.5688 29.4132 9.0223C29.343 7.47924 29.0978 6.42482 28.7393 5.50277C28.3686 4.54908 27.8731 3.74042 27.0667 2.93464C26.2603 2.12828 25.4523 1.63273 24.4986 1.26207C23.5765 0.9035 22.5221 0.658313 20.979 0.588095C19.4325 0.517301 18.9387 0.50061 15.0007 0.50061Z' fill='%238AB7D2'/%3E%3Cpath d='M15.0006 7.55475C10.8882 7.55475 7.55518 10.8884 7.55518 15.0001C7.55518 19.1119 10.8888 22.4456 15.0006 22.4456C19.1124 22.4456 22.446 19.1119 22.446 15.0001C22.446 10.8884 19.1124 7.55475 15.0006 7.55475ZM15.0006 19.8331C12.3311 19.8331 10.1676 17.669 10.1676 15.0001C10.1676 12.3313 12.3317 10.1672 15.0006 10.1672C17.6694 10.1672 19.8335 12.3313 19.8335 15.0001C19.8335 17.669 17.6694 19.8331 15.0006 19.8331Z' fill='%238AB7D2'/%3E%3Cpath d='M22.7406 9.00002C23.7016 9.00002 24.4805 8.22104 24.4805 7.26011C24.4805 6.29919 23.7016 5.5202 22.7406 5.5202C21.7797 5.5202 21.0007 6.29919 21.0007 7.26011C21.0007 8.22104 21.7797 9.00002 22.7406 9.00002Z' fill='%238AB7D2'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.0007 3.11306C18.8725 3.11306 19.3306 3.12803 20.8599 3.19767C22.2735 3.26213 23.0413 3.49811 23.5524 3.69668C24.2292 3.95971 24.7121 4.27396 25.2197 4.78103C25.7274 5.28867 26.0416 5.77156 26.3041 6.44841C26.5027 6.95951 26.7386 7.7273 26.8031 9.14087C26.8727 10.6695 26.8877 11.1283 26.8877 15C26.8877 18.8718 26.8727 19.3299 26.8031 20.8592C26.7386 22.2728 26.5027 23.0406 26.3041 23.5517C26.0411 24.2285 25.7268 24.7114 25.2197 25.219C24.7121 25.7267 24.2292 26.0409 23.5524 26.3034C23.0413 26.502 22.2735 26.7379 20.8599 26.8024C19.3312 26.872 18.8725 26.887 15.0007 26.887C11.129 26.887 10.6702 26.872 9.14156 26.8024C7.728 26.7379 6.96021 26.502 6.44911 26.3034C5.77226 26.0404 5.28936 25.7261 4.78172 25.219C4.27408 24.7114 3.95983 24.2285 3.69737 23.5517C3.49881 23.0406 3.26283 22.2728 3.19837 20.8592C3.12872 19.3305 3.11376 18.8718 3.11376 15C3.11376 11.1283 3.12872 10.6701 3.19837 9.14087C3.26283 7.7273 3.49881 6.95951 3.69737 6.44841C3.9604 5.77156 4.27466 5.28867 4.78172 4.78103C5.28879 4.27338 5.77226 3.95913 6.44911 3.69668C6.96021 3.49811 7.728 3.26213 9.14156 3.19767C10.6702 3.12803 11.129 3.11306 15.0007 3.11306ZM15.0007 0.50061C11.0628 0.50061 10.5689 0.517301 9.02242 0.588095C7.47936 0.658313 6.42494 0.9035 5.5029 1.26207C4.5492 1.63273 3.74054 2.12828 2.93476 2.93464C2.12841 3.74099 1.63285 4.54908 1.26219 5.50277C0.903622 6.42482 0.658435 7.47924 0.588217 9.0223C0.517424 10.5688 0.500732 11.0627 0.500732 15.0006C0.500732 18.9386 0.517424 19.4324 0.588217 20.9789C0.658435 22.522 0.903622 23.5764 1.26219 24.4984C1.63285 25.4521 2.12841 26.2608 2.93476 27.0666C3.74112 27.8729 4.5492 28.3685 5.5029 28.7391C6.42494 29.0977 7.47936 29.3429 9.02242 29.4131C10.5689 29.4839 11.0628 29.5006 15.0007 29.5006C18.9387 29.5006 19.4325 29.4839 20.979 29.4131C22.5221 29.3429 23.5765 29.0977 24.4986 28.7391C25.4523 28.3685 26.2609 27.8729 27.0667 27.0666C27.8731 26.2602 28.3686 25.4521 28.7393 24.4984C29.0978 23.5764 29.343 22.522 29.4132 20.9789C29.484 19.4324 29.5007 18.9386 29.5007 15.0006C29.5007 11.0627 29.484 10.5688 29.4132 9.0223C29.343 7.47924 29.0978 6.42482 28.7393 5.50277C28.3686 4.54908 27.8731 3.74042 27.0667 2.93464C26.2603 2.12828 25.4523 1.63273 24.4986 1.26207C23.5765 0.9035 22.5221 0.658313 20.979 0.588095C19.4325 0.517301 18.9387 0.50061 15.0007 0.50061Z' fill='%238AB7D2'/%3E%3Cpath d='M15.0006 7.55475C10.8882 7.55475 7.55518 10.8884 7.55518 15.0001C7.55518 19.1119 10.8888 22.4456 15.0006 22.4456C19.1124 22.4456 22.446 19.1119 22.446 15.0001C22.446 10.8884 19.1124 7.55475 15.0006 7.55475ZM15.0006 19.8331C12.3311 19.8331 10.1676 17.669 10.1676 15.0001C10.1676 12.3313 12.3317 10.1672 15.0006 10.1672C17.6694 10.1672 19.8335 12.3313 19.8335 15.0001C19.8335 17.669 17.6694 19.8331 15.0006 19.8331Z' fill='%238AB7D2'/%3E%3Cpath d='M22.7406 9.00002C23.7016 9.00002 24.4805 8.22104 24.4805 7.26011C24.4805 6.29919 23.7016 5.5202 22.7406 5.5202C21.7797 5.5202 21.0007 6.29919 21.0007 7.26011C21.0007 8.22104 21.7797 9.00002 22.7406 9.00002Z' fill='%238AB7D2'/%3E%3C/svg%3E%0A");
}
.c-icon.--youtube::before {
  --icon-size: 100%;
  --icon-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg width='32' height='24' viewBox='0 0 32 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M28.5034 1.40084C29.8802 1.77128 30.9645 2.86259 31.3325 4.24834C32.0012 6.76009 32.0012 12.0006 32.0012 12.0006C32.0012 12.0006 32.0012 17.2411 31.3325 19.7528C30.9645 21.1386 29.8802 22.2299 28.5034 22.6003C26.0079 23.2733 16.0012 23.2733 16.0012 23.2733C16.0012 23.2733 5.99453 23.2733 3.49903 22.6003C2.12222 22.2299 1.03791 21.1386 0.669908 19.7528C0.0012207 17.2411 0.0012207 12.0006 0.0012207 12.0006C0.0012207 12.0006 0.0012207 6.76009 0.669908 4.24834C1.03791 2.86259 2.12222 1.77122 3.49903 1.40084C5.99453 0.727844 16.0012 0.727844 16.0012 0.727844C16.0012 0.727844 26.0079 0.727844 28.5034 1.40084ZM21.0921 12.0007L12.7285 16.7586V7.24261L21.0921 12.0007Z' fill='%238AB7D2'/%3E%3C/svg%3E%0A");
}

.c-map img {
  width: 100%;
}
.c-map iframe {
  width: 100%;
  height: 600px;
}

@media only screen and (max-width: 767px) {
  .c-map {
    aspect-ratio: 355/280;
  }
  .c-map img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
  }
  .c-map iframe {
    height: 100%;
  }
}
/* project */
.p-anchor {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2.5rem;
}
.p-anchor__item {
  width: 11.5rem;
}
.p-anchor__link {
  width: 100%;
  min-width: unset;
  max-width: 100%;
}

@media only screen and (max-width: 767px) {
  .p-anchor {
    gap: 1rem 0.9375rem;
  }
  .p-anchor__item {
    width: calc((100% - 0.9375rem) / 2);
  }
}
.p-card-01-wrap.--column03 {
  display: flex;
  flex-wrap: wrap;
  gap: 2.625rem 3.5%;
}
.p-card-01-wrap.--column03 .p-card-01 {
  width: 31%;
}

@media only screen and (max-width: 767px) {
  .p-card-01-wrap.--column03 {
    gap: 1.5rem;
  }
  .p-card-01-wrap.--column03 .p-card-01 {
    width: 100%;
  }
}
.p-card-01 {
  position: relative;
  padding: 0.5rem;
}
.p-card-01::before {
  position: absolute;
  inset: 0;
  z-index: 20;
  clip-path: polygon(0 -0.0625rem, calc(50% - 1rem) -0.0625rem, calc(50% - 1rem) 0.125rem, calc(50% + 1rem) 0.125rem, calc(50% + 1rem) -0.0625rem, 100% -0.0625rem, 100% calc(100% + 0.0625rem), calc(50% + 1rem) calc(100% + 0.0625rem), calc(50% + 1rem) calc(100% - 0.125rem), calc(50% - 1rem) calc(100% - 0.125rem), calc(50% - 1rem) calc(100% + 0.0625rem), 0 calc(100% + 0.0625rem));
  pointer-events: none;
  content: "";
  border: 0.0625rem solid #222;
}
.p-card-01__img img {
  width: 100%;
}
.p-card-01__title {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  letter-spacing: 0.02em;
}
.p-card-01__title-sub {
  display: block;
  font-size: 1.125rem;
  letter-spacing: 0.02em;
}
.p-card-01__slide {
  --swiper-pagination-bullet-horizontal-gap: 0.1875rem;
  position: relative;
}
.p-card-01__slide .swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: 0.25rem;
}
.p-card-01__slide .swiper-pagination-bullet {
  background: transparent;
  border: 0.0625rem solid #222;
  opacity: 1;
}
.p-card-01__slide .swiper-pagination-bullet-active {
  background: #222;
  opacity: 1;
}
.p-card-01__slide .swiper-button-prev,
.p-card-01__slide .swiper-button-next {
  width: 2.25rem;
  height: 4.5rem;
  margin: 0;
  background: #fff;
  border-radius: 0 999rem 999rem 0;
  transform: translateY(-50%);
}
.p-card-01__slide .swiper-button-prev::after,
.p-card-01__slide .swiper-button-next::after {
  width: 1rem;
  height: 1rem;
  content: "";
  background-color: #3a8fb7;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: 100% auto;
          mask-size: 100% auto;
}
.p-card-01__slide .swiper-button-prev {
  left: -0.5rem;
  padding-right: 0.25rem;
  border-radius: 0 999rem 999rem 0;
}
.p-card-01__slide .swiper-button-prev::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='17' height='8' viewBox='0 0 17 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.8402 4L0.84021 4C2.84021 3.66667 6.84021 2.4 6.84021 -4.37114e-07' stroke='%233A8FB7'/%3E%3Cpath d='M0.84021 4C2.84021 4.33333 6.84021 5.6 6.84021 8' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='17' height='8' viewBox='0 0 17 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.8402 4L0.84021 4C2.84021 3.66667 6.84021 2.4 6.84021 -4.37114e-07' stroke='%233A8FB7'/%3E%3Cpath d='M0.84021 4C2.84021 4.33333 6.84021 5.6 6.84021 8' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
}
.p-card-01__slide .swiper-button-next {
  right: -0.5rem;
  padding-left: 0.25rem;
  border-radius: 999rem 0 0 999rem;
}
.p-card-01__slide .swiper-button-next::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='17' height='8' viewBox='0 0 17 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.74846e-07 4L16 4C14 3.66667 10 2.4 10 -4.37114e-07' stroke='%233A8FB7'/%3E%3Cpath d='M16 4C14 4.33333 10 5.6 10 8' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='17' height='8' viewBox='0 0 17 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.74846e-07 4L16 4C14 3.66667 10 2.4 10 -4.37114e-07' stroke='%233A8FB7'/%3E%3Cpath d='M16 4C14 4.33333 10 5.6 10 8' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
}

@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .p-card-01__title {
    font-size: 1.25rem;
  }
  .p-card-01__title-sub {
    font-size: 0.875rem;
    letter-spacing: 0.01em;
  }
}
@media only screen and (max-width: 767px) {
  .p-card-01__title {
    margin-bottom: 0.75rem;
    font-size: 1.25rem;
    line-height: 1.4;
  }
  .p-card-01__slide .swiper-button-prev,
  .p-card-01__slide .swiper-button-next {
    width: 2rem;
    height: 4rem;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-card-02 {
  position: relative;
  display: flex;
  min-height: 25rem;
  overflow: hidden;
  background-color: #fff;
  border-radius: 12.5rem;
}
.p-card-02__img {
  flex-shrink: 0;
  width: 56%;
}
.p-card-02__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.p-card-02__content {
  align-self: center;
  padding: 2.5rem 4rem;
}
.p-card-02__title {
  font-size: 1.375rem;
  font-weight: bold;
  line-height: 1.6;
  color: #3a8fb7;
  letter-spacing: 0.02em;
}
.p-card-02__title-sub {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
.p-card-02__text {
  margin-top: 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
.p-card-02__button {
  margin-top: 1.5625rem;
}
.p-card-02__button .c-button {
  width: 100%;
  min-width: unset;
  max-width: 11.5rem;
}

@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .p-card-02 {
    border-radius: 9.375rem;
  }
  .p-card-02__img {
    width: 50%;
  }
  .p-card-02__content {
    padding: 3.125rem 2.5rem;
    padding-right: 2.5rem;
    padding-left: 1.25rem;
  }
  .p-card-02__title-sub {
    font-size: 0.8125rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-card-02 {
    flex-wrap: wrap;
  }
  .p-card-02__img {
    width: 100%;
    aspect-ratio: 355/216;
  }
  .p-card-02__content {
    width: 100%;
    padding: 1.5rem 1.875rem 4rem;
  }
  .p-card-02__title-sub {
    margin-bottom: 0.75rem;
    font-size: 0.875rem;
    text-align: center;
  }
  .p-card-02__title {
    font-size: 1.25rem;
    line-height: 1.4;
    text-align: center;
  }
  .p-card-02__button {
    margin-top: 1.5rem;
    text-align: center;
  }
}
.p-mainvisual {
  position: relative;
  padding-right: 5rem;
  padding-left: 5rem;
  overflow: hidden;
  height: 100vh;
}
.p-mainvisual__inner {
  position: relative;
}
.p-mainvisual__swiper-wrap {
  position: relative;
  width: 50rem;
  max-width: calc(100% - 12.5rem);
  margin-right: max(50% - 25rem, 12.5rem);
  margin-left: auto;
  --swiper-pagination-bullet-horizontal-gap: 0rem;
}
.p-mainvisual__swiper-wrap .swiper-pagination {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.p-mainvisual__swiper-wrap .swiper-pagination-bullets.swiper-pagination-horizontal {
  right: -1rem;
  bottom: 0.5rem;
  left: auto;
  width: -moz-max-content;
  width: max-content;
}
.p-mainvisual__swiper-wrap .swiper-pagination-bullet {
  background: transparent;
  border: 0.0625rem solid #3a8fb7;
  opacity: 1;
}
.p-mainvisual__swiper-wrap .swiper-pagination-bullet-active {
  background: #3a8fb7;
  opacity: 1;
}
.p-mainvisual__swiper-slide {
  aspect-ratio: 800/1080;
}
.p-mainvisual__swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.p-mainvisual__art {
  position: absolute;
  mix-blend-mode: multiply;
  width: 100%;
  height: 100vh;
  top: 0;
  z-index: 3;
}
.p-mainvisual__art-left, .p-mainvisual__art-right {
  position: absolute;
  z-index: 2;
  mix-blend-mode: multiply;
}
.p-mainvisual__art-left {
  bottom: 5%;
  left: 10.0286532951%;
  max-width: 55%;
}
.p-mainvisual__art-right {
  top: 5%;
  right: 10.0286532951%;
  max-width: 55%;
}
.p-mainvisual__copy {
  position: absolute;
  top: 32%;
  left: 4.6%;
  z-index: 2;
  max-width: 60%;
  transform: translateY(-61%);
}
.p-mainvisual__header {
  position: absolute;
  inset: 0;
  z-index: 999;
}

@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .p-mainvisual__copy {
    top: 20%;
  }
}
@media only screen and (max-width: 767px) {
  .p-mainvisual {
    padding: 0;
  }
  .p-mainvisual__swiper-slide {
    height: calc(100vh - 4.375rem);
    min-height: 25rem;
    aspect-ratio: unset;
  }
  .p-mainvisual__swiper-wrap {
    width: 100%;
    max-width: unset;
    margin: 0;
  }
  .p-mainvisual__swiper-wrap .swiper-pagination {
    gap: 0.5rem;
  }
  .p-mainvisual__swiper-wrap .swiper-pagination-bullets.swiper-pagination-horizontal {
    right: 0.625rem;
    bottom: 1rem;
  }
  .p-mainvisual__copy {
    top: 10.7%;
    max-width: 95.4%;
    transform: none;
  }
  .p-mainvisual__art {
    display: none;
  }
  .p-mainvisual__header {
    display: none;
  }
}
.p-slide-side {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 5rem;
  height: 100vh;
  overflow: hidden;
  background: #fff;
  border-right: 0.0625rem solid #222;
}
.p-slide-side__wrap {
  height: -moz-max-content;
  height: max-content;
  animation-name: slidelinearver;
  animation-duration: 30s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
.p-slide-side__item {
  display: flex;
  flex-direction: column;
  gap: 1.5rem 0;
  padding: 1rem 0.6875rem 1rem 0.75rem;
}
.p-slide-side__wave {
  display: block;
  width: 100%;
  height: 0.3125rem;
  background-color: #8ab7d2;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='80' height='6' viewBox='0 0 80 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 0.910645C1.86667 6.48207 6.2 6.48207 14 0.910645C14.8667 6.48207 19.2 6.48207 27 0.910645C27.8667 6.48207 32.2 6.48207 40 0.910645C40.8667 6.48207 45.2 6.48207 53 0.910645C53.8667 6.48207 58.2 6.48207 66 0.910645C66.8667 6.48207 71.2 6.48207 79 0.910645' stroke='%238AB7D2'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='80' height='6' viewBox='0 0 80 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 0.910645C1.86667 6.48207 6.2 6.48207 14 0.910645C14.8667 6.48207 19.2 6.48207 27 0.910645C27.8667 6.48207 32.2 6.48207 40 0.910645C40.8667 6.48207 45.2 6.48207 53 0.910645C53.8667 6.48207 58.2 6.48207 66 0.910645C66.8667 6.48207 71.2 6.48207 79 0.910645' stroke='%238AB7D2'/%3E%3C/svg%3E%0A");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
}
.p-slide-side__card-img {
  aspect-ratio: 56/96;
  overflow: hidden;
  border-radius: 999rem;
}
.p-slide-side__card-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.p-slide-side__card-txt {
  display: block;
  width: 1em;
  margin-top: 0.5625rem;
  margin-right: auto;
  margin-left: auto;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.1;
  text-align: center;
  writing-mode: vertical-rl;
}

@media only screen and (max-width: 767px) {
  .p-slide-side {
    top: auto;
    bottom: 0;
    width: 100%;
    height: auto;
    padding-top: 0.5rem;
    padding-bottom: 0.375rem;
    border-top: 0.0625rem solid #222;
    border-right: none;
  }
  .p-slide-side__wave {
    width: 0.3125rem;
    height: auto;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='5' height='56' viewBox='0 0 5 56' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.94629 1C0.0891462 1.6 0.0891462 4.6 3.94629 10C0.0891462 10.6 0.0891462 13.6 3.94629 19C0.0891462 19.6 0.0891462 22.6 3.94629 28C0.0891462 28.6 0.0891462 31.6 3.94629 37C0.0891462 37.6 0.0891462 40.6 3.94629 46C0.0891462 46.6 0.0891462 49.6 3.94629 55' stroke='%238AB7D2'/%3E%3C/svg%3E%0A");
            mask-image: url("data:image/svg+xml,%3Csvg width='5' height='56' viewBox='0 0 5 56' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.94629 1C0.0891462 1.6 0.0891462 4.6 3.94629 10C0.0891462 10.6 0.0891462 13.6 3.94629 19C0.0891462 19.6 0.0891462 22.6 3.94629 28C0.0891462 28.6 0.0891462 31.6 3.94629 37C0.0891462 37.6 0.0891462 40.6 3.94629 46C0.0891462 46.6 0.0891462 49.6 3.94629 55' stroke='%238AB7D2'/%3E%3C/svg%3E%0A");
  }
  .p-slide-side__item {
    flex-direction: row;
    gap: 1rem;
    padding: 0 1rem;
  }
  .p-slide-side__card-img {
    width: 6rem;
    aspect-ratio: 96/56;
  }
  .p-slide-side__card-txt {
    width: unset;
    margin-top: 0;
    margin-left: 0.5rem;
    text-align: left;
    white-space: nowrap;
    writing-mode: inherit;
  }
  .p-slide-side__card {
    display: flex;
    align-items: center;
  }
  .p-slide-side__wrap {
    display: flex;
    align-items: center;
    width: -moz-max-content;
    width: max-content;
    height: auto;
    animation-name: slidelinearhor;
  }
}
/* pages */
body.index .banner01 {
  position: relative;
  display: block;
}
@media (hover: hover) {
  body.index .banner01 {
    transition: opacity 0.3s;
  }
  body.index .banner01:hover {
    opacity: 0.8;
  }
}
body.index .banner01__img img {
  width: 100%;
}
body.index .banner01__btn {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  gap: 5.7142857143%;
  align-items: center;
  justify-content: center;
  width: 5rem;
  max-width: 6.6666666667%;
  height: 100%;
  background-color: #20254e;
}
body.index .banner01__btn::after {
  width: 1.125rem;
  max-width: 22.5%;
  aspect-ratio: 1/1;
  content: "";
  background: #fff;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8.5' stroke='white'/%3E%3Cpath d='M8 6L11 9L8 12' stroke='white'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8.5' stroke='white'/%3E%3Cpath d='M8 6L11 9L8 12' stroke='white'/%3E%3C/svg%3E%0A");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
}
body.index .banner01__btn picture {
  max-width: 23.75%;
}
body.index .index-sum {
  position: relative;
  display: flex;
  margin-top: 1rem;
  overflow: hidden;
}
body.index .index-sum__bg {
  position: absolute;
  inset: 0 0 0 5rem;
  z-index: -1;
  overflow: hidden;
}
body.index .index-sum__bg-wrap {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  animation-name: slidelinearhor;
  animation-duration: 45s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  will-change: transform;
}
body.index .index-sum__bg-item {
  flex-shrink: 0;
  margin-right: 1rem;
}
body.index .index-sum__bg-item img {
  width: 1450px;
  height: 100%;
}
body.index .index-sum__inner {
  width: 90rem;
  max-width: 100%;
  min-height: 43rem;
  margin-right: auto;
  margin-left: auto;
}
body.index .index-sum__content {
  position: relative;
  width: -moz-max-content;
  width: max-content;
  height: 100%;
  padding: 6.625rem 6.5rem 11rem;
  margin-left: auto;
  text-align: center;
  background-color: #fff;
}
body.index .index-sum__txt {
  font-size: 1.25rem;
  line-height: 3.2;
  text-align: left;
  letter-spacing: 0.1em;
  writing-mode: tb-rl;
}
body.index .index-sum__float-01 {
  position: absolute;
  right: 0;
  bottom: 0.625rem;
  left: 0;
  max-width: 87%;
  margin: auto;
}
body.index .index-banner01 {
  margin-top: 6rem;
}
body.index .index-anchors__container {
  display: flex;
  gap: 0.875rem;
  align-items: center;
  margin-top: 10rem;
}
body.index .index-anchors__title {
  flex-shrink: 0;
  max-width: 100%;
}
body.index .index-yobuko {
  padding-top: 3.5rem;
  padding-bottom: 8.5rem;
  margin-top: 4rem;
}
body.index .index-yobuko__map {
  margin-top: 2.5rem;
}
body.index .index-yobuko__list {
  margin-top: 4rem;
}
body.index .index-yobuko__card-lg {
  margin-top: 5rem;
}
body.index .index-karatsu {
  padding-top: 4rem;
  padding-bottom: 8.5rem;
}
body.index .index-karatsu__map {
  margin-top: 2.5rem;
}
body.index .index-karatsu__list {
  margin-top: 4rem;
}
body.index .index-saga {
  padding-top: 4rem;
  padding-bottom: 8.5rem;
}
body.index .index-saga__map {
  margin-top: 2.5rem;
}
body.index .index-saga__list {
  margin-top: 4rem;
}
body.index .index-saga__card-lg {
  margin-top: 5rem;
}
body.index .index-takeo {
  padding-top: 4rem;
  padding-bottom: 8.5rem;
}
body.index .index-takeo__map {
  margin-top: 2.5rem;
}
body.index .index-takeo__list {
  margin-top: 4rem;
}
body.index .index-takeo__card-lg {
  margin-top: 5rem;
}
body.index .index-ureshino {
  padding-top: 4rem;
  padding-bottom: 7.5rem;
}
body.index .index-ureshino__map {
  margin-top: 2.5rem;
}
body.index .index-ureshino__list {
  margin-top: 4rem;
}
body.index .index-eyecatch {
  position: relative;
  min-height: 43.75rem;
  margin-left: 5rem;
  overflow: hidden;
}
body.index .index-eyecatch::before {
  display: block;
  padding-top: 50%;
  content: "";
}
body.index .index-eyecatch__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 133.37%;
}
body.index .index-eyecatch__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
body.index .index-banner02 {
  margin-top: 7.5rem;
}
body.index .index-logos {
  margin-top: 2.5rem;
}
body.index .index-logos__container {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5625rem;
}
body.index .index-logos__item {
  display: flex;
  width: calc((100% - 6.25rem) / 5);
}
body.index .index-logos__link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 5rem;
  padding: 0.25rem;
}
@media (hover: hover) {
  body.index .index-logos__link {
    transition: opacity 0.3s;
  }
  body.index .index-logos__link:hover {
    opacity: 0.8;
  }
}
body.index .index-logos__link::before {
  position: absolute;
  inset: 0;
  clip-path: polygon(0 -0.0625rem, calc(50% - 0.5rem) -0.0625rem, calc(50% - 0.5rem) 0.125rem, calc(50% + 0.5rem) 0.125rem, calc(50% + 0.5rem) -0.0625rem, 100% -0.0625rem, 100% calc(100% + 0.0625rem), calc(50% + 0.5rem) calc(100% + 0.0625rem), calc(50% + 0.5rem) calc(100% - 0.125rem), calc(50% - 0.5rem) calc(100% - 0.125rem), calc(50% - 0.5rem) calc(100% + 0.0625rem), 0 calc(100% + 0.0625rem));
  content: "";
  border: 0.0625rem solid #222;
  border-radius: inherit;
}
body.index .index-logos__link::after {
  position: absolute;
  right: 0.25rem;
  bottom: 0.25rem;
  width: 0.75rem;
  aspect-ratio: 1/1;
  margin: auto;
  content: "";
  background-color: #3a8fb7;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 11.5L15.5 0.5M15.5 0.5C14.3542 2.10417 12.475 5.725 14.125 7.375M15.5 0.5C13.8958 1.64583 10.275 3.525 8.625 1.875' stroke='%233A8FB7'/%3E%3Cpath d='M6.5 0.5H0.5V15.5H15.5V9.5' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
          mask-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 11.5L15.5 0.5M15.5 0.5C14.3542 2.10417 12.475 5.725 14.125 7.375M15.5 0.5C13.8958 1.64583 10.275 3.525 8.625 1.875' stroke='%233A8FB7'/%3E%3Cpath d='M6.5 0.5H0.5V15.5H15.5V9.5' stroke='%233A8FB7'/%3E%3C/svg%3E%0A");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: 100% auto;
          mask-size: 100% auto;
}

@media only screen and (min-width: 768px) and (max-width: 1280px) {
  body.index .index-sum__content {
    padding-right: 1.875rem;
    padding-left: 1.875rem;
  }
}
@media only screen and (max-width: 1280px) {
  body.index .index-anchors__container {
    flex-wrap: wrap;
    gap: 2.5rem 0;
  }
  body.index .index-anchors__nav {
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  body.index .banner01__btn {
    top: unset;
    bottom: 0;
    flex-direction: row;
    gap: 5.5%;
    align-items: center;
    width: 100%;
    max-width: unset;
    height: calc(15.7894736842% + 0.0625rem);
  }
  body.index .banner01__btn::after {
    width: 5.0704225352%;
    max-width: unset;
  }
  body.index .banner01__btn picture {
    width: 21.9718309859%;
    max-width: unset;
    margin-left: 3%;
    font-size: 0;
  }
  body.index .banner01__btn picture img {
    width: 100%;
  }
  body.index .index-banner01 {
    margin-top: 4rem;
  }
  body.index .index-sum {
    position: relative;
    flex-wrap: wrap;
    margin-top: 4.5rem;
    overflow: unset;
  }
  body.index .index-sum__bg {
    position: unset;
    z-index: unset;
    width: 100%;
    min-width: unset;
  }
  body.index .index-sum__bg-wrap {
    animation-duration: 20s;
  }
  body.index .index-sum__bg-item {
    margin-right: 0.5rem;
  }
  body.index .index-sum__bg-item img {
    width: 41.125rem;
  }
  body.index .index-sum__content {
    position: static;
    padding: 0;
    margin-right: auto;
    margin-left: auto;
  }
  body.index .index-sum__txt {
    font-size: 1rem;
    line-height: 2.76;
    letter-spacing: 0.13em;
  }
  body.index .index-sum__inner {
    position: relative;
    width: 100%;
    min-height: unset;
    padding: 0 1.25rem;
    padding-bottom: 10rem;
  }
  body.index .index-sum__float-01 {
    bottom: 1.5625rem;
    max-width: 22.1875rem;
  }
  body.index .index-anchors__container {
    gap: 1.75rem;
    margin-top: 4rem;
  }
  body.index .index-anchors__title {
    max-width: 20.9375rem;
    margin-left: -0.125rem;
  }
  body.index .index-yobuko {
    padding-top: 1.5rem;
    padding-bottom: 4rem;
    margin-top: 3.5rem;
  }
  body.index .index-yobuko__map {
    margin-top: 1.5rem;
    margin-right: -0.625rem;
    margin-left: -0.625rem;
  }
  body.index .index-yobuko__list {
    margin-top: 2.5rem;
  }
  body.index .index-yobuko__card-lg {
    margin-top: 2.5rem;
    margin-right: -0.625rem;
    margin-left: -0.625rem;
  }
  body.index .index-karatsu {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
  body.index .index-karatsu__map {
    margin: 1.5rem -0.625rem 0;
  }
  body.index .index-karatsu__list {
    margin-top: 2.5rem;
  }
  body.index .index-saga {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
  body.index .index-saga__map {
    margin: 1.5rem -0.625rem 0;
  }
  body.index .index-saga__list {
    margin-top: 2.5rem;
  }
  body.index .index-saga__card-lg {
    margin-top: 2.5rem;
    margin-right: -0.625rem;
    margin-left: -0.625rem;
  }
  body.index .index-takeo {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
  body.index .index-takeo__map {
    margin: 1.5rem -0.625rem 0;
  }
  body.index .index-takeo__list {
    margin-top: 2.5rem;
  }
  body.index .index-takeo__card-lg {
    margin-top: 2.5rem;
    margin-right: -0.625rem;
    margin-left: -0.625rem;
  }
  body.index .index-ureshino {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
  body.index .index-ureshino__map {
    margin: 1.5rem -0.625rem 0;
  }
  body.index .index-ureshino__list {
    margin-top: 2.5rem;
  }
  body.index .index-eyecatch {
    height: 100vh;
    min-height: 25rem;
    margin-left: 0;
  }
  body.index .index-eyecatch__img {
    height: 110%;
  }
  body.index .index-banner02 {
    margin-top: 4rem;
  }
  body.index .index-logos__item {
    width: 100%;
  }
  body.index .index-logos__link::before {
    clip-path: polygon(0 -0.0625rem, calc(50% - 0.9375rem) -0.0625rem, calc(50% - 0.9375rem) 0.125rem, calc(50% + 0.9375rem) 0.125rem, calc(50% + 0.9375rem) -0.0625rem, 100% -0.0625rem, 100% calc(100% + 0.0625rem), calc(50% + 0.9375rem) calc(100% + 0.0625rem), calc(50% + 0.9375rem) calc(100% - 0.125rem), calc(50% - 1.125rem) calc(100% - 0.125rem), calc(50% - 0.9375rem) calc(100% + 0.0625rem), 0 calc(100% + 0.0625rem));
  }
  body.index .index-logos__link::after {
    right: 0.5rem;
    bottom: 0.5rem;
    width: 1rem;
  }
  body.index .index-logos__container {
    flex-direction: column;
    gap: 1rem;
  }
}
/* utility */
.u-anime-fade {
  --delay: 0;
  --duration: 0.7;
  --movementx: 0;
  --movementy: 50;
  --movementx-sp: 0;
  --movementy-sp: 50;
  opacity: 0;
  transition: opacity 0.6s ease-in-out, transform 1s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition-delay: calc(var(--delay) * 1s);
  transform: translateX(calc(var(--movementx) * 1px)) translateY(calc(var(--movementy) * 1px));
}
@property --movementx {
  .u-anime-fade {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}
@property --movementx-sp {
  .u-anime-fade {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}
@property --movementy {
  .u-anime-fade {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}
@property --movementy-sp {
  .u-anime-fade {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}

.u-anime-fade-sp {
  --delay: 0;
  --duration: 0.5;
  --movementx: 0;
  --movementy: 50;
  opacity: 1;
}
@property --movementx {
  .u-anime-fade-sp {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}
@property --movementx-sp {
  .u-anime-fade-sp {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}
@property --movementy {
  .u-anime-fade-sp {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}
@property --movementy-sp {
  .u-anime-fade-sp {
    syntax: "<length>";
    initial-value: 0;
    inherits: true;
  }
}
@media only screen and (max-width: 767px) {
  .u-anime-fade-sp {
    opacity: 0;
    transition: opacity 0.6s ease-in-out, transform 1s cubic-bezier(0.075, 0.82, 0.165, 1);
    transition-delay: calc(var(--delay) * 1s);
    transform: translateX(calc(var(--movementx) * 1px)) translateY(calc(var(--movementy) * 1px));
  }
}

.u-anime-fade.is-active {
  opacity: 1;
  transform: translateX(0) translateY(0);
}

.u-anime-group.is-active .u-anime-fade {
  opacity: 1;
  transform: translateX(0) translateY(0);
}

@media only screen and (max-width: 767px) {
  .u-anime-group-sp.is-active .u-anime-fade-sp {
    opacity: 1;
    transform: translateX(0) translateY(0);
  }
}

.u-asterisk {
  padding-left: 1em;
  text-indent: -1em;
}

.u-bg-wave-blue {
  position: relative;
  background-color: #f6f8f9;
}
.u-bg-wave-blue::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 5rem;
  height: 1rem;
  content: "";
  background: inherit;
  -webkit-mask-image: url("../images/icon-wave-01.png");
          mask-image: url("../images/icon-wave-01.png");
  -webkit-mask-repeat: repeat;
          mask-repeat: repeat;
  -webkit-mask-position: left bottom;
          mask-position: left bottom;
  -webkit-mask-size: auto;
          mask-size: auto;
  transform: translateY(calc(-100% + 0.0625rem));
}

.u-bg-blue {
  background-color: #f6f8f9;
}

.u-bg-wave-blue-dark {
  position: relative;
  background-color: #e7f0f4;
}
.u-bg-wave-blue-dark::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 5rem;
  height: 1rem;
  content: "";
  background: inherit;
  -webkit-mask-image: url("../images/icon-wave-01.png");
          mask-image: url("../images/icon-wave-01.png");
  -webkit-mask-repeat: repeat;
          mask-repeat: repeat;
  -webkit-mask-position: left bottom;
          mask-position: left bottom;
  -webkit-mask-size: auto;
          mask-size: auto;
  transform: translateY(calc(-100% + 0.0625rem));
}

.u-bg-wave-white-bottom {
  position: relative;
}
.u-bg-wave-white-bottom::after {
  position: absolute;
  top: 100%;
  right: 0;
  left: 5rem;
  height: 1rem;
  content: "";
  background-color: #fff;
  -webkit-mask-image: url("../images/icon-wave-01.png");
          mask-image: url("../images/icon-wave-01.png");
  -webkit-mask-repeat: repeat;
          mask-repeat: repeat;
  -webkit-mask-position: left bottom;
          mask-position: left bottom;
  -webkit-mask-size: auto;
          mask-size: auto;
  transform: translateY(calc(-100% + 0.0625rem));
}

@media only screen and (max-width: 767px) {
  .u-bg-wave-blue::before {
    left: 0;
  }
  .u-bg-wave-blue-dark::before {
    left: 0;
  }
  .u-bg-wave-white-bottom {
    left: 0;
  }
  .u-bg-wave-white-bottom::after {
    display: none;
  }
}
@media all and (min-width: 768px), print {
  .u-hidden-pc {
    display: none;
  }
  .u-hover {
    transition: all 0.3s;
  }
  .u-hover:hover {
    opacity: 0.7;
  }
}
@media only screen and (max-width: 767px) {
  .u-hidden-sp {
    display: none;
  }
}
.u-mt-1 {
  margin-top: 0.5rem;
}

.u-mt-2 {
  margin-top: 1rem;
}

.u-mt-3 {
  margin-top: 1.5rem;
}

.u-mt-4 {
  margin-top: 2rem;
}

.u-mt-5 {
  margin-top: 2.5rem;
}

.u-mt-6 {
  margin-top: 3rem;
}

.u-mt-7 {
  margin-top: 3.5rem;
}

.u-mt-8 {
  margin-top: 4rem;
}

.u-mt-9 {
  margin-top: 4.5rem;
}

.u-mt-10 {
  margin-top: 5rem;
}

.u-mt-11 {
  margin-top: 5.5rem;
}

.u-mt-12 {
  margin-top: 6rem;
}

.u-mt-13 {
  margin-top: 6.5rem;
}

.u-mt-14 {
  margin-top: 7rem;
}

.u-mt-15 {
  margin-top: 7.5rem;
}

.u-mt-16 {
  margin-top: 8rem;
}

.u-mt-17 {
  margin-top: 8.5rem;
}

.u-mt-18 {
  margin-top: 9rem;
}

.u-mt-19 {
  margin-top: 9.5rem;
}

.u-mt-20 {
  margin-top: 10rem;
}

.u-mt-21 {
  margin-top: 10.5rem;
}

.u-mt-22 {
  margin-top: 11rem;
}

.u-mt-23 {
  margin-top: 11.5rem;
}

.u-mt-24 {
  margin-top: 12rem;
}

.u-mt-25 {
  margin-top: 12.5rem;
}

@media only screen and (max-width: 767px) {
  .u-mt-1-sp {
    margin-top: 0.5rem;
  }
  .u-mt-2-sp {
    margin-top: 1rem;
  }
  .u-mt-3-sp {
    margin-top: 1.5rem;
  }
  .u-mt-4-sp {
    margin-top: 2rem;
  }
  .u-mt-5-sp {
    margin-top: 2.5rem;
  }
  .u-mt-6-sp {
    margin-top: 3rem;
  }
  .u-mt-7-sp {
    margin-top: 3.5rem;
  }
  .u-mt-8-sp {
    margin-top: 4rem;
  }
  .u-mt-9-sp {
    margin-top: 4.5rem;
  }
  .u-mt-10-sp {
    margin-top: 5rem;
  }
  .u-mt-11-sp {
    margin-top: 5.5rem;
  }
  .u-mt-12-sp {
    margin-top: 6rem;
  }
  .u-mt-13-sp {
    margin-top: 6.5rem;
  }
  .u-mt-14-sp {
    margin-top: 7rem;
  }
  .u-mt-15-sp {
    margin-top: 7.5rem;
  }
  .u-mt-16-sp {
    margin-top: 8rem;
  }
  .u-mt-17-sp {
    margin-top: 8.5rem;
  }
  .u-mt-18-sp {
    margin-top: 9rem;
  }
  .u-mt-19-sp {
    margin-top: 9.5rem;
  }
  .u-mt-20-sp {
    margin-top: 10rem;
  }
  .u-mt-21-sp {
    margin-top: 10.5rem;
  }
  .u-mt-22-sp {
    margin-top: 11rem;
  }
  .u-mt-23-sp {
    margin-top: 11.5rem;
  }
  .u-mt-24-sp {
    margin-top: 12rem;
  }
  .u-mt-25-sp {
    margin-top: 12.5rem;
  }
}
.u-text-center {
  text-align: center;
}

.u-text-left {
  text-align: left;
}

.u-text-right {
  text-align: right;
}

@media all and (min-width: 768px), print {
  .u-text-center-pc {
    text-align: center;
  }
  .u-text-left-pc {
    text-align: left;
  }
  .u-text-right-pc {
    text-align: right;
  }
}
@media only screen and (max-width: 767px) {
  .u-text-center-sp {
    text-align: center;
  }
  .u-text-left-sp {
    text-align: left;
  }
  .u-text-right-sp {
    text-align: right;
  }
}