@charset "UTF-8";
/*! destyle.css v3.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
}

/* 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%; /* 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 {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

dd {
  margin-inline-start: 0;
}

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

/**
 * 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, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

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

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  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, 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 {
  inset-block-end: -0.25em;
}

sup {
  inset-block-start: -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 {
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  vertical-align: middle;
  text-align: inherit;
  text-transform: inherit; /* 2 */ /* 1 */
  appearance: none;
}

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type='checkbox'] {
  appearance: checkbox;
}

[type='radio'] {
  appearance: radio;
}

/**
 * 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-inline-size: 0;
  margin: 0;
  padding: 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 {
  block-size: auto;
}

/**
 * 1. 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 {
  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 */
  appearance: button; /* 1 */
}

/**
 * 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-color: inherit; /* 1 */
  border-collapse: collapse;
}

caption {
  text-align: start;
}

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

th {
  font-weight: 700;
  text-align: start;
}

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

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

a {
  text-decoration: none;
  cursor: pointer;
}

input,
button,
textarea,
select {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  color: inherit;
  font-family: inherit;
  outline: none;
  appearance: none;
}
input:focus-visible,
button:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 1.5px solid blue;
}

label {
  cursor: pointer;
}

/* メディアクエリ
==================================== */
html {
  -webkit-font-smoothing: antialiased;
  min-block-size: 100vb;
}

@media screen and (max-width: 767px) {
  html {
    font-size: clamp(10px, 2.66vi, 13px);
  }
}

@media screen and (min-width: 768px) {
  html {
    font-size: clamp(8px, 10 / 1200 * 100vi, 9.5px);
  }
}

@media screen and (min-width: 1260px) {
  html {
    font-size: 10px;
  }
}

body {
  position: relative;
  background-color: #ffffff;
  color: #1c1a27;
  font-family: 'Noto Sans JP', sans-serif;
  font-style: normal;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
  -webkit-text-size-adjust: 100%;
}

@media screen and (max-width: 767px) {
  body {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) {
  body {
    font-size: max(1.6rem, 14px);
  }
}

img {
  block-size: auto;
  max-inline-size: 100%;
}

a {
  display: inline-block;
  color: inherit;
  word-break: break-all;
  transition: opacity 0.3s;
}

@media (any-hover: hover) {
  a:not(.no-op):hover {
    opacity: 0.7;
  }
}

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

.l-wrapper {
  display: flex;
  flex-direction: column;
  overflow-x: clip;
  min-block-size: 100vb;
}

.l-inner {
  inline-size: 100%;
  max-inline-size: 100%;
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .l-inner {
    padding-inline: 10px 10px;
  }
}

@media screen and (min-width: 768px) {
  .l-inner {
    max-inline-size: calc(100% - 60px);
  }
}

@media screen and (min-width: 992px) {
  .l-inner {
    max-inline-size: 88%;
    padding-inline: 0 0;
  }
}

@media screen and (min-width: 1260px) {
  .l-inner {
    max-inline-size: 1200px;
  }
}

.l-inner--sm {
  inline-size: 980px;
  margin-inline: auto;
}

.l-main {
  flex-grow: 1;
}

.l-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 80;
  inline-size: 100%;
  transition:
    background-color 0.2s,
    block-size 0.2s;
}

@media screen and (max-width: 767px) {
  .l-header {
    block-size: 6rem;
  }
}

@media screen and (min-width: 768px) {
  .l-header {
    block-size: 8rem;
  }
}

@media screen and (min-width: 1260px) {
  .l-header {
    block-size: 10rem;
  }
}

.l-header.is-scrolled {
  background-color: rgba(255, 255, 255, 0.85);
}

@media screen and (min-width: 1260px) {
  .l-header.is-scrolled {
    block-size: 8rem;
    background-color: rgba(6, 1, 40, 0.85);
  }
}

@media screen and (min-width: 1260px) {
  .l-header.is-scrolled .l-header__logo .logo-default {
    opacity: 0;
  }
  .l-header.is-scrolled .l-header__logo .logo-wh {
    opacity: 1;
  }
}
.l-header.is-scrolled .l-header__nav-link,
.l-header.is-scrolled .l-header__tel-hours {
  color: #ffffff;
}
.l-header.is-scrolled .l-header__tel-num svg path {
  fill: #ffffff;
}
.l-header.is-scrolled .icon-phone path {
  fill: #ffffff !important;
}

.l-header:has(.l-drawer.is-visible) .l-header__logo .logo-default {
  opacity: 1;
}
.l-header:has(.l-drawer.is-visible) .l-header__logo .logo-wh {
  opacity: 0;
}

.l-header__inner {
  display: flex;
  align-items: center;
  block-size: 100%;
}

@media screen and (max-width: 767px) {
  .l-header__inner {
    padding-inline: 10px;
  }
}

@media screen and (min-width: 768px) {
  .l-header__inner {
    padding-inline: 30px;
  }
}

@media screen and (min-width: 1260px) {
  .l-header__inner {
    max-inline-size: 1512px;
    margin-inline: auto;
    padding-inline: 3rem;
  }
}

@media screen and (min-width: 1512px) {
  .l-header__inner {
    padding-inline: 4rem;
  }
}

.l-header__logo {
  position: relative;
  z-index: 90;
}

@media screen and (max-width: 767px) {
  .l-header__logo {
    inline-size: 13.5rem;
  }
}

@media screen and (min-width: 768px) {
  .l-header__logo {
    inline-size: 20.5rem;
  }
}

@media screen and (min-width: 1260px) {
  .l-header__logo {
    inline-size: 18.5rem;
  }
}

@media screen and (min-width: 1512px) {
  .l-header__logo {
    inline-size: 21.2rem;
  }
}
.l-header__logo .logo-wh {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  opacity: 0;
}

.l-header__content {
  display: none;
}

@media screen and (min-width: 1260px) {
  .l-header__content {
    display: flex;
    flex-grow: 1;
    align-items: center;
    margin-inline-start: 4rem;
  }
}

@media screen and (min-width: 1512px) {
  .l-header__content {
    margin-inline-start: 6rem;
  }
}

.l-header__nav-list {
  display: flex;
  column-gap: 1rem;
  align-items: center;
}

.l-header__nav-link {
  display: inline-block;
  padding: 1rem;
  font-weight: 600;
}

@media screen and (min-width: 1260px) {
  .l-header__nav-link {
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 1512px) {
  .l-header__nav-link {
    font-size: 1.5rem;
  }
}

.l-header__contact {
  display: flex;
  align-items: center;
  margin-inline-start: auto;
}

@media screen and (min-width: 1260px) {
  .l-header__contact {
    column-gap: 1.5rem;
  }
}

@media screen and (min-width: 1512px) {
  .l-header__contact {
    column-gap: 2.5rem;
  }
}

.l-header__tel {
  position: relative;
  padding-inline-start: 3.5rem;
}
.l-header__tel .icon-phone {
  position: absolute;
  inset-inline-start: 0;
  inset-block-end: -0.2rem;
  inline-size: 2.5rem;
}

.l-header__tel-hours {
  font-size: 1.2rem;
  letter-spacing: 0;
  text-align: center;
}

.l-header__buttons {
  display: flex;
  column-gap: 1rem;
}

.l-header__hamburger {
  position: relative;
  z-index: 90;
  inline-size: 45px;
  block-size: 45px;
  margin-inline-start: auto;
  text-align: center;
  transform-origin: center center;
  transition: opacity 0.2s;
}

@media screen and (min-width: 1260px) {
  .l-header__hamburger {
    display: none;
  }
}

@media (any-hover: hover) {
  .l-header__hamburger:hover {
    opacity: 0.7;
  }
}

.l-header__hamburger.is-active .l-header__hamburger-line {
  background-color: transparent;
}
.l-header__hamburger.is-active .l-header__hamburger-line::before {
  inset-block-start: 40%;
  background-color: #1c1a27;
  transform: rotate(25deg);
  transition:
    inset-block-start 0.2s,
    transform 0.2s 0.2s;
}
.l-header__hamburger.is-active .l-header__hamburger-line::after {
  inset-block-start: 40%;
  background-color: #1c1a27;
  transform: rotate(-25deg);
  transition:
    inset-block-start 0.2s,
    transform 0.2s 0.2s;
}

.l-header__hamburger-line {
  position: absolute;
  inset-block-start: calc(50% - 1px);
  inset-inline-start: 10px;
  display: block;
  inline-size: 25px;
  block-size: 2px;
  background-color: #1c1a27;
  transition: background-color 0s 0.2s;
}

@media screen and (min-width: 768px) {
  .l-header__hamburger-line {
    inset-inline-start: 6.5px;
    inline-size: 32px;
  }
}
.l-header__hamburger-line::before,
.l-header__hamburger-line::after {
  content: '';
  position: absolute;
  display: block;
  inline-size: 25px;
  block-size: 2px;
  background-color: #1c1a27;
  transition: background-color 0.3s;
}

@media screen and (min-width: 768px) {
  .l-header__hamburger-line::before,
  .l-header__hamburger-line::after {
    inline-size: 32px;
  }
}
.l-header__hamburger-line::before {
  inset-block-start: -6px;
  transition:
    inset-block-start 0.2s 0.2s,
    transform 0.2s;
}
.l-header__hamburger-line::after {
  inset-block-start: 6px;
  transition:
    inset-block-start 0.2s 0.2s,
    transform 0.2s;
}

.l-drawer {
  position: fixed;
  inset-block-start: 0;
  inset-inline-end: 0;
  visibility: hidden;
  inline-size: 100%;
  block-size: 100dvb;
  background-color: #ffffff;
  opacity: 0;
  transition:
    opacity 0.2s,
    visibility 0.2s;
}

.l-drawer.is-visible {
  visibility: visible;
  opacity: 1;
}

.l-drawer__inner {
  position: relative;
  overflow-y: scroll;
  block-size: 100%;
  max-block-size: 100%;
}

@media screen and (max-width: 767px) {
  .l-drawer__inner {
    padding-inline: 15px;
  }
}

@media screen and (min-width: 768px) {
  .l-drawer__inner {
    padding-inline: 30px;
  }
}

@media screen and (max-width: 767px) {
  .l-drawer__menu {
    padding-block-start: 8rem;
  }
}

@media screen and (min-width: 768px) {
  .l-drawer__menu {
    padding-block-start: 100px;
  }
}

.l-drawer__link {
  display: block;
  padding: 1rem;
  font-size: 1.4rem;
  font-weight: 600;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .l-drawer__link {
    padding: 10px;
    font-size: 15px;
  }
}

.l-drawer__contact {
  margin-block-start: 8.4rem;
}

.l-drawer__tel-hours {
  font-size: 1.25rem;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .l-drawer__tel-hours {
    font-size: 14px;
  }
}

.l-drawer__tel-num {
  display: flex;
  column-gap: 9px;
  justify-content: center;
  align-items: center;
}
.l-drawer__tel-num img {
  inline-size: 26px;
}
.l-drawer__tel-num a {
  font-size: 2.7rem;
  font-weight: 600;
}

@media screen and (min-width: 768px) {
  .l-drawer__tel-num a {
    font-size: 27px;
  }
}

.l-drawer__buttons {
  display: flex;
  column-gap: max(1rem, 10px);
  justify-content: center;
  margin-block-start: 2.8rem;
}

@media screen and (min-width: 768px) {
  .l-drawer__buttons {
    margin-block-start: 30px;
  }
}

.l-footer {
  position: relative;
}

@media screen and (max-width: 767px) {
  .l-footer {
    padding-block: 6rem 4rem;
  }
}

@media screen and (min-width: 768px) {
  .l-footer {
    padding-block: 9rem max(4rem, 30px);
  }
}
.l-footer::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background-color: #1c1a27;
}

@media screen and (max-width: 767px) {
  .l-footer::before {
    border-radius: 4rem 4rem 0 0;
  }
}

@media screen and (min-width: 768px) {
  .l-footer::before {
    border-radius: 6rem 6rem 0 0;
  }
}

@media screen and (min-width: 992px) {
  .l-footer__inner {
    display: flex;
    align-items: center;
  }
}

@media screen and (max-width: 767px) {
  .l-footer__logo {
    inline-size: 20rem;
    margin-inline: auto;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__logo {
    inline-size: 26.5rem;
  }
}

.l-footer__contact {
  color: #ffffff;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .l-footer__contact {
    margin-block-start: 1rem;
    font-size: 1.4rem;
    text-align: center;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__contact {
    margin-block-start: max(2rem, 16px);
    font-size: max(1.5rem, 14px);
  }
}
.l-footer__contact a {
  pointer-events: none;
}

.l-footer__nav {
  margin-block-start: 4rem;
}

@media screen and (min-width: 992px) {
  .l-footer__nav {
    margin-block-start: 0;
    margin-inline-start: auto;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__nav-list {
    display: flex;
    column-gap: 1rem;
    justify-content: flex-end;
  }
}

@media screen and (min-width: 992px) {
  .l-footer__nav-list {
    justify-content: flex-start;
  }
}

@media screen and (max-width: 767px) {
  .l-footer__nav-item {
    text-align: center;
  }
}

.l-footer__nav-link {
  padding: 1rem;
  color: #ffffff;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .l-footer__nav-link {
    display: block;
    font-size: 1.5rem;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__nav-link {
    font-size: max(1.5rem, 13px);
  }
}

.l-footer__copyright {
  text-align: center;
}

@media screen and (max-width: 767px) {
  .l-footer__copyright {
    margin-block-start: 5rem;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__copyright {
    margin-block-start: 8rem;
  }
}
.l-footer__copyright small {
  color: #aaa;
}

@media screen and (max-width: 767px) {
  .l-footer__copyright small {
    font-size: 1.1rem;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__copyright small {
    font-size: 12px;
  }
}

.c-anime {
  z-index: 1;
  opacity: 0;
}

.c-anime-fadeIn.js-anime-active {
  animation: fadeIn 0.5s forwards;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.c-anime-fadeInUp.js-anime-active {
  animation: fadeInUp 0.5s forwards;
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
    transition-timing-function: cubic-bezier(0, 0.4, 0.2, 1);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.c-anime-fadeInDown.js-anime-active {
  animation: fadeInDown 0.5s forwards;
}

@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translateY(-40px);
    transition-timing-function: cubic-bezier(0, 0.4, 0.2, 1);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.c-anime-fadeInLeft.js-anime-active {
  animation: fadeInLeft 0.5s forwards;
}

@media screen and (max-width: 767px) {
  .c-anime-fadeInLeft.js-anime-active {
    animation: fadeInUp 0.5s forwards;
  }
}

@keyframes fadeInLeft {
  0% {
    opacity: 0;
    transform: translateX(-25px);
    transition-timing-function: cubic-bezier(0, 0.4, 0.2, 1);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.c-anime-fadeInRight.js-anime-active {
  animation: fadeInRight 0.5s forwards;
}

@media screen and (max-width: 767px) {
  .c-anime-fadeInRight.js-anime-active {
    animation: fadeInUp 0.5s forwards;
  }
}

@keyframes fadeInRight {
  0% {
    opacity: 0;
    transform: translateX(25px);
    transition-timing-function: cubic-bezier(0, 0.4, 0.2, 1);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.c-button-header {
  border-radius: 5px;
  color: #ffffff;
  font-weight: 600;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 1260px) {
  .c-button-header {
    padding: 1rem 1.5rem;
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 1512px) {
  .c-button-header {
    padding: 1rem 2rem;
    font-size: 1.5rem;
  }
}

.c-button-header--primary {
  background-color: #0045da;
}

.c-button-header--accent {
  background-color: #fd841f;
}

.c-button-drawer {
  display: inline-flex;
  column-gap: max(1rem, 8px);
  justify-content: center;
  align-items: center;
  padding: 0.9rem 1.5rem 1.1rem 2rem;
  border-radius: 5px;
  color: #ffffff;
  font-size: max(1.5rem, 15px);
  font-weight: 600;
  letter-spacing: 0.05em;
}
.c-button-drawer img {
  inline-size: 8px;
  margin-block-start: 1px;
  transition: transform 0.3s;
}
.c-button-drawer:focus-within img {
  transform: translateX(3px);
}

@media (any-hover: hover) {
  .c-button-drawer:hover img {
    transform: translateX(3px);
  }
}

.c-button-drawer--primary {
  background-color: #0045da;
}

.c-button-drawer--accent {
  background-color: #fd841f;
}

.c-section-heading__sub {
  color: #210cae;
  font-family: 'Roboto', sans-serif;
  font-size: max(1.5rem, 13px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
}

.c-section-heading__main {
  margin-block-start: 5px;
  font-weight: 600;
  line-height: 1.7;
}

@media screen and (max-width: 767px) {
  .c-section-heading__main {
    font-size: 2.8rem;
  }
}

@media screen and (min-width: 768px) {
  .c-section-heading__main {
    font-size: max(3.6rem, 24px);
  }
}
.c-section-heading__main span {
  display: inline-block;
}

.c-section-heading--centered {
  text-align: center;
}

.c-button-cta {
  column-gap: max(1.3rem, 8px);
  align-items: center;
  padding: 1rem 2rem 1rem 2.5rem;
  border-radius: 5px;
  color: #ffffff;
  font-weight: 600;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 767px) {
  .c-button-cta {
    display: flex;
    justify-content: center;
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) {
  .c-button-cta {
    display: inline-flex;
    font-size: max(2rem, 16px);
  }
}
.c-button-cta img {
  inline-size: 8px;
  transition: transform 0.3s;
}
.c-button-cta:focus-within img {
  transform: translateX(3px);
}

@media (any-hover: hover) {
  .c-button-cta:hover img {
    transform: translateX(3px);
  }
}

.c-button-cta--primary {
  background-color: #210cae;
}

.c-button-cta--accent {
  background-color: #fd841f;
}

.c-visual-wrapper {
  aspect-ratio: 16/9;
}
.c-visual-wrapper:where(img, video, iframe) {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

/* トップ MV
==================================== */
.p-home-mv {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

@media screen and (max-width: 767px) {
  .p-home-mv {
    padding-block: 10rem 5rem;
    background-image: url(../images/top/bg-mv_sm.jpg);
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv {
    padding-block: 15rem 9.5rem;
    background-image: url(../images/top/bg-mv_lg.jpg);
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv__content {
    display: flex;
    gap: 6rem;
  }
}

@media screen and (min-width: 1260px) {
  .p-home-mv__content {
    gap: 12.2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv__texts {
    flex-grow: 1;
    padding-block-start: 8.3rem;
  }
}

.p-home-mv__copyRow {
  display: block;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .p-home-mv__copyRow {
    font-size: 2.6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv__copyRow {
    font-size: 3.6rem;
    line-height: 1.8;
  }
}

@media screen and (min-width: 992px) {
  .p-home-mv__copyRow {
    font-size: 4.2rem;
  }
}
.p-home-mv__copyRow .strong {
  position: relative;
  z-index: 2;
  display: inline-block;
  color: #210cae;
}
.p-home-mv__copyRow .strong::before {
  content: '';
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  z-index: -1;
  display: block;
  inline-size: 110%;
  block-size: 1.75lh;
  background: url(../images/top/object-double-circle.svg) no-repeat center center/contain;
  transform: translate(-50%, -50%);
}
.p-home-mv__copyRow .strong + span {
  position: relative;
  z-index: 2;
  display: inline-block;
}

.p-home-mv__text {
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .p-home-mv__text {
    margin-block-start: 3rem;
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv__text {
    margin-block-start: 5rem;
    font-size: 2rem;
  }
}

@media screen and (max-width: 767px) {
  .p-home-mv__label {
    inline-size: 90%;
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv__label {
    inline-size: 38.6rem;
    margin-block-start: 4.6rem;
  }
}

.p-home-mv__form {
  border-radius: 2rem;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.16);
  background-color: #ffffff;
}

@media screen and (max-width: 767px) {
  .p-home-mv__form {
    min-block-size: 32rem;
    margin-block-start: 3rem;
    padding-block: 1rem;
  }
  .p-home-mv__formEmbed {
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    margin-block-start: 1rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv__form {
    inline-size: 42.83%;
    padding: 3rem;
  }
  .p-home-mv__formEmbed {
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    block-size: 550px;
    margin-block-start: 1.2rem;
  }
}

@media screen and (min-width: 1260px) {
  .p-home-mv__form {
    inline-size: 45.83%;
  }
}
.p-home-mv__form > p {
  color: #210cae;
  font-weight: 600;
  text-align: center;
}
.p-home-mv__form .p-subTitle {
  color: #1c1a27;
  font-size: 90%;
}

@media screen and (max-width: 767px) {
  .p-home-mv__form > p {
    font-size: 2rem;
  }
  .p-subTitle {
    color: #1c1a27;
    font-size: 70%;
  }
}

@media screen and (min-width: 768px) {
  .p-home-mv__form > p {
    font-size: max(2.4rem, 17px);
  }
}
.p-home-mv__form textarea {
  inline-size: 100%;
}

/* トップ 育成実績
==================================== */
.p-home-case__heading {
  font-weight: 600;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-case__heading {
    font-size: 2.8rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-case__heading {
    font-size: 3.6rem;
  }
}

.p-home-case__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

@media screen and (max-width: 767px) {
  .p-home-case__list {
    row-gap: 1rem;
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-case__list {
    row-gap: 2rem;
    margin-block-start: 6rem;
  }
}

@media screen and (max-width: 767px) {
  .p-home-case__item {
    inline-size: 33.3333333333%;
  }
}

@media screen and (min-width: 768px) {
  .p-home-case__item {
    inline-size: 14.2857142857%;
  }
}

/* トップ なぜ理由
==================================== */
.p-home-reason__heading {
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-reason__heading {
    font-size: 2.8rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__heading {
    font-size: 3.6rem;
  }
}
.p-home-reason__heading span {
  display: inline-block;
}

.p-home-reason__content {
  display: flex;
}

@media screen and (max-width: 767px) {
  .p-home-reason__content {
    flex-direction: column;
    gap: 2rem;
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__content {
    gap: 5rem;
    align-items: center;
    margin-block-start: 5.2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__before {
    inline-size: 40.81%;
  }
}

.p-home-reason__list {
  display: grid;
}

@media screen and (max-width: 767px) {
  .p-home-reason__list {
    gap: 1.6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__list {
    gap: 3rem;
  }
}

.p-home-reason__item {
  display: flex;
  border-radius: 2rem;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
}

@media screen and (max-width: 767px) {
  .p-home-reason__item {
    gap: 1.6rem;
    padding: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__item {
    gap: 2rem;
    padding: 2rem;
  }
}
.p-home-reason__item::before {
  content: '';
  display: block;
  inline-size: 2.9rem;
  block-size: 2rem;
  margin-block-start: 0.56rem;
  background: url(../images/top/icon-check.svg) no-repeat center center/contain;
}
.p-home-reason__item p {
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .p-home-reason__item p {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__item p {
    font-size: 1.8rem;
  }
}

@media screen and (max-width: 767px) {
  .p-home-reason__arrow {
    text-align: center;
  }
}

@media screen and (max-width: 767px) {
  .p-home-reason__arrow img {
    transform: rotate(90deg);
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__after {
    inline-size: 46.12%;
  }
}
.p-home-reason__after > div {
  text-align: center;
}
.p-home-reason__after > div img {
  max-inline-size: 80%;
}
.p-home-reason__after > p {
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .p-home-reason__after > p {
    margin-block-start: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-reason__after > p {
    margin-block-start: 2rem;
    font-size: 2.2rem;
  }
}

/* トップ こんな課題ありませんか？
==================================== */
.p-home-issue {
  position: relative;
}
.p-home-issue::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background-color: #f9f8ff;
}

.p-home-issue__heading {
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-issue__heading {
    font-size: 2.8rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-issue__heading {
    font-size: 3.6rem;
  }
}
.p-home-issue__heading span {
  display: inline-block;
}

@media screen and (max-width: 767px) {
  .p-home-issue__content {
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-issue__content {
    margin-block-start: 11.3rem;
  }
}

.p-home-issue__list {
  display: grid;
}

@media screen and (max-width: 767px) {
  .p-home-issue__list {
    gap: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-issue__list {
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
  }
}

.p-home-issue__item {
  position: relative;
  border-radius: 2rem;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
}

@media screen and (max-width: 767px) {
  .p-home-issue__item {
    padding: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-issue__item {
    padding: 5rem 3rem 4rem;
  }
}
.p-home-issue__item::before {
  content: attr(data-index);
  position: absolute;
  z-index: -1;
  display: inline-block;
  color: #eae8f8;
  font-weight: 900;
}

@media screen and (min-width: 768px) {
  .p-home-issue__item::before {
    inset-block-start: -0.85lh;
    inset-inline-start: 3rem;
    font-size: 7.5rem;
    line-height: 1;
  }
}
.p-home-issue__item > div {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-home-issue__item > div {
    block-size: 15rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-issue__item > div img {
    inline-size: auto;
    block-size: 100%;
  }
}
.p-home-issue__item > p {
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .p-home-issue__item > p {
    margin-block-start: 1.6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-issue__item > p {
    margin-block-start: 4rem;
    font-size: 1.8rem;
  }
}

/* トップ アバウト
==================================== */
.p-home-about {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

@media screen and (max-width: 767px) {
  .p-home-about {
    background-image: url(../images/top/bg-about_sm.jpg);
  }
}

@media screen and (min-width: 768px) {
  .p-home-about {
    background-image: url(../images/top/bg-about_lg.jpg);
  }
}

.p-home-about__text {
  color: #ffffff;
  font-weight: 700;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-about__text {
    font-size: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-about__text {
    font-size: 3.6rem;
  }
}
.p-home-about__text > span {
  display: block;
}

.p-home-about__buttons {
  display: flex;
}

@media screen and (max-width: 767px) {
  .p-home-about__buttons {
    flex-direction: column;
    gap: 1.6rem;
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-about__buttons {
    gap: 2rem;
    justify-content: center;
    margin-block-start: 4rem;
  }
}

/* トップ 選ばれる3つの理由
==================================== */
@media screen and (max-width: 767px) {
  .p-home-strengths {
    padding-block: 6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-strengths {
    padding-block: 10rem;
  }
}

.p-home-strengths__list {
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 767px) {
  .p-home-strengths__list {
    row-gap: 5rem;
    margin-block-start: 4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-strengths__list {
    row-gap: 10rem;
    margin-block-start: 6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-strengths__item {
    display: flex;
    column-gap: 8rem;
    justify-content: space-between;
    align-items: center;
  }
}
.p-home-strengths__item:nth-child(2n) {
  flex-direction: row-reverse;
}

.p-home-strengths__item-image {
  overflow: hidden;
  aspect-ratio: 440/300;
  border-radius: 1.5rem;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
}

@media screen and (min-width: 768px) {
  .p-home-strengths__item-image {
    inline-size: 36.66%;
  }
}
.p-home-strengths__item-image img {
  inline-size: 100%;
}

@media screen and (max-width: 767px) {
  .p-home-strengths__item-texts {
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-strengths__item-texts {
    inline-size: calc(63.34% - 8rem);
  }
}
.p-home-strengths__item-texts span {
  display: block;
  color: #210cae;
}

@media screen and (min-width: 768px) {
  .p-home-strengths__item-texts span {
    font-size: 1.8rem;
  }
}
.p-home-strengths__item-texts h3 {
  margin-block-start: 1.2rem;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .p-home-strengths__item-texts h3 {
    font-size: 2.2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-strengths__item-texts h3 {
    font-size: 2.8rem;
  }
}

@media screen and (max-width: 767px) {
  .p-home-strengths__item-texts p {
    margin-block-start: 2rem;
    font-size: 1.5rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-strengths__item-texts p {
    margin-block-start: 3rem;
    font-size: 1.8rem;
  }
}

/* トップ 全体像
==================================== */
@media screen and (max-width: 767px) {
  .p-home-scheme {
    padding-block: 4rem 6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-scheme {
    padding-block: 6.6rem 12.4rem;
  }
}

.p-home-scheme__content {
  margin-block-start: 3rem;
}

@media screen and (max-width: 767px) {
  .p-home-scheme__top {
    overflow-x: scroll;
    inline-size: 100%;
  }
  .p-home-scheme__top img {
    inline-size: 900px;
    max-inline-size: unset;
  }
}

@media screen and (max-width: 767px) {
  .p-home-scheme__scroll {
    margin-block-start: 1.2rem;
    font-size: 1.2rem;
  }
}

.p-home-scheme__flow {
  max-inline-size: 980px;
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .p-home-scheme__flow {
    margin-block-start: 5.6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-scheme__flow {
    margin-block-start: 6.5rem;
  }
}

.p-home-scheme__flowHeading {
  font-weight: 600;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-scheme__flowHeading {
    font-size: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-scheme__flowHeading {
    font-size: 2.8rem;
  }
}
.p-home-scheme__flowHeading > span {
  display: inline-block;
}

.p-home-scheme__flowImage {
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-scheme__flowImage {
    margin-block-start: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-scheme__flowImage {
    margin-block-start: 3rem;
  }
}

.p-home-scheme__flowText {
  font-weight: 500;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-scheme__flowText {
    margin-block-start: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-scheme__flowText {
    margin-block-start: 3rem;
    font-size: 2.4rem;
  }
}

/* トップ 効果
==================================== */
@media screen and (max-width: 767px) {
  .p-home-result__content {
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-result__content {
    margin-block-start: 4rem;
  }
}

.p-home-result__list {
  display: grid;
}

@media screen and (max-width: 767px) {
  .p-home-result__list {
    gap: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-result__list {
    gap: 2.7rem;
  }
}

.p-home-result__item {
  border-radius: 2rem;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
}

@media screen and (max-width: 767px) {
  .p-home-result__item {
    padding: 3rem 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-result__item {
    padding: 3rem;
  }
}
.p-home-result__item > h3 {
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .p-home-result__item > h3 {
    font-size: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-result__item > h3 {
    font-size: 2.4rem;
  }
}
.p-home-result__item > p {
  margin-block-start: 2rem;
  font-weight: 600;
}

.p-home-result__text {
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-home-result__text {
    margin-block-start: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-result__text {
    margin-block-start: 4rem;
    font-size: 2.8rem;
    line-height: 1.8;
  }
}

/* CTA
==================================== */
.p-cta {
  position: relative;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #ffffff;
}

@media screen and (max-width: 767px) {
  .p-cta {
    padding-block: 5rem;
    background-image: url(../images/common/bg-cta_sm.jpg);
  }
}

@media screen and (min-width: 768px) {
  .p-cta {
    padding-block: 8rem;
    background-image: url(../images/common/bg-cta_lg.jpg);
  }
}

.p-cta__list {
  position: relative;
  z-index: 2;
}

@media screen and (min-width: 768px) {
  .p-cta__list {
    display: flex;
    column-gap: 6rem;
    justify-content: center;
  }
}

@media screen and (min-width: 768px) {
  .p-cta__item {
    inline-size: calc(50% - 3rem);
  }
}
.p-cta__item p {
  text-align: center;
}

@media screen and (max-width: 767px) {
  .p-cta__item p {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 768px) {
  .p-cta__item p {
    line-height: 1.8;
  }
}
.p-cta__item p span {
  display: block;
}
.p-cta__item a {
  margin-block-start: 15px;
}

@media screen and (min-width: 768px) {
  .p-cta__item:first-child .p-cta__item-inner {
    margin-inline-start: auto;
  }
}

@media screen and (max-width: 767px) {
  .p-cta__item + .p-cta__item {
    margin-block-start: 4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-cta__item-inner {
    inline-size: -moz-fit-content;
    inline-size: fit-content;
  }
}

/* トップ ご利用の流れ
==================================== */
.p-home-steps__list {
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 767px) {
  .p-home-steps__list {
    row-gap: 6.3rem;
    margin-block-start: 5rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__list {
    row-gap: 8.6rem;
    margin-block-start: 5rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item {
    display: flex;
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item:first-child .p-home-steps__item-body::before {
    background-image: url('../images/top/icon-question.png');
  }
}

@media screen and (max-width: 767px) {
  .p-home-steps__item:first-child .p-home-steps__item-texts h3::before {
    background-image: url('../images/top/icon-question.png');
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item:nth-child(2) .p-home-steps__item-body::before {
    background-image: url('../images/top/icon-idea.png');
  }
}

@media screen and (max-width: 767px) {
  .p-home-steps__item:nth-child(2) .p-home-steps__item-texts h3::before {
    background-image: url('../images/top/icon-idea.png');
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item:nth-child(3) .p-home-steps__item-body::before {
    background-image: url('../images/top/icon-pen.png');
  }
}

@media screen and (max-width: 767px) {
  .p-home-steps__item:nth-child(3) .p-home-steps__item-texts h3::before {
    background-image: url('../images/top/icon-pen.png');
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item:nth-child(4) .p-home-steps__item-body::before {
    background-image: url('../images/top/icon-discussion.png');
  }
}

@media screen and (max-width: 767px) {
  .p-home-steps__item:nth-child(4) .p-home-steps__item-texts h3::before {
    background-image: url('../images/top/icon-discussion.png');
  }
}

.p-home-steps__item:not(:last-child) {
  position: relative;
}
.p-home-steps__item:not(:last-child)::after {
  content: '';
  position: absolute;
  inset-inline-start: 50%;
  display: block;
  background: url(../images/top/icon-steps-arrow.png) no-repeat center center/contain;
  transform: translateX(-50%);
}

@media screen and (max-width: 767px) {
  .p-home-steps__item:not(:last-child)::after {
    inset-block-end: -5.3rem;
    inline-size: 8rem;
    block-size: 3.6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item:not(:last-child)::after {
    inset-block-end: -6.3rem;
    inline-size: 8rem;
    block-size: 3.6rem;
  }
}

.p-home-steps__item-index {
  background-color: #210cae;
  color: #ffffff;
  font-size: 2rem;
  line-height: 1.8;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-home-steps__item-index {
    display: grid;
    place-items: center;
    inline-size: max(4.66%, 40px);
  }
}

.p-home-steps__item-body {
  background-color: #f9f8ff;
}

@media screen and (max-width: 767px) {
  .p-home-steps__item-body {
    padding: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item-body {
    display: flex;
    flex-grow: 1;
    column-gap: 3rem;
    align-items: center;
    padding: 2rem 4rem;
  }
  .p-home-steps__item-body::before {
    content: '';
    display: block;
    inline-size: 4.8rem;
    block-size: 4.8rem;
    background-position: center center;
    background-size: contain;
    background-repeat: no-repeat;
  }
}

@media screen and (max-width: 767px) {
  .p-home-steps__item-texts h3 {
    display: flex;
    column-gap: 1.5rem;
    align-items: center;
    font-size: 2rem;
  }
  .p-home-steps__item-texts h3::before {
    content: '';
    display: block;
    flex-shrink: 0;
    inline-size: 3.6rem;
    block-size: 3.6rem;
    background-position: center center;
    background-size: contain;
    background-repeat: no-repeat;
  }
}

@media screen and (min-width: 768px) {
  .p-home-steps__item-texts h3 {
    font-size: 2rem;
  }
}
.p-home-steps__item-texts p {
  margin-block-start: 1rem;
}

@media screen and (max-width: 767px) {
  .p-home-steps__item-texts p {
    font-size: 1.5rem;
  }
}

/* トップ お問い合わせ
==================================== */
@media screen and (max-width: 767px) {
  .p-home-contact__form {
    margin-block-start: 4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-home-contact__form {
    margin-block-start: 6rem;
  }
}

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

.align-center {
  text-align: center;
}

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

.u-bg-primary {
  background-color: #f9f8ff;
}

.font-en {
  font-family: 'Roboto', sans-serif;
}

.u-color-primary {
  color: #210cae;
}

.color-wh {
  color: #ffffff;
}

.fw-medium {
  font-weight: 500;
}

.fw-bold {
  font-weight: 700;
}

.dsp-none {
  display: none;
}

/* 非表示
==================================== */
@media screen and (min-width: 1260px) {
  .u-hidden-xl {
    display: none;
  }
}

@media screen and (min-width: 992px) {
  .u-hidden-lg {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .u-hidden-md {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .u-hidden-sm {
    display: none;
  }
}

/* 余白
==================================== */
@media screen and (max-width: 767px) {
  .u-section-pt {
    padding-block-start: 6rem;
  }
}

@media screen and (min-width: 768px) {
  .u-section-pt {
    padding-block-start: 8rem;
  }
}

@media screen and (max-width: 767px) {
  .u-section-pb {
    padding-block-end: 6rem;
  }
}

@media screen and (min-width: 768px) {
  .u-section-pb {
    padding-block-end: 8rem;
  }
}

@media screen and (max-width: 767px) {
  .home-pt {
    padding-block-start: 6rem;
  }
}

@media screen and (min-width: 768px) {
  .home-pt {
    padding-block-start: 10rem;
  }
}

@media screen and (max-width: 767px) {
  .home-pb {
    padding-block-end: 6rem;
  }
}

@media screen and (min-width: 768px) {
  .home-pb {
    padding-block-end: 10rem;
  }
}

.pt-20 {
  padding-block-start: 20px;
}

.pt-30 {
  padding-block-start: 30px;
}

.pt-40 {
  padding-block-start: 40px;
}

.pt-50 {
  padding-block-start: 50px;
}

.pb-20 {
  padding-block-end: 20px;
}

.pb-30 {
  padding-block-end: 30px;
}

.pb-40 {
  padding-block-end: 40px;
}

.pb-50 {
  padding-block-end: 50px;
}

.mt-20 {
  margin-block-start: 20px;
}

.mt-30 {
  margin-block-start: 30px;
}

.mt-40 {
  margin-block-start: 40px;
}

.mt-50 {
  margin-block-start: 50px;
}

.mb-20 {
  margin-block-end: 20px;
}

.mb-30 {
  margin-block-end: 30px;
}

.mb-40 {
  margin-block-end: 40px;
}

.mb-50 {
  margin-block-end: 50px;
}

.sr-only {
  position: absolute !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.transform-up {
  text-transform: uppercase;
}

.transform-low {
  text-transform: lowercase;
}

.transform-init {
  text-transform: initial;
}
